fix for green cards and equipment
the cards could be overwritten before
This commit is contained in:
parent
79d75374f2
commit
623afcc201
@ -58,12 +58,7 @@ class Card(ABC):
|
|||||||
if not has_weapon:
|
if not has_weapon:
|
||||||
player.equipment.append(self)
|
player.equipment.append(self)
|
||||||
elif self.name in [c.name for c in player.equipment if not isinstance(c, Dinamite)]:
|
elif self.name in [c.name for c in player.equipment if not isinstance(c, Dinamite)]:
|
||||||
for i in range(len(player.equipment)):
|
return False
|
||||||
print('tipo',type(self))
|
|
||||||
if type(player.equipment[i]) == type(self):
|
|
||||||
player.game.deck.scrap(player.equipment[i])
|
|
||||||
player.equipment[i] = self
|
|
||||||
break
|
|
||||||
else:
|
else:
|
||||||
player.equipment.append(self)
|
player.equipment.append(self)
|
||||||
if against:
|
if against:
|
||||||
@ -77,6 +72,9 @@ class Card(ABC):
|
|||||||
def use_card(self, player):
|
def use_card(self, player):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def is_duplicate_card(self, player):
|
||||||
|
return self.name in [c.name for c in player.equipment]
|
||||||
|
|
||||||
|
|
||||||
class Barile(Card):
|
class Barile(Card):
|
||||||
def __init__(self, suit, number):
|
def __init__(self, suit, number):
|
||||||
|
@ -152,8 +152,11 @@ class Bibbia(Schivata):
|
|||||||
pass
|
pass
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
|
if not self.is_duplicate_card(player):
|
||||||
player.equipment.append(self)
|
player.equipment.append(self)
|
||||||
return True
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
class Cappello(Mancato):
|
class Cappello(Mancato):
|
||||||
def __init__(self, suit, number):
|
def __init__(self, suit, number):
|
||||||
@ -168,8 +171,11 @@ class Cappello(Mancato):
|
|||||||
pass
|
pass
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
|
if not self.is_duplicate_card(player):
|
||||||
player.equipment.append(self)
|
player.equipment.append(self)
|
||||||
return True
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
class PlaccaDiFerro(Cappello):
|
class PlaccaDiFerro(Cappello):
|
||||||
def __init__(self, suit, number):
|
def __init__(self, suit, number):
|
||||||
@ -195,8 +201,11 @@ class Pugnale(Pugno):
|
|||||||
if self.can_be_used_now:
|
if self.can_be_used_now:
|
||||||
return super().play_card(player, against=against)
|
return super().play_card(player, against=against)
|
||||||
else:
|
else:
|
||||||
|
if not self.is_duplicate_card(player):
|
||||||
player.equipment.append(self)
|
player.equipment.append(self)
|
||||||
return True
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
class Derringer(Pugnale):
|
class Derringer(Pugnale):
|
||||||
def __init__(self, suit, number):
|
def __init__(self, suit, number):
|
||||||
@ -212,8 +221,11 @@ class Derringer(Pugnale):
|
|||||||
player.hand.append(player.game.deck.draw())
|
player.hand.append(player.game.deck.draw())
|
||||||
return super().play_card(player, against=against)
|
return super().play_card(player, against=against)
|
||||||
else:
|
else:
|
||||||
|
if not self.is_duplicate_card(player):
|
||||||
player.equipment.append(self)
|
player.equipment.append(self)
|
||||||
return True
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
def use_card(self, player):
|
def use_card(self, player):
|
||||||
player.hand.append(player.game.deck.draw())
|
player.hand.append(player.game.deck.draw())
|
||||||
@ -235,8 +247,11 @@ class Borraccia(Card):
|
|||||||
player.notify_self()
|
player.notify_self()
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
|
if not self.is_duplicate_card(player):
|
||||||
player.equipment.append(self)
|
player.equipment.append(self)
|
||||||
return True
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
class PonyExpress(WellsFargo):
|
class PonyExpress(WellsFargo):
|
||||||
def __init__(self, suit, number):
|
def __init__(self, suit, number):
|
||||||
@ -250,8 +265,11 @@ class PonyExpress(WellsFargo):
|
|||||||
if self.can_be_used_now:
|
if self.can_be_used_now:
|
||||||
return super().play_card(player, against)
|
return super().play_card(player, against)
|
||||||
else:
|
else:
|
||||||
|
if not self.is_duplicate_card(player):
|
||||||
player.equipment.append(self)
|
player.equipment.append(self)
|
||||||
return True
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
class Howitzer(Gatling):
|
class Howitzer(Gatling):
|
||||||
def __init__(self, suit, number):
|
def __init__(self, suit, number):
|
||||||
@ -265,8 +283,11 @@ class Howitzer(Gatling):
|
|||||||
if self.can_be_used_now:
|
if self.can_be_used_now:
|
||||||
return super().play_card(player, against)
|
return super().play_card(player, against)
|
||||||
else:
|
else:
|
||||||
|
if not self.is_duplicate_card(player):
|
||||||
player.equipment.append(self)
|
player.equipment.append(self)
|
||||||
return True
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
class CanCan(CatBalou):
|
class CanCan(CatBalou):
|
||||||
def __init__(self, suit, number):
|
def __init__(self, suit, number):
|
||||||
@ -280,8 +301,11 @@ class CanCan(CatBalou):
|
|||||||
if self.can_be_used_now:
|
if self.can_be_used_now:
|
||||||
return super().play_card(player, against)
|
return super().play_card(player, against)
|
||||||
else:
|
else:
|
||||||
|
if not self.is_duplicate_card(player):
|
||||||
player.equipment.append(self)
|
player.equipment.append(self)
|
||||||
return True
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
class Conestoga(Panico):
|
class Conestoga(Panico):
|
||||||
def __init__(self, suit, number):
|
def __init__(self, suit, number):
|
||||||
@ -297,8 +321,11 @@ class Conestoga(Panico):
|
|||||||
if self.can_be_used_now:
|
if self.can_be_used_now:
|
||||||
return super().play_card(player, against)
|
return super().play_card(player, against)
|
||||||
else:
|
else:
|
||||||
|
if not self.is_duplicate_card(player):
|
||||||
player.equipment.append(self)
|
player.equipment.append(self)
|
||||||
return True
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
class Pepperbox(Bang):
|
class Pepperbox(Bang):
|
||||||
def __init__(self, suit, number):
|
def __init__(self, suit, number):
|
||||||
@ -316,8 +343,11 @@ class Pepperbox(Bang):
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
|
if not self.is_duplicate_card(player):
|
||||||
player.equipment.append(self)
|
player.equipment.append(self)
|
||||||
return True
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
class FucileDaCaccia(Card):
|
class FucileDaCaccia(Card):
|
||||||
def __init__(self, suit, number):
|
def __init__(self, suit, number):
|
||||||
@ -336,8 +366,11 @@ class FucileDaCaccia(Card):
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
|
if not self.is_duplicate_card(player):
|
||||||
player.equipment.append(self)
|
player.equipment.append(self)
|
||||||
return True
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
def get_starting_deck() -> List[Card]:
|
def get_starting_deck() -> List[Card]:
|
||||||
return [
|
return [
|
||||||
|
@ -503,6 +503,10 @@ class Player:
|
|||||||
self.game.deck.scrap(card)
|
self.game.deck.scrap(card)
|
||||||
else:
|
else:
|
||||||
self.equipment.insert(hand_index-len(self.hand), card)
|
self.equipment.insert(hand_index-len(self.hand), card)
|
||||||
|
elif card.is_equipment or (card.usable_next_turn and not card.can_be_used_now):
|
||||||
|
if not did_play_card:
|
||||||
|
self.hand.insert(hand_index, card)
|
||||||
|
print("did play card:", did_play_card)
|
||||||
self.notify_self()
|
self.notify_self()
|
||||||
|
|
||||||
def choose(self, card_index):
|
def choose(self, card_index):
|
||||||
|
Loading…
Reference in New Issue
Block a user