def test_artifacts_for_type(self): self.assertEqual( set([ a.uuid for a in artifacts_storage.artifacts_for_type([ relations.ARTIFACT_TYPE.HELMET, relations.ARTIFACT_TYPE.BOOTS ]) ]), set(['helmet_1', 'boots_1', 'default_boots'])) self.assertEqual( set([ a.uuid for a in artifacts_storage.artifacts_for_type( [relations.ARTIFACT_TYPE.PLATE]) ]), set(['plate_1', 'default_plate']))
def test_disabled_artifacts(self): loot = ArtifactRecordPrototype.create_random( 'disabled_loot', type_=relations.ARTIFACT_TYPE.USELESS, state=relations.ARTIFACT_RECORD_STATE.DISABLED) artifact = ArtifactRecordPrototype.create_random( 'disabled_artifact', type_=relations.ARTIFACT_TYPE.HELMET, state=relations.ARTIFACT_RECORD_STATE.DISABLED) self.assertFalse( set(['disabled_loot', 'disabled_artifact']) & set(a.uuid for a in artifacts_storage.artifacts)) self.assertFalse( set(['disabled_loot', 'disabled_artifact']) & set(a.uuid for a in artifacts_storage.loot)) self.assertFalse( set(['disabled_loot', 'disabled_artifact']) & set( artifacts_storage.artifacts_for_type([ relations.ARTIFACT_TYPE.USELESS, relations.ARTIFACT_TYPE.HELMET ]))) self.assertEqual( artifacts_storage.generate_artifact_from_list( [loot, artifact], level=1, rarity=relations.RARITY.NORMAL), None)
def test_artifacts_for_type(self): self.assertEqual( set( [ a.uuid for a in artifacts_storage.artifacts_for_type( [relations.ARTIFACT_TYPE.HELMET, relations.ARTIFACT_TYPE.BOOTS] ) ] ), set(["helmet_1", "boots_1", "default_boots"]), ) self.assertEqual( set([a.uuid for a in artifacts_storage.artifacts_for_type([relations.ARTIFACT_TYPE.PLATE])]), set(["plate_1", "default_plate"]), )
def test_get_equip_candidates__ignore_favorite_item_slot(self): self.assertTrue(self.hero.bag.is_empty) self.assertTrue( self.hero.equipment.get(relations.EQUIPMENT_SLOT.HAND_PRIMARY)) self.assertEqual(self.hero.preferences.favorite_item, None) old_artifact = self.hero.equipment.get( relations.EQUIPMENT_SLOT.HAND_PRIMARY) artifact = artifacts_storage.generate_artifact_from_list( artifacts_storage.artifacts_for_type( [relations.EQUIPMENT_SLOT.HAND_PRIMARY.artifact_type]), self.hero.level, rarity=artifacts_relations.RARITY.NORMAL) artifact.power = old_artifact.power + Power(1, 1) self.hero.bag.put_artifact(artifact) slot, unequipped, equipped = self.hero.get_equip_candidates() self.assertEqual(slot, relations.EQUIPMENT_SLOT.HAND_PRIMARY) self.assertEqual(unequipped, old_artifact) self.assertEqual(equipped, artifact) self.hero.preferences.set_favorite_item( relations.EQUIPMENT_SLOT.HAND_PRIMARY) slot, unequipped, equipped = self.hero.get_equip_candidates() self.assertEqual(slot, None) self.assertEqual(unequipped, None) self.assertEqual(equipped, None)
def get_allowed_artifact_types(self, slots, archetype): return [ artifact for artifact in artifacts_storage.artifacts_for_type( types=[slot.artifact_type for slot in slots]) if ((artifact.level <= self.level) and ( not archetype or (artifact.power_type in self.preferences. archetype.allowed_power_types))) ]
def test_disabled_artifacts(self): loot = ArtifactRecordPrototype.create_random('disabled_loot', type_=relations.ARTIFACT_TYPE.USELESS, state=relations.ARTIFACT_RECORD_STATE.DISABLED) artifact = ArtifactRecordPrototype.create_random('disabled_artifact', type_=relations.ARTIFACT_TYPE.HELMET, state=relations.ARTIFACT_RECORD_STATE.DISABLED) self.assertFalse(set(['disabled_loot', 'disabled_artifact']) & set(a.uuid for a in artifacts_storage.artifacts)) self.assertFalse(set(['disabled_loot', 'disabled_artifact']) & set(a.uuid for a in artifacts_storage.loot)) self.assertFalse(set(['disabled_loot', 'disabled_artifact']) & set(artifacts_storage.artifacts_for_type([relations.ARTIFACT_TYPE.USELESS, relations.ARTIFACT_TYPE.HELMET]))) self.assertEqual(artifacts_storage.generate_artifact_from_list([loot, artifact], level=1, rarity=relations.RARITY.NORMAL), None)
def test_get_equip_candidates__worst_integrity(self): self.assertTrue(self.hero.bag.is_empty) self.assertTrue(self.hero.equipment.get(relations.EQUIPMENT_SLOT.HAND_PRIMARY)) old_artifact = self.hero.equipment.get(relations.EQUIPMENT_SLOT.HAND_PRIMARY) artifact = artifacts_storage.generate_artifact_from_list(artifacts_storage.artifacts_for_type([relations.EQUIPMENT_SLOT.HAND_PRIMARY.artifact_type]), self.hero.level, rarity=artifacts_relations.RARITY.NORMAL) artifact.power = old_artifact.power artifact.integrity = old_artifact.integrity - 1 self.hero.bag.put_artifact(artifact) slot, unequipped, equipped = self.hero.get_equip_candidates() self.assertEqual(slot, None) self.assertEqual(unequipped, None) self.assertEqual(equipped, None)
def test_get_equip_candidates__worst_integrity(self): self.assertTrue(self.hero.bag.is_empty) self.assertTrue(self.hero.equipment.get(relations.EQUIPMENT_SLOT.HAND_PRIMARY)) old_artifact = self.hero.equipment.get(relations.EQUIPMENT_SLOT.HAND_PRIMARY) artifact = artifacts_storage.generate_artifact_from_list(artifacts_storage.artifacts_for_type([relations.EQUIPMENT_SLOT.HAND_PRIMARY.artifact_type]), self.hero.level, rarity=artifacts_relations.RARITY.NORMAL) artifact.power = old_artifact.power artifact.integrity = old_artifact.integrity - 1 self.hero.bag.put_artifact(artifact) slot, unequipped, equipped = self.hero.get_equip_candidates() self.assertEqual(slot, None) self.assertEqual(unequipped, None) self.assertEqual(equipped, None)
def test_get_equip_candidates__ignore_favorite_item_slot(self): self.assertTrue(self.hero.bag.is_empty) self.assertTrue(self.hero.equipment.get(relations.EQUIPMENT_SLOT.HAND_PRIMARY)) self.assertEqual(self.hero.preferences.favorite_item, None) old_artifact = self.hero.equipment.get(relations.EQUIPMENT_SLOT.HAND_PRIMARY) artifact = artifacts_storage.generate_artifact_from_list(artifacts_storage.artifacts_for_type([relations.EQUIPMENT_SLOT.HAND_PRIMARY.artifact_type]), self.hero.level, rarity=artifacts_relations.RARITY.NORMAL) artifact.power = old_artifact.power + Power(1, 1) self.hero.bag.put_artifact(artifact) slot, unequipped, equipped = self.hero.get_equip_candidates() self.assertEqual(slot, relations.EQUIPMENT_SLOT.HAND_PRIMARY) self.assertEqual(unequipped, old_artifact) self.assertEqual(equipped, artifact) self.hero.preferences.set_favorite_item(relations.EQUIPMENT_SLOT.HAND_PRIMARY) slot, unequipped, equipped = self.hero.get_equip_candidates() self.assertEqual(slot, None) self.assertEqual(unequipped, None) self.assertEqual(equipped, None)
def get_allowed_artifact_types(self, slots, archetype): return [artifact for artifact in artifacts_storage.artifacts_for_type(types=[slot.artifact_type for slot in slots]) if ((artifact.level <= self.level) and ( not archetype or (artifact.power_type in self.preferences.archetype.allowed_power_types)))]
def test_artifacts_for_type(self): self.assertEqual(set([ a.uuid for a in artifacts_storage.artifacts_for_type([relations.ARTIFACT_TYPE.HELMET, relations.ARTIFACT_TYPE.BOOTS])]), set(['helmet_1', 'boots_1', 'default_boots'])) self.assertEqual(set([ a.uuid for a in artifacts_storage.artifacts_for_type([relations.ARTIFACT_TYPE.PLATE])]), set(['plate_1', 'default_plate']))