diff --git a/BasicRotations/Melee/DRG_Default.cs b/BasicRotations/Melee/DRG_Default.cs index 89f7082..8ecab64 100644 --- a/BasicRotations/Melee/DRG_Default.cs +++ b/BasicRotations/Melee/DRG_Default.cs @@ -1,79 +1,91 @@ namespace DefaultRotations.Melee; -[Rotation("Default", CombatType.PvE, GameVersion = "7.00")] +[Rotation("Default", CombatType.PvE, GameVersion = "7.01")] [SourceCode(Path = "main/DefaultRotations/Melee/DRG_Default.cs")] [Api(2)] public sealed class DRG_Default : DragoonRotation { #region Config Options - [RotationDesc(ActionID.WingedGlidePvE, ActionID.DragonfireDivePvE)] - - [RotationConfig(CombatType.PvE, Name = "Break Single Target Combo to AOE when time to AOE")] + [RotationConfig(CombatType.PvE, Name = "Use Doom Spike for damage uptime if out of melee range even if it breaks combo")] public bool DoomSpikeWhenever { get; set; } = true; #endregion - #region Move Logic - protected override bool MoveForwardAbility(IAction nextGCD, out IAction act) - { - if (DragonfireDivePvE.CanUse(out act, skipAoeCheck: true)) return true; - - return false; - } - - #endregion + #region Additional oGCD Logic - #region oGCD Logic + [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); } + [RotationDesc(ActionID.WingedGlidePvE)] + protected override bool MoveForwardAbility(IAction nextGCD, out IAction? act) + { + if (WingedGlidePvE.CanUse(out act)) return true; + + return false; + } + [RotationDesc(ActionID.ElusiveJumpPvE)] + protected override bool MoveBackAbility(IAction nextGCD, out IAction? act) + { + if (ElusiveJumpPvE.CanUse(out act)) return true; - protected override bool AttackAbility(IAction nextGCD, out IAction? act) + return false; + } + + [RotationDesc(ActionID.FeintPvE)] + protected sealed override bool DefenseAreaAbility(IAction nextGCD, out IAction? act) + { + if (FeintPvE.CanUse(out act)) return true; + return false; + } + #endregion + + #region oGCD Logic + protected override bool GeneralAbility(IAction nextGCD, out IAction? act) { if (IsBurst && InCombat) { - if (LanceChargePvE.CanUse(out act, skipAoeCheck: true) && Player.HasStatus(true, StatusID.PowerSurge)) return true; - if (LanceChargePvE.CanUse(out act, skipAoeCheck: true) && !Player.HasStatus(true, StatusID.PowerSurge)) return true; + if (LanceChargePvE.CanUse(out act)) return true; - if (BattleLitanyPvE.CanUse(out act, skipAoeCheck: true)) return true; + if (BattleLitanyPvE.CanUse(out act)) return true; } - if (NastrondPvE.CanUse(out act, skipAoeCheck: true)) return true; - if (StardiverPvE.CanUse(out act, skipAoeCheck: true)) return true; + return base.GeneralAbility(nextGCD, out act); + } - if (HighJumpPvE.EnoughLevel) - { - if (HighJumpPvE.CanUse(out act)) return true; - } - else - { - if (JumpPvE.CanUse(out act)) return true; - } + 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 (GeirskogulPvE.CanUse(out act, skipAoeCheck: true)) return true; + if (Player.HasStatus(true, StatusID.LanceCharge) && LanceChargePvE.Cooldown.ElapsedOneChargeAfterGCD(3)) { - if (Player.HasStatus(true, StatusID.LanceCharge) && LanceChargePvE.Cooldown.ElapsedOneChargeAfterGCD(3)) return true; + if (GeirskogulPvE.CanUse(out act)) return true; } if (MirageDivePvE.CanUse(out act)) return true; - if (DragonfireDivePvE.CanUse(out act, skipAoeCheck: true)) + if (Player.HasStatus(true, StatusID.LanceCharge) && LanceChargePvE.Cooldown.ElapsedOneChargeAfterGCD(3)) { - if (Player.HasStatus(true, StatusID.LanceCharge) && LanceChargePvE.Cooldown.ElapsedOneChargeAfterGCD(3)) return true; + if (DragonfireDivePvE.CanUse(out act)) return true; } - if (WyrmwindThrustPvE.CanUse(out act, skipAoeCheck: true)) return true; - if (MergedStatus.HasFlag(AutoStatus.MoveForward) && MoveForwardAbility(nextGCD, out act)) return true; + if (WyrmwindThrustPvE.CanUse(out act)) return true; + if (RiseOfTheDragonPvE.CanUse(out act)) return true; return base.AttackAbility(nextGCD, out act); } @@ -104,6 +116,9 @@ protected override bool GeneralGCD(out IAction? act) if (VorpalThrustPvE.CanUse(out act)) return true; if (TrueThrustPvE.CanUse(out act)) return true; + if (RaidenThrustPvE.CanUse(out act)) return true; + if (LanceBarragePvE.CanUse(out act)) return true; + if (SpiralBlowPvE.CanUse(out act)) return true; if (PiercingTalonPvE.CanUse(out act)) return true; return base.GeneralGCD(out act); diff --git a/BasicRotations/RebornRotations.csproj b/BasicRotations/RebornRotations.csproj index dfbdf16..dcdb229 100644 --- a/BasicRotations/RebornRotations.csproj +++ b/BasicRotations/RebornRotations.csproj @@ -9,7 +9,7 @@ - +