Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
def test_dummy(transformer_ability: AbilityTransformer):
    # Gala Leonidas (AB1 @ Lv1 - Nothing)
    # https://dragalialost.wiki/w/Gala_Leonidas
    ability_data = transformer_ability.transform_ability(1460)

    expected_info = set()

    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)
Exemple #5
0
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_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_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_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_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)
Exemple #12
0
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)
Exemple #13
0
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_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_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_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_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_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)
Exemple #19
0
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)
Exemple #20
0
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_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_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_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_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_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_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)
Exemple #27
0
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_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_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_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)