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

Moving PhysRange Beta to Live #51

Merged
merged 1 commit into from
Apr 19, 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
220 changes: 0 additions & 220 deletions BasicRotations/Ranged/BRD_Beta.cs

This file was deleted.

38 changes: 28 additions & 10 deletions BasicRotations/Ranged/BRD_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,7 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act)

if (Repertoire == 3) return true;

if (Repertoire == 2 && EmpyrealArrowPvE.Cooldown.WillHaveOneChargeGCD(1) && NextAbilityToNextGCD < PitchPerfectPvE.AnimationLockTime + Ping) return true;

if (Repertoire == 2 && EmpyrealArrowPvE.Cooldown.WillHaveOneChargeGCD() && NextAbilityToNextGCD > PitchPerfectPvE.AnimationLockTime + Ping) return true;
if (Repertoire == 2 && EmpyrealArrowPvE.Cooldown.WillHaveOneChargeGCD()) return true;
}

if (MagesBalladPvE.CanUse(out act))
Expand All @@ -138,12 +136,7 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act)
if (RagingStrikesPvE.Cooldown.IsCoolingDown && !Player.HasStatus(true, StatusID.RagingStrikes)) return true;
}

if (EmpyrealArrowPvE.Cooldown.IsCoolingDown || !EmpyrealArrowPvE.Cooldown.WillHaveOneChargeGCD() || Repertoire != 3 || !EmpyrealArrowPvE.EnoughLevel)
{
if (RainOfDeathPvE.CanUse(out act, usedUp: true)) return true;

if (BloodletterPvE.CanUse(out act, usedUp: true)) return true;
}
if (BloodletterLogic(out act)) return true;

return base.AttackAbility(nextGCD, out act);
}
Expand Down Expand Up @@ -198,5 +191,30 @@ private bool CanUseApexArrow(out IAction act)

return false;
}
private bool BloodletterLogic(out IAction? act)
{
bool isBattleVoice = BattleVoicePvE.CanUse(out _);
bool isRadiantFinale = RadiantFinalePvE.CanUse(out _);
bool isRagingNow = Player.HasStatus(true, StatusID.RagingStrikes);
bool isRagingSoon = RagingStrikesPvE.Cooldown.WillHaveOneCharge(30);
bool isBloodTrait = EnhancedBloodletterTrait.EnoughLevel && BloodletterPvE.Cooldown.CurrentCharges < 3;
bool isNoBloodTrait = !EnhancedBloodletterTrait.EnoughLevel && BloodletterPvE.Cooldown.CurrentCharges < 2;
bool isEmpyrealArrowCD = EmpyrealArrowPvE.Cooldown.IsCoolingDown;
bool isEmpyrealSoon = !EmpyrealArrowPvE.Cooldown.WillHaveOneChargeGCD();
bool isEmpyrealLevel = !EmpyrealArrowPvE.EnoughLevel;
bool isRepertoire = Repertoire != 3;

if (RainOfDeathPvE.CanUse(out act, usedUp: true))
{
if (isEmpyrealArrowCD || isEmpyrealSoon || isEmpyrealLevel || isRepertoire) return true;
}

if (BloodletterPvE.CanUse(out act, usedUp: true))
{
if (isBattleVoice || isRadiantFinale || (isRagingSoon && (isBloodTrait || isNoBloodTrait))) return false;
if (isEmpyrealArrowCD || isEmpyrealSoon || isEmpyrealLevel || isRepertoire) return true;
}
return false;
}
#endregion
}
}
Loading