def test_default_normal_attack_long(
        transformer_atk: AttackingActionTransformer):
    # Manacaster (900000 - Long)
    data = transformer_atk.transform_normal_attack_or_fs(
        900000).with_condition()

    combo_1 = data[0]
    assert combo_1.mods == pytest.approx([0.67] * 5)
    assert combo_1.sp_gain == 545
    assert combo_1.utp_gain == 0
    assert combo_1.od_rate == [1.0] * 5

    combo_2 = data[1]
    assert combo_2.mods == pytest.approx([0.67] * 5)
    assert combo_2.sp_gain == 545
    assert combo_2.utp_gain == 0
    assert combo_2.od_rate == [1.0] * 5
def test_default_normal_attack_close(
        transformer_atk: AttackingActionTransformer):
    # Manacaster (900100 - Close)
    normal_attack_data = transformer_atk.transform_normal_attack_or_fs(
        900100).with_condition()

    combo_1 = normal_attack_data[0]
    assert combo_1.mods == pytest.approx([0.48] * 8)
    assert combo_1.sp_gain == 340
    assert combo_1.utp_gain == 0
    assert combo_1.od_rate == [1.0] * 8

    combo_2 = normal_attack_data[1]
    assert combo_2.mods == pytest.approx([0.48] * 8)
    assert combo_2.sp_gain == 340
    assert combo_2.utp_gain == 0
    assert combo_2.od_rate == [1.0] * 8
Beispiel #3
0
def test_sigil_released_target_scorchrent(
        transformer_atk: AttackingActionTransformer):
    # Faris (10950102)
    # - Mode 83: Sigil Released
    # - Unique Combo 62
    # - Action ID 901000
    # -------------
    # - Sigil Locked = Mode 82 = Action ID 900000 = Same as long gun
    conditions = ConditionComposite(Condition.TARGET_SCORCHRENT)
    data = transformer_atk.transform_normal_attack_or_fs(
        901000).with_condition(conditions)

    combo_1 = data[0]
    assert combo_1.mods == pytest.approx([0.97 * 1.35] * 5)
    assert combo_1.sp_gain == 600
    assert combo_1.utp_gain == 0
    assert combo_1.od_rate == [1.0] * 5
def test_normal(transformer_atk: AttackingActionTransformer):
    # Gala Zethia (10250504)
    # - Mode 115: Normal
    # - Unique Combo 72
    # - Action ID 202900
    # - Not summoned
    conditions = ConditionComposite(Condition.MODE_0)
    data = transformer_atk.transform_normal_attack_or_fs(202900).with_condition(conditions)

    assert data[0].mods == pytest.approx([0.59])
    assert data[1].mods == pytest.approx([0.34] * 2)
    assert data[2].mods == pytest.approx([0.49] * 3)
    assert data[3].mods == pytest.approx([0.67] * 5)
    assert data[4].mods == pytest.approx([1.04] * 3)
    assert data[5].mods == pytest.approx([1.14] * 2)
    assert data[6].mods == pytest.approx([0.88] * 3)
    assert data[7].mods == pytest.approx([1.44] * 3)
    assert data[8].mods == pytest.approx([0.95] * 6 + [1.89] * 2)
Beispiel #5
0
def test_dragondrive(transformer_atk: AttackingActionTransformer):
    # Summer Mym (10950502)
    # - Mode 100: Unique Transform
    # - Unique Combo 69
    # - Action ID 901300
    conditions = ConditionComposite(Condition.SELF_SMYM_COMBO_NOT_BOOSTED)
    data = transformer_atk.transform_normal_attack_or_fs(
        901300).with_condition(conditions)

    combo_1 = data[0]
    assert combo_1.mods == pytest.approx([0.66, 1.49])
    assert combo_1.sp_gain == 480
    assert combo_1.utp_gain == 150
    assert combo_1.od_rate == [1.0, 1.0]

    combo_2 = data[1]
    assert combo_2.mods == pytest.approx([0.66, 1.49])
    assert combo_2.sp_gain == 480
    assert combo_2.utp_gain == 150
    assert combo_2.od_rate == [1.0, 1.0]
Beispiel #6
0
def test_normal_attack(transformer_atk: AttackingActionTransformer):
    # Tiki in Divine Dragon (10350203 - 29900006)
    # - Normal Attack AID: 10093140
    conditions = ConditionComposite()
    data = transformer_atk.transform_normal_attack_or_fs(10093140).with_condition(conditions)

    combo_1 = data[0]
    assert combo_1.mods == pytest.approx([3.17])
    assert combo_1.sp_gain == 290
    assert combo_1.utp_gain == 0
    assert combo_1.od_rate == [1.0]

    combo_2 = data[1]
    assert combo_2.mods == pytest.approx([3.78])
    assert combo_2.sp_gain == 350
    assert combo_2.utp_gain == 0
    assert combo_2.od_rate == [1.0]

    combo_3 = data[2]
    assert combo_3.mods == pytest.approx([5.37])
    assert combo_3.sp_gain == 520
    assert combo_3.utp_gain == 0
    assert combo_3.od_rate == [1.0]
