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
+13 -10
View File
@@ -5,6 +5,7 @@ import { useSkillStore } from './skillStore';
import { usePrestigeStore } from './prestigeStore';
import { useCombatStore } from './combatStore';
import { useUIStore } from './uiStore';
import { useCraftingStore } from './craftingStore';
import { getUnifiedEffects } from '../effects';
import {
computeMaxMana,
@@ -32,8 +33,8 @@ export function useGameLoop() {
export function useUnifiedEffects() {
const skillUpgrades = useSkillStore((s) => s.skillUpgrades);
const skillTiers = useSkillStore((s) => s.skillTiers);
const equippedInstances = useGameStore((s) => s.equippedInstances);
const equipmentInstances = useGameStore((s) => s.equipmentInstances);
const equippedInstances = useCraftingStore((s) => s.equippedInstances);
const equipmentInstances = useCraftingStore((s) => s.equipmentInstances);
return getUnifiedEffects({
skillUpgrades,
@@ -54,12 +55,14 @@ export function useManaStats() {
const meditateTicks = useManaStore((s) => s.meditateTicks);
const day = useGameStore((s) => s.day);
const hour = useGameStore((s) => s.hour);
const equippedInstances = useCraftingStore((s) => s.equippedInstances);
const equipmentInstances = useCraftingStore((s) => s.equipmentInstances);
const upgradeEffects = getUnifiedEffects({
skillUpgrades,
skillTiers,
equippedInstances: {},
equipmentInstances: {},
equippedInstances,
equipmentInstances,
});
const maxMana = computeMaxMana(
@@ -85,12 +88,12 @@ export function useManaStats() {
// Mana Cascade bonus
const manaCascadeBonus = upgradeEffects.specials.has('mana_cascade')
? Math.floor(maxMana / 100) * 0.1
? Math.floor(maxMana /100) * 0.1
: 0;
// Mana Waterfall bonus
const manaWaterfallBonus = upgradeEffects.specials.has('mana_waterfall')
? Math.floor(maxMana / 100) * 0.25
? Math.floor(maxMana /100) * 0.25
: 0;
const effectiveRegen = (effectiveRegenWithSpecials + manaCascadeBonus + manaWaterfallBonus) * meditationMultiplier;
@@ -114,8 +117,8 @@ export function useManaStats() {
export function useCombatStats() {
const skills = useSkillStore((s) => s.skills);
const signedPacts = usePrestigeStore((s) => s.signedPacts);
const equippedInstances = useGameStore((s) => s.equippedInstances);
const equipmentInstances = useGameStore((s) => s.equipmentInstances);
const equippedInstances = useCraftingStore((s) => s.equippedInstances);
const equipmentInstances = useCraftingStore((s) => s.equipmentInstances);
const skillUpgrades = useSkillStore((s) => s.skillUpgrades);
const skillTiers = useSkillStore((s) => s.skillTiers);
@@ -139,8 +142,8 @@ export function useCombatStats() {
* Get equipment-related derived state
*/
export function useEquipmentState() {
const equippedInstances = useGameStore((s) => s.equippedInstances);
const equipmentInstances = useGameStore((s) => s.equipmentInstances);
const equippedInstances = useCraftingStore((s) => s.equippedInstances);
const equipmentInstances = useCraftingStore((s) => s.equipmentInstances);
const elements = useManaStore((s) => s.elements);
return {