Initial scaffold: AI Tycoon monorepo with core game loop
Turborepo monorepo with three packages: - packages/shared: TypeScript types for all 14 game systems + balance constants + formatting utils - packages/game-engine: Pure TS simulation engine with tick processor, economy, infrastructure, compute, research, market, and reputation systems - apps/web: React + Vite + Tailwind + Zustand frontend with sidebar dashboard layout, new game screen, dashboard with charts, infrastructure management, and model training pages Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
import type { GameState } from '@ai-tycoon/shared';
|
||||
import { processEconomy } from './systems/economySystem';
|
||||
import { processInfrastructure } from './systems/infrastructureSystem';
|
||||
import { processCompute } from './systems/computeSystem';
|
||||
import { processResearch } from './systems/researchSystem';
|
||||
import { processMarket } from './systems/marketSystem';
|
||||
import { processReputation } from './systems/reputationSystem';
|
||||
|
||||
export function processTick(state: GameState): Partial<GameState> {
|
||||
const infrastructure = processInfrastructure(state);
|
||||
const compute = processCompute(state, infrastructure);
|
||||
const research = processResearch(state, compute);
|
||||
const market = processMarket(state, compute);
|
||||
const reputation = processReputation(state);
|
||||
const economy = processEconomy(state, market, infrastructure);
|
||||
|
||||
const tickCount = state.meta.tickCount + 1;
|
||||
|
||||
return {
|
||||
meta: {
|
||||
...state.meta,
|
||||
tickCount,
|
||||
lastTickTimestamp: Date.now(),
|
||||
totalPlayTime: state.meta.totalPlayTime + 1,
|
||||
},
|
||||
economy,
|
||||
infrastructure,
|
||||
compute,
|
||||
research,
|
||||
market: market.marketState,
|
||||
reputation,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user