Skip to content

Commit 7893c24

Browse files
authored
Merge pull request #951 from FFXIV-CombatReborn/TimeMageWhiteMage
Time Mage occult quick hotfix for casters, WHM ThinAir adjustment
2 parents bd9d626 + 12c17dd commit 7893c24

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

RotationSolver.Basic/Actions/ActionBasicInfo.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,12 @@ private bool NeedsCasting(bool skipCastingCheck)
284284
if (!Player.Object.WillStatusEnd(0, true, StatusHelper.SwiftcastStatus))
285285
return false;
286286

287+
if (!Player.Object.WillStatusEnd(0, false, StatusID.OccultQuick))
288+
return false;
289+
290+
if (!Player.Object.WillStatusEnd(0, true, StatusID.OccultQuick))
291+
return false;
292+
287293
// Must not be in the no-cast list
288294
if (ActionsNoNeedCasting.Contains(ID))
289295
return false;
@@ -319,7 +325,7 @@ public bool HasEnoughMP()
319325

320326
if (Player.Job == Job.WHM)
321327
{
322-
if (Player.Object.HasStatus(true, StatusID.ThinAir))
328+
if (Player.Object.HasStatus(true, StatusID.ThinAir) || CustomRotation.IsLastAction(ActionID.ThinAirPvE))
323329
{
324330
return true;
325331
}

RotationSolver.Basic/Rotations/Basic/WhiteMageRotation.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,16 @@ public override bool IsBursting()
1717
return false;
1818
}
1919

20+
/// <inheritdoc/>
21+
public static bool ThinAirState()
22+
{
23+
if (HasThinAir || IsLastAction(ActionID.ThinAirPvE))
24+
{
25+
return true;
26+
}
27+
return false;
28+
}
29+
2030
#region Job Gauge
2131
/// <summary>
2232
/// Represents the number of Lily stacks.
@@ -120,8 +130,7 @@ static partial void ModifyMedicaPvE(ref ActionSetting setting)
120130

121131
static partial void ModifyRaisePvE(ref ActionSetting setting)
122132
{
123-
setting.ActionCheck = () => Player.CurrentMp >= RaiseMPMinimum || HasThinAir;
124-
setting.MPOverride = () => HasThinAir ? 0 : (uint)2400;
133+
setting.ActionCheck = () => Player.CurrentMp >= RaiseMPMinimum || ThinAirState();
125134
}
126135

127136
static partial void ModifyStoneIiPvE(ref ActionSetting setting)

RotationSolver/RebornRotations/Healer/WHM_Reborn.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public enum ThinAirUsageStrategy : byte
102102
protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
103103
{
104104
bool useLastThinAirCharge = ThinAirLastChargeUsage == ThinAirUsageStrategy.UseAllCharges || (ThinAirLastChargeUsage == ThinAirUsageStrategy.ReserveLastChargeForRaise && nextGCD == RaisePvE);
105-
if (((nextGCD is IBaseAction action && action.Info.MPNeed >= ThinAirNeed) || (MergedStatus.HasFlag(AutoStatus.Raise) && Player.CurrentMp > 2400 && IsLastAction() == IsLastGCD())) &&
105+
if (((nextGCD is IBaseAction action && action.Info.MPNeed >= ThinAirNeed && IsLastAction() == IsLastGCD()) || ((MergedStatus.HasFlag(AutoStatus.Raise) || (nextGCD == RaisePvE)) && IsLastAction() == IsLastGCD())) &&
106106
ThinAirPvE.CanUse(out act, usedUp: useLastThinAirCharge))
107107
{
108108
return true;

0 commit comments

Comments
 (0)