Amarantine-xiv / Amas-FF14-Combat-Sim

Apache License 2.0
6 stars 1 forks source link

[DRG] Wheeling Thrust and Fang & Claw are missing potency in some cases. #38

Closed periodically-au closed 7 months ago

periodically-au commented 7 months ago

DRG skills don't track the 4th & 5th hit mechanic where the 5th hit of the combo will be +100 potency (effectively, 400 potency)

Current

    skill_library.add_skill(
        Skill(
            name="Fang and Claw",
            damage_spec={
                SimConsts.DEFAULT_CONDITION: DamageSpec(potency=300),
                "No Positional": DamageSpec(potency=260),
            },
            timing_spec=instant_gcd_timing_spec,
        )
    )
    skill_library.add_skill(
        Skill(
            name="Wheeling Thrust",
            damage_spec={
                SimConsts.DEFAULT_CONDITION: DamageSpec(potency=300),

                "No Positional": DamageSpec(potency=260),
            },
            timing_spec=instant_gcd_timing_spec,
        )
    )

Proposed (pseudo): Implemented via a combo.

    skill_library.add_skill(
        Skill(
            name="Fang and Claw",
            combo_spec=(ComboSpec(combo_actions=("Wheeling Thrust",)),),
            damage_spec={
                SimConsts.DEFAULT_CONDITION: DamageSpec(potency=400),
                "No Positional": DamageSpec(potency=360),
                "No Combo": DamageSpec(potency=300),
                Utils.canonicalize_condition(
                    "No Combo, No Positional"
                ): DamageSpec(potency=260),
            },
            timing_spec=instant_gcd_timing_spec,
        )
    )
    skill_library.add_skill(
        Skill(
            name="Wheeling Thrust",
            combo_spec=(ComboSpec(combo_actions=("Fang and Claw",)),),
            damage_spec={
                SimConsts.DEFAULT_CONDITION: DamageSpec(potency=400),
                "No Positional": DamageSpec(potency=360),
                "No Combo": DamageSpec(potency=300),
                Utils.canonicalize_condition(
                    "No Combo, No Positional"
                ): DamageSpec(potency=260),
            },
            timing_spec=instant_gcd_timing_spec,
        )
    )
Amarantine-xiv commented 7 months ago

Done. Checked-in and a test added.

Basically took this suggestion but for Fang and Claw, set: combo_spec=(ComboSpec(combo_actions=("Heavens' Thrust", 'Wheeling Thrust',)),),

and for Wheeling Thrust, set: combo_spec=(ComboSpec(combo_actions=('Chaotic Spring', 'Fang and Claw',)),),

Needed since we need to 'continue' the combo, and we need to note the skills that may precede it.