fix: combat room progression - replace legacy room-utils with spire-utils, align UI with store state
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m1s
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m1s
This commit is contained in:
@@ -6,7 +6,7 @@ import { persist } from 'zustand/middleware';
|
||||
import { createSafeStorage } from '../utils/safe-persist';
|
||||
import type { GameAction, SpellState, FloorState, GolemancyState, ActivityLogEntry, AchievementState, EquipmentSpellState, ActivityEventType, ActiveGolem, EnemyState, EquipmentInstance } from '../types';
|
||||
import { getFloorMaxHP } from '../utils';
|
||||
import { generateFloorState } from '../utils/room-utils';
|
||||
import { generateSpireFloorState, getRoomsForFloor } from '../utils/spire-utils';
|
||||
import { addActivityLogEntry } from '../utils/activity-log';
|
||||
import { processCombatTick, makeInitialSpells } from './combat-actions';
|
||||
import { getGuardianForFloor } from '../data/guardian-encounters';
|
||||
@@ -32,7 +32,7 @@ export const useCombatStore = create<CombatStore>()(
|
||||
spireMode: false,
|
||||
|
||||
// Room system
|
||||
currentRoom: generateFloorState(1),
|
||||
currentRoom: generateSpireFloorState(1, 0, getRoomsForFloor(1, 1 * 12345)),
|
||||
|
||||
// Spire climbing state
|
||||
clearedFloors: {},
|
||||
@@ -164,9 +164,11 @@ export const useCombatStore = create<CombatStore>()(
|
||||
set((s) => {
|
||||
if (s.currentFloor <= 1) return s;
|
||||
const newFloor = s.currentFloor - 1;
|
||||
const rooms = getRoomsForFloor(newFloor, newFloor * 12345);
|
||||
const newRoom = generateSpireFloorState(newFloor, 0, rooms);
|
||||
return {
|
||||
currentFloor: newFloor,
|
||||
currentRoom: generateFloorState(newFloor),
|
||||
currentRoom: newRoom,
|
||||
floorMaxHP: getFloorMaxHP(newFloor),
|
||||
floorHP: getFloorMaxHP(newFloor),
|
||||
castProgress: 0,
|
||||
@@ -175,7 +177,9 @@ export const useCombatStore = create<CombatStore>()(
|
||||
},
|
||||
|
||||
exitSpireMode: () => {
|
||||
set((s) => ({
|
||||
set((s) => {
|
||||
const rooms = getRoomsForFloor(s.exitFloor, s.exitFloor * 12345);
|
||||
return {
|
||||
spireMode: false,
|
||||
currentAction: 'meditate',
|
||||
climbDirection: null,
|
||||
@@ -183,7 +187,7 @@ export const useCombatStore = create<CombatStore>()(
|
||||
currentFloor: s.exitFloor,
|
||||
floorHP: getFloorMaxHP(s.exitFloor),
|
||||
floorMaxHP: getFloorMaxHP(s.exitFloor),
|
||||
currentRoom: generateFloorState(s.exitFloor),
|
||||
currentRoom: generateSpireFloorState(s.exitFloor, 0, rooms),
|
||||
castProgress: 0,
|
||||
clearedFloors: {},
|
||||
clearedRooms: {},
|
||||
@@ -194,7 +198,8 @@ export const useCombatStore = create<CombatStore>()(
|
||||
roomsPerFloor: 1,
|
||||
maxFloorReached: Math.max(s.maxFloorReached, 1),
|
||||
golemancy: { ...s.golemancy, activeGolems: [], summonedGolems: [] },
|
||||
}));
|
||||
};
|
||||
});
|
||||
},
|
||||
|
||||
startClimbUp: () => set({ climbDirection: 'up', currentAction: 'climb' }),
|
||||
@@ -239,7 +244,7 @@ export const useCombatStore = create<CombatStore>()(
|
||||
}));
|
||||
},
|
||||
|
||||
enterSpireMode: createEnterSpireMode(get, set, generateFloorState),
|
||||
enterSpireMode: createEnterSpireMode(get, set),
|
||||
|
||||
learnSpell: (spellId: string) => {
|
||||
set((state) => ({
|
||||
|
||||
Reference in New Issue
Block a user