Skip to content

Commit 52c0e0a

Browse files
authored
Merge pull request #780 from FFXIV-CombatReborn/PhantomMob3
Misc Updates, Update to Shake It Off on WAR
2 parents 8e853e8 + 5868ccd commit 52c0e0a

File tree

6 files changed

+60
-37
lines changed

6 files changed

+60
-37
lines changed

BasicRotations/Melee/DRG_Default.cs

Lines changed: 39 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace RebornRotations.Melee;
22

3-
[Rotation("Default", CombatType.PvE, GameVersion = "7.21")]
3+
[Rotation("Default", CombatType.PvE, GameVersion = "7.25")]
44
[SourceCode(Path = "main/BasicRotations/Melee/DRG_Default.cs")]
55
[Api(4)]
66

@@ -54,42 +54,55 @@ protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
5454
{
5555
if (IsBurst && InCombat)
5656
{
57-
bool lifeSurgeReady = ((Player.HasStatus(true, StatusID.BattleLitany) || Player.HasStatus(true, StatusID.LanceCharge)
58-
|| LOTDEndAfter(1000)) && nextGCD.IsTheSameTo(true, HeavensThrustPvE, DrakesbanePvE))
59-
|| (Player.HasStatus(true, StatusID.BattleLitany) && Player.HasStatus(true, StatusID.LanceCharge) && LOTDEndAfter(1000) && nextGCD.IsTheSameTo(true, ChaoticSpringPvE, LanceBarragePvE, WheelingThrustPvE, FangAndClawPvE))
60-
|| (nextGCD.IsTheSameTo(true, HeavensThrustPvE, DrakesbanePvE) && (LanceChargePvE.IsInCooldown || BattleLitanyPvE.IsInCooldown));
61-
62-
if ((!BattleLitanyPvE.Cooldown.ElapsedAfter(60) || !BattleLitanyPvE.EnoughLevel) && LanceChargePvE.CanUse(out act))
63-
{
64-
return true;
65-
}
57+
bool lifeSurgeReady =
58+
((Player.HasStatus(true, StatusID.BattleLitany) || Player.HasStatus(true, StatusID.LanceCharge) || LOTDEndAfter(1000))
59+
&& nextGCD.IsTheSameTo(true, HeavensThrustPvE, DrakesbanePvE))
60+
|| (Player.HasStatus(true, StatusID.BattleLitany)
61+
&& Player.HasStatus(true, StatusID.LanceCharge)
62+
&& LOTDEndAfter(1000)
63+
&& nextGCD.IsTheSameTo(true, ChaoticSpringPvE, LanceBarragePvE, WheelingThrustPvE, FangAndClawPvE))
64+
|| (nextGCD.IsTheSameTo(true, HeavensThrustPvE, DrakesbanePvE)
65+
&& (LanceChargePvE.IsInCooldown || BattleLitanyPvE.IsInCooldown));
66+
67+
if ((!BattleLitanyPvE.Cooldown.ElapsedAfter(60) || !BattleLitanyPvE.EnoughLevel)
68+
&& LanceChargePvE.CanUse(out act))
69+
{
70+
return true;
71+
}
6672

6773
if (Player.HasStatus(true, StatusID.LanceCharge) && BattleLitanyPvE.CanUse(out act))
68-
{
69-
return true;
70-
}
71-
72-
if (((Player.HasStatus(true, StatusID.BattleLitany) || Player.HasStatus(true, StatusID.LanceCharge) || LOTDEndAfter(1000)) && nextGCD.IsTheSameTo(true, HeavensThrustPvE, DrakesbanePvE))
73-
|| (Player.HasStatus(true, StatusID.BattleLitany) && Player.HasStatus(true, StatusID.LanceCharge) && LOTDEndAfter(1000) && !HeavensThrustPvE.EnoughLevel && !DrakesbanePvE.EnoughLevel && nextGCD.IsTheSameTo(true, ChaoticSpringPvE, LanceBarragePvE, WheelingThrustPvE, FangAndClawPvE))
74-
|| (nextGCD.IsTheSameTo(true, HeavensThrustPvE, DrakesbanePvE) && (LanceChargePvE.IsInCooldown || BattleLitanyPvE.IsInCooldown)))
75-
{
76-
if (LifeSurgePvE.CanUse(out act, usedUp: true))
7774
{
7875
return true;
7976
}
80-
}
77+
78+
if (((Player.HasStatus(true, StatusID.BattleLitany) || Player.HasStatus(true, StatusID.LanceCharge) || LOTDEndAfter(1000))
79+
&& nextGCD.IsTheSameTo(true, HeavensThrustPvE, DrakesbanePvE))
80+
|| (Player.HasStatus(true, StatusID.BattleLitany)
81+
&& Player.HasStatus(true, StatusID.LanceCharge)
82+
&& LOTDEndAfter(1000)
83+
&& !HeavensThrustPvE.EnoughLevel
84+
&& !DrakesbanePvE.EnoughLevel
85+
&& nextGCD.IsTheSameTo(true, ChaoticSpringPvE, LanceBarragePvE, WheelingThrustPvE, FangAndClawPvE))
86+
|| (nextGCD.IsTheSameTo(true, HeavensThrustPvE, DrakesbanePvE)
87+
&& (LanceChargePvE.IsInCooldown || BattleLitanyPvE.IsInCooldown)))
88+
{
89+
if (LifeSurgePvE.CanUse(out act, usedUp: true))
90+
{
91+
return true;
92+
}
93+
}
8194

8295
if (lifeSurgeReady
8396
|| (!DisembowelPvE.EnoughLevel && nextGCD.IsTheSameTo(true, VorpalThrustPvE))
8497
|| (!FullThrustPvE.EnoughLevel && nextGCD.IsTheSameTo(true, VorpalThrustPvE, DisembowelPvE))
8598
|| (!LanceChargePvE.EnoughLevel && nextGCD.IsTheSameTo(true, DisembowelPvE, FullThrustPvE))
8699
|| (!BattleLitanyPvE.EnoughLevel && nextGCD.IsTheSameTo(true, ChaosThrustPvE, FullThrustPvE)))
87-
{
88-
if (LifeSurgePvE.CanUse(out act, usedUp: true))
89-
{
90-
return true;
91-
}
92-
}
100+
{
101+
if (LifeSurgePvE.CanUse(out act, usedUp: true))
102+
{
103+
return true;
104+
}
105+
}
93106
}
94107

95108
return base.EmergencyAbility(nextGCD, out act);

BasicRotations/PVPRotations/Ranged/BRD_Default.PVP.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public sealed class BRD_DefaultPvP : BardRotation
1313
[RotationConfig(CombatType.PvP, Name = "Stop attacking while in Guard.")]
1414
public bool RespectGuard { get; set; } = true;
1515

16-
[RotationConfig(CombatType.PvE, Name = "Use Warden's Paean on other players")]
16+
[RotationConfig(CombatType.PvP, Name = "Use Warden's Paean on other players")]
1717
public bool BRDEsuna { get; set; } = true;
1818
#endregion
1919

BasicRotations/Tank/WAR_Default.cs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,17 @@ protected override bool GeneralAbility(IAction nextGCD, out IAction? act)
177177
return base.GeneralAbility(nextGCD, out act);
178178
}
179179

