Creatures with orders left announce themselves in the rail

Summoned monsters act during their controller's turn, but nothing
reminded you — a democratic monster in play was invisibly waiting on
every single player. Now each creature you may command this turn gets
a moss-green slip in the paper rail: name, moves remaining, whether
its attack is ready (respecting no-attack-on-creation and the
democratic monster's one-attack-per-round), and the tap-to-command
hint. The democratic monster reminds every player on their turn,
since all players get to move it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Eric Wagoner
2026-08-16 10:43:13 -04:00
co-authored by Claude Fable 5
parent 97a3305d07
commit c4dafe1df7
+19
View File
@@ -541,6 +541,15 @@
return sighted;
});
/** Creatures awaiting your orders this turn (yours + any democratic monster). */
const idleCreatures = $derived(
view != null && isYourTurn
? view.creatures.filter((c) =>
(c.controllerId === view!.you || c.kind === "democratic-monster") &&
(c.movementUsed < c.movesPerTurn || (!c.attackUsed && !c.justCreated)))
: [],
);
const objectsHere = $derived(
view != null && me != null
? (view.groundObjects[`${me.position.x},${me.position.y}`] ?? [])
@@ -913,6 +922,15 @@
<div class="slip">{view.activePlayerId} is taking their turn…</div>
{/if}
{#each idleCreatures as c (c.id)}
{@const moves = c.movesPerTurn - c.movementUsed}
<div class="slip creature-note">
🜲 {c.controllerId === view.you ? "Your" : "The"} {cardDef(c.kind).name} awaits orders —
{#if moves > 0}{moves} move{moves === 1 ? "" : "s"}{/if}{#if moves > 0 && !c.attackUsed && !c.justCreated}&nbsp;·&nbsp;{/if}{#if !c.attackUsed && !c.justCreated}attack ready{/if}.
Tap its token to command it.
</div>
{/each}
{#if view.yourAmbushes.length > 0}
{#each view.yourAmbushes as a (a.id)}
<div class="slip ambush-note">
@@ -1520,6 +1538,7 @@
gap: 0.5rem;
height: 1.55rem;
}
.slip.creature-note { background: #e7edda; border-color: #7d8a5a; }
.score-row.active .score-name { font-weight: 700; }
.table-cards {
display: flex;