Generation pipeline focus — map all layers from planetary heightmaps to walkable tile environments, build bare-minimum free camera viewer, close Sprint 37 test/infra debt. Character and apartment work formally parked behind the full generation cascade. 13 tickets across 5 teams (planning: 1, server: 4, client: 5, copy: 1, ci: 2). Added Write(docs/sprints/*) and Bash(mkdir) permissions for sprint planning. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3.6 KiB
3.6 KiB
Sprint 38: Depth — Client Tasks
Goal: Map the generation pipeline from planetary heightmaps to walkable tile environments, formally park character/apartment work behind the full cascade, and close test/infra debt from Sprint 37.
Branch: sprint-38/client
Agents: Stig (dev), Tyre (arch), Hoshe (QA)
New Tickets
| # | Title | Priority | Blocked by |
|---|---|---|---|
| #898 | Free camera viewer — WASD pan + scroll zoom, implant/atlas/map access | high | — |
| #882 | Strip archetype-driven client code | medium | — |
| #879 | Revive fog state behavioral tests | medium | — |
| #867 | dialogue_box confrontation_monologue signal bug | medium | — |
| #871 | Pre-existing test failures — umbrella triage | medium | — |
Use tooling/db/ticket show <id> for full details.
Key Decisions
decisions/architecture.md— D-169 (implant UI components), D-170 (HUD visibility)- Implant component library:
client/ui/implant/(ImplantPanel, ImplantHeader, etc.) - HUD layer manager:
client/scripts/autoloads/hud_groups.gd
Notes
#898 — Free camera viewer (bare minimum, throwaway)
- The rendering system is up in the air — this viewer is iterative/disposable. Do not over-engineer.
- Current camera is locked to
GameState.player_position(client/scripts/autoloads/game_state.gd:18). - Decouple: add a debug/observer mode where camera position is independent of player entity.
- Controls: WASD/arrow key pan, scroll-to-zoom. That's it.
- The observer needs access to: implants (D-169/D-170 UI system), atlas, and map. Wire up existing
HudGroupsapp paths (implant/map,implant/wiki/gttr, etc.). - No player entity needed. No server-side observer entity. Just a free camera over whatever tile data exists.
- Key files:
client/main.gd(camera setup),client/scripts/autoloads/game_state.gd(player_position),client/scripts/autoloads/hud_groups.gd(implant app switching).
#882 — Strip archetype client code
- Follow-up to server #878 (done).
CharacterArchetypetrace is Phase 6 filler. - Find all client references to archetype enums/types and remove them.
- #878 already removed the server side — client should have no remaining consumers.
#879 — Revive fog state behavioral tests
test_fog_sprint22.gdwas deleted in Sprint 37 (#870 parse-error cleanup).- Contained unique behavioral tests:
EXP_EXPLOREDpersistence after leaving LOS, grow-only bounds invariant. - Rewrite against current
FogStateAPI. Prefer live Gauntlet testing over mocks per testing preferences.
#867 — dialogue_box confrontation signal bug
signal_firedremains false after_on_option_pressed(0)on a confrontation option._start_confrontation_beatlikely not firing in headless test mode.- Check signal wiring in
client/ui/dialogue_box.gd.
#871 — Pre-existing test failures umbrella triage
- 13 suites affected. For each: investigate, determine if it's stale assertion or real regression, then either fix inline or create a child ticket.
- Per feedback rules: broken tests need a fix or a dated ticket, never a shrug.
Dependency Chain
#898 (free camera viewer) → standalone, start immediately
#882 (strip archetype code) → standalone (#878 done)
#879 (fog tests) → standalone
#867 (signal bug) → standalone
#871 (test triage) → standalone, spawns child tickets
PR Workflow
When ready to submit, create a PR with tea CLI:
tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "feat(client): sprint 38 client" --description "body" --base main --head sprint-38/client