player death
This commit is contained in:
parent
1e98d4a1dd
commit
eabf71e27b
@ -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')
|
||||
|
@ -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
|
||||
|
@ -9,6 +9,10 @@
|
||||
<Card v-for="card in equipment" v-bind:key="card.name+card.number" :card="card" />
|
||||
</transition-group>
|
||||
</div>
|
||||
<transition-group name="list" tag="div" style="display: flex; justify-content: space-evenly;">
|
||||
<span v-for="(n, i) in lives" v-bind:key="n" :alt="i">❤️</span>
|
||||
<span v-for="(n, i) in (max_lives-lives)" v-bind:key="n" :alt="i">💀</span>
|
||||
</transition-group>
|
||||
<div>
|
||||
<span>Mano</span>
|
||||
<transition-group name="list" tag="div" class="hand">
|
||||
@ -20,6 +24,7 @@
|
||||
<p>{{hint}}</p>
|
||||
<Chooser v-if="card_against" text="Contro chi vuoi giocare la carta" :cards="visiblePlayers" :select="selectAgainst"/>
|
||||
<Chooser v-if="pending_action == 3" text="Scegli come rispondere" :cards="respondCards" :select="respond"/>
|
||||
<Chooser v-if="lives <= 0 && max_lives > 0" text="SEI MORTO" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user