some event cards
This commit is contained in:
		
							parent
							
								
									f4aee7ad60
								
							
						
					
					
						commit
						7f4fc29196
					
				| @ -67,7 +67,7 @@ def get_me(sid, room): | |||||||
|             print('room exists') |             print('room exists') | ||||||
|             if room['username'] != None and any([p.name == room['username'] for p in de_games[0].players if p.is_bot]): |             if room['username'] != None and any([p.name == room['username'] for p in de_games[0].players if p.is_bot]): | ||||||
|                 print('getting inside the bot') |                 print('getting inside the bot') | ||||||
|                 bot = [p for p in de_games[0].players if p.is_bot][0] |                 bot = [p for p in de_games[0].players if p.is_bot and p.name == room['username'] ][0] | ||||||
|                 bot.sid = sid |                 bot.sid = sid | ||||||
|                 bot.is_bot = False |                 bot.is_bot = False | ||||||
|                 sio.enter_room(sid, de_games[0].name) |                 sio.enter_room(sid, de_games[0].name) | ||||||
| @ -82,6 +82,7 @@ def get_me(sid, room): | |||||||
|                 sio.get_session(sid).game = de_games[0] |                 sio.get_session(sid).game = de_games[0] | ||||||
|                 sio.enter_room(sid, de_games[0].name) |                 sio.enter_room(sid, de_games[0].name) | ||||||
|                 de_games[0].notify_room(sid) |                 de_games[0].notify_room(sid) | ||||||
|  |                 de_games[0].notify_all() | ||||||
|             de_games[0].notify_event_card() |             de_games[0].notify_event_card() | ||||||
|         else: |         else: | ||||||
|             create_room(sid, room['name']) |             create_room(sid, room['name']) | ||||||
| @ -172,15 +173,17 @@ def chat_message(sid, msg): | |||||||
|             elif '/suicide' in msg and ses.game.started and ses.lives > 0: |             elif '/suicide' in msg and ses.game.started and ses.lives > 0: | ||||||
|                 ses.lives = 0 |                 ses.lives = 0 | ||||||
|                 ses.notify_self() |                 ses.notify_self() | ||||||
|  |             elif '/nextevent' in msg and ses.game.started: | ||||||
|  |                 ses.game.deck.flip_event() | ||||||
|             elif '/notify' in msg and ses.game.started: |             elif '/notify' in msg and ses.game.started: | ||||||
|                 cmd = msg.split() |                 cmd = msg.split() | ||||||
|                 if len(cmd) == 3: |                 if len(cmd) >= 3: | ||||||
|                     if cmd[1] in ses.game.players_map: |                     if cmd[1] in ses.game.players_map: | ||||||
|                         ses.game.get_player_named(cmd[1]).notify_card(ses, { |                         ses.game.get_player_named(cmd[1]).notify_card(ses, { | ||||||
|                             'name': cmd[2], |                             'name': ' '.join(cmd[2:]), | ||||||
|                             'icon': '🚨', |                             'icon': '🚨', | ||||||
|                             'suit': 4, |                             'suit': 4, | ||||||
|                             'number': cmd[2] |                             'number': ' '.join(cmd[2:]) | ||||||
|                         }) |                         }) | ||||||
|                 else: |                 else: | ||||||
|                     sio.emit('chat_message', room=sid, data={'color': f'','text':f'{msg} bad format'}) |                     sio.emit('chat_message', room=sid, data={'color': f'','text':f'{msg} bad format'}) | ||||||
| @ -205,6 +208,7 @@ def chat_message(sid, msg): | |||||||
|             elif '/addex' in msg and not ses.game.started: |             elif '/addex' in msg and not ses.game.started: | ||||||
|                 cmd = msg.split() |                 cmd = msg.split() | ||||||
|                 if len(cmd) == 2: |                 if len(cmd) == 2: | ||||||
|  |                     cmd[1] = cmd[1].replace('foc', 'fistful_of_cards') | ||||||
|                     if cmd[1] not in ses.game.available_expansions: |                     if cmd[1] not in ses.game.available_expansions: | ||||||
|                         ses.game.available_expansions.append(cmd[1]) |                         ses.game.available_expansions.append(cmd[1]) | ||||||
|                         ses.game.notify_room() |                         ses.game.notify_room() | ||||||
|  | |||||||
| @ -12,19 +12,19 @@ class Agguato(CardEvent): | |||||||
|         self.desc_eng = '' |         self.desc_eng = '' | ||||||
| 
 | 
 | ||||||
