Archived
discord login
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from typing import TYPE_CHECKING, Awaitable, Optional
|
||||
from typing import TYPE_CHECKING, Optional, Callable, Coroutine, Any
|
||||
from model.card_validator import EffectParser
|
||||
from model.card import Effect, EffectType, CardEffects, EffectTimes, CardType
|
||||
|
||||
@@ -6,6 +6,8 @@ from model.card import Effect, EffectType, CardEffects, EffectTimes, CardType
|
||||
if TYPE_CHECKING:
|
||||
from model import Turn
|
||||
|
||||
# pylint: disable=unused-argument,missing-function-docstring
|
||||
|
||||
|
||||
# Effect Types
|
||||
async def effect_type_suicide(effect: Effect, turn: "Turn"):
|
||||
@@ -55,19 +57,20 @@ async def effect_heal(effect: Effect, turn: "Turn", _target: str):
|
||||
return True
|
||||
|
||||
|
||||
async def effect_prepare(_effect: Effect, turn: "Turn", target: str):
|
||||
async def effect_prepare(effect: Effect, turn: "Turn", target: str):
|
||||
|
||||
return turn.prepare(target)
|
||||
|
||||
|
||||
async def effect_stun(_effect: Effect, turn: "Turn", target: str):
|
||||
async def effect_stun(effect: Effect, turn: "Turn", target: str):
|
||||
return await turn.player.stun(target)
|
||||
|
||||
|
||||
async def effect_sacrifice(_effect: Effect, turn: "Turn", target: str):
|
||||
async def effect_sacrifice(effect: Effect, turn: "Turn", target: str):
|
||||
return await turn.sacrifice_card(target)
|
||||
|
||||
|
||||
async def effect_draw(_effect: Effect, turn: "Turn", _target: str):
|
||||
async def effect_draw(effect: Effect, turn: "Turn", _target: str):
|
||||
return await turn.player.draw_and_play(1)
|
||||
|
||||
|
||||
@@ -169,9 +172,11 @@ effect_times_all_behaviours = {
|
||||
}
|
||||
|
||||
|
||||
def create_effect_behaviour(effect: EffectParser) -> Awaitable[None]:
|
||||
def create_effect_behaviour(
|
||||
effect: EffectParser,
|
||||
) -> Callable[[Effect, "Turn", str | None], Coroutine[Any, Any, Any]]:
|
||||
|
||||
async def effect_type_behaviour(e: Effect, t: "Turn"):
|
||||
async def effect_type_behaviour(effect: Effect, turn: "Turn"):
|
||||
return True
|
||||
|
||||
if effect.effect_type in effect_types_all_behaviours:
|
||||
@@ -182,7 +187,7 @@ def create_effect_behaviour(effect: EffectParser) -> Awaitable[None]:
|
||||
|
||||
card_effect_behaviour = card_effect_all_behaviours[effect.effect]
|
||||
|
||||
def effect_times_behaviour(_e: Effect, _t: "Turn"):
|
||||
def effect_times_behaviour(effect: Effect, turn: "Turn"):
|
||||
return 1
|
||||
|
||||
if effect.times in effect_times_all_behaviours:
|
||||
@@ -194,7 +199,7 @@ def create_effect_behaviour(effect: EffectParser) -> Awaitable[None]:
|
||||
return False
|
||||
times = effect_times_behaviour(self, turn)
|
||||
for _ in range(times):
|
||||
effect_result = await card_effect_behaviour(self, turn, target)
|
||||
effect_result = await card_effect_behaviour(self, turn, (target or ""))
|
||||
if not effect_result:
|
||||
return False
|
||||
return True
|
||||
|
||||
Reference in New Issue
Block a user