diff --git a/BasicRotations/Tank/DRK_Default.cs b/BasicRotations/Tank/DRK_Default.cs
index 4a0f0f0db..1358e9a88 100644
--- a/BasicRotations/Tank/DRK_Default.cs
+++ b/BasicRotations/Tank/DRK_Default.cs
@@ -136,13 +136,16 @@ 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;
- //AOE
- if (ImpalementPvE.CanUse(out act, skipComboCheck: true)) return true;
- if (QuietusPvE.CanUse(out act, skipComboCheck: true)) return true;
+ //AOE Delirium
+ if (ImpalementPvE.CanUse(out act)) return true;
+ if (QuietusPvE.CanUse(out act)) return true;
- if (TorcleaverPvE.CanUse(out act)) return true;
- if (DisesteemPvE.CanUse(out act)) return true;
+ // Single Target Delirium
+ if (TorcleaverPvE.CanUse(out act, skipComboCheck: true)) return true;
+ if (ComeuppancePvE.CanUse(out act, skipComboCheck: true)) return true;
+ if (ScarletDeliriumPvE.CanUse(out act, skipComboCheck: true)) return true;
if (BloodspillerPvE.CanUse(out act, skipComboCheck: true)) return true;
@@ -151,9 +154,9 @@ protected override bool GeneralGCD(out IAction? act)
if (UnleashPvE.CanUse(out act)) return true;
//Single Target
- if (DeliriumStacks == 0 && LowDeliriumStacks == 0 && SouleaterPvE.CanUse(out act)) return true;
- if (DeliriumStacks == 0 && LowDeliriumStacks == 0 && SyphonStrikePvE.CanUse(out act)) return true;
- if (DeliriumStacks == 0 && LowDeliriumStacks == 0 && HardSlashPvE.CanUse(out act)) return true;
+ if (!HasDelirium && SouleaterPvE.CanUse(out act)) return true;
+ if (!HasDelirium && SyphonStrikePvE.CanUse(out act)) return true;
+ if (!HasDelirium && HardSlashPvE.CanUse(out act)) return true;
if (UnmendPvE.CanUse(out act)) return true;
diff --git a/RotationSolver.Basic/Rotations/Basic/DarkKnightRotation.cs b/RotationSolver.Basic/Rotations/Basic/DarkKnightRotation.cs
index a6e46a944..29b4b788a 100644
--- a/RotationSolver.Basic/Rotations/Basic/DarkKnightRotation.cs
+++ b/RotationSolver.Basic/Rotations/Basic/DarkKnightRotation.cs
@@ -17,6 +17,31 @@ partial class DarkKnightRotation
///
///
public static bool HasDarkArts => JobGauge.HasDarkArts;
+
+ ///
+ ///
+ ///
+ public static bool HasDelirium => !Player.WillStatusEnd(0, true, StatusID.Delirium_3836);
+
+ ///
+ ///
+ ///
+ public static bool ScarletDeliriumReady => Service.GetAdjustedActionId(ActionID.BloodspillerPvE) == ActionID.ScarletDeliriumPvE;
+
+ ///
+ ///
+ ///
+ public static bool ComeuppanceReady => Service.GetAdjustedActionId(ActionID.BloodspillerPvE) == ActionID.ComeuppancePvE;
+
+ ///
+ ///
+ ///
+ public static bool TorcleaverReady => Service.GetAdjustedActionId(ActionID.BloodspillerPvE) == ActionID.TorcleaverPvE;
+
+ ///
+ ///
+ ///
+ public static bool ImpalementReady => Service.GetAdjustedActionId(ActionID.QuietusPvE) == ActionID.ImpalementPvE;
static float DarkSideTimeRemainingRaw => JobGauge.DarksideTimeRemaining / 1000f;
@@ -110,6 +135,11 @@ public override void DisplayStatus()
ImGui.Text("DarkSideTime: " + DarkSideTime.ToString());
ImGui.Text("HasDarkArts: " + HasDarkArts.ToString());
ImGui.Text("Blood: " + Blood.ToString());
+ ImGui.Text("HasDelirium: " + HasDelirium.ToString());
+ ImGui.Text("ScarletDeliriumReady: " + ScarletDeliriumReady.ToString());
+ ImGui.Text("ComeuppanceReady: " + ComeuppanceReady.ToString());
+ ImGui.Text("TorcleaverReady: " + TorcleaverReady.ToString());
+ ImGui.Text("ImpalementReady: " + ImpalementReady.ToString());
}
#endregion
@@ -333,22 +363,27 @@ static partial void ModifyShadowedVigilPvE(ref ActionSetting setting)
static partial void ModifyScarletDeliriumPvE(ref ActionSetting setting)
{
-
+ setting.ActionCheck = () => ScarletDeliriumReady;
+ setting.MPOverride = () => 0;
}
static partial void ModifyComeuppancePvE(ref ActionSetting setting)
{
-
+ setting.ActionCheck = () => ComeuppanceReady;
+ setting.MPOverride = () => 0;
+ setting.ComboIds = [ActionID.ScarletDeliriumPvE];
}
static partial void ModifyTorcleaverPvE(ref ActionSetting setting)
{
-
+ setting.ActionCheck = () => TorcleaverReady;
+ setting.MPOverride = () => 0;
+ setting.ComboIds = [ActionID.ComeuppancePvE];
}
static partial void ModifyImpalementPvE(ref ActionSetting setting)
{
- setting.ActionCheck = () => !Player.WillStatusEnd(0, true, StatusID.Delirium_3836);
+ setting.ActionCheck = () => ImpalementReady;
setting.CreateConfig = () => new ActionConfig()
{
AoeCount = 2,
@@ -358,6 +393,7 @@ static partial void ModifyImpalementPvE(ref ActionSetting setting)
static partial void ModifyDisesteemPvE(ref ActionSetting setting)
{
setting.StatusNeed = [StatusID.Scorn];
+ setting.MPOverride = () => 0;
setting.CreateConfig = () => new ActionConfig()
{
AoeCount = 1,