game: add: support multiplayer

This commit is contained in:
2024-02-28 17:49:12 +01:00
parent f567943894
commit 9f30f5c3d1
5 changed files with 26 additions and 19 deletions

View File

@ -43,7 +43,7 @@ class Game(AbstractRoom):
players_id: list[int] = self.model.get_players_id()
nb_sides = len(players_id) * 2
nb_sides = 4
polygon: list[Point] = []
@ -60,18 +60,24 @@ class Game(AbstractRoom):
for i in range(nb_sides):
segments.append(Segment(polygon[i], polygon[(i + 1) % nb_sides]))
self.players: list[Player] = []
for i, player_id in enumerate(players_id):
player = Player(self, player_id, None, segments[i * 2])
self.players.append(player)
self.walls: list[Wall]
self.players: list[Player]
nb_players: int = len(players_id)
if (nb_players == 2):
self.players = [Player(self, players_id[0], None, segments[0]), Player(self, players_id[1], None, segments[2])]
self.walls = [Wall(segments[1]), Wall(segments[3])]
else:
self.players = []
self.walls = []
for i, side in enumerate(range(4)):
if (i < nb_players):
self.players.append(Player(self, players_id[i], None, segments[i]))
else:
self.walls.append(Wall(segments[i]))
self.spectators: list[Spectator] = []
self.walls: list[Wall] = []
for i in range(1, nb_sides, 2):
self.walls.append(Wall(segments[i]))
self._updated_players: list[Player] = []
self.game_id: int = game_id
@ -103,14 +109,12 @@ class Game(AbstractRoom):
self.broadcast("goal", {"player_id": goal_taker.user_id,
"timestamp": timestamp})
if (len(goal_taker.score) >= config.GAME_MAX_SCORE):
connected_players: list[Player] = self.get_players_connected()
if (len(connected_players) == 2):
self.finish(connected_players[not connected_players.index(goal_taker)])
else:
goal_taker.eliminate()
def get_player_by_user_id(self, user_id: int) -> Player:
for player in self.players: