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.2 KiB
2.2 KiB
| id | title | priority | status | scope | category | owner | created | updated_at | blocked_by | follow_ups | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| g2-12g | Underground — layer rendering + layer-switch UI (Game 2) — OOS | p3 | oos | game2 | ui | unassigned | 2026-06-06 | 2026-06-06 |
|
Context
Presentation layer for the underground stack. The world map renders one active layer at a time with a switcher to move between Surface and L1/L2/L3, per g2-12's "Renderer supports layer toggle". Underground terrain, cavern states, connection points, structural damage, and per-layer fog (g2-12e) all need visuals; the minimap shows the active layer.
Acceptance (Game 2)
- Layer-switch UI control (e.g. depth selector / ascend-descend buttons + hotkeys); switching re-renders terrain, fog, units, cities, and minimap for the selected
LayerIndex. - Underground terrain renderers for the
g2-12bpalette (cavern, lava tube, underground river, deep ore vein, ancient ruins, mushroom forest, collapsed tunnel). - Cavern-state + structural visuals: raw vs finished vs developed vs cracked vs rubble vs void/sinkhole readable at a glance.
- Connection-point indicators (mine shaft, natural entrance, etc.) on both the affected surface and underground tiles; "this tile has excavated space below" affordance on the surface view.
- Per-layer fog rendered via the layer-aware
fog_renderer/minimap(g2-12e); only the active layer's units/cities shown. - Phase-gate proof scene under
scenes/tests/capturing surface + each underground layer + a layer transition, perphase-gate-protocol.md.
Source-of-truth rails
- Presentation only (Rail 3): GDScript renderers + UI; no simulation logic.
- Rust crate: consumes layer state from
mc-state/mc-vision; no new sim crate. - JSON path: underground terrain/connection visuals via
ThemeAssets+ the existing token pipeline.
Out of scope (for any milestone)
- Game 1 single-layer rendering unchanged (no switcher shown when only Surface exists).
- Vertical city floor-stack rendering →
g2-11.
References
public/games/age-of-dwarves/docs/terrain/UNDERGROUND.md,VERTICAL_LAYERS.md.claude/instructions/phase-gate-protocol.md- Parent:
g2-12· Blocked by:g2-12a,g2-12b,g2-12e