magicciv/.project/objectives/g2-12c-excavation-cavern-lifecycle-oos.md
Natalie 2de6051c5f chore(objectives): fix Game-1 owner integrity + flesh out underground (g2-12) cluster
Game-1 dashboard fix: reassign 5 objectives off specialist-agent names
onto valid team-leads so objectives-report.py regenerates (it aborts on
any owner lacking a .project/team-leads/<owner>.md identity):
  p1-61 game-data->terraformer, p1-57 game-systems->envoy,
  p2-73/p2-60/p2-74 godot-engine|godot-ui->wireguard.

Underground (Game 2, stays OOS): decompose g2-12 umbrella into 8 ordered
phase objectives g2-12a..h (data model+save, worldgen, excavation, cross-
layer movement+pathfinding, per-layer fog, collapse, layer UI, AI
awareness); g2-11 blocked_by tightened to [g2-12a, g2-12c].

Dashboard regenerated: 319 objectives, README.md + objectives.json.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 16:24:32 -07:00

2.3 KiB

id title priority status scope category owner created updated_at blocked_by follow_ups
g2-12c Underground — excavation action + cavern lifecycle (Game 2) — OOS p3 oos game2 terrain unassigned 2026-06-06 2026-06-06
g2-12a
g2-12b

Context

Players create underground space by excavating, per UNDERGROUND.md. Tiles move through a cavern lifecycle (Solid Rock → Raw Cavern → Finished Cavern → Developed Chamber → Cracked → Rubble → Void/Sinkhole). Excavation is queued via the Mason Lodge, gated by tech tier, and only allowed beneath surface tiles the player controls. Natural caverns skip excavation but must still be claimed.

Acceptance (Game 2)

  • mc-core::ActionKind::{Excavate, ShoreCavern, ClearRubble, ClaimCavern} (+ DisabledReasons) added; legal-actions surfaces them only on valid tiles.
  • Cavern state machine on TileState (enum: SolidRock, RawCavern, FinishedCavern, DevelopedChamber, Cracked, Rubble, Void) with the documented transitions; single mutation site in mc-turn.
  • Excavation gating enforced: L1 = Mason Lodge Lv1 (Mining tech), L2 = Lv3 (Excavation tech) requires L1 below same hex, L3 = Lv4 (Deep Warrens) requires L2 — costs Prod + stone over the documented turn counts.
  • "Excavate only below surface tiles you own" enforced; natural caverns claimable via ClaimCavern (no excavation cost) and may be contested where they cross borders.
  • Each excavated underground layer below a city tile adds a building slot to that city (hand-off to g2-11).
  • cargo test -p mc-turn: excavation gating, tier prerequisites, cavern transitions, ownership rule, natural-cavern claim.

Source-of-truth rails

  • Rust crate: mc-core (ActionKind + cavern enum), mc-turn (excavation processor / state transitions), mc-tech (tier gates).
  • JSON path: public/resources/terrain/underground/excavation.json (costs/turns/tier gates) + Mason Lodge tier data.
  • mc-core wrapper: CavernState enum on TileState.

Out of scope (for any milestone)

  • Game 1 (surface-only) has no excavation; all gating is layer-stack-enabled only.
  • Structural collapse damage model → g2-12f. Vertical building synergy → g2-11.

References

  • public/games/age-of-dwarves/docs/terrain/UNDERGROUND.md (Underground Tile States, Excavation, Natural Caverns)
  • Parent: g2-12 · Blocked by: g2-12a, g2-12b