Archived
Feat : add some events
This commit is contained in:
@@ -6,11 +6,14 @@ export interface ClientMessage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface LobbyEvents {
|
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 = {
|
type TeamEvents = {
|
||||||
team_addPlayer: { gameObject: string; data: IPlayer };
|
team_addPlayer: { gameObject: string; data: string };
|
||||||
|
team_removePlayer: { gameObject: string; data: string };
|
||||||
};
|
};
|
||||||
|
|
||||||
type TE = {
|
type TE = {
|
||||||
@@ -20,27 +23,44 @@ type TE = {
|
|||||||
type ChildEvents = TE;
|
type ChildEvents = TE;
|
||||||
|
|
||||||
export interface GameEvents {
|
export interface GameEvents {
|
||||||
|
start: () => void;
|
||||||
createTeam: (author: IUser, team: ITeam) => void;
|
createTeam: (author: IUser, team: ITeam) => void;
|
||||||
removeTeam: (author: IUser, team: ITeam) => void;
|
removeTeam: (team: ITeam) => void;
|
||||||
createPlayer: (author: IUser, player: IPlayer) => 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;
|
childEvent: (event: ChildEvents[keyof ChildEvents]) => void;
|
||||||
}
|
}
|
||||||
|
export interface ICard extends IGameObject {}
|
||||||
|
|
||||||
|
export interface IContainer extends IGameObject {
|
||||||
|
cards: Array<ICard | null>;
|
||||||
|
}
|
||||||
|
|
||||||
export interface IGameObject {
|
export interface IGameObject {
|
||||||
readonly uuid: string;
|
readonly uuid: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IUser {
|
export interface IUser extends IGameObject {
|
||||||
readonly username: string;
|
readonly username: string;
|
||||||
readonly image: 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 ITeam extends IGameObject {
|
||||||
export interface IGameListing extends IGameObject {
|
players: IUser[];
|
||||||
readonly players: IUser[];
|
}
|
||||||
|
export interface IGame extends IGameObject {
|
||||||
|
readonly teams: ITeam[];
|
||||||
|
readonly market: IContainer;
|
||||||
|
readonly marketStack: IContainer;
|
||||||
|
readonly fireGems: IContainer;
|
||||||
readonly started: boolean;
|
readonly started: boolean;
|
||||||
readonly owner: string;
|
readonly owner: string;
|
||||||
readonly rules: {};
|
readonly rules: {};
|
||||||
|
|||||||
Reference in New Issue
Block a user