Archived
Fix rampage, futureproof for other draw_and_discard effects
This commit is contained in:
@@ -207,7 +207,7 @@
|
|||||||
"amount": 6
|
"amount": 6
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"effect": "draw_and_discard_multiple",
|
"effect": "draw_and_discard",
|
||||||
"amount": 2
|
"amount": 2
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user