Skip to content
This repository has been archived by the owner on Nov 23, 2024. It is now read-only.

Nuget bump and moved all ability call logic to rotations #266

Merged
merged 1 commit into from
Sep 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 29 additions & 1 deletion BasicRotations/Melee/MNK_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,14 +61,42 @@ protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
return base.EmergencyAbility(nextGCD, out act);
}

[RotationDesc(ActionID.ThunderclapPvE)]
protected override bool MoveForwardAbility(IAction nextGCD, out IAction? act)
{
if (ThunderclapPvE.CanUse(out act)) return true;
return base.MoveForwardAbility(nextGCD, out act);
}

[RotationDesc(ActionID.FeintPvE)]
protected override bool DefenseAreaAbility(IAction nextGCD, out IAction? act)
{
if (FeintPvE.CanUse(out act)) return true;
return base.DefenseAreaAbility(nextGCD, out act);
}

[RotationDesc(ActionID.MantraPvE)]
protected override bool HealAreaAbility(IAction nextGCD, out IAction? act)
{
if (MantraPvE.CanUse(out act)) return true;
return base.HealAreaAbility(nextGCD, out act);
}

[RotationDesc(ActionID.RiddleOfEarthPvE)]
protected override bool DefenseSingleAbility(IAction nextGCD, out IAction? act)
{
if (RiddleOfEarthPvE.CanUse(out act, usedUp: true)) return true;
return base.DefenseSingleAbility(nextGCD, out act);
}

protected override bool AttackAbility(IAction nextGCD, out IAction? act)
{
act = null;
if (EnableTEAChecker && Target.Name.ToString() == "Jagd Doll" && Target.GetHealthRatio() < 0.25)
{
return false;
}

// you need to position yourself in the centre of the mobs if they are large, that range is only 3 yarms
if (AutoPB_AOE && NumberOfHostilesInRange >= 2)
{
Expand Down
8 changes: 4 additions & 4 deletions BasicRotations/Melee/RPR_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,8 @@ protected override bool GeneralGCD(out IAction? act)
}

// Try using Gallows/Gibbet that player is in position for when without Enchanced status
if (GallowsPvE.CanUse(out act, skipComboCheck: true) && CanHitPositional(EnemyPositional.Rear, GallowsPvE.Target.Target)) return true;
if (GibbetPvE.CanUse(out act, skipComboCheck: true) && CanHitPositional(EnemyPositional.Flank, GibbetPvE.Target.Target)) return true;
if (GallowsPvE.CanUse(out act, skipComboCheck: true) && GallowsPvE.Target.Target != null && CanHitPositional(EnemyPositional.Rear, GallowsPvE.Target.Target)) return true;
if (GibbetPvE.CanUse(out act, skipComboCheck: true) && GibbetPvE.Target.Target != null && CanHitPositional(EnemyPositional.Flank, GibbetPvE.Target.Target)) return true;

if (GallowsPvE.CanUse(out act, skipComboCheck: true)) return true;
if (GibbetPvE.CanUse(out act, skipComboCheck: true)) return true;
Expand Down Expand Up @@ -205,8 +205,8 @@ private bool ItsGluttonyTime(out IAction? act)
}

// Try using Executioners Gallows/Gibbet that player is in position for when without Enchanced status
if (ExecutionersGallowsPvE.CanUse(out act, skipComboCheck: true) && CanHitPositional(EnemyPositional.Rear, ExecutionersGallowsPvE.Target.Target)) return true;
if (ExecutionersGibbetPvE.CanUse(out act, skipComboCheck: true) && CanHitPositional(EnemyPositional.Flank, ExecutionersGibbetPvE.Target.Target)) return true;
if (ExecutionersGallowsPvE.CanUse(out act, skipComboCheck: true) && ExecutionersGallowsPvE.Target.Target != null && CanHitPositional(EnemyPositional.Rear, ExecutionersGallowsPvE.Target.Target)) return true;
if (ExecutionersGibbetPvE.CanUse(out act, skipComboCheck: true) && ExecutionersGibbetPvE.Target.Target != null && CanHitPositional(EnemyPositional.Flank, ExecutionersGibbetPvE.Target.Target)) return true;

