Skip to content

Commit

Permalink
Merge commit 'refs/pull/1776/head' of https://github.com/Nik-Potokar/…
Browse files Browse the repository at this point in the history
  • Loading branch information
Taurenkey committed Sep 14, 2024
2 parents 382925d + bdcc1e5 commit 1067213
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 25 deletions.
26 changes: 17 additions & 9 deletions XIVSlothCombo/Combos/CustomComboPreset.cs
Original file line number Diff line number Diff line change
Expand Up @@ -621,11 +621,7 @@ public enum CustomComboPreset

[ParentCombo(BRD_ST_AdvMode)]
[CustomComboInfo("Bard Songs Option", "This option adds the Bard's Songs to the Advanced Bard Feature.", BRD.JobID)]
BRD_Adv_Song = 3011,

[ParentCombo(BRD_AoE_oGCD)]
[CustomComboInfo("Songs Option", "Adds Songs onto AoE oGCD Feature.", BRD.JobID)]
BRD_oGCDSongs = 3012,
BRD_Adv_Song = 3011,

[ReplaceSkill(BRD.Barrage)]
[CustomComboInfo("Bard Buffs Feature", "Adds Raging Strikes and Battle Voice onto Barrage.", BRD.JobID)]
Expand All @@ -651,10 +647,18 @@ public enum CustomComboPreset
[CustomComboInfo("Buffs Option", "Adds buffs onto the Advanced Bard feature.", BRD.JobID)]
BRD_Adv_Buffs = 3017,

[ParentCombo(BRD_Adv_Buffs)]
[CustomComboInfo("Buffs - Radiant Option", "Adds Radiant Finale to theBuffs feature.", BRD.JobID)]
[ParentCombo(BRD_ST_AdvMode)]
[CustomComboInfo("Resonant Option", "Adds Resonant Arrow to the Rotation after Barrage.", BRD.JobID)]
BRD_Adv_BuffsResonant = 3041,

[ParentCombo(BRD_ST_AdvMode)]
[CustomComboInfo("Buffs - Radiant Option", "Adds Radiant Finale to the Advanced Bard feature.", BRD.JobID)]
BRD_Adv_BuffsRadiant = 3018,

[ParentCombo(BRD_ST_AdvMode)]
[CustomComboInfo("Encore Option", "Adds Radiant Encore to the Rotation after Finale.", BRD.JobID)]
BRD_Adv_BuffsEncore = 3042,

[ParentCombo(BRD_ST_AdvMode)]
[CustomComboInfo("No Waste Option", "Adds enemy health checking on mobs for buffs, DoTs and Songs.\nThey will not be reapplied if less than specified.", BRD.JobID)]
BRD_Adv_NoWaste = 3019,
Expand All @@ -677,9 +681,13 @@ public enum CustomComboPreset
//BardSimpleOpener = 3022,

[ParentCombo(BRD_ST_AdvMode)]
[CustomComboInfo("Pooling Option", "Pools Bloodletter charges to allow for optimum burst phases, will also keep sidewinder in the buff window during wanderers.", BRD.JobID)]
[CustomComboInfo("Pooling Option", "84+ Pools Bloodletter charges to allow for optimum burst phases.", BRD.JobID)]
BRD_Adv_Pooling = 3023,

[ParentCombo(BRD_AoE_AdvMode)]
[CustomComboInfo("Pooling Option", "84+ Pools Rain of death charges to allow for optimum burst phases.", BRD.JobID)]
BRD_AoE_Pooling = 3040,

[ParentCombo(BRD_IronJaws)]
[CustomComboInfo("Iron Jaws Apex Option", "Adds Apex and Blast Arrow to Iron Jaws when available.", BRD.JobID)]
BRD_IronJawsApex = 3024,
Expand Down Expand Up @@ -717,7 +725,7 @@ public enum CustomComboPreset
[ParentCombo(BRD_AoE_AdvMode)]
[CustomComboInfo("AoE No Waste Option", "Adds enemy health checking on targetted mob for songs.\nThey will not be reapplied if less than specified.", BRD.JobID)]
BRD_AoE_Adv_NoWaste = 3033,
// Last value = 3038
// Last value = 3042

#endregion

