Wall-segment 'tokens' retire; the gallery shows edges as the maze draws them
The game has never used token art for edge effects — created walls, doors and their lock states, fire walls, illusions are all vector edge treatments. The ten unreferenced file pairs (wall, wall-2, door, fire-wall, illusion-wall, destroy-wall, jam-lock, lock-gone, redirection-a/b) are gone from both art sets, and the Token Workshop gains 'Walls & doors — as the maze draws them': every edge state (locked, ajar, held, removed, jammed), the standing fire, and both faces of an illusion, rendered by the same EdgeGlyph / FirewallEdge / IllusionShimmer components the board mounts. EdgeGlyph is newly extracted from Board so the display cannot drift. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0138A8CjeQRpvzKxuMfz1Bqc
This commit is contained in:
co-authored by
Claude Fable 5
parent
e1aeeaabff
commit
d8b8f8fd53
@@ -16,18 +16,39 @@
|
||||
title: "Terrain",
|
||||
files: [
|
||||
"solid-stone", "thorn-bush", "rosebush", "killer-ooze", "slime", "dustcloud",
|
||||
"tacks", "pit", "safe", "fire-wall", "illusion-wall", "wall", "wall-2", "door",
|
||||
"tacks", "pit", "safe",
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Objects & markers",
|
||||
files: [
|
||||
"dagger", "rock", "magic-stone", "magic-wand", "master-key", "boobytrap",
|
||||
"dimensional-warp", "redirection-a", "redirection-b", "destroy-wall",
|
||||
"jam-lock", "lock-gone",
|
||||
"dimensional-warp",
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
// Wall-segment effects have never been tokens: the maze draws them as edge
|
||||
// treatments. Shown here exactly as the board mounts them.
|
||||
import EdgeGlyph from "./EdgeGlyph.svelte";
|
||||
import FirewallEdge from "./FirewallEdge.svelte";
|
||||
import IllusionShimmer from "./IllusionShimmer.svelte";
|
||||
const EDGE_PIECES: {
|
||||
caption: string;
|
||||
state?: "wall" | "door";
|
||||
lock?: "removed" | "jammed" | "held" | "ajar" | null;
|
||||
special?: "firewall" | "shimmer" | "known-illusion";
|
||||
}[] = [
|
||||
{ caption: "wall", state: "wall" },
|
||||
{ caption: "door (locked)", state: "door" },
|
||||
{ caption: "door, picked open (ajar)", state: "door", lock: "ajar" },
|
||||
{ caption: "door, held open", state: "door", lock: "held" },
|
||||
{ caption: "door, lock removed", state: "door", lock: "removed" },
|
||||
{ caption: "door, lock jammed", state: "door", lock: "jammed" },
|
||||
{ caption: "wall of fire", special: "firewall" },
|
||||
{ caption: "illusion wall (untested)", special: "shimmer" },
|
||||
{ caption: "illusion wall (you know it's fake)", special: "known-illusion" },
|
||||
];
|
||||
</script>
|
||||
|
||||
<div class="gallery">
|
||||
@@ -64,6 +85,35 @@
|
||||
{/each}
|
||||
</div>
|
||||
{/each}
|
||||
|
||||
<h2>Walls & doors — as the maze draws them</h2>
|
||||
<p class="sub">
|
||||
Wall-segment effects have never been tokens: locks picked, jammed, and
|
||||
removed, held doors, standing fires, and illusions are edge treatments,
|
||||
shown here with the very components the board mounts.
|
||||
</p>
|
||||
<div class="grid">
|
||||
{#each EDGE_PIECES as piece (piece.caption)}
|
||||
<figure>
|
||||
<svg viewBox="20 20 104 104" class="edge-demo">
|
||||
{#each [0, 1, 2] as cy (cy)}{#each [0, 1, 2] as cx (cx)}
|
||||
<rect x={cx * 48} y={cy * 48} width="48" height="48" class="cell" />
|
||||
{/each}{/each}
|
||||
{#if piece.special === "firewall"}
|
||||
<FirewallEdge x={1} y={0} kind="H" />
|
||||
{:else if piece.special === "shimmer"}
|
||||
<EdgeGlyph x={1} y={0} kind="H" state="wall" />
|
||||
<IllusionShimmer x={1} y={0} kind="H" />
|
||||
{:else if piece.special === "known-illusion"}
|
||||
<line x1={48} y1={48} x2={96} y2={48} class="known-illusion" />
|
||||
{:else}
|
||||
<EdgeGlyph x={1} y={0} kind="H" state={piece.state!} lock={piece.lock ?? null} />
|
||||
{/if}
|
||||
</svg>
|
||||
<figcaption>{piece.caption}</figcaption>
|
||||
</figure>
|
||||
{/each}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
@@ -107,6 +157,14 @@
|
||||
font-size: 0.6rem;
|
||||
color: #8a7a5e;
|
||||
}
|
||||
.edge-demo { width: 100%; display: block; }
|
||||
.cell {
|
||||
fill: #efe8d4;
|
||||
stroke: rgba(95, 74, 51, 0.25);
|
||||
stroke-width: 1;
|
||||
}
|
||||
/* Mirrors Board's known-illusion ghost: dashed, violet, see-through. */
|
||||
.known-illusion { stroke: #7a6f9a; stroke-width: 4; stroke-dasharray: 6 5; opacity: 0.7; }
|
||||
figcaption {
|
||||
font-family: "Courier Prime", monospace;
|
||||
font-size: 0.72rem;
|
||||
|
||||
Reference in New Issue
Block a user