feat: arena bot sprites, boxing-style Fight Card page

- Arena page shows small sprite previews next to each bot's name
- Server returns archetype in fights list endpoint
- New /fight-card page with 3D perspective fight poster, neon signs,
  animated boxing gloves, fighter bobbing, VS pulse, undercard list
- Added FIGHT CARD to nav bar

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-08 08:38:27 +00:00
co-authored by Claude Opus 4.6
parent 95b53e271f
commit ccf4196647
5 changed files with 373 additions and 90 deletions
+2 -1
View File
@@ -26,11 +26,12 @@ fightsRouter.get('/', async (c) => {
if (f.winnerId) botIds.add(f.winnerId)
}
const botMap = new Map<string, { name: string; avatarSeed: string; eloRating: number; tier: number }>()
const botMap = new Map<string, { name: string; avatarSeed: string; archetype: string; eloRating: number; tier: number }>()
for (const id of botIds) {
const bot = await db.select({
name: schema.bots.name,
avatarSeed: schema.bots.avatarSeed,
archetype: schema.bots.archetype,
eloRating: schema.bots.eloRating,
tier: schema.bots.tier,
}).from(schema.bots).where(eq(schema.bots.id, id)).limit(1)