A slime shows how many spells wait in it, and a peek names them

Every cast into the gel was seen at the table, so the count is public:
a badge on the slime, and the peek lists each spell with its caster.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jm2auWk6RP71CjaAb4FMoG
This commit is contained in:
Eric Wagoner
2026-09-07 16:00:32 -05:00
co-authored by Claude Fable 5.1
parent 16fac5e6ca
commit 44c7ff8379
3 changed files with 30 additions and 3 deletions
+10
View File
@@ -373,6 +373,13 @@
{:else if content.kind === "safe"}
<rect x={sx * CELL + 10} y={sy * CELL + 12} width={CELL - 20} height={CELL - 22} rx="3" class="safe" />
{/if}
{#if content.kind === "slime" && (view.slimeTraps?.[key]?.length ?? 0) > 0}
<!-- spells waiting in the gel: everyone saw them cast -->
<g class="slime-charge" transform={`translate(${sx * CELL + CELL - 9}, ${sy * CELL + 9})`}>
<circle r="7" />
<text y="3.5">{view.slimeTraps[key]!.length}</text>
</g>
{/if}
{/each}
<!-- dimensional warp tokens -->
@@ -765,6 +772,9 @@
.rose { fill: #2e7d32; stroke: #b0245a; stroke-width: 3; }
.ooze { fill: #58a12b; opacity: 0.85; }
.slime { fill: #8ec52e; opacity: 0.85; }
.slime-charge { pointer-events: none; }
.slime-charge circle { fill: #3b2a6b; stroke: #f2cf5b; stroke-width: 1.5; }
.slime-charge text { fill: #f7ecc8; font-size: 10px; font-weight: 700; text-anchor: middle; font-family: "Oswald", sans-serif; }
.dust { fill: #9b9184; opacity: 0.75; }
.pit { fill: #171512; }
.tacks { font-size: 15px; text-anchor: middle; fill: #444; }