From 7c0d0eb9b788b22efc32fc37fdf7763bf1493309 Mon Sep 17 00:00:00 2001 From: tomoron Date: Mon, 14 Oct 2024 20:34:52 +0200 Subject: [PATCH] fix pfp , goalId, skinId in tournament game start --- .../djangoserver/file/server/server/Bot.py | 6 ++-- .../djangoserver/file/server/server/Game.py | 10 +++--- .../file/server/server/Tournament.py | 4 +-- .../file/server/server/TournamentGame.py | 32 ++++++++++--------- .../typeRequests/tournamentActions/start.py | 15 +++++++-- .../file/server/server/websocket.py | 9 +++--- 6 files changed, 45 insertions(+), 31 deletions(-) diff --git a/docker-compose/requirements/djangoserver/file/server/server/Bot.py b/docker-compose/requirements/djangoserver/file/server/server/Bot.py index 98fa0c7..0b032b9 100644 --- a/docker-compose/requirements/djangoserver/file/server/server/Bot.py +++ b/docker-compose/requirements/djangoserver/file/server/server/Bot.py @@ -6,7 +6,7 @@ # By: tomoron +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2024/10/05 03:54:20 by tomoron #+# #+# # -# Updated: 2024/10/13 21:24:19 by tomoron ### ########.fr # +# Updated: 2024/10/14 20:18:58 by tomoron ### ########.fr # # # # **************************************************************************** # @@ -70,8 +70,10 @@ class Bot(Player): def isEnd(self): if(self.tournament != None): return(self.tournament.end) - else: + elif(self.game != None): return(self.game.end) + else: + return(False) async def updateLoop(self): while not self.isEnd(): diff --git a/docker-compose/requirements/djangoserver/file/server/server/Game.py b/docker-compose/requirements/djangoserver/file/server/server/Game.py index 30b1a16..db142cc 100644 --- a/docker-compose/requirements/djangoserver/file/server/server/Game.py +++ b/docker-compose/requirements/djangoserver/file/server/server/Game.py @@ -6,7 +6,7 @@ # By: edbernar +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2024/10/12 22:49:00 by tomoron #+# #+# # -# Updated: 2024/10/14 20:10:13 by tomoron ### ########.fr # +# Updated: 2024/10/14 20:29:06 by tomoron ### ########.fr # # # # **************************************************************************** # import asyncio @@ -23,29 +23,30 @@ class TournamentGame: def startGame(self): l = None r = None + print("start new game") if(isinstance(self.left,TournamentGame)): self.game = Game(self.left.winner, self.right.winner, True) - l = self.left.winner.socket - r = self.right.winner.socket + l = self.left.winner + r = self.right.winner else: self.game = Game(self.left, self.right, True) - l = self.left.socket - r = self.right.socket - l.sync_send("tournament", { + l = self.left + r = self.right + l.socket.sync_send("tournament", { "action":4, - "id": r.id, - "username":r.username, + "id": r.socket.id, + "pfp": r.socket.pfp, + "username":r.socket.username, "skin" : r.skin, - "goal": r.goal, - "pfp": r.pfp + "goal": r.goal }) - r.sync_send("tournament", { + r.socket.sync_send("tournament", { "action":4, - "id": l.id, - "username": l.username, + "id": l.socket.id, + "pfp": l.socket.pfp, + "username": l.socket.username, "skin" : l.skin, - "goal": l.goal, - "pfp": l.pfp + "goal": l.goal }) async def loop(self): @@ -60,5 +61,6 @@ class TournamentGame: self.startGame() else: if(self.game.winner != None): + print("game ended, winner is", self.game.pWinner.socket.username) self.winner = self.game.pWinner await asyncio.sleep(1) diff --git a/docker-compose/requirements/djangoserver/file/server/server/typeRequests/tournamentActions/start.py b/docker-compose/requirements/djangoserver/file/server/server/typeRequests/tournamentActions/start.py index 6ceb17f..c762e90 100644 --- a/docker-compose/requirements/djangoserver/file/server/server/typeRequests/tournamentActions/start.py +++ b/docker-compose/requirements/djangoserver/file/server/server/typeRequests/tournamentActions/start.py @@ -6,16 +6,25 @@ # By: tomoron +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2024/10/04 17:16:02 by tomoron #+# #+# # -# Updated: 2024/10/11 21:14:54 by tomoron ### ########.fr # +# Updated: 2024/10/14 20:25:16 by tomoron ### ########.fr # # # # **************************************************************************** # from ...Tournament import Tournament +from ...GameSettings import GameSettings async def tournamentStart(socket, content): + skinId = content.get("skinId", 0) + if(skinId < 0 or skinId >= GameSettings.nbSkins): + socket.sendError("Skin id out of range", 9033) + return; + goalId = content.get("goalId",0) + if(goalId < 0 or goalId >= GameSettings.nbGoals): + socket.sendError("Goal id out of range", 9039) + return; if("code" in content and len(content["code"])): if(content["code"] in Tournament.currentTournaments): - Tournament.currentTournaments[content["code"]].join(socket) + Tournament.currentTournaments[content["code"]].join(socket, skin, goal) else: socket.sync_send("tournament",{"action":0, "exist":False}) else: @@ -23,4 +32,4 @@ async def tournamentStart(socket, content): if(nbBot < 0 or nbBot > 7): socket.sendError("invalid number of bots", 9040) return; - Tournament(socket, nbBot) + Tournament(socket, nbBot, skinId, goalId) diff --git a/docker-compose/requirements/djangoserver/file/server/server/websocket.py b/docker-compose/requirements/djangoserver/file/server/server/websocket.py index 4fddd91..03083f2 100644 --- a/docker-compose/requirements/djangoserver/file/server/server/websocket.py +++ b/docker-compose/requirements/djangoserver/file/server/server/websocket.py @@ -6,7 +6,7 @@ # By: edbernar