State Management
Game state is managed with Zustand. The main state store is defined in the game-status.ts file.
Main State Fields
interface IGameState {
// Game state
currentTurnPlayerId: string;
winnerId: string | undefined;
isTie: boolean;
// Players
playerList: Player[];
currentPlayer: Player | null;
localSeat: PlayerIndex;
// Tiles
playerHand: ITile[];
tilePool: number;
// Okey
okeyIndicator: ITile | undefined;
okeyTile: ITile | undefined;
// Score
scoreBoard: Record<string, number>;
// Melds
openSeriesBySeat: MeldsBySeat;
// Play Again
playAgainRequestingPlayer: Player | null;
// UI state
undoFromDiscardButtonEnabled: boolean;
// ... more
}