From 69b249a9f9e0d5dc49213d4a26f83fcb3170d9b8 Mon Sep 17 00:00:00 2001 From: legonzaur Date: Sun, 12 May 2024 12:09:31 +0200 Subject: [PATCH] feat: readable-game-info --- src/controller/lobby.py | 7 +++++++ src/controller/lobbyClient.py | 34 +++++++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/src/controller/lobby.py b/src/controller/lobby.py index 1857e79..ee9ab8b 100644 --- a/src/controller/lobby.py +++ b/src/controller/lobby.py @@ -40,6 +40,13 @@ class LobbyController: game = GameController(self.lobby.create_game(), self) self.games.append(game) await game.game.init_game() + await self.broadcast_to_unconnected( + Message( + type=MessageType.CREATE, + data_type="object", + data=game.game.serialize_guest(), + ), + ) await self.broadcast_to_unconnected( Message( type=MessageType.UPDATE, diff --git a/src/controller/lobbyClient.py b/src/controller/lobbyClient.py index 59fffa2..7c8dae0 100644 --- a/src/controller/lobbyClient.py +++ b/src/controller/lobbyClient.py @@ -94,6 +94,32 @@ class LobbyClientController: """Send an error string to the connected client""" await self.send(Message(type=MessageType.ERROR, data_type="error", data=error)) + async def announce_lobby(self, websocket: WebSocketServerProtocol): + for g in self.lobby_controller.lobby.games: + for p in g.players: + await self.send( + Message( + type=MessageType.CREATE, + data_type="object", + data=p.serialize_guest(), + ) + ) + await self.send( + Message( + type=MessageType.CREATE, + data_type="object", + data=g.serialize_guest(), + ) + ) + + await self.send( + Message( + type=MessageType.CREATE, + data_type="object", + data=self.lobby_controller.lobby.serialize(), + ) + ) + async def login_user(self, user: dict): self.discord_uid = user["id"] self.username = user["username"] @@ -103,13 +129,7 @@ class LobbyClientController: await self.send( Message(type=MessageType.SET, data_type="session_cookie", data=cookie) ) - await self.send( - Message( - type=MessageType.CREATE, - data_type="object", - data=self.lobby_controller.lobby.serialize(), - ) - ) + await self.announce_lobby(self.websocket) await self.send( Message( type=MessageType.CONTEXT,