From 8ef36e1b20c10a8ad977f4eb4a9be249800b06f4 Mon Sep 17 00:00:00 2001 From: LTS-FFXIV <127939494+LTS-FFXIV@users.noreply.github.com> Date: Mon, 2 Sep 2024 15:04:33 -0500 Subject: [PATCH] Various base fixes --- .../Rotations/Basic/DarkKnightRotation.cs | 56 ++++++++++++++++--- .../Rotations/Basic/NinjaRotation.cs | 5 ++ .../Rotations/Basic/SageRotation.cs | 2 - 3 files changed, 54 insertions(+), 9 deletions(-) diff --git a/RotationSolver.Basic/Rotations/Basic/DarkKnightRotation.cs b/RotationSolver.Basic/Rotations/Basic/DarkKnightRotation.cs index 89f46415a..979dc1cb3 100644 --- a/RotationSolver.Basic/Rotations/Basic/DarkKnightRotation.cs +++ b/RotationSolver.Basic/Rotations/Basic/DarkKnightRotation.cs @@ -63,6 +63,42 @@ protected static bool DarkSideEndAfterGCD(uint gctCount = 0, float offset = 0) /// protected static bool ShadowTimeEndAfterGCD(uint gctCount = 0, float offset = 0) => ShadowTimeEndAfter(GCDTime(gctCount, offset)); + + /// + /// Holds the remaining amount of BloodWeapon stacks + /// + public static byte BloodWeaponStacks + { + get + { + byte stacks = Player.StatusStack(true, StatusID.BloodWeapon); + return stacks == byte.MaxValue ? (byte)3 : stacks; + } + } + + /// + /// Holds the remaining amount of Delirium stacks + /// + public static byte DeliriumStacks + { + get + { + byte stacks = Player.StatusStack(true, StatusID.Delirium_3836); + return stacks == byte.MaxValue ? (byte)3 : stacks; + } + } + + /// + /// Holds the remaining amount of Delirium stacks + /// + public static byte LowDeliriumStacks + { + get + { + byte stacks = Player.StatusStack(true, StatusID.Delirium_1972); + return stacks == byte.MaxValue ? (byte)3 : stacks; + } + } #endregion static partial void ModifyHardSlashPvE(ref ActionSetting setting) @@ -190,12 +226,12 @@ static partial void ModifyCarveAndSpitPvE(ref ActionSetting setting) static partial void ModifyBloodspillerPvE(ref ActionSetting setting) { - setting.ActionCheck = () => Blood >= 50 || !Player.WillStatusEnd(0, true, StatusID.Delirium_1972); + setting.ActionCheck = () => Blood >= 50 || DeliriumStacks > 0 || LowDeliriumStacks > 0; } static partial void ModifyQuietusPvE(ref ActionSetting setting) { - setting.ActionCheck = () => Blood >= 50 || !Player.WillStatusEnd(0, true, StatusID.Delirium_1972); + setting.ActionCheck = () => Blood >= 50 || DeliriumStacks > 0 || LowDeliriumStacks > 0; setting.CreateConfig = () => new ActionConfig() { AoeCount = 2, @@ -285,19 +321,17 @@ static partial void ModifyShadowedVigilPvE(ref ActionSetting setting) static partial void ModifyScarletDeliriumPvE(ref ActionSetting setting) { - setting.StatusNeed = [StatusID.Delirium_3836]; + setting.ActionCheck = () => DeliriumStacks == 3; } static partial void ModifyComeuppancePvE(ref ActionSetting setting) { - setting.StatusNeed = [StatusID.Delirium_3836]; - setting.ComboIds = [ActionID.ScarletDeliriumPvE]; + setting.ActionCheck = () => DeliriumStacks == 2; } static partial void ModifyTorcleaverPvE(ref ActionSetting setting) { - setting.StatusNeed = [StatusID.Delirium_3836]; - setting.ComboIds = [ActionID.TorcleaverPvE]; + setting.ActionCheck = () => DeliriumStacks == 1; } static partial void ModifyImpalementPvE(ref ActionSetting setting) @@ -331,4 +365,12 @@ static partial void ModifyPlungePvP(ref ActionSetting setting) { setting.SpecialType = SpecialActionType.MovingForward; } + + /// + public override void DisplayStatus() + { + ImGui.Text("BloodWeaponStacks: " + BloodWeaponStacks.ToString()); + ImGui.Text("DeliriumStacks: " + DeliriumStacks.ToString()); + ImGui.Text("LowDeliriumStacks: " + LowDeliriumStacks.ToString()); + } } diff --git a/RotationSolver.Basic/Rotations/Basic/NinjaRotation.cs b/RotationSolver.Basic/Rotations/Basic/NinjaRotation.cs index a0c9f9033..95714f60a 100644 --- a/RotationSolver.Basic/Rotations/Basic/NinjaRotation.cs +++ b/RotationSolver.Basic/Rotations/Basic/NinjaRotation.cs @@ -15,6 +15,11 @@ partial class NinjaRotation /// Gets the current charges for Kazematoi. /// public static byte Kazematoi => (byte)JobGauge.Kazematoi; + + /// + /// Is enough level for Jin + /// + public static bool HasJin = IncreaseAttackSpeedTrait.EnoughLevel; #endregion static partial void ModifySpinningEdgePvE(ref ActionSetting setting) diff --git a/RotationSolver.Basic/Rotations/Basic/SageRotation.cs b/RotationSolver.Basic/Rotations/Basic/SageRotation.cs index fe664a83f..4259ca6be 100644 --- a/RotationSolver.Basic/Rotations/Basic/SageRotation.cs +++ b/RotationSolver.Basic/Rotations/Basic/SageRotation.cs @@ -62,8 +62,6 @@ static partial void ModifyDiagnosisPvE(ref ActionSetting setting) static partial void ModifyKardiaPvE(ref ActionSetting setting) { setting.TargetType = TargetType.Tank; - setting.StatusProvide = [StatusID.Kardia]; - setting.TargetStatusProvide = [StatusID.Kardion]; setting.ActionCheck = () => !DataCenter.AllianceMembers.Any(m => m.HasStatus(true, StatusID.Kardion)); setting.CreateConfig = () => new ActionConfig() {