def test_mona(transformer_ability: AbilityTransformer): # Mona - 10150304 # https://dragalialost.wiki/w/Mona ex_ability_data = transformer_ability.transform_ex_ability(157570005) expected_info = { AbilityEffectInfo( 157570005, ConditionComposite(), BuffParameter.WIND_ELEM_DMG_UP, 0.2, max_occurrences=1 ), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_joker(transformer_ability: AbilityTransformer): # Joker - 10350505 # https://dragalialost.wiki/w/Joker ex_ability_data = transformer_ability.transform_ex_ability(101100007) expected_info = { AbilityEffectInfo( 101100007, ConditionComposite(), BuffParameter.ASPD_PASSIVE, 0.07 ), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_sophie(transformer_ability: AbilityTransformer): # Sophie - 10450404 # https://dragalialost.wiki/w/Sophie ex_ability_data = transformer_ability.transform_ex_ability(157570413) expected_info = { AbilityEffectInfo( 157570413, ConditionComposite(), BuffParameter.LIGHT_ELEM_DMG_UP, 0.15 ), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_fs_dmg_up(transformer_ability: AbilityTransformer): # Grace - 10850503 # https://dragalialost.wiki/w/Grace ex_ability_data = transformer_ability.transform_ex_ability(106000016) expected_info = { AbilityEffectInfo(106000016, ConditionComposite(), BuffParameter.FS_DAMAGE_PASSIVE, 0.2, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_auto_dmg_up(transformer_ability: AbilityTransformer): # Gala Laxi - 10350102 # https://dragalialost.wiki/w/Gala_Laxi ex_ability_data = transformer_ability.transform_ex_ability(106070008) expected_info = { AbilityEffectInfo(106070008, ConditionComposite(), BuffParameter.AUTO_DAMAGE, 0.2, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_paralyzed_punisher(transformer_ability: AbilityTransformer): # Sharena - 10550404 # https://dragalialost.wiki/w/Sharena ex_ability_data = transformer_ability.transform_ex_ability(120040008) expected_info = { AbilityEffectInfo(120040008, ConditionComposite(), BuffParameter.PARALYZED_PUNISHER, 0.08, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_debuffed_punisher(transformer_ability: AbilityTransformer): # Gala Leif - 10150303 # https://dragalialost.wiki/w/Gala_Leif ex_ability_data = transformer_ability.transform_ex_ability(106080008) expected_info = { AbilityEffectInfo(106080008, ConditionComposite(Condition.TARGET_ATK_OR_DEF_DOWN), BuffParameter.ATK_OR_DEF_DOWN_PUNISHER, 0.08, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_buff_time(transformer_ability: AbilityTransformer): # Tobias # https://dragalialost.wiki/w/Tobias ex_ability_data = transformer_ability.transform_ex_ability(118000008) expected_info = { AbilityEffectInfo(118000008, ConditionComposite(), BuffParameter.TARGETED_BUFF_TIME, 0.2, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_hp_on_revival(transformer_ability: AbilityTransformer): # Kimono Elisanne - 10550103 # https://dragalialost.wiki/w/Kimono_Elisanne ex_ability_data = transformer_ability.transform_ex_ability(166000008) expected_info = { AbilityEffectInfo(166000008, ConditionComposite(Condition.ON_REVIVED), BuffParameter.HEAL_INSTANT_HP, 0.3, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_crt_dmg_up(transformer_ability: AbilityTransformer): # Halloween Mym - 10450102 # https://dragalialost.wiki/w/Halloween_Mym ex_ability_data = transformer_ability.transform_ex_ability(126000008) expected_info = { AbilityEffectInfo(126000008, ConditionComposite(), BuffParameter.CRT_DAMAGE_PASSIVE, 0.3, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_bow(transformer_ability: AbilityTransformer): # Meene - 10650303 # https://dragalialost.wiki/w/Meene ex_ability_data = transformer_ability.transform_ex_ability(101040010) expected_info = { AbilityEffectInfo(101040010, ConditionComposite(), BuffParameter.SP_RATE, 0.15, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_light_dmg_up(transformer_ability: AbilityTransformer): # Peony - 10750402 # https://dragalialost.wiki/w/Peony ex_ability_data = transformer_ability.transform_ex_ability(157570408) expected_info = { AbilityEffectInfo(157570408, ConditionComposite(), BuffParameter.LIGHT_ELEM_DMG_UP, 0.2, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_axe(transformer_ability: AbilityTransformer): # Ramona - 10450101 # https://dragalialost.wiki/w/Ramona ex_ability_data = transformer_ability.transform_ex_ability(101030010) expected_info = { AbilityEffectInfo(101030010, ConditionComposite(), BuffParameter.DEF_PASSIVE, 0.15, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_lance(transformer_ability: AbilityTransformer): # Gala Mym - 10550101 # https://dragalialost.wiki/w/Gala_Mym ex_ability_data = transformer_ability.transform_ex_ability(101010010) expected_info = { AbilityEffectInfo(101010010, ConditionComposite(), BuffParameter.HP_RAISE_BY_MAX, 0.15, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_dagger(transformer_ability: AbilityTransformer): # Renee - 10340203 # https://dragalialost.wiki/w/Renee ex_ability_data = transformer_ability.transform_ex_ability(103000010) expected_info = { AbilityEffectInfo(103000010, ConditionComposite(), BuffParameter.CRT_RATE_PASSIVE, 0.1, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_sword(transformer_ability: AbilityTransformer): # Wedding Elisanne - 10150302 # https://dragalialost.wiki/w/Wedding_Elisanne ex_ability_data = transformer_ability.transform_ex_ability(101050010) expected_info = { AbilityEffectInfo(101050010, ConditionComposite(), BuffParameter.DP_RATE, 0.15, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_manacaster(transformer_ability: AbilityTransformer): # Ilia - 10950401 # https://dragalialost.wiki/w/Ilia ex_ability_data = transformer_ability.transform_ex_ability(109000009) expected_info = { AbilityEffectInfo(109000009, ConditionComposite(), BuffParameter.OD_GAUGE_DAMAGE, 0.2, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_blade(transformer_ability: AbilityTransformer): # Nobunaga - 10250103 # https://dragalialost.wiki/w/Nobunaga ex_ability_data = transformer_ability.transform_ex_ability(101020010) expected_info = { AbilityEffectInfo(101020010, ConditionComposite(), BuffParameter.ATK_EX, 0.1, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_wand(transformer_ability: AbilityTransformer): # Veronica - 10750501 # https://dragalialost.wiki/w/Veronica ex_ability_data = transformer_ability.transform_ex_ability(102000010) expected_info = { AbilityEffectInfo(102000010, ConditionComposite(), BuffParameter.SKILL_DAMAGE_PASSIVE, 0.15, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_staff(transformer_ability: AbilityTransformer): # Aurien - 10830101 # https://dragalialost.wiki/w/Aurien ex_ability_data = transformer_ability.transform_ex_ability(104000010) expected_info = { AbilityEffectInfo(104000010, ConditionComposite(), BuffParameter.RP_UP, 0.2, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_panther(transformer_ability: AbilityTransformer): # Panther - 10550104 # https://dragalialost.wiki/w/Panther ex_ability_data = transformer_ability.transform_ex_ability(103150005) expected_info = { AbilityEffectInfo( 103150005, ConditionComposite(), BuffParameter.INFLICT_PROB_SCORCHREND, 0.2 ), AbilityEffectInfo( 103150005, ConditionComposite(), BuffParameter.DURATION_EXT_SCORCHREND, 0.2 ), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_shapeshifting_boost(transformer_ability: AbilityTransformer): # Gala Euden - 10150403 # https://dragalialost.wiki/w/Gala_Euden ex_ability_data = transformer_ability.transform_ex_ability(136000008) expected_info = { AbilityEffectInfo(136000008, ConditionComposite(), BuffParameter.DRAGON_DAMAGE, 0.1, max_occurrences=1), AbilityEffectInfo(136000008, ConditionComposite(), BuffParameter.DRAGON_TIME, 0.2, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_hp_and_def(transformer_ability: AbilityTransformer): # Chrom - 10150105 # https://dragalialost.wiki/w/Chrom ex_ability_data = transformer_ability.transform_ex_ability(101060010) expected_info = { AbilityEffectInfo(101060010, ConditionComposite(), BuffParameter.DEF_PASSIVE, 0.1, max_occurrences=1), AbilityEffectInfo(101060010, ConditionComposite(), BuffParameter.HP_RAISE_BY_MAX, 0.1, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_od_punisher(transformer_ability: AbilityTransformer): # Seimei - 10750104 # https://dragalialost.wiki/w/Seimei ex_ability_data = transformer_ability.transform_ex_ability(106000008) expected_info = { AbilityEffectInfo(106000008, ConditionComposite(Condition.TARGET_OD_STATE), BuffParameter.OD_GAUGE_DAMAGE, 0.10, max_occurrences=1), AbilityEffectInfo(106000008, ConditionComposite(Condition.TARGET_OD_STATE), BuffParameter.OD_STATE_PUNISHER, 0.15, max_occurrences=1), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_transform_all_character_ex(transformer_ability: AbilityTransformer, asset_manager: AssetManager): unknown_abilities = UnknownAbilityDataCollection() counter: int = 0 # Not checking all abilities in the ability asset directly # because there are some unused or deprecated ability inside. # We don't want to spend time handling unused things. for chara_data in asset_manager.asset_chara_data.playable_data: ex_id = chara_data.ex_id_at_max_level counter += 1 try: ex_ability_data = transformer_ability.transform_ex_ability(ex_id) unknown_abilities.add_data_if_needed(chara_data, ex_id, ex_ability_data, check_effective_for_team=True) except (AbilityConditionUnconvertibleError, AbilityVariantUnconvertibleError) as ex: # Condition/Variant unconvertible (most likely due to unknown/unhandled condition/variant) ex_ability_data = asset_manager.asset_ex_ability.get_data_by_id( ex_id) condition_ids = ({ ex_id: ex_ability_data.condition.condition_code } if ex_ability_data.condition.is_unknown_condition else {}) unknown_abilities.add_data( UnknownAbilityData(chara_id=chara_data.id, ability_id=ex_id, condition_ids=condition_ids, variant_ids={ ex_id: ex_ability_data.unknown_variant_type_ids }, error=ex)) unknown_abilities.print_and_fail_if_any(counter)