if (ExecutionersGallowsPvE.CanUse(out act, skipComboCheck: true)) return true;
if (ExecutionersGibbetPvE.CanUse(out act, skipComboCheck: true)) return true;
Expand Down
8 changes: 4 additions & 4 deletions BasicRotations/Melee/SAM_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -164,15 +164,15 @@ protected override bool GeneralGCD(out IAction? act)
YukikazePvE.CanUse(out act, skipComboCheck: HaveMeikyoShisui && HasGetsu && HasKa)) return true;

// single target 123 combo's 3 or used 3 directly during burst when MeikyoShisui is active, while also trying to start with the one that player is in position for extra DMG
if (GekkoPvE.CanUse(out act, skipComboCheck: HaveMeikyoShisui && !HasGetsu) && CanHitPositional(EnemyPositional.Rear, GekkoPvE.Target.Target)) return true;
if (KashaPvE.CanUse(out act, skipComboCheck: HaveMeikyoShisui && !HasKa) && CanHitPositional(EnemyPositional.Flank, KashaPvE.Target.Target)) return true;
if (GekkoPvE.CanUse(out act, skipComboCheck: HaveMeikyoShisui && !HasGetsu) && GekkoPvE.Target.Target != null && CanHitPositional(EnemyPositional.Rear, GekkoPvE.Target.Target)) return true;
if (KashaPvE.CanUse(out act, skipComboCheck: HaveMeikyoShisui && !HasKa) && KashaPvE.Target.Target != null && CanHitPositional(EnemyPositional.Flank, KashaPvE.Target.Target)) return true;

if (GekkoPvE.CanUse(out act, skipComboCheck: HaveMeikyoShisui && !HasGetsu)) return true;
if (KashaPvE.CanUse(out act, skipComboCheck: HaveMeikyoShisui && !HasKa)) return true;

// single target 123 combo's 2, while also trying to start with the one that player is in position for extra DMG
if (!HasGetsu && JinpuPvE.CanUse(out act) && (CanHitPositional(EnemyPositional.Rear, JinpuPvE.Target.Target) || (!HasMoon && HasFlower))) return true;
if (!HasKa && ShifuPvE.CanUse(out act) && (CanHitPositional(EnemyPositional.Flank, ShifuPvE.Target.Target) || (!HasFlower && HasMoon))) return true;
if (!HasGetsu && JinpuPvE.CanUse(out act) && JinpuPvE.Target.Target != null && (CanHitPositional(EnemyPositional.Rear, JinpuPvE.Target.Target) || (!HasMoon && HasFlower))) return true;
if (!HasKa && ShifuPvE.CanUse(out act) && ShifuPvE.Target.Target != null && (CanHitPositional(EnemyPositional.Flank, ShifuPvE.Target.Target) || (!HasFlower && HasMoon))) return true;

if ((!HasMoon || IsMoonTimeLessThanFlower || !ShifuPvE.EnoughLevel) && JinpuPvE.CanUse(out act)) return true;
if ((!HasFlower || !IsMoonTimeLessThanFlower) && ShifuPvE.CanUse(out act)) return true;
Expand Down
4 changes: 2 additions & 2 deletions BasicRotations/Melee/VPR_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -167,8 +167,8 @@ protected override bool GeneralGCD(out IAction? act)

