Support 2-6 players: the L, the cross, and the 3x2 from the rulebook
Three player counts join the square and the column: 3 players get the stair/L with the AUTO WARP joining the two openings that face the concave notch (convex openings pair geometrically — flagged as interpretation of the diagram's letters); 5 players get the plus/cross with tip-to-tip wraps and aisle-warp corners; 6 players get the 3x2 rectangle with straight-across wraps. All six verified layouts are drawn on, so no count repeats a sector. Rooms accept up to six seats; the lobby copy follows. 122 tests passing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
8d10dfee67
commit
85b40be113
@@ -103,7 +103,7 @@ export function joinRoom(
|
||||
return { error: "that wizard name is taken in this room" };
|
||||
}
|
||||
if (room.state) return { error: "game already started" };
|
||||
if (room.players.length >= 4) return { error: "room is full" };
|
||||
if (room.players.length >= 6) return { error: "room is full" };
|
||||
const fresh = randomBytes(16).toString("hex");
|
||||
room.players.push(playerId);
|
||||
room.tokens.set(playerId, hashToken(fresh));
|
||||
@@ -113,7 +113,7 @@ export function joinRoom(
|
||||
|
||||
function startInMemory(room: Room, expansion: boolean): { events: GameEvent[] } | { error: string } {
|
||||
const n = room.players.length;
|
||||
if (n !== 2 && n !== 4) return { error: "supported player counts: 2 or 4" };
|
||||
if (n < 2 || n > 6) return { error: "supported player counts: 2 to 6" };
|
||||
const { state, events } = createGame({
|
||||
playerIds: room.players,
|
||||
seed: room.seed,
|
||||
|
||||
Reference in New Issue
Block a user