The ward's bite gets its name, and shrink slips past the giant
Two chronicle truths from tonight's table: the cardless ward stack fell through to 'punch from <owner>' — stacks now carry a sourceName, and the bite reads 'warded treasure' as it always did pre-rev-9. And a SHRUNK wizard walks straight through BIG MAN's square (table ruling: small enough to slip between the giant's boots) — a widening, shipped ungated. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015RCWSTnb1KYTPyL4GmhGnF
This commit is contained in:
co-authored by
Claude Fable 5
parent
d334b267a2
commit
7bcad12449
@@ -292,7 +292,13 @@ describe("the Ward is played in the moment", () => {
|
||||
if (!r.ok) throw new Error(r.error);
|
||||
// The bite rides the stack: a counteraction window opens for the thief.
|
||||
expect(r.state.stack).toBeTruthy();
|
||||
state = drain(r.state);
|
||||
const bite = applyCommand(r.state, r.state.stack!.waitingOn, { type: "pass" });
|
||||
if (!bite.ok) throw new Error(bite.error);
|
||||
// The chronicle names the bite for what it is, not a punch.
|
||||
expect(bite.events.some(
|
||||
(e) => e.type === "damaged" && e.source === "warded treasure",
|
||||
)).toBe(true);
|
||||
state = drain(bite.state);
|
||||
expect(state.wardPending).toBeNull();
|
||||
expect(state.players.find((p) => p.id === "thief")!.life).toBe(12);
|
||||
expect(state.players.find((p) => p.id === "owner")!.hand.some((c) => c.cardId === "ward")).toBe(false);
|
||||
|
||||
Reference in New Issue
Block a user