Skip to content

Commit

Permalink
Enhance ability logic and update dependencies
Browse files Browse the repository at this point in the history
Updated `AST_Default` with `StellarNow` property and new condition in `EmergencyAbility` method. Modified `SGE_Default` to change conditions for Prognosis and Diagnosis abilities. Enhanced `NIN_Default` with improved decision-making logic for Ninjutsu and other abilities, including new methods and regions for movement and oGCD logic. Added `DumbQueen` config to `MCH_Default` and updated logic for Automation Queen usage. Added `InterventionTank` config to `PLD_Default` and updated logic for Intervention on CoTank. Changed visibility of status arrays in `StatusHelper` and added XML documentation. Updated `System.Drawing.Common` to `9.0.1` and `Microsoft.CodeAnalysis.CSharp` to `4.12.0`.
  • Loading branch information
LTS-FFXIV committed Jan 27, 2025
1 parent e65639a commit b21945a
Show file tree
Hide file tree
Showing 8 changed files with 744 additions and 180 deletions.
5 changes: 5 additions & 0 deletions BasicRotations/Healer/AST_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ public sealed class AST_Default : AstrologianRotation
[RotationConfig(CombatType.PvE, Name = "Simple Lord of Crowns logic (use under divinaiton)")]
public bool SimpleLord { get; set; } = false;

[RotationConfig(CombatType.PvE, Name = "Detonate Earlthy Star when you have Giant Dominance")]
public bool StellarNow { get; set; } = false;

[Range(4, 20, ConfigUnitType.Seconds)]
[RotationConfig(CombatType.PvE, Name = "Use Earthly Star during countdown timer.")]
public float UseEarthlyStarTime { get; set; } = 15;
Expand Down Expand Up @@ -85,6 +88,8 @@ protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
if (DivinationPvE.CanUse(out _)
&& UseBurstMedicine(out act)) return true;

if (StellarNow && Player.HasStatus(true, StatusID.GiantDominance) && StellarDetonationPvE.CanUse(out act)) return true;

return base.EmergencyAbility(nextGCD, out act);
}

Expand Down
8 changes: 4 additions & 4 deletions BasicRotations/Healer/SGE_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -406,7 +406,7 @@ protected override bool HealAreaGCD(out IAction? act)
if (PneumaPvE.CanUse(out act)) return true;
}

if (_EukrasiaActionAim != null && PrognosisPvE.CanUse(out act))
if (_EukrasiaActionAim == null && PrognosisPvE.CanUse(out act))
{
return true;
}
Expand All @@ -419,7 +419,7 @@ protected override bool HealSingleGCD(out IAction? act)
{
act = null;
if (IsLastAction(ActionID.SwiftcastPvE) && SwiftLogic && MergedStatus.HasFlag(AutoStatus.Raise)) return false;
if (_EukrasiaActionAim != null && DiagnosisPvE.CanUse(out act))
if (_EukrasiaActionAim == null && DiagnosisPvE.CanUse(out act))
{
return true;
}
Expand Down Expand Up @@ -453,13 +453,13 @@ protected override bool GeneralGCD(out IAction? act)

if (DoEukrasianDyskrasia(out act)) return true;

if ((_EukrasiaActionAim != EukrasianDiagnosisPvE || _EukrasiaActionAim != EukrasianPrognosisPvE || _EukrasiaActionAim != EukrasianPrognosisIiPvE || _EukrasiaActionAim != EukrasianDyskrasiaPvE)
if ((_EukrasiaActionAim == null)
&& DyskrasiaPvE.CanUse(out act)) return true;

if (DoEukrasianPrognosis(out act)) return true;
if (DoEukrasianDiagnosis(out act)) return true;

if ( DoEukrasianDosis(out act)) return true;
if (DoEukrasianDosis(out act)) return true;
if (DosisPvE.CanUse(out act)) return true;

if (OOCEukrasia && !InCombat && !Player.HasStatus(true, StatusID.Eukrasia) && EukrasiaPvE.CanUse(out act)) return true;
Expand Down
868 changes: 700 additions & 168 deletions BasicRotations/Melee/NIN_Default.cs

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions BasicRotations/Ranged/MCH_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ public sealed class MCH_Default : MachinistRotation
[RotationConfig(CombatType.PvE, Name = "Prioritize Barrel Stabilizer use")]
private bool BSPrio { get; set; } = true;

[RotationConfig(CombatType.PvE, Name = "Use Automation Queen as soon as its available")]
private bool DumbQueen { get; set; } = false;

[RotationConfig(CombatType.PvE, Name = "Delay Drill for combo GCD if have one charge and about to break combo")]
private bool HoldDrillForCombo { get; set; } = true;

Expand Down Expand Up @@ -106,6 +109,7 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act)
}

