- Fix mana conversion to deduct from regen instead of mana pool (resolves player stuck at 1 mana below cap)
- Fix Spire Tab error by removing unused legacy import (store-modules/enemy-utils)
- Fix Grimoire Tab error by adding Array.isArray check for effects.map
- Move utility functions from legacy store-modules to utils/ to eliminate legacy dependencies
- Add regression test for mana conversion fix
- Update SpellsTab.tsx imports to use utils instead of legacy stores
- Added useManaStore import to skillStore.ts
- Added mana deduction logic in startStudyingSkill action
- Mana is now properly deducted when starting to study a skill (unless already paid)
The startStudyingSkill() and startStudyingSpell() functions in skillStore.ts
were setting currentStudyTarget but not updating currentAction in combatStore.
Added useCombatStore.getState().setAction('study') calls to both functions
so the game tick properly processes study progress.
- Added startCraftingEquipment action that validates and initializes equipment crafting
- Added cancelEquipmentCrafting action that cancels crafting and refunds mana
- Used CraftingEquipment functions directly instead of deprecated wrapper actions
- Updated craftingStore imports to include useManaStore and useUIStore
- Fixed crafting/index.tsx barrel file export (removed non-existent type exports)
- Fixed syntax errors in craftingStore.ts (missing commas in function params)
Fixes issue where EquipmentCrafter component couldn't find these actions on craftingStore.
- Fixed src/components/game/GameContext/Provider.tsx
- Fixed src/components/game/GameContext/types.ts
The upgrade-effects.ts imports these from special-effects.ts but doesn't re-export them.
- Updated AGENTS.md to include store/ directory and clarify store architecture
- Updated GAME_BRIEFING.md Code Architecture section with store/ and legacy store info
- Updated skills.md with skill state management information
- Includes other refactoring changes (store hooks, component updates, etc.)
- Updated StatsTab to use hooks directly (useSkillStore, usePrestigeStore, etc.)
- Updated DebugTab to use hooks directly
- Updated all debug child components (GameStateDebug, SkillDebug, AttunementDebug, etc.)
- Updated all stats child components (ManaStatsSection, CombatStatsSection, etc.)
- Fixed UpgradeEffectsSection.tsx syntax errors
- Updated page.tsx to not pass store prop to StatsTab and DebugTab
- All components now use modular stores directly instead of receiving store prop
- Refactored page.tsx (613→252 lines) with GameOverScreen and LeftPanel extracted
- Refactored StatsTab.tsx (584→92 lines) with section components
- Refactored SkillsTab.tsx (434→54 lines) with sub-components
- Created modular structure for GameContext, LootInventory, and other components
- All extracted components organized into feature directories
- Rewrite skill definitions with 5-tier Continuous Talent Tree
- Add perk choices at Level 5 and Level 10 for each tier
- Add Elite Perks at T3 L10 and T5 L10
- Remove scrollCrafting (violates NO INSTANT FINISHING pillar)
- Set max:1 for skills that don't need evolution paths
- All 512 tests passing
- Created GAME_BRIEFING.md with full documentation of all game systems
- Fixed getFloorElement to use cycle length instead of hardcoded 8
- Fixed deprecated tests referencing removed elements (life, blood, wood)
- Fixed deprecated tests referencing removed skills (deepReservoir, etc.)
- Fixed guardian tests to not expect floor 70
- Fixed computeRegen tests to account for attunement regen correctly
- All 512 tests now pass
The game briefing document includes:
- Core game loop and progression
- Mana system with all 14 mana types
- Time and incursion mechanics
- Spire and floor system with room types
- Combat system with elemental effectiveness
- Guardian and pact system
- Attunement system (Enchanter, Invoker, Fabricator)
- Skill evolution with 5 tiers and milestone upgrades
- Equipment and enchantment system
- Golemancy system
- Prestige/loop mechanics
- Complete formulas and system interactions