From 5c0c78d98bda277e87b87e275808847b04fa240c Mon Sep 17 00:00:00 2001 From: LTS-FFXIV <127939494+LTS-FFXIV@users.noreply.github.com> Date: Fri, 3 Jan 2025 10:35:18 -0600 Subject: [PATCH] Add UseHolyWhenAway option and update PLD_Beta logic - Added `UseHolyWhenAway` to `PLD_Beta` for using Holy Spirit when out of melee range. - Modified `AttackAbility` in `PLD_Beta` to skip AoE check for `BladeOfHonorPvE`. - Updated `HolySpiritPvE` condition in `PLD_Beta` to check `UseHolyWhenAway`. - Corrected `AutoStatus` enum descriptions and names for healing abilities. - Added `TimeToKill` property to `ActionConfig` in `PaladinRotation` with a default value of 0. --- BasicRotations/Tank/PLD_Beta.cs | 7 +++++-- RotationSolver.Basic/Data/AutoStatus.cs | 16 ++++++++-------- .../Rotations/Basic/PaladinRotation.cs | 1 + 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/BasicRotations/Tank/PLD_Beta.cs b/BasicRotations/Tank/PLD_Beta.cs index 59b5c94c3..b2992a577 100644 --- a/BasicRotations/Tank/PLD_Beta.cs +++ b/BasicRotations/Tank/PLD_Beta.cs @@ -28,6 +28,9 @@ public sealed class PLD_Beta : PaladinRotation [Range(0, 1, ConfigUnitType.Percent)] [RotationConfig(CombatType.PvE, Name = "Health threshold for Cover (Set to 0 to disable)")] private float CoverRatio { get; set; } = 0.3f; + + [RotationConfig(CombatType.PvE, Name = "Use Holy Spirit when out of melee range")] + private bool UseHolyWhenAway { get; set; } = false; #endregion private const ActionID ConfiteorPvEActionId = (ActionID)16459; @@ -137,7 +140,7 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act) act = null; if (PassageProtec && Player.HasStatus(true, StatusID.PassageOfArms)) return false; - if (BladeOfHonorPvE.CanUse(out act)) return true; + if (BladeOfHonorPvE.CanUse(out act, skipAoeCheck: true)) return true; if (!RiotBladePvE.EnoughLevel && FightOrFlightPvE.CanUse(out act)) return true; if (!RageOfHalonePvE.EnoughLevel && nextGCD.IsTheSameTo(true, RiotBladePvE) && FightOrFlightPvE.CanUse(out act)) return true; @@ -207,7 +210,7 @@ protected override bool GeneralGCD(out IAction? act) if (FastBladePvE.CanUse(out act)) return true; //Ranged - if (StopMovingTime > 1 && HolySpiritPvE.CanUse(out act)) return true; + if (UseHolyWhenAway && StopMovingTime > 1 && HolySpiritPvE.CanUse(out act)) return true; if (ShieldLobPvE.CanUse(out act)) return true; return base.GeneralGCD(out act); } diff --git a/RotationSolver.Basic/Data/AutoStatus.cs b/RotationSolver.Basic/Data/AutoStatus.cs index 31600a69d..a0d3f6b9a 100644 --- a/RotationSolver.Basic/Data/AutoStatus.cs +++ b/RotationSolver.Basic/Data/AutoStatus.cs @@ -42,24 +42,24 @@ public enum AutoStatus : uint DefenseArea = 1 << 5, /// - /// We should heal single by ability. + /// We should heal area by ability. /// - HealSingleAbility = 1 << 6, + HealAreaAbility = 1 << 6, /// - /// We should heal single by spell. + /// We should heal area by spell. /// - HealSingleSpell = 1 << 7, + HealAreaSpell = 1 << 7, /// - /// We should heal area by ability. + /// We should heal single by ability. /// - HealAreaAbility = 1 << 8, + HealSingleAbility = 1 << 8, /// - /// We should heal area by spell. + /// We should heal single by spell. /// - HealAreaSpell = 1 << 9, + HealSingleSpell = 1 << 9, /// /// We should raise. diff --git a/RotationSolver.Basic/Rotations/Basic/PaladinRotation.cs b/RotationSolver.Basic/Rotations/Basic/PaladinRotation.cs index d5a1bf28e..bd633f4ba 100644 --- a/RotationSolver.Basic/Rotations/Basic/PaladinRotation.cs +++ b/RotationSolver.Basic/Rotations/Basic/PaladinRotation.cs @@ -198,6 +198,7 @@ static partial void ModifyCircleOfScornPvE(ref ActionSetting setting) setting.CreateConfig = () => new ActionConfig() { AoeCount = 3, + TimeToKill = 0, }; }