Skip to content

Commit 8d1f6f0

Browse files
authored
Merge pull request #842 from FFXIV-CombatReborn/VPRhotfix4
Update to VPR base and hotfix for combo actions
2 parents 24cbff3 + 7086db4 commit 8d1f6f0

File tree

2 files changed

+209
-66
lines changed

2 files changed

+209
-66
lines changed

BasicRotations/Melee/VPR_Default.cs

Lines changed: 121 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -315,31 +315,31 @@ protected override bool GeneralGCD(out IAction? act)
315315
{
316316
if (WillSwiftEnd)
317317
{
318-
if (SwiftskinsDenPvE.CanUse(out act, skipComboCheck: true, skipAoeCheck: true))
318+
if (SwiftskinsDenPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true))
319319
return true;
320320
}
321321

322322
if (WillHunterEnd)
323323
{
324-
if (HuntersDenPvE.CanUse(out act, skipComboCheck: true, skipAoeCheck: true))
324+
if (HuntersDenPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true))
325325
return true;
326326
}
327327

328328
switch (HunterOrSwiftEndsFirst)
329329
{
330330
case "Hunter":
331-
if (HuntersDenPvE.CanUse(out act, skipComboCheck: true, skipAoeCheck: true))
331+
if (HuntersDenPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true))
332332
return true;
333333
break;
334334
case "Swift":
335-
if (SwiftskinsDenPvE.CanUse(out act, skipComboCheck: true, skipAoeCheck: true))
335+
if (SwiftskinsDenPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true))
336336
return true;
337337
break;
338338
case "Equal":
339339
case null:
340-
if (HuntersDenPvE.CanUse(out act, skipComboCheck: true, skipAoeCheck: true))
340+
if (HuntersDenPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true))
341341
return true;
342-
if (SwiftskinsDenPvE.CanUse(out act, skipComboCheck: true, skipAoeCheck: true))
342+
if (SwiftskinsDenPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true))
343343
return true;
344344
break;
345345
}
@@ -348,26 +348,26 @@ protected override bool GeneralGCD(out IAction? act)
348348
{
349349
if (!IsSwift)
350350
{
351-
if (SwiftskinsDenPvE.CanUse(out act, skipComboCheck: true, skipAoeCheck: true))
351+
if (SwiftskinsDenPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true))
352352
return true;
353353
}
354354

355355
if (!IsHunter)
356356
{
357-
if (HuntersDenPvE.CanUse(out act, skipComboCheck: true, skipAoeCheck: true))
357+
if (HuntersDenPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true))
358358
return true;
359359
}
360360
}
361361
}
362362

363363
if (!PitActive)
364364
{
365-
if (SwiftskinsDenPvE.CanUse(out act, skipComboCheck: true, skipAoeCheck: true))
365+
if (SwiftskinsDenPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true))
366366
{
367367
return true;
368368
}
369369

