diff --git a/BasicRotations/Magical/RDM_Default.cs b/BasicRotations/Magical/RDM_Default.cs index 6767296..12b5fd4 100644 --- a/BasicRotations/Magical/RDM_Default.cs +++ b/BasicRotations/Magical/RDM_Default.cs @@ -71,6 +71,8 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act) if (IsBurst && UseBurstMedicine(out act)) return true; //Attack abilities. + if (ViceOfThornsPvE.CanUse(out act, skipAoeCheck: true)) return true; + if (PrefulgencePvE.CanUse(out act, skipAoeCheck: true)) return true; if (ContreSixtePvE.CanUse(out act, skipAoeCheck: true)) return true; if (FlechePvE.CanUse(out act)) return true; @@ -82,20 +84,31 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act) #endregion #region GCD Logic + protected override bool EmergencyGCD(out IAction? act) { + if (IsMoving && RangedSwordplay && ReprisePvE.CanUse(out act)) return true; + if (ManaStacks == 3) { if (BlackMana > WhiteMana) { if (VerholyPvE.CanUse(out act, skipAoeCheck: true)) return true; } + if (VerflarePvE.CanUse(out act, skipAoeCheck: true)) return true; } - if (ResolutionPvE.CanUse(out act, skipAoeCheck: true)) return true; - if (ScorchPvE.CanUse(out act, skipAoeCheck: true)) return true; - + // Hardcode Resolution & Scorch to avoid double melee without finishers + if (IsLastGCD(ActionID.ScorchPvE)) + { + if (ResolutionPvE.CanUse(out act, skipStatusProvideCheck: true, skipAoeCheck: true)) return true; + } + + if (IsLastGCD(ActionID.VerholyPvE, ActionID.VerflarePvE)) + { + if (ScorchPvE.CanUse(out act, skipStatusProvideCheck: true, skipAoeCheck: true)) return true; + } if (IsLastGCD(true, MoulinetPvE) && MoulinetPvE.CanUse(out act, skipAoeCheck: true)) return true; if (ZwerchhauPvE.CanUse(out act)) return true; @@ -105,7 +118,7 @@ protected override bool EmergencyGCD(out IAction? act) if (MoulinetPvE.CanUse(out act)) { - if (BlackMana >= 60 && WhiteMana >= 60 || Player.HasStatus(true, StatusID.MagickedSwordplay)) return true; + if (BlackMana >= 50 && WhiteMana >= 50 || Player.HasStatus(true, StatusID.MagickedSwordplay)) return true; } else { @@ -120,7 +133,9 @@ protected override bool GeneralGCD(out IAction? act) { act = null; if (ManaStacks == 3) return false; - + + if (GrandImpactPvE.CanUse(out act)) return true; + if (!VerthunderIiPvE.CanUse(out _)) { if (VerfirePvE.CanUse(out act)) return true; @@ -128,6 +143,7 @@ protected override bool GeneralGCD(out IAction? act) } if (ScatterPvE.CanUse(out act)) return true; + if (WhiteMana < BlackMana) { if (VeraeroIiPvE.CanUse(out act) && BlackMana - WhiteMana != 5) return true; @@ -138,8 +154,6 @@ protected override bool GeneralGCD(out IAction? act) if (JoltPvE.CanUse(out act)) return true; - if (IsMoving && RangedSwordplay && ReprisePvE.CanUse(out act)) return true; - if (UseVercure && NotInCombatDelay && VercurePvE.CanUse(out act)) return true; return base.GeneralGCD(out act);