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

SCH configurable, and GCDHeal setting on WHM and AST, missed those #100

Merged
merged 1 commit into from
May 29, 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
9 changes: 9 additions & 0 deletions BasicRotations/Healer/AST_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ namespace DefaultRotations.Healer;
public sealed class AST_Default : AstrologianRotation
{
#region Config Options
[RotationConfig(CombatType.PvE, Name = "Use spells with cast times to heal. (Ignored if you are the only healer in party)")]
public bool GCDHeal { 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 @@ -206,4 +209,10 @@ protected override bool HealAreaAbility(IAction nextGCD, out IAction? act)
return base.HealAreaAbility(nextGCD, out act);
}
#endregion

#region Extra Methods
public override bool CanHealSingleSpell => base.CanHealSingleSpell && (GCDHeal || PartyMembers.GetJobCategory(JobRole.Healer).Count() < 2);
public override bool CanHealAreaSpell => base.CanHealAreaSpell && (GCDHeal || PartyMembers.GetJobCategory(JobRole.Healer).Count() < 2);

#endregion
}
10 changes: 7 additions & 3 deletions BasicRotations/Healer/SCH_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,18 @@ namespace DefaultRotations.Healer;
public sealed class SCH_Default : ScholarRotation
{
#region Config Options
[RotationConfig(CombatType.PvE, Name = "Use spells with cast times to heal.")]
[RotationConfig(CombatType.PvE, Name = "Use spells with cast times to heal. (Ignored if you are the only healer in party)")]
public bool GCDHeal { get; set; } = false;

[RotationConfig(CombatType.PvE, Name = "Recitation at 15 seconds remaining on Countdown.")]
public bool PrevDUN { get; set; } = false;

[RotationConfig(CombatType.PvE, Name = "Give Recitation to Tank")]
[RotationConfig(CombatType.PvE, Name = "Give Adloquium/Galvanize to Tank during Countdown (Requires above enabled)")]
public bool GiveT { get; set; } = false;

[Range(0, 1, ConfigUnitType.Percent)]
[RotationConfig(CombatType.PvE, Name = "Remove Aetherpact to conserve resources if party member is above this percentage")]
public float AetherpactRemove { get; set; } = 0.9f;
#endregion

#region Countdown Logic
Expand Down Expand Up @@ -97,7 +101,7 @@ protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
//Remove Aetherpact
foreach (var item in PartyMembers)
{
if (item.GetHealthRatio() < 0.9) continue;
if (item.GetHealthRatio() < AetherpactRemove) continue;
if (item.HasStatus(true, StatusID.FeyUnion_1223))
{
act = AetherpactPvE;
Expand Down
7 changes: 6 additions & 1 deletion BasicRotations/Healer/WHM_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ namespace DefaultRotations.Healer;
public sealed class WHM_Default :WhiteMageRotation
{
#region Config Options
[RotationConfig(CombatType.PvE, Name = "Use spells with cast times to heal. (Ignored if you are the only healer in party)")]
public bool GCDHeal { get; set; } = false;

[RotationConfig(CombatType.PvE, Name = "Use Lily at max stacks.")]
public bool UseLilyWhenFull { get; set; } = true;

Expand Down Expand Up @@ -182,8 +185,10 @@ public WHM_Default()
AfflatusRapturePvE.Setting.RotationCheck = () => BloodLily < 3;
AfflatusSolacePvE.Setting.RotationCheck = () => BloodLily < 3;
}
public override bool CanHealSingleSpell => base.CanHealSingleSpell && (GCDHeal || PartyMembers.GetJobCategory(JobRole.Healer).Count() < 2);
public override bool CanHealAreaSpell => base.CanHealAreaSpell && (GCDHeal || PartyMembers.GetJobCategory(JobRole.Healer).Count() < 2);

private bool UseLily(out IAction? act)
private bool UseLily(out IAction? act)
{
if (AfflatusRapturePvE.CanUse(out act, skipAoeCheck: true)) return true;
if (AfflatusSolacePvE.CanUse(out act)) return true;
Expand Down