Source code for tuxemon.technique.effects.reverse

# SPDX-License-Identifier: GPL-3.0
# Copyright (c) 2014-2023 William Edwards <shadowapex@gmail.com>, Benjamin Bean <superman2k5@gmail.com>
from __future__ import annotations

from dataclasses import dataclass
from typing import TYPE_CHECKING

from tuxemon.technique.techeffect import TechEffect, TechEffectResult

if TYPE_CHECKING:
    from tuxemon.monster import Monster
    from tuxemon.technique.technique import Technique


[docs]class ReverseEffectResult(TechEffectResult): pass
[docs]@dataclass class ReverseEffect(TechEffect): """ Reverse "Switch" effect: it returns the original monster type. "reverse user" "reverse target" "reverse both" """ name = "reverse" objective: str
[docs] def apply( self, tech: Technique, user: Monster, target: Monster ) -> ReverseEffectResult: done: bool = False if self.objective == "user": user.return_types() done = True elif self.objective == "target": target.return_types() done = True elif self.objective == "both": user.return_types() target.return_types() done = True return {"success": done}