The Token Workshop: every token, twice, at /?tokens

All 45 tokens in both arts — the photographed physical set beside the
hand-drawn contingency — grouped (wizards, treasures, monsters, terrain,
objects & markers), each at board size and close-up. The drawn column
renders through TokenArt, so it previews exactly as the board inlines
it. Cross-linked with the flourish workshop.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0138A8CjeQRpvzKxuMfz1Bqc
This commit is contained in:
Eric Wagoner
2026-08-18 09:16:46 -04:00
co-authored by Claude Fable 5
parent ed7a58a698
commit e1aeeaabff
3 changed files with 124 additions and 1 deletions
+5 -1
View File
@@ -7,6 +7,7 @@
import Help from "./Help.svelte";
import Replay from "./Replay.svelte";
import FxGallery from "./FxGallery.svelte";
import TokenGallery from "./TokenGallery.svelte";
import { scheduleFx, type BoardFx } from "./fx";
import { CREATURE_ART, objectArt, TERRAIN_ART, tokenArt } from "./art";
import { local } from "./local.svelte";
@@ -38,6 +39,7 @@
}
/** Which pending attack the player has already acknowledged (modal dismissed). */
const fxWorkshop = new URLSearchParams(location.search).has("fx");
const tokenWorkshop = new URLSearchParams(location.search).has("tokens");
let attackNoticeSeen = $state<string | null>(null);
/** The interruption fanfare, dismissed once per window. */
let momentSeen = $state(false);
@@ -1082,7 +1084,9 @@
}
</script>
{#if fxWorkshop}
{#if tokenWorkshop}
<TokenGallery />
{:else if fxWorkshop}
<FxGallery />
{:else}
<div class="table">