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
@@ -0,0 +1,50 @@
|
||||
<script lang="ts">
|
||||
// A wall or door on an edge, exactly as the board draws it. Wall-segment
|
||||
// effects (locks picked, jammed, removed; doors held) are color states of
|
||||
// this one glyph — the game has never used tokens for them.
|
||||
let { x, y, kind, state, lock = null, title = null }: {
|
||||
x: number; y: number; kind: "V" | "H";
|
||||
state: "wall" | "door";
|
||||
lock?: "removed" | "jammed" | "held" | "ajar" | null;
|
||||
title?: string | null;
|
||||
} = $props();
|
||||
const CELL = 48;
|
||||
const WALL = 7;
|
||||
const cls = $derived(state === "door" ? `door${lock ? ` ${lock}` : ""}` : "wall");
|
||||
</script>
|
||||
|
||||
{#if kind === "V"}
|
||||
<rect
|
||||
x={(x + 1) * CELL - WALL / 2} y={y * CELL - WALL / 2}
|
||||
width={WALL} height={CELL + WALL}
|
||||
class={cls}
|
||||
>{#if title}<title>{title}</title>{/if}</rect>
|
||||
{:else}
|
||||
<rect
|
||||
x={x * CELL - WALL / 2} y={(y + 1) * CELL - WALL / 2}
|
||||
width={CELL + WALL} height={WALL}
|
||||
class={cls}
|
||||
>{#if title}<title>{title}</title>{/if}</rect>
|
||||
{/if}
|
||||
|
||||
<style>
|
||||
.wall {
|
||||
fill: #f2ecd8;
|
||||
stroke: #2b2218;
|
||||
stroke-width: 1.6;
|
||||
}
|
||||
.door {
|
||||
fill: #8b5a2b;
|
||||
stroke: #2b2218;
|
||||
stroke-width: 1.4;
|
||||
rx: 2;
|
||||
}
|
||||
/* Lock removed: pale, an open doorway forever. */
|
||||
.door.removed { fill: #d4bd8e; }
|
||||
/* Lock jammed: near-black, sealed. */
|
||||
.door.jammed { fill: #3a2a18; stroke: #14100b; }
|
||||
/* Picked or keyed open until end of turn. */
|
||||
.door.ajar { fill: #d4bd8e; stroke-dasharray: 5 3; }
|
||||
/* Held open: a wizard stands propping it. */
|
||||
.door.held { fill: #d4bd8e; stroke: #2e7d32; }
|
||||
</style>
|
||||
Reference in New Issue
Block a user