Commit Graph

86 Commits

Author SHA1 Message Date
n8n-gitea 5cbe672b8f docs: compress AGENTS.md + split combat-skills.ts (432 → 187+248 lines)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 32s
2026-05-14 15:34:50 +02:00
n8n-gitea ba231ac9dd fix: correct broken import paths in test files (stores-tests and index-tests)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 31s
Files in stores/__tests__/stores-tests/ and stores/__tests__/index-tests/
used relative paths (../../types or ../types) that resolved incorrectly.
Fixed all to use '../../../types' to properly reach src/lib/game/types.ts.

Also fixed mana-calculation.test.ts to import computeElementMax from
the correct location (@/lib/game/stores/index instead of @/lib/game/utils).
2026-05-13 23:33:33 +02:00
n8n-gitea bb268d4dea chore: cleanup — remove dead weight (prisma, db, examples, python scripts, workflow docs, redundant tsconfigs)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 34s
2026-05-13 12:16:11 +02:00
n8n-gitea 6ad48efff9 fix: add missing properties to GuardianDef type and GUARDIANS data
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 33s
- Add power, effects, signingCost, unlocksMana, damageMultiplier, insightMultiplier to GuardianDef interface
- Populate all 9 guardian entries with the new properties
- Fixes TS2339 errors in GuardianPanel, pactSlice, computed, EquipmentTab
2026-05-13 12:00:05 +02:00
n8n-gitea e437269adb fix(store/computed): remove banned 'life' element from getFloorElement()
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 34s
- Removed local FLOOR_ELEM_CYCLE array containing banned 'life' element
- Now imports FLOOR_ELEM_CYCLE from ../constants (which already excludes 'life')
- Updated getFloorElement() to use imported constant with dynamic length
2026-05-13 10:30:28 +02:00
n8n-gitea b0eea7dadd feat: split skills-v2-defs into category modules and fix export
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 35s
- Split 636-line skills-v2-defs.ts into 9 category files (all under 400 lines)
- Add skills-v2-registry.ts to build SKILLS_V2 flat record from modules
- Fix missing re-export of SKILLS_V2 from skills-v2.ts
- Fix clickMana clamping: remove Math.round to allow fractional values
- Fix golemDuration clamping: remove Math.round to allow fractional values
- Fix guardianConstructs effect: duration uses 'add' mode instead of 'multiply'
- All 70 existing tests pass
2026-05-12 11:28:44 +02:00
n8n-gitea f6bf049f91 Fix 3 bugs: equip crash, enchantment not processing, spire spell casting
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m43s
Bug 1: EquipmentTab handleEquip was passing useCombatStore to equipItem()
which needs the crafting store (has equipmentInstances/equippedInstances).
Fixed by using useCraftingStore instead.

Bug 2: processCraftingTick() from crafting-slice.ts was never called in the
game tick loop. Added call in tick-logic.ts when currentAction is
'design'/'prepare'/'enchant'/'craft' so enchantment progress advances.

