diff --git a/src/client/Client.ts b/src/client/Client.ts index 9b2af9fe0..10cca0cae 100644 --- a/src/client/Client.ts +++ b/src/client/Client.ts @@ -71,7 +71,7 @@ class Client { if (nameElement) nameElement.textContent = `Game ${lobby.id}`; if (timerElement) { - const timeRemaining = Math.max(0, Math.floor((lobby.startTime - Date.now()) / 1000)); + const timeRemaining = Math.max(0, Math.floor((lobby.msUntilStart) / 1000)); timerElement.textContent = `Starts in: ${timeRemaining}s`; } if (playerCountElement) playerCountElement.textContent = `Players: ${lobby.numClients}`; diff --git a/src/core/Schemas.ts b/src/core/Schemas.ts index 2bca38813..686c867cf 100644 --- a/src/core/Schemas.ts +++ b/src/core/Schemas.ts @@ -27,7 +27,7 @@ export type ClientLeaveMessage = z.infer export interface Lobby { id: string; - startTime: number; + msUntilStart: number; numClients: number; } diff --git a/src/server/GameServer.ts b/src/server/GameServer.ts index 8eb835c8a..bc3f9b528 100644 --- a/src/server/GameServer.ts +++ b/src/server/GameServer.ts @@ -115,7 +115,6 @@ export class GameServer { this.clients.forEach(c => { c.ws.send(msg) }) - } endGame() { diff --git a/src/server/Server.ts b/src/server/Server.ts index 276388abf..0932d34b4 100644 --- a/src/server/Server.ts +++ b/src/server/Server.ts @@ -24,8 +24,11 @@ const gm = new GameManager(getConfig()) // New GET endpoint to list lobbies app.get('/lobbies', (req, res) => { + const now = Date.now() res.json({ - lobbies: gm.gamesByPhase(GamePhase.Lobby).map(g => ({id: g.id, startTime: g.startTime(), numClients: g.numClients()})), + lobbies: gm.gamesByPhase(GamePhase.Lobby) + .map(g => ({id: g.id, msUntilStart: g.startTime() - now, numClients: g.numClients()})) + // .sort((a, b) => a.startTime - b.startTime), }); });