370-
if (HuntersDenPvE.CanUse(out act, skipComboCheck: true, skipAoeCheck: true))
370+
if (HuntersDenPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true))
371371
{
372372
return true;
373373
}
@@ -401,41 +401,41 @@ protected override bool GeneralGCD(out IAction? act)
401401
{
402402
if (WillSwiftEnd)
403403
{
404-
if (SwiftskinsCoilPvE.CanUse(out act, skipComboCheck: true))
404+
if (SwiftskinsCoilPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
405405
return true;
406406
}
407407

408408
if (WillHunterEnd)
409409
{
410-
if (HuntersCoilPvE.CanUse(out act, skipComboCheck: true))
410+
if (HuntersCoilPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
411411
return true;
412412
}
413413

414-
if (HuntersCoilPvE.CanUse(out act, skipComboCheck: true) && HuntersCoilPvE.Target.Target != null && CanHitPositional(EnemyPositional.Flank, HuntersCoilPvE.Target.Target))
414+
if (HuntersCoilPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true) && HuntersCoilPvE.Target.Target != null && CanHitPositional(EnemyPositional.Flank, HuntersCoilPvE.Target.Target))
415415
{
416416
return true;
417417
}
418418

419-
if (SwiftskinsCoilPvE.CanUse(out act, skipComboCheck: true) && SwiftskinsCoilPvE.Target.Target != null && CanHitPositional(EnemyPositional.Rear, SwiftskinsCoilPvE.Target.Target))
419+
if (SwiftskinsCoilPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true) && SwiftskinsCoilPvE.Target.Target != null && CanHitPositional(EnemyPositional.Rear, SwiftskinsCoilPvE.Target.Target))
420420
{
421421
return true;
422422
}
423423

424424
switch (HunterOrSwiftEndsFirst)
425425
{
426426
case "Hunter":
427-
if (HuntersCoilPvE.CanUse(out act, skipComboCheck: true))
427+
if (HuntersCoilPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
428428
return true;
429429
break;
430430
case "Swift":
431-
if (SwiftskinsCoilPvE.CanUse(out act, skipComboCheck: true))
431+
if (SwiftskinsCoilPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
432432
return true;
433433
break;
434434
case "Equal":
435435
case null:
436-
if (HuntersCoilPvE.CanUse(out act, skipComboCheck: true))
436+
if (HuntersCoilPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
437437
return true;
438-
if (SwiftskinsCoilPvE.CanUse(out act, skipComboCheck: true))
438+
if (SwiftskinsCoilPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
439439
return true;
440440
break;
441441
}
@@ -445,39 +445,39 @@ protected override bool GeneralGCD(out IAction? act)
445445
{
446446
if (!IsHunter && !IsSwift)
447447
{
448-
if (HuntersCoilPvE.CanUse(out act, skipComboCheck: true) && HuntersCoilPvE.Target.Target != null && CanHitPositional(EnemyPositional.Flank, HuntersCoilPvE.Target.Target))
448+
if (HuntersCoilPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true) && HuntersCoilPvE.Target.Target != null && CanHitPositional(EnemyPositional.Flank, HuntersCoilPvE.Target.Target))
449449
{
450450
return true;
451451
}
452452

453-
if (SwiftskinsCoilPvE.CanUse(out act, skipComboCheck: true) && SwiftskinsCoilPvE.Target.Target != null && CanHitPositional(EnemyPositional.Rear, SwiftskinsCoilPvE.Target.Target))
453+
if (SwiftskinsCoilPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true) && SwiftskinsCoilPvE.Target.Target != null && CanHitPositional(EnemyPositional.Rear, SwiftskinsCoilPvE.Target.Target))
454454
{
455455
return true;
456456
}
457457
}
458458

459459
if (!IsSwift)
460460
{
461-
if (SwiftskinsCoilPvE.CanUse(out act, skipComboCheck: true, skipAoeCheck: true))
461+
if (SwiftskinsCoilPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true))
462462
return true;
463463
}
464464

465465
if (!IsHunter)
466466
{
467-
if (HuntersCoilPvE.CanUse(out act, skipComboCheck: true, skipAoeCheck: true))
467+
if (HuntersCoilPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true))
468468
return true;
469469
}
470470
}
471471
}
472472

