feat: v3 — fight loop, expanded challenges, FightPage ownership guard
- Add fight-loop CLI for automated mock fights with elo-based matchmaking - Expand challenge types, scoring narrations, arenas, and mock bot pool - FightPage "Fight again" buttons now only show for your own bot - FightViewer async scene init, live fight polling with round counter - Extract mock answers into separate answers module Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
47d20fbe66
commit
2c0323d5fb
@@ -112,6 +112,76 @@ export const ARENAS: Arena[] = [
|
||||
modifier: 'latency_chaos',
|
||||
modifierDescription: 'Random latency penalties added to both bots.',
|
||||
},
|
||||
{
|
||||
id: 'colosseum',
|
||||
name: 'The Colosseum',
|
||||
description: 'Ancient stone arena with holographic gladiators. The crowd demands entertainment.',
|
||||
modifier: 'wrestling_2x',
|
||||
modifierDescription: 'Wrestling matches and roast battles deal 2x damage.',
|
||||
},
|
||||
{
|
||||
id: 'kitchen_stadium',
|
||||
name: 'Kitchen Stadium',
|
||||
description: 'Iron Chef meets fight club. Knives fly, pots clang, and somebody spilled the bisque.',
|
||||
modifier: 'food_2x',
|
||||
modifierDescription: 'Food fight challenges deal 2x damage.',
|
||||
},
|
||||
{
|
||||
id: 'haunted_mansion',
|
||||
name: 'Haunted Mansion',
|
||||
description: 'Creaking doors, floating candelabras, and a ghost who won\'t stop backseat gaming.',
|
||||
modifier: 'magic_2x',
|
||||
modifierDescription: 'Magic duel and medieval combat deal 2x damage.',
|
||||
},
|
||||
{
|
||||
id: 'meme_dimension',
|
||||
name: 'The Meme Dimension',
|
||||
description: 'Reality warps here. Doge floats overhead. Everything is deep-fried. Nothing makes sense.',
|
||||
modifier: 'meme_2x',
|
||||
modifierDescription: 'Meme war challenges deal 2x damage.',
|
||||
},
|
||||
{
|
||||
id: 'space_station',
|
||||
name: 'Deep Space Arena',
|
||||
description: 'A fighting ring suspended between two neutron stars. Time dilation makes rounds feel eternal.',
|
||||
modifier: 'space_2x',
|
||||
modifierDescription: 'Space war challenges deal 2x damage.',
|
||||
},
|
||||
{
|
||||
id: 'junkyard',
|
||||
name: 'The Junkyard',
|
||||
description: 'Rusted cars, sparking wires, and the faint smell of burning rubber. Demo derby time.',
|
||||
modifier: 'demo_2x',
|
||||
modifierDescription: 'Demolition and vehicle mayhem deal 2x damage.',
|
||||
},
|
||||
{
|
||||
id: 'concert_hall',
|
||||
name: 'Neon Concert Hall',
|
||||
description: 'Laser lights, bass drops, and a crowd that won\'t stop moshing. Play or get played.',
|
||||
modifier: 'music_2x',
|
||||
modifierDescription: 'Music battle challenges deal 2x damage.',
|
||||
},
|
||||
{
|
||||
id: 'savanna',
|
||||
name: 'Digital Savanna',
|
||||
description: 'Pixelated grass sways. A low-poly lion watches from a distance. Nature is metal.',
|
||||
modifier: 'nature_2x',
|
||||
modifierDescription: 'Nature clash and animal kingdom challenges deal 2x damage.',
|
||||
},
|
||||
{
|
||||
id: 'server_room',
|
||||
name: 'The Server Room',
|
||||
description: 'Blinding green LEDs, deafening fans, and cables everywhere. One wrong move and the internet goes down.',
|
||||
modifier: 'hack_2x',
|
||||
modifierDescription: 'Hack battle challenges deal 2x damage.',
|
||||
},
|
||||
{
|
||||
id: 'sports_arena',
|
||||
name: 'Mega Sports Dome',
|
||||
description: 'Every sport at once. A basketball hoop next to a goal post next to a cricket pitch. Pure chaos.',
|
||||
modifier: 'sports_2x',
|
||||
modifierDescription: 'Sports showdown challenges deal 2x damage.',
|
||||
},
|
||||
]
|
||||
|
||||
export function pickArena(botAChoice: number, botBChoice: number): Arena {
|
||||
|
||||
Reference in New Issue
Block a user