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

Dragoon Gierscogola or whatever its called fixed #144

Merged
merged 2 commits into from
Jul 26, 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
85 changes: 50 additions & 35 deletions BasicRotations/Melee/DRG_Default.cs
Original file line number Diff line number Diff line change
@@ -1,79 +1,91 @@
namespace DefaultRotations.Melee;

[Rotation("Default", CombatType.PvE, GameVersion = "7.00")]
[Rotation("Default", CombatType.PvE, GameVersion = "7.01")]
[SourceCode(Path = "main/DefaultRotations/Melee/DRG_Default.cs")]
[Api(2)]

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

[RotationConfig(CombatType.PvE, Name = "Break Single Target Combo to AOE when time to AOE")]
[RotationConfig(CombatType.PvE, Name = "Use Doom Spike for damage uptime if out of melee range even if it breaks combo")]
public bool DoomSpikeWhenever { get; set; } = true;
#endregion

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

return false;
}

#endregion
#region Additional oGCD Logic

#region oGCD Logic
[RotationDesc]
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, usedUp: true)) return true;
}

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

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

return false;
}

[RotationDesc(ActionID.ElusiveJumpPvE)]
protected override bool MoveBackAbility(IAction nextGCD, out IAction? act)
{
if (ElusiveJumpPvE.CanUse(out act)) return true;

protected override bool AttackAbility(IAction nextGCD, out IAction? act)
return false;
}

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

#region oGCD Logic
protected override bool GeneralAbility(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) && !Player.HasStatus(true, StatusID.PowerSurge)) return true;
if (LanceChargePvE.CanUse(out act)) return true;

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

if (NastrondPvE.CanUse(out act, skipAoeCheck: true)) return true;
if (StardiverPvE.CanUse(out act, skipAoeCheck: true)) return true;
return base.GeneralAbility(nextGCD, out act);
}

if (HighJumpPvE.EnoughLevel)
{
if (HighJumpPvE.CanUse(out act)) return true;
}
else
{
if (JumpPvE.CanUse(out act)) return true;
}
protected override bool AttackAbility(IAction nextGCD, out IAction? act)
{
if (StarcrossPvE.CanUse(out act)) return true;
if (NastrondPvE.CanUse(out act)) return true;
if (StardiverPvE.CanUse(out act)) return true;

if (HighJumpPvE.CanUse(out act)) return true;
if (JumpPvE.CanUse(out act)) return true;

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

if (Player.HasStatus(true, StatusID.LanceCharge) && LanceChargePvE.Cooldown.ElapsedOneChargeAfterGCD(3))
{
if (Player.HasStatus(true, StatusID.LanceCharge) && LanceChargePvE.Cooldown.ElapsedOneChargeAfterGCD(3)) return true;
if (GeirskogulPvE.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))
{
if (Player.HasStatus(true, StatusID.LanceCharge) && LanceChargePvE.Cooldown.ElapsedOneChargeAfterGCD(3)) return true;
if (DragonfireDivePvE.CanUse(out act)) return true;
}

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

return base.AttackAbility(nextGCD, out act);
}
Expand Down Expand Up @@ -104,6 +116,9 @@ protected override bool GeneralGCD(out IAction? act)

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

return base.GeneralGCD(out act);
Expand Down
2 changes: 1 addition & 1 deletion BasicRotations/RebornRotations.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<None Remove="Duty\PVPRotations\**" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="RotationSolverReborn.Basic" Version="7.0.1.27" />
<PackageReference Include="RotationSolverReborn.Basic" Version="7.0.1.30" />
</ItemGroup>
<ItemGroup>
<Reference Include="Dalamud">
Expand Down