Fix Spire Mode floor rendering and swarm floors (Tasks 5 & 6)

- Added enemy naming system with getEnemyName() function
- Updated EnemyState type to include name field
- Updated generateSwarmEnemies() and generateFloorState() to assign enemy names
- Fixed SpireTab.tsx (both versions) to display:
  - Floor type (Combat/Swarm/Speed/Guardian/Puzzle) with icons
  - Named enemies based on element and floor tier
  - Special floor properties (armor %, dodge chance)
  - Multiple enemies for swarm floors with individual HP bars
- Added ROOM_TYPE_LABELS to constants for display
- Verified floor type generation logic works correctly
- Build succeeds with npm run build
This commit is contained in:
Refactoring Agent
2026-04-28 13:36:16 +02:00
parent 7056dc04d6
commit 8aacc2c88e
61 changed files with 239 additions and 4651 deletions
+2 -2
View File
@@ -34,9 +34,9 @@ export default function RootLayout({
>
<DebugProvider>
{children}
<Toaster />
<GameToaster />
</DebugProvider>
<Toaster />
<GameToaster />
</body>
</html>
);
+9 -2
View File
@@ -257,14 +257,21 @@ export default function ManaLoopGame() {
<h2 className="text-2xl font-bold game-title text-amber-400">
🏔 Spire Mode - Floor {store.currentFloor}
</h2>
<div className="flex gap-2">
<div className="flex gap-2 items-center">
{/* Show Climbing indicator when actively climbing */}
{store.currentAction === 'climb' && !store.isDescending && (
<Badge className="bg-green-900/50 text-green-300 border-green-600">
Climbing
</Badge>
)}
<Button
variant="outline"
className="border-blue-600/50 text-blue-400 hover:bg-blue-900/20"
onClick={() => store.climbDownFloor()}
disabled={store.isDescending}
>
<ChevronDown className="w-4 h-4 mr-2" />
Climb Down
{store.isDescending ? 'Descending...' : 'Begin Descent'}
</Button>
{store.currentFloor === 1 ? (
<Button