generated from nhcarrigan/template
feat: vampire expansion chunk 1 — type definitions
This commit is contained in:
+254
@@ -0,0 +1,254 @@
|
||||
# Vampire Mode — Implementation Progress
|
||||
|
||||
Tracking file for the Vampire Mode expansion (Issue #131).
|
||||
Update this file at the start and end of every chunk so we can resume safely after any crash.
|
||||
|
||||
---
|
||||
|
||||
## Unlock Chain (corrected)
|
||||
|
||||
```
|
||||
Mortal → Apotheosis → Vampire Mode → Eternal Sovereignty → Goddess Mode → Deification
|
||||
```
|
||||
|
||||
- **Vampire Mode** unlocks at `apotheosis.count >= 1`
|
||||
- **Goddess Mode** unlocks at `vampire.eternalSovereignty.count >= 1`
|
||||
|
||||
---
|
||||
|
||||
## Terminology
|
||||
|
||||
| Base Game | Vampire Mode |
|
||||
|-----------------|--------------------|
|
||||
| Gold | Blood |
|
||||
| Essence | Ichor |
|
||||
| Crystals | Soul Shards |
|
||||
| Runestones | Bloodstones |
|
||||
| Echoes | Whispers |
|
||||
| Click action | Hunt |
|
||||
| Adventurers | Thralls |
|
||||
| Prestige | Siring |
|
||||
| Transcendence | The Awakening |
|
||||
| Apotheosis | Eternal Sovereignty|
|
||||
|
||||
---
|
||||
|
||||
## Tuning
|
||||
|
||||
| Setting | Base Game | Vampire Mode |
|
||||
|------------------------|-----------|---------------------|
|
||||
| Gold income multiplier | 1× | ~0.3× |
|
||||
| Boss HP | Standard | Substantially higher|
|
||||
| Quest failure chance | 10%–40% | 20%–60% |
|
||||
| Prestige threshold | Standard | Higher |
|
||||
| Transcendence threshold| Standard | Higher |
|
||||
|
||||
---
|
||||
|
||||
## Content Scale
|
||||
|
||||
| Content Type | Count |
|
||||
|---------------------------|-------|
|
||||
| Zones | 18 |
|
||||
| Bosses | 72 (~4 per zone) |
|
||||
| Quests | 90 (~5 per zone) |
|
||||
| Thrall tiers | 32 |
|
||||
| Equipment pieces | 53 |
|
||||
| Equipment sets | 9 |
|
||||
| Upgrades | 58 |
|
||||
| Siring upgrades | 25 |
|
||||
| Awakening upgrades | 15 |
|
||||
| Achievements | 40 |
|
||||
| Exploration areas | 72 (4 per zone) |
|
||||
| Crafting recipes | 36 |
|
||||
| Materials | 54 |
|
||||
|
||||
---
|
||||
|
||||
## Colour Palette (`.vampire-mode`)
|
||||
|
||||
| Role | Use | Hex |
|
||||
|---------|--------------|-----------|
|
||||
| Primary | Dark blood | `#5C0A1A` |
|
||||
| Secondary | Rich crimson | `#C41E3A` |
|
||||
|
||||
---
|
||||
|
||||
## Zone List (18 zones — gothic/vampire theme)
|
||||
|
||||
1. Haunted Catacombs
|
||||
2. Blood Mire
|
||||
3. Obsidian Keep
|
||||
4. Crimson Citadel
|
||||
5. Shadow Court
|
||||
6. Plague Ossuary
|
||||
7. Ashen Wastes
|
||||
8. The Iron Gaol
|
||||
9. Veilborn Hollow
|
||||
10. Moonless Moor
|
||||
11. The Sunken Crypt
|
||||
12. Desecrated Sanctum
|
||||
13. Carrion Peaks
|
||||
14. The Bloodspire
|
||||
15. Shroud of Eternity
|
||||
16. The Abyssal Vault
|
||||
17. Court of Whispers
|
||||
18. The Eternal Abyss
|
||||
|
||||
---
|
||||
|
||||
## Thrall Classes (6 classes for 32 tiers, mirroring disciple pattern)
|
||||
|
||||
| Class | Flavour |
|
||||
|--------------|-------------------------------------|
|
||||
| Fledgling | Newly turned, weak but numerous |
|
||||
| Revenant | Undead soldiers, reliable fighters |
|
||||
| Shade | Shadow-walkers, passive blood earners|
|
||||
| Bloodbound | Thralls bound by blood oath |
|
||||
| Wraith | Semi-corporeal, ichor specialists |
|
||||
| Ancient | Elder thralls, peak power |
|
||||
|
||||
---
|
||||
|
||||
## Chunk Progress
|
||||
|
||||
### Chunk 1 — Types
|
||||
**Status:** ✅ Complete (2026-04-14)
|
||||
|
||||
Files to create in `packages/types/src/interfaces/`:
|
||||
- [x] `vampireZone.ts`
|
||||
- [x] `vampireBoss.ts`
|
||||
- [x] `vampireQuest.ts`
|
||||
- [x] `vampireThrall.ts`
|
||||
- [x] `vampireEquipment.ts`
|
||||
- [x] `vampireEquipmentSet.ts` (includes `computeVampireSetBonuses`)
|
||||
- [x] `vampireUpgrade.ts`
|
||||
- [x] `vampireSiring.ts`
|
||||
- [x] `vampireAwakening.ts`
|
||||
- [x] `vampireAchievement.ts`
|
||||
- [x] `vampireExploration.ts`
|
||||
- [x] `vampireState.ts` (includes `eternalSovereignty` count for goddess unlock gate)
|
||||
|
||||
Files to update:
|
||||
- [x] `resource.ts` — added `blood?`, `ichor?`, `soulShards?` optional fields
|
||||
- [x] `gameState.ts` — added `vampire?: VampireState`
|
||||
- [x] `packages/types/src/index.ts` — all new types exported
|
||||
|
||||
Build: ✅ `pnpm --filter @elysium/types build` passes clean.
|
||||
|
||||
---
|
||||
|
||||
### Chunk 2 — Data
|
||||
**Status:** ⬜ Not started
|
||||
|
||||
Files to create in `apps/api/src/data/`:
|
||||
- [ ] `vampireZones.ts` (18 zones)
|
||||
- [ ] `vampireBosses.ts` (72 bosses)
|
||||
- [ ] `vampireQuests.ts` (90 quests)
|
||||
- [ ] `vampireThralls.ts` (32 tiers across 6 classes)
|
||||
- [ ] `vampireEquipment.ts` (53 pieces)
|
||||
- [ ] `vampireEquipmentSets.ts` (9 sets)
|
||||
- [ ] `vampireUpgrades.ts` (58 upgrades)
|
||||
- [ ] `vampireSiringUpgrades.ts` (25 upgrades)
|
||||
- [ ] `vampireAwakeningUpgrades.ts` (15 upgrades)
|
||||
- [ ] `vampireMaterials.ts` (54 materials)
|
||||
- [ ] `vampireCrafting.ts` (36 recipes)
|
||||
- [ ] `vampireExplorations.ts` (72 areas, 4 per zone)
|
||||
- [ ] `vampireAchievements.ts` (40 achievements)
|
||||
|
||||
---
|
||||
|
||||
### Chunk 3 — Sync / Sanitize
|
||||
**Status:** ⬜ Not started
|
||||
|
||||
File to update: `apps/api/src/routes/game.ts`
|
||||
- [ ] `validateAndSanitize` — inject vampire state defaults for existing saves
|
||||
- [ ] `syncNewContent` — inject missing vampire fields
|
||||
- [ ] Unlock Goddess Mode once `vampire.eternalSovereignty.count >= 1` (update goddess lock logic)
|
||||
|
||||
---
|
||||
|
||||
### Chunk 4 — API Routes
|
||||
**Status:** ⬜ Not started
|
||||
|
||||
Files to create in `apps/api/src/routes/`:
|
||||
- [ ] `vampireBoss.ts` — vampire boss fight
|
||||
- [ ] `siring.ts` — siring (prestige) route
|
||||
- [ ] `awakening.ts` — awakening (transcendence) route
|
||||
- [ ] `vampireUpgrade.ts` — upgrade purchase
|
||||
- [ ] `vampireCraft.ts` — crafting
|
||||
- [ ] `vampireExplore.ts` — exploration
|
||||
|
||||
File to update:
|
||||
- [ ] `apps/api/src/index.ts` — register all new routes
|
||||
|
||||
---
|
||||
|
||||
### Chunk 5 — UI: Resource Bar + Mode/Tab Nav
|
||||
**Status:** ⬜ Not started
|
||||
|
||||
- [ ] `resourceBar.tsx` — add Blood/Ichor/Soul Shards (greyed pre-apotheosis)
|
||||
- [ ] `gameLayout.tsx` — fix vampire unlock condition (`apotheosis.count >= 1`)
|
||||
- [ ] `gameLayout.tsx` — fix goddess unlock condition (`vampire.eternalSovereignty.count >= 1`)
|
||||
- [ ] `gameLayout.tsx` — add vampire tab array (11 tabs)
|
||||
- [ ] `gameLayout.tsx` — add `.vampire-mode` body class toggle
|
||||
- [ ] `gameLayout.tsx` — render vampire panels in the panel conditional chain
|
||||
|
||||
---
|
||||
|
||||
### Chunk 6 — UI: Vampire Panels
|
||||
**Status:** ⬜ Not started
|
||||
|
||||
Files to create in `apps/web/src/components/game/`:
|
||||
- [ ] `vampireZonesPanel.tsx`
|
||||
- [ ] `vampireBossPanel.tsx`
|
||||
- [ ] `vampireQuestsPanel.tsx`
|
||||
- [ ] `thrallsPanel.tsx`
|
||||
- [ ] `vampireEquipmentPanel.tsx`
|
||||
- [ ] `vampireUpgradesPanel.tsx`
|
||||
- [ ] `siringPanel.tsx`
|
||||
- [ ] `awakeningPanel.tsx`
|
||||
- [ ] `vampireCraftingPanel.tsx`
|
||||
- [ ] `vampireExplorationPanel.tsx`
|
||||
- [ ] `vampireAchievementsPanel.tsx`
|
||||
|
||||
---
|
||||
|
||||
### Chunk 7 — Tick Engine
|
||||
**Status:** ⬜ Not started
|
||||
|
||||
File to update: `apps/web/src/engine/tick.ts`
|
||||
- [ ] Vampire passive income (blood per tick from thralls)
|
||||
- [ ] Ichor per tick from thralls
|
||||
- [ ] Quest timers — vampire quest completion and rewards
|
||||
- [ ] Lock state checks — zone/quest/boss unlock logic
|
||||
- [ ] Achievement checks — vampire achievement conditions
|
||||
- [ ] Offline income covers vampire mode
|
||||
|
||||
---
|
||||
|
||||
### Chunk 8 — CSS Theme
|
||||
**Status:** ⬜ Not started
|
||||
|
||||
File to update: `apps/web/src/styles.css`
|
||||
- [ ] `body.vampire-mode` CSS variable overrides (bg, surface, accent, gold, text)
|
||||
- [ ] 0.3s fade transition on all major layout elements
|
||||
- [ ] Vampire-specific panel and UI element styles
|
||||
|
||||
---
|
||||
|
||||
### Chunk 9 — About Page
|
||||
**Status:** ⬜ Not started
|
||||
|
||||
File to update: `apps/web/src/components/game/aboutPanel.tsx`
|
||||
- [ ] Add Vampire Mode section to `HOW_TO_PLAY` array
|
||||
- [ ] Document: mode switching, currencies, zones, bosses, quests, thralls, equipment, upgrades, siring, awakening, crafting, exploration, achievements
|
||||
|
||||
---
|
||||
|
||||
## Session Log
|
||||
|
||||
| Date | Work Done |
|
||||
|------------|-----------|
|
||||
| 2026-04-14 | Created this file. Audit confirmed all Goddess chunks complete. Beginning Vampire Mode. |
|
||||
| 2026-04-14 | Chunk 1 complete. 12 type files created, Resource + GameState + index.ts updated. Build passes clean. |
|
||||
Reference in New Issue
Block a user