Skip to content

Commit 45e4970

Browse files
authored
Merge pull request #844 from FFXIV-CombatReborn/MCHxDRGhotfixes
Update to DRG and MCH
2 parents c2194bf + 370c02d commit 45e4970

File tree

3 files changed

+111
-41
lines changed

3 files changed

+111
-41
lines changed

BasicRotations/Melee/DRG_Default.cs

Lines changed: 88 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@ public sealed class DRG_Default : DragoonRotation
99
#region Config Options
1010
[RotationConfig(CombatType.PvE, Name = "Use Doom Spike for damage uptime if out of melee range even if it breaks combo")]
1111
public bool DoomSpikeWhenever { get; set; } = true;
12-
13-
[RotationConfig(CombatType.PvE, Name = "Attempt to assign Stardiver to the first ogcd slot (Experimental)")]
14-
public bool OGCDTimers { get; set; } = false;
1512
#endregion
1613

1714
private static bool InBurstStatus => Player.HasStatus(true, StatusID.BattleLitany);
@@ -179,7 +176,7 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act)
179176
}
180177
}
181178

182-
if (GeirskogulPvE.Cooldown.IsCoolingDown)
179+
if (GeirskogulPvE.Cooldown.IsCoolingDown || LOTDTime > 0)
183180
{
184181
if (HighJumpPvE.CanUse(out act))
185182
{
@@ -226,12 +223,32 @@ protected override bool GeneralGCD(out IAction? act)
226223
return true;
227224
}
228225

229-
if (DoomSpikePvE.CanUse(out act, skipComboCheck: doomSpikeRightNow))
226+
if (LanceMasteryTrait.EnoughLevel)
230227
{
231-
return true;
228+
if (HasDraconianFire)
229+
{
230+
if (DraconianFuryPvE.CanUse(out act, skipComboCheck: doomSpikeRightNow))
231+
{
232+
return true;
233+
}
234+
}
235+
if (!HasDraconianFire)
236+
{
237+
if (DoomSpikePvE.CanUse(out act, skipComboCheck: doomSpikeRightNow))
238+
{
239+
return true;
240+
}
241+
}
242+
}
243+
if (!LanceMasteryTrait.EnoughLevel)
244+
{
245+
if (DoomSpikePvE.CanUse(out act, skipComboCheck: doomSpikeRightNow))
246+
{
247+
return true;
248+
}
232249
}
233250

234-
if (DrakesbanePvE.CanUse(out act))
251+
if (DrakesbanePvE.CanUse(out act, skipStatusProvideCheck: true))
235252
{
236253
return true;
237254
}
@@ -246,44 +263,89 @@ protected override bool GeneralGCD(out IAction? act)
246263
return true;
247264
}
248265

249-
if (FullThrustPvE.CanUse(out act))
266+
if (LanceMasteryIiTrait.EnoughLevel)
250267
{
251-
return true;
268+
if (HeavensThrustPvE.CanUse(out act))
269+
{
270+
return true;
271+
}
252272
}
253-
254-
if (ChaosThrustPvE.CanUse(out act))
273+
if (!LanceMasteryIiTrait.EnoughLevel)
255274
{
256-
return true;
275+
if (FullThrustPvE.CanUse(out act))
276+
{
277+
return true;
278+
}
257279
}
258280

259-
if (SpiralBlowPvE.CanUse(out act))
281+
if (LanceMasteryIiTrait.EnoughLevel)
260282
{
261-
return true;
283+
if (ChaoticSpringPvE.CanUse(out act, skipStatusProvideCheck: true))
284+
{
285+
return true;
286+
}
262287
}
263-
264-
if (DisembowelPvE.CanUse(out act))
288+
if (!LanceMasteryIiTrait.EnoughLevel)
265289
{
266-
return true;
290+
if (ChaosThrustPvE.CanUse(out act, skipStatusProvideCheck: true))
291+
{
292+
return true;
293+
}
267294
}
268295

269-
if (LanceBarragePvE.CanUse(out act))
296+
if (LanceMasteryIvTrait.EnoughLevel)
270297
{
271-
return true;
298+
if (SpiralBlowPvE.CanUse(out act))
299+
{
300+
return true;
301+
}
272302
}
273-
274-
if (VorpalThrustPvE.CanUse(out act))
303+
if (!LanceMasteryIvTrait.EnoughLevel)
275304
{
276-
return true;
305+
if (DisembowelPvE.CanUse(out act))
306+
{
307+
return true;
308+
}
277309
}
278310

279-
if (RaidenThrustPvE.CanUse(out act))
311+
if (LanceMasteryIvTrait.EnoughLevel)
280312
{
281-
return true;
313+
if (LanceBarragePvE.CanUse(out act))
314+
{
315+
return true;
316+
}
317+
}
318+
if (!LanceMasteryIvTrait.EnoughLevel)
319+
{
320+
if (VorpalThrustPvE.CanUse(out act))
321+
{
322+
return true;
323+
}
282324
}
283325

284-
if (TrueThrustPvE.CanUse(out act))
326+
if (LanceMasteryTrait.EnoughLevel)
285327
{
286-
return true;
328+
if (HasDraconianFire)
329+
{
330+
if (RaidenThrustPvE.CanUse(out act))
331+
{
332+
return true;
333+
}
334+
}
335+
if (!HasDraconianFire)
336+
{
337+
if (TrueThrustPvE.CanUse(out act))
338+
{
339+
return true;
340+
}
341+
}
342+
}
343+
if (!LanceMasteryTrait.EnoughLevel)
344+
{
345+
if (TrueThrustPvE.CanUse(out act))
346+
{
347+
return true;
348+
}
287349
}
288350