////Single Target Dread Combo
// Try using Coil that player is in position for extra damage first
if (HuntersCoilPvE.CanUse(out act, skipComboCheck: true) && CanHitPositional(EnemyPositional.Flank, HuntersCoilPvE.Target.Target)) return true;
if (SwiftskinsCoilPvE.CanUse(out act, skipComboCheck: true) && CanHitPositional(EnemyPositional.Rear, SwiftskinsCoilPvE.Target.Target)) return true;
if (HuntersCoilPvE.CanUse(out act, skipComboCheck: true) && HuntersCoilPvE.Target.Target != null && CanHitPositional(EnemyPositional.Flank, HuntersCoilPvE.Target.Target)) return true;
if (SwiftskinsCoilPvE.CanUse(out act, skipComboCheck: true) && SwiftskinsCoilPvE.Target.Target != null && CanHitPositional(EnemyPositional.Rear, SwiftskinsCoilPvE.Target.Target)) return true;

if (HuntersCoilPvE.CanUse(out act, skipComboCheck: true)) return true;
if (SwiftskinsCoilPvE.CanUse(out act, skipComboCheck: true)) return true;
Expand Down
21 changes: 21 additions & 0 deletions BasicRotations/Ranged/BRD_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,27 @@ protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
return base.EmergencyAbility(nextGCD, out act);
}

[RotationDesc(ActionID.TheWardensPaeanPvE)]
protected override bool DispelGCD(out IAction? act)
{
if (TheWardensPaeanPvE.CanUse(out act)) return true;
return base.DispelGCD(out act);
}

[RotationDesc(ActionID.NaturesMinnePvE)]
protected override bool HealSingleAbility(IAction nextGCD, out IAction? act)
{
if (NaturesMinnePvE.CanUse(out act)) return true;
return base.HealSingleAbility(nextGCD, out act);
}

[RotationDesc(ActionID.TroubadourPvE)]
protected override bool DefenseAreaAbility(IAction nextGCD, out IAction act)
{
if (TroubadourPvE.CanUse(out act)) return true;
return false;
}

protected override bool AttackAbility(IAction nextGCD, out IAction? act)
{
act = null;
Expand Down
22 changes: 22 additions & 0 deletions BasicRotations/Ranged/DNC_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,28 @@ protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
return false;
}

[RotationDesc(ActionID.CuringWaltzPvE, ActionID.ImprovisationPvE)]
protected override bool HealAreaAbility(IAction nextGCD, out IAction act)
{
if (CuringWaltzPvE.CanUse(out act, usedUp: true)) return true;
if (ImprovisationPvE.CanUse(out act, usedUp: true)) return true;
return false;
}

[RotationDesc(ActionID.ShieldSambaPvE)]
protected override bool DefenseAreaAbility(IAction nextGCD, out IAction act)
{
if (ShieldSambaPvE.CanUse(out act, usedUp: true)) return true;
return false;
}

[RotationDesc(ActionID.EnAvantPvE)]
protected override bool MoveForwardAbility(IAction nextGCD, out IAction act)
{
if (EnAvantPvE.CanUse(out act, usedUp: true)) return true;
return false;
}

// Override the method for handling attack abilities
protected override bool AttackAbility(IAction nextGCD, out IAction? act)
{
Expand Down
8 changes: 8 additions & 0 deletions BasicRotations/Ranged/MCH_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,14 @@ protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
return base.EmergencyAbility(nextGCD, out act);
}

[RotationDesc(ActionID.TacticianPvE, ActionID.DismantlePvE)]
protected override bool DefenseAreaAbility(IAction nextGCD, out IAction act)
{
if (TacticianPvE.CanUse(out act, skipAoeCheck: true)) return true;
if (DismantlePvE.CanUse(out act, skipAoeCheck: true)) return true;
return false;
}

// Logic for using attack abilities outside of GCD, focusing on burst windows and cooldown management.
protected override bool AttackAbility(IAction nextGCD, out IAction? act)
{
Expand Down
12 changes: 12 additions & 0 deletions BasicRotations/Ranged/zMCH_Beta.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ public sealed class zMCH_Beta : MachinistRotation

[RotationConfig(CombatType.PvE, Name = "Use burst medicine when available for midfight burst phase (requires auto burst option on)")]
private bool MidfightBurstMeds { get; set; } = false;

[RotationConfig(CombatType.PvE, Name = "Prevent the use of defense abilties during hypercharge burst")]
private bool BurstDefense { get; set; } = false;
#endregion

#region Countdown logic
Expand Down Expand Up @@ -58,6 +61,15 @@ protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
return base.EmergencyAbility(nextGCD, out act);
}

