{#if me}
{#if possessed}
riding the {possessed.kind.replace(/-/g, " ")}
{Math.max(0, possessed.movesPerTurn - possessed.movementUsed)} moves{possessed.attackUsed ? "" : " · claws ready"}
back to your eyes
{:else if rideable.length > 0 && (onCreatureMove || onCreatureAttack)} {#each rideable as c (c.id)}
{ possessedId = c.id; manualUntil = performance.now() + RIDE_HOLD_MS; }}> 👁 ride the {c.kind.replace(/-/g, " ")}
{/each} {/if}
{#if canStride}
manualStride(false)} aria-label="step forward">︿ forward
{/if}
{#if withYou.length > 0}
sharing your square
{#each withYou as body (body.id)}
handleTarget(body.kind === "player" ? { kind: "player", id: body.id } : { kind: "creature", id: body.id })}>
{/each} {/if}
✕
manualTurn(-1)} aria-label="turn left">‹
manualTurn(1)} aria-label="turn right">›
{#if canStride && ((!possessed && atFeet.length > 0) || underfoot.hazard || underfoot.warpHere)}
at your feet
{#if !possessed && onpickup} {#each atFeet as item (item.id)}
onpickup?.({ kind: item.kind, id: item.id })}> {#if item.art}
{:else}
{item.label}
{/if}
{/each} {/if} {#if underfoot.hazard}
⚠ {underfoot.hazard}
{/if} {#if underfoot.warpHere && onWarpStep}
onWarpStep?.(possessedId)}>⇋ step through the warp
{/if} {/if}
{#if canStride}
manualStride(true)} aria-label="step back">﹀ back
{/if}
← → turn · ↑ ↓ walk
{/if}