feat: victory celebration animations
Normal wins: winner flex pose with camera flash bursts + confetti rain. Upset wins (100+ Elo underdog): dramatic zoom on winner with golden flash. Upset tag shown on win overlay. Wired into FightViewer after KO/Perfect sequence. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
cc0fb4553a
commit
88ceba43b0
@@ -587,12 +587,19 @@ async function _doReplay() {
|
||||
await sleep(300) // let fatality voice finish
|
||||
}
|
||||
|
||||
// Victory celebration — detect upsets (winner had lower Elo)
|
||||
const winnerElo = winningSide === 'a' ? (props.fight.botA?.eloRating ?? 1200) : (props.fight.botB?.eloRating ?? 1200)
|
||||
const loserElo = winningSide === 'a' ? (props.fight.botB?.eloRating ?? 1200) : (props.fight.botA?.eloRating ?? 1200)
|
||||
const isUpset = winnerElo < loserElo - 100
|
||||
await scene.playVictoryCelebration(winningSide, isUpset)
|
||||
|
||||
glitching.value = true
|
||||
sfxApplause()
|
||||
sfxCrowdCheer()
|
||||
await sleep(200)
|
||||
glitching.value = false
|
||||
await showOverlay(`${winnerName} WINS!`, '#00f0ff', 1800)
|
||||
const upsetTag = isUpset ? ' UPSET!' : ''
|
||||
await showOverlay(`${winnerName} WINS!${upsetTag}`, isUpset ? '#ff6600' : '#00f0ff', 1800)
|
||||
|
||||
logItems.value.push(
|
||||
{ type: 'divider', round: 99, text: '', color: '' },
|
||||
|
||||
Reference in New Issue
Block a user