Skip to content
This repository has been archived by the owner on Nov 23, 2024. It is now read-only.

Commit

Permalink
Dragoon GCD ordered correctly, checks for Wyrmwind to be used when un…
Browse files Browse the repository at this point in the history
…der damage buff or before overcap, Lifesurge check to ensure good damage potency
  • Loading branch information
LTS-FFXIV committed Jul 26, 2024
1 parent 2edba7f commit 1a684db
Showing 1 changed file with 35 additions and 29 deletions.
64 changes: 35 additions & 29 deletions BasicRotations/Melee/DRG_Default.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
using FFXIVClientStructs.FFXIV.Client.Game.Gauge;

namespace DefaultRotations.Melee;

[Rotation("Default", CombatType.PvE, GameVersion = "7.01")]
Expand All @@ -16,12 +18,6 @@ public sealed class DRG_Default : DragoonRotation
[RotationDesc]
protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
{
if (nextGCD.IsTheSameTo(true, FullThrustPvE, CoerthanTormentPvE)
|| Player.HasStatus(true, StatusID.LanceCharge) && nextGCD.IsTheSameTo(false, FangAndClawPvE))
{
if (LifeSurgePvE.CanUse(out act, usedUp: true)) return true;
}

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

Expand Down Expand Up @@ -54,6 +50,13 @@ protected override bool GeneralAbility(IAction nextGCD, out IAction? act)
{
if (IsBurst && InCombat)
{
if ((Player.HasStatus(true, StatusID.BattleLitany) || Player.HasStatus(true, StatusID.LanceCharge) || LOTDEndAfter(1000)) && nextGCD.IsTheSameTo(true, HeavensThrustPvE, DrakesbanePvE)
|| (Player.HasStatus(true, StatusID.BattleLitany) && Player.HasStatus(true, StatusID.LanceCharge) && LOTDEndAfter(1000) && nextGCD.IsTheSameTo(true, ChaoticSpringPvE, LanceBarragePvE, WheelingThrustPvE, FangAndClawPvE))
|| (nextGCD.IsTheSameTo(true, HeavensThrustPvE, DrakesbanePvE) && (LanceChargePvE.IsInCooldown || BattleLitanyPvE.IsInCooldown)))
{
if (LifeSurgePvE.CanUse(out act, usedUp: true)) return true;
}

if (LanceChargePvE.CanUse(out act)) return true;

if (BattleLitanyPvE.CanUse(out act)) return true;
Expand All @@ -64,28 +67,31 @@ protected override bool GeneralAbility(IAction nextGCD, out IAction? act)

protected override bool AttackAbility(IAction nextGCD, out IAction? act)
{
if (StarcrossPvE.CanUse(out act)) return true;
if (NastrondPvE.CanUse(out act)) return true;
if (StardiverPvE.CanUse(out act)) return true;

if (HighJumpPvE.CanUse(out act)) return true;
if (JumpPvE.CanUse(out act)) return true;


if (Player.HasStatus(true, StatusID.LanceCharge) && LanceChargePvE.Cooldown.ElapsedOneChargeAfterGCD(3))
{
if (GeirskogulPvE.CanUse(out act)) return true;
}

if (MirageDivePvE.CanUse(out act)) return true;

if (Player.HasStatus(true, StatusID.LanceCharge) && LanceChargePvE.Cooldown.ElapsedOneChargeAfterGCD(3))
{
if (DragonfireDivePvE.CanUse(out act)) return true;
}

if (WyrmwindThrustPvE.CanUse(out act)) return true;
if ((Player.HasStatus(true, StatusID.BattleLitany) || Player.HasStatus(true, StatusID.LanceCharge) || LOTDEndAfter(1000))
|| nextGCD.IsTheSameTo(true, RaidenThrustPvE, DraconianFuryPvE))
{
if (WyrmwindThrustPvE.CanUse(out act, usedUp: true)) return true;
}

if (HighJumpPvE.CanUse(out act)) return true;
if (StardiverPvE.CanUse(out act)) return true;


if (MirageDivePvE.CanUse(out act)) return true;
if (NastrondPvE.CanUse(out act)) return true;
if (StarcrossPvE.CanUse(out act)) return true;
if (RiseOfTheDragonPvE.CanUse(out act)) return true;
if (HighJumpPvE.CanUse(out act)) return true;

return base.AttackAbility(nextGCD, out act);
}
Expand All @@ -100,25 +106,25 @@ protected override bool GeneralGCD(out IAction? act)
if (SonicThrustPvE.CanUse(out act)) return true;
if (DoomSpikePvE.CanUse(out act, skipComboCheck: doomSpikeRightNow)) return true;


if (DrakesbanePvE.CanUse(out act)) return true;
if (WheelingThrustPvE.CanUse(out act)) return true;
if (FangAndClawPvE.CanUse(out act)) return true;


if (FullThrustPvE.CanUse(out act)) return true;
if (ChaosThrustPvE.CanUse(out act)) return true;

if (Player.WillStatusEndGCD(5, 0, true, StatusID.PowerSurge_2720))
{
if (DisembowelPvE.CanUse(out act)) return true;
}

if (VorpalThrustPvE.CanUse(out act)) return true;
if (TrueThrustPvE.CanUse(out act)) return true;
if (RaidenThrustPvE.CanUse(out act)) return true;
if (DrakesbanePvE.CanUse(out act)) return true;

if (FangAndClawPvE.CanUse(out act)) return true;
if (WheelingThrustPvE.CanUse(out act)) return true;

if (HeavensThrustPvE.CanUse(out act)) return true;
if (ChaoticSpringPvE.CanUse(out act)) return true;

if (LanceBarragePvE.CanUse(out act)) return true;
if (SpiralBlowPvE.CanUse(out act)) return true;

if (RaidenThrustPvE.CanUse(out act)) return true;
if (TrueThrustPvE.CanUse(out act)) return true;

if (PiercingTalonPvE.CanUse(out act)) return true;

return base.GeneralGCD(out act);
Expand Down

0 comments on commit 1a684db

Please sign in to comment.