From 7bd8eff11c34bd8da79a24ec4a192b94f260a670 Mon Sep 17 00:00:00 2001 From: Eric Wagoner Date: Thu, 27 Aug 2026 15:23:14 -0400 Subject: [PATCH] The instruments move into the bezel; the windshield goes bare MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per the table's suggestion: chevrons and trays no longer overlay the canvas — a frame holds them. The top bezel carries the ride controls, the sharing-your-square portraits, and the hide button; tall turn paddles flank the glass; the bottom bezel holds the strides, the at-your-feet tray, hazard chips, the warp-step, and the key hint. Every canvas pixel is now permanently hover-and-click target glass, and the yield-while-targeting hack retires unneeded. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_015RCWSTnb1KYTPyL4GmhGnF --- packages/web/src/App.svelte | 3 +- packages/web/src/LiveFirstPerson.svelte | 196 +++++++++--------------- 2 files changed, 75 insertions(+), 124 deletions(-) diff --git a/packages/web/src/App.svelte b/packages/web/src/App.svelte index 405204f..2bfe587 100644 --- a/packages/web/src/App.svelte +++ b/packages/web/src/App.svelte @@ -1914,8 +1914,7 @@ onbody={(id) => (fpvBody = id)} onWarpStep={(creatureId) => dispatch(creatureId ? { type: "creatureWarpStep", creatureId } - : { type: "warpStep" })} - targeting={!!selectedCard && yourMoment} /> + : { type: "warpStep" })} /> {/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); @@ -427,36 +424,22 @@ {#if me}
- - - - - - {#if canStride} - - -
← → turn · ↑ ↓ walk
- {/if} - {#if possessed} -
+ +
+ {#if possessed} riding the {possessed.kind.replace(/-/g, " ")} {Math.max(0, possessed.movesPerTurn - possessed.movementUsed)} moves{possessed.attackUsed ? "" : " · claws ready"} -
- {:else if rideable.length > 0 && (onCreatureMove || onCreatureAttack)} -
+ {:else if rideable.length > 0 && (onCreatureMove || onCreatureAttack)} {#each rideable as c (c.id)} {/each} -
- {/if} - {#if withYou.length > 0} -
+ {/if} + + {#if withYou.length > 0} sharing your square {#each withYou as body (body.id)} {/each} -
- {/if} - {#if canStride && ((!possessed && atFeet.length > 0) || underfoot.hazard || underfoot.warpHere)} -
+ {/if} + +
+
+ + + +
+
+ {#if canStride} + + + {/if} + {#if canStride && ((!possessed && atFeet.length > 0) || underfoot.hazard || underfoot.warpHere)} at your feet {#if !possessed && onpickup} {#each atFeet as item (item.id)} @@ -487,74 +483,63 @@ {#if underfoot.warpHere && onWarpStep} {/if} -
- {/if} + {/if} + + ← → turn · ↑ ↓ walk +
{/if}