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()
{