feat: practicing disciplines set currentAction to block meditation/crafting
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m20s

This commit is contained in:
2026-05-26 18:39:54 +02:00
parent ef850e98e2
commit 1c1bbf8017
7 changed files with 36 additions and 11 deletions
+16 -6
View File
@@ -21,6 +21,7 @@ import { enchanterSpecialDisciplines } from '../data/disciplines/enchanter-speci
import { fabricatorDisciplines } from '../data/disciplines/fabricator';
import { invokerDisciplines } from '../data/disciplines/invoker';
import { MAX_CONCURRENT_DISCIPLINES } from '../types/disciplines';
import { useCombatStore } from './combatStore';
const ALL_DISCIPLINES = [
...baseDisciplines,
@@ -92,6 +93,8 @@ export const useDisciplineStore = create<DisciplineStore>()(
if (!prereqCheck.canProceed) return s;
const discState = existing || { id, xp: 0, paused: false };
// Set currentAction to 'practicing' (only overrides 'meditate')
useCombatStore.getState().startPracticing();
return {
disciplines: { ...s.disciplines, [id]: { ...discState, paused: false } },
activeIds: [...s.activeIds, id],
@@ -100,12 +103,19 @@ export const useDisciplineStore = create<DisciplineStore>()(
},
deactivate(id) {
set((s) => ({
activeIds: s.activeIds.filter((aid) => aid !== id),
disciplines: s.disciplines[id]
? { ...s.disciplines, [id]: { ...s.disciplines[id], paused: true } }
: s.disciplines,
}));
set((s) => {
const newActiveIds = s.activeIds.filter((aid) => aid !== id);
// If no more active disciplines, restore currentAction to 'meditate'
if (newActiveIds.length === 0) {
useCombatStore.getState().stopPracticing();
}
return {
activeIds: newActiveIds,
disciplines: s.disciplines[id]
? { ...s.disciplines, [id]: { ...s.disciplines[id], paused: true } }
: s.disciplines,
};
});
},
processTick(mana) {