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

Commit

Permalink
Merge pull request #1511 from Akechi-kun/WAR
Browse files Browse the repository at this point in the history
[WAR] Lv100 fixes & adjustments
  • Loading branch information
Taurenkey authored Jul 12, 2024
2 parents 14d6303 + 01bc16d commit 4b1db62
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 19 deletions.
24 changes: 14 additions & 10 deletions XIVSlothCombo/Combos/CustomComboPreset.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3871,41 +3871,45 @@ The three digets after RDM.JobID can be used to reorder items in the list
WAR_InfuriateFellCleave = 18031,

[ReplaceSkill(WAR.InnerRelease)]
[CustomComboInfo("Primal Rend Feature", "Turns Inner Release into Primal Rend on use.", WAR.JobID, 3, "", "")]
WAR_PrimalRend_InnerRelease = 18032,
[CustomComboInfo("Primal Combo Feature", "Turns Inner Release into the Primal combo on use.", WAR.JobID, 3, "", "")]
WAR_PrimalCombo_InnerRelease = 18032,

[ParentCombo(WAR_InfuriateFellCleave)]
[CustomComboInfo("Inner Release Priority Option", "Prevents the use of Infuriate while you have Inner Release stacks available.", WAR.JobID)]
WAR_InfuriateFellCleave_IRFirst = 18022,

[ParentCombo(WAR_ST_StormsPath_PrimalRend)]
[CustomComboInfo("Primal Rend Melee Option", "Uses Primal Rend when in the target's target ring (1 yalm) and when not moving otherwise will use it when buff is less than 10 seconds.", WAR.JobID)]
[CustomComboInfo("Primal Rend Melee Option", "Uses Primal Rend when in the target's target ring (1 yalm) & when not moving otherwise will use it when buff is less than 10 seconds.", WAR.JobID)]
WAR_ST_StormsPath_PrimalRend_CloseRange = 18023,

[ParentCombo(WAR_ST_StormsPath_PrimalRend)]
[CustomComboInfo("Primal Rend Late Option", "Uses Primal Rend after you consume 3 stacks of Inner Release & after Primal Wrath.", WAR.JobID)]
WAR_ST_StormsPath_PrimalRend_Late = 18024,

[ParentCombo(WAR_ST_StormsPath_Onslaught)]
[CustomComboInfo("Melee Onslaught Option", "Uses Onslaught when under Surging Tempest and in the target ring (1 yalm) and when not moving.\nWill use as many stacks as selected in the above slider.", WAR.JobID)]
WAR_ST_StormsPath_Onslaught_MeleeSpender = 18024,
[CustomComboInfo("Melee Onslaught Option", "Uses Onslaught when under Surging Tempest & in the target ring (1 yalm) & when not moving.\nWill use as many stacks as selected in the above slider.", WAR.JobID)]
WAR_ST_StormsPath_Onslaught_MeleeSpender = 18025,

[Variant]
[VariantParent(WAR_ST_StormsPath, WAR_AoE_Overpower)]
[CustomComboInfo("Spirit Dart Option", "Use Variant Spirit Dart whenever the debuff is not present or less than 3s.", WAR.JobID)]
WAR_Variant_SpiritDart = 18025,
WAR_Variant_SpiritDart = 18026,

[Variant]
[VariantParent(WAR_ST_StormsPath, WAR_AoE_Overpower)]
[CustomComboInfo("Cure Option", "Use Variant Cure when HP is below set threshold.", WAR.JobID)]
WAR_Variant_Cure = 18026,
WAR_Variant_Cure = 18027,

[Variant]
[VariantParent(WAR_ST_StormsPath, WAR_AoE_Overpower)]
[CustomComboInfo("Ultimatum Option", "Use Variant Ultimatum on cooldown.", WAR.JobID)]
WAR_Variant_Ultimatum = 18027,
WAR_Variant_Ultimatum = 18028,

[ParentCombo(WAR_AoE_Overpower)]
[CustomComboInfo("Steel Cyclone / Decimate Option", "Adds Steel Cyclone / Decimate to Advanced Mode.", WAR.JobID)]
WAR_AoE_Overpower_Decimate = 18028,
WAR_AoE_Overpower_Decimate = 18029,

// Last value = 18028
// Last value = 18029

#endregion

Expand Down
26 changes: 17 additions & 9 deletions XIVSlothCombo/Combos/PvE/WAR.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,14 @@ public const uint
public static class Buffs
{
public const ushort
InnerRelease = 1177,
InnerReleaseStacks = 1177,
InnerReleaseBuff = 1303,
SurgingTempest = 2677,
NascentChaos = 1897,
PrimalRendReady = 2624,
Wrathful = 3901,
PrimalRuinationReady = 3834,
BurgeoningFury = 3833,
Berserk = 86;
}

Expand Down Expand Up @@ -89,7 +91,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
if (IsEnabled(CustomComboPreset.WAR_ST_StormsPath_RangedUptime) && LevelChecked(Tomahawk) && !InMeleeRange() && HasBattleTarget())
return Tomahawk;

if (IsEnabled(CustomComboPreset.WAR_ST_StormsPath_Infuriate) && InCombat() && ActionReady(Infuriate) && !HasEffect(Buffs.NascentChaos) && gauge <= infuriateGauge && CanWeave(actionID))
if (IsEnabled(CustomComboPreset.WAR_ST_StormsPath_Infuriate) && InCombat() && ActionReady(Infuriate) && !HasEffect(Buffs.NascentChaos) && !HasEffect(Buffs.InnerReleaseStacks) && gauge <= infuriateGauge && CanWeave(actionID))
return Infuriate;

