Skip to content

Commit

Permalink
delirium core fixes, verified rotation no longer hangs
Browse files Browse the repository at this point in the history
  • Loading branch information
LTS-FFXIV committed Dec 28, 2024
1 parent e12022c commit 0546013
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 12 deletions.
19 changes: 11 additions & 8 deletions BasicRotations/Tank/DRK_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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;

Expand Down
44 changes: 40 additions & 4 deletions RotationSolver.Basic/Rotations/Basic/DarkKnightRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,31 @@ partial class DarkKnightRotation
///
/// </summary>
public static bool HasDarkArts => JobGauge.HasDarkArts;

/// <summary>
///
/// </summary>
public static bool HasDelirium => !Player.WillStatusEnd(0, true, StatusID.Delirium_3836);

/// <summary>
///
/// </summary>
public static bool ScarletDeliriumReady => Service.GetAdjustedActionId(ActionID.BloodspillerPvE) == ActionID.ScarletDeliriumPvE;

/// <summary>
///
/// </summary>
public static bool ComeuppanceReady => Service.GetAdjustedActionId(ActionID.BloodspillerPvE) == ActionID.ComeuppancePvE;

/// <summary>
///
/// </summary>
public static bool TorcleaverReady => Service.GetAdjustedActionId(ActionID.BloodspillerPvE) == ActionID.TorcleaverPvE;

/// <summary>
///
/// </summary>
public static bool ImpalementReady => Service.GetAdjustedActionId(ActionID.QuietusPvE) == ActionID.ImpalementPvE;

static float DarkSideTimeRemainingRaw => JobGauge.DarksideTimeRemaining / 1000f;

Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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,
Expand All @@ -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,
Expand Down

0 comments on commit 0546013

Please sign in to comment.