From c4a555f8df5fc4ea38eaa9bb1e4f0c618b9ec212 Mon Sep 17 00:00:00 2001 From: Eric Wagoner Date: Tue, 22 Sep 2026 09:39:05 -0400 Subject: [PATCH] Fuller banter pools, and the blow's own names decide who dealt pain and who killed Damage lands on the defender's step, so a trigger keyed to the actor never credited the attacker: across thirty three-bot games the kill line fired zero times and the dealt-pain line five, against 328 takes. Both now read the attackResolved, punched, and died events themselves. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01Jm2auWk6RP71CjaAb4FMoG --- packages/server/src/banter.ts | 254 +++++++++++++++++++++++++++++++--- packages/server/src/index.ts | 12 +- 2 files changed, 244 insertions(+), 22 deletions(-) diff --git a/packages/server/src/banter.ts b/packages/server/src/banter.ts index 6c058b2..07a797b 100644 --- a/packages/server/src/banter.ts +++ b/packages/server/src/banter.ts @@ -12,6 +12,11 @@ export type BanterTrigger = | "grabGold" | "deliverGold" | "dealPain" | "takePain" | "kill" | "die" | "summon" | "buildWall" | "escape" | "springTrap" | "dodge" | "win"; +// Voice guide: Hunter speaks in clipped businesslike capitals; Berserker +// delights in a good fight, also in capitals; Worrier frets in lowercase, +// with flashes of practical courage. Lines must fit every event in their +// trigger: deliveries need not score, summons vary, and either win counts. + export const BOT_LINES: Record>> = { hunter: { grabGold: [ @@ -19,101 +24,316 @@ export const BOT_LINES: Record