The crosshair answers before the click commits
Hovering the pane now shows what a click would do: a wizard or creature outlines in gold with its name at the crosshair, a wall or door face lights across every column it owns, and a floor square draws its perspective-true quad on the ground. Warp-bent ground still targets truly but labels itself "through the warp" rather than drawing a quad in the wrong geometry. And when a cell-target card is selected, the ineligible ground dims in the 3D view itself — the same litCells the board's shadow uses, rasterized into the floor pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015RCWSTnb1KYTPyL4GmhGnF
This commit is contained in:
co-authored by
Claude Fable 5
parent
42d872df6d
commit
22c443d2c5
@@ -15,7 +15,7 @@
|
||||
import { untrack } from "svelte";
|
||||
import type { GameEvent, GameView, Side } from "@wizwar/engine";
|
||||
|
||||
let { view, batch, onhide, onstride = null, canStride = false, ontarget = null, onfacing = null }: {
|
||||
let { view, batch, onhide, onstride = null, canStride = false, ontarget = null, onfacing = null, litCells = null }: {
|
||||
view: GameView;
|
||||
/** The latest live event batch, numbered so each plays once, with
|
||||
* the view the server sent alongside it. */
|
||||
@@ -30,6 +30,8 @@
|
||||
/** Reports the camera's compass quadrant whenever it settles on a new
|
||||
* one — the keymap wears it as a wedge on your token. */
|
||||
onfacing?: ((side: Side) => void) | null;
|
||||
/** Cell-card eligibility, shared with the board's dimming aid. */
|
||||
litCells?: Set<string> | null;
|
||||
} = $props();
|
||||
|
||||
const povId = $derived(view.you);
|
||||
@@ -249,7 +251,7 @@
|
||||
<FirstPerson {view} povId={cutawayShot ? "" : povId}
|
||||
x={cam.x} y={cam.y} facing={cam.facing} width={960} height={400}
|
||||
fx={fpFx} posOverride={actorPos}
|
||||
ontarget={ontarget ?? undefined} />
|
||||
ontarget={ontarget ?? undefined} {litCells} />
|
||||
<button class="live-fp-hide" onclick={onhide} title="hide (re-enable in preferences)">✕</button>
|
||||
<!-- The helm, tappable: edge strips turn and stride. -->
|
||||
<button class="drive drive-left" onclick={() => manualTurn(-1)} aria-label="turn left">‹</button>
|
||||
|
||||
Reference in New Issue
Block a user