Files
elysium/goddess-todo.md
T
hikari 7da1f3942d 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)
2026-04-13 14:23:02 -07:00

94 lines
4.8 KiB
Markdown

# Goddess Expansion — Implementation Tracker
Branch: `feat/goddess`
## Chunk 1 — Types ✅ COMPLETE
- [x] Add `GoddessZone`, `GoddessBoss`, `GoddessQuest` interfaces
- [x] Add `GoddessDisciple` (Disciples) interface
- [x] Add `GoddessEquipment`, `GoddessUpgrade` interfaces
- [x] Add `GoddessExplorationState` interface
- [x] Add `ConsecrationData` + `ConsecrationUpgrade` (Prestige) interfaces
- [x] Add `EnlightenmentData` + `EnlightenmentUpgrade` (Transcendence) interfaces
- [x] Add `GoddessAchievement` interface
- [x] Add goddess currency fields (prayers, divinity, stardust) to `Resource`
- [x] Add top-level `GoddessState` container + add `goddess?` to `GameState`
- [x] Export all new types from `packages/types`
- Lint ✅ · Build ✅ · Tests ✅ (100% coverage)
## Chunk 2 — Data ✅ COMPLETE
- [x] `goddessZones.ts` — 18 goddess zones
- [x] `goddessBosses.ts` — 72 bosses (4 per zone)
- [x] `goddessQuests.ts` — 90 quests (5 per zone)
- [x] `goddessDisciples.ts` — 32 disciple tiers (oracle/seraph/invoker/templar/herald/warden classes)
- [x] `goddessEquipment.ts` — 53 equipment pieces (18 relics, 18 vestments, 17 sigils)
- [x] `goddessEquipmentSets.ts` — 9 equipment sets (with GoddessEquipmentSet type)
- [x] `goddessUpgrades.ts` — 57 upgrades (prayers/global/combat/consecration/disciple/boss)
- [x] `goddessConsecrationUpgrades.ts` — 25 consecration upgrades
- [x] `goddessEnlightenmentUpgrades.ts` — 15 enlightenment upgrades
- [x] `goddessMaterials.ts` — 54 sacred materials (3 per zone)
- [x] `goddessCrafting.ts` — 36 crafting recipes (2 per zone)
- [x] `goddessExplorations.ts` — 72 exploration areas (4 per zone)
- [x] `goddessAchievements.ts` — 40 achievements
- [x] `GoddessEquipmentSet` + `computeGoddessSetBonuses` added to `packages/types`
- NOTE: All data files excluded from coverage until Chunk 4 routes import them
- Lint ✅ · Build ✅ · Tests ✅ (100% coverage)
## Chunk 3 — Sync / Sanitize
- [ ] Update `validateAndSanitize` to inject goddess state defaults for existing saves
- [ ] Update force-sync (`syncNewContent`) to inject missing goddess fields
- [ ] Add apotheosis unlock flag handling
## Chunk 4 — API Routes
- [ ] Goddess boss fight route
- [ ] Consecration (goddess prestige) route
- [ ] Enlightenment (goddess transcendence) route
- [ ] Goddess upgrade purchase route
- [ ] Goddess crafting route
- [ ] Goddess exploration route
## Chunk 5 — UI: Resource Bar + Mode/Tab Nav
- [ ] Add goddess currencies to resource bar dropdown (greyed pre-apotheosis)
- [ ] 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
- [ ] `GoddessZonesPanel` — zones with lock states
- [ ] `GoddessBossPanel` — boss fights
- [ ] `GoddessQuestsPanel` — quests
- [ ] `DisciplesPanel` — goddess adventurers
- [ ] `GoddessEquipmentPanel` — equipment
- [ ] `GoddessUpgradesPanel` — upgrades
- [ ] `ConsecrationPanel` — goddess prestige
- [ ] `EnlightenmentPanel` — goddess transcendence
- [ ] `GoddessCraftingPanel` — crafting
- [ ] `GoddessExplorationPanel` — exploration
- [ ] `GoddessAchievementsPanel` — achievements
## Chunk 7 — Tick Engine
- [ ] Goddess passive income (prayers, divinity accumulation)
- [ ] Disciple passive income logic
- [ ] Lock state checks (no goddess income pre-apotheosis)
- [ ] Goddess quest timer logic
## Chunk 8 — CSS Theme
- [ ] Define goddess CSS variables (soft blue primary, gold/white accents)
- [ ] Apply `.goddess-mode` overrides to all themed elements
- [ ] Verify logo stays unchanged during theme shift
- [ ] Test fade transition smoothness
## Chunk 9 — About Page
- [ ] Update `HOW_TO_PLAY` array in `aboutPanel.tsx` with Goddess expansion documentation
## Notes
- Apotheosis = the unlock gate for all goddess content (replaces original "Transcendence 20" concept — verify exact trigger)
- Goddess currencies always visible in resource bar, greyed pre-apotheosis
- All goddess tabs always visible in second row, content locked internally pre-apotheosis
- Vampire Mode will follow same pattern as third tab row (future work, not this PR)
- Sync new content must inject goddess defaults for all existing saves