Expand Down
34 changes: 19 additions & 15 deletions XIVSlothCombo/Combos/PvE/BRD.cs
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,11 @@ public const string
BRD_AoESecondWindThreshold = "BRD_AoESecondWindThreshold",
BRD_VariantCure = "BRD_VariantCure";
}

internal static class Traits
{
internal const ushort
EnhancedBloodletter = 445;
}
#region Song status
internal static bool SongIsNotNone(Song value) => value != Song.NONE;
internal static bool SongIsNone(Song value) => value == Song.NONE;
Expand Down Expand Up @@ -429,7 +433,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
return EmpyrealArrow;

if (LevelChecked(PitchPerfect) && songWanderer &&
(gauge.Repertoire == 3 || (gauge.Repertoire == 2 && empyrealCD < 2)))
(gauge.Repertoire == 3 || (LevelChecked(EmpyrealArrow) && gauge.Repertoire == 2 && empyrealCD < 2)))
return OriginalHook(PitchPerfect);

if (ActionReady(Sidewinder))
Expand All @@ -451,7 +455,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
{
uint rainOfDeathCharges = LevelChecked(RainOfDeath) ? GetRemainingCharges(RainOfDeath) : 0;

if (LevelChecked(WanderersMinuet))
if (IsEnabled(CustomComboPreset.BRD_AoE_Pooling) && LevelChecked(WanderersMinuet) && TraitLevelChecked(Traits.EnhancedBloodletter))
{
if (songWanderer)
{
Expand Down Expand Up @@ -486,7 +490,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
}
}

bool wideVolleyReady = LevelChecked(WideVolley) && HasEffect(Buffs.HawksEye);
bool wideVolleyReady = LevelChecked(WideVolley) && (HasEffect(Buffs.HawksEye) || HasEffect(Buffs.Barrage));
bool blastArrowReady = LevelChecked(BlastArrow) && HasEffect(Buffs.BlastArrowReady);
bool resonantArrowReady = LevelChecked(ResonantArrow) && HasEffect(Buffs.ResonantArrowReady);

Expand Down Expand Up @@ -730,7 +734,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
return EmpyrealArrow;

if (LevelChecked(PitchPerfect) && songWanderer &&
(gauge.Repertoire == 3 || (gauge.Repertoire == 2 && empyrealCD < 2)))
(gauge.Repertoire == 3 || (LevelChecked(EmpyrealArrow) && gauge.Repertoire == 2 && empyrealCD < 2)))
return OriginalHook(PitchPerfect);

if (ActionReady(Sidewinder))
Expand All @@ -755,7 +759,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
{
uint bloodletterCharges = GetRemainingCharges(Bloodletter);

if (IsEnabled(CustomComboPreset.BRD_Adv_Pooling) && LevelChecked(WanderersMinuet))
if (IsEnabled(CustomComboPreset.BRD_Adv_Pooling) && LevelChecked(WanderersMinuet) && TraitLevelChecked(Traits.EnhancedBloodletter))
{
if (songWanderer)
{
Expand Down Expand Up @@ -787,7 +791,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
}
}
//Moved below weaves bc roobert says it is blocking his weaves from happening
if (HasEffect(Buffs.RadiantEncoreReady) && !JustUsed(RadiantFinale) && GetCooldownElapsed(BattleVoice) >= 4.2f && IsEnabled(CustomComboPreset.BRD_Adv_BuffsRadiant))
if (HasEffect(Buffs.RadiantEncoreReady) && !JustUsed(RadiantFinale) && GetCooldownElapsed(RadiantFinale) >= 4.2f && IsEnabled(CustomComboPreset.BRD_Adv_BuffsEncore))
return OriginalHook(RadiantEncore);

if (isEnemyHealthHigh)
Expand Down Expand Up @@ -817,7 +821,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
if (IsEnabled(CustomComboPreset.BRD_Adv_DoT))
{
if (ActionReady(IronJaws) && IsEnabled(CustomComboPreset.BRD_Adv_RagingJaws) && HasEffect(Buffs.RagingStrikes) &&
!WasLastAction(IronJaws) && ragingStrikesDuration < ragingJawsRenewTime && poisonRecast(40) && windRecast(40))
!WasLastAction(IronJaws) && ragingStrikesDuration < ragingJawsRenewTime && poisonRecast(35) && windRecast(35))
{
openerFinished = true;
return IronJaws;
Expand Down Expand Up @@ -877,7 +881,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
if (HasEffect(Buffs.HawksEye) || HasEffect(Buffs.Barrage))
return OriginalHook(StraightShot);

if (HasEffect(Buffs.ResonantArrowReady) && IsEnabled(CustomComboPreset.BRD_Adv_Buffs))
if (HasEffect(Buffs.ResonantArrowReady) && IsEnabled(CustomComboPreset.BRD_Adv_BuffsResonant))
return ResonantArrow;

}
Expand Down Expand Up @@ -1055,7 +1059,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
return EmpyrealArrow;

if (LevelChecked(PitchPerfect) && songWanderer &&
(gauge.Repertoire == 3 || (gauge.Repertoire == 2 && empyrealCD < 2)))
(gauge.Repertoire == 3 || (LevelChecked(EmpyrealArrow) && gauge.Repertoire == 2 && empyrealCD < 2)))
return OriginalHook(PitchPerfect);

