Skip to content

Commit

Permalink
Track and display Warrior stacks; refactor action checks
Browse files Browse the repository at this point in the history
Added `InnerReleaseStacks` and `BerserkStacks` to `WarriorRotation` to track status stacks. Implemented `DisplayStatus` to show stack values using ImGui. Refactored `ActionCheck` logic for several actions to use `InnerReleaseStacks` instead of direct status checks, ensuring actions check stack counts. Removed direct `InnerRelease` status checks for `InnerBeastPvE` and `SteelCyclonePvE`, now only checking `BeastGauge`.
  • Loading branch information
LTS-FFXIV committed Sep 7, 2024
1 parent bc328bb commit db80a33
Showing 1 changed file with 35 additions and 4 deletions.
39 changes: 35 additions & 4 deletions RotationSolver.Basic/Rotations/Basic/WarriorRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,37 @@ partial class WarriorRotation
/// </summary>
public static byte BeastGauge => JobGauge.BeastGauge;

/// <summary>
/// Holds the remaining amount of InnerRelease stacks
/// </summary>
public static byte InnerReleaseStacks
{
get
{
byte stacks = Player.StatusStack(true, StatusID.InnerRelease);
return stacks == byte.MaxValue ? (byte)3 : stacks;
}
}

/// <summary>
/// Holds the remaining amount of Berserk stacks
/// </summary>
public static byte BerserkStacks
{
get
{
byte stacks = Player.StatusStack(true, StatusID.Berserk);
return stacks == byte.MaxValue ? (byte)3 : stacks;
}
}

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text("InnerReleaseStacks: " + InnerReleaseStacks.ToString());
ImGui.Text("BerserkStacks: " + BerserkStacks.ToString());
}

private sealed protected override IBaseAction TankStance => DefiancePvE;

static partial void ModifyHeavySwingPvE(ref ActionSetting setting)
Expand Down Expand Up @@ -71,7 +102,7 @@ static partial void ModifyThrillOfBattlePvE(ref ActionSetting setting)

static partial void ModifyInnerBeastPvE(ref ActionSetting setting)
{
setting.ActionCheck = () => BeastGauge >= 50 || Player.HasStatus(true, StatusID.InnerRelease);
setting.ActionCheck = () => BeastGauge >= 50;
setting.UnlockedByQuestID = 66586;
}

Expand Down Expand Up @@ -101,7 +132,7 @@ static partial void ModifyHolmgangPvE(ref ActionSetting setting)

static partial void ModifySteelCyclonePvE(ref ActionSetting setting)
{
setting.ActionCheck = () => BeastGauge >= 50 || Player.HasStatus(true, StatusID.InnerRelease);
setting.ActionCheck = () => BeastGauge >= 50;
setting.CreateConfig = () => new ActionConfig()
{
AoeCount = 2,
Expand Down Expand Up @@ -132,7 +163,7 @@ static partial void ModifyInfuriatePvE(ref ActionSetting setting)

static partial void ModifyFellCleavePvE(ref ActionSetting setting)
{
setting.ActionCheck = () => BeastGauge >= 50 || Player.HasStatus(true, StatusID.InnerRelease);
setting.ActionCheck = () => BeastGauge >= 50 || InnerReleaseStacks > 0;
setting.UnlockedByQuestID = 66124;
setting.StatusProvide = [StatusID.BurgeoningFury];
}
Expand All @@ -153,7 +184,7 @@ static partial void ModifyEquilibriumPvE(ref ActionSetting setting)

static partial void ModifyDecimatePvE(ref ActionSetting setting)
{
setting.ActionCheck = () => BeastGauge >= 50 || Player.HasStatus(true, StatusID.InnerRelease);
setting.ActionCheck = () => BeastGauge >= 50 || InnerReleaseStacks > 0;
setting.UnlockedByQuestID = 66137;
setting.CreateConfig = () => new ActionConfig()
{
Expand Down

0 comments on commit db80a33

Please sign in to comment.