feat: #65 sea control — 11th ability (v0.43.0)
CI / build + unit + e2e (pull_request) Successful in 2m33s
CI / build + unit + e2e (pull_request) Successful in 2m33s
Adds the sea ability: a fixed set of 12 named sea zones with sole-control semantics, contest-by-higher-military, and a deterministic per-turn +1 military/+1 economy bonus for each claimed zone. Durable (owns GameState.seaZones), additive migration, stub-inert (e2e unaffected). Fixes #65 Design note: Gitea #65 sketched a free-form 'naval' layer; the implemented approved design is this richer 'sea' layer with a fixed zone set.
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
// The ordered LLM-ability registry.
|
||||
//
|
||||
// `ABILITIES` is the single source of truth for the 10 per-feature LLM abilities.
|
||||
// `ABILITIES` is the single source of truth for the 11 per-feature LLM abilities.
|
||||
// The engine iterates it in this order:
|
||||
// takeovers → wars → hybrid → economy → industry → nuclear → leaders → ideology → disasters → migration
|
||||
// takeovers → wars → hybrid → economy → industry → nuclear → leaders → ideology → disasters → migration → sea
|
||||
// for (a) the system-prompt schema lines + constraint bullets, (b) the per-ability
|
||||
// validate calls inside validateTurnResult, (c) the payload fields in buildUserPrompt,
|
||||
// (d) the ordered apply block inside applyTurnResult, (e) the isMeaningful check,
|
||||
@@ -24,10 +24,11 @@ import { leaders } from './leaders';
|
||||
import { ideology } from './ideology';
|
||||
import { disasters } from './disasters';
|
||||
import { migration } from './migration';
|
||||
import { sea } from './sea';
|
||||
import type { Ability, AbilityField } from './types';
|
||||
|
||||
/**
|
||||
* The 10 per-feature LLM abilities in their canonical apply order.
|
||||
* The 11 per-feature LLM abilities in their canonical apply order.
|
||||
* The order matters: it determines the order of the schema lines in the
|
||||
* system prompt, the order of the validate calls, the order of the apply
|
||||
* steps, and the order of the payload fields in the user prompt. New
|
||||
@@ -45,6 +46,7 @@ export const ABILITIES: readonly Ability<AbilityField>[] = [
|
||||
ideology,
|
||||
disasters,
|
||||
migration,
|
||||
sea,
|
||||
];
|
||||
|
||||
// ── type re-exports ────────────────────────────────────────────────────────────
|
||||
@@ -158,3 +160,16 @@ export {
|
||||
MIGRATION_DESTINATION_EFFECTS,
|
||||
LARGE_INFLUX_STABILITY_DIP,
|
||||
} from './migration';
|
||||
|
||||
// ── sea ──────────────────────────────────────────────────────────────────────
|
||||
|
||||
export {
|
||||
validateSeaOps,
|
||||
applySeaControl,
|
||||
applySeaZoneBonuses,
|
||||
SEA_ZONE_BONUS,
|
||||
SEA_ZONES,
|
||||
SEA_ZONE_IDS,
|
||||
isSeaZoneId,
|
||||
seaZoneName,
|
||||
} from './sea';
|
||||
|
||||
Reference in New Issue
Block a user