From 1ccc3b6c3396318ee7c51618eaf878528f2f99f3 Mon Sep 17 00:00:00 2001 From: Oliver Akins Date: Mon, 7 Mar 2022 17:58:23 -0600 Subject: [PATCH] Update types to be in-line with the events --- common/src/types/events/lobby/create.ts | 5 ++++ common/src/types/events/lobby/delete.ts | 4 +++ common/src/types/events/lobby/info.ts | 13 ++++++++++ common/src/types/events/lobby/players/join.ts | 8 ++++++ .../src/types/events/lobby/players/leave.ts | 8 ++++++ .../src/types/events/lobby/players/update.ts | 25 +++++++++++++++++++ common/src/types/events/server_info.ts | 8 ------ 7 files changed, 63 insertions(+), 8 deletions(-) create mode 100644 common/src/types/events/lobby/create.ts create mode 100644 common/src/types/events/lobby/delete.ts create mode 100644 common/src/types/events/lobby/info.ts create mode 100644 common/src/types/events/lobby/players/join.ts create mode 100644 common/src/types/events/lobby/players/leave.ts create mode 100644 common/src/types/events/lobby/players/update.ts diff --git a/common/src/types/events/lobby/create.ts b/common/src/types/events/lobby/create.ts new file mode 100644 index 0000000..5b5233c --- /dev/null +++ b/common/src/types/events/lobby/create.ts @@ -0,0 +1,5 @@ +/** The data required for the `lobby.create` event to function correctly. */ +export interface ICreateLobby { + /** The name of the user who is creating the lobby */ + name: string; +} \ No newline at end of file diff --git a/common/src/types/events/lobby/delete.ts b/common/src/types/events/lobby/delete.ts new file mode 100644 index 0000000..ea97df3 --- /dev/null +++ b/common/src/types/events/lobby/delete.ts @@ -0,0 +1,4 @@ +import { ServerRequest } from "../../ServerRequest"; + +/** The data required by the server in order to delete the lobby */ +export interface IDeleteLobby extends ServerRequest {} \ No newline at end of file diff --git a/common/src/types/events/lobby/info.ts b/common/src/types/events/lobby/info.ts new file mode 100644 index 0000000..b2ac872 --- /dev/null +++ b/common/src/types/events/lobby/info.ts @@ -0,0 +1,13 @@ +import { PlayerData } from "../../PlayerData"; +import { ServerResponse } from "../../ServerResponse"; + +/** The data sent as a response to `lobby.info`. */ +export interface ILobbyInfo extends ServerResponse { + /** + * The lobby ID that can be used by clients to connect to the server with. + */ + game_code?: string; + + /** The data associated with each player in the game. */ + players?: PlayerData[]; +} \ No newline at end of file diff --git a/common/src/types/events/lobby/players/join.ts b/common/src/types/events/lobby/players/join.ts new file mode 100644 index 0000000..ad4c736 --- /dev/null +++ b/common/src/types/events/lobby/players/join.ts @@ -0,0 +1,8 @@ +import { ServerRequest } from "../../../ServerRequest"; + +/** The data required for a player to join a game lobby */ +export interface IJoinLobby extends ServerRequest { + + /** The name that the user wants to go by in the game */ + name: string; +} \ No newline at end of file diff --git a/common/src/types/events/lobby/players/leave.ts b/common/src/types/events/lobby/players/leave.ts new file mode 100644 index 0000000..ec36e85 --- /dev/null +++ b/common/src/types/events/lobby/players/leave.ts @@ -0,0 +1,8 @@ +import { ServerRequest } from "../../../ServerRequest"; + +/** The required data for leaving a game, or kicking a player from a game. */ +export interface ILeaveLobby extends ServerRequest { + + /** The name of the player being removed from the lobby */ + name: string; +} \ No newline at end of file diff --git a/common/src/types/events/lobby/players/update.ts b/common/src/types/events/lobby/players/update.ts new file mode 100644 index 0000000..0d31af8 --- /dev/null +++ b/common/src/types/events/lobby/players/update.ts @@ -0,0 +1,25 @@ +import { IColour } from "../../../Colour"; +import { ServerRequest } from "../../../ServerRequest"; +import { ISpaceship } from "../../../Spaceship"; + +/** The required data for updating a player's information */ +export interface IUpdatePlayer extends ServerRequest { + + /** The name of the player that is being updated. */ + name: string; + + /** The player's spaceship design */ + design: { + /** + * The icon used for the player's space ship. This can be the same for + * multiple players. + */ + ship: ISpaceship; + + /** + * The colour of the user's ship. This is unique across all players, + * meaning all players must have a different colour. + */ + colour: IColour; + }; +} \ No newline at end of file diff --git a/common/src/types/events/server_info.ts b/common/src/types/events/server_info.ts index 3ef6b30..594a966 100644 --- a/common/src/types/events/server_info.ts +++ b/common/src/types/events/server_info.ts @@ -1,15 +1,7 @@ -import { IColour } from "../Colour"; -import { ISpaceship } from "../Spaceship"; import { ServerResponse } from "../ServerResponse"; /** The data sent as a response to `server.info`. */ export interface IServerInfo extends ServerResponse { /** The version that the server is currently running. */ version?: string; - - /** The ship colours that are supported by the server. */ - colours?: IColour[]; - - /** The ship icons that are supported by the server. */ - shipIcons?: ISpaceship[]; } \ No newline at end of file