Files
elysium/goddess-todo.md
T
hikari 0d36b255ee feat: goddess API routes, services, and tests (chunk 4)
Add six new goddess-mode API routes (boss fight, consecration,
enlightenment, upgrade purchase, crafting, exploration) alongside
matching service modules and full test suites at 100% coverage.
2026-04-13 15:48:35 -07:00

98 lines
5.1 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 ✅ COMPLETE
- [x] Update `validateAndSanitize` to inject goddess state defaults for existing saves
- [x] Update force-sync (`syncNewContent`) to inject missing goddess fields
- [x] Add apotheosis unlock flag handling
- Lint ✅ · Build ✅ · Tests ✅ (100% coverage)
## Chunk 4 — API Routes ✅ COMPLETE
- [x] Goddess boss fight route (`goddessBoss.ts`)
- [x] Consecration (goddess prestige) route (`consecration.ts`)
- [x] Enlightenment (goddess transcendence) route (`enlightenment.ts`)
- [x] Goddess upgrade purchase route (`goddessUpgrade.ts`)
- [x] Goddess crafting route (`goddessCraft.ts`)
- [x] Goddess exploration route (`goddessExplore.ts`)
- [x] Services: `consecration.ts`, `enlightenment.ts`
- [x] Tests for all 6 routes (100% coverage)
- Lint ✅ · Build ✅ · Tests ✅ (100% coverage)
## 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