//Sub Storm's Eye level check
Expand Down Expand Up @@ -130,14 +132,18 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
return PrimalRend;
if (IsNotEnabled(CustomComboPreset.WAR_ST_StormsPath_PrimalRend_CloseRange))
return PrimalRend;
if (IsEnabled(CustomComboPreset.WAR_ST_StormsPath_PrimalRend_Late) && (!HasEffect(Buffs.InnerReleaseStacks) && !HasEffect(Buffs.BurgeoningFury) && !HasEffect(Buffs.Wrathful)))
return PrimalRend;
if (IsNotEnabled(CustomComboPreset.WAR_ST_StormsPath_PrimalRend_Late))
return PrimalRend;
}

if (IsEnabled(CustomComboPreset.WAR_ST_StormsPath_PrimalRuination) && HasEffect(Buffs.PrimalRuinationReady) && LevelChecked(PrimalRuination) && WasLastWeaponskill(PrimalRend))
return PrimalRuination;

if (IsEnabled(CustomComboPreset.WAR_ST_StormsPath_FellCleave) && LevelChecked(InnerBeast))
{
if (HasEffect(Buffs.InnerRelease) || (HasEffect(Buffs.NascentChaos) && InnerChaos.LevelChecked()))
if (HasEffect(Buffs.InnerReleaseStacks) || (HasEffect(Buffs.NascentChaos) && InnerChaos.LevelChecked()))
return OriginalHook(InnerBeast);

if (HasEffect(Buffs.NascentChaos) && !InnerChaos.LevelChecked())
Expand Down Expand Up @@ -210,7 +216,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
if (IsEnabled(CustomComboPreset.WAR_Variant_Cure) && IsEnabled(Variant.VariantCure) && PlayerHealthPercentageHp() <= GetOptionValue(Config.WAR_VariantCure))
return Variant.VariantCure;

if (IsEnabled(CustomComboPreset.WAR_AoE_Overpower_Infuriate) && InCombat() && ActionReady(Infuriate) && !HasEffect(Buffs.NascentChaos) && gauge <= infuriateGauge && CanWeave(actionID))
if (IsEnabled(CustomComboPreset.WAR_AoE_Overpower_Infuriate) && InCombat() && ActionReady(Infuriate) && !HasEffect(Buffs.NascentChaos) && !HasEffect(Buffs.InnerReleaseStacks) && gauge <= infuriateGauge && CanWeave(actionID))
return Infuriate;

//Sub Mythril Tempest level check
Expand Down Expand Up @@ -249,7 +255,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
if (IsEnabled(CustomComboPreset.WAR_AOE_Overpower_PrimalRuination) && HasEffect(Buffs.PrimalRuinationReady) && LevelChecked(PrimalRuination) && WasLastWeaponskill(PrimalRend))
return PrimalRuination;

if (IsEnabled(CustomComboPreset.WAR_AoE_Overpower_Decimate) && LevelChecked(SteelCyclone) && (gauge >= decimateGaugeSpend || HasEffect(Buffs.InnerRelease) || HasEffect(Buffs.NascentChaos)))
if (IsEnabled(CustomComboPreset.WAR_AoE_Overpower_Decimate) && LevelChecked(SteelCyclone) && (gauge >= decimateGaugeSpend || HasEffect(Buffs.InnerReleaseStacks) || HasEffect(Buffs.NascentChaos)))
return OriginalHook(SteelCyclone);
}

Expand Down Expand Up @@ -286,7 +292,7 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim
}


internal class WAR_ST_StormsPath_PrimalRend : CustomCombo
internal class WAR_ST_StormsPath_PrimalCombo : CustomCombo
{
protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.WAR_ST_StormsPath_PrimalRend;

Expand Down Expand Up @@ -316,7 +322,7 @@ protected override uint Invoke(uint actionID, uint lastComboActionID, float comb
var rageGauge = GetJobGauge<WARGauge>();
var rageThreshold = PluginConfiguration.GetCustomIntValue(Config.WAR_InfuriateRange);
var hasNascent = HasEffect(Buffs.NascentChaos);
var hasInnerRelease = HasEffect(Buffs.InnerRelease);
var hasInnerRelease = HasEffect(Buffs.InnerReleaseStacks);

if (InCombat() && rageGauge.BeastGauge <= rageThreshold && ActionReady(Infuriate) && !hasNascent
&& ((!hasInnerRelease) || IsNotEnabled(CustomComboPreset.WAR_InfuriateFellCleave_IRFirst)))
Expand All @@ -327,16 +333,18 @@ protected override uint Invoke(uint actionID, uint lastComboActionID, float comb
}
}

internal class WAR_PrimalRend_InnerRelease : CustomCombo
internal class WAR_PrimalCombo_InnerRelease : CustomCombo
{
protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.WAR_PrimalRend_InnerRelease;
protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.WAR_PrimalCombo_InnerRelease;

protected override uint Invoke(uint actionID, uint lastComboActionID, float comboTime, byte level)
{
if (actionID is Berserk or InnerRelease)
{
if (LevelChecked(PrimalRend) && HasEffect(Buffs.PrimalRendReady))
return PrimalRend;
if (LevelChecked(PrimalRuination) && HasEffect(Buffs.PrimalRuinationReady) && WasLastWeaponskill(PrimalRend))
return PrimalRuination;
}

return actionID;
Expand Down

0 comments on commit 4b1db62

Please sign in to comment.