Dispel Creation reaches every creation, and edge hints tell the truth
An opponent's wraith refused to be dispelled — the engine was willing all along (any controller's creature, sight required), but creature clicks never routed cell-target spells, so the cast never left the client. Clicking a creature with a cell spell selected now lands on its square. The dimming aid told the same lie twice over: it lit every created square including ones out of sight (a caster's own thornbush beyond the walls) and never lit creatures at all. It now mirrors the engine — anything created, whoever made it, in sight. And "click a wall line" stops standing in for every edge card: each now says what the click actually is — a locked door for the keys, a corridor line for the fire, the creation itself for the dispel — and attacks no longer show two hints for one wall. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
ee6a08f25c
commit
9493873b64
@@ -284,7 +284,14 @@ export function eligibleCellsFor(view: GameView, cardId: string): Set<string> |
|
||||
return new Set(cells.filter((k) => view.squareContents[k]?.kind === "stone"));
|
||||
}
|
||||
if (cardId === "dispel-creation") {
|
||||
return new Set(cells.filter((k) => view.squareContents[k] != null));
|
||||
// Anything created — terrain or creature, whoever made it — in sight.
|
||||
const out = new Set<string>();
|
||||
for (const k of cells) {
|
||||
const created = view.squareContents[k] != null ||
|
||||
view.creatures.some((c) => key(c.position.x, c.position.y) === k);
|
||||
if (created && sighted.has(k)) out.add(k);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user