diff --git a/src/cards/pack1_faction_wild.json b/src/cards/pack1_faction_wild.json index f7258c1..e8f0238 100644 --- a/src/cards/pack1_faction_wild.json +++ b/src/cards/pack1_faction_wild.json @@ -207,7 +207,7 @@ "amount": 6 }, { - "effect": "draw_and_discard_multiple", + "effect": "draw_and_discard", "amount": 2 } ] diff --git a/src/model/card_behaviour.py b/src/model/card_behaviour.py index d576516..0aac42c 100644 --- a/src/model/card_behaviour.py +++ b/src/model/card_behaviour.py @@ -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, diff --git a/src/model/card_validator.py b/src/model/card_validator.py index bf53af1..c831648 100644 --- a/src/model/card_validator.py +++ b/src/model/card_validator.py @@ -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" diff --git a/src/model/turn.py b/src/model/turn.py index dcdba4f..a4545ed 100644 --- a/src/model/turn.py +++ b/src/model/turn.py @@ -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(