An attack tapped onto a slime is cast into it

The engine has trapped spells in slime since the card arrived; the
board never offered the tap. LIGHTNING BLAST on a slime square now
lodges there for the next wizard in, as the card says.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jm2auWk6RP71CjaAb4FMoG
This commit is contained in:
Eric Wagoner
2026-09-07 15:51:07 -05:00
co-authored by Claude Fable 5.1
parent 5c956c24bb
commit c09bcc481d
+9 -1
View File
@@ -912,10 +912,18 @@
return;
}
const me = view.players.find((p) => p.id === view.you)!;
// "Spells cast at the slime get stuck there": an attack tapped onto a
// slime waits in the gel for whoever enters.
if (selectedCard && view.squareContents[cellKey(cell)]?.kind === "slime" &&
cardDef(selectedCard.cardId).cardType === "attack") {
dispatch(withMods({ type: "cast", instanceId: selectedCard.instanceId, target: { kind: "cell", cell } }));
clearSelection();
return;
}
// A card in hand is aimed, not walked with: a tap on a bare square
// while holding one is a miss, never a stride into whatever is there.
if (selectedCard) {
net.error = `${cardDef(selectedCard.cardId).name} is aimed by tapping a wizard or creature — put the card down to walk`;
net.error = `${cardDef(selectedCard.cardId).name} is aimed by tapping a wizard, a creature, or a slime — put the card down to walk`;
setTimeout(() => { if (net.error?.startsWith(cardDef(selectedCard!.cardId).name)) net.error = null; }, 5000);
return;
}