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

Commit

Permalink
Merge pull request #69 from FFXIV-CombatReborn/Drg-aoe-whenevs
Browse files Browse the repository at this point in the history
Drg beta aoe whenever config option
  • Loading branch information
Toshi authored May 1, 2024
2 parents 6d59e5b + 9ff57ea commit ceff538
Showing 1 changed file with 115 additions and 0 deletions.
115 changes: 115 additions & 0 deletions BasicRotations/Melee/DRG_Beta.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
namespace DefaultRotations.Melee;

[Rotation("Beta", CombatType.PvE, GameVersion = "6.58")]
[SourceCode(Path = "main/DefaultRotations/Melee/DRG_Beta.cs")]
[Api(1)]

public sealed class DRG_Beta : DragoonRotation
{
#region Config Options
[RotationDesc(ActionID.SpineshatterDivePvE, ActionID.DragonfireDivePvE)]

[RotationConfig(CombatType.PvE, Name = "Break Single Target for AOE cause why the heck not let's test it")]
public bool DoomSpikeWhenever { get; set; } = true;
#endregion

#region Move Logic
protected override bool MoveForwardAbility(IAction nextGCD, out IAction act)
{
if (SpineshatterDivePvE.CanUse(out act)) return true;
if (DragonfireDivePvE.CanUse(out act, skipAoeCheck: true)) return true;

return false;
}

#endregion

#region oGCD Logic
protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
{
if (nextGCD.IsTheSameTo(true, FullThrustPvE, CoerthanTormentPvE)
|| Player.HasStatus(true, StatusID.LanceCharge) && nextGCD.IsTheSameTo(false, FangAndClawPvE))
{
if (LifeSurgePvE.CanUse(out act, onLastAbility: true, usedUp: true)) return true;
}

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



protected override bool AttackAbility(IAction nextGCD, out IAction? act)
{
if (IsBurst && InCombat)
{
if (LanceChargePvE.CanUse(out act, skipAoeCheck: true) && Player.HasStatus(true, StatusID.PowerSurge)) return true;
if (LanceChargePvE.CanUse(out act, skipAoeCheck: true, onLastAbility: true) && !Player.HasStatus(true, StatusID.PowerSurge)) return true;

if (DragonSightPvE.CanUse(out act, skipAoeCheck: true)) return true;
if (BattleLitanyPvE.CanUse(out act, skipAoeCheck: true)) return true;
}

if (NastrondPvE.CanUse(out act, skipAoeCheck: true)) return true;
if (StardiverPvE.CanUse(out act, skipAoeCheck: true)) return true;

if (HighJumpPvE.EnoughLevel)
{
if (HighJumpPvE.CanUse(out act)) return true;
}
else
{
if (JumpPvE.CanUse(out act)) return true;
}

if (GeirskogulPvE.CanUse(out act, skipAoeCheck: true)) return true;

if (SpineshatterDivePvE.CanUse(out act, usedUp: true))
{
if (Player.HasStatus(true, StatusID.LanceCharge) && LanceChargePvE.Cooldown.ElapsedOneChargeAfterGCD(3)) return true;
}
if (Player.HasStatus(true, StatusID.PowerSurge) && SpineshatterDivePvE.Cooldown.CurrentCharges != 1 && SpineshatterDivePvE.CanUse(out act)) return true;

if (MirageDivePvE.CanUse(out act)) return true;

if (DragonfireDivePvE.CanUse(out act, skipAoeCheck: true))
{
if (Player.HasStatus(true, StatusID.LanceCharge) && LanceChargePvE.Cooldown.ElapsedOneChargeAfterGCD(3)) return true;
}

if (WyrmwindThrustPvE.CanUse(out act, skipAoeCheck: true)) return true;
if (MergedStatus.HasFlag(AutoStatus.MoveForward) && MoveForwardAbility(nextGCD, out act)) return true;

return base.AttackAbility(nextGCD, out act);
}
#endregion

#region GCD Logic
protected override bool GeneralGCD(out IAction? act)
{
var doomSpikeRightMeow = DoomSpikeWhenever;

if (CoerthanTormentPvE.CanUse(out act)) return true;
if (SonicThrustPvE.CanUse(out act)) return true;
if (DoomSpikePvE.CanUse(out act, skipComboCheck: doomSpikeRightMeow)) return true;


if (WheelingThrustPvE.CanUse(out act)) return true;
if (FangAndClawPvE.CanUse(out act)) return true;


if (FullThrustPvE.CanUse(out act)) return true;
if (ChaosThrustPvE.CanUse(out act)) return true;

if (Player.WillStatusEndGCD(5, 0, true, StatusID.PowerSurge_2720))
{
if (DisembowelPvE.CanUse(out act)) return true;
}

if (VorpalThrustPvE.CanUse(out act)) return true;
if (TrueThrustPvE.CanUse(out act)) return true;
if (PiercingTalonPvE.CanUse(out act)) return true;

return base.GeneralGCD(out act);
}
#endregion
}

0 comments on commit ceff538

Please sign in to comment.