A table for a dozen wizards, begun by its host

Rooms take up to twelve seats and the host begins the duel with whoever
is seated; a full table begins by itself. The lobby is a roster with a
bot seat and the host's begin button. The ledger pins the turn and your
own columns and scrolls sideways to the rest; the phone bar shows every
wizard's health; a wizard who is out watches the rest; each charmed
wizard gets their own gesture; an unnamed spell goes at whoever hurt you
last, else the weakest opponent; a stab has a target from the start.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0141G6xqLeNRYEtviLWSB5Up
This commit is contained in:
Eric WagonerandClaude Fable 5.1 committed 2026-09-23 09:34:21 -04:00
1 parent 79947e31ba
commit 58d7db106e
15 files changed
+299 -61

No files matched your search

+3
View File
@@ -19,8 +19,11 @@ export function viewFor(state: GameState, viewer: WizardId): GameState {
export interface RoomView {
roomId: string;
seq: number;
/** The most seats the table will take. */
size: number;
me: WizardId;
/** The wizard who opened the table and may begin the duel. */
host: WizardId;
seats: { id: WizardId; name: string; bot: boolean }[];
/** Seats that still have to move before the turn resolves. */
waitingOn: WizardId[];