[RotationDesc(ActionID.TacticianPvE, ActionID.DismantlePvE)]
protected override bool DefenseAreaAbility(IAction nextGCD, out IAction? act)
{
if ((!BurstDefense || (BurstDefense && !IsOverheated)) && TacticianPvE.CanUse(out act, skipAoeCheck: true)) return true;
if ((!BurstDefense || (BurstDefense && !IsOverheated)) && DismantlePvE.CanUse(out act, skipAoeCheck: true)) return true;

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

// Logic for using attack abilities outside of GCD, focusing on burst windows and cooldown management.
protected override bool AttackAbility(IAction nextGCD, out IAction? act)
{
Expand Down
8 changes: 8 additions & 0 deletions BasicRotations/Ranged/zMCH_Beta_2.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,14 @@ protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
return base.EmergencyAbility(nextGCD, out act);
}

[RotationDesc(ActionID.TacticianPvE, ActionID.DismantlePvE)]
protected override bool DefenseAreaAbility(IAction nextGCD, out IAction act)
{
if (TacticianPvE.CanUse(out act, skipAoeCheck: true)) return true;
if (DismantlePvE.CanUse(out act, skipAoeCheck: true)) return true;
return false;
}

// Logic for using attack abilities outside of GCD, focusing on burst windows and cooldown management.
protected override bool AttackAbility(IAction nextGCD, out IAction? act)
{
Expand Down
2 changes: 1 addition & 1 deletion BasicRotations/RebornRotations.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<Compile Include="Duty\EmanationDefault" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="RotationSolverReborn.Basic" Version="7.0.5.135" />
<PackageReference Include="RotationSolverReborn.Basic" Version="7.0.5.137" />
</ItemGroup>
<ItemGroup>
<Reference Include="Dalamud">
Expand Down
17 changes: 17 additions & 0 deletions BasicRotations/Tank/PLD_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,9 @@ protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
{
if (Player.HasStatus(true, StatusID.Cover) && HallowedWithCover && HallowedGroundPvE.CanUse(out act)) return true;

if (HallowedGroundPvE.CanUse(out act)
&& Player.GetHealthRatio() <= HealthForDyingTanks) return true;

if ((Player.HasStatus(true, StatusID.Rampart) || Player.HasStatus(true, StatusID.Sentinel)) &&
InterventionPvE.CanUse(out act) &&
InterventionPvE.Target.Target?.GetHealthRatio() < 0.6) return true;
Expand All @@ -93,6 +96,13 @@ protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
return base.EmergencyAbility(nextGCD, out act);
}

[RotationDesc(ActionID.IntervenePvE)]
protected override bool MoveForwardAbility(IAction nextGCD, out IAction? act)
{
if (IntervenePvE.CanUse(out act)) return true;
return base.MoveForwardAbility(nextGCD, out act);
}

[RotationDesc(ActionID.SentinelPvE, ActionID.RampartPvE, ActionID.BulwarkPvE, ActionID.SheltronPvE, ActionID.ReprisalPvE)]
protected override bool DefenseSingleAbility(IAction nextGCD, out IAction? act)
{
Expand Down Expand Up @@ -218,6 +228,13 @@ protected override bool GeneralGCD(out IAction? act)

return base.GeneralGCD(out act);
}

[RotationDesc(ActionID.ClemencyPvE)]
protected override bool HealSingleGCD(out IAction? act)
{
if (ClemencyPvE.CanUse(out act)) return true;
return base.HealSingleGCD(out act);
}
#endregion

#region Extra Methods
Expand Down