예제 #1
0
    def test_damage_integrity__damage_from_artifact_power(self):
        expected_artifact_power = Power.normal_power_to_level(self.hero.level)

        new_artifact = artifacts_storage.artifacts.generate_artifact_from_list(
            artifacts_storage.artifacts.artifacts,
            self.hero.level,
            rarity=artifacts_relations.RARITY.NORMAL)
        new_artifact.power = Power(expected_artifact_power / 2,
                                   expected_artifact_power / 2)

        self.hero.equipment.unequip(new_artifact.type.equipment_slot)
        self.hero.equipment.equip(new_artifact.type.equipment_slot,
                                  new_artifact)

        old_integrity = new_artifact.integrity

        self.hero.damage_integrity()

        not_modified_integrity = new_artifact.integrity

        new_artifact.power = Power(expected_artifact_power,
                                   expected_artifact_power)

        self.hero.damage_integrity()

        modified_integrity = new_artifact.integrity

        self.assertTrue(
            old_integrity - not_modified_integrity < not_modified_integrity -
            modified_integrity)
예제 #2
0
    def damage_integrity(self):
        if random.random() < self.safe_artifact_integrity_probability:
            return

        expected_artifact_power = Power.normal_power_to_level(self.level)

        for artifact in self.equipment.values():
            delta = c.ARTIFACT_INTEGRITY_DAMAGE_PER_BATTLE * (float(artifact.power.total()) / expected_artifact_power)**2

            if self.preferences.favorite_item is not None and self.preferences.favorite_item == artifact.type.equipment_slot:
                delta *= c.ARTIFACT_INTEGRITY_DAMAGE_FOR_FAVORITE_ITEM

            artifact.damage_integrity(delta)
예제 #3
0
    def test_damage_integrity__damage_from_artifact_power(self):
        expected_artifact_power = Power.normal_power_to_level(self.hero.level)

        new_artifact = artifacts_storage.generate_artifact_from_list(artifacts_storage.artifacts, self.hero.level, rarity=artifacts_relations.RARITY.NORMAL)
        new_artifact.power = Power(expected_artifact_power / 2, expected_artifact_power / 2)

        self.hero.equipment.unequip(new_artifact.type.equipment_slot)
        self.hero.equipment.equip(new_artifact.type.equipment_slot, new_artifact)

        old_integrity = new_artifact.integrity

        self.hero.damage_integrity()

        not_modified_integrity = new_artifact.integrity

        new_artifact.power = Power(expected_artifact_power, expected_artifact_power)

        self.hero.damage_integrity()

        modified_integrity = new_artifact.integrity

        self.assertTrue(old_integrity - not_modified_integrity < not_modified_integrity - modified_integrity)