// Rook Autoturret/Queen Logic
if (DumbQueen && InCombat && RookAutoturretPvE.CanUse(out act)) return true;
if (CanUseQueenMeow(out act, nextGCD)) return true;

// Use Ricochet and Gauss
Expand Down
5 changes: 5 additions & 0 deletions BasicRotations/Tank/PLD_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ public sealed class PLD_Default : PaladinRotation
[RotationConfig(CombatType.PvE, Name = "Health threshold for Intervention (Set to 0 to disable)")]
private float InterventionRatio { get; set; } = 0.6f;

[RotationConfig(CombatType.PvE, Name = "Attempt to use intevention on CoTank during tankbusters")]
private bool InterventionTank { get; set; } = false;

[Range(0, 1, ConfigUnitType.Percent)]
[RotationConfig(CombatType.PvE, Name = "Health threshold for Cover (Set to 0 to disable)")]
private float CoverRatio { get; set; } = 0.3f;
Expand Down Expand Up @@ -132,6 +135,8 @@ protected override bool DefenseSingleAbility(IAction nextGCD, out IAction? act)
act = null;
if (PassageProtec && Player.HasStatus(true, StatusID.PassageOfArms)) return false;

if (InterventionTank && InterventionPvE.Target.Target?.HasStatus(false, StatusID.Grit, StatusID.RoyalGuard_1833, StatusID.IronWill, StatusID.Defiance) == true && InterventionPvE.CanUse(out act)) return true;

// If the player has the Hallowed Ground status, don't use any abilities.
if (!Player.HasStatus(true, StatusID.HallowedGround))
{
Expand Down
30 changes: 24 additions & 6 deletions RotationSolver.Basic/Helpers/StatusHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -81,38 +81,53 @@ public static class StatusHelper
StatusID.TheEwer_3891,
};

internal static StatusID[] TankStanceStatus { get; } =
/// <summary>
///
/// </summary>
public static StatusID[] TankStanceStatus { get; } =
{
StatusID.Grit,
StatusID.RoyalGuard_1833,
StatusID.IronWill,
StatusID.Defiance,
};

internal static StatusID[] NoNeedHealingStatus { get; } =
/// <summary>
///
/// </summary>
public static StatusID[] NoNeedHealingStatus { get; } =
{
StatusID.Holmgang_409,
StatusID.LivingDead,
//StatusID.WalkingDead,
StatusID.Superbolide,
};

internal static StatusID[] SwiftcastStatus { get; } =
/// <summary>
///
/// </summary>
public static StatusID[] SwiftcastStatus { get; } =
{
StatusID.Swiftcast,
StatusID.Triplecast,
StatusID.Dualcast,
};

internal static StatusID[] AstCardStatus { get; } =
/// <summary>
///
/// </summary>
public static StatusID[] AstCardStatus { get; } =
{
StatusID.TheBalance_3887,
StatusID.TheSpear_3889,
StatusID.Weakness,
StatusID.BrinkOfDeath,
};

internal static StatusID[] RampartStatus { get; } =
/// <summary>
///
/// </summary>
public static StatusID[] RampartStatus { get; } =
{
StatusID.Superbolide,
StatusID.HallowedGround,
Expand All @@ -129,7 +144,10 @@ public static class StatusHelper
StatusID.Superbolide,
};

internal static StatusID[] NoPositionalStatus { get; } =
/// <summary>
///
/// </summary>
public static StatusID[] NoPositionalStatus { get; } =
{
StatusID.TrueNorth,
StatusID.RightEye,
Expand Down
2 changes: 1 addition & 1 deletion RotationSolver.Basic/RotationSolver.Basic.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
<PrivateAssets>all</PrivateAssets>
</ProjectReference>

<PackageReference Include="System.Drawing.Common" Version="9.0.0" />
<PackageReference Include="System.Drawing.Common" Version="9.0.1" />
<ProjectReference Include="..\RotationSolver.SourceGenerators\RotationSolver.SourceGenerators.csproj" OutputItemType="Analyzer" ExcludeAssets="All" />

<None Include="..\COPYING.LESSER">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.11.0" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.12.0" />
</ItemGroup>

<ItemGroup>
Expand Down

0 comments on commit b21945a

Please sign in to comment.