289351
if (!IsLastAction(true, WingedGlidePvE) && PiercingTalonPvE.CanUse(out act))

BasicRotations/Ranged/MCH_Rework.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ public sealed class MCH_Rework : MachinistRotation
1313

1414
[RotationConfig(CombatType.PvE, Name = "Use Bioblaster while moving")]
1515
private bool BioMove { get; set; } = true;
16+
17+
[RotationConfig(CombatType.PvE, Name = "Only use Wildfire on Boss targets")]
18+
private bool WildfireBoss { get; set; } = false;
1619
#endregion
1720

1821
#region Countdown logic
@@ -150,7 +153,11 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act)
150153
&& nextGCD.IsTheSameTo(false, FullMetalFieldPvE)
151154
&& WildfirePvE.CanUse(out act))
152155
{
153-
return true;
156+
var IsTargetBoss = WildfirePvE.Target.Target?.IsBossFromIcon() ?? false;
157+
if ((IsTargetBoss && WildfireBoss) || !WildfireBoss)
158+
{
159+
return true;
160+
}
154161
}
155162
}
156163
}
@@ -160,7 +167,11 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act)
160167
{
161168
if (WeaponRemain < GCDTime(1) / 2 && WildfirePvE.CanUse(out act))
162169
{
163-
return true;
170+
var IsTargetBoss = WildfirePvE.Target.Target?.IsBossFromIcon() ?? false;
171+
if ((IsTargetBoss && WildfireBoss) || !WildfireBoss)
172+
{
173+
return true;
174+
}
164175
}
165176
}
166177
}

RotationSolver.Basic/Rotations/Basic/DragoonRotation.cs

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ protected static bool LOTDEndAfterGCD(uint gctCount = 0, float offset = 0)
6666
/// </summary>
6767
public static bool HasPowerSurge => Player.HasStatus(true, StatusID.PowerSurge_2720);
6868

69+
/// <summary>
70+
///
71+
/// </summary>
72+
public static bool HasDraconianFire => Player.HasStatus(true, StatusID.DraconianFire);
73+
6974
#endregion
7075

7176
#region PvE Actions Unassignable
@@ -139,7 +144,7 @@ static partial void ModifyDisembowelPvE(ref ActionSetting setting)
139144
setting.StatusProvide = [StatusID.PowerSurge_2720];
140145
setting.CreateConfig = () => new ActionConfig()
141146
{
142-
StatusGcdCount = 2,
147+
StatusGcdCount = 6,
143148
};
144149
}
145150

@@ -150,10 +155,6 @@ static partial void ModifyFullThrustPvE(ref ActionSetting setting)
150155

151156
static partial void ModifyLanceChargePvE(ref ActionSetting setting)
152157
{
153-
setting.CreateConfig = () => new ActionConfig()
154-
{
155-
TimeToKill = 10,
156-
};
157158
setting.StatusProvide = [StatusID.LanceCharge];
158159
setting.UnlockedByQuestID = 65975;
159160
setting.IsFriendly = true;
@@ -193,7 +194,7 @@ static partial void ModifyChaosThrustPvE(ref ActionSetting setting)
193194
setting.TargetStatusProvide = [StatusID.ChaosThrust, StatusID.ChaoticSpring];
194195
setting.CreateConfig = () => new ActionConfig()
195196
{
196-
StatusGcdCount = 3,
197+
StatusGcdCount = 6,
197198
};
198199
}
199200

@@ -255,13 +256,9 @@ static partial void ModifySonicThrustPvE(ref ActionSetting setting)
255256

256257
static partial void ModifyDrakesbanePvE(ref ActionSetting setting) //aka Kendrick Lamar
257258
{
258-
setting.ActionCheck = () => DrakesbanePvEFangReady || DrakesbanePvEWheelingReady;
259+
setting.ActionCheck = () => (DrakesbanePvEFangReady || DrakesbanePvEWheelingReady);
259260
setting.ComboIds = [ActionID.WheelingThrustPvE, ActionID.FangAndClawPvE];
260261
setting.StatusProvide = [StatusID.DraconianFire];
261-
setting.CreateConfig = () => new ActionConfig()
262-
{
263-
StatusGcdCount = 5,
264-
};
265262
}
266263

267264
static partial void ModifyMirageDivePvE(ref ActionSetting setting)
@@ -329,7 +326,7 @@ static partial void ModifyChaoticSpringPvE(ref ActionSetting setting)
329326
setting.TargetStatusProvide = [StatusID.ChaoticSpring];
330327
setting.CreateConfig = () => new ActionConfig()
331328
{
332-
StatusGcdCount = 3,
329+
StatusGcdCount = 6,
333330
};
334331
}
335332

@@ -363,7 +360,7 @@ static partial void ModifySpiralBlowPvE(ref ActionSetting setting)
363360
setting.StatusProvide = [StatusID.PowerSurge_2720];
364361
setting.CreateConfig = () => new ActionConfig()
365362
{
366-
StatusGcdCount = 3,
363+
StatusGcdCount = 6,
367364
};
368365
}
369366

0 commit comments

Comments
 (0)