Beispiel #1
0
    def test_add(self):
        damage_1 = Damage(100, 150)
        damage_2 = Damage(200, 50)
        self.assertEqual(damage_1 + damage_2, Damage(300, 200))

        damage_1 += damage_2
        self.assertEqual(damage_1, Damage(300, 200))
        self.assertEqual(damage_2, Damage(200, 50))
Beispiel #2
0
 def __init__(self, name='fake_actor', damage=None, max_health=100, context=None, level=7, mob_type=None):
     self.name = name
     self.basic_damage = damage if damage is not None else Damage(10, 10)
     self.max_health = max_health
     self.health = max_health
     self.level = level
     self.context = context if context else BattleContext()
     self.mob_type = mob_type
Beispiel #3
0
    def test_randomize(self):
        damages = set()

        damage = Damage(100, 100)

        for i in xrange(100000):
            test_damage = damage.clone()
            test_damage.randomize()
            damages.add((int(test_damage.physic), int(test_damage.magic)))

        test_damages = set()
        delta = int(100 * c.DAMAGE_DELTA)
        for physic in xrange(100 - delta, 100 + delta):
            for magic in xrange(100 - delta, 100 + delta):
                test_damages.add((physic, magic))

        self.assertEqual(damages, test_damages)
Beispiel #4
0
    def __init__(self):
        self.ability_magic_mushroom = []
        self.ability_sidestep = []
        self.stun_length = 0
        self.crit_chance = 0
        self.berserk_damage_modifier = 1.0
        self.ninja = 0
        self.damage_queue_fire = []
        self.damage_queue_poison = []
        self.initiative_queue = []

        self.first_strike = False
        self.last_chance_probability = 0

        self.incoming_magic_damage_modifier = 1.0
        self.incoming_physic_damage_modifier = 1.0

        self.outcoming_magic_damage_modifier = 1.0
        self.outcoming_physic_damage_modifier = 1.0

        self.pvp_advantage = 0
        self.pvp_advantage_used = False
        self.pvp_advantage_strike_damage = Damage(0, 0)
        self.turn = 0
Beispiel #5
0
 def use_damage_queue_poison(self, damage_queue):
     self.damage_queue_poison = [(delta if delta else Damage(0, 0)) + (queue if queue else Damage(0, 0))
                                 for queue, delta in itertools.zip_longest(self.damage_queue_poison, [None]+damage_queue)]
Beispiel #6
0
 def basic_damage(self):
     distribution = self.record.archetype.power_distribution
     raw_damage = f.expected_damage_to_hero_per_hit(
         self.level) * self.damage_modifier
     return Damage(physic=raw_damage * distribution.physic,
                   magic=raw_damage * distribution.magic)
Beispiel #7
0
    def test_mul(self):
        damage = Damage(100, 150)
        self.assertEqual(damage * 2, Damage(200, 300))

        damage *= 2
        self.assertEqual(damage, Damage(200, 300))
Beispiel #8
0
 def test_multiply(self):
     damage = Damage(100, 200)
     self.assertEqual(damage.multiply(0.5, 2), Damage(50, 400))
     self.assertEqual(damage, Damage(50, 400))
Beispiel #9
0
 def test_clone(self):
     self.assertEqual(Damage(100, 666).clone(), Damage(100, 666))
Beispiel #10
0
 def test_eq(self):
     self.assertEqual(Damage(100, 666), Damage(100, 666))
     self.assertNotEqual(Damage(101, 666), Damage(100, 666))
     self.assertNotEqual(Damage(100, 667), Damage(100, 666))
Beispiel #11
0
 def test_total(self):
     self.assertEqual(Damage(100, 666).total, 766)
Beispiel #12
0
    def test_div(self):
        damage = Damage(100, 150)
        self.assertEqual(damage / 2, Damage(50, 75))

        damage /= 2
        self.assertEqual(damage, Damage(50, 75))
Beispiel #13
0
 def use_damage_queue_poison(self, damage_queue):
     self.damage_queue_poison = map(lambda queue, delta:
                                    (delta if delta else Damage(0, 0)) +
                                    (queue if queue else Damage(0, 0)),
                                    self.damage_queue_poison,
                                    [None] + damage_queue)  # pylint: disable=W0110