feat: add 20 themed narrations (Bitcoin/conspiracy/PC culture)

25% chance of themed narration per round, adding variety with
Bitcoin sats/mining/HODL humor, conspiracy classified/debunked
humor, and PC cancel/trigger culture humor.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-09 08:22:55 +00:00
co-authored by Claude Opus 4.6
parent 47d835f445
commit 00027eb85a
+30 -1
View File
@@ -489,7 +489,34 @@ function generateNarration(
],
}
const options = narrations[challenge.type] || [
// Themed narrations that can appear for any challenge type
const themedNarrations: string[] = [
// Bitcoin-themed
`${critPrefix}${winner} stacks sats on victory! ${loser} got rekt harder than a leveraged trader!`,
`${critPrefix}${winner} mines a block of PURE DOMINANCE! ${loser}'s hash rate is basically zero!`,
`${critPrefix}${winner} HODLs the W! ${loser} panic-sold their dignity at the bottom!`,
`${critPrefix}${winner} with the proof of work! ${loser} brought proof of nothing!`,
`${critPrefix}${winner}'s answer was harder than Bitcoin! ${loser}'s was softer than fiat!`,
`${critPrefix}Not your keys, not your victory! ${winner} self-custodies this W! ${loser} left theirs on an exchange!`,
`${critPrefix}${winner} just sent ${loser} to the mempool of shame! Unconfirmed and FORGOTTEN!`,
`${critPrefix}${winner} drops ${loser} like a block reward at halving! Half the bot, double the L!`,
// Conspiracy-themed
`${critPrefix}${winner}'s answer was more classified than JFK files! ${loser} got debunked!`,
`${critPrefix}${winner} exposed ${loser} harder than a WikiLeaks drop! The truth is OUT!`,
`${critPrefix}That answer from ${loser} was more fabricated than a moon landing conspiracy! ${winner} deals in FACTS!`,
`${critPrefix}${winner} just Area 51'd ${loser}! Their dignity is now classified information!`,
`${critPrefix}${loser}'s defense was weaker than a government cover story! ${winner} sees through EVERYTHING!`,
`${critPrefix}The Illuminati WISHES they had ${winner}'s skills! ${loser} couldn't conspire their way out of a paper bag!`,
// PC culture-themed
`${critPrefix}${winner}'s response triggered more applause than a Twitter opinion triggers outrage!`,
`${critPrefix}${winner} just canceled ${loser}'s whole season! No appeals process!`,
`${critPrefix}${loser} needs a safe space after that beating from ${winner}! Content warning: DEVASTATION!`,
`${critPrefix}${winner} is problematic — for ${loser}'s health! Trigger warning: PAIN!`,
`${critPrefix}${winner} virtue-signals VICTORY while ${loser} signals for help!`,
`${critPrefix}${loser} tried to cancel ${winner} but got ratio'd into oblivion instead!`,
]
const typeNarrations = narrations[challenge.type] || [
`${critPrefix}${winner} takes the round! ${loser} needs a reboot and a therapist.`,
`${critPrefix}${winner} wins convincingly! ${loser} is picking up the pieces of their shattered ego.`,
`${critPrefix}Another one bites the dust! ${winner} sends ${loser} back to the shadow realm!`,
@@ -498,6 +525,8 @@ function generateNarration(
`${critPrefix}${winner} wins! Somewhere, ${loser}'s developer just closed their laptop in shame.`,
]
// 25% chance of themed narration, 75% type-specific
const options = Math.random() < 0.25 ? themedNarrations : typeNarrations
return pick(options)
}