| class Cecchino(CardEvent): | class Cecchino(CardEvent): | ||||||
|     def __init__(self): |     def __init__(self): #TODO | ||||||
|         super().__init__('Cecchino', '👁') |         super().__init__('Cecchino', '👁') | ||||||
|         self.desc = 'Nel proprio turno i giocatori possono scartare 2 Bang assieme per sparare un bang a cui servono 2 mancato' |         self.desc = 'Nel proprio turno i giocatori possono scartare 2 Bang assieme per sparare un bang a cui servono 2 mancato' | ||||||
|         self.desc_eng = '' |         self.desc_eng = '' | ||||||
| 
 | 
 | ||||||
| class DeadMan(CardEvent): | class DeadMan(CardEvent): | ||||||
|     def __init__(self): |     def __init__(self):#TODO | ||||||
|         super().__init__('Dead Man', '⚰️') |         super().__init__('Dead Man', '⚰️') | ||||||
|         self.desc = 'Al proprio turno il giocatore che è morto per primo torna in vita con 2 vite e 2 carte' |         self.desc = 'Al proprio turno il giocatore che è morto per primo torna in vita con 2 vite e 2 carte' | ||||||
|         self.desc_eng = '' |         self.desc_eng = '' | ||||||
| 
 | 
 | ||||||
| class FratelliDiSangue(CardEvent): | class FratelliDiSangue(CardEvent): | ||||||
|     def __init__(self): |     def __init__(self):#TODO | ||||||
|         super().__init__('Fratelli Di Sangue', '💉') |         super().__init__('Fratelli Di Sangue', '💉') | ||||||
|         self.desc = 'All\'inizio del proprio turno i giocatori possono perdere 1 vita per darla a un altro giocatore' |         self.desc = 'All\'inizio del proprio turno i giocatori possono perdere 1 vita per darla a un altro giocatore' | ||||||
|         self.desc_eng = '' |         self.desc_eng = '' | ||||||
| @ -42,49 +42,49 @@ class Lazo(CardEvent): | |||||||
|         self.desc_eng = '' |         self.desc_eng = '' | ||||||
| 
 | 
 | ||||||
| class LeggeDelWest(CardEvent): | class LeggeDelWest(CardEvent): | ||||||
|     def __init__(self): |     def __init__(self):#TODO | ||||||
|         super().__init__('Legge Del West', '⚖️') |         super().__init__('Legge Del West', '⚖️') | ||||||
|         self.desc = 'I giocatori mostrano la seconda carta che pescano e sono obbligati a usarla in quel turno (se possibile)' |         self.desc = 'I giocatori mostrano la seconda carta che pescano e sono obbligati a usarla in quel turno (se possibile)' | ||||||
|         self.desc_eng = '' |         self.desc_eng = '' | ||||||
| 
 | 
 | ||||||
| class LiquoreForte(CardEvent): | class LiquoreForte(CardEvent): | ||||||
|     def __init__(self): |     def __init__(self):#TODO | ||||||
|         super().__init__('Liquore Forte', '🥃') |         super().__init__('Liquore Forte', '🥃') | ||||||
|         self.desc = 'I giocatori possono evitare di pescare per recuperare 1 vita' |         self.desc = 'I giocatori possono evitare di pescare per recuperare 1 vita' | ||||||
|         self.desc_eng = '' |         self.desc_eng = '' | ||||||
| 
 | 
 | ||||||
