From df70f5f093933e2fa9536f76ef161de08388e9c9 Mon Sep 17 00:00:00 2001 From: Dorian Date: Mon, 9 Mar 2026 15:36:24 +0000 Subject: [PATCH] fix: move BETA badge after green dot in navbar Co-Authored-By: Claude Opus 4.6 --- frontend/src/components/FightViewer.vue | 14 +++++++++-- frontend/src/components/NavBar.vue | 2 +- frontend/src/game/FightScene.ts | 6 ++++- frontend/src/game/fight/entrances.ts | 31 ++++++++++++++++--------- frontend/src/pages/FightPage.vue | 12 ++++++---- 5 files changed, 46 insertions(+), 19 deletions(-) diff --git a/frontend/src/components/FightViewer.vue b/frontend/src/components/FightViewer.vue index deb165c..86cc9c8 100644 --- a/frontend/src/components/FightViewer.vue +++ b/frontend/src/components/FightViewer.vue @@ -451,9 +451,13 @@ async function _doReplay() { await sleep(insanityMode.value ? 50 : 300) } + // Hide human player's typed answers from replay + const replayIsAHuman = props.fight.botA?.archetype === 'human' + const replayIsBHuman = props.fight.botB?.archetype === 'human' + // 2. Bot A: ensure audio ready, then show log + bubble + mouth + voice all at once const isCodeRound = isCodeAnswer(round.challengeType, round.botAResponse || '') - if (round.botAResponse) { + if (round.botAResponse && !replayIsAHuman) { if (doTTS && !isCodeRound) await awaitAnswerReady(props.fight.botA!.name, round.botAResponse) scene?.stopShowboating('a') logItems.value.push({ type: 'responseA', round: round.roundNumber, text: `${props.fight.botA?.name}: ${round.botAResponse || '[NO RESPONSE]'}`, color: 'neon-cyan' }) @@ -473,10 +477,13 @@ async function _doReplay() { if (!doTTS && !insanityMode.value) await sleep(400) scene?.stopTalking('a') scene?.hideSpeechBubble('a') + } else if (replayIsAHuman) { + scene?.stopShowboating('a') + await sleep(insanityMode.value ? 50 : 200) } // 3. Bot B: ensure audio ready, then show log + bubble + mouth + voice all at once - if (round.botBResponse) { + if (round.botBResponse && !replayIsBHuman) { if (doTTS && !isCodeRound) await awaitAnswerReady(props.fight.botB!.name, round.botBResponse) scene?.stopShowboating('b') logItems.value.push({ type: 'responseB', round: round.roundNumber, text: `${props.fight.botB?.name}: ${round.botBResponse || '[NO RESPONSE]'}`, color: 'neon-pink' }) @@ -497,6 +504,9 @@ async function _doReplay() { if (!doTTS && !insanityMode.value) await sleep(400) scene?.stopTalking('b') scene?.hideSpeechBubble('b') + } else if (replayIsBHuman) { + scene?.stopShowboating('b') + await sleep(insanityMode.value ? 50 : 200) } // Stop all showboating before fight animation diff --git a/frontend/src/components/NavBar.vue b/frontend/src/components/NavBar.vue index de13968..c5fb11d 100644 --- a/frontend/src/components/NavBar.vue +++ b/frontend/src/components/NavBar.vue @@ -39,12 +39,12 @@ const bottomNav = [ BOTFIGHTS - BETA + BETA