Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BRD] update buffchecks + Buff fix for level 50 #298

Merged
merged 2 commits into from
Jan 25, 2025
Merged
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
72 changes: 39 additions & 33 deletions WrathCombo/Combos/PvE/BRD/BRD.cs
Original file line number Diff line number Diff line change
Expand Up @@ -377,23 +377,25 @@ protected override uint Invoke(uint actionID)
{
float ragingCD = GetCooldownRemainingTime(RagingStrikes);

// Late weave Battle voice logic first, timed with raging strikes cd to keep buffs tight.
if (canWeaveDelayed && ActionReady(BattleVoice) && songWanderer && (ragingCD < 3 || ActionReady(RagingStrikes)))
return BattleVoice;

// Radiant next, must have battlevoice buff for it to fire
if (canWeave && ActionReady(RadiantFinale) &&
(Array.TrueForAll(gauge.Coda, SongIsNotNone) || Array.Exists(gauge.Coda, SongIsWandererMinuet)) &&
HasEffect(Buffs.BattleVoice))
// Radiant First with late weave for tighter grouping
if (canWeaveDelayed && ActionReady(RadiantFinale) && ragingCD < 2.3 &&
!HasEffect(Buffs.RadiantEncoreReady) &&
(Array.TrueForAll(gauge.Coda, SongIsNotNone) || Array.Exists(gauge.Coda, SongIsWandererMinuet)))
return RadiantFinale;

// BV normal weave into the raging weave
if (canWeave && ActionReady(BattleVoice) && (HasEffect(Buffs.RadiantFinale) || !LevelChecked(RadiantFinale)))
return BattleVoice;

// Late weave Raging last, must have battle voice buff OR not be high enough level for Battlecoice
if (canWeave && ActionReady(RagingStrikes) && (HasEffect(Buffs.BattleVoice) || !LevelChecked(BattleVoice)))
if (canWeave && ActionReady(RagingStrikes) && (JustUsed(BattleVoice) || !LevelChecked(BattleVoice) || HasEffect(Buffs.BattleVoice)))
return RagingStrikes;

// Barrage Logic to check for raging for low level reasons and it doesn't really need to check for the other buffs
if (canWeave && ActionReady(Barrage) && HasEffect(Buffs.RagingStrikes))
if (canWeave && ActionReady(Barrage) && HasEffect(Buffs.RagingStrikes) &&
!HasEffect(Buffs.ResonantArrowReady))
return Barrage;

}

