diff --git a/packages/web/src/App.svelte b/packages/web/src/App.svelte index 2bfe587..405204f 100644 --- a/packages/web/src/App.svelte +++ b/packages/web/src/App.svelte @@ -1914,7 +1914,8 @@ onbody={(id) => (fpvBody = id)} onWarpStep={(creatureId) => dispatch(creatureId ? { type: "creatureWarpStep", creatureId } - : { type: "warpStep" })} /> + : { type: "warpStep" })} + targeting={!!selectedCard && yourMoment} /> {/if} void) | null; + /** A card is aimed: the drive strips yield the glass so every pixel + * hovers and clicks as a target (keys still steer). */ + targeting?: boolean; } = $props(); const povId = $derived(view.you); @@ -430,11 +433,11 @@ ontarget={handleTarget} {litCells} /> - - + + {#if canStride} - - + +
← → turn · ↑ ↓ walk
{/if} {#if possessed} @@ -608,6 +611,7 @@ .feet-item img { width: 30px; height: 30px; object-fit: contain; } .feet-fallback { font-size: 0.65rem; color: #d8d2c0; padding: 0 4px; } .feet-hazard { font-size: 0.7rem; color: #d98a4a; white-space: nowrap; } + .yielded { pointer-events: none; opacity: 0.12; } .drive-fwd { top: 0; left: 20%; right: 20%; height: 16%; } .drive-fwd:hover { background: linear-gradient(to bottom, rgba(0, 0, 0, 0.22), transparent); } .drive-back { bottom: 0; left: 20%; right: 20%; height: 15%; }