From 63e8d4c5453785d23f54a1cde5651fc99581fa84 Mon Sep 17 00:00:00 2001 From: Eric Wagoner Date: Tue, 18 Aug 2026 16:21:09 -0400 Subject: [PATCH] Mental Force becomes castable: the destination step it never got MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The card prints no LOS and the engine asks none — but the client never offered the two-step flow (click the victim, then click where they go), so every cast arrived without a destination and was refused. It joins teleport-opponent and shift-wand in the destination gate, with a hint naming the three-space walk limit and the no-sight freedom. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_0138A8CjeQRpvzKxuMfz1Bqc --- packages/web/src/App.svelte | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/web/src/App.svelte b/packages/web/src/App.svelte index 53b854a..219f1b1 100644 --- a/packages/web/src/App.svelte +++ b/packages/web/src/App.svelte @@ -814,7 +814,8 @@ } return; } - if (selectedCard.cardId === "teleport-opponent" || selectedCard.cardId === "shift-wand") { + if (selectedCard.cardId === "teleport-opponent" || selectedCard.cardId === "shift-wand" || + selectedCard.cardId === "mental-force") { pendingCellFor = playerId; return; // next: click the destination cell } @@ -1814,6 +1815,10 @@ {/if} {#if selectedDef} {selectedDef.name} + {#if pendingCellFor} + — now click where {pendingCellFor} goes{selectedCard?.cardId === "mental-force" + ? " (within three walked spaces of them — no sight needed)" : ""} + {/if} {#if selectedCard && EDGE_CARDS.has(selectedCard.cardId)} — {EDGE_HINTS[selectedCard.cardId] ?? "click a wall line"} {/if}