diff --git a/BasicRotations/Healer/SCH_Default.cs b/BasicRotations/Healer/SCH_Default.cs
index edb30e7..31405fe 100644
--- a/BasicRotations/Healer/SCH_Default.cs
+++ b/BasicRotations/Healer/SCH_Default.cs
@@ -9,11 +9,11 @@ public sealed class SCH_Default : ScholarRotation
[RotationConfig(CombatType.PvE, Name = "Use spells with cast times to heal. (Ignored if you are the only healer in party)")]
public bool GCDHeal { get; set; } = false;
- [RotationConfig(CombatType.PvE, Name = "Recitation at 15 seconds remaining on Countdown.")]
- public bool PrevDUN { get; set; } = false;
+ [RotationConfig(CombatType.PvE, Name = "Recitation during Countdown.")]
+ public bool PrevDUN { get; set; } = true;
- [RotationConfig(CombatType.PvE, Name = "Give Adloquium/Galvanize to Tank during Countdown (Requires above enabled)")]
- public bool GiveT { get; set; } = false;
+ [RotationConfig(CombatType.PvE, Name = "Use Adloquium during Countdown")]
+ public bool GiveT { get; set; } = true;
[RotationConfig(CombatType.PvE, Name = "Use Sacred Soil while moving")]
public bool SacredMove { get; set; } = false;
@@ -29,25 +29,15 @@ public sealed class SCH_Default : ScholarRotation
#region Countdown Logic
protected override IAction? CountDownAction(float remainTime)
{
+ var tank = PartyMembers.GetJobCategory(JobRole.Tank);
+
if (remainTime < RuinPvE.Info.CastTime + CountDownAhead
&& RuinPvE.CanUse(out var act)) return act;
+ if (remainTime < 3 && UseBurstMedicine(out act)) return act;
+ if (remainTime is < 4 and > 3 && DeploymentTacticsPvE.CanUse(out act)) return act;
+ if (remainTime is < 7 and > 6 && GiveT && AdloquiumPvE.CanUse(out act)) return act;
+ if (remainTime <= 15 && PrevDUN && RecitationPvE.CanUse(out act)) return act;
- if (PrevDUN && remainTime <= 15 && !DeploymentTacticsPvE.Cooldown.IsCoolingDown && PartyMembers.Count() > 1)
- {
-
- if (!RecitationPvE.Cooldown.IsCoolingDown) return RecitationPvE;
- if (!PartyMembers.Any((n) => n.HasStatus(true, StatusID.Galvanize)))
- {
- if (GiveT)
- {
- return AdloquiumPvE;
- }
- }
- else
- {
- return DeploymentTacticsPvE;
- }
- }
return base.CountDownAction(remainTime);
}
#endregion
@@ -224,4 +214,4 @@ protected override bool GeneralGCD(out IAction? act)
public override bool CanHealAreaSpell => base.CanHealAreaSpell && (GCDHeal || PartyMembers.GetJobCategory(JobRole.Healer).Count() < 2);
#endregion
-}
+}
\ No newline at end of file
diff --git a/BasicRotations/Healer/SGE_Default.cs b/BasicRotations/Healer/SGE_Default.cs
index 74b8776..3c380b2 100644
--- a/BasicRotations/Healer/SGE_Default.cs
+++ b/BasicRotations/Healer/SGE_Default.cs
@@ -61,7 +61,8 @@ public sealed class SGE_Default : SageRotation
#region Countdown Logic
protected override IAction? CountDownAction(float remainTime)
{
- if (remainTime <= 1.5 && DosisPvE.CanUse(out var act)) return act;
+ if (remainTime < DosisPvE.Info.CastTime + CountDownAhead
+ && DosisPvE.CanUse(out var act)) return act;
if (remainTime <= 3 && UseBurstMedicine(out act)) return act;
return base.CountDownAction(remainTime);
}
diff --git a/BasicRotations/Melee/DRG_Default.cs b/BasicRotations/Melee/DRG_Default.cs
index b96f39a..994c496 100644
--- a/BasicRotations/Melee/DRG_Default.cs
+++ b/BasicRotations/Melee/DRG_Default.cs
@@ -11,13 +11,9 @@ public sealed class DRG_Default : DragoonRotation
public bool DoomSpikeWhenever { get; set; } = true;
#endregion
- #region Additional oGCD Logic
+ private static bool InBurstStatus => !Player.WillStatusEnd(0, true, StatusID.BattleLitany);
- [RotationDesc]
- protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
- {
- return base.EmergencyAbility(nextGCD, out act);
- }
+ #region Additional oGCD Logic
[RotationDesc(ActionID.WingedGlidePvE)]
protected override bool MoveForwardAbility(IAction nextGCD, out IAction? act)
@@ -44,23 +40,23 @@ protected sealed override bool DefenseAreaAbility(IAction nextGCD, out IAction?
#endregion
#region oGCD Logic
- protected override bool GeneralAbility(IAction nextGCD, out IAction? act)
+ protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
{
if (IsBurst && InCombat)
{
+ if ((!BattleLitanyPvE.Cooldown.ElapsedAfter(60) || !BattleLitanyPvE.EnoughLevel) && LanceChargePvE.CanUse(out act)) return true;
+
+ if (Player.HasStatus(true, StatusID.LanceCharge) && BattleLitanyPvE.CanUse(out act)) return true;
+
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;
}
- return base.GeneralAbility(nextGCD, out act);
+ return base.EmergencyAbility(nextGCD, out act);
}
protected override bool AttackAbility(IAction nextGCD, out IAction? act)
diff --git a/BasicRotations/Ranged/BRD_Default.cs b/BasicRotations/Ranged/BRD_Default.cs
index 19725fe..bec92f8 100644
--- a/BasicRotations/Ranged/BRD_Default.cs
+++ b/BasicRotations/Ranged/BRD_Default.cs
@@ -45,7 +45,6 @@ public sealed class BRD_Default : BardRotation
// Defines logic for actions to take during the countdown before combat starts.
protected override IAction? CountDownAction(float remainTime)
{
- // tincture needs to be used on -2s exactly
if (remainTime <= 0.7f && UseBurstMedicine(out var act)) return act;
return base.CountDownAction(remainTime);
}
diff --git a/BasicRotations/RebornRotations.csproj b/BasicRotations/RebornRotations.csproj
index ff764bb..1e1898d 100644
--- a/BasicRotations/RebornRotations.csproj
+++ b/BasicRotations/RebornRotations.csproj
@@ -16,7 +16,7 @@
-
+
diff --git a/BasicRotations/Tank/DRK_Default.cs b/BasicRotations/Tank/DRK_Default.cs
index 760b146..773d7ea 100644
--- a/BasicRotations/Tank/DRK_Default.cs
+++ b/BasicRotations/Tank/DRK_Default.cs
@@ -1,6 +1,6 @@
namespace DefaultRotations.Tank;
-[Rotation("Default", CombatType.PvE, GameVersion = "7.00")]
+[Rotation("Default", CombatType.PvE, GameVersion = "7.05")]
[SourceCode(Path = "main/DefaultRotations/Tank/DRK_Balance.cs")]
[Api(3)]
public sealed class DRK_Default : DarkKnightRotation
@@ -77,9 +77,11 @@ protected override bool DefenseSingleAbility(IAction nextGCD, out IAction? act)
//30
if ((!RampartPvE.Cooldown.IsCoolingDown || RampartPvE.Cooldown.ElapsedAfter(60)) && ShadowWallPvE.CanUse(out act)) return true;
+ if ((!RampartPvE.Cooldown.IsCoolingDown || RampartPvE.Cooldown.ElapsedAfter(60)) && ShadowedVigilPvE.CanUse(out act)) return true;
//20
if (ShadowWallPvE.Cooldown.IsCoolingDown && ShadowWallPvE.Cooldown.ElapsedAfter(60) && RampartPvE.CanUse(out act)) return true;
+ if (ShadowedVigilPvE.Cooldown.IsCoolingDown && ShadowedVigilPvE.Cooldown.ElapsedAfter(60) && RampartPvE.CanUse(out act)) return true;
if (ReprisalPvE.CanUse(out act)) return true;
@@ -142,6 +144,8 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act)
#region GCD Logic
protected override bool GeneralGCD(out IAction? act)
{
+ if (DisesteemPvE.CanUse(out act)) return true;
+
//Use Blood
if (UseBlood)
{
@@ -175,7 +179,7 @@ private bool UseBlood
{
// Conditions based on player statuses and ability cooldowns.
if (!DeliriumPvE.EnoughLevel || !LivingShadowPvE.EnoughLevel) return true;
- if (Player.HasStatus(true, StatusID.Delirium_1972) && LivingShadowPvE.Cooldown.IsCoolingDown) return true;
+ if ((Player.HasStatus(true, StatusID.Delirium_1972) || Player.HasStatus(true, StatusID.Delirium_3836)) && LivingShadowPvE.Cooldown.IsCoolingDown) return true;
if ((DeliriumPvE.Cooldown.WillHaveOneChargeGCD(1) && !LivingShadowPvE.Cooldown.WillHaveOneChargeGCD(3)) || Blood >= 90 && !LivingShadowPvE.Cooldown.WillHaveOneChargeGCD(1)) return true;
return false;