- 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
- 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
- Bug 1: Floor health display now reactive (uses Zustand store properly)
- Bug 2: Climb Down button now climbs floor-by-floor, exit only at floor 1
- Bug 3: Redesigned SpireTab as Spire Stats view, moved Enter Spire Mode button to SpireTab, moved activity log to SpireModeUI
Changes:
- Added climbDownFloor() action to store.ts
- Modified exitSpireMode() to only work at floor 1
- Updated SpireTab.tsx: removed Current Floor stat, added Enter Spire Mode button
- Updated page.tsx: Climb Down climbs one floor, added Exit Spire button at floor 1, moved activity log to SpireModeUI
The fix was already implemented in the repository - the getOwnedEquipmentTypes() function in EnchantmentDesigner.tsx now correctly checks store.equipmentInstances (actual owned items) instead of store.lootInventory.blueprints.
Acceptance Criteria Met:
1. In CraftingTab Design phase, only enchantments compatible with items the player currently owns are shown
2. Compatibility is determined by enchantment type (e.g., weapon enchantments only show if player owns weapons)
3. No performance issues when filtering enchantments (uses Set for O(1) lookups)
Sub-Task 6 (Bug 8) can now proceed as it depends on this.