Bug 3: equipmentSpellStates was initialized as [] and never populated from
equipped items. Added logic in tick-logic.ts to build equipmentSpellStates
from active equipment spells when climbing (currentAction === 'climb').
2026-05-11 12:07:12 +02:00
n8n-gitea ae0bf3e38d fix(spire): reset currentAction to meditate on spire exit; fix(crafting): wire enchanting state hooks to EnchantmentDesigner/Preparer/Applier
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m53s
2026-05-10 21:28:46 +02:00
n8n-gitea d1c90cd544 fix: SpireTab refresh - cast bar, mana costs, full-screen mode, exit button
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m14s
2026-05-08 14:57:35 +02:00
n8n-gitea 2130d30133 fix: resolve mana conversion, Spire/Grimoire tab errors, and legacy store references
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m33s
- 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
2026-05-08 13:48:53 +02:00
n8n-gitea c6d3e0d7bc fix: resolve test failures in skill, regen, spell-cost test files
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m33s
2026-05-08 12:04:42 +02:00
n8n-gitea 71fbc7c964 fix: SpireTab store props, mana regen display, skill cost deduction, grimoire cost format, unequip store, add test suite
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m34s
2026-05-08 11:45:31 +02:00
n8n-gitea 0fadbfef4a Fix skill study mana deduction in skillStore.ts
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m38s
- 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)
2026-05-08 11:01:01 +02:00
n8n-gitea 58aa74486e fix: BUG 4 - Add starting equipment to craftingStore initial state
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m9s
2026-05-07 14:07:23 +02:00
n8n-gitea be918d1bab fix: revert craftingStore.ts to working state, partial BUG 4 fix remaining
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m11s
2026-05-07 13:58:31 +02:00
n8n-gitea 482320b519 fix: apply DebugName wrappers to tab components (BUG 7 partial) and other updates
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m12s
2026-05-07 13:32:04 +02:00
n8n-gitea 7851d8c7cb fix: address multiple bugs (1,2,3,5,6,9,10,11,12,13) - partial fix for 4, remaining 7,8
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m9s
2026-05-07 12:28:16 +02:00
n8n-gitea 54d5e576ab Fix BUG 2: Set currentAction to 'study' when starting skill or spell study
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m21s
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.
2026-05-07 10:26:45 +02:00
n8n-gitea a4004be229 fix: SkillsTab barrel export, equipment store reads, LabTab re-export, debug null guards, GrimoireTab loaded state, spire tab switching
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m48s
2026-05-06 21:08:10 +02:00
n8n-gitea b7a91abc5d fix: handle undefined state/obj in mana calculations to prevent runtime error
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m20s
2026-05-06 12:42:25 +02:00
n8n-gitea 8b4a09a8c6 fix: handle undefined skills in computeTotalMaxMana to prevent production error
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m14s
2026-05-06 12:06:33 +02:00
n8n-gitea 17b3571a18 Fix: Add missing startCraftingEquipment and cancelEquipmentCrafting actions to craftingStore
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m37s
- 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.
2026-05-06 10:58:58 +02:00
Refactoring Agent 930d5b9e29 Fix incorrect imports: hasSpecial and SPECIAL_EFFECTS should be imported from special-effects.ts, not upgrade-effects.ts
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 40s
- 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.
2026-05-06 10:32:38 +02:00
Refactoring Agent fe2d1f6bc6 fix: guard localStorage for SSR, fix currentAction written to wrong store
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m5s
2026-05-06 09:45:28 +02:00
Refactoring Agent b0cc848909 fix: broken import paths, illegal import in function body, local fonts for Docker
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m23s
2026-05-05 20:23:47 +02:00
Refactoring Agent ed69a8f2b4 fix: migrate golemancy/activity/achievements, fix CraftingTab/SkillsTab/SpireTab/GolemancyTab/AchievementsTab store reads
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 2m1s
2026-05-05 16:11:28 +02:00
Refactoring Agent ed616738fd fix: lootInventory, prestige, golemancy, attunementStore export, debug components
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m21s
2026-05-05 15:00:22 +02:00
Refactoring Agent f0532c1673 Add attunementStore exports to stores/index.ts
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m22s
2026-05-05 13:56:20 +02:00
Refactoring Agent 3db7e07302 fix: migrate equipment and enchantment state to modular stores, fix EnchantmentDesigner
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m24s
2026-05-05 13:25:19 +02:00
Refactoring Agent dc1aad3700 Fix LeftPanel.tsx to use modular stores instead of legacy useGameStore
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m22s
- Added useCraftingStore import for crafting progress fields
- Changed spireMode/enterSpireMode to useCombatStore
- Changed currentStudyTarget to useSkillStore
- Changed crafting progress fields to useCraftingStore
- Added useCraftingStore export to stores/index.ts
- Kept useGameStore only for gatherMana, day, hour
2026-05-05 11:10:33 +02:00
Refactoring Agent bb8edaf57a fix: complete remaining tab migrations, fix LeftPanel ghost fields, remove backup files
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m42s
2026-05-04 16:52:43 +02:00
Refactoring Agent 837d963b63 fix: split SpireTab.tsx to 395 lines, remove require() imports, import from data modules; complete store migration
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 30m15s
2026-05-04 13:36:10 +02:00
Refactoring Agent 0eabd604b0 fix: Object.values null safety + Docker dev build
Build and Publish Mana Loop Docker Image / build-and-publish (push) Has been cancelled
- Change Dockerfile to use development build (better error messages)
- Add || {} fallbacks to all Object.values() calls accessing state
- Fixes "Cannot convert undefined or null to object" browser error during SSR/hydration
- Verified TypeScript compilation and Next.js build successful

