Archived
Feat : add some events
This commit is contained in:
@@ -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: {};
|
||||
|
||||
Reference in New Issue
Block a user