60 lines
991 B
TypeScript
60 lines
991 B
TypeScript
export enum GameState {
|
|
Setup,
|
|
Joined,
|
|
Started,
|
|
MyTurn,
|
|
Ended,
|
|
}
|
|
|
|
export enum GameStateState {
|
|
Setup = 'setup',
|
|
Running = 'running',
|
|
Ended = 'ended',
|
|
}
|
|
|
|
export interface ApiObject {
|
|
errors?: string[],
|
|
}
|
|
|
|
export interface JoinCreateGameObject extends ApiObject {
|
|
player: PlayerObject,
|
|
code: string,
|
|
}
|
|
|
|
export interface IsStartedObject extends ApiObject {
|
|
started: boolean,
|
|
}
|
|
|
|
export interface MyTurnObject extends ApiObject {
|
|
gameState: GameStateObject,
|
|
turn: boolean,
|
|
}
|
|
|
|
export interface GameStateObject {
|
|
state: GameStateState,
|
|
code: string,
|
|
rounds: RoundObject[],
|
|
players: PlayerObject[],
|
|
currentPlayer: PlayerObject,
|
|
owningPlayer: PlayerObject,
|
|
}
|
|
|
|
export interface RoundObject {
|
|
number: number,
|
|
turns: TurnObject[],
|
|
loser?: PlayerObject,
|
|
myRolls: number[],
|
|
}
|
|
|
|
export interface TurnObject {
|
|
number: number,
|
|
player: PlayerObject,
|
|
diceCount: number,
|
|
dieValue: number,
|
|
}
|
|
|
|
export interface PlayerObject {
|
|
id: string,
|
|
name: string,
|
|
}
|