diff --git a/backend/bang/cards.py b/backend/bang/cards.py index cc1af41..fe27d66 100644 --- a/backend/bang/cards.py +++ b/backend/bang/cards.py @@ -66,9 +66,12 @@ class Card(ABC): break else: player.equipment.append(self) - contro = f' contro {against}' if against else '' - player.sio.emit('chat_message', room=player.game.name, - data=f'{player.name} ha giocato {self.name}{contro}.') + if against: + player.sio.emit('chat_message', room=player.game.name, + data=f'_play_card_against|{player.name}|{self.name}|{against}') + else: + player.sio.emit('chat_message', room=player.game.name, + data=f'_play_card|{player.name}|{self.name}') return True def use_card(self, player): @@ -118,7 +121,7 @@ class Prigione(Card): def play_card(self, player, against, _with=None): if against != None and not isinstance(player.game.get_player_named(against).role, r.Sheriff): player.sio.emit('chat_message', room=player.game.name, - data=f'{player.name} ha giocato {self.name} contro {against}.') + data=f'_play_card_against|{player.name}|{self.name}|{against}') player.game.get_player_named(against).equipment.append(self) player.game.get_player_named(against).notify_self() return False @@ -206,7 +209,7 @@ class Birra(Card): return True elif len(player.game.players) == 2: player.sio.emit('chat_message', room=player.game.name, - data=f'{player.name} ha rovesciato una {self.name}.') + data=f'_spilled_beer|{player.name}|{self.name}') return True return False @@ -241,7 +244,7 @@ class Diligenza(Card): def play_card(self, player, against, _with=None): player.sio.emit('chat_message', room=player.game.name, - data=f'{player.name} ha giocato {self.name} e ha pescato 2 carte.') + data=f'_diligenza|{player.name}|{self.name}') for i in range(2): player.hand.append(player.game.deck.draw()) return True @@ -313,7 +316,7 @@ class Mancato(Card): import bang.characters as chars if (not player.has_played_bang and against != None and isinstance(player.character, chars.CalamityJanet)): player.sio.emit('chat_message', room=player.game.name, - data=f'{player.name} ha giocato {self.name} come un BANG! contro {against}.') + data=f'_calamity_special|{player.name}|{self.name}|{against}') player.has_played_bang = True player.game.attack(player, against) return True @@ -349,7 +352,7 @@ class Saloon(Card): def play_card(self, player, against, _with=None): player.sio.emit('chat_message', room=player.game.name, - data=f'{player.name} ha giocato {self.name} e ha curato 1 punto vita a tutti.') + data=f'_saloon|{player.name}|{self.name}') for p in player.game.players: p.lives = min(p.lives+1, p.max_lives) p.notify_self() @@ -365,7 +368,7 @@ class WellsFargo(Card): def play_card(self, player, against, _with=None): player.sio.emit('chat_message', room=player.game.name, - data=f'{player.name} ha giocato {self.name} e ha pescato 3 carte.') + data=f'_wellsfargo|{player.name}|{self.name}') for i in range(3): player.hand.append(player.game.deck.draw()) return True diff --git a/backend/bang/expansions/dodge_city/cards.py b/backend/bang/expansions/dodge_city/cards.py index 6f962ce..f9a9278 100644 --- a/backend/bang/expansions/dodge_city/cards.py +++ b/backend/bang/expansions/dodge_city/cards.py @@ -79,7 +79,7 @@ class Rissa(CatBalou): player.game.deck.scrap(_with) player.event_type = 'rissa' super().play_card(player, against=players_with_cards[0]) - player.sio.emit('chat_message', room=player.game.name, data=f'{player.name} ha giocato {self.name}.') + player.sio.emit('chat_message', room=player.game.name, data=f'_play_card|{player.name}|{self.name}') return True return False @@ -114,8 +114,7 @@ class Tequila(Card): def play_card(self, player, against, _with=None): if against != None and _with != None: - beneficiario = f'{against}' if against != player.name else 'se stesso' - player.sio.emit('chat_message', room=player.game.name, data=f'{player.name} ha giocato {self.name} per {beneficiario}') + player.sio.emit('chat_message', room=player.game.name, data=f'_play_card_for|{player.name}|{self.name}|{against}') player.game.deck.scrap(_with) player.game.get_player_named(against).lives = min(player.game.get_player_named(against).lives+1, player.game.get_player_named(against).max_lives) player.game.get_player_named(against).notify_self() diff --git a/backend/bang/game.py b/backend/bang/game.py index 292e1cc..65563e4 100644 --- a/backend/bang/game.py +++ b/backend/bang/game.py @@ -53,7 +53,7 @@ class Game: self.players.append(player) print(f'Added player {player.name} to game') self.notify_room() - self.sio.emit('chat_message', room=self.name, data=f'{player.name} è entrato nella lobby.') + self.sio.emit('chat_message', room=self.name, data=f'_joined|{player.name}') def set_private(self): if self.password == '': @@ -70,7 +70,7 @@ class Game: print(self.name) print(self.players[i].name) print(self.players[i].character) - self.sio.emit('chat_message', room=self.name, data=f'{self.players[i].name} ha come personaggio {self.players[i].character.name}, la sua abilità speciale è: {self.players[i].character.desc}') + self.sio.emit('chat_message', room=self.name, data=f'_choose_character|{self.players[i].name}|{self.players[i].character.name}|{self.players[i].character.desc}') self.players[i].prepare() for k in range(self.players[i].max_lives): self.players[i].hand.append(self.deck.draw()) @@ -87,7 +87,7 @@ class Game: if self.started: return self.players_map = {c.name: i for i, c in enumerate(self.players)} - self.sio.emit('chat_message', room=self.name, data=f'La partita sta iniziando...') + self.sio.emit('chat_message', room=self.name, data=f'_starting') self.sio.emit('start', room=self.name) self.started = True self.deck = Deck(self) @@ -111,7 +111,7 @@ class Game: self.players[i].set_role(available_roles[i]) if isinstance(available_roles[i], roles.Sheriff) or (len(available_roles) == 3 and isinstance(available_roles[i], roles.Vice)): if isinstance(available_roles[i], roles.Sheriff): - self.sio.emit('chat_message', room=self.name, data=f'{self.players[i].name} È lo sceriffo') + self.sio.emit('chat_message', room=self.name, data=f'_sheriff|{self.players[i].name}') self.turn = i self.players[i].notify_self() @@ -238,9 +238,9 @@ class Game: if not disconnected: self.dead_players.append() self.notify_room() - self.sio.emit('chat_message', room=self.name, data=f'{player.name} è morto.') + self.sio.emit('chat_message', room=self.name, data=f'_died|{player.name}') if self.started: - self.sio.emit('chat_message', room=self.name, data=f'{player.name} era {player.role.name}!') + self.sio.emit('chat_message', room=self.name, data=f'_died_role|{player.name}|{player.role.name}') for p in self.players: p.notify_self() self.players_map = {c.name: i for i, c in enumerate(self.players)} @@ -254,7 +254,7 @@ class Game: print('WE HAVE A WINNER') for p in self.players: p.win_status = p in winners - self.sio.emit('chat_message', room=self.name, data=f'{p.name} ha vinto.') + self.sio.emit('chat_message', room=self.name, data=f'_won|{p.name}') p.notify_self() eventlet.sleep(5.0) return self.reset() diff --git a/backend/bang/players.py b/backend/bang/players.py index bb80a84..3de739c 100644 --- a/backend/bang/players.py +++ b/backend/bang/players.py @@ -95,7 +95,7 @@ class Player: self.available_characters = [] print(f'I {self.name} chose character {self.character.name}') self.sio.emit('chat_message', room=self.game.name, - data=f'{self.name} ha scelto il personaggio.') + data=f'_did_choose_character|{self.name}') self.game.notify_character_selection() def prepare(self): @@ -159,7 +159,7 @@ class Player: return self.end_turn(forced=True) self.scrapped_cards = 0 self.sio.emit('chat_message', room=self.game.name, - data=f'È il turno di {self.name}.') + data=f'_turn|{self.name}') print(f'I {self.name} was notified that it is my turn') self.was_shot = False self.is_my_turn = True @@ -185,13 +185,13 @@ class Player: self.hand.append(self.game.deck.draw_from_scrap_pile()) self.hand.append(self.game.deck.draw()) self.sio.emit('chat_message', room=self.game.name, - data=f'{self.name} ha ha pescato la prima carta dall pila delle carte scartate.') + data=f'_draw_from_scrap|{self.name}') elif type(pile) == str and pile != self.name and pile in self.game.players_map and isinstance(self.character, chars.JesseJones) and len(self.game.get_player_named(pile).hand) > 0: self.hand.append(self.game.get_player_named(pile).hand.pop( randrange(0, len(self.game.get_player_named(pile).hand)))) self.game.get_player_named(pile).notify_self() self.sio.emit('chat_message', room=self.game.name, - data=f'{self.name} ha pescato la prima carta dalla mano di {pile}.') + data=f'_draw_from_player|{self.name}|{pile}') self.hand.append(self.game.deck.draw()) elif isinstance(self.character, chd.BillNoface): self.hand.append(self.game.deck.draw()) @@ -223,17 +223,17 @@ class Player: picked: cs.Card = self.game.deck.pick_and_scrap() print(f'Did pick {picked}') self.sio.emit('chat_message', room=self.game.name, - data=f'{self.name} ha estratto {picked}.') + data=f'_flipped|{self.name}|{picked}') if picked.suit == cs.Suit.SPADES and 2 <= picked.number <= 9 and pickable_cards == 0: self.lives -= 3 self.game.deck.scrap(self.equipment.pop(i)) self.sio.emit('chat_message', room=self.game.name, - data=f'{self.name} ha fatto esplodere la dinamite.') + data=f'_explode|{self.name}') if isinstance(self.character, chars.BartCassidy) and self.lives > 0: for i in range(3): self.hand.append(self.game.deck.draw()) self.sio.emit('chat_message', room=self.game.name, - data=f'{self.name} ha ricevuto un risarcimento perchè è stato ferito.') + data=f'_special_bart_cassidy|{self.name}') print(f'{self.name} Boom, -3 hp') else: self.game.next_player().equipment.append(self.equipment.pop(i)) @@ -249,7 +249,7 @@ class Player: picked: cs.Card = self.game.deck.pick_and_scrap() print(f'Did pick {picked}') self.sio.emit('chat_message', room=self.game.name, - data=f'{self.name} ha estratto {picked}.') + data=f'_flipped|{self.name}|{picked}') if picked.suit != cs.Suit.HEARTS and pickable_cards == 0: self.game.deck.scrap(self.equipment.pop(i)) self.end_turn(forced=True) @@ -358,7 +358,7 @@ class Player: picked: cs.Card = self.game.deck.pick_and_scrap() print(f'Did pick {picked}') self.sio.emit('chat_message', room=self.game.name, - data=f'{self.name} ha estratto {picked}.') + data=f'_flipped|{self.name}|{picked}') if picked.suit == cs.Suit.HEARTS: self.mancato_needed -= 1 self.notify_self() @@ -439,13 +439,13 @@ class Player: if self.lives > 0: if isinstance(self.character, chars.BartCassidy): self.sio.emit('chat_message', room=self.game.name, - data=f'{self.name} ha ricevuto un risarcimento perchè è stato ferito.') + data=f'_special_bart_cassidy|{self.name}') self.hand.append(self.game.deck.draw()) elif isinstance(self.character, chars.ElGringo) and self.attacker and len(self.attacker.hand) > 0: self.hand.append(self.attacker.hand.pop( randrange(0, len(self.attacker.hand)))) self.sio.emit('chat_message', room=self.game.name, - data=f'{self.name} ha rubato una carta a {self.attacker.name} mentre veniva colpito.') + data=f'_special_el_gringo|{self.name}|{self.attacker.name}') self.attacker.notify_self() while self.lives <= 0 and len(self.game.players) > 2 and len([c for c in self.hand if isinstance(c, cs.Birra)]) > 0: for i in range(len(self.hand)): @@ -455,7 +455,7 @@ class Player: 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.') + data=f'_beer_save|{self.name}') break self.mancato_needed = 0 self.event_type = '' diff --git a/frontend/src/components/Chat.vue b/frontend/src/components/Chat.vue index 4fed6cd..67c992b 100644 --- a/frontend/src/components/Chat.vue +++ b/frontend/src/components/Chat.vue @@ -1,6 +1,6 @@