Fix rampage, futureproof for other draw_and_discard effects

This commit is contained in:
2024-05-06 16:31:55 +02:00
parent dfabcb6eb1
commit c59fa12036
4 changed files with 11 additions and 9 deletions
+1 -1
View File
@@ -207,7 +207,7 @@
"amount": 6 "amount": 6
}, },
{ {
"effect": "draw_and_discard_multiple", "effect": "draw_and_discard",
"amount": 2 "amount": 2
} }
] ]
+2 -2
View File
@@ -71,8 +71,9 @@ async def effect_draw(_effect: Effect, turn: "Turn", _target: str):
return await turn.player.draw_and_play(1) 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_markers += 1
turn.discard_marker_card = effect.card
return await turn.player.draw_and_play(1) return await turn.player.draw_and_play(1)
@@ -109,7 +110,6 @@ card_effect_all_behaviours = {
CardEffects.SACRIFICE: effect_sacrifice, CardEffects.SACRIFICE: effect_sacrifice,
CardEffects.DRAW: effect_draw, CardEffects.DRAW: effect_draw,
CardEffects.DRAW_AND_DISCARD: effect_draw_and_discard, CardEffects.DRAW_AND_DISCARD: effect_draw_and_discard,
CardEffects.DRAW_AND_DISCARD_MULTIPLE: effect_draw_and_discard,
CardEffects.DISCARD: effect_discard, CardEffects.DISCARD: effect_discard,
CardEffects.RESTACK_DISCARDED_CHAMPION: effect_restack_discarded_champion, CardEffects.RESTACK_DISCARDED_CHAMPION: effect_restack_discarded_champion,
CardEffects.RESTACK_DISCARDED_CARD: effect_restack_discarded, CardEffects.RESTACK_DISCARDED_CARD: effect_restack_discarded,
-1
View File
@@ -41,7 +41,6 @@ class CardEffects(str, Enum):
SACRIFICE = "sacrifice" SACRIFICE = "sacrifice"
DRAW = "draw" DRAW = "draw"
DRAW_AND_DISCARD = "draw_and_discard" DRAW_AND_DISCARD = "draw_and_discard"
DRAW_AND_DISCARD_MULTIPLE = "draw_and_discard_multiple"
DISCARD = "discard" DISCARD = "discard"
RESTACK_DISCARDED_CHAMPION = "restack_discarded_champion" RESTACK_DISCARDED_CHAMPION = "restack_discarded_champion"
RESTACK_DISCARDED_CARD = "restack_discarded_card" RESTACK_DISCARDED_CARD = "restack_discarded_card"
+8 -5
View File
@@ -42,6 +42,7 @@ class Turn(Serializable):
self.effects_availables: List[Effect] = [] self.effects_availables: List[Effect] = []
self.cards_locked: List[Card] = [] self.cards_locked: List[Card] = []
self.discard_markers = 0 self.discard_markers = 0
self.discard_marker_card: Optional[Card]
self.fuck_u_markers = 0 self.fuck_u_markers = 0
async def end_turn(self) -> None: async def end_turn(self) -> None:
@@ -57,6 +58,7 @@ class Turn(Serializable):
self.effects_availables = [] self.effects_availables = []
self.cards_locked = [] self.cards_locked = []
self.discard_markers = 0 self.discard_markers = 0
self.discard_marker_card = None
self.fuck_u_markers = 0 self.fuck_u_markers = 0
for p in self.player.game.players: for p in self.player.game.players:
p.turn.champions_health = {} p.turn.champions_health = {}
@@ -128,13 +130,14 @@ class Turn(Serializable):
if effect is None: if effect is None:
return print("Effect not available") return print("Effect not available")
if ( if effect.effect != CardEffects.DRAW_AND_DISCARD and self.discard_markers > 0:
effect.effect != CardEffects.DRAW_AND_DISCARD_MULTIPLE
and self.discard_markers > 0
):
return print( 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 card = effect.card
if card is None: if card is None:
return print( return print(