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>
2.3 KiB
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 |
|
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 inmc-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:
CavernStateenum onTileState.
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