fix: deactivate all disciplines when entering/exiting the Spire
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m20s

- Add deactivateAll() action to discipline-slice.ts
- Call deactivateAll() in createEnterSpireMode() (combat-descent-actions.ts)
- Add spireMode guard in gameStore.ts tick() to skip discipline processTick
- Call deactivateAll() in exitSpireMode() (combatStore.ts) as safety measure
- Extract buildConversionParams to utils/conversion-params.ts to keep gameStore.ts under 400 lines
- Add regression tests (5 tests, all 1136 passing)

Fixes #347
This commit is contained in:
2026-06-10 11:41:25 +02:00
parent 076282caf3
commit 48eee17d43
10 changed files with 295 additions and 30 deletions
@@ -10,6 +10,7 @@ import { useManaStore } from './manaStore';
import { summonGolemsOnRoomEntry } from './golem-combat-actions';
import { computeDisciplineEffects } from '../effects/discipline-effects';
import { useAttunementStore } from './attunementStore';
import { useDisciplineStore } from './discipline-slice';
import {
onEnterLibraryRoom,
onEnterRecoveryRoom,
@@ -278,6 +279,9 @@ export function createEnterSpireMode(get: GetFn, set: SetFn) {
golemancy: { activeGolems: [], lastSummonFloor: 0, golemDesigns: get().golemancy?.golemDesigns ?? {}, golemLoadout: [] },
});
// Deactivate all active disciplines when entering the Spire
useDisciplineStore.getState().deactivateAll();
get().addActivityLog('floor_transition',
`Entered the Spire at Floor ${startFloor}`);
};