player death
This commit is contained in:
parent
1e98d4a1dd
commit
eabf71e27b
@ -108,6 +108,18 @@ class Game:
|
|||||||
print('scrap')
|
print('scrap')
|
||||||
self.sio.emit('scrap', room=self.name, data=self.deck.peek_scrap_pile().__dict__)
|
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()
|
# game = Game()
|
||||||
# p1 = players.Player('p1')
|
# 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__))
|
self.sio.emit('characters', room=self.sid, data=json.dumps(available, default=lambda o: o.__dict__))
|
||||||
|
|
||||||
def notify_self(self):
|
def notify_self(self):
|
||||||
|
if self.lives <= 0 and self.max_lives > 0:
|
||||||
|
self.game.player_death(self)
|
||||||
ser = self.__dict__.copy()
|
ser = self.__dict__.copy()
|
||||||
ser.pop('game')
|
ser.pop('game')
|
||||||
ser.pop('sio')
|
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__))
|
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):
|
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')
|
print(f'I {self.name} was notified that it is my turn')
|
||||||
self.was_shot = False
|
self.was_shot = False
|
||||||
self.is_my_turn = True
|
self.is_my_turn = True
|
||||||
|
@ -9,6 +9,10 @@
|
|||||||
<Card v-for="card in equipment" v-bind:key="card.name+card.number" :card="card" />
|
<Card v-for="card in equipment" v-bind:key="card.name+card.number" :card="card" />
|
||||||
</transition-group>
|
</transition-group>
|
||||||
</div>
|
</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>
|
<div>
|
||||||
<span>Mano</span>
|
<span>Mano</span>
|
||||||
<transition-group name="list" tag="div" class="hand">
|
<transition-group name="list" tag="div" class="hand">
|
||||||
@ -20,6 +24,7 @@
|
|||||||
<p>{{hint}}</p>
|
<p>{{hint}}</p>
|
||||||
<Chooser v-if="card_against" text="Contro chi vuoi giocare la carta" :cards="visiblePlayers" :select="selectAgainst"/>
|
<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="pending_action == 3" text="Scegli come rispondere" :cards="respondCards" :select="respond"/>
|
||||||
|
<Chooser v-if="lives <= 0 && max_lives > 0" text="SEI MORTO" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user