diff --git a/server/routes/games.ts b/server/routes/games.ts index 7824911..ed90232 100755 --- a/server/routes/games.ts +++ b/server/routes/games.ts @@ -35,6 +35,7 @@ import { setForRoadPlacement, setForCityPlacement, setForSettlementPlacement, + adjustResources, } from "./games/helpers"; import type { GameDB } from "./games/store"; @@ -2328,10 +2329,9 @@ const stealResource = (game: Game, session: Session, color: string): string | un return undefined; } const t = String(type); - (victimPlayer as any)[t] = ((victimPlayer as any)[t] || 0) - 1; - (victimPlayer as any)["resources"] = ((victimPlayer as any)["resources"] || 0) - 1; - (sessionPlayer as any)[t] = ((sessionPlayer as any)[t] || 0) + 1; - (sessionPlayer as any)["resources"] = ((sessionPlayer as any)["resources"] || 0) + 1; + // adjust typed resource counts via helper + adjustResources(victimPlayer as Player, { [t]: -1 }); + adjustResources(sessionPlayer as Player, { [t]: 1 }); game.turn.actions = []; game.turn.limits = {} as any; trackTheft(game, (victimSession as any).color || "", session.color, type, 1); diff --git a/server/routes/games/types.ts b/server/routes/games/types.ts index 78ea220..e974887 100644 --- a/server/routes/games/types.ts +++ b/server/routes/games/types.ts @@ -137,6 +137,16 @@ export interface Game { turns?: number; longestRoad?: string | false; longestRoadLength?: number; + borderOrder?: number[]; + largestArmy?: string | false; + largestArmySize?: number; + mostPorts?: string | false; + mostDeveloped?: string | false; + private?: boolean; + created?: number; + lastActivity?: number; + signature?: string; + animationSeeds?: number[]; [key: string]: any; }