Fix Task 9: Climb/Descend Controls

1. Fixed exitSpireMode in store.ts to allow exit at any floor for re-entry resume
2. Removed floor restriction on Exit Spire button in page.tsx
3. Updated descend button label to use currentAction for 'Climbing' status
This commit is contained in:
Refactoring Agent
2026-04-29 10:39:11 +02:00
parent 351b6c2dca
commit c8a01acda3
2 changed files with 10 additions and 19 deletions
+8 -14
View File
@@ -273,22 +273,16 @@ export default function ManaLoopGame() {
> >
<ChevronDown className="w-4 h-4 mr-2" /> <ChevronDown className="w-4 h-4 mr-2" />
{store.isDescending ? 'Descending…' : {store.isDescending ? 'Descending…' :
store.climbDirection === 'up' ? 'Climbing' : store.currentAction === 'climb' ? 'Climbing' :
'Begin Descent'} 'Begin Descent'}
</Button> </Button>
{store.currentFloor === 1 ? ( <Button
<Button variant="default"
variant="default" className="bg-green-600 hover:bg-green-700"
className="bg-green-600 hover:bg-green-700" onClick={() => store.exitSpireMode()}
onClick={() => store.exitSpireMode()} >
> Exit Spire
Exit Spire </Button>
</Button>
) : (
<span className="text-xs text-gray-400 flex items-center">
Reach floor 1 to exit
</span>
)}
</div> </div>
</div> </div>
+2 -5
View File
@@ -2306,13 +2306,10 @@ export const useGameStore = create<GameStore>()(
}, 500); }, 500);
}, },
// Exit Spire Mode - only works when at floor 1 // Exit Spire Mode - can exit at any floor (re-entry will resume at same floor)
exitSpireMode: () => { exitSpireMode: () => {
set((state) => { set((state) => {
// Only allow exit if at floor 1 (bottom) // Allow exit at any floor for re-entry resume
if (state.currentFloor > 1) {
return state; // Can't exit, need to climb down to floor 1 first
}
return { return {
spireMode: false, spireMode: false,
currentAction: 'meditate', currentAction: 'meditate',