fix not resetting cards

This commit is contained in:
Alberto Xamin 2021-05-28 11:25:52 +02:00
parent cae194aa6d
commit 7dfcdc9e7d
No known key found for this signature in database
GPG Key ID: 4F026F48309500A2
4 changed files with 13 additions and 6 deletions

View File

@ -39,6 +39,7 @@ class Card(ABC):
self.can_be_used_now = True self.can_be_used_now = True
self.usable_next_turn = False self.usable_next_turn = False
self.need_with = False self.need_with = False
self.must_be_used = False
def __str__(self): def __str__(self):
char = ['♦️', '♣️', '♥️', '♠️'][int(self.suit)] char = ['♦️', '♣️', '♥️', '♠️'][int(self.suit)]
@ -48,6 +49,12 @@ class Card(ABC):
def num_suit(self): def num_suit(self):
return f"{['♦️', '♣️', '♥️', '♠️'][int(self.suit)]}{self.number}" return f"{['♦️', '♣️', '♥️', '♠️'][int(self.suit)]}{self.number}"
def reset_card(self):
if self.usable_next_turn:
self.can_be_used_now = False
if self.must_be_used:
self.must_be_used = False
def play_card(self, player, against=None, _with=None):#self --> carta def play_card(self, player, against=None, _with=None):#self --> carta
if self.is_equipment: if self.is_equipment:
if self.is_weapon: if self.is_weapon:
@ -70,6 +77,7 @@ class Card(ABC):
else: else:
player.sio.emit('chat_message', room=player.game.name, player.sio.emit('chat_message', room=player.game.name,
data=f'_play_card|{player.name}|{self.name}') data=f'_play_card|{player.name}|{self.name}')
self.reset_card()
return True return True
def use_card(self, player): def use_card(self, player):

View File

@ -85,8 +85,7 @@ class Deck:
return self.draw() return self.draw()
def scrap(self, card: cs.Card, ignore_event = False): def scrap(self, card: cs.Card, ignore_event = False):
if card.usable_next_turn: card.reset_card()
card.can_be_used_now = False
if self.game.check_event(ce.MinieraAbbandonata) and not ignore_event: if self.game.check_event(ce.MinieraAbbandonata) and not ignore_event:
self.put_on_top(card) self.put_on_top(card)
else: else:

View File

@ -516,8 +516,10 @@ class Game:
elif len(vulture) == 2: elif len(vulture) == 2:
for i in range(len(player.hand)): for i in range(len(player.hand)):
vulture[i%2].hand.append(player.hand.pop()) vulture[i%2].hand.append(player.hand.pop())
vulture[i%2].hand[-1].reset_card()
for i in range(len(player.equipment)): for i in range(len(player.equipment)):
vulture[i%2].hand.append(player.equipment.pop()) vulture[i%2].hand.append(player.equipment.pop())
vulture[i%2].hand[-1].reset_card()
vulture[0].notify_self() vulture[0].notify_self()
vulture[1].notify_self() vulture[1].notify_self()
else: else:

View File

@ -579,8 +579,7 @@ class Player:
card = target.hand.pop(card_index) card = target.hand.pop(card_index)
target.notify_self() target.notify_self()
if self.choose_action == 'steal': if self.choose_action == 'steal':
if card.usable_next_turn: card.reset_card()
card.can_be_used_now = False
self.hand.append(card) self.hand.append(card)
else: else:
self.game.deck.scrap(card, True) self.game.deck.scrap(card, True)
@ -683,8 +682,7 @@ class Player:
elif self.is_drawing and self.character.check(self.game, chd.PatBrennan): elif self.is_drawing and self.character.check(self.game, chd.PatBrennan):
self.is_drawing = False self.is_drawing = False
card = self.available_cards.pop(card_index) card = self.available_cards.pop(card_index)
if card.usable_next_turn: card.reset_card()
card.can_be_used_now = False
self.hand.append(card) self.hand.append(card)
self.available_cards = [] self.available_cards = []
self.game.get_player_named(self.pat_target).notify_self() self.game.get_player_named(self.pat_target).notify_self()