feat: #80 + #81 alliances & space program — 13th & 14th abilities (v0.45.0)
CI / build + unit + e2e (pull_request) Successful in 2m20s
CI / build + unit + e2e (pull_request) Successful in 2m20s
#80: TurnResult.alliances — form/break durable mutual-defense pacts (GameState.alliances; pair relation → ally/neutral, an active war overrides). #81: TurnResult.space — launch/deorbit satellites (GameState.satellites; +1 stability per active satellite per turn). Both appended last to the ABILITIES registry (entries 13 & 14, after contested); durable in SQLite via the stateFields loop, mirrored to regionStats, stats re-derived. System + user prompt goldens updated; 738 unit tests passing.
This commit is contained in:
@@ -528,6 +528,8 @@ export function buildUserPrompt(
|
||||
Object.assign(payload, ABILITIES[4].payload(upCtx)); // industry → resources, industry
|
||||
Object.assign(payload, ABILITIES[10].payload(upCtx)); // sea → seaZones (always emitted)
|
||||
Object.assign(payload, ABILITIES[11].payload(upCtx)); // contested → contested (only when non-empty)
|
||||
Object.assign(payload, ABILITIES[12].payload(upCtx)); // alliances → alliances (always emitted)
|
||||
Object.assign(payload, ABILITIES[13].payload(upCtx)); // space → satellites (always emitted)
|
||||
return JSON.stringify(payload, null, 2);
|
||||
}
|
||||
|
||||
@@ -670,6 +672,8 @@ export function validateTurnResult(
|
||||
migration: { ops: [] },
|
||||
sea: { control: [] },
|
||||
contested: { open: [], resolve: [] },
|
||||
alliances: { form: [], break: [] },
|
||||
space: { launch: [], deorbit: [] },
|
||||
markers: { add: [], remove: [] },
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user