game: add: support multiplayer
This commit is contained in:
@ -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:
|
||||
|
Reference in New Issue
Block a user