fix: resolve enchanting spec vs code discrepancies (issue #324)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m19s

- D2: Move spell_iceShard to basic-spells.ts at cost 75 (canonical), remove duplicate from frost-spells.ts
- D7: disenchantEquipment now adds 'Ready for Enchantment' tag and resets rarity to 'common'
- D8: disenchantEquipment now credits recovered mana to raw mana pool
- D14: Wire enchantPower stat from discipline effects into efficiencyBonus via new getEnchantingEfficiencyBonus() helper
- D3: Fix spec file reference from crafting-attunements.ts to data/attunements.ts
- D1/D6: Add missing metalSpellFocus to spec capacity table
This commit is contained in:
2026-06-09 09:33:30 +02:00
parent b0e553c290
commit e45c206321
10 changed files with 46 additions and 16 deletions
+3 -1
View File
@@ -9,6 +9,7 @@ import { useManaStore } from './manaStore';
import { useCombatStore } from './combatStore';
import { useUIStore } from './uiStore';
import { getEnchantingEfficiencyBonus } from '../effects/discipline-effects';
import * as ApplicationActions from '../crafting-actions/application-actions';
import * as PreparationActions from '../crafting-actions/preparation-actions';
import { equipItem as equipItemAction, unequipItem as unequipItemAction } from '../crafting-actions/equipment-actions';
@@ -36,6 +37,7 @@ export const useCraftingStore = create<CraftingStore>()(
// Enchantment design actions
startDesigningEnchantment: (name, equipmentTypeId, effects) => {
const state = get(); // crafting state
const efficiencyBonus = getEnchantingEfficiencyBonus();
const validation = CraftingDesign.validateDesignEffects(effects, equipmentTypeId, 0, state.unlockedEffects);
if (!validation.valid) return false;
@@ -43,7 +45,7 @@ export const useCraftingStore = create<CraftingStore>()(
const equipType = CraftingUtils.getEquipmentType(equipmentTypeId);
if (!equipType) return false;
const totalCapacityCost = CraftingDesign.calculateDesignCapacityCost(effects, 0);
const totalCapacityCost = CraftingDesign.calculateDesignCapacityCost(effects, efficiencyBonus);
if (totalCapacityCost > equipType.baseCapacity) return false;