@@ -151,37 +151,11 @@ protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
151
151
152
152
if ( SynastryPvE . CanUse ( out act ) )
153
153
{
154
- if ( nextGCD . IsTheSameTo ( false , AspectedBeneficPvE ) )
154
+ if ( CanCastSynastry ( AspectedBeneficPvE , SynastryPvE , SynastryHeal , nextGCD ) ||
155
+ CanCastSynastry ( BeneficIiPvE , SynastryPvE , SynastryHeal , nextGCD ) ||
156
+ CanCastSynastry ( BeneficPvE , SynastryPvE , SynastryHeal , nextGCD ) )
155
157
{
156
- if ( SynastryPvE . Target . Target == AspectedBeneficPvE . Target . Target )
157
- {
158
- if ( SynastryPvE . Target . Target . GetHealthRatio ( ) < SynastryHeal )
159
- {
160
- return true ;
161
- }
162
- }
163
- }
164
-
165
- if ( nextGCD . IsTheSameTo ( false , BeneficIiPvE ) )
166
- {
167
- if ( SynastryPvE . Target . Target == BeneficIiPvE . Target . Target )
168
- {
169
- if ( SynastryPvE . Target . Target . GetHealthRatio ( ) < SynastryHeal )
170
- {
171
- return true ;
172
- }
173
- }
174
- }
175
-
176
- if ( nextGCD . IsTheSameTo ( false , BeneficPvE ) )
177
- {
178
- if ( SynastryPvE . Target . Target == BeneficPvE . Target . Target )
179
- {
180
- if ( SynastryPvE . Target . Target . GetHealthRatio ( ) < SynastryHeal )
181
- {
182
- return true ;
183
- }
184
- }
158
+ return true ;
185
159
}
186
160
}
187
161
@@ -196,6 +170,11 @@ protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
196
170
}
197
171
198
172
return base . EmergencyAbility ( nextGCD , out act ) ;
173
+
174
+ static bool CanCastSynastry ( IBaseAction actionCheck , IBaseAction synastry , float synastryHp , IAction next )
175
+ => next . IsTheSameTo ( false , actionCheck ) &&
176
+ synastry . Target . Target == actionCheck . Target . Target &&
177
+ synastry . Target . Target . GetHealthRatio ( ) < synastryHp ;
199
178
}
200
179
201
180
[ RotationDesc ( ActionID . ExaltationPvE , ActionID . TheArrowPvE , ActionID . TheSpirePvE , ActionID . TheBolePvE , ActionID . TheEwerPvE ) ]
@@ -566,30 +545,6 @@ protected override bool HealSingleGCD(out IAction? act)
566
545
return base . HealSingleGCD ( out act ) ;
567
546
}
568
547
569
- if ( AspectedBeneficPvE . CanUse ( out act ) && ( IsMoving || AspectedBeneficPvE . Target . Target ? . GetHealthRatio ( ) < AspectedBeneficHeal ) )
570
- {
571
- if ( AspectedBeneficPvE . Target . Target . HasStatus ( true , StatusID . Synastry_846 ) )
572
- {
573
- return true ;
574
- }
575
- }
576
-
577
- if ( BeneficIiPvE . CanUse ( out act ) )
578
- {
579
- if ( BeneficIiPvE . Target . Target . HasStatus ( true , StatusID . Synastry_846 ) )
580
- {
581
- return true ;
582
- }
583
- }
584
-
585
- if ( BeneficPvE . CanUse ( out act ) )
586
- {
587
- if ( BeneficPvE . Target . Target . HasStatus ( true , StatusID . Synastry_846 ) )
588
- {
589
- return true ;
590
- }
591
- }
592
-
593
548
if ( AspectedBeneficPvE . CanUse ( out act ) && ( IsMoving || AspectedBeneficPvE . Target . Target ? . GetHealthRatio ( ) < AspectedBeneficHeal ) )
594
549
{
595
550
return true ;
0 commit comments