Rev 12: vanishing and water answer the call to arms
INVISIBLE's corner reads NEUTRAL/COUNTERACTION, and ANTI-ANTI's own face names it an escape — yet the engine refused it at the door. Now it counters: the vanishing goes up mid-stack (duration from a NUMBER card riding the counteract command), the attacker's 1-in-4 hit roll happens at resolution, the spell lingers after the exchange, and ANTI-ANTI cannot pin it. WATERWALL — "Acts as counteraction to FIREBALL" — now mirrors WALL OF FIRE's waterbolt-stopping role and counts as a total stop. WALL OF FIRE itself joins the total-stop set at rev 12 only: stored rev-10/11 games bounced after it and replay so. While responding, tapping a number card holds it to ride the next counter (unless a displayed Shieldstone makes the number itself the counteraction, as before). The automatons learn the trick too: vanish when the blow is heavy and the shields are spent, and never waste ANTI-ANTI against an escape. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
fb2266b401
commit
4d8584ae44
@@ -258,7 +258,7 @@ function respond(view: GameView, style: AutomatonStyle, tier: TierTraits): Comma
|
||||
if (stack.attackerId === you) {
|
||||
const last = [...stack.counters].reverse().find((c) => !c.nullified);
|
||||
const anti = find("anti-anti");
|
||||
if (anti && last && last.card.cardId !== "teleport") {
|
||||
if (anti && last && last.card.cardId !== "teleport" && last.card.cardId !== "invisible") {
|
||||
return { type: "counteract", instanceId: anti.instanceId };
|
||||
}
|
||||
}
|
||||
@@ -308,6 +308,15 @@ function respond(view: GameView, style: AutomatonStyle, tier: TierTraits): Comma
|
||||
const out = escapeCell(view, me(view).position);
|
||||
if (out) return { type: "counteract", instanceId: tp.instanceId, params: { cell: out } };
|
||||
}
|
||||
// Or vanish: INVISIBLE gives the attacker a 1-in-4 hit and lingers after.
|
||||
const vanish = find("invisible");
|
||||
if (vanish && !stack.creatureId && incoming >= 3 - flinch) {
|
||||
const num = numbersInHand(view)[0];
|
||||
return {
|
||||
type: "counteract", instanceId: vanish.instanceId,
|
||||
...(num ? { numberInstanceIds: [num.instanceId] } : {}),
|
||||
};
|
||||
}
|
||||
// A displayed shieldstone lets numbers soak the small ones.
|
||||
const stoneShown = me(view).displayed.some((c) => c.cardId === "shieldstone");
|
||||
if (stoneShown && incoming >= 2) {
|
||||
|
||||
Reference in New Issue
Block a user