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,
};
}