magicciv/.project/objectives/g2-12g-layer-rendering-switch-ui-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.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
g2-12a
g2-12b
g2-12e

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-12b palette (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, per phase-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