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

Commit

Permalink
Merge pull request #145 from FFXIV-CombatReborn/dargon2-the-return-of…
Browse files Browse the repository at this point in the history
…-jafar

Dragood fix and optimization pass
  • Loading branch information
LTS-FFXIV authored Jul 26, 2024
2 parents 2edba7f + 1a684db commit c17aa9c
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 c17aa9c

Please sign in to comment.