From dc2073f6f2d1e45dacad9ab932bd6bea36bb5a03 Mon Sep 17 00:00:00 2001 From: tomoron Date: Wed, 16 Oct 2024 14:25:16 +0200 Subject: [PATCH] changing eddy's changes (because it's fun), tournaments now detect when it ended --- .../djangoserver/file/server/server/Bot.py | 31 +++++++++---------- .../file/server/server/GameSettings.py | 5 +-- .../file/server/server/Tournament.py | 23 +++++++++----- 3 files changed, 34 insertions(+), 25 deletions(-) diff --git a/docker-compose/requirements/djangoserver/file/server/server/Bot.py b/docker-compose/requirements/djangoserver/file/server/server/Bot.py index cd30f0c..e99045a 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: edbernar = 0): - travel = min(self.objective["pos"] - self.pos["pos"], maxDistance) - else: - travel = max(self.objective["pos"] - self.pos["pos"], -maxDistance) - print("travel :", travel) - self.game.move(self.socket, self.pos["pos"] + travel, self.pos["up"]) + maxDistance = GameSettings.maxPlayerSpeed * (time.time() - lastUpdate) + print("maxDistance :", maxDistance) + travel = self.objective["pos"] - self.pos["pos"] + if(travel >= 0): + travel = min(self.objective["pos"] - self.pos["pos"], maxDistance) + else: + travel = max(self.objective["pos"] - self.pos["pos"], -maxDistance) + print("travel :", travel) + self.game.move(self.socket, self.pos["pos"] + travel, self.pos["up"]) lastUpdate = time.time() await asyncio.sleep(1 / 20) diff --git a/docker-compose/requirements/djangoserver/file/server/server/GameSettings.py b/docker-compose/requirements/djangoserver/file/server/server/GameSettings.py index a6cb09d..0856c5d 100644 --- a/docker-compose/requirements/djangoserver/file/server/server/GameSettings.py +++ b/docker-compose/requirements/djangoserver/file/server/server/GameSettings.py @@ -6,7 +6,7 @@ # By: edbernar 20): self.messages.pop(0) self.broadcast({"action":3, "username":socket.username, "message":message}) @@ -70,7 +70,7 @@ class Tournament: return; self.players.pop(index) socket.tournament = None - self.broadcast({"action":2,"id":socket.id}) + self.broadcast({"action":2,"id":index}) def join(self, socket, skin=0, goal=0, isBot=False): if(not isBot and socket.tournament != None): @@ -89,7 +89,7 @@ class Tournament: socket.tournament = self self.players.append(player) socket.sync_send("tournament",{"action":0, "code":self.code}) - self.broadcast({"action":1, "id":socket.id, "username": socket.username,"pfp":socket.pfp}) + self.broadcast({"action":1, "id":len(self.players) - 1, "username": socket.username,"pfp":socket.pfp}) if(len(self.players) == Tournament.playerLimit): self.start() if(len(self.players) == Tournament.playerLimit - self.nbBot): @@ -112,4 +112,13 @@ class Tournament: def start(self): self.started = True - self.createGames(self.players.copy()) + self.finalGame = self.createGames(self.players.copy()) + asyncio.create_task(self.tournamentLoop()) + + async def tournamentLoop(self): + while self.finalGame.winner == None: + await asyncio.sleep(1) + print("tournament done, winner is ", self.finalGame.winner.socket.username) + + +