#endregion
Expand Down Expand Up @@ -650,12 +652,13 @@ protected override uint Invoke(uint actionID)
{
float ragingCD = GetCooldownRemainingTime(RagingStrikes);

// Radiant next, must have battlevoice buff for it to fire
// Radiant First with late weave for tighter grouping
if (canWeaveDelayed && ActionReady(RadiantFinale) && ragingCD < 2.3 &&
!HasEffect(Buffs.RadiantEncoreReady) &&
(Array.TrueForAll(gauge.Coda, SongIsNotNone) || Array.Exists(gauge.Coda, SongIsWandererMinuet)))
return RadiantFinale;

// Late weave Battle voice logic first, timed with raging strikes cd to keep buffs tight.
// BV normal weave into the raging weave
if (canWeave && ActionReady(BattleVoice) && (HasEffect(Buffs.RadiantFinale) || !LevelChecked(RadiantFinale)))
return BattleVoice;

Expand All @@ -664,7 +667,8 @@ protected override uint Invoke(uint actionID)
return RagingStrikes;

// Barrage Logic to check for raging for low level reasons and it doesn't really need to check for the other buffs
if (canWeave && ActionReady(Barrage) && HasEffect(Buffs.RagingStrikes))
if (canWeave && ActionReady(Barrage) && HasEffect(Buffs.RagingStrikes) &&
!HasEffect(Buffs.ResonantArrowReady))
return Barrage;

}
Expand Down Expand Up @@ -932,22 +936,23 @@ protected override uint Invoke(uint actionID)
{
float ragingCD = GetCooldownRemainingTime(RagingStrikes);

// Late weave Battle voice logic first, timed with raging strikes cd to keep buffs tight.
if (canWeaveDelayed && ActionReady(BattleVoice) && songWanderer && (ragingCD < 3 || ActionReady(RagingStrikes)))
return BattleVoice;

// Radiant next, must have battlevoice buff for it to fire
if (canWeave && ActionReady(RadiantFinale) &&
(Array.TrueForAll(gauge.Coda, SongIsNotNone) || Array.Exists(gauge.Coda, SongIsWandererMinuet)) &&
HasEffect(Buffs.BattleVoice))
// Radiant First with late weave for tighter grouping
if (canWeaveDelayed && ActionReady(RadiantFinale) && ragingCD < 2.3 &&
!HasEffect(Buffs.RadiantEncoreReady) &&
(Array.TrueForAll(gauge.Coda, SongIsNotNone) || Array.Exists(gauge.Coda, SongIsWandererMinuet)))
return RadiantFinale;

// BV normal weave into the raging weave
if (canWeave && ActionReady(BattleVoice) && (HasEffect(Buffs.RadiantFinale) || !LevelChecked(RadiantFinale)))
return BattleVoice;

// Late weave Raging last, must have battle voice buff OR not be high enough level for Battlecoice
if (canWeave && ActionReady(RagingStrikes) && (HasEffect(Buffs.BattleVoice) || !LevelChecked(BattleVoice)))
if (canWeave && ActionReady(RagingStrikes) && (JustUsed(BattleVoice) || !LevelChecked(BattleVoice) || HasEffect(Buffs.BattleVoice)))
return RagingStrikes;

// Barrage Logic to check for raging for low level reasons and it doesn't really need to check for the other buffs
if (canWeave && ActionReady(Barrage) && HasEffect(Buffs.RagingStrikes))
if (canWeave && ActionReady(Barrage) && HasEffect(Buffs.RagingStrikes) &&
!HasEffect(Buffs.ResonantArrowReady))
return Barrage;

}
Expand Down Expand Up @@ -1156,22 +1161,23 @@ protected override uint Invoke(uint actionID)
{
float ragingCD = GetCooldownRemainingTime(RagingStrikes);

// Late weave Battle voice logic first, timed with raging strikes cd to keep buffs tight.
if (canWeaveDelayed && ActionReady(BattleVoice) && songWanderer && (ragingCD < 3 || ActionReady(RagingStrikes)))
return BattleVoice;

// Radiant next, must have battlevoice buff for it to fire
if (canWeave && ActionReady(RadiantFinale) &&
(Array.TrueForAll(gauge.Coda, SongIsNotNone) || Array.Exists(gauge.Coda, SongIsWandererMinuet)) &&
HasEffect(Buffs.BattleVoice))
// Radiant First with late weave for tighter grouping
if (canWeaveDelayed && ActionReady(RadiantFinale) && ragingCD < 2.3 &&
!HasEffect(Buffs.RadiantEncoreReady) &&
(Array.TrueForAll(gauge.Coda, SongIsNotNone) || Array.Exists(gauge.Coda, SongIsWandererMinuet)))
return RadiantFinale;

// BV normal weave into the raging weave
if (canWeave && ActionReady(BattleVoice) && (HasEffect(Buffs.RadiantFinale) || !LevelChecked(RadiantFinale)))
return BattleVoice;

// Late weave Raging last, must have battle voice buff OR not be high enough level for Battlecoice
if (canWeave && ActionReady(RagingStrikes) && (HasEffect(Buffs.BattleVoice) || !LevelChecked(BattleVoice)))
if (canWeave && ActionReady(RagingStrikes) && (JustUsed(BattleVoice) || !LevelChecked(BattleVoice) || HasEffect(Buffs.BattleVoice)))
return RagingStrikes;

// Barrage Logic to check for raging for low level reasons and it doesn't really need to check for the other buffs
if (canWeave && ActionReady(Barrage) && HasEffect(Buffs.RagingStrikes))
if (canWeave && ActionReady(Barrage) && HasEffect(Buffs.RagingStrikes) &&
!HasEffect(Buffs.ResonantArrowReady))
return Barrage;

}
Expand Down