Archived
Fix rampage, futureproof for other draw_and_discard effects
This commit is contained in:
@@ -207,7 +207,7 @@
|
||||
"amount": 6
|
||||
},
|
||||
{
|
||||
"effect": "draw_and_discard_multiple",
|
||||
"effect": "draw_and_discard",
|
||||
"amount": 2
|
||||
}
|
||||
]
|
||||
|
||||
@@ -71,8 +71,9 @@ async def effect_draw(_effect: Effect, turn: "Turn", _target: str):
|
||||
return await turn.player.draw_and_play(1)
|
||||
|
||||
|
||||
async def effect_draw_and_discard(_effect: Effect, turn: "Turn", _target: str):
|
||||
async def effect_draw_and_discard(effect: Effect, turn: "Turn", _target: str):
|
||||
turn.discard_markers += 1
|
||||
turn.discard_marker_card = effect.card
|
||||
return await turn.player.draw_and_play(1)
|
||||
|
||||
|
||||
@@ -109,7 +110,6 @@ card_effect_all_behaviours = {
|
||||
CardEffects.SACRIFICE: effect_sacrifice,
|
||||
CardEffects.DRAW: effect_draw,
|
||||
CardEffects.DRAW_AND_DISCARD: effect_draw_and_discard,
|
||||
CardEffects.DRAW_AND_DISCARD_MULTIPLE: effect_draw_and_discard,
|
||||
CardEffects.DISCARD: effect_discard,
|
||||
CardEffects.RESTACK_DISCARDED_CHAMPION: effect_restack_discarded_champion,
|
||||
CardEffects.RESTACK_DISCARDED_CARD: effect_restack_discarded,
|
||||
|
||||
@@ -41,7 +41,6 @@ class CardEffects(str, Enum):
|
||||
SACRIFICE = "sacrifice"
|
||||
DRAW = "draw"
|
||||
DRAW_AND_DISCARD = "draw_and_discard"
|
||||
DRAW_AND_DISCARD_MULTIPLE = "draw_and_discard_multiple"
|
||||
DISCARD = "discard"
|
||||
RESTACK_DISCARDED_CHAMPION = "restack_discarded_champion"
|
||||
RESTACK_DISCARDED_CARD = "restack_discarded_card"
|
||||
|
||||
+8
-5
@@ -42,6 +42,7 @@ class Turn(Serializable):
|
||||
self.effects_availables: List[Effect] = []
|
||||
self.cards_locked: List[Card] = []
|
||||
self.discard_markers = 0
|
||||
self.discard_marker_card: Optional[Card]
|
||||
self.fuck_u_markers = 0
|
||||
|
||||
async def end_turn(self) -> None:
|
||||
@@ -57,6 +58,7 @@ class Turn(Serializable):
|
||||
self.effects_availables = []
|
||||
self.cards_locked = []
|
||||
self.discard_markers = 0
|
||||
self.discard_marker_card = None
|
||||
self.fuck_u_markers = 0
|
||||
for p in self.player.game.players:
|
||||
p.turn.champions_health = {}
|
||||
@@ -128,13 +130,14 @@ class Turn(Serializable):
|
||||
if effect is None:
|
||||
return print("Effect not available")
|
||||
|
||||
if (
|
||||
effect.effect != CardEffects.DRAW_AND_DISCARD_MULTIPLE
|
||||
and self.discard_markers > 0
|
||||
):
|
||||
if effect.effect != CardEffects.DRAW_AND_DISCARD and self.discard_markers > 0:
|
||||
return print(
|
||||
"You cannot use another effect than draw_and_discard_multiple with discard markers!"
|
||||
"You cannot use another effect than draw_and_discard with discard markers!"
|
||||
)
|
||||
|
||||
if self.discard_markers > 0 and effect.card != self.discard_marker_card:
|
||||
return print("You have to discard first before using another card's effect")
|
||||
|
||||
card = effect.card
|
||||
if card is None:
|
||||
return print(
|
||||
|
||||
Reference in New Issue
Block a user