180+
[RotationDesc(ActionID.ShakeItOffPvE, ActionID.ReprisalPvE)]
181+
protected override bool HealSingleAbility(IAction nextGCD, out IAction? act)
182+
{
183+
if (ShakeItOffPvE.CanUse(out act, skipAoeCheck: true))
184+
{
185+
return false;
186+
}
187+
188+
return base.HealSingleAbility(nextGCD, out act);
189+
}
190+
180191
[RotationDesc(ActionID.RawIntuitionPvE, ActionID.VengeancePvE, ActionID.RampartPvE, ActionID.RawIntuitionPvE, ActionID.ReprisalPvE)]
181192
protected override bool DefenseSingleAbility(IAction nextGCD, out IAction? act)
182193
{
@@ -221,12 +232,6 @@ protected override bool DefenseAreaAbility(IAction nextGCD, out IAction? act)
221232
{
222233
act = null;
223234

224-
if ((ShakeItOffPvE.Cooldown.IsCoolingDown && !ShakeItOffPvE.Cooldown.WillHaveOneCharge(60))
225-
|| (ReprisalPvE.Cooldown.IsCoolingDown && !ReprisalPvE.Cooldown.WillHaveOneCharge(50)))
226-
{
227-
return false;
228-
}
229-
230235
if (ShakeItOffPvE.CanUse(out act, skipAoeCheck: true))
231236
{
232237
return false;

RotationSolver.Basic/Actions/ActionTargetInfo.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using ECommons.GameHelpers;
66
using ECommons.Logging;
77
using FFXIVClientStructs.FFXIV.Client.Game;
8+
using FFXIVClientStructs.FFXIV.Client.Game.Event;
89
using FFXIVClientStructs.FFXIV.Client.Game.Object;
910
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
1011
using RotationSolver.Basic.Configuration;
@@ -1148,7 +1149,10 @@ private readonly bool CanGetTarget(IBattleChara target, IBattleChara subTarget)
11481149

11491150
foreach (IBattleChara battlechara in DataCenter.AllHostileTargets)
11501151
{
1151-
if (!battlechara.IsBossFromIcon() && ObjectHelper.DistanceToPlayer(battlechara) < 30)
1152+
if (!battlechara.IsBossFromIcon()
1153+
&& battlechara.IsAttackable()
1154+
&& battlechara.GetEventType() != EventHandlerContent.PublicContentDirector
1155+
&& ObjectHelper.DistanceToPlayer(battlechara) < 30)
11521156
{
11531157
PluginLog.Debug($"FindPhantomDoom: {battlechara.Name} selected target.");
11541158
return battlechara;

RotationSolver.Basic/Configuration/Configs.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -697,7 +697,7 @@ public const string
697697
[UI("The minimum time between updating RSR information. (Setting too low will negatively affect framerate, setting too high will lead to poor performance)",
698698
Filter = BasicTimer)]
699699
[JobConfig, Range(0, 0.3f, ConfigUnitType.Seconds, 0.002f)]
700-
public float MinUpdatingTime { get; set; } = 0.01f;
700+
public float MinUpdatingTime { get; set; } = 0.00f;
701701

702702
/// <markdown file="Basic" name="Action Ahead">
703703
/// Percent of your GCD time remaining on a GCD cycle before RSR will try to queue the next GCD.

RotationSolver.Basic/Helpers/ObjectHelper.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -574,7 +574,8 @@ internal static bool IsSpecialInclusionPriority(this IBattleChara battleChara)
574574
|| battleChara.NameId == 8145
575575
|| battleChara.NameId == 10259
576576
|| battleChara.NameId == 12704
577-
|| battleChara.NameId == 13668)
577+
|| battleChara.NameId == 13668
578+
|| battleChara.NameId == 13815)
578579
{
579580
return true;
580581
}
@@ -584,7 +585,7 @@ internal static bool IsSpecialInclusionPriority(this IBattleChara battleChara)
584585
//10259 Cinduruva in The Tower of Zot
585586
//12704 Crystalline Debris
586587
//13668 Mob in Calamity Unbound CE
587-
588+
//13668 Mob in With Extreme Prejudice CE
588589

589590
return false;
590591
}

0 commit comments

Comments
 (0)