Feat : add some events

This commit is contained in:
2024-05-29 15:04:46 +02:00
parent 7e8dd31152
commit 9248bf70af
+29 -9
View File
@@ -6,11 +6,14 @@ export interface ClientMessage {
}
export interface LobbyEvents {
newGame: (author: IUser, game: IGameListing) => void;
newGame: (author: IUser, game: IGame) => void;
updateGame: (game: IGame) => void;
removeGame: (game: string) => void;
}
type TeamEvents = {
team_addPlayer: { gameObject: string; data: IPlayer };
team_addPlayer: { gameObject: string; data: string };
team_removePlayer: { gameObject: string; data: string };
};
type TE = {
@@ -20,27 +23,44 @@ type TE = {
type ChildEvents = TE;
export interface GameEvents {
start: () => void;
createTeam: (author: IUser, team: ITeam) => void;
removeTeam: (author: IUser, team: ITeam) => void;
removeTeam: (team: ITeam) => void;
createPlayer: (author: IUser, player: IPlayer) => void;
removePlayer: (author: IUser, player: IPlayer, reason: string) => void;
removePlayer: (player: IPlayer, reason?: string) => void;
childEvent: (event: ChildEvents[keyof ChildEvents]) => void;
}
export interface ICard extends IGameObject {}
export interface IContainer extends IGameObject {
cards: Array<ICard | null>;
}
export interface IGameObject {
readonly uuid: string;
}
export interface IUser {
export interface IUser extends IGameObject {
readonly username: string;
readonly image: string;
}
export interface IPlayer extends IGameObject {}
export interface IPlayer extends IGameObject {
hand: IContainer;
discard: IContainer;
stack: IContainer;
board: IContainer;
user: IUser;
}
export interface ITeam extends IGameObject {}
export interface IGameListing extends IGameObject {
readonly players: IUser[];
export interface ITeam extends IGameObject {
players: IUser[];
}
export interface IGame extends IGameObject {
readonly teams: ITeam[];
readonly market: IContainer;
readonly marketStack: IContainer;
readonly fireGems: IContainer;
readonly started: boolean;
readonly owner: string;
readonly rules: {};