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

Commit

Permalink
Merge pull request #213 from FFXIV-CombatReborn/Stuff
Browse files Browse the repository at this point in the history
Remove AST_Archive and update GeneralGCD logic
  • Loading branch information
LTS-FFXIV authored Sep 9, 2024
2 parents 054e2e0 + da946d3 commit eaa9b5e
Show file tree
Hide file tree
Showing 5 changed files with 75 additions and 486 deletions.
218 changes: 0 additions & 218 deletions BasicRotations/Healer/AST_Archive

This file was deleted.

139 changes: 67 additions & 72 deletions BasicRotations/Healer/AST_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,28 @@ public sealed class AST_Default : AstrologianRotation
}
#endregion

#region Defensive Logic
#region oGCD Logic
protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
{
act = null;
if (BubbleProtec && Player.HasStatus(true, StatusID.CollectiveUnconscious_848)) return false;
if (MicroPrio && Player.HasStatus(true, StatusID.Macrocosmos)) return false;

if (!InCombat) return false;

if (OraclePvE.CanUse(out act)) return true;
if (nextGCD.IsTheSameTo(true, AspectedHeliosPvE, HeliosPvE))
{
if (HoroscopePvE.CanUse(out act)) return true;
if (NeutralSectPvE.CanUse(out act)) return true;
}

if (nextGCD.IsTheSameTo(true, BeneficPvE, BeneficIiPvE, AspectedBeneficPvE))
{
if (SynastryPvE.CanUse(out act)) return true;
}
return base.EmergencyAbility(nextGCD, out act);
}

[RotationDesc(ActionID.ExaltationPvE, ActionID.TheArrowPvE, ActionID.TheSpirePvE, ActionID.TheBolePvE, ActionID.TheEwerPvE)]
protected override bool DefenseSingleAbility(IAction nextGCD, out IAction? act)
Expand Down Expand Up @@ -88,31 +109,46 @@ protected override bool DefenseAreaAbility(IAction nextGCD, out IAction? act)
if (CollectiveUnconsciousPvE.CanUse(out act)) return true;
return base.DefenseAreaAbility(nextGCD, out act);
}
#endregion

#region oGCD Logic
protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
[RotationDesc(ActionID.TheArrowPvE, ActionID.TheEwerPvE, ActionID.EssentialDignityPvE,
ActionID.CelestialIntersectionPvE)]
protected override bool HealSingleAbility(IAction nextGCD, out IAction? act)
{
act = null;
if (BubbleProtec && Player.HasStatus(true, StatusID.CollectiveUnconscious_848)) return false;
if (MicroPrio && Player.HasStatus(true, StatusID.Macrocosmos)) return false;

if (base.EmergencyAbility(nextGCD, out act)) return true;
if (InCombat && TheArrowPvE.CanUse(out act)) return true;
if (InCombat && TheEwerPvE.CanUse(out act)) return true;

if (!InCombat) return false;
if (EssentialDignityPvE.CanUse(out act, usedUp: true)) return true;

if (OraclePvE.CanUse(out act)) return true;
if (nextGCD.IsTheSameTo(true, AspectedHeliosPvE, HeliosPvE))
{
if (HoroscopePvE.CanUse(out act)) return true;
if (NeutralSectPvE.CanUse(out act)) return true;
}
if (CelestialIntersectionPvE.CanUse(out act, usedUp: true)) return true;

if (nextGCD.IsTheSameTo(true, BeneficPvE, BeneficIiPvE, AspectedBeneficPvE))
{
if (SynastryPvE.CanUse(out act)) return true;
}
return base.EmergencyAbility(nextGCD, out act);
return base.HealSingleAbility(nextGCD, out act);
}

[RotationDesc(ActionID.CelestialOppositionPvE, ActionID.StellarDetonationPvE, ActionID.HoroscopePvE, ActionID.HoroscopePvE_16558, ActionID.LadyOfCrownsPvE, ActionID.HeliosConjunctionPvE)]
protected override bool HealAreaAbility(IAction nextGCD, out IAction? act)
{
act = null;
if (BubbleProtec && Player.HasStatus(true, StatusID.CollectiveUnconscious_848)) return false;

if (MicrocosmosPvE.CanUse(out act)) return true;
if (MicroPrio && Player.HasStatus(true, StatusID.Macrocosmos)) return false;

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

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

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

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

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

if (HeliosConjunctionPvE.CanUse(out act)) return true;
return base.HealAreaAbility(nextGCD, out act);
}

protected override bool GeneralAbility(IAction nextGCD, out IAction? act)
Expand Down Expand Up @@ -155,64 +191,9 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act)
}
return base.AttackAbility(nextGCD, out act);
}

[RotationDesc(ActionID.TheArrowPvE, ActionID.TheEwerPvE, ActionID.EssentialDignityPvE,
ActionID.CelestialIntersectionPvE)]
protected override bool HealSingleAbility(IAction nextGCD, out IAction? act)
{
act = null;
if (BubbleProtec && Player.HasStatus(true, StatusID.CollectiveUnconscious_848)) return false;
if (MicroPrio && Player.HasStatus(true, StatusID.Macrocosmos)) return false;

if (InCombat && TheArrowPvE.CanUse(out act)) return true;
if (InCombat && TheEwerPvE.CanUse(out act)) return true;

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

if (CelestialIntersectionPvE.CanUse(out act, usedUp: true)) return true;

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

[RotationDesc(ActionID.CelestialOppositionPvE, ActionID.StellarDetonationPvE, ActionID.HoroscopePvE, ActionID.HoroscopePvE_16558, ActionID.LadyOfCrownsPvE, ActionID.HeliosConjunctionPvE)]
protected override bool HealAreaAbility(IAction nextGCD, out IAction? act)
{
act = null;
if (BubbleProtec && Player.HasStatus(true, StatusID.CollectiveUnconscious_848)) return false;

if (MicrocosmosPvE.CanUse(out act)) return true;
if (MicroPrio && Player.HasStatus(true, StatusID.Macrocosmos)) return false;

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

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

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

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

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

if (HeliosConjunctionPvE.CanUse(out act)) return true;
return base.HealAreaAbility(nextGCD, out act);
}
#endregion

#region GCD Logic
protected override bool GeneralGCD(out IAction? act)
{
act = null;
if (BubbleProtec && Player.HasStatus(true, StatusID.CollectiveUnconscious_848)) return false;

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

if (CombustPvE.CanUse(out act)) return true;
if (MaleficPvE.CanUse(out act)) return true;
if (CombustPvE.CanUse(out act, skipStatusProvideCheck: DOTUpkeep)) return true;

return base.GeneralGCD(out act);
}

[RotationDesc(ActionID.AspectedBeneficPvE, ActionID.BeneficIiPvE, ActionID.BeneficPvE)]
protected override bool HealSingleGCD(out IAction? act)
{
Expand Down Expand Up @@ -241,6 +222,20 @@ protected override bool HealAreaGCD(out IAction? act)
if (HeliosPvE.CanUse(out act)) return true;
return base.HealAreaGCD(out act);
}

protected override bool GeneralGCD(out IAction? act)
{
act = null;
if (BubbleProtec && Player.HasStatus(true, StatusID.CollectiveUnconscious_848)) return false;

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

if (CombustPvE.CanUse(out act)) return true;
if (MaleficPvE.CanUse(out act)) return true;
if (CombustPvE.CanUse(out act, skipStatusProvideCheck: DOTUpkeep)) return true;

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

#region Extra Methods
Expand Down
Loading

0 comments on commit eaa9b5e

Please sign in to comment.