commit
ffba8597dd
@ -66,9 +66,12 @@ class Card(ABC):
|
||||
break
|
||||
else:
|
||||
player.equipment.append(self)
|
||||
contro = f' contro {against}' if against else ''
|
||||
if against:
|
||||
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
|
||||
|
||||
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
|
||||
|
@ -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()
|
||||
|
@ -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()
|
||||
|
@ -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 = ''
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="chat">
|
||||
<h3>{{$t("chat")}}</h3>
|
||||
<h3>{{$t("chat.chat")}}</h3>
|
||||
<div id="chatbox">
|
||||
<p style="margin:1pt;" class="chat-message" v-for="msg in messages" v-bind:key="msg">{{msg}}</p>
|
||||
<p class="end">.</p>
|
||||
@ -21,7 +21,13 @@ export default {
|
||||
}),
|
||||
sockets: {
|
||||
chat_message(msg) {
|
||||
if (msg.indexOf('_') === 0) {
|
||||
let params = msg.split('|')
|
||||
let type = params.shift().substring(1)
|
||||
this.messages.push(this.$t(`chat.${type}`, params))
|
||||
}else {
|
||||
this.messages.push(msg)
|
||||
}
|
||||
let container = this.$el.querySelector("#chatbox");
|
||||
container.scrollTop = container.scrollHeight;
|
||||
},
|
||||
|
@ -6,7 +6,7 @@
|
||||
<div v-if="!started">
|
||||
<PrettyCheck v-if="isRoomOwner" class="p-switch p-fill" v-model="privateRoom" style="margin-top:5px; margin-bottom:3px;">{{$t("private_room")}}</PrettyCheck>
|
||||
<label v-if="password !== ''">{{$t('password')}}<b class="selectable" style="font-size:larger;">{{ password }}</b></label>
|
||||
<input type="button" style="margin-left: 10pt;" v-clipboard:copy="inviteLink" value="Copia"/>
|
||||
<input type="button" style="margin-left: 10pt;" v-clipboard:copy="inviteLink" :value="$t('copy')"/>
|
||||
</div>
|
||||
|
||||
<div class="players-table">
|
||||
|
@ -8,7 +8,6 @@
|
||||
"lobby_name": "Name:",
|
||||
"warning": "Warning!",
|
||||
"connection_error": "Cannot connect to server.",
|
||||
"chat": "Chat",
|
||||
"end_turn": "End Turn!",
|
||||
"start_game": "Start!",
|
||||
"expansions": "Expansions",
|
||||
@ -52,5 +51,33 @@
|
||||
"choose_scarp_card_to": "CHOOSE WHICH CARD TO DISCARD TO USE",
|
||||
"pick_a_card": "FLIP A CARD",
|
||||
"to_defend_from": "TO DEFEND YOURSELF FROM",
|
||||
"submit": "Submit"
|
||||
"submit": "Submit",
|
||||
"copy": "Copy",
|
||||
"chat": {
|
||||
"chat": "Chat",
|
||||
"joined": "{0} joined the lobby",
|
||||
"died": "{0} died",
|
||||
"died_role": "{0} was a {1}!",
|
||||
"won": "{0} won!",
|
||||
"choose_character": "{0} has {1} as character, his special ability is: {2}!",
|
||||
"starting": "The game is starting!",
|
||||
"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}."
|
||||
}
|
||||
}
|
@ -8,7 +8,6 @@
|
||||
"lobby_name": "Nome:",
|
||||
"warning": "Attenzione!",
|
||||
"connection_error": "Connessione al server assente.",
|
||||
"chat": "Chat",
|
||||
"end_turn": "Termina turno!",
|
||||
"start_game": "Avvia!",
|
||||
"expansions": "Espansioni",
|
||||
@ -52,5 +51,33 @@
|
||||
"choose_scarp_card_to": "SCEGLI CHE CARTA SCARTARE PER USARE",
|
||||
"pick_a_card": "ESTRAI UNA CARTA",
|
||||
"to_defend_from": "PER DIFENDERTI DA",
|
||||
"submit": "Invia"
|
||||
"submit": "Invia",
|
||||
"copy": "Copia",
|
||||
"chat": {
|
||||
"chat": "Chat",
|
||||
"joined": "{0} è entrato nella stanza",
|
||||
"died": "{0} è morto",
|
||||
"died_role": "{0} era {1}!",
|
||||
"won": "{0} ha vinto!",
|
||||
"choose_character": "{0} ha come personaggio {1}, la sua abilità speciale è: {2}!",
|
||||
"starting": "La partita sta iniziando!",
|
||||
"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}."
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user