コード例 #1
0
    def test_damage_queue_poison(self):
        self.assertEqual(self.context.poison_damage, None)
        self.context.use_damage_queue_poison([Damage(0, 0)])
        self.assertEqual(self.context.poison_damage, None)

        self.context.use_damage_queue_poison([Damage(5, 5), Damage(5, 5), Damage(5, 5)])
        self.assertEqual(self.context.damage_queue_poison, [Damage(0, 0), Damage(5, 5), Damage(5, 5), Damage(5, 5)])
        self.context.on_own_turn()
        self.assertEqual(self.context.damage_queue_poison, [Damage(5, 5), Damage(5, 5), Damage(5, 5)])
        self.assertEqual(self.context.poison_damage, Damage(5, 5))

        self.context.use_damage_queue_poison([Damage(10, 10), Damage(5, 5), Damage(5, 5)])
        self.context.on_own_turn()
        self.assertEqual(self.context.damage_queue_poison, [Damage(15, 15), Damage(10, 10), Damage(5, 5)])
        self.assertEqual(self.context.poison_damage, Damage(15, 15))

        self.context.on_own_turn()
        self.assertEqual(self.context.damage_queue_poison, [Damage(10, 10), Damage(5, 5)])
        self.assertEqual(self.context.poison_damage, Damage(10, 10))

        self.context.use_damage_queue_poison([Damage(1, 1), Damage(1, 1), Damage(1, 1), Damage(1, 1)])
        self.assertEqual(self.context.damage_queue_poison, [Damage(10, 10), Damage(6, 6), Damage(1, 1), Damage(1, 1), Damage(1, 1)])
        self.context.on_own_turn()
        self.assertEqual(self.context.damage_queue_poison, [Damage(6, 6), Damage(1, 1), Damage(1, 1), Damage(1, 1)])
        self.assertEqual(self.context.poison_damage, Damage(6, 6))

        self.assertEqual(self.context.serialize(), BattleContext.deserialize(self.context.serialize()).serialize())
コード例 #2
0
    def test_modify_outcoming_damage(self):
        self.assertEqual(self.context.modify_outcoming_damage(Damage(10, 11)).total, 21)
        self.assertEqual(self.context.modify_outcoming_damage(Damage(10.4, 11.4)).total, 22)
        self.assertEqual(self.context.modify_outcoming_damage(Damage(10.5, 11.5)).total, 22)
        self.assertEqual(self.context.modify_outcoming_damage(Damage(10.8, 11.8)).total, 23)

        # advantage_modifier
        self.context.use_pvp_advantage(0.75)
        self.assertEqual(self.context.modify_outcoming_damage(Damage(20, 10)),
                         Damage(20*(1+c.DAMAGE_PVP_ADVANTAGE_MODIFIER*0.75), 10*(1+c.DAMAGE_PVP_ADVANTAGE_MODIFIER*0.75)))
        self.assertFalse(self.context.pvp_advantage_used)

        self.context.use_pvp_advantage(-0.75)
        self.assertEqual(self.context.modify_outcoming_damage(Damage(20, 10)), Damage(20, 10))
        self.assertFalse(self.context.pvp_advantage_used)

        self.assertEqual(self.context.serialize(), BattleContext.deserialize(self.context.serialize()).serialize())