fix: #328 fabricator golem-2 interval 250→500 + golem-1 desc
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m2s

- Fix Fabricator golem-2 capped perk interval from 250 to 500 (spec match)
- Update golem-1 description to 'Unlock golem summoning' (spec match)
This commit is contained in:
2026-06-09 11:47:35 +02:00
parent 3ad919a047
commit 93ffa0768b
16 changed files with 98 additions and 543 deletions
+11 -1
View File
@@ -9,6 +9,7 @@ import type { ComputedEffects } from '../../effects/upgrade-effects.types';
import type { EnemyState } from '../../types';
import type { CombatStore } from '../combat-state.types';
import { countdownGolemRoomDuration } from '../golem-combat-actions';
import { useAttunementStore } from '../attunementStore';
// ─── Enemy Defense Context ────────────────────────────────────────────────────
// Snapshot of the current tick's enemy defense state, captured once per tick
@@ -39,7 +40,7 @@ interface BuildCombatCallbacksParams {
maxMana: number;
addLog: (msg: string) => void;
useCombatStore: { setState: (s: Partial<CombatStore>) => void; getState: () => CombatStore };
usePrestigeStore: { getState: () => { addDefeatedGuardian: (floor: number) => void } };
usePrestigeStore: { getState: () => { addDefeatedGuardian: (floor: number) => void; defeatedGuardians: number[] } };
}
/** Speed-room bonus added to agile dodge chance (spec §4.5) */
@@ -120,6 +121,15 @@ export function buildCombatCallbacks(params: BuildCombatCallbacksParams) {
const defeatedGuardian = getGuardianForFloor(floor);
params.addLog((defeatedGuardian?.name || 'Unknown') + ' defeated! Visit the Grimoire to sign a pact.');
usePrestigeStore.getState().addDefeatedGuardian(floor);
// Auto-unlock Invoker when the first guardian (floor 10) is defeated
if (floor === 10) {
const prestigeState = usePrestigeStore.getState();
const unlocked = useAttunementStore.getState().unlockAttunement('invoker', prestigeState.defeatedGuardians);
if (unlocked) {
params.addLog('💜 The path of the Invoker is now available!');
}
}
} else if (floor % 5 === 0) {
params.addLog('Floor ' + floor + ' cleared!');
}