if (ActionReady(Sidewinder))
Expand All @@ -1076,7 +1080,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
{
uint rainOfDeathCharges = LevelChecked(RainOfDeath) ? GetRemainingCharges(RainOfDeath) : 0;

if (LevelChecked(WanderersMinuet))
if (LevelChecked(WanderersMinuet) && TraitLevelChecked(Traits.EnhancedBloodletter))
{
if (songWanderer)
{
Expand Down Expand Up @@ -1110,7 +1114,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim

}

bool wideVolleyReady = LevelChecked(WideVolley) && HasEffect(Buffs.HawksEye);
bool wideVolleyReady = LevelChecked(WideVolley) && (HasEffect(Buffs.HawksEye) || HasEffect(Buffs.Barrage));
bool blastArrowReady = LevelChecked(BlastArrow) && HasEffect(Buffs.BlastArrowReady);
bool resonantArrowReady = LevelChecked(ResonantArrow) && HasEffect(Buffs.ResonantArrowReady);

Expand Down Expand Up @@ -1284,7 +1288,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
return EmpyrealArrow;

if (LevelChecked(PitchPerfect) && songWanderer &&
(gauge.Repertoire == 3 || (gauge.Repertoire == 2 && empyrealCD < 2)))
(gauge.Repertoire == 3 || (LevelChecked(EmpyrealArrow) && gauge.Repertoire == 2 && empyrealCD < 2)))
return OriginalHook(PitchPerfect);

if (ActionReady(Sidewinder))
Expand All @@ -1305,7 +1309,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
{
uint bloodletterCharges = GetRemainingCharges(Bloodletter);

if (LevelChecked(WanderersMinuet))
if (LevelChecked(WanderersMinuet) && TraitLevelChecked(Traits.EnhancedBloodletter))
{
if (songWanderer)
{
Expand Down Expand Up @@ -1365,7 +1369,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
};

if (ActionReady(IronJaws) && HasEffect(Buffs.RagingStrikes) &&
!WasLastAction(IronJaws) && ragingStrikesDuration < ragingJawsRenewTime && poisonRecast(40) && windRecast(40))
!WasLastAction(IronJaws) && ragingStrikesDuration < ragingJawsRenewTime && poisonRecast(35) && windRecast(35))
{
openerFinished = true;
return IronJaws;
Expand Down
2 changes: 1 addition & 1 deletion XIVSlothCombo/Window/Functions/UserConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1347,7 +1347,7 @@ internal static void Draw(CustomComboPreset preset, bool enabled)
#region BARD

if (preset == CustomComboPreset.BRD_Adv_RagingJaws)
UserConfig.DrawSliderInt(3, 5, BRD.Config.BRD_RagingJawsRenewTime, "Remaining time (In seconds)");
UserConfig.DrawSliderInt(3, 10, BRD.Config.BRD_RagingJawsRenewTime, "Remaining time (In seconds). Recommended 5, increase little by little if refresh is outside of radiant window");

if (preset == CustomComboPreset.BRD_Adv_NoWaste)
UserConfig.DrawSliderInt(1, 10, BRD.Config.BRD_NoWasteHPPercentage, "Remaining target HP percentage");
Expand Down

0 comments on commit 1067213

Please sign in to comment.