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

This commit is contained in:
Refactoring Agent
2026-05-05 13:25:19 +02:00
parent 221d3e4b41
commit 3db7e07302
14 changed files with 246 additions and 60 deletions
@@ -1,8 +1,6 @@
import type { EquipmentInstance, EnchantmentDesign, DesignEffect, EquipmentCraftingProgress, EquipmentCategory } from '@/lib/game/types';
import type { GameStore } from '@/lib/game/stores';
export interface EnchantmentDesignerProps {
store: GameStore;
selectedEquipmentType: string | null;
setSelectedEquipmentType: (type: string | null) => void;
selectedEffects: DesignEffect[];
@@ -1,7 +1,6 @@
import { EQUIPMENT_TYPES } from '@/lib/game/data/equipment';
import { ENCHANTMENT_EFFECTS, calculateEffectCapacityCost } from '@/lib/game/data/enchantment-effects';
import type { DesignEffect, EquipmentCategory } from '@/lib/game/types';
import type { GameStore } from '@/lib/game/stores';
import type { DesignEffect, EquipmentInstance, EquipmentCategory } from '@/lib/game/types';
/**
* Get available effects for selected equipment type (only unlocked ones)
@@ -44,12 +43,12 @@ export function getIncompatibleEffects(
* Get equipment types that the player actually owns (has instances of)
* This ensures enchantment compatibility is based on owned items, not just blueprints
*/
export function getOwnedEquipmentTypes(store: GameStore) {
export function getOwnedEquipmentTypes(equipmentInstances: Record<string, EquipmentInstance>) {
// Get all unique equipment type IDs from owned instances
const ownedEquipmentTypeIds = new Set<string>();
// Check all equipment instances the player owns
for (const instance of Object.values(store.equipmentInstances || {})) {
for (const instance of Object.values(equipmentInstances || {})) {
ownedEquipmentTypeIds.add(instance.typeId);
}