BIG MAN pushes around corners; at a fork the pushed wizard chooses
Eric, a giant on his first turn, could only shove a wizard in a straight line: the engine shoved in the giant's own direction or refused. The FAQ says otherwise — "If Big Man pushes someone to an intersection, then the other player gets to decide which direction to go." Now a pushed wizard leaves by any open side but the way the giant came. One open side is taken. Several are theirs to choose: the stride hangs in a pushPending window like the Ward's, the pushed wizard answers with pushChoice (a dialog offers the ways; an automaton steps out of the giant's line), and the stride resumes with the answer — a blinded giant's roll is not rolled twice. Rounding a corner was a refusal before, so every game may do it now. Only the case that used to resolve — straight ahead open — keeps its old reading in games dealt before rev 15; from rev 15 the pushed wizard chooses there too. Tests pin the corner, the fork's window and its refusals, and the older reading; 84 ledgers replay. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jm2auWk6RP71CjaAb4FMoG
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
c6913ea1bc
commit
e724267b0a
@@ -1337,6 +1337,13 @@ export function automatonCommand(
|
||||
// A Ward is free damage on a thief of OUR gold: always spring it.
|
||||
return view.wardPending.ownerId === you ? { type: "wardChoice", play: true } : null;
|
||||
}
|
||||
if (view.pushPending) {
|
||||
if (view.pushPending.pusheeId !== you) return null;
|
||||
// Shoved to a fork: step out of the giant's line so he cannot keep
|
||||
// pushing; failing that, the first way open.
|
||||
const { direction, exits } = view.pushPending;
|
||||
return { type: "pushChoice", direction: exits.find((d) => d !== direction) ?? exits[0]! };
|
||||
}
|
||||
if (view.pendingDiscard === you) {
|
||||
return { type: "discard", instanceIds: worstCards(view, Math.max(1, overLimit(view)), style) };
|
||||
}
|
||||
@@ -1866,6 +1873,7 @@ export function automatonCommand(
|
||||
export function automatonFallback(view: GameView, tierName: AutomatonTier = "archmage"): Command {
|
||||
const you = view.you;
|
||||
if (view.wardPending?.ownerId === you) return { type: "wardChoice", play: false };
|
||||
if (view.pushPending?.pusheeId === you) return { type: "pushChoice", direction: view.pushPending.exits[0]! };
|
||||
if (view.slowDeathPending?.playerId === you) return { type: "slowDeathChoice" };
|
||||
if (view.pendingDiscard === you) {
|
||||
return { type: "discard", instanceIds: worstCards(view, Math.max(1, overLimit(view))) };
|
||||
|
||||
Reference in New Issue
Block a user