diff --git a/docs/circular-deps.txt b/docs/circular-deps.txt index 48e7bd7..b1c9b6c 100644 --- a/docs/circular-deps.txt +++ b/docs/circular-deps.txt @@ -1,8 +1,8 @@ # Circular Dependencies -Generated: 2026-05-26T08:53:53.586Z +Generated: 2026-05-26T09:20:42.073Z Found: 6 circular chain(s) — these MUST be fixed before modifying involved files. -1. Processed 135 files (1.5s) (2 warnings) +1. Processed 135 files (1.7s) (2 warnings) 2. 1) utils/floor-utils.ts > utils/room-utils.ts > utils/enemy-utils.ts 3. 2) utils/floor-utils.ts > utils/room-utils.ts 4. 3) stores/gameStore.ts > stores/gameActions.ts diff --git a/docs/dependency-graph.json b/docs/dependency-graph.json index bdd3c02..f9cf806 100644 --- a/docs/dependency-graph.json +++ b/docs/dependency-graph.json @@ -1,6 +1,6 @@ { "_meta": { - "generated": "2026-05-26T08:53:51.901Z", + "generated": "2026-05-26T09:20:40.084Z", "description": "Import dependency graph for src/lib/game. Keys are files, values are arrays of files they import.", "usage": "To find what a file affects, search for its path in the VALUES. To find what a file depends on, look at its KEY entry." }, diff --git a/scorecard.png b/scorecard.png index efe38c7..e9b7fe2 100644 Binary files a/scorecard.png and b/scorecard.png differ diff --git a/src/lib/game/stores/gameStore.ts b/src/lib/game/stores/gameStore.ts index 9677ec6..2a7f775 100644 --- a/src/lib/game/stores/gameStore.ts +++ b/src/lib/game/stores/gameStore.ts @@ -229,6 +229,16 @@ export const useGameStore = create()( if (newProgress >= requiredTime) { addLog(`📜 Pact signed with ${guardian.name}! You have gained their boons.`); + + // Unlock mana types granted by this guardian + const manaStore = useManaStore.getState(); + for (const manaType of guardian.unlocksMana || []) { + const result = manaStore.unlockElement(manaType, 0); + if (result.ok) { + addLog(`✨ ${manaType.charAt(0).toUpperCase() + manaType.slice(1)} mana unlocked!`); + } + } + writes.prestige = { ...(writes.prestige || {}), signedPacts: [...ctx.prestige.signedPacts, ctx.prestige.pactRitualFloor], diff --git a/src/lib/game/stores/prestigeStore.ts b/src/lib/game/stores/prestigeStore.ts index 6467f5c..e1eace5 100644 --- a/src/lib/game/stores/prestigeStore.ts +++ b/src/lib/game/stores/prestigeStore.ts @@ -6,6 +6,7 @@ import { persist } from 'zustand/middleware'; import { createSafeStorage } from '../utils/safe-persist'; import { PRESTIGE_DEF } from '../constants'; import { getGuardianForFloor } from '../data/guardian-encounters'; +import { useManaStore } from './manaStore'; import { okVoid, fail, ErrorCode } from '../utils/result'; import type { Result } from '../utils/result'; @@ -151,6 +152,15 @@ export const usePrestigeStore = create()( const guardian = getGuardianForFloor(state.pactRitualFloor); if (!guardian) return; + // Unlock mana types granted by this guardian + const manaStore = useManaStore.getState(); + for (const manaType of guardian.unlocksMana || []) { + const result = manaStore.unlockElement(manaType, 0); + if (result.ok) { + addLog(`✨ ${manaType.charAt(0).toUpperCase() + manaType.slice(1)} mana unlocked!`); + } + } + set({ signedPacts: [...state.signedPacts, state.pactRitualFloor], defeatedGuardians: state.defeatedGuardians.filter(f => f !== state.pactRitualFloor),