Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions WrathCombo/Combos/PvE/PLD/PLD_Config.cs
Original file line number Diff line number Diff line change
Expand Up @@ -92,11 +92,15 @@ internal static void Draw(Preset preset)
#region ST

case Preset.PLD_ST_AdvancedMode_BalanceOpener:
DrawRadioButton(PLD_SelectedOpener, Generics.StandardOpener, "", 0);
DrawRadioButton(PLD_SelectedOpener, "Early Buff Window Opener",
"Moves the buff window forward about 1 GCD.", 1, descriptionAsTooltip: true);
ImGui.NewLine();
DrawBossOnlyChoice(PLD_Balance_Content);
ImGui.NewLine();
DrawHorizontalRadioButton(PLD_ST_AdvancedMode_BalanceOpener_Intervene, FormatAndCache(Generics.Use0, Intervene.ActionName()),
DrawHorizontalRadioButton(PLD_ST_AdvancedMode_BalanceOpener_Intervene, FormatAndCache(Generics.Use0, Intervene.ActionName()),
FormatAndCache(Generics.GapcloserUse, Intervene.ActionName()), 0);
DrawHorizontalRadioButton(PLD_ST_AdvancedMode_BalanceOpener_Intervene, FormatAndCache(Generics.DontUse0, Intervene.ActionName()),
DrawHorizontalRadioButton(PLD_ST_AdvancedMode_BalanceOpener_Intervene, FormatAndCache(Generics.DontUse0, Intervene.ActionName()),
FormatAndCache(Generics.GapcloseSkip, Intervene.ActionName()), 1);
break;

Expand Down Expand Up @@ -326,6 +330,7 @@ public static UserInt

//ST
PLD_Balance_Content = new("PLD_Balance_Content", 1),
PLD_SelectedOpener = new("PLD_SelectedOpener"),
PLD_ST_AdvancedMode_BalanceOpener_Intervene = new("PLD_ST_AdvancedMode_BalanceOpener_Intervene"),
PLD_ST_Intervene_Charges = new("PLD_ST_Intervene_Charges"),
PLD_ST_Intervene_Movement = new("PLD_ST_Intervene_Movement"),
Expand Down
59 changes: 56 additions & 3 deletions WrathCombo/Combos/PvE/PLD/PLD_Helper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -765,13 +765,14 @@ internal static uint AoECombo
#region Openers

internal static PLDLvl100StandardOpener Lvl100StandardOpener = new();
internal static PLDLvl100EarlyBuffOpener Lvl100EarlyBuffOpener = new();

internal static WrathOpener Opener()
{
if (Lvl100StandardOpener.LevelChecked)
return Lvl100StandardOpener;
if (PLD_SelectedOpener == 1 && Lvl100EarlyBuffOpener.LevelChecked)
return Lvl100EarlyBuffOpener;

return WrathOpener.Dummy;
return Lvl100StandardOpener.LevelChecked ? Lvl100StandardOpener : WrathOpener.Dummy;
}

internal class PLDLvl100StandardOpener : WrathOpener
Expand Down Expand Up @@ -819,6 +820,58 @@ public override bool HasCooldowns() =>
IsOffCooldown(GoringBlade);
}

internal class PLDLvl100EarlyBuffOpener : WrathOpener
{
public override int MinOpenerLevel => 100;
public override int MaxOpenerLevel => 109;

public override List<uint> OpenerActions { get; set; } =
[
HolySpirit,
FastBlade,
FightOrFlight,
Imperator,
RiotBlade,
CircleOfScorn,
Expiacion,
RoyalAuthority,
Intervene,
GoringBlade,
Intervene,
Confiteor,
BladeOfFaith,
BladeOfTruth,
BladeOfValor,
BladeOfHonor,
HolySpirit,
Atonement,
Supplication,
Sepulchre
];

public override List<(int[] Steps, uint NewAction, Func<bool> Condition)> SubstitutionSteps { get; set; } =
[
([1], FastBlade, () => !HasTarget() || InCombat())
];

public override List<(int[] Steps, Func<bool> Condition)> SkipSteps { get; set; } =
[
([2], () => ComboAction == FastBlade),
([9, 10], () => !HasCharges(Intervene) || PLD_ST_AdvancedMode_BalanceOpener_Intervene != 0),
([18, 19, 20], () => !InMeleeRange())
];

public override Preset Preset => Preset.PLD_ST_AdvancedMode_BalanceOpener;
internal override UserData ContentCheckConfig => PLD_Balance_Content;

public override bool HasCooldowns() =>
IsOffCooldown(FightOrFlight) &&
IsOffCooldown(Imperator) &&
IsOffCooldown(CircleOfScorn) &&
IsOffCooldown(Expiacion) &&
IsOffCooldown(GoringBlade);
}

#endregion

#region ID's
Expand Down