chat localized

This commit is contained in:
Alberto Xamin 2020-12-04 11:42:46 +01:00
parent 9ba0905822
commit 98a6d225b7
No known key found for this signature in database
GPG Key ID: 4F026F48309500A2
5 changed files with 62 additions and 26 deletions

View File

@ -66,9 +66,12 @@ class Card(ABC):
break break
else: else:
player.equipment.append(self) player.equipment.append(self)
contro = f' contro {against}' if against else '' if against:
player.sio.emit('chat_message', room=player.game.name, player.sio.emit('chat_message', room=player.game.name,
data=f'{player.name} ha giocato {self.name}{contro}.') 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 return True
def use_card(self, player): def use_card(self, player):
@ -118,7 +121,7 @@ class Prigione(Card):
def play_card(self, player, against, _with=None): def play_card(self, player, against, _with=None):
if against != None and not isinstance(player.game.get_player_named(against).role, r.Sheriff): if against != None and not isinstance(player.game.get_player_named(against).role, r.Sheriff):
player.sio.emit('chat_message', room=player.game.name, 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).equipment.append(self)
player.game.get_player_named(against).notify_self() player.game.get_player_named(against).notify_self()
return False return False
@ -206,7 +209,7 @@ class Birra(Card):
return True return True
elif len(player.game.players) == 2: elif len(player.game.players) == 2:
player.sio.emit('chat_message', room=player.game.name, 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 True
return False return False
@ -241,7 +244,7 @@ class Diligenza(Card):
def play_card(self, player, against, _with=None): def play_card(self, player, against, _with=None):
player.sio.emit('chat_message', room=player.game.name, 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): for i in range(2):
player.hand.append(player.game.deck.draw()) player.hand.append(player.game.deck.draw())
return True return True
@ -313,7 +316,7 @@ class Mancato(Card):
import bang.characters as chars import bang.characters as chars
if (not player.has_played_bang and against != None and isinstance(player.character, chars.CalamityJanet)): if (not player.has_played_bang and against != None and isinstance(player.character, chars.CalamityJanet)):
player.sio.emit('chat_message', room=player.game.name, 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.has_played_bang = True
player.game.attack(player, against) player.game.attack(player, against)
return True return True
@ -349,7 +352,7 @@ class Saloon(Card):
def play_card(self, player, against, _with=None): def play_card(self, player, against, _with=None):
player.sio.emit('chat_message', room=player.game.name, 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: for p in player.game.players:
p.lives = min(p.lives+1, p.max_lives) p.lives = min(p.lives+1, p.max_lives)
p.notify_self() p.notify_self()
@ -365,7 +368,7 @@ class WellsFargo(Card):
def play_card(self, player, against, _with=None): def play_card(self, player, against, _with=None):
player.sio.emit('chat_message', room=player.game.name, 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): for i in range(3):
player.hand.append(player.game.deck.draw()) player.hand.append(player.game.deck.draw())
return True return True

View File

@ -79,7 +79,7 @@ class Rissa(CatBalou):
player.game.deck.scrap(_with) player.game.deck.scrap(_with)
player.event_type = 'rissa' player.event_type = 'rissa'
super().play_card(player, against=players_with_cards[0]) 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 True
return False return False
@ -114,8 +114,7 @@ class Tequila(Card):
def play_card(self, player, against, _with=None): def play_card(self, player, against, _with=None):
if against != None and _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'_play_card_for|{player.name}|{self.name}|{against}')
player.sio.emit('chat_message', room=player.game.name, data=f'{player.name} ha giocato {self.name} per {beneficiario}')
player.game.deck.scrap(_with) 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).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() player.game.get_player_named(against).notify_self()

View File

@ -95,7 +95,7 @@ class Player:
self.available_characters = [] self.available_characters = []
print(f'I {self.name} chose character {self.character.name}') print(f'I {self.name} chose character {self.character.name}')
self.sio.emit('chat_message', room=self.game.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() self.game.notify_character_selection()
def prepare(self): def prepare(self):
@ -159,7 +159,7 @@ class Player:
return self.end_turn(forced=True) return self.end_turn(forced=True)
self.scrapped_cards = 0 self.scrapped_cards = 0
self.sio.emit('chat_message', room=self.game.name, 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') 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
@ -185,13 +185,13 @@ class Player:
self.hand.append(self.game.deck.draw_from_scrap_pile()) self.hand.append(self.game.deck.draw_from_scrap_pile())
self.hand.append(self.game.deck.draw()) self.hand.append(self.game.deck.draw())
self.sio.emit('chat_message', room=self.game.name, 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: 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( self.hand.append(self.game.get_player_named(pile).hand.pop(
randrange(0, len(self.game.get_player_named(pile).hand)))) randrange(0, len(self.game.get_player_named(pile).hand))))
self.game.get_player_named(pile).notify_self() self.game.get_player_named(pile).notify_self()
self.sio.emit('chat_message', room=self.game.name, 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()) self.hand.append(self.game.deck.draw())
elif isinstance(self.character, chd.BillNoface): elif isinstance(self.character, chd.BillNoface):
self.hand.append(self.game.deck.draw()) self.hand.append(self.game.deck.draw())
@ -223,17 +223,17 @@ class Player:
picked: cs.Card = self.game.deck.pick_and_scrap() picked: cs.Card = self.game.deck.pick_and_scrap()
print(f'Did pick {picked}') print(f'Did pick {picked}')
self.sio.emit('chat_message', room=self.game.name, 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: if picked.suit == cs.Suit.SPADES and 2 <= picked.number <= 9 and pickable_cards == 0:
self.lives -= 3 self.lives -= 3
self.game.deck.scrap(self.equipment.pop(i)) self.game.deck.scrap(self.equipment.pop(i))
self.sio.emit('chat_message', room=self.game.name, 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: if isinstance(self.character, chars.BartCassidy) and self.lives > 0:
for i in range(3): for i in range(3):
self.hand.append(self.game.deck.draw()) self.hand.append(self.game.deck.draw())
self.sio.emit('chat_message', room=self.game.name, 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') print(f'{self.name} Boom, -3 hp')
else: else:
self.game.next_player().equipment.append(self.equipment.pop(i)) 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() picked: cs.Card = self.game.deck.pick_and_scrap()
print(f'Did pick {picked}') print(f'Did pick {picked}')
self.sio.emit('chat_message', room=self.game.name, 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: if picked.suit != cs.Suit.HEARTS and pickable_cards == 0:
self.game.deck.scrap(self.equipment.pop(i)) self.game.deck.scrap(self.equipment.pop(i))
self.end_turn(forced=True) self.end_turn(forced=True)
@ -358,7 +358,7 @@ class Player:
picked: cs.Card = self.game.deck.pick_and_scrap() picked: cs.Card = self.game.deck.pick_and_scrap()
print(f'Did pick {picked}') print(f'Did pick {picked}')
self.sio.emit('chat_message', room=self.game.name, 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: if picked.suit == cs.Suit.HEARTS:
self.mancato_needed -= 1 self.mancato_needed -= 1
self.notify_self() self.notify_self()
@ -439,13 +439,13 @@ class Player:
if self.lives > 0: if self.lives > 0:
if isinstance(self.character, chars.BartCassidy): if isinstance(self.character, chars.BartCassidy):
self.sio.emit('chat_message', room=self.game.name, 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()) self.hand.append(self.game.deck.draw())
elif isinstance(self.character, chars.ElGringo) and self.attacker and len(self.attacker.hand) > 0: elif isinstance(self.character, chars.ElGringo) and self.attacker and len(self.attacker.hand) > 0:
self.hand.append(self.attacker.hand.pop( self.hand.append(self.attacker.hand.pop(
randrange(0, len(self.attacker.hand)))) randrange(0, len(self.attacker.hand))))
self.sio.emit('chat_message', room=self.game.name, 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() 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: 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)): for i in range(len(self.hand)):
@ -455,7 +455,7 @@ class Player:
self.lives += 1 self.lives += 1
self.game.deck.scrap(self.hand.pop(i)) self.game.deck.scrap(self.hand.pop(i))
self.sio.emit('chat_message', room=self.game.name, 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 break
self.mancato_needed = 0 self.mancato_needed = 0
self.event_type = '' self.event_type = ''

View File

@ -61,6 +61,23 @@
"won": "{0} won!", "won": "{0} won!",
"choose_character": "{0} has {1} as character, his special ability is: {2}!", "choose_character": "{0} has {1} as character, his special ability is: {2}!",
"starting": "The game is starting!", "starting": "The game is starting!",
"sheriff": "{0} is the sheriff!" "sheriff": "{0} is the sheriff!",
"did_choose_character": "{0} did choose the character.",
"turn": "It is the turn of {0}.",
"draw_from_scrap": "{0} did draw the first card from the scrap pile.",
"draw_from_player": "{0} did draw the first card from the hand of {1}.",
"flipped": "{0} flipped a {1}.",
"explode": "{0} blew up the dynamite.",
"beer_save": "{0} used a beer to save his life.",
"play_card": "{0} played {1}.",
"play_card_against": "{0} played {1} against {2}.",
"play_card_for": "{0} played {1} for {2}.",
"spilled_beer": "{0} spilled a {1}.",
"diligenza": "{0} played {1} and draws 2 cards.",
"wellsfargo": "{0} played {1} and draws 3 cards.",
"saloon": "{0} player {1} and heals 1 HP to everyone alive.",
"special_bart_cassidy": "{0} received a compensation because he was injured.",
"special_el_gringo": "{0} stole a card from {1} when he was was injured.",
"special_calamity": "{0} played {1} as Bang! against {2}."
} }
} }

View File

@ -61,6 +61,23 @@
"won": "{0} ha vinto!", "won": "{0} ha vinto!",
"choose_character": "{0} ha come personaggio {1}, la sua abilità speciale è: {2}!", "choose_character": "{0} ha come personaggio {1}, la sua abilità speciale è: {2}!",
"starting": "La partita sta iniziando!", "starting": "La partita sta iniziando!",
"sheriff": "{0} è lo sceriffo!" "sheriff": "{0} è lo sceriffo!",
"did_choose_character": "{0} ha scelto il personaggio.",
"turn": "È il turno di {0}.",
"draw_from_scrap": "{0} ha pescato la prima carta dalla pila delle carte scartate.",
"draw_from_player": "{0} ha pescato la prima carta dalla mano di {1}.",
"flipped": "{0} ha estratto {1}.",
"explode": "{0} ha fatto esplodere la dinamite.",
"beer_save": "{0} ha usato una birra per recuperare una vita.",
"play_card": "{0} ha giocato {1}.",
"play_card_against": "{0} ha giocato {1} contro {2}.",
"play_card_for": "{0} ha giocato {1} per {2}.",
"spilled_beer": "{0} ha rovesciato una {1}.",
"diligenza": "{0} ha giocato {1} e ha pescato 2 carte.",
"wellsfargo": "{0} ha giocato {1} e ha pescato 3 carte.",
"saloon": "{0} ha giocato {1} e ha curato 1 punto vita a tutti.",
"special_bart_cassidy": "{0} ha ricevuto un risarcimento perchè è stato ferito.",
"special_el_gringo": "{0} rubato una carta a {1} mentre veniva colpito.",
"special_calamity": "{0} ha giovato {1} come un Bang! contro {2}."
} }
} }