@@ -275,7 +275,7 @@ protected override bool GeneralGCD(out IAction? act)
275
275
}
276
276
}
277
277
278
- if ( ( PreserveCombo && LiveComboTime > GCDTime ( 1 ) ) || ! PreserveCombo )
278
+ if ( ( ( PreserveCombo && LiveComboTime > GCDTime ( 1 ) ) || ! PreserveCombo ) && ! WillSwiftEnd && ! WillHunterEnd )
279
279
{
280
280
// Uncoiled Fury Overcap protection
281
281
bool isTargetBoss = CurrentTarget ? . IsBossFromTTK ( ) ?? false ;
@@ -300,9 +300,7 @@ protected override bool GeneralGCD(out IAction? act)
300
300
|| ! BurstUncoiledFuryHold )
301
301
&& SerpentsIrePvE . Cooldown . JustUsedAfter ( 30 )
302
302
&& ! HasReadyToReawaken
303
- && NoAbilityReady
304
- && ! WillSwiftEnd
305
- && ! WillHunterEnd )
303
+ && NoAbilityReady )
306
304
{
307
305
if ( UncoiledFuryPvE . CanUse ( out act , usedUp : true ) )
308
306
{
@@ -314,35 +312,52 @@ protected override bool GeneralGCD(out IAction? act)
314
312
////AOE Dread Combo
315
313
if ( PitActive )
316
314
{
317
- if ( WillSwiftEnd )
315
+ if ( HasHunterAndSwift )
318
316
{
319
- if ( SwiftskinsDenPvE . CanUse ( out act , skipComboCheck : true , skipAoeCheck : true ) )
320
- return true ;
321
- }
322
-
323
- if ( WillHunterEnd )
324
- {
325
- if ( HuntersDenPvE . CanUse ( out act , skipComboCheck : true , skipAoeCheck : true ) )
326
- return true ;
327
- }
317
+ if ( WillSwiftEnd )
318
+ {
319
+ if ( SwiftskinsDenPvE . CanUse ( out act , skipComboCheck : true , skipAoeCheck : true ) )
320
+ return true ;
321
+ }
328
322
329
- switch ( HunterOrSwiftEndsFirst )
330
- {
331
- case "Hunter" :
323
+ if ( WillHunterEnd )
324
+ {
332
325
if ( HuntersDenPvE . CanUse ( out act , skipComboCheck : true , skipAoeCheck : true ) )
333
326
return true ;
334
- break ;
335
- case "Swift" :
327
+ }
328
+
329
+ switch ( HunterOrSwiftEndsFirst )
330
+ {
331
+ case "Hunter" :
332
+ if ( HuntersDenPvE . CanUse ( out act , skipComboCheck : true , skipAoeCheck : true ) )
333
+ return true ;
334
+ break ;
335
+ case "Swift" :
336
+ if ( SwiftskinsDenPvE . CanUse ( out act , skipComboCheck : true , skipAoeCheck : true ) )
337
+ return true ;
338
+ break ;
339
+ case "Equal" :
340
+ case null :
341
+ if ( HuntersDenPvE . CanUse ( out act , skipComboCheck : true , skipAoeCheck : true ) )
342
+ return true ;
343
+ if ( SwiftskinsDenPvE . CanUse ( out act , skipComboCheck : true , skipAoeCheck : true ) )
344
+ return true ;
345
+ break ;
346
+ }
347
+ }
348
+ if ( ! HasHunterAndSwift )
349
+ {
350
+ if ( ! IsSwift )
351
+ {
336
352
if ( SwiftskinsDenPvE . CanUse ( out act , skipComboCheck : true , skipAoeCheck : true ) )
337
353
return true ;
338
- break ;
339
- case "Equal" :
340
- case null :
354
+ }
355
+
356
+ if ( ! IsHunter )
357
+ {
341
358
if ( HuntersDenPvE . CanUse ( out act , skipComboCheck : true , skipAoeCheck : true ) )
342
359
return true ;
343
- if ( SwiftskinsDenPvE . CanUse ( out act , skipComboCheck : true , skipAoeCheck : true ) )
344
- return true ;
345
- break ;
360
+ }
346
361
}
347
362
}
348
363
@@ -380,45 +395,76 @@ protected override bool GeneralGCD(out IAction? act)
380
395
// then try using Coil that will end first
381
396
if ( DreadActive )
382
397
{
383
- if ( IsSwift && Player . WillStatusEndGCD ( 2 , 0 , true , StatusID . Swiftscaled ) )
398
+ if ( HasHunterAndSwift )
384
399
{
385
- if ( SwiftskinsCoilPvE . CanUse ( out act , skipComboCheck : true ) )
386
- return true ;
387
- }
400
+ if ( WillSwiftEnd )
401
+ {
402
+ if ( SwiftskinsCoilPvE . CanUse ( out act , skipComboCheck : true ) )
403
+ return true ;
404
+ }
388
405
389
- if ( IsHunter && Player . WillStatusEndGCD ( 2 , 0 , true , StatusID . HuntersInstinct ) )
390
- {
391
- if ( HuntersCoilPvE . CanUse ( out act , skipComboCheck : true ) )
406
+ if ( WillHunterEnd )
407
+ {
408
+ if ( HuntersCoilPvE . CanUse ( out act , skipComboCheck : true ) )
409
+ return true ;
410
+ }
411
+
412
+ if ( HuntersCoilPvE . CanUse ( out act , skipComboCheck : true ) && HuntersCoilPvE . Target . Target != null && CanHitPositional ( EnemyPositional . Flank , HuntersCoilPvE . Target . Target ) )
413
+ {
392
414
return true ;
393
- }
415
+ }
394
416
395
- if ( HuntersCoilPvE . CanUse ( out act , skipComboCheck : true ) && HuntersCoilPvE . Target . Target != null && CanHitPositional ( EnemyPositional . Flank , HuntersCoilPvE . Target . Target ) )
396
- {
397
- return true ;
398
- }
417
+ if ( SwiftskinsCoilPvE . CanUse ( out act , skipComboCheck : true ) && SwiftskinsCoilPvE . Target . Target != null && CanHitPositional ( EnemyPositional . Rear , SwiftskinsCoilPvE . Target . Target ) )
418
+ {
419
+ return true ;
420
+ }
399
421
400
- if ( SwiftskinsCoilPvE . CanUse ( out act , skipComboCheck : true ) && SwiftskinsCoilPvE . Target . Target != null && CanHitPositional ( EnemyPositional . Rear , SwiftskinsCoilPvE . Target . Target ) )
401
- {
402
- return true ;
422
+ switch ( HunterOrSwiftEndsFirst )
423
+ {
424
+ case "Hunter" :
425
+ if ( HuntersCoilPvE . CanUse ( out act , skipComboCheck : true ) )
426
+ return true ;
427
+ break ;
428
+ case "Swift" :
429
+ if ( SwiftskinsCoilPvE . CanUse ( out act , skipComboCheck : true ) )
430
+ return true ;
431
+ break ;
432
+ case "Equal" :
433
+ case null :
434
+ if ( HuntersCoilPvE . CanUse ( out act , skipComboCheck : true ) )
435
+ return true ;
436
+ if ( SwiftskinsCoilPvE . CanUse ( out act , skipComboCheck : true ) )
437
+ return true ;
438
+ break ;
439
+ }
403
440
}
404
441
405
- switch ( HunterOrSwiftEndsFirst )
442
+ if ( ! HasHunterAndSwift )
406
443
{
407
- case "Hunter" :
408
- if ( HuntersCoilPvE . CanUse ( out act , skipComboCheck : true ) )
444
+ if ( ! IsHunter && ! IsSwift )
445
+ {
446
+ if ( HuntersCoilPvE . CanUse ( out act , skipComboCheck : true ) && HuntersCoilPvE . Target . Target != null && CanHitPositional ( EnemyPositional . Flank , HuntersCoilPvE . Target . Target ) )
447
+ {
409
448
return true ;
410
- break ;
411
- case "Swift" :
412
- if ( SwiftskinsCoilPvE . CanUse ( out act , skipComboCheck : true ) )
449
+ }
450
+
451
+ if ( SwiftskinsCoilPvE . CanUse ( out act , skipComboCheck : true ) && SwiftskinsCoilPvE . Target . Target != null && CanHitPositional ( EnemyPositional . Rear , SwiftskinsCoilPvE . Target . Target ) )
452
+ {
413
453
return true ;
414
- break ;
415
- case "Equal" :
416
- case null :
417
- if ( HuntersCoilPvE . CanUse ( out act , skipComboCheck : true ) )
454
+ }
455
+ }
456
+
457
+ if ( ! IsSwift )
458
+ {
459
+ if ( SwiftskinsCoilPvE . CanUse ( out act , skipComboCheck : true , skipAoeCheck : true ) )
418
460
return true ;
419
- if ( SwiftskinsCoilPvE . CanUse ( out act , skipComboCheck : true ) )
461
+ }
462
+
463
+ if ( ! IsHunter )
464
+ {
465
+ if ( HuntersCoilPvE . CanUse ( out act , skipComboCheck : true , skipAoeCheck : true ) )
420
466
return true ;
421
- break ;
467
+ }
422
468
}
423
469
}
424
470
@@ -456,7 +502,7 @@ protected override bool GeneralGCD(out IAction? act)
456
502
if ( JaggedMawPvE . CanUse ( out act , skipAoeCheck : true ) )
457
503
return true ;
458
504
break ;
459
- case ( false , true ) :
505
+ case ( _ , true ) :
460
506
if ( BloodiedMawPvE . CanUse ( out act , skipAoeCheck : true ) )
461
507
return true ;
462
508
break ;
0 commit comments