diff --git a/backend/__init__.py b/backend/__init__.py index 390e2f3..97ddf6f 100644 --- a/backend/__init__.py +++ b/backend/__init__.py @@ -17,7 +17,7 @@ games: List[Game] = [] online_players = 0 def advertise_lobbies(): - sio.emit('lobbies', room='lobby', data=[{'name': g.name, 'players': len(g.players)} for g in games if not g.started]) + sio.emit('lobbies', room='lobby', data=[{'name': g.name, 'players': len(g.players)} for g in games if not g.started and len(g.players) < 7]) @sio.event def connect(sid, environ): diff --git a/backend/game.py b/backend/game.py index 864dc88..aef64a5 100644 --- a/backend/game.py +++ b/backend/game.py @@ -23,7 +23,7 @@ class Game: self.waiting_for = 0 def add_player(self, player: players.Player): - if player in self.players: + if player in self.players or len(self.players) >= 7: return player.join_game(self) self.players.append(player) diff --git a/backend/players.py b/backend/players.py index f87ff6b..954d198 100644 --- a/backend/players.py +++ b/backend/players.py @@ -440,6 +440,7 @@ class Player: if isinstance(self.hand[i], cards.Birra): self.lives += 1 self.game.deck.scrap(self.hand.pop(i)) + self.sio.emit('chat_message', room=self.game.name, data=f'{self.name} ha usato una birra per recuperare una vita.') break self.mancato_needed = 0 self.notify_self() diff --git a/backend/roles.py b/backend/roles.py index 77f017b..49eba1a 100644 --- a/backend/roles.py +++ b/backend/roles.py @@ -17,7 +17,7 @@ class Sheriff(Role): self.max_players = 1 self.icon = '⭐️' - def on_player_death(self, alive_players: list, initial_players: int): + def on_player_death(self, alive_players: list, initial_players: int, dead_role=None, attacker_role=None): if initial_players == 3 and len(alive_players) == 1: return True elif initial_players != 3 and not any([isinstance(p.role, Outlaw) or isinstance(p.role, Renegade) for p in alive_players]):