コード例 #1
0
    def setUp(self):
        """ Setup the attack and Pokemon to use the attack """
        self.user = BuildPokemonBattleWrapper()
        self.target = BuildPokemonBattleWrapper()

        self.userPkmn = self.user.pkmn
        self.targetPkmn = self.target.pkmn

        self.stat = "SPD"
        self.delegate = StatRatioFixedDelegate(None, 1, self.stat)
        self.lvl = 50
コード例 #2
0
class getIndex(unittest.TestCase):
    """ Test that the correct index is returned """

    def setUp(self):
        """ Setup the attack and Pokemon to use the attack """
        self.user = BuildPokemonBattleWrapper()
        self.target = BuildPokemonBattleWrapper()

        self.userPkmn = self.user.pkmn
        self.targetPkmn = self.target.pkmn

        self.stat = "SPD"
        self.delegate = StatRatioFixedDelegate(None, 1, self.stat)
        self.lvl = 50

    def overHalf(self):
        """ Test the power is corretc when the ratio is over 1/2 """
        self.userPkmn.battleDelegate.stats[self.stat] = self.lvl * 2
        self.targetPkmn.battleDelegate.stats[self.stat] = self.lvl + 1
        index = self.delegate.getIndex(self.user, self.target)

        assert index == 0, "Index should be 0"

    def overThird(self):
        """ Test the power is correct when the ratio is over 1/3 """
        self.userPkmn.battleDelegate.stats[self.stat] = self.lvl * 3
        self.targetPkmn.battleDelegate.stats[self.stat] = self.lvl + 1
        index = self.delegate.getIndex(self.user, self.target)

        assert index == 1, "Index should be 1"

    def overFourth(self):
        """ Test the power is correct when the ratio is over 1/4 """
        self.userPkmn.battleDelegate.stats[self.stat] = self.lvl * 4
        self.targetPkmn.battleDelegate.stats[self.stat] = self.lvl + 1
        index = self.delegate.getIndex(self.user, self.target)

        assert index == 2, "Index should be 2"

    def otherwise(self):
        """ Test the power is correct when the ratio is under or equal to 1/4 """
        self.userPkmn.battleDelegate.stats[self.stat] = self.lvl * 4
        self.targetPkmn.battleDelegate.stats[self.stat] = self.lvl
        index = self.delegate.getIndex(self.user, self.target)

        assert index == 3, "Index should be 3"
コード例 #3
0
class getIndex(unittest.TestCase):
    """ Test that the correct index is returned """
    def setUp(self):
        """ Setup the attack and Pokemon to use the attack """
        self.user = BuildPokemonBattleWrapper()
        self.target = BuildPokemonBattleWrapper()

        self.userPkmn = self.user.pkmn
        self.targetPkmn = self.target.pkmn

        self.stat = "SPD"
        self.delegate = StatRatioFixedDelegate(None, 1, self.stat)
        self.lvl = 50

    def overHalf(self):
        """ Test the power is corretc when the ratio is over 1/2 """
        self.userPkmn.battleDelegate.stats[self.stat] = self.lvl * 2
        self.targetPkmn.battleDelegate.stats[self.stat] = self.lvl + 1
        index = self.delegate.getIndex(self.user, self.target)

        assert index == 0, "Index should be 0"

    def overThird(self):
        """ Test the power is correct when the ratio is over 1/3 """
        self.userPkmn.battleDelegate.stats[self.stat] = self.lvl * 3
        self.targetPkmn.battleDelegate.stats[self.stat] = self.lvl + 1
        index = self.delegate.getIndex(self.user, self.target)

        assert index == 1, "Index should be 1"

    def overFourth(self):
        """ Test the power is correct when the ratio is over 1/4 """
        self.userPkmn.battleDelegate.stats[self.stat] = self.lvl * 4
        self.targetPkmn.battleDelegate.stats[self.stat] = self.lvl + 1
        index = self.delegate.getIndex(self.user, self.target)

        assert index == 2, "Index should be 2"

    def otherwise(self):
        """ Test the power is correct when the ratio is under or equal to 1/4 """
        self.userPkmn.battleDelegate.stats[self.stat] = self.lvl * 4
        self.targetPkmn.battleDelegate.stats[self.stat] = self.lvl
        index = self.delegate.getIndex(self.user, self.target)

        assert index == 3, "Index should be 3"
コード例 #4
0
    def setUp(self):
        """ Setup the attack and Pokemon to use the attack """
        self.user = BuildPokemonBattleWrapper()
        self.target = BuildPokemonBattleWrapper()

        self.userPkmn = self.user.pkmn
        self.targetPkmn = self.target.pkmn

        self.stat = "SPD"
        self.delegate = StatRatioFixedDelegate(None, 1, self.stat)
        self.lvl = 50