Files modified:
- Dockerfile
- src/app/page.tsx
- src/components/game/tabs/StatsTab.tsx
- src/components/game/StatsTab/LoopStatsSection.tsx
- src/components/game/StatsTab/ElementStatsSection.tsx
- src/components/game/tabs/AttunementsTab.tsx
- src/components/game/tabs/GolemancyTab.tsx
- src/lib/game/effects.ts
- src/lib/game/utils/combat-utils.ts
- src/lib/game/crafting-loot.ts
- src/components/game/LootInventory/LootInventoryDisplay.tsx
- src/components/game/LootInventory/index.tsx
- src/components/game/crafting/EnchantmentDesigner/utils.ts
2026-05-04 11:03:11 +02:00
Refactoring Agent 98ab975fb9 Update documentation after refactoring: AGENTS.md, GAME_BRIEFING.md, skills.md
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 4m28s
- 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.)
2026-05-04 09:49:13 +02:00
Refactoring Agent ca07719456 fix: update StatsTab, DebugTab and all child components to use modular stores
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m42s
- 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
2026-05-02 23:43:49 +02:00
Refactoring Agent d5cbc9faff Fix build errors: update imports and re-exports
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m45s
- Fixed equipment/index.ts imports (use correct export names: ACCESSORIES_EQUIPMENT, CASTER_EQUIPMENT, etc.)
- Fixed page.tsx: added lazy, Suspense imports from react
- Fixed page.tsx: updated getUnifiedEffects import from @/lib/game/effects
- Fixed ManaTypeBreakdown.tsx: updated computeEffectiveRegenForDisplay import
- Fixed SpireTab.tsx: updated getEnemyName import from enemy-utils
- Fixed LeftPanel.tsx: updated getUnifiedEffects import from @/lib/game/effects
- Build now succeeds with all tabs working
2026-05-02 18:36:36 +02:00
Refactoring Agent d2d28887b1 Refactor large files into modular components
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m9s
- 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
2026-05-02 17:35:03 +02:00
Refactoring Agent c9ae2576f4 fix: SLOT_NAMES export and refactor: split crafting-slice.ts into modules
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m51s
2026-05-02 10:59:36 +02:00
Refactoring Agent dc38445225 refactor: extract components from SpireTab.tsx to reduce below 400 lines
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m11s
2026-05-01 17:02:32 +02:00
Refactoring Agent f0ab3ca3ce refactor: extract components from SkillsTab.tsx to reduce below 400 lines
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m10s
2026-05-01 16:41:29 +02:00
Refactoring Agent 03815f27ee feat: add prestige system and skill upgrades with comprehensive documentation
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 5m57s
2026-05-01 15:18:09 +02:00
Refactoring Agent c8a01acda3 Fix Task 9: Climb/Descend Controls
1. Fixed exitSpireMode in store.ts to allow exit at any floor for re-entry resume
2. Removed floor restriction on Exit Spire button in page.tsx
3. Updated descend button label to use currentAction for 'Climbing' status
2026-04-29 10:39:11 +02:00
Refactoring Agent 6f0b86d4d7 Fix Task6: Remove duplicate SpireTab.tsx and verify swarm mode
- Deleted old src/components/game/SpireTab.tsx (duplicate of tabs/SpireTab.tsx)
- Verified SWARM_CONFIG: 15% chance, 3-6 enemies at 40% HP
- Verified UI in tabs/SpireTab.tsx correctly renders each swarm enemy individually
- Verified generateSwarmEnemies() and generateRoomType() logic is correct
2026-04-28 15:23:30 +02:00
Refactoring Agent 984459200b Task 10(2f): Add Activity Log to SpireModeUI
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 20m15s
- Added ActivityLogEntry type to game types
- Added activityLog state to GameState interface
- Added addActivityLogEntry helper function in store.ts
- Added addActivityLog action to GameStore
- Hooked into combat events: damage_dealt, enemy_defeated, floor_cleared, floor_transition
- Hooked into special effects: dodge, armor_proc, special_effect (First Strike, Combo Master, etc.)
- Hooked into golem attacks and puzzle solving
- Updated SpireTab (tabs/SpireTab.tsx) to display activity log with colored entries
- Latest entries first, scrollable list with event type-based styling
2026-04-28 13:50:01 +02:00
Refactoring Agent 8aacc2c88e Fix Spire Mode floor rendering and swarm floors (Tasks 5 & 6)
- Added enemy naming system with getEnemyName() function
- Updated EnemyState type to include name field
- Updated generateSwarmEnemies() and generateFloorState() to assign enemy names
- Fixed SpireTab.tsx (both versions) to display:
  - Floor type (Combat/Swarm/Speed/Guardian/Puzzle) with icons
  - Named enemies based on element and floor tier
  - Special floor properties (armor %, dodge chance)
  - Multiple enemies for swarm floors with individual HP bars