def test_default_normal_attack_rapid(
        transformer_atk: AttackingActionTransformer):
    # Manacaster (900200 - Rapid)
    normal_attack_data = transformer_atk.transform_normal_attack_or_fs(
        900200).with_condition()

    combo_1 = normal_attack_data[0]
    assert combo_1.mods == pytest.approx([0.45] * 3)
    assert combo_1.sp_gain == 200
    assert combo_1.utp_gain == 0
    assert combo_1.od_rate == [1.0] * 3

    combo_2 = normal_attack_data[1]
    assert combo_2.mods == pytest.approx([0.60] * 3)
    assert combo_2.sp_gain == 200
    assert combo_2.utp_gain == 0
    assert combo_2.od_rate == [1.0] * 3

    combo_3 = normal_attack_data[2]
    assert combo_3.mods == pytest.approx([0.60] * 5)
    assert combo_3.sp_gain == 200
    assert combo_3.utp_gain == 0
    assert combo_3.od_rate == [1.0] * 5
def test_dragondrive(transformer_atk: AttackingActionTransformer):
    # Nino (10150305)
    # - Mode 95: Unique Transform
    # - Unique Combo 67
    # - Action ID 101100
    data = transformer_atk.transform_normal_attack_or_fs(
        101100).with_condition()

    combo_1 = data[0]
    assert combo_1.mods == pytest.approx([0.15, 0.9])
    assert combo_1.sp_gain == 150
    assert combo_1.utp_gain == 45
    assert combo_1.od_rate == [1.0, 1.0]

    combo_2 = data[1]
    assert combo_2.mods == pytest.approx([0.15, 0.96])
    assert combo_2.sp_gain == 150
    assert combo_2.utp_gain == 45
    assert combo_2.od_rate == [1.0, 1.0]

    combo_3 = data[2]
    assert combo_3.mods == pytest.approx([0.15, 1.14])
    assert combo_3.sp_gain == 196
    assert combo_3.utp_gain == 85
    assert combo_3.od_rate == [1.0, 1.0]

    combo_4 = data[3]
    assert combo_4.mods == pytest.approx([0.15, 0.15, 1.2])
    assert combo_4.sp_gain == 265
    assert combo_4.utp_gain == 180
    assert combo_4.od_rate == [1.0, 1.0, 1.0]

    combo_5 = data[4]
    assert combo_5.mods == pytest.approx([0.15, 0.15, 0.15, 1.8])
    assert combo_5.sp_gain == 391
    assert combo_5.utp_gain == 250
    assert combo_5.od_rate == [1.0, 1.0, 1.0, 1.0]
def test_normal_attack(transformer_atk: AttackingActionTransformer):
    # Gala Reborn Nidhogg (20050524)
    # - Normal Attack AID: 10155140
    conditions = ConditionComposite()
    data = transformer_atk.transform_normal_attack_or_fs(
        10155140).with_condition(conditions)

    combo_1 = data[0]
    assert combo_1.mods == pytest.approx([4.96])
    assert combo_1.sp_gain == 5
    assert combo_1.utp_gain == 0
    assert combo_1.od_rate == [1.0]

    combo_2 = data[1]
    assert combo_2.mods == pytest.approx([5.46])
    assert combo_2.sp_gain == 5
    assert combo_2.utp_gain == 0
    assert combo_2.od_rate == [1.0]

    combo_3 = data[2]
    assert combo_3.mods == pytest.approx([2.08, 4.86])
    assert combo_3.sp_gain == 5
    assert combo_3.utp_gain == 0
    assert combo_3.od_rate == [1.0, 1.0]
Beispiel #10
0
def test_human_form(transformer_atk: AttackingActionTransformer):
    # Tiki (10350203)
    # - Mode 19: Divine Dragon
    # - Unique Combo 15
    # - Action ID 300400
    data = transformer_atk.transform_normal_attack_or_fs(300400).with_condition()

    combo_1 = data[0]
    assert combo_1.mods == pytest.approx([0.08])
    assert combo_1.sp_gain == 88
    assert combo_1.utp_gain == 2
    assert combo_1.od_rate == [1.0]

    combo_2 = data[1]
    assert combo_2.mods == pytest.approx([0.18])
    assert combo_2.sp_gain == 141
    assert combo_2.utp_gain == 3
    assert combo_2.od_rate == [1.0]

    combo_3 = data[2]
    assert combo_3.mods == pytest.approx([0.13])
    assert combo_3.sp_gain == 178
    assert combo_3.utp_gain == 4
    assert combo_3.od_rate == [1.0]

    combo_4 = data[3]
    assert combo_4.mods == pytest.approx([0.37])
    assert combo_4.sp_gain == 350
    assert combo_4.utp_gain == 5
    assert combo_4.od_rate == [1.0]

    combo_5 = data[4]
    assert combo_5.mods == pytest.approx([0.40])
    assert combo_5.sp_gain == 367
    assert combo_5.utp_gain == 6
    assert combo_5.od_rate == [1.0]