discord login

This commit is contained in:
2024-05-07 23:09:52 +02:00
parent 082e07c48b
commit ade051890e
15 changed files with 317 additions and 145 deletions
+14 -9
View File
@@ -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