473473
if (!DreadActive)
474474
{
475-
if (HuntersCoilPvE.CanUse(out act, skipComboCheck: true))
475+
if (HuntersCoilPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
476476
{
477477
return true;
478478
}
479479

480-
if (SwiftskinsCoilPvE.CanUse(out act, skipComboCheck: true))
480+
if (SwiftskinsCoilPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
481481
{
482482
return true;
483483
}
@@ -524,18 +524,18 @@ protected override bool GeneralGCD(out IAction? act)
524524
switch (HunterOrSwiftEndsFirst)
525525
{
526526
case "Hunter":
527-
if (HuntersBitePvE.CanUse(out act))
527+
if (HuntersBitePvE.CanUse(out act, skipStatusProvideCheck: true))
528528
return true;
529529
break;
530530
case "Swift":
531-
if (SwiftskinsBitePvE.CanUse(out act))
531+
if (SwiftskinsBitePvE.CanUse(out act, skipStatusProvideCheck: true))
532532
return true;
533533
break;
534534
case "Equal":
535535
case null:
536-
if (HuntersBitePvE.CanUse(out act))
536+
if (HuntersBitePvE.CanUse(out act, skipStatusProvideCheck: true))
537537
return true;
538-
if (SwiftskinsBitePvE.CanUse(out act))
538+
if (SwiftskinsBitePvE.CanUse(out act, skipStatusProvideCheck: true))
539539
return true;
540540
break;
541541
}
@@ -563,51 +563,120 @@ protected override bool GeneralGCD(out IAction? act)
563563
switch ((HasHindstung, HasHindsbane, HasFlankstung, HasFlanksbane))
564564
{
565565
case (true, _, _, _):
566-
if (HindstingStrikePvE.CanUse(out act))
566+
if (HindstingStrikePvE.CanUse(out act, skipStatusProvideCheck: true))
567567
return true;
568568
break;
569569
case (_, true, _, _):
570-
if (HindsbaneFangPvE.CanUse(out act))
570+
if (HindsbaneFangPvE.CanUse(out act, skipStatusProvideCheck: true))
571571
return true;
572572
break;
573573
case (_, _, true, _):
574-
if (FlankstingStrikePvE.CanUse(out act))
574+
if (FlankstingStrikePvE.CanUse(out act, skipStatusProvideCheck: true))
575575
return true;
576576
break;
577577
case (_, _, _, true):
578-
if (FlanksbaneFangPvE.CanUse(out act))
578+
if (FlanksbaneFangPvE.CanUse(out act, skipStatusProvideCheck: true))
579579
return true;
580580
break;
581581
case (false, false, false, false):
582-
if (HindstingStrikePvE.CanUse(out act))
582+
if (HindstingStrikePvE.CanUse(out act, skipStatusProvideCheck: true))
583583
return true;
584-
if (HindsbaneFangPvE.CanUse(out act))
584+
if (HindsbaneFangPvE.CanUse(out act, skipStatusProvideCheck: true))
585585
return true;
586-
if (FlankstingStrikePvE.CanUse(out act))
586+
if (FlankstingStrikePvE.CanUse(out act, skipStatusProvideCheck: true))
587587
return true;
588-
if (FlanksbaneFangPvE.CanUse(out act))
588+
if (FlanksbaneFangPvE.CanUse(out act, skipStatusProvideCheck: true))
589589
return true;
590590
break;
591591
}
592592

593593
// st 2
594-
switch (HunterOrSwiftEndsFirst)
594+
if (SwiftskinsStingPvE.EnoughLevel)
595595
{
596-
case "Hunter":
597-
if (HuntersStingPvE.CanUse(out act))
598-
return true;
599-
break;
600-
case "Swift":
601-
if (SwiftskinsStingPvE.CanUse(out act))
602-
return true;
603-
break;
604-
case "Equal":
605-
case null:
606-
if (SwiftskinsStingPvE.CanUse(out act))
607-
return true;
608-
if (HuntersStingPvE.CanUse(out act))
609-
return true;
610-
break;
596+
if (HasHunterAndSwift)
597+
{
598+
if (HasHind || HasFlank)
599+
{
600+
if (HasHind)
601+
{
602+
if (SwiftskinsStingPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
603+
return true;
604+
}
605+
606+
if (HasFlank)
607+
{
608+
if (HuntersStingPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
609+
return true;
610+
}
611+
}
612+
613+
if (!HasHind && !HasFlank)
614+
{
615+
switch (HunterOrSwiftEndsFirst)
616+
{
617+
case "Hunter":
618+
if (HuntersStingPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
619+
return true;
620+
break;
621+
case "Swift":
622+
if (SwiftskinsStingPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
623+
return true;
624+
break;
625+
case "Equal":
626+
if (SwiftskinsStingPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
627+
return true;
628+
break;
629+
}
630+
}
631+
}
632+
633+
if (!HasHunterAndSwift)
634+
{
635+
if (HasHind || HasFlank)
636+
{
637+
if (HasHind)
638+
{
639+
if (SwiftskinsStingPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
640+
return true;
641+
}
642+
643+
if (HasFlank)
644+
{
645+
if (HuntersStingPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
646+
return true;
647+
}
648+
}
649+
650+
if (!HasHind && !HasFlank)
651+
{
652+
if (!IsHunter && !IsSwift)
653+
{
654+
if (SwiftskinsStingPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
655+
{
656+
return true;
657+
}
658+
}
659+
660+
if (!IsSwift)
661+
{
662+
if (SwiftskinsStingPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
663+
{
664+
return true;
665+
}
666+
}
667+
668+
if (!IsHunter)
669+
{
670+
if (HuntersStingPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
671+
return true;
672+
}
673+
}
674+
}
675+
}
676+
if (!SwiftskinsStingPvE.EnoughLevel)
677+
{
678+
if (HuntersStingPvE.CanUse(out act, skipStatusProvideCheck: true, skipComboCheck: true))
679+
return true;
611680
}
612681

613682
// st 1

0 commit comments

Comments
 (0)