Slow Death's draw is one blow, countered against its total (table ruling)

Two cards drawn is a two-point blow: ABSORB soaks up to three of the
total, BLUNT halves it rounding up (so it finally earns a place — 2
becomes 1), counters may chain, declining takes the rest. The client
labels each counter with the exact points it leaves; the bots weigh
the total against their floor. Amends rev 13 minutes after it shipped;
every production ledger still replays clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015RCWSTnb1KYTPyL4GmhGnF
This commit is contained in:
Eric Wagoner
2026-09-01 10:41:47 -04:00
co-authored by Claude Fable 5
parent 92613d7386
commit 8cfd911a3e
5 changed files with 91 additions and 51 deletions
+10 -5
View File
@@ -1276,12 +1276,17 @@ export function automatonCommand(
if (view.slowDeathPending) {
if (view.slowDeathPending.playerId !== you) return null;
// Soak only when the bites reach toward the floor — the card is worth
// more against a fireball than one point of rot.
const absorb = inHand(view, "absorb");
// Counter only when the total is worth a card or the floor is near —
// an Absorb is worth more against a fireball than one point of rot.
const pts = view.slowDeathPending.points;
if (absorb && me(view).life - pts <= 4) {
return { type: "slowDeathChoice", absorbInstanceId: absorb.instanceId };
const pressed = me(view).life - pts <= 4;
const absorb = inHand(view, "absorb");
if (absorb && (pts >= 2 || pressed)) {
return { type: "slowDeathChoice", counterInstanceId: absorb.instanceId };
}
const blunt = inHand(view, "blunt");
if (blunt && pts >= 2 && pressed) {
return { type: "slowDeathChoice", counterInstanceId: blunt.instanceId };
}
return { type: "slowDeathChoice" };
}