22 lines
761 B
TypeScript
22 lines
761 B
TypeScript
import type { GameState, ActiveResearch } from '@ai-tycoon/shared';
|
|
import { TECH_TREE } from '@ai-tycoon/game-engine';
|
|
|
|
export function startResearch(state: GameState, research: ActiveResearch): boolean {
|
|
const node = TECH_TREE.find(n => n.id === research.researchId);
|
|
if (!node) return false;
|
|
|
|
const rpCost = node.cost.researchPoints ?? 0;
|
|
if (rpCost > state.research.researchPoints) return false;
|
|
|
|
if (state.research.activeResearch) {
|
|
if (state.research.researchQueue.includes(research.researchId)) return false;
|
|
state.research.researchQueue.push(research.researchId);
|
|
state.research.researchPoints -= rpCost;
|
|
return true;
|
|
}
|
|
|
|
state.research.activeResearch = research;
|
|
state.research.researchPoints -= rpCost;
|
|
return true;
|
|
}
|