diff --git a/backend/bang/expansions/the_valley_of_shadows/cards.py b/backend/bang/expansions/the_valley_of_shadows/cards.py index 340f509..096ddb4 100644 --- a/backend/bang/expansions/the_valley_of_shadows/cards.py +++ b/backend/bang/expansions/the_valley_of_shadows/cards.py @@ -17,6 +17,7 @@ class SerpenteASonagli(Card): super().__init__(suit, 'SerpenteASonagli', number, is_equipment=True) self.need_target = True self.icon = '🐍️' # Ogni turno pesca se il seme picche -1hp + self.alt_text = "♠️=💔" #TODO class Shotgun(Card): @@ -34,7 +35,7 @@ class Taglia(Card): class UltimoGiro(Card): def __init__(self, suit, number): - super().__init__(suit, 'Ultimo Giro', number) + super().__init__(suit, 'UltimoGiro', number) self.icon = '🥂' # self.desc = 'Recupera 1 vita' # self.desc_eng = 'Regain 1 HP' @@ -78,9 +79,9 @@ class Sventagliata(Card): class Salvo(Card): def __init__(self, suit, number): - super().__init__(suit, 'Salvo!', number) + super().__init__(suit, 'Salvo', number) self.icon = '😇️' - self.alt_text = "👤😇️" # spara al target e anche, a uno a distanza 1 dal target + self.alt_text = "👤😇️" self.need_target = True def play_card(self, player, against, _with=None): diff --git a/backend/bang/game.py b/backend/bang/game.py index 32b99a4..1679b32 100644 --- a/backend/bang/game.py +++ b/backend/bang/game.py @@ -30,7 +30,7 @@ class Game: self.initial_players = 0 self.password = '' self.expansions: List[str] = [] - self.available_expansions = ['dodge_city', 'fistful_of_cards', 'high_noon', 'gold_rush', 'the_valley_of_shadows'] + self.available_expansions = ['dodge_city', 'fistful_of_cards', 'high_noon', 'gold_rush'] self.shutting_down = False self.is_competitive = False self.disconnect_bot = True @@ -204,6 +204,10 @@ class Game: self.disconnect_bot = not self.disconnect_bot self.notify_room() + def feature_flags(self): + self.available_expansions.append('the_valley_of_shadows') + self.notify_room() + def add_player(self, player: pl.Player): if player.is_bot and len(self.players) >= 8: return @@ -213,6 +217,8 @@ class Game: if 'dodge_city' not in self.expansions: self.expansions.append('dodge_city') player.join_game(self) + if player.is_admin(): + self.feature_flags() self.players.append(player) print(f'{self.name}: Added player {player.name} to game') self.notify_room() diff --git a/backend/bang/players.py b/backend/bang/players.py index 042c828..2f2defa 100644 --- a/backend/bang/players.py +++ b/backend/bang/players.py @@ -55,6 +55,7 @@ class Player: self.name = res['username'] self.discord_id = res['id'] if self.is_admin(): + if self.game: self.game.feature_flags() self.sio.emit('chat_message', room=self.sid, data={'color':'green', 'text':'(you are admin)'}) if self.game: self.game.notify_room() diff --git a/backend/server.py b/backend/server.py index 94c7d10..8ced009 100644 --- a/backend/server.py +++ b/backend/server.py @@ -546,6 +546,17 @@ def chat_message(sid, msg, pl=None): for cn in card_names: ses.hand.append([c for c in cards if c.name.lower() == cn.lower() or c.name[0:-1].lower() == cn.lower()][0]) ses.notify_self() + elif '/getset' in msg: + sio.emit('chat_message', room=ses.game.name, data={'color': f'red','text':f'🚨 {ses.name} is in debug mode and got a card'}) + cmd = msg.split() + if len(cmd) >= 2: + from bang.expansions import DodgeCity, TheValleyOfShadows + if cmd[1] == 'dodgecity': + ses.hand = DodgeCity.get_cards() + ses.notify_self() + elif 'valley' in cmd[1].lower(): + ses.hand = TheValleyOfShadows.get_cards() + ses.notify_self() elif '/getnuggets' in msg: sio.emit('chat_message', room=ses.game.name, data={'color': f'red','text':f'🚨 {ses.name} is in debug mode and got nuggets'}) import bang.cards as cs @@ -634,6 +645,17 @@ def get_goldrushcards(sid): cards = [cards_dict[i] for i in cards_dict] sio.emit('goldrushcards_info', room=sid, data=json.dumps(cards, default=lambda o: o.__dict__)) +@sio.event +def get_valleyofshadowscards(sid): + import bang.expansions.the_valley_of_shadows.cards as tvos + cards = tvos.get_starting_deck() + cards_dict = {} + for ca in cards: + if ca.name not in cards_dict: + cards_dict[ca.name] = ca + cards = [cards_dict[i] for i in cards_dict] + sio.emit('valleyofshadows_info', room=sid, data=json.dumps(cards, default=lambda o: o.__dict__)) + @sio.event def discord_auth(sid, data): res = requests.post('https://discord.com/api/oauth2/token', data={ diff --git a/frontend/src/components/Help.vue b/frontend/src/components/Help.vue index a7159dc..9fc6e49 100644 --- a/frontend/src/components/Help.vue +++ b/frontend/src/components/Help.vue @@ -108,6 +108,15 @@ +

{{$t('help.valleyofshadowscards')}}

+
+
+ +
+

{{$t(`cards.${c.name}.desc`)}}

+
+
+