diff --git a/backend/__init__.py b/backend/__init__.py index 1739ee7..94adfd4 100644 --- a/backend/__init__.py +++ b/backend/__init__.py @@ -219,6 +219,13 @@ def chat_message(sid, msg): ses.game.notify_room() else: sio.emit('chat_message', room=sid, data={'color': f'','text':f'{msg} bad format'}) + elif '/setcharacter' in msg: + import bang.characters as characters + cmd = msg.split() + if len(cmd) >= 2: + chs = characters.all_characters(ses.game.expansions) + ses.character = [c for c in chs if c.name == ' '.join(cmd[1:])][0] + ses.notify_self() elif '/gameinfo' in msg: sio.emit('chat_message', room=sid, data={'color': f'','text':f'info: {ses.game.__dict__}'}) elif '/meinfo' in msg: diff --git a/backend/bang/game.py b/backend/bang/game.py index a2811c2..0d17244 100644 --- a/backend/bang/game.py +++ b/backend/bang/game.py @@ -349,7 +349,7 @@ class Game: if self.started: print('Check win status') attacker_role = None - if player.attacker: + if player.attacker and player.attacker in self.players: attacker_role = player.attacker.role winners = [p for p in self.players if p.role != None and p.role.on_player_death(self.players, initial_players=self.initial_players, dead_role=player.role, attacker_role=attacker_role)] if len(winners) > 0: