feat: goddess sync, sanitize, and apotheosis init (chunk 3)

- initialState: add initialGoddessState() with all goddess sub-objects
- apotheosis: init GoddessState on first apotheosis, preserve on subsequent
- game: add goddessSpread block in validateAndSanitize (server-only fields capped, forward-only boss/quest/achievement enforcement)
- debug: add injectMissingGoddessExplorationAreas helper and inject all 8 goddess content arrays in syncNewContent
- vitest.config.ts: remove 8 goddess data files from coverage exclude (now imported via initialState)
- tests: full coverage for all new code (482 tests, 100% coverage)
This commit is contained in:
2026-04-13 14:23:02 -07:00
committed by Naomi Carrigan
parent c5d1f53eef
commit 7da1f3942d
9 changed files with 666 additions and 32 deletions
+8 -3
View File
@@ -46,10 +46,15 @@ Branch: `feat/goddess`
- [ ] Goddess crafting route
- [ ] Goddess exploration route
## Chunk 5 — UI: Resource Bar + Tab Row
## Chunk 5 — UI: Resource Bar + Mode/Tab Nav
- [ ] Add goddess currencies to resource bar dropdown (greyed pre-apotheosis)
- [ ] Add second tab row to nav (always visible, locked pre-apotheosis)
- [ ] `.goddess-mode` CSS class toggle on root when goddess tab active
- [ ] Add **Mode bar** (Row 1) — `Mortal | Goddess | Vampire` — always visible, locked modes show padlock pre-unlock
- [ ] Add **Tab bar** (Row 2) — swaps entirely based on selected mode:
- Mortal: Zones · Quests · Adventurers · Equipment · Upgrades · Prestige · Transcendence · Crafting · Exploration · Achievements · Codex · Story · Daily
- Goddess: Zones · Disciples · Quests · Equipment · Upgrades · Consecration · Enlightenment · Crafting · Exploration · Achievements
- Vampire: *(future — TBD)*
- [ ] Persist selected mode in game state (survives page reload)
- [ ] `.goddess-mode` CSS class toggle on root when Goddess mode selected
- [ ] 300ms CSS fade transition between base and goddess themes
## Chunk 6 — UI: Goddess Panels