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
@@ -108,6 +108,9 @@
|
||||
const attackingCreature = $derived(
|
||||
view?.stack?.creatureId ? view.creatures.find((c) => c.id === view!.stack!.creatureId) ?? null : null,
|
||||
);
|
||||
const myShieldstoneDisplayed = $derived(
|
||||
view?.players.find((p) => p.id === view.you)?.displayed.some((c) => c.cardId === "shieldstone") ?? false,
|
||||
);
|
||||
const youMustDiscard = $derived(view != null && view.pendingDiscard === view.you);
|
||||
const youMustShield = $derived(view?.chaosPending?.queue[0] === view?.you && view != null);
|
||||
/** Picking up an object ends the turn's actions: the hand goes quiet until
|
||||
@@ -283,7 +286,17 @@
|
||||
selectedCard = card; // then click the escape square
|
||||
return;
|
||||
}
|
||||
dispatch({ type: "counteract", instanceId: card.instanceId });
|
||||
// A number can ride a counter (INVISIBLE's duration) — unless a
|
||||
// displayed Shieldstone makes the number itself the counteraction.
|
||||
if (youMustRespond && isNumberCard(card.cardId) && !myShieldstoneDisplayed) {
|
||||
attachedNumber = attachedNumber?.instanceId === card.instanceId ? null : card;
|
||||
return;
|
||||
}
|
||||
dispatch({
|
||||
type: "counteract", instanceId: card.instanceId,
|
||||
...(attachedNumber ? { numberInstanceIds: [attachedNumber.instanceId] } : {}),
|
||||
});
|
||||
attachedNumber = null;
|
||||
return;
|
||||
}
|
||||
if (youMustDiscard || discardMode || discardSelection.size > 0) {
|
||||
|
||||
@@ -132,7 +132,7 @@ class LocalGame {
|
||||
seed,
|
||||
sets: expansion ? ["basic", "expansion1"] : ["basic"],
|
||||
...(colors ? { colors } : {}),
|
||||
deckRev: 11,
|
||||
deckRev: 12,
|
||||
};
|
||||
const { state, events } = createGame(config);
|
||||
this.config = config;
|
||||
|
||||
Reference in New Issue
Block a user