Server: room registry with 4-letter codes, host/join/start flow, the authoritative command loop (seed + append-only command log per room — the replay/async foundation), and per-player redacted views and events broadcast after every change. Client: lobby, SVG board (floors, walls, doors, homes, color-keyed treasures and wizard tokens matching the physical set's six colors, warp arrows), click-to-move, click-to-punch, card hand with tooltips from verified card text, cast flow with number card attachment and waterbolt split, edge-click targeting for wall spells, counteract-or-pass prompt, discard flow, end-turn draw selector, and a humanized event log. Verified end-to-end over real websockets with two clients: join, start, private deals, moves, turn sync. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
12 lines
448 B
TypeScript
12 lines
448 B
TypeScript
// @wizwar/engine — pure, deterministic Wiz-War (6th edition) game logic.
|
|
// No I/O, no timers, no network: the server drives it in real time, async
|
|
// mode replays it from stored commands, and AI players call it to evaluate
|
|
// moves. All game data is verified against the owner's physical 6e set.
|
|
|
|
export * from "./rng";
|
|
export * from "./board";
|
|
export * from "./cards";
|
|
export * from "./setups";
|
|
export * from "./game";
|
|
export * from "./view";
|