コード例 #5
0
    def loadFromDB(cursor, parent):
        """ Loads an attack Damage Delegate from a Database """
        type, id = DamageDelegateFactory.GetTypeAndID(cursor, parent.name)

        if type == "BOOST ON STATUS":
            power = int(element.find(Tags.powerTag).text)
            isPhysical = int(element.find(Tags.physicalTag).text)
            return BoostDamageOnStatusDelegate(parent, power, isPhysical)

        elif type == "CORE":
            parameters = ["power", "physical"]
            power, physical = GetParameters(cursor, parameters,
                                            "CoreDamageDelegate", id)
            return DamageDelegate(parent, power, physical)

        elif type == "EFFECT ON DAMAGE":
            power = int(element.find(Tags.powerTag).text)
            isPhysical = int(element.find(Tags.physicalTag).text)
            return EffectOnDamageDelegate(parent, power, isPhysical)

        elif type == "FIXED":
            isPhysical = int(element.find(Tags.physicalTag).text)
            damage = int(element.find(Tags.damageTag).text)
            return FixedDelegate(parent, damage, isPhysical)

        elif type == "HALF HEALTH":
            isPhysical = int(element.find(Tags.physicalTag).text)
            return HalfHealthDelegate(parent, isPhysical)

        elif type == "LEVEL":
            isPhysical = int(element.find(Tags.physicalTag).text)
            return LevelDelegate(parent, isPhysical)

        elif type == "NO FAINT":
            parameters = ["power", "physical"]
            power, physical = GetParameters(cursor, parameters,
                                            "NoFaintDamage", id)
            return NoFaintDelegate(parent, power, physical)

        elif type == "ONE HIT KO":
            isPhysical = int(element.find(Tags.physicalTag).text)
            return OneHitDelegate(parent, isPhysical)

        elif type == "PIERCE DODGE 2X":
            power = int(element.find(Tags.powerTag).text)
            isPhysical = int(element.find(Tags.physicalTag).text)
            pierce = element.find(Tags.pierceTag).text
            return PierceDodge2XDelegate(parent, power, isPhysical, pierce)

        elif type == "SCALE":
            power = int(element.find(Tags.powerTag).text)
            isPhysical = int(element.find(Tags.physicalTag).text)
            factor = int(element.find(Tags.factorTag).text)
            turns = int(element.find(Tags.turnsTag).text)
            return DamageScaleDelegate(parent, power, isPhysical, factor,
                                       turns)

        elif type == "STAT RATIO FIXED":
            isPhysical = int(element.find(Tags.physicalTag).text)
            stat = element.find(Tags.statTag).text
            return StatRatioFixedDelegate(parent, isPhysical, stat)

        elif type == "STAT RATIO RANGE":
            isPhysical = int(element.find(Tags.physicalTag).text)
            stat = element.find(Tags.statTag).text
            return StatRatioRangeDelegate(parent, isPhysical, stat)

        cursor.close()
コード例 #6
0
    def loadFromXML(element, parent):
        """ Builds a DamageDelegate from XML """
        delegateType = element.find(Tags.typeTag).text

        if delegateType == "BOOST ON STATUS":
            power = int(element.find(Tags.powerTag).text)
            isPhysical = int(element.find(Tags.physicalTag).text)
            return BoostDamageOnStatusDelegate(parent, power, isPhysical)

        elif delegateType == "CORE":
            power = int(element.find(Tags.powerTag).text)
            isPhysical = int(element.find(Tags.physicalTag).text)
            return DamageDelegate(parent, power, isPhysical)

        elif delegateType == "EFFECT ON DAMAGE":
            power = int(element.find(Tags.powerTag).text)
            isPhysical = int(element.find(Tags.physicalTag).text)
            return EffectOnDamageDelegate(parent, power, isPhysical)

        elif delegateType == "FIXED":
            isPhysical = int(element.find(Tags.physicalTag).text)
            damage = int(element.find(Tags.damageTag).text)
            return FixedDelegate(parent, damage, isPhysical)

        elif delegateType == "HALF HEALTH":
            isPhysical = int(element.find(Tags.physicalTag).text)
            return HalfHealthDelegate(parent, isPhysical)

        elif delegateType == "LEVEL":
            isPhysical = int(element.find(Tags.physicalTag).text)
            return LevelDelegate(parent, isPhysical)

        elif delegateType == "NO FAINT":
            power = int(element.find(Tags.powerTag).text)
            isPhysical = int(element.find(Tags.physicalTag).text)
            return NoFaintDelegate(parent, power, isPhysical)

        elif delegateType == "ONE HIT KO":
            isPhysical = int(element.find(Tags.physicalTag).text)
            return OneHitDelegate(parent, isPhysical)

        elif delegateType == "PIERCE DODGE 2X":
            power = int(element.find(Tags.powerTag).text)
            isPhysical = int(element.find(Tags.physicalTag).text)
            pierce = element.find(Tags.pierceTag).text
            return PierceDodge2XDelegate(parent, power, isPhysical, pierce)

        elif delegateType == "SCALE":
            power = int(element.find(Tags.powerTag).text)
            isPhysical = int(element.find(Tags.physicalTag).text)
            factor = int(element.find(Tags.factorTag).text)
            turns = int(element.find(Tags.turnsTag).text)
            return DamageScaleDelegate(parent, power, isPhysical, factor,
                                       turns)

        elif delegateType == "STAT RATIO FIXED":
            isPhysical = int(element.find(Tags.physicalTag).text)
            stat = element.find(Tags.statTag).text
            return StatRatioFixedDelegate(parent, isPhysical, stat)

        elif delegateType == "STAT RATIO RANGE":
            isPhysical = int(element.find(Tags.physicalTag).text)
            stat = element.find(Tags.statTag).text
            return StatRatioRangeDelegate(parent, isPhysical, stat)