- Added ROOM_TYPE_LABELS to constants for display
- Verified floor type generation logic works correctly
- Build succeeds with npm run build
2026-04-28 13:36:16 +02:00
Refactoring Agent 7056dc04d6 Fix Spire Mode UI issues: HP bar live updates and casting progress overflow
Task 7 (2c): HP Bar Live Updates
- Sync floorHP state with enemy HP after damage is applied
- This ensures the HP bar updates in real-time as damage lands
- Applied fix in main spell casting, equipment spell processing, and golem attacks

Task 8 (2d): Casting Progress Overflow
- Reset castProgress to 0 when mana is insufficient (instead of keeping accumulated progress)
- Added similar fix for equipment spell casting progress
- Prevents progress bar from showing >100% when out of mana

Files modified:
- src/lib/game/store.ts (added floorHP sync and progress reset logic)
- src/components/game/SpireTab.tsx (UI component using store state)
- src/components/game/tabs/SpireTab.tsx (UI component using store state)
2026-04-28 13:24:30 +02:00
Refactoring Agent 33c5a49577 Fix missing ENCHANT_SPEED_TIERS definition (Sub-Task 7 fix)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 5m42s
2026-04-27 13:36:22 +02:00
Refactoring Agent eeb1e3c784 SkillsTab Modifications (Bugs 9,11,12,13)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m12s
2026-04-27 13:26:02 +02:00
Refactoring Agent ebb9d15e9e Deduct mana conversion rates from raw regen (Bug 10)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 4m35s
- Added getTotalAttunementConversionDrain function to calculate total conversion drain
- Updated computeRegen to include attunement regen bonus
- Added computeEffectiveRegenForDisplay function for UI display
- Added conversionDrains to GameState to track per-attunement drain
- Updated tick function to track and persist conversion drains
- Build passes successfully
2026-04-27 12:25:17 +02:00
Refactoring Agent 8261baab54 Consolidate disenchanting into CraftingTab Prepare step (Bug 8)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 3m32s
- Add 'tags' field to EquipmentInstance type
- Modify Prepare step to show warning and different button text when item has enchantments
- Consolidate disenchanting into Prepare step (remove separate disenchant UI)
- After successful preparation, item receives 'Ready for Enchantment' tag
- Modify Apply step to only allow applying enchantments to items tagged 'Ready for Enchantment'
- Update subtask_6_progress.md and todo.md to mark Sub-Task 6 as completed
2026-04-27 12:21:14 +02:00