From 0a29a1fe909e1be2b486499620fb5b8d79af4e4c Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 7 Dec 2024 20:55:47 -0800 Subject: [PATCH] attempt fix private game not connecting --- TODO.txt | 4 ++-- src/client/GameRunner.ts | 1 + src/client/Main.ts | 4 ---- src/core/Schemas.ts | 9 +++++++-- src/core/configuration/DevConfig.ts | 8 ++++---- 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/TODO.txt b/TODO.txt index 0f558c6ae..47a96ca23 100644 --- a/TODO.txt +++ b/TODO.txt @@ -210,11 +210,11 @@ * add radiation from nuke DONE 12/4/2024 * add cities DONE 12/4/2024 * write multiplayer games to GCS DONE 12/6/2024 -* write single player games to GCS +* write single player games to GCS DONE 12/7/2024 * bugfix: private game host game doesn't start +* bufix: mini map doesn't load in time * record game winner * record game difficulty -* bufix: mini map doesn't load in time * standardize game ids * record commit hash of game * store metadata in BigQuery diff --git a/src/client/GameRunner.ts b/src/client/GameRunner.ts index a3923a87a..40c891026 100644 --- a/src/client/GameRunner.ts +++ b/src/client/GameRunner.ts @@ -154,6 +154,7 @@ export class GameRunner { } if (message.type == "turn") { if (!this.hasJoined) { + this.transport.joinGame(0) return } if (this.turns.length != message.turn.turnNumber) { diff --git a/src/client/Main.ts b/src/client/Main.ts index e1e4fa1e3..94425752d 100644 --- a/src/client/Main.ts +++ b/src/client/Main.ts @@ -84,10 +84,6 @@ class Client { ); } - private stopGame() { - this?.gameStop?.() - } - private async handleLeaveLobby(event: CustomEvent) { if (this.gameStop == null) { return diff --git a/src/core/Schemas.ts b/src/core/Schemas.ts index 62d4b29b3..8b22023f5 100644 --- a/src/core/Schemas.ts +++ b/src/core/Schemas.ts @@ -32,10 +32,11 @@ export type Turn = z.infer export type GameConfig = z.infer export type ClientMessage = ClientPingMessage | ClientIntentMessage | ClientJoinMessage -export type ServerMessage = ServerSyncMessage | ServerStartGameMessage +export type ServerMessage = ServerSyncMessage | ServerStartGameMessage | ServerPingMessage export type ServerSyncMessage = z.infer export type ServerStartGameMessage = z.infer +export type ServerPingMessage = z.infer export type ClientPingMessage = z.infer export type ClientIntentMessage = z.infer @@ -193,6 +194,10 @@ export const ServerTurnMessageSchema = ServerBaseMessageSchema.extend({ turn: TurnSchema, }) +export const ServerPingMessageSchema = ServerBaseMessageSchema.extend({ + type: z.literal('ping') +}) + export const ServerStartGameMessageSchema = ServerBaseMessageSchema.extend({ type: z.literal('start'), // Turns the client missed if they are late to the game. @@ -201,7 +206,7 @@ export const ServerStartGameMessageSchema = ServerBaseMessageSchema.extend({ }) -export const ServerMessageSchema = z.union([ServerTurnMessageSchema, ServerStartGameMessageSchema]); +export const ServerMessageSchema = z.union([ServerTurnMessageSchema, ServerStartGameMessageSchema, ServerPingMessageSchema]); // Client diff --git a/src/core/configuration/DevConfig.ts b/src/core/configuration/DevConfig.ts index 107b4ba5a..29b58a46a 100644 --- a/src/core/configuration/DevConfig.ts +++ b/src/core/configuration/DevConfig.ts @@ -15,10 +15,10 @@ export const devConfig = new class extends DefaultConfig { percentageTilesOwnedToWin(): number { return 95 } - // numSpawnPhaseTurns(gameType: GameType): number { - // return 40 - // // return 100 - // } + numSpawnPhaseTurns(gameType: GameType): number { + return 40 + // return 100 + } gameCreationRate(): number { return 10 * 1000 }