Skip to content

Commit 9dcccdb

Browse files
authored
Merge pull request #837 from FFXIV-CombatReborn/VPRhotfix3
Update to VPR, DRG, and statuscap checks
2 parents 607482b + d32012f commit 9dcccdb

File tree

4 files changed

+39
-28
lines changed

4 files changed

+39
-28
lines changed

BasicRotations/Melee/DRG_Default.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ protected sealed override bool DefenseAreaAbility(IAction nextGCD, out IAction?
5252
#region oGCD Logic
5353
protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
5454
{
55-
if (IsBurst && InCombat)
55+
if (IsBurst && InCombat && HasHostilesInRange)
5656
{
5757
bool lifeSurgeReady =
5858
((Player.HasStatus(true, StatusID.BattleLitany) || Player.HasStatus(true, StatusID.LanceCharge) || LOTDEndAfter(1000))

BasicRotations/Melee/VPR_Default.cs

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,6 @@ protected override bool GeneralGCD(out IAction? act)
237237
return false;
238238
}
239239

240-
241240
////Reawaken Combo
242241
if (OuroborosPvE.CanUse(out act))
243242
{
@@ -376,17 +375,20 @@ protected override bool GeneralGCD(out IAction? act)
376375

377376
if ((PreserveCombo && LiveComboTime > GCDTime(3)) || !PreserveCombo)
378377
{
379-
if (VicepitPvE.Cooldown.CurrentCharges == 1 && VicepitPvE.Cooldown.RecastTimeRemainOneCharge < 10)
378+
if (IsSwift)
380379
{
380+
if (VicepitPvE.Cooldown.CurrentCharges == 1 && VicepitPvE.Cooldown.RecastTimeRemainOneCharge < 10)
381+
{
382+
if (VicepitPvE.CanUse(out act, usedUp: true))
383+
{
384+
return true;
385+
}
386+
}
381387
if (VicepitPvE.CanUse(out act, usedUp: true))
382388
{
383389
return true;
384390
}
385391
}
386-
if (VicepitPvE.CanUse(out act, usedUp: true))
387-
{
388-
return true;
389-
}
390392
}
391393

392394
////Single Target Dread Combo
@@ -483,18 +485,22 @@ protected override bool GeneralGCD(out IAction? act)
483485

484486
if ((PreserveCombo && LiveComboTime > GCDTime(3)) || !PreserveCombo)
485487
{
486-
if (VicewinderPvE.Cooldown.CurrentCharges == 1 && VicewinderPvE.Cooldown.RecastTimeRemainOneCharge < 10)
488+
if (IsSwift)
487489
{
490+
if (VicewinderPvE.Cooldown.CurrentCharges == 1 && VicewinderPvE.Cooldown.RecastTimeRemainOneCharge < 10)
491+
{
492+
if (VicewinderPvE.CanUse(out act, usedUp: true))
493+
{
494+
return true;
495+
}
496+
}
488497
if (VicewinderPvE.CanUse(out act, usedUp: true))
489498
{
490499
return true;
491500
}
492501
}
493-
if (VicewinderPvE.CanUse(out act, usedUp: true))
494-
{
495-
return true;
496-
}
497502
}
503+
498504
//AOE Serpent Combo
499505
// aoe 3
500506
switch ((HasGrimHunter, HasGrimSkin))
@@ -554,33 +560,33 @@ protected override bool GeneralGCD(out IAction? act)
554560

555561
//Single Target Serpent Combo
556562
// st 3
557-
switch ((HasFlankstung, HasFlanksbane, HasHindstung, HasHindsbane))
563+
switch ((HasHindstung, HasHindsbane, HasFlankstung, HasFlanksbane))
558564
{
559565
case (true, _, _, _):
560-
if (HindsbaneFangPvE.CanUse(out act))
566+
if (HindstingStrikePvE.CanUse(out act))
561567
return true;
562568
break;
563569
case (_, true, _, _):
564-
if (HindstingStrikePvE.CanUse(out act))
570+
if (HindsbaneFangPvE.CanUse(out act))
565571
return true;
566572
break;
567573
case (_, _, true, _):
568-
if (FlanksbaneFangPvE.CanUse(out act))
574+
if (FlankstingStrikePvE.CanUse(out act))
569575
return true;
570576
break;
571577
case (_, _, _, true):
572-
if (FlankstingStrikePvE.CanUse(out act))
578+
if (FlanksbaneFangPvE.CanUse(out act))
573579
return true;
574580
break;
575581
case (false, false, false, false):
576-
if (HindsbaneFangPvE.CanUse(out act))
577-
return true;
578582
if (HindstingStrikePvE.CanUse(out act))
579583
return true;
580-
if (FlanksbaneFangPvE.CanUse(out act))
584+
if (HindsbaneFangPvE.CanUse(out act))
581585
return true;
582586
if (FlankstingStrikePvE.CanUse(out act))
583587
return true;
588+
if (FlanksbaneFangPvE.CanUse(out act))
589+
return true;
584590
break;
585591
}
586592

@@ -597,10 +603,10 @@ protected override bool GeneralGCD(out IAction? act)
597603
break;
598604
case "Equal":
599605
case null:
600-
if (HuntersStingPvE.CanUse(out act))
601-
return true;
602606
if (SwiftskinsStingPvE.CanUse(out act))
603607
return true;
608+
if (HuntersStingPvE.CanUse(out act))
609+
return true;
604610
break;
605611
}
606612

RotationSolver.Basic/Actions/ActionTargetInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ private readonly bool CheckStatus(IBattleChara battleChara, bool skipStatusProvi
251251
return false;
252252
}
253253

254-
if (Service.Config.Statuscap && battleChara != Player.Object && StatusHelper.IsStatusCapped(battleChara))
254+
if (Service.Config.Statuscap && battleChara.IsEnemy() && StatusHelper.IsStatusCapped(battleChara))
255255
{
256256
return false;
257257
}

RotationSolver.Basic/Helpers/StatusHelper.cs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -216,12 +216,17 @@ public static bool IsStatusCapped(IBattleChara battleChara)
216216
return false;
217217
}
218218

219-
return battleChara switch
219+
//if (battleChara.IsParty() && battleChara.StatusList.Length == 30)
220+
//{
221+
// return true;
222+
//}
223+
224+
if (battleChara.IsEnemy() && battleChara.StatusList.Length == 60)
220225
{
221-
IPlayerCharacter player => player.StatusList.Length == 30,
222-
IBattleNpc npc => npc.StatusList.Length == 60,
223-
_ => false
224-
};
226+
return true;
227+
}
228+
229+
return false;
225230
}
226231

227232
/// <summary>

0 commit comments

Comments
 (0)