feat: mobile human vs AI — multiple choice, two-row VS bar, responsive arena

- Server-side choice generation for all 22 challenge types (factual + creative)
- Mobile: 3 multiple-choice buttons replace keyboard input (4s timer)
- Two-row VS bar on mobile (names row + HP bars row) in FightPage and FightViewer
- Battle log hidden on mobile to maximize canvas visibility
- Arena page responsive: stacking header, tighter fight cards, no name overflow
- Profile page two-column desktop layout with contained sprite display
- Human fighter sprites with baby growth system

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-07 19:42:49 +00:00
co-authored by Claude Opus 4.6
parent 1906821452
commit 4b46aaf643
9 changed files with 1115 additions and 249 deletions
+8
View File
@@ -506,3 +506,11 @@ function templateToChallenge(template: ChallengeTemplate): Challenge {
export function getAllChallengeTypes(): string[] {
return TEMPLATES.map(t => t.type)
}
export function getAnswerPool(type: string): string[] {
const template = TEMPLATES.find(t => t.type === type)
if (!template) return []
return template.prompts
.flatMap(p => p.answers || [])
.filter((v, i, arr) => arr.indexOf(v) === i)
}