spymaster-dev-b / shared /types.ts
Danisz's picture
feat: add multi-agent support to browser, server and UI
6d09523
Raw History Blame Contribute Delete
690 Bytes
// ICodenamesBrowser interface and supporting types for the Browser Layer
export enum Team {
Red = 'red',
Blue = 'blue',
Neutral = 'neutral',
Assassin = 'assassin',
}
export interface BoardWord {
word: string;
revealed: boolean;
team: Team | null;
}
export interface BoardState {
words: BoardWord[];
}
export interface Clue {
word: string;
count: number;
}
export interface ICodenamesGameAPI {
joinRoom(options?: any): Promise<void>;
leaveRoom(): Promise<void>;
joinAsSpymaster(team: Team): Promise<void>;
getBoardState(): Promise<BoardState>;
submitClue(clue: Clue): Promise<void>;
makeGuess(word: string): Promise<void>;
endTurn(): Promise<void>;
}