About: the story of the game, told on the box lid
A handwritten "about this game — a labor of love" link on the box lid opens a new About tab in the booklet: what Wiz-War is, that Tom Jolly created it in 1983, that this is a faithful reproduction of the out-of-print Chessex sixth edition (with its one expansion) that Eric and his friends played for countless hours in the early nineties — rebuilt from that very copy, card by photographed card, wall by verified wall, with the original hand-inked token art. It names Steve Jackson Games as the current rightsholder, states plainly that this is an unofficial, non-commercial fan work made with love and admiration, and closes by pointing anyone the game delights toward the edition currently in print and a real table. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
0b6ac25bc3
commit
7a231cbe1b
@@ -15,6 +15,7 @@
|
|||||||
let joinCode = $state("");
|
let joinCode = $state("");
|
||||||
let claimPhrase = $state("");
|
let claimPhrase = $state("");
|
||||||
let showHelp = $state(false);
|
let showHelp = $state(false);
|
||||||
|
let helpTab = $state<"play" | "rules" | "cards" | "about">("play");
|
||||||
let hotseatCount = $state(2);
|
let hotseatCount = $state(2);
|
||||||
let setupName = $state("");
|
let setupName = $state("");
|
||||||
let setupColor = $state(0);
|
let setupColor = $state(0);
|
||||||
@@ -526,7 +527,7 @@
|
|||||||
<button class="mast-leave" onclick={() => net.requestTransferCode()}>transfer seat</button>
|
<button class="mast-leave" onclick={() => net.requestTransferCode()}>transfer seat</button>
|
||||||
<button class="mast-leave" onclick={() => net.leave()}>leave table</button>
|
<button class="mast-leave" onclick={() => net.leave()}>leave table</button>
|
||||||
{/if}
|
{/if}
|
||||||
<button class="mast-leave" class:mast-help-solo={!net.roomId} onclick={() => (showHelp = true)}>
|
<button class="mast-leave" class:mast-help-solo={!net.roomId} onclick={() => { helpTab = "play"; showHelp = true; }}>
|
||||||
help & rules
|
help & rules
|
||||||
</button>
|
</button>
|
||||||
<span class="mast-status" class:offline={net.status !== "connected"}>
|
<span class="mast-status" class:offline={net.status !== "connected"}>
|
||||||
@@ -535,7 +536,7 @@
|
|||||||
</header>
|
</header>
|
||||||
|
|
||||||
{#if showHelp}
|
{#if showHelp}
|
||||||
<Help onclose={() => (showHelp = false)} />
|
<Help initialTab={helpTab} onclose={() => (showHelp = false)} />
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{#if net.catchUp && net.catchUp.length > 0}
|
{#if net.catchUp && net.catchUp.length > 0}
|
||||||
@@ -608,6 +609,9 @@
|
|||||||
<div class="boxlid-inner">
|
<div class="boxlid-inner">
|
||||||
<div class="boxlid-title">Wiz-War</div>
|
<div class="boxlid-title">Wiz-War</div>
|
||||||
<div class="boxlid-tag">A game of magical combat in a stone labyrinth</div>
|
<div class="boxlid-tag">A game of magical combat in a stone labyrinth</div>
|
||||||
|
<button class="about-link" onclick={() => { helpTab = "about"; showHelp = true; }}>
|
||||||
|
about this game — a labor of love
|
||||||
|
</button>
|
||||||
<label class="field">
|
<label class="field">
|
||||||
<span>Your wizard's name</span>
|
<span>Your wizard's name</span>
|
||||||
<input bind:value={name} maxlength="20" placeholder="e.g. Mordecai" />
|
<input bind:value={name} maxlength="20" placeholder="e.g. Mordecai" />
|
||||||
@@ -1144,8 +1148,20 @@
|
|||||||
.boxlid-tag {
|
.boxlid-tag {
|
||||||
font-size: 0.95rem;
|
font-size: 0.95rem;
|
||||||
color: #6b5a41;
|
color: #6b5a41;
|
||||||
margin: 0.5rem 0 1.4rem;
|
margin: 0.5rem 0 0.4rem;
|
||||||
}
|
}
|
||||||
|
.about-link {
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
|
font-family: "Caveat", cursive;
|
||||||
|
font-size: 1.05rem;
|
||||||
|
color: #8a6d3f;
|
||||||
|
text-decoration: underline;
|
||||||
|
text-decoration-style: dotted;
|
||||||
|
cursor: pointer;
|
||||||
|
margin-bottom: 1.2rem;
|
||||||
|
}
|
||||||
|
.about-link:hover { color: #43331f; }
|
||||||
.field { display: block; text-align: left; margin-bottom: 1rem; }
|
.field { display: block; text-align: left; margin-bottom: 1rem; }
|
||||||
.field span {
|
.field span {
|
||||||
display: block;
|
display: block;
|
||||||
|
|||||||
@@ -3,9 +3,16 @@
|
|||||||
import Card from "./Card.svelte";
|
import Card from "./Card.svelte";
|
||||||
import { HOW_TO_PLAY, RULES_SECTIONS } from "./rules";
|
import { HOW_TO_PLAY, RULES_SECTIONS } from "./rules";
|
||||||
|
|
||||||
let { onclose }: { onclose: () => void } = $props();
|
let {
|
||||||
|
onclose,
|
||||||
|
initialTab = "play",
|
||||||
|
}: {
|
||||||
|
onclose: () => void;
|
||||||
|
initialTab?: "play" | "rules" | "cards" | "about";
|
||||||
|
} = $props();
|
||||||
|
|
||||||
let tab = $state<"play" | "rules" | "cards">("play");
|
// svelte-ignore state_referenced_locally -- the initial tab is intentionally a one-time value
|
||||||
|
let tab = $state<"play" | "rules" | "cards" | "about">(initialTab);
|
||||||
let search = $state("");
|
let search = $state("");
|
||||||
|
|
||||||
// The playable pool: every card actually in the 6e game (base + Exp1).
|
// The playable pool: every card actually in the 6e game (base + Exp1).
|
||||||
@@ -45,12 +52,54 @@
|
|||||||
<button class:current={tab === "play"} onclick={() => (tab = "play")}>How to play</button>
|
<button class:current={tab === "play"} onclick={() => (tab = "play")}>How to play</button>
|
||||||
<button class:current={tab === "rules"} onclick={() => (tab = "rules")}>The rules</button>
|
<button class:current={tab === "rules"} onclick={() => (tab = "rules")}>The rules</button>
|
||||||
<button class:current={tab === "cards"} onclick={() => (tab = "cards")}>Card library</button>
|
<button class:current={tab === "cards"} onclick={() => (tab = "cards")}>Card library</button>
|
||||||
|
<button class:current={tab === "about"} onclick={() => (tab = "about")}>About</button>
|
||||||
</nav>
|
</nav>
|
||||||
<button class="close" onclick={onclose} aria-label="close help">×</button>
|
<button class="close" onclick={onclose} aria-label="close help">×</button>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div class="booklet-body">
|
<div class="booklet-body">
|
||||||
{#if tab === "play"}
|
{#if tab === "about"}
|
||||||
|
<div class="about">
|
||||||
|
<h3>What this is</h3>
|
||||||
|
<p>
|
||||||
|
Wiz-War is a game of magical combat in a stone labyrinth: two to six
|
||||||
|
wizards prowl a maze, hurling fireballs, walking through walls,
|
||||||
|
summoning trolls, and stealing each other's treasure. It was created
|
||||||
|
by <strong>Tom Jolly</strong> in 1983 and first published under his
|
||||||
|
own Jolly Games label; the edition reproduced here is the
|
||||||
|
<strong>sixth edition</strong>, published by Chessex in 1993, together
|
||||||
|
with its one expansion — monsters and magic wands included.
|
||||||
|
</p>
|
||||||
|
<h3>Why it exists</h3>
|
||||||
|
<p>
|
||||||
|
In the early nineties, a group of friends played this exact edition
|
||||||
|
for countless hours — the slammed doors, the ambushes around
|
||||||
|
corners, the goat charges, the laughter. That box is long out of
|
||||||
|
print, and its cardboard is worn soft at the edges. This digital
|
||||||
|
table was built from that very copy: every card was photographed and
|
||||||
|
transcribed word for word, every board layout verified wall by wall,
|
||||||
|
and the tokens on this screen are the actual hand-inked art from
|
||||||
|
those counter sheets. It is a faithful reproduction of the game as
|
||||||
|
it was played at that table, made so the same friends — and their
|
||||||
|
friends — can keep playing it.
|
||||||
|
</p>
|
||||||
|
<h3>Whose game it is</h3>
|
||||||
|
<p>
|
||||||
|
Wiz-War is Tom Jolly's design, and the rights to it now rest with
|
||||||
|
<strong>Steve Jackson Games</strong>, who publish the current
|
||||||
|
edition. This project is an unofficial, non-commercial fan work,
|
||||||
|
made with love and admiration for the original — nothing here is
|
||||||
|
endorsed by or affiliated with Tom Jolly, Chessex, or Steve Jackson
|
||||||
|
Games. If this game delights you, honor it the right way: buy the
|
||||||
|
edition currently in print, and deal seven cards to somebody at a
|
||||||
|
real table.
|
||||||
|
</p>
|
||||||
|
<p class="colophon">
|
||||||
|
Wiz-War © Tom Jolly. Sixth edition published by Chessex, 1993.
|
||||||
|
Built by Eric and a very enthusiastic AI, 2026.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{:else if tab === "play"}
|
||||||
{#each HOW_TO_PLAY as section (section.title)}
|
{#each HOW_TO_PLAY as section (section.title)}
|
||||||
<h3>{section.title}</h3>
|
<h3>{section.title}</h3>
|
||||||
{#each section.body as p, i (i)}<p>{p}</p>{/each}
|
{#each section.body as p, i (i)}<p>{p}</p>{/each}
|
||||||
|
|||||||
Reference in New Issue
Block a user