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.)
This commit is contained in:
Refactoring Agent
2026-05-04 09:49:13 +02:00
parent 5817206351
commit 98ab975fb9
20 changed files with 97 additions and 275 deletions
+22 -17
View File
@@ -119,11 +119,24 @@ export function EquipmentTab() {
const [selectedSlot, setSelectedSlot] = useState<EquipmentSlot | null>(null);
const [deleteConfirm, setDeleteConfirm] = useState<{ instanceId: string; name: string } | null>(null);
// Use modular store directly
// Use modular store directly - MUST be called before any conditional returns
const equippedInstances = useCombatStore((s) => s.equippedInstances);
const equipmentInstances = useCombatStore((s) => s.equipmentInstances);
// Guard against undefined during initialization
// Get unequipped items - hooks must be called before conditional returns
const equippedIds = useMemo(() =>
new Set(Object.values(equippedInstances || {}).filter(Boolean)),
[equippedInstances]
);
const unequippedItems = useMemo(() =>
Object.values(equipmentInstances || {}).filter(
(inst) => !equippedIds.has(inst.instanceId)
),
[equipmentInstances, equippedIds]
);
// Guard against undefined during initialization - AFTER all hooks
if (!equippedInstances || !equipmentInstances) {
return (
<div className="p-4 text-center text-[var(--text-muted)]">
@@ -132,19 +145,6 @@ export function EquipmentTab() {
);
}
// Get unequipped items
const equippedIds = useMemo(() =>
new Set(Object.values(equippedInstances).filter(Boolean)),
[equippedInstances]
);
const unequippedItems = useMemo(() =>
Object.values(equipmentInstances).filter(
(inst) => !equippedIds.has(inst.instanceId)
),
[equipmentInstances, equippedIds]
);
// Equip an item to a slot
const handleEquip = (instanceId: string, slot: EquipmentSlot) => {
const instance = equipmentInstances[instanceId];
@@ -227,8 +227,13 @@ export function EquipmentTab() {
}
};
// Get unified effects for equipment stats
const unifiedEffects = useCombatStore((s) => s.equipmentInstances) ? getUnifiedEffects({ equipmentInstances, equippedInstances }) : null;
// Get unified effects for equipment stats - move hook before conditional
const equipmentInstancesForEffects = useCombatStore((s) => s.equipmentInstances);
const equippedInstancesForEffects = useCombatStore((s) => s.equippedInstances);
const unifiedEffects = equipmentInstancesForEffects && equippedInstancesForEffects
? getUnifiedEffects({ equipmentInstances, equippedInstances })
: null;
return (
<div className="space-y-4 max-w-full overflow-x-hidden">