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
},
{
"effect": "draw_and_discard_multiple",
"effect": "draw_and_discard",
"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)
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,
-1
View File
@@ -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
View File
@@ -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(