From 38d50484964d185570a792ba10e672eb8ea89a98 Mon Sep 17 00:00:00 2001 From: Giulio Date: Mon, 7 Jun 2021 23:52:53 +0200 Subject: [PATCH 1/4] fix some bug --- backend/bang/game.py | 1 + backend/bang/players.py | 3 ++- frontend/src/i18n/en.json | 2 +- frontend/src/i18n/it.json | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/backend/bang/game.py b/backend/bang/game.py index d46e369..d50d169 100644 --- a/backend/bang/game.py +++ b/backend/bang/game.py @@ -561,6 +561,7 @@ class Game: self.is_handling_death = False self.waiting_for = 0 self.incremental_turn = 0 + self.turn = 0 self.pending_winners = [] for p in self.players: p.reset() diff --git a/backend/bang/players.py b/backend/bang/players.py index 6228a96..c77239e 100644 --- a/backend/bang/players.py +++ b/backend/bang/players.py @@ -353,7 +353,8 @@ class Player: self.available_cards = [{ 'name': p.name, 'icon': '⭐️' if isinstance(p.role, r.Sheriff) else '🤠', - 'alt_text': ''.join(['❤️']*p.lives)+''.join(['💀']*(p.max_lives-p.lives)) + 'alt_text': ''.join(['❤️']*p.lives)+''.join(['💀']*(p.max_lives-p.lives)), + 'noDesc': True } for p in self.game.get_alive_players() if p != self and p.lives < p.max_lives] self.available_cards.append({'icon': '❌', 'noDesc': True}) self.choose_text = 'choose_fratelli_di_sangue' diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json index bb52e9c..1e58ccf 100644 --- a/frontend/src/i18n/en.json +++ b/frontend/src/i18n/en.json @@ -413,7 +413,7 @@ "desc": "Instead of drawing he can steal a card from the equipment of another player. (click on the enemy player if you want to use the ability)" }, "José Delgado": { - "name": "José Delgrado", + "name": "José Delgado", "desc": "On his turn he can discard a blue card to draw 2 cards, up to twice per turn." }, "Doc Holyday": { diff --git a/frontend/src/i18n/it.json b/frontend/src/i18n/it.json index f33bf5c..2650c4e 100644 --- a/frontend/src/i18n/it.json +++ b/frontend/src/i18n/it.json @@ -413,7 +413,7 @@ "desc": "Invece di pescare può prendere una carta dall'equipaggiamento di un altro giocatore. (clicca sul giocatore avversario se vuoi usare l'abilità)" }, "José Delgado": { - "name": "José Delgrado", + "name": "José Delgado", "desc": "Nel suo turno può scartare una carta blu per pescare 2 carte, fino a due volte per turno." }, "Doc Holyday": { From 069236286cf456b0870a0f9b55571dccb53c4494 Mon Sep 17 00:00:00 2001 From: Giulio Date: Tue, 8 Jun 2021 12:22:31 +0200 Subject: [PATCH 2/4] unused function --- backend/bang/players.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/backend/bang/players.py b/backend/bang/players.py index c77239e..0d02ca5 100644 --- a/backend/bang/players.py +++ b/backend/bang/players.py @@ -531,11 +531,6 @@ class Player: playable_cards.append(i) return playable_cards - def get_public_description(self): - s = f"{self.name} {'Sheriff ⭐️' if isinstance(self.role, r.Sheriff) else ''} ({self.lives}/{self.max_lives} ⁍) {len(self.hand)} Cards in hand, " - s += f"equipment {[str(c) for c in self.equipment]}" - return s - def play_card(self, hand_index: int, against=None, _with=None): if not self.is_my_turn or self.pending_action != PendingAction.PLAY or self.game.is_handling_death: return From 5979221478c94e5ffcb2383397aa1585d48052f1 Mon Sep 17 00:00:00 2001 From: Giulio Date: Tue, 8 Jun 2021 12:24:19 +0200 Subject: [PATCH 3/4] show the right icon when playing with three players --- backend/bang/game.py | 1 + backend/bang/players.py | 10 +++++++--- frontend/src/components/Player.vue | 6 ++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/backend/bang/game.py b/backend/bang/game.py index d50d169..d9b6e7f 100644 --- a/backend/bang/game.py +++ b/backend/bang/game.py @@ -588,6 +588,7 @@ class Game: 'cards': len(pls[j].hand)+len(pls[j].equipment), 'is_ghost': pls[j].is_ghost, 'is_bot': pls[j].is_bot, + 'icon': pls[j].role.icon if (pls[j].role is not None) else '🤠', } for j in range(len(pls)) if i != j] def get_alive_players(self): diff --git a/backend/bang/players.py b/backend/bang/players.py index 0d02ca5..f200991 100644 --- a/backend/bang/players.py +++ b/backend/bang/players.py @@ -65,6 +65,7 @@ class Player: self.death_turn = 0 self.is_ghost = False self.not_chosen_character = None + self.noStar = False def reset(self): self.hand: cs.Card = [] @@ -101,6 +102,7 @@ class Player: self.is_dead = False self.is_ghost = False self.death_turn = 0 + self.noStar = False def join_game(self, game): self.game = game @@ -146,6 +148,7 @@ class Player: self.hand = [] self.equipment = [] self.pending_action = PendingAction.WAIT + self.noStar = (self.game.initial_players == 3) def set_available_character(self, available): self.available_characters = available @@ -352,7 +355,7 @@ class Player: if self.game.check_event(ce.FratelliDiSangue) and self.lives > 1 and not self.is_giving_life and len([p for p in self.game.get_alive_players() if p != self and p.lives < p.max_lives]): self.available_cards = [{ 'name': p.name, - 'icon': '⭐️' if isinstance(p.role, r.Sheriff) else '🤠', + 'icon': p.role.icon if(self.game.initial_players == 3) else '⭐️' if p['is_sheriff'] else '🤠', 'alt_text': ''.join(['❤️']*p.lives)+''.join(['💀']*(p.max_lives-p.lives)), 'noDesc': True } for p in self.game.get_alive_players() if p != self and p.lives < p.max_lives] @@ -380,7 +383,7 @@ class Player: self.is_using_checchino = True self.available_cards = [{ 'name': p['name'], - 'icon': '⭐️' if p['is_sheriff'] else '🤠', + 'icon': p.role.icon if(self.game.initial_players == 3) else '⭐️' if p['is_sheriff'] else '🤠', 'alt_text': ''.join(['❤️']*p['lives'])+''.join(['💀']*(p['max_lives']-p['lives'])) } for p in self.game.get_visible_players(self) if p['dist'] <= self.get_sight()] self.available_cards.append({'icon': '❌', 'noDesc': True}) @@ -390,7 +393,8 @@ class Player: elif self.is_my_turn and self.pending_action == PendingAction.PLAY and pile == 'event' and self.game.check_event(ce.Rimbalzo) and len([c for c in self.hand if c.name == cs.Bang(0,0).name]) > 0: self.available_cards = [{ 'name': p.name, - 'icon': '⭐️' if isinstance(p.role, r.Sheriff) else '🤠' + 'icon': p.role.icon if(self.game.initial_players == 3) else '⭐️' if p['is_sheriff'] else '🤠', + 'noDesc': True } for p in self.game.get_alive_players() if len(p.equipment) > 0 and p != self] self.available_cards.append({'icon': '❌', 'noDesc': True}) self.choose_text = 'choose_rimbalzo_player' diff --git a/frontend/src/components/Player.vue b/frontend/src/components/Player.vue index b15dbcb..5e430e4 100644 --- a/frontend/src/components/Player.vue +++ b/frontend/src/components/Player.vue @@ -116,6 +116,7 @@ export default { eventCard: false, emporioCards: {}, spectator: false, + noStar: false, }), sockets: { role(role) { @@ -163,6 +164,7 @@ export default { this.cancelChooseCardFromPlayer() this.shouldChooseCard = false } + this.noStar = self.noStar }, self_vis(vis) { // console.log('received visibility update') @@ -196,7 +198,7 @@ export default { return { name: player.name, number: player.dist !== undefined ? `${player.dist}⛰` : '', - icon: player.is_sheriff ? '⭐' : '🤠', + icon: this.noStar ? player.icon : player.is_sheriff ? '⭐' : '🤠', is_character: true, }}) return vis @@ -212,7 +214,7 @@ export default { return { name: player.name, number: player.dist !== undefined ? `${player.dist}⛰` : '', - icon: player.is_sheriff ? '⭐' : '🤠', + icon: this.noStar ? player.icon : player.is_sheriff ? '⭐' : '🤠', alt_text: Array(player.lives+1).join('❤️')+Array(player.max_lives-player.lives+1).join('💀'), is_character: true, }}) From 7ed97d5bc0f76414d15da394c629900716c1918a Mon Sep 17 00:00:00 2001 From: Giulio Date: Tue, 8 Jun 2021 12:24:51 +0200 Subject: [PATCH 4/4] bug mezzogiorno di fuoco attacker --- backend/bang/players.py | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/bang/players.py b/backend/bang/players.py index f200991..00906ad 100644 --- a/backend/bang/players.py +++ b/backend/bang/players.py @@ -343,6 +343,7 @@ class Player: self.special_use_count = 0 self.bang_used = 0 if self.game.check_event(ceh.MezzogiornoDiFuoco): + self.attacker = None self.lives -= 1 if self.character.check(self.game, chars.BartCassidy) and self.lives > 0: self.hand.append(self.game.deck.draw(True))