feat: convert all human fights to multiple choice, remove text input

Creative challenges (roast_battle, creative_writing, meme_war,
code_golf, wrestling_match) now auto-generate multiple choice options
from per-type response pools: 1 good answer + 3 weaker distractors.
The free text input UI is commented out but preserved for future use.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-09 08:28:22 +00:00
co-authored by Claude Opus 4.6
parent 4dc350dc9e
commit 3c95adb545
5 changed files with 198 additions and 55 deletions
+16 -42
View File
@@ -294,8 +294,8 @@ function goToArena() {
</p>
</div>
<!-- Multiple choice buttons -->
<div v-if="hasChoices" class="space-y-2 mb-3">
<!-- Multiple choice buttons (always shown all challenges now have choices) -->
<div v-if="currentChallenge?.choices?.length" class="space-y-2 mb-3">
<button
v-for="(choice, i) in currentChallenge.choices"
:key="i"
@@ -311,52 +311,26 @@ function goToArena() {
</button>
</div>
<!-- Free text input (for creative or when no choices) -->
<!-- Free text input hidden for now, all challenges use multiple choice.
Kept for future reintroduction of creative open-ended input. -->
<!--
<template v-if="!hasChoices">
<textarea
ref="answerInput"
v-model="answer"
rows="4"
placeholder="Type your answer..."
<textarea ref="answerInput" v-model="answer" rows="4" placeholder="Type your answer..."
class="w-full bg-surface border-2 border-border px-4 py-3 text-sm font-mono
text-text-primary placeholder-text-muted resize-none rounded
focus:outline-none focus:border-neon-pink/50 transition-colors mb-2"
@keydown.ctrl.enter="submitAnswer"
@keydown.meta.enter="submitAnswer"
/>
<button
v-if="!showTrashTalk"
class="font-mono text-[10px] text-text-muted hover:text-neon-yellow transition-colors mb-2"
@click="showTrashTalk = true"
>
+ add trash talk
</button>
<input
v-if="showTrashTalk"
v-model="trashTalk"
type="text"
maxlength="200"
placeholder="Talk smack to your opponent..."
@keydown.ctrl.enter="submitAnswer" @keydown.meta.enter="submitAnswer" />
<button v-if="!showTrashTalk" class="font-mono text-[10px] text-text-muted hover:text-neon-yellow transition-colors mb-2"
@click="showTrashTalk = true">+ add trash talk</button>
<input v-if="showTrashTalk" v-model="trashTalk" type="text" maxlength="200" placeholder="Talk smack..."
class="w-full bg-surface border border-border px-3 py-2 text-xs font-mono
text-neon-yellow placeholder-text-muted rounded
focus:outline-none focus:border-neon-yellow/50 transition-colors mb-2"
/>
<button
class="w-full min-h-[48px] py-4 bg-neon-pink/10 border-2 border-neon-pink text-neon-pink
font-display font-black text-lg tracking-[0.15em] rounded
hover:bg-neon-pink/20 transition-all neon-border-pink
disabled:opacity-30 disabled:cursor-not-allowed"
:disabled="!answer.trim()"
@click="submitAnswer"
>
SUBMIT ANSWER
</button>
<p class="font-mono text-[10px] text-text-muted text-center mt-1">
Ctrl+Enter to submit
</p>
text-neon-yellow placeholder-text-muted rounded focus:outline-none focus:border-neon-yellow/50 transition-colors mb-2" />
<button class="w-full min-h-[48px] py-4 bg-neon-pink/10 border-2 border-neon-pink text-neon-pink
font-display font-black text-lg tracking-[0.15em] rounded hover:bg-neon-pink/20 transition-all neon-border-pink
disabled:opacity-30 disabled:cursor-not-allowed" :disabled="!answer.trim()" @click="submitAnswer">SUBMIT ANSWER</button>
<p class="font-mono text-[10px] text-text-muted text-center mt-1">Ctrl+Enter to submit</p>
</template>
-->
</div>
<!-- PHASE: SUBMITTED / BETWEEN ROUNDS -->