From eabf71e27b33f02cfda6ae1db843c2eeec96701b Mon Sep 17 00:00:00 2001 From: Alberto Xamin Date: Sat, 21 Nov 2020 13:13:14 +0100 Subject: [PATCH] player death --- backend/game.py | 12 ++++++++++++ backend/players.py | 4 ++++ frontend/src/components/Player.vue | 5 +++++ 3 files changed, 21 insertions(+) diff --git a/backend/game.py b/backend/game.py index b0e2ffd..857aea1 100644 --- a/backend/game.py +++ b/backend/game.py @@ -108,6 +108,18 @@ class Game: print('scrap') self.sio.emit('scrap', room=self.name, data=self.deck.peek_scrap_pile().__dict__) + def player_death(self, player: players.Player): + print(f'player {player.name} died') + self.players.pop(self.players.index(player)) + if len(self.players) == 0: + print(f'no players left in game {self.name}') + return True + self.sio.emit('room', room=self.name, data={'name': self.name, 'started': self.started, 'players': [p.name for p in self.players]}) + self.sio.emit('chat_message', room=self.name, data=f'{player.name} è morto.') + for p in self.players: + p.notify_self() + self.players_map = {c.name: i for i, c in enumerate(self.players)} + # game = Game() # p1 = players.Player('p1') diff --git a/backend/players.py b/backend/players.py index 99f2c9c..2ebad5d 100644 --- a/backend/players.py +++ b/backend/players.py @@ -69,6 +69,8 @@ class Player: self.sio.emit('characters', room=self.sid, data=json.dumps(available, default=lambda o: o.__dict__)) def notify_self(self): + if self.lives <= 0 and self.max_lives > 0: + self.game.player_death(self) ser = self.__dict__.copy() ser.pop('game') ser.pop('sio') @@ -80,6 +82,8 @@ class Player: self.sio.emit('self_vis', room=self.sid, data=json.dumps(self.game.get_visible_players(self), default=lambda o: o.__dict__)) def play_turn(self): + if self.lives == 0: + self.end_turn(forced=True) print(f'I {self.name} was notified that it is my turn') self.was_shot = False self.is_my_turn = True diff --git a/frontend/src/components/Player.vue b/frontend/src/components/Player.vue index 57d1c72..cc7f0b0 100644 --- a/frontend/src/components/Player.vue +++ b/frontend/src/components/Player.vue @@ -9,6 +9,10 @@ + + ❤️ + 💀 +
Mano @@ -20,6 +24,7 @@

{{hint}}

+