| class MinieraAbbandonata(CardEvent): | class MinieraAbbandonata(CardEvent): | ||||||
|     def __init__(self): |     def __init__(self):#TODO | ||||||
|         super().__init__('Miniera Abbandonata', '⛏') |         super().__init__('Miniera Abbandonata', '⛏') | ||||||
|         self.desc = 'I giocatori pescano dagli scarti e scartano in cima al mazzo' |         self.desc = 'I giocatori pescano dagli scarti e scartano in cima al mazzo' | ||||||
|         self.desc_eng = '' |         self.desc_eng = '' | ||||||
| 
 | 
 | ||||||
| class PerUnPugnoDiCarte(CardEvent): | class PerUnPugnoDiCarte(CardEvent): | ||||||
|     def __init__(self): |     def __init__(self):#TODO | ||||||
|         super().__init__('Per Un Pugno Di Carte', '🎴') |         super().__init__('Per Un Pugno Di Carte', '🎴') | ||||||
|         self.desc = 'Il giocatore subisce tanti bang quante carte ha in mano' |         self.desc = 'Il giocatore subisce tanti bang quante carte ha in mano' | ||||||
|         self.desc_eng = '' |         self.desc_eng = '' | ||||||
| 
 | 
 | ||||||
| class Peyote(CardEvent): | class Peyote(CardEvent): | ||||||
|     def __init__(self): |     def __init__(self):#TODO | ||||||
|         super().__init__('Peyote', '🌵') |         super().__init__('Peyote', '🌵') | ||||||
|         self.desc = 'Invece che pescare il giocatore prova a indovinare il colore del seme, se lo indovina continua' |         self.desc = 'Invece che pescare il giocatore prova a indovinare il colore del seme, se lo indovina continua' | ||||||
|         self.desc_eng = '' |         self.desc_eng = '' | ||||||
| 
 | 
 | ||||||
| class Ranch(CardEvent): | class Ranch(CardEvent): | ||||||
|     def __init__(self): |     def __init__(self):#TODO | ||||||
|         super().__init__('Ranch', '🐮') |         super().__init__('Ranch', '🐮') | ||||||
|         self.desc = 'Dopo aver pescato il giocatore può scartare quante carte vuole dalla mano e pescarne altrettante dal mazzo' |         self.desc = 'Dopo aver pescato il giocatore può scartare quante carte vuole dalla mano e pescarne altrettante dal mazzo' | ||||||
|         self.desc_eng = '' |         self.desc_eng = '' | ||||||
| 
 | 
 | ||||||
| class Rimbalzo(CardEvent): | class Rimbalzo(CardEvent): | ||||||
|     def __init__(self): |     def __init__(self):#TODO | ||||||
|         super().__init__('Rimbalzo', '⏮') |         super().__init__('Rimbalzo', '⏮') | ||||||
|         self.desc = 'Il giocatore di turno può giocare bang contro le carte equipaggiate dagli altri giocatori, se non giocano mancato vengono scartate' |         self.desc = 'Il giocatore di turno può giocare bang contro le carte equipaggiate dagli altri giocatori, se non giocano mancato vengono scartate' | ||||||
|         self.desc_eng = '' |         self.desc_eng = '' | ||||||
| 
 | 
 | ||||||
| class RouletteRussa(CardEvent): | class RouletteRussa(CardEvent): | ||||||
|     def __init__(self): |     def __init__(self):#TODO | ||||||
|         super().__init__('Roulette Russa', '🇷🇺') |         super().__init__('Roulette Russa', '🇷🇺') | ||||||
|         self.desc = 'A partire dallo sceriffo, ogni giocatore scarta 1 mancato, il primo che non lo fa perde 2 vite' |         self.desc = 'A partire dallo sceriffo, ogni giocatore scarta 1 mancato, il primo che non lo fa perde 2 vite' | ||||||
|         self.desc_eng = '' |         self.desc_eng = '' | ||||||
| @ -98,18 +98,18 @@ class Vendetta(CardEvent): | |||||||
| def get_all_events(): | def get_all_events(): | ||||||
|     return [ |     return [ | ||||||
|         Agguato(), |         Agguato(), | ||||||
|         Cecchino(), |         # Cecchino(), | ||||||
|         DeadMan(), |         # DeadMan(), | ||||||
|         FratelliDiSangue(), |         # FratelliDiSangue(), | ||||||
|         IlGiudice(), |         IlGiudice(), | ||||||
|         Lazo(), |         Lazo(), | ||||||
|         LeggeDelWest(), |         # LeggeDelWest(), | ||||||
|         LiquoreForte(), |         # LiquoreForte(), | ||||||
|         MinieraAbbandonata(), |         # MinieraAbbandonata(), | ||||||
|         PerUnPugnoDiCarte(), |         # PerUnPugnoDiCarte(), | ||||||
|         Peyote(), |         # Peyote(), | ||||||
|         Ranch(), |         # Ranch(), | ||||||
|         Rimbalzo(), |         # Rimbalzo(), | ||||||
|         RouletteRussa(), |         # RouletteRussa(), | ||||||
|         Vendetta(), |         Vendetta(), | ||||||
|     ] |     ] | ||||||
| @ -6,6 +6,7 @@ import bang.players as players | |||||||
| import bang.characters as characters | import bang.characters as characters | ||||||
| from bang.deck import Deck | from bang.deck import Deck | ||||||
| import bang.roles as roles | import bang.roles as roles | ||||||
|  | import bang.expansions.fistful_of_cards.card_events as ce | ||||||
| import eventlet | import eventlet | ||||||
| 
 | 
 | ||||||
| class Game: | class Game: | ||||||
| @ -93,7 +94,8 @@ class Game: | |||||||
|                     self.players[i].hand.append(self.deck.draw()) |                     self.players[i].hand.append(self.deck.draw()) | ||||||
|                 self.players[i].notify_self() |                 self.players[i].notify_self() | ||||||
|             current_roles = [type(x.role).__name__ for x in self.players] |             current_roles = [type(x.role).__name__ for x in self.players] | ||||||
|             current_roles = {x:current_roles.count(x) for x in current_roles} |             random.shuffle(current_roles) | ||||||
|  |             current_roles = str({x:current_roles.count(x) for x in current_roles}).replace('{','').replace('}','') | ||||||
|             self.sio.emit('chat_message', room=self.name, data=f'_allroles|{current_roles}') |             self.sio.emit('chat_message', room=self.name, data=f'_allroles|{current_roles}') | ||||||
|             self.play_turn() |             self.play_turn() | ||||||
| 
 | 
 | ||||||
| @ -344,12 +346,17 @@ class Game: | |||||||
|         eventlet.sleep(0.5) |         eventlet.sleep(0.5) | ||||||
|         self.notify_room() |         self.notify_room() | ||||||
| 
 | 
 | ||||||
|  |     def check_event(self, ev): | ||||||
|  |         if len(self.deck.event_cards) == 0: return False | ||||||
|  |         return isinstance(self.deck.event_cards[0], ev) | ||||||
|  | 
 | ||||||
|     def get_visible_players(self, player: players.Player): |     def get_visible_players(self, player: players.Player): | ||||||
|         i = self.players.index(player) |         i = self.players.index(player) | ||||||
|         sight = player.get_sight() |         sight = player.get_sight() | ||||||
|  |         mindist = 99 if self.check_event(ce.Agguato) else 1 | ||||||
|         return [{ |         return [{ | ||||||
|             'name': self.players[j].name, |             'name': self.players[j].name, | ||||||
|             'dist': min(abs(i - j), (i+ abs(j-len(self.players))), (j+ abs(i-len(self.players)))) + self.players[j].get_visibility() - (player.get_sight(countWeapon=False)-1), |             'dist': min([abs(i - j), (i+ abs(j-len(self.players))), (j+ abs(i-len(self.players))), mindist]) + self.players[j].get_visibility() - (player.get_sight(countWeapon=False)-1), | ||||||
|             'lives': self.players[j].lives, |             'lives': self.players[j].lives, | ||||||
|             'max_lives': self.players[j].max_lives, |             'max_lives': self.players[j].max_lives, | ||||||
|             'is_sheriff': isinstance(self.players[j].role, roles.Sheriff), |             'is_sheriff': isinstance(self.players[j].role, roles.Sheriff), | ||||||
| @ -367,6 +374,7 @@ class Game: | |||||||
|                 'is_my_turn': p.is_my_turn, |                 'is_my_turn': p.is_my_turn, | ||||||
|                 'pending_action': p.pending_action, |                 'pending_action': p.pending_action, | ||||||
|                 'character': p.character.__dict__ if p.character else None, |                 'character': p.character.__dict__ if p.character else None, | ||||||
|  |                 'real_character': p.real_character.__dict__ if p.real_character else None, | ||||||
|                 'icon': p.role.icon if self.initial_players == 3 and p.role else '🤠' |                 'icon': p.role.icon if self.initial_players == 3 and p.role else '🤠' | ||||||
|             } for p in self.players] |             } for p in self.players] | ||||||
|             self.sio.emit('players_update', room=self.name, data=data) |             self.sio.emit('players_update', room=self.name, data=data) | ||||||
|  | |||||||
| @ -8,6 +8,7 @@ import bang.cards as cs | |||||||
| import bang.expansions.dodge_city.cards as csd | import bang.expansions.dodge_city.cards as csd | ||||||
| import bang.characters as chars | import bang.characters as chars | ||||||
| import bang.expansions.dodge_city.characters as chd | import bang.expansions.dodge_city.characters as chd | ||||||
|  | import bang.expansions.fistful_of_cards.card_events as ce | ||||||
| import eventlet | import eventlet | ||||||
| 
 | 
 | ||||||
| class PendingAction(IntEnum): | class PendingAction(IntEnum): | ||||||
| @ -201,7 +202,7 @@ class Player: | |||||||
|             self.draw('') |             self.draw('') | ||||||
|         elif self.pending_action == PendingAction.PLAY: |         elif self.pending_action == PendingAction.PLAY: | ||||||
|             has_played = False |             has_played = False | ||||||
|             if len([c for c in self.hand if c.is_equipment or c.usable_next_turn]) > 0: |             if len([c for c in self.hand if (c.is_equipment or c.usable_next_turn) and not self.game.check_event(ce.IlGiudice)]) > 0: | ||||||
|                 for i in range(len(self.hand)): |                 for i in range(len(self.hand)): | ||||||
|                     if self.hand[i].is_equipment or self.hand[i].usable_next_turn: |                     if self.hand[i].is_equipment or self.hand[i].usable_next_turn: | ||||||
|                         self.play_card(i) |                         self.play_card(i) | ||||||
| @ -263,7 +264,7 @@ class Player: | |||||||
|                     did_respond = True |                     did_respond = True | ||||||
|                     break |                     break | ||||||
|             for i in range(len(self.equipment)): |             for i in range(len(self.equipment)): | ||||||
|                 if self.equipment[i].name in self.expected_response: |                 if not self.game.check_event(ce.Lazo) and self.equipment[i].name in self.expected_response: | ||||||
|                     self.respond(len(self.hand)+i) |                     self.respond(len(self.hand)+i) | ||||||
|                     did_respond = True |                     did_respond = True | ||||||
|                     break |                     break | ||||||
| @ -291,7 +292,7 @@ class Player: | |||||||
|         self.is_my_turn = True |         self.is_my_turn = True | ||||||
|         self.is_waiting_for_action = True |         self.is_waiting_for_action = True | ||||||
|         self.has_played_bang = False |         self.has_played_bang = False | ||||||
|         if any([isinstance(c, cs.Dinamite) or isinstance(c, cs.Prigione) for c in self.equipment]): |         if not self.game.check_event(ce.Lazo) and any([isinstance(c, cs.Dinamite) or isinstance(c, cs.Prigione) for c in self.equipment]): | ||||||
|             self.pending_action = PendingAction.PICK |             self.pending_action = PendingAction.PICK | ||||||
|         else: |         else: | ||||||
|             if isinstance(self.real_character, chd.VeraCuster): |             if isinstance(self.real_character, chd.VeraCuster): | ||||||
| @ -428,9 +429,12 @@ class Player: | |||||||
|             withCard = self.hand.pop(_with) if hand_index > _with else self.hand.pop(_with - 1) |             withCard = self.hand.pop(_with) if hand_index > _with else self.hand.pop(_with - 1) | ||||||
|         print(self.name, 'is playing ', card, ' against:', against, ' with:', _with) |         print(self.name, 'is playing ', card, ' against:', against, ' with:', _with) | ||||||
|         did_play_card = False |         did_play_card = False | ||||||
|         if not(against != None and isinstance(self.game.get_player_named(against).character, chd.ApacheKid) and card.suit == cs.Suit.DIAMONDS): |         event_blocks_card = (self.game.check_event(ce.IlGiudice) and (card.is_equipment or (card.usable_next_turn and not card.can_be_used_now))) or (self.game.check_event(ce.Lazo) and card.usable_next_turn and card.can_be_used_now) | ||||||
|  |         print('giudice', self.game.check_event(ce.IlGiudice), 'and', card.is_equipment, 'or (', card.usable_next_turn ,'and' ,not card.can_be_used_now) | ||||||
|  |         print('lazo', (self.game.check_event(ce.Lazo) and card.usable_next_turn and card.can_be_used_now)) | ||||||
|  |         if not(against != None and isinstance(self.game.get_player_named(against).character, chd.ApacheKid) and card.suit == cs.Suit.DIAMONDS) and not event_blocks_card: | ||||||
|             did_play_card = card.play_card(self, against, withCard) |             did_play_card = card.play_card(self, against, withCard) | ||||||
|         if not card.is_equipment and not card.usable_next_turn: |         if not card.is_equipment and not card.usable_next_turn or event_blocks_card: | ||||||
|             if did_play_card: |             if did_play_card: | ||||||
|                 self.game.deck.scrap(card) |                 self.game.deck.scrap(card) | ||||||
|             else: |             else: | ||||||
| @ -523,7 +527,7 @@ class Player: | |||||||
|             self.take_damage_response() |             self.take_damage_response() | ||||||
|             return False |             return False | ||||||
|         else: |         else: | ||||||
|             if len([c for c in self.equipment if isinstance(c, cs.Barile)]) > 0 or isinstance(self.character, chars.Jourdonnais): |             if (not self.game.check_event(ce.Lazo) and len([c for c in self.equipment if isinstance(c, cs.Barile)]) > 0) or isinstance(self.character, chars.Jourdonnais): | ||||||
|                 print('has barrel') |                 print('has barrel') | ||||||
|                 self.pending_action = PendingAction.PICK |                 self.pending_action = PendingAction.PICK | ||||||
|                 self.on_pick_cb = self.barrel_pick |                 self.on_pick_cb = self.barrel_pick | ||||||
| @ -531,7 +535,7 @@ class Player: | |||||||
|                 print('has mancato') |                 print('has mancato') | ||||||
|                 self.pending_action = PendingAction.RESPOND |                 self.pending_action = PendingAction.RESPOND | ||||||
|                 self.expected_response = self.game.deck.mancato_cards |                 self.expected_response = self.game.deck.mancato_cards | ||||||
|                 if self.attacker and isinstance(self.attacker.character, chd.BelleStar): |                 if self.attacker and isinstance(self.attacker.character, chd.BelleStar) or self.game.check_event(ce.Lazo): | ||||||
|                     self.expected_response = self.game.deck.mancato_cards_not_green |                     self.expected_response = self.game.deck.mancato_cards_not_green | ||||||
|                 if isinstance(self.character, chd.ElenaFuente): |                 if isinstance(self.character, chd.ElenaFuente): | ||||||
|                     self.expected_response = self.game.deck.all_cards_str |                     self.expected_response = self.game.deck.all_cards_str | ||||||
| @ -644,6 +648,8 @@ class Player: | |||||||
|                 range += card.range |                 range += card.range | ||||||
|             else: |             else: | ||||||
|                 aim += card.sight_mod |                 aim += card.sight_mod | ||||||
|  |         if self.game.check_event(ce.Lazo): | ||||||
|  |             return 1 + self.character.sight_mod | ||||||
|         return max(1, range) + aim + self.character.sight_mod |         return max(1, range) + aim + self.character.sight_mod | ||||||
| 
 | 
 | ||||||
|     def get_visibility(self): |     def get_visibility(self): | ||||||
| @ -652,6 +658,8 @@ class Player: | |||||||
|         covers = 0 |         covers = 0 | ||||||
|         for card in self.equipment: |         for card in self.equipment: | ||||||
|             covers += card.vis_mod |             covers += card.vis_mod | ||||||
|  |         if self.game.check_event(ce.Lazo): | ||||||
|  |             return self.character.visibility_mod | ||||||
|         return self.character.visibility_mod + covers |         return self.character.visibility_mod + covers | ||||||
| 
 | 
 | ||||||
|     def scrap(self, card_index): |     def scrap(self, card_index): | ||||||
| @ -678,6 +686,12 @@ class Player: | |||||||
|             print( |             print( | ||||||
|                 f"I {self.name} have to many cards in my hand and I can't end the turn") |                 f"I {self.name} have to many cards in my hand and I can't end the turn") | ||||||
|         elif self.pending_action == PendingAction.PLAY or forced: |         elif self.pending_action == PendingAction.PLAY or forced: | ||||||
|  |             if not forced and self.game.check_event(ce.Vendetta): | ||||||
|  |                 picked: cs.Card = self.game.deck.pick_and_scrap() | ||||||
|  |                 self.sio.emit('chat_message', room=self.game.name, data=f'_flipped|{self.name}|{picked}') | ||||||
|  |                 if picked.suit == cs.Suit.HEARTS: | ||||||
|  |                     self.play_turn() | ||||||
|  |                     return | ||||||
|             self.is_my_turn = False |             self.is_my_turn = False | ||||||
|             for i in range(len(self.equipment)): |             for i in range(len(self.equipment)): | ||||||
|                 if self.equipment[i].usable_next_turn and not self.equipment[i].can_be_used_now: |                 if self.equipment[i].usable_next_turn and not self.equipment[i].can_be_used_now: | ||||||
|  | |||||||
| @ -22,6 +22,7 @@ | |||||||
| 					</transition-group> | 					</transition-group> | ||||||
| 					<Card :card="p.card" :class="{is_my_turn:p.is_my_turn}"/> | 					<Card :card="p.card" :class="{is_my_turn:p.is_my_turn}"/> | ||||||
| 					<Card v-if="p.character" :card="p.character" class="character tiny-character" @click.native="selectedInfo = [p.character]"/> | 					<Card v-if="p.character" :card="p.character" class="character tiny-character" @click.native="selectedInfo = [p.character]"/> | ||||||
|  | 					<Card v-if="p.character && p.character.name !== p.real_character.name" style="transform:scale(0.5) translate(-90px, -50px);" :card="p.character" class="character tiny-character" @click.native="selectedInfo = [p.character]"/> | ||||||
| 					<tiny-hand :ncards="p.ncards" @click.native="drawFromPlayer(p.name)" :ismyturn="p.pending_action === 2"/> | 					<tiny-hand :ncards="p.ncards" @click.native="drawFromPlayer(p.name)" :ismyturn="p.pending_action === 2"/> | ||||||
| 					<span style="position:absolute;top:10pt;" class="center-stuff">{{getActionEmoji(p)}}</span> | 					<span style="position:absolute;top:10pt;" class="center-stuff">{{getActionEmoji(p)}}</span> | ||||||
| 					<div class="tiny-equipment"> | 					<div class="tiny-equipment"> | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Alberto Xamin
						Alberto Xamin