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:
co-authored by
Claude Fable 5
parent
97a3305d07
commit
c4dafe1df7
@@ -541,6 +541,15 @@
|
|||||||
return sighted;
|
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(
|
const objectsHere = $derived(
|
||||||
view != null && me != null
|
view != null && me != null
|
||||||
? (view.groundObjects[`${me.position.x},${me.position.y}`] ?? [])
|
? (view.groundObjects[`${me.position.x},${me.position.y}`] ?? [])
|
||||||
@@ -913,6 +922,15 @@
|
|||||||
<div class="slip">{view.activePlayerId} is taking their turn…</div>
|
<div class="slip">{view.activePlayerId} is taking their turn…</div>
|
||||||
{/if}
|
{/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} · {/if}{#if !c.attackUsed && !c.justCreated}attack ready{/if}.
|
||||||
|
Tap its token to command it.
|
||||||
|
</div>
|
||||||
|
{/each}
|
||||||
|
|
||||||
{#if view.yourAmbushes.length > 0}
|
{#if view.yourAmbushes.length > 0}
|
||||||
{#each view.yourAmbushes as a (a.id)}
|
{#each view.yourAmbushes as a (a.id)}
|
||||||
<div class="slip ambush-note">
|
<div class="slip ambush-note">
|
||||||
@@ -1520,6 +1538,7 @@
|
|||||||
gap: 0.5rem;
|
gap: 0.5rem;
|
||||||
height: 1.55rem;
|
height: 1.55rem;
|
||||||
}
|
}
|
||||||
|
.slip.creature-note { background: #e7edda; border-color: #7d8a5a; }
|
||||||
.score-row.active .score-name { font-weight: 700; }
|
.score-row.active .score-name { font-weight: 700; }
|
||||||
.table-cards {
|
.table-cards {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
Reference in New Issue
Block a user