Naval / air power + sea control: blockades, sea-lane control, naval battles #65

Closed
opened 2026-10-15 17:05:42 +02:00 by kamilkrzywda · 0 comments
Owner

What

Add a naval/air axis: nations project power at sea and in the air — blockades (choke an enemy's economy/supply), sea-lane control (who commands the seas around coastal regions), and naval battles (a fleet marker can engage and be lost).

Mechanism

  • TurnResult gains naval: { blockades: { from: string; target: string; lift?: boolean }[]; seaControl: { regionKey: string; by: string }[]; battles: { a: string /* fleet marker id or nationRef */; b: string; winner?: string }[] } — required, default []s.
  • A blockade reduces a target's economy (ties into Trade/embargo); sea control is a per-coastal-region claim (a region's coastal access can be denied to non-controlling nations); a naval battle can destroy a fleet marker (ties into markers).
  • Builds on: markers (fleet), per-region stats, adjacency (coastal), embargoes.

Acceptance

  • e2e safety (critical): stub returns naval: { blockades: [], seaControl: [], battles: [] }, deterministic; additive; must not break the UK-in-wwii-1939 e2e (empty frontier, military 80→85, 7-item legend).
  • Unit tests in server/engine.test.ts (blockade economy effect, sea control, fleet loss).
  • Version bump at PR time.
## What Add a **naval/air axis**: nations project power at sea and in the air — **blockades** (choke an enemy's economy/supply), **sea-lane control** (who commands the seas around coastal regions), and **naval battles** (a `fleet` marker can engage and be lost). ## Mechanism - `TurnResult` gains `naval: { blockades: { from: string; target: string; lift?: boolean }[]; seaControl: { regionKey: string; by: string }[]; battles: { a: string /* fleet marker id or nationRef */; b: string; winner?: string }[] }` — required, default `[]`s. - A blockade reduces a target's economy (ties into Trade/embargo); sea control is a per-coastal-region claim (a region's coastal access can be denied to non-controlling nations); a naval battle can destroy a `fleet` marker (ties into markers). - Builds on: markers (`fleet`), per-region stats, adjacency (coastal), embargoes. ## Acceptance - **e2e safety (critical):** stub returns `naval: { blockades: [], seaControl: [], battles: [] }`, deterministic; additive; must **not** break the UK-in-`wwii-1939` e2e (empty frontier, military 80→85, 7-item legend). - Unit tests in `server/engine.test.ts` (blockade economy effect, sea control, fleet loss). - Version bump at PR time.
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OpenCode/History#65