def test_atk_up_by_dragons_claws(transformer_ability: AbilityTransformer): # Gala Mym - 10550101 # https://dragalialost.wiki/w/Gala_Mym ex_ability_data = transformer_ability.transform_chained_ex_ability( 400000012) expected_info = { AbilityEffectInfo( 400000012, ConditionComposite( [Condition.TARGET_FLAME, Condition.SELF_SHAPESHIFTED_1_TIME]), BuffParameter.ATK_BUFF, 0.1), AbilityEffectInfo( 400000012, ConditionComposite( [Condition.TARGET_FLAME, Condition.SELF_SHAPESHIFTED_2_TIMES]), BuffParameter.ATK_BUFF, 0.1), AbilityEffectInfo( 400000012, ConditionComposite( [Condition.TARGET_FLAME, Condition.SELF_SHAPESHIFTED_3_TIMES]), BuffParameter.ATK_BUFF, 0.15), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test(transformer_ability: AbilityTransformer): # Veronica (AB3 @ Max - Skill prep & skill fill 5%) # https://dragalialost.wiki/w/Veronica ability_data = transformer_ability.transform_ability(721) cond_quest_start = ConditionComposite(Condition.QUEST_START) cond_skill_used = ConditionComposite(Condition.SKILL_USED_ALL) expected_info = { AbilityEffectInfo(721, cond_quest_start, BuffParameter.SP_CHARGE_PCT_S1, 1), AbilityEffectInfo(721, cond_quest_start, BuffParameter.SP_CHARGE_PCT_S2, 1), AbilityEffectInfo(721, cond_quest_start, BuffParameter.SP_CHARGE_PCT_S3, 1), AbilityEffectInfo(721, cond_quest_start, BuffParameter.SP_CHARGE_PCT_S4, 1), AbilityEffectInfo(723, cond_skill_used, BuffParameter.SP_CHARGE_PCT_S1, 0.05), AbilityEffectInfo(723, cond_skill_used, BuffParameter.SP_CHARGE_PCT_S2, 0.05), AbilityEffectInfo(723, cond_skill_used, BuffParameter.SP_CHARGE_PCT_S3, 0.05), AbilityEffectInfo(723, cond_skill_used, BuffParameter.SP_CHARGE_PCT_S4, 0.05), } check_ability_effect_unit_match(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_potent_resist_3(transformer_ability: AbilityTransformer): # Summer Cleo S2 (AB2 @ Max - Curse Res +100% & ATK +15% 10s, CD 15s) # https://dragalialost.wiki/w/Summer_Cleo ability_data = transformer_ability.transform_ability(937) expected_info = { AbilityEffectInfo(937, ConditionComposite(), BuffParameter.RESISTANCE_CURSE, 1.0, cooldown_sec=0), AbilityEffectInfo(685, ConditionComposite(Condition.ON_HIT_BY_CURSE), BuffParameter.ATK_BUFF, 0.15, cooldown_sec=15), } check_ability_effect_unit_match(ability_data.effect_units, expected_info)
def test_player_exp(transformer_ability: AbilityTransformer): # Euden (AB3 @ Lv2 - Player EXP +15%) # https://dragalialost.wiki/w/The_Prince ability_data = transformer_ability.transform_ability(110150003) expected_info = { AbilityEffectInfo(110150003, ConditionComposite(), BuffParameter.PLAYER_EXP, 0.15), } check_ability_effect_unit_match(ability_data.effect_units, expected_info)
def test_potent_resist_2(transformer_ability: AbilityTransformer): # Summer Julietta (AB2 @ Max - Stun Res +100% & ATK +15% 10s, CD 15s) # https://dragalialost.wiki/w/Marty ability_data = transformer_ability.transform_ability(678) expected_info = { AbilityEffectInfo(678, ConditionComposite(), BuffParameter.RESISTANCE_STUN, 1.0, cooldown_sec=0), AbilityEffectInfo(701, ConditionComposite(Condition.ON_HIT_BY_STUN), BuffParameter.ATK_BUFF, 0.15, cooldown_sec=15), } check_ability_effect_unit_match(ability_data.effect_units, expected_info)
def test_atk_up_on_def_buffed(transformer_ability: AbilityTransformer): # Valentine's Orion (AB1 @ Max - DEF doublebuff - ATK +15% (Buff)) # https://dragalialost.wiki/w/Valentine%27s_Orion ability_data = transformer_ability.transform_ability(210000607) expected_info = { AbilityEffectInfo(210000607, ConditionComposite(Condition.ON_BUFFED_DEF), BuffParameter.ATK_BUFF, 0.15), } check_ability_effect_unit_match(ability_data.effect_units, expected_info)
def test_resist_1(transformer_ability: AbilityTransformer): # Marty (AB3 @ Max - Stun Res +50%) # https://dragalialost.wiki/w/Marty ability_data = transformer_ability.transform_ability(110020604) expected_info = { AbilityEffectInfo(110020604, ConditionComposite(), BuffParameter.RESISTANCE_STUN, 0.5), } check_ability_effect_unit_match(ability_data.effect_units, expected_info)
def test_resist_2(transformer_ability: AbilityTransformer): # Wedding Elisanne (AB2 @ Max - Bog Res +100%) # https://dragalialost.wiki/w/Wedding_Elisanne ability_data = transformer_ability.transform_ability(110020906) expected_info = { AbilityEffectInfo(110020906, ConditionComposite(), BuffParameter.RESISTANCE_BOG, 1.0), } check_ability_effect_unit_match(ability_data.effect_units, expected_info)
def test_atk_up_gte_70_hp(transformer_ability: AbilityTransformer): # Karl (AB1 @ Max - RP +13% when HP = 100%) # https://dragalialost.wiki/w/Karl ability_data = transformer_ability.transform_ability(719) expected_info = { AbilityEffectInfo(719, ConditionComposite(Condition.SELF_HP_GTE_70), BuffParameter.ATK_PASSIVE, 0.15), } check_ability_effect_unit_match(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_sp_rate_up(transformer_ability: AbilityTransformer): # Marty (AB1 @ Max - SP Rate +10%) # https://dragalialost.wiki/w/Marty ability_data = transformer_ability.transform_ability(938) expected_info = { AbilityEffectInfo(938, ConditionComposite(), BuffParameter.SP_RATE, 0.1), } check_ability_effect_unit_match(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_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_atk_up_full_hp(transformer_ability: AbilityTransformer): # Yukata Cassandra (AB1 @ Max - ATK +20% when HP = 100%) # https://dragalialost.wiki/w/Yukata_Cassandra ability_data = transformer_ability.transform_ability(210000307) expected_info = { AbilityEffectInfo(210000307, ConditionComposite(Condition.SELF_HP_FULL), BuffParameter.ATK_PASSIVE, 0.2), } check_ability_effect_unit_match(ability_data.effect_units, expected_info)
def test_atk_up_shapeshifted(transformer_ability: AbilityTransformer): # Euden (AB1 @ Max - ATK +10%/+15%/+15% for each transform) # https://dragalialost.wiki/w/The_Prince ability_data = transformer_ability.transform_ability(700) expected_info = { AbilityEffectInfo( 700, ConditionComposite(Condition.SELF_SHAPESHIFTED_1_TIME), BuffParameter.ATK_BUFF, 0.1 ), AbilityEffectInfo( 700, ConditionComposite(Condition.SELF_SHAPESHIFTED_2_TIMES), BuffParameter.ATK_BUFF, 0.15 ), AbilityEffectInfo( 700, ConditionComposite(Condition.SELF_SHAPESHIFTED_3_TIMES), BuffParameter.ATK_BUFF, 0.15 ), } check_ability_effect_unit_match(ability_data.effect_units, expected_info)
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_def_up_on_lt_30_hp(transformer_ability: AbilityTransformer): # Raemond (AB1 @ Max - DEF +50% for 15s when HP < 30%) # https://dragalialost.wiki/w/Karl ability_data = transformer_ability.transform_ability(210001704) expected_info = { AbilityEffectInfo( 210001704, ConditionComposite(Condition.ON_HP_LT_30), BuffParameter.DEF_BUFF, 0.5, max_occurrences=1 ), } check_ability_effect_unit_match(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_chained_ex_ability(400000817) expected_info = { AbilityEffectInfo( 400000817, ConditionComposite([Condition.TARGET_FLAME]), BuffParameter.DRAGON_TIME, 0.2 ), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_valentines_chelsea(transformer_ability: AbilityTransformer): # Valentine's Chelsea - 10650304 # https://dragalialost.wiki/w/Valentine%27s_Chelsea ex_ability_data = transformer_ability.transform_chained_ex_ability(400000873) expected_info = { AbilityEffectInfo( 400000873, ConditionComposite([Condition.TARGET_WIND, Condition.ON_HIT_BY_ANY_AFFLICTION]), BuffParameter.SHIELD_SINGLE_DMG, 0.25, duration_count=1, cooldown_sec=20, ), } 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_chained_ex_ability(400000868) expected_info = { AbilityEffectInfo( 400000868, ConditionComposite([Condition.TARGET_LIGHT]), BuffParameter.RP_UP, 0.2 ), } 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_chained_ex_ability(400000863) expected_info = { AbilityEffectInfo( 400000863, ConditionComposite([Condition.TARGET_SHADOW, Condition.ON_COMBO_GTE_10]), BuffParameter.RESISTANCE_LIGHT_BUFF, 0.1 ), } check_ability_effect_unit_match(ex_ability_data.effect_units, expected_info)
def test_mona(transformer_ability: AbilityTransformer): # Mona - 10150304 # https://dragalialost.wiki/w/Mona ex_ability_data = transformer_ability.transform_chained_ex_ability(400000879) expected_info = { AbilityEffectInfo( 400000879, ConditionComposite([Condition.TARGET_WIND, Condition.ON_COMBO_GTE_10]), BuffParameter.RESISTANCE_WATER_BUFF, 0.1 ), } 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_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_combo_time_extend(transformer_ability: AbilityTransformer): # Nobunaga - 10250103 # https://dragalialost.wiki/w/Nobunaga ex_ability_data = transformer_ability.transform_chained_ex_ability( 400000708) expected_info = { AbilityEffectInfo(400000708, ConditionComposite(Condition.TARGET_FLAME), BuffParameter.COMBO_TIME, 2.5), } 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_infliction_rate_up(transformer_ability: AbilityTransformer): # Delphi - 10350502 # https://dragalialost.wiki/w/Delphi ex_ability_data = transformer_ability.transform_chained_ex_ability( 400000627) expected_info = { # The effect of clearing the action condition when the combo counter resets is omitted AbilityEffectInfo(400000627, ConditionComposite([Condition.TARGET_SHADOW]), BuffParameter.INFLICT_PROB_POISON, 0.5), } 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_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)