File tree Expand file tree Collapse file tree 3 files changed +19
-4
lines changed
RotationSolver/RebornRotations/Healer Expand file tree Collapse file tree 3 files changed +19
-4
lines changed Original file line number Diff line number Diff line change @@ -284,6 +284,12 @@ private bool NeedsCasting(bool skipCastingCheck)
284
284
if ( ! Player . Object . WillStatusEnd ( 0 , true , StatusHelper . SwiftcastStatus ) )
285
285
return false ;
286
286
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
+
287
293
// Must not be in the no-cast list
288
294
if ( ActionsNoNeedCasting . Contains ( ID ) )
289
295
return false ;
@@ -319,7 +325,7 @@ public bool HasEnoughMP()
319
325
320
326
if ( Player . Job == Job . WHM )
321
327
{
322
- if ( Player . Object . HasStatus ( true , StatusID . ThinAir ) )
328
+ if ( Player . Object . HasStatus ( true , StatusID . ThinAir ) || CustomRotation . IsLastAction ( ActionID . ThinAirPvE ) )
323
329
{
324
330
return true ;
325
331
}
Original file line number Diff line number Diff line change @@ -17,6 +17,16 @@ public override bool IsBursting()
17
17
return false ;
18
18
}
19
19
20
+ /// <inheritdoc/>
21
+ public static bool ThinAirState ( )
22
+ {
23
+ if ( HasThinAir || IsLastAction ( ActionID . ThinAirPvE ) )
24
+ {
25
+ return true ;
26
+ }
27
+ return false ;
28
+ }
29
+
20
30
#region Job Gauge
21
31
/// <summary>
22
32
/// Represents the number of Lily stacks.
@@ -120,8 +130,7 @@ static partial void ModifyMedicaPvE(ref ActionSetting setting)
120
130
121
131
static partial void ModifyRaisePvE ( ref ActionSetting setting )
122
132
{
123
- setting . ActionCheck = ( ) => Player . CurrentMp >= RaiseMPMinimum || HasThinAir ;
124
- setting . MPOverride = ( ) => HasThinAir ? 0 : ( uint ) 2400 ;
133
+ setting . ActionCheck = ( ) => Player . CurrentMp >= RaiseMPMinimum || ThinAirState ( ) ;
125
134
}
126
135
127
136
static partial void ModifyStoneIiPvE ( ref ActionSetting setting )
Original file line number Diff line number Diff line change @@ -102,7 +102,7 @@ public enum ThinAirUsageStrategy : byte
102
102
protected override bool EmergencyAbility ( IAction nextGCD , out IAction ? act )
103
103
{
104
104
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 ( ) ) ) &&
106
106
ThinAirPvE . CanUse ( out act , usedUp : useLastThinAirCharge ) )
107
107
{
108
108
return true ;
You can’t perform that action at this time.
0 commit comments