Skip to content

Commit

Permalink
[RDM & SGE] Tweaks
Browse files Browse the repository at this point in the history
All: Removed actionID passing to CanUseLucid (SGE/RDM/SCH/WHM calls updated)
SGE
- Removed Ignore AoE Shield Check. Eukrasia Prognosis moved to priority system. Slider checks for total shields (Diagnosis/Prognosis)
RDM
- Cleanup, removed passing of actionID to all but TryOGCDs. Reduced variables (out to ref) from rotation segment functions.
- Prioritized Preflugence in TryOGCDs
- Prevented Double CorpACorps or Engagments in the same oGCD window (Discord Report)
- Delayed Vice of Thorns until (hopefully) the next oGCD window (Discord Report)
  • Loading branch information
Tartarga committed Jan 24, 2025
1 parent 62b4a59 commit e4e3655
Show file tree
Hide file tree
Showing 9 changed files with 151 additions and 155 deletions.
5 changes: 0 additions & 5 deletions WrathCombo/Combos/CustomComboPreset.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4653,11 +4653,6 @@ New features should be added to the appropriate sections.
"Prognosis becomes Eukrasian Prognosis if the shield is not applied.", SGE.JobID)]
SGE_AoE_Heal_EPrognosis = 14028,

[ParentCombo(SGE_AoE_Heal_EPrognosis)]
[CustomComboInfo("Ignore Shield Check",
"Warning, will force the use of Eukrasia Prognosis, and normal Prognosis will be unavailable.", SGE.JobID)]
SGE_AoE_Heal_EPrognosis_IgnoreShield = 14029,

[ParentCombo(SGE_AoE_Heal)]
[CustomComboInfo("Rhizomata Option", "Adds Rhizomata when Addersgall is 0.", SGE.JobID)]
SGE_AoE_Heal_Rhizomata = 14036,
Expand Down
3 changes: 1 addition & 2 deletions WrathCombo/Combos/PvE/ALL/ALL.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,10 @@ private const uint
/// <summary>
/// Quick Level, Offcooldown, spellweave, and MP check of Lucid Dreaming
/// </summary>
/// <param name="actionID">action id to check weave</param>
/// <param name="MPThreshold">Player MP less than Threshold check</param>
/// <param name="weave">Spell Weave check by default</param>
/// <returns></returns>
public static bool CanUseLucid(uint actionID, int MPThreshold, bool weave = true) =>
public static bool CanUseLucid(int MPThreshold, bool weave = true) =>
CustomComboFunctions.ActionReady(LucidDreaming)
&& CustomComboFunctions.LocalPlayer.CurrentMp <= MPThreshold
&& (!weave || CustomComboFunctions.CanSpellWeave());
Expand Down
124 changes: 68 additions & 56 deletions WrathCombo/Combos/PvE/RDM/RDM.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,32 +37,34 @@ protected override uint Invoke(uint actionID)
CanSpellWeave())
return Variant.VariantRampart;

uint NewActionID = 0;

//oGCDs
if (TryOGCDs(actionID, true, out uint oGCDAction))
return oGCDAction;
if (TryOGCDs(actionID, true, ref NewActionID))
return NewActionID;

//Lucid Dreaming
if (TryLucidDreaming(actionID, 6500, ComboAction))
if (TryLucidDreaming(6500, ComboAction))
return All.LucidDreaming;

//Melee Finisher
if (MeleeCombo.TryMeleeFinisher(out uint finisherAction))
return finisherAction;
if (MeleeCombo.TryMeleeFinisher(ref NewActionID))
return NewActionID;

//Melee Combo
// Manafication/Embolden Code
if (MeleeCombo.TrySTManaEmbolden(actionID, out uint ManaEmbolden))
return ManaEmbolden;
if (MeleeCombo.TrySTMeleeCombo(actionID, out uint MeleeComboID))
return MeleeComboID;
if (MeleeCombo.TrySTMeleeStart(actionID, out uint MeleeID))
return MeleeID;
if (MeleeCombo.TrySTManaEmbolden(ref NewActionID))
return NewActionID;
if (MeleeCombo.TrySTMeleeCombo(ref NewActionID))
return NewActionID;
if (MeleeCombo.TrySTMeleeStart(ref NewActionID))
return NewActionID;

//Normal Spell Rotation
if (SpellCombo.TryAcceleration(actionID, out uint Accel))
return Accel;
if (SpellCombo.TrySTSpellRotation(actionID, out uint SpellID))
return SpellID;
if (SpellCombo.TryAcceleration(ref NewActionID))
return NewActionID;
if (SpellCombo.TrySTSpellRotation(ref NewActionID))
return NewActionID;

//NO_CONDITIONS_MET
return actionID;
Expand All @@ -79,6 +81,8 @@ protected override uint Invoke(uint actionID)
actionID is not (Fleche or Riposte or Reprise))
return actionID;

uint NewActionID = 0;

if (actionID is Jolt or Jolt2 or Jolt3)
{
//VARIANTS
Expand Down Expand Up @@ -116,16 +120,16 @@ actionID is not (Fleche or Riposte or Reprise))

if (ActionFound && LevelChecked(Corpsacorps))
{
if (TryOGCDs(actionID, true, out uint oGCDAction, true))
return oGCDAction;
if (TryOGCDs(actionID, true, ref NewActionID, true))
return NewActionID;
}
}
//END_RDM_OGCD

//Lucid Dreaming
if (IsEnabled(CustomComboPreset.RDM_ST_Lucid)
&& actionID is Jolt or Jolt2 or Jolt3
&& TryLucidDreaming(actionID, Config.RDM_ST_Lucid_Threshold, ComboAction)) //Don't interupt certain combos
&& TryLucidDreaming(Config.RDM_ST_Lucid_Threshold, ComboAction)) //Don't interupt certain combos
return All.LucidDreaming;

//RDM_MELEEFINISHER
Expand All @@ -141,8 +145,8 @@ actionID is not (Fleche or Riposte or Reprise))
(Config.RDM_ST_MeleeFinisher_Adv &&
(useJoltsAdv || useRiposteAdv || useVerMagicAdv));

if (ActionFound && MeleeCombo.TryMeleeFinisher(out uint finisherAction))
return finisherAction;
if (ActionFound && MeleeCombo.TryMeleeFinisher(ref NewActionID))
return NewActionID;
}
//END_RDM_MELEEFINISHER

Expand All @@ -163,43 +167,43 @@ actionID is not (Fleche or Riposte or Reprise))
if (ActionFound)
{
if (MeleeCombo.TrySTManaEmbolden(
actionID, out uint ManaEmboldenID, IsEnabled(CustomComboPreset.RDM_ST_MeleeCombo_ManaEmbolden), IsEnabled(CustomComboPreset.RDM_ST_MeleeCombo_CorpsGapCloser),
ref NewActionID, IsEnabled(CustomComboPreset.RDM_ST_MeleeCombo_ManaEmbolden), IsEnabled(CustomComboPreset.RDM_ST_MeleeCombo_CorpsGapCloser),
IsEnabled(CustomComboPreset.RDM_ST_MeleeCombo_ManaEmbolden_DoubleCombo),
IsEnabled(CustomComboPreset.RDM_ST_MeleeCombo_UnbalanceMana)))
return ManaEmboldenID;
return NewActionID;
}

//Zwerchhau & Redoublement. Force to Jolts if Auto Rotation
if (ActionFound || (isAutoRotOn && isJoltAction))
{
if (MeleeCombo.TrySTMeleeCombo(actionID, out uint MeleeComboID, Config.RDM_ST_MeleeEnforced))
return MeleeComboID;
if (MeleeCombo.TrySTMeleeCombo(ref NewActionID, Config.RDM_ST_MeleeEnforced))
return NewActionID;
}

//Start the Combo
if (ActionFound)
{
if (MeleeCombo.TrySTMeleeStart(actionID, out uint MeleeID, IsEnabled(CustomComboPreset.RDM_ST_MeleeCombo_CorpsGapCloser),
if (MeleeCombo.TrySTMeleeStart(ref NewActionID, IsEnabled(CustomComboPreset.RDM_ST_MeleeCombo_CorpsGapCloser),
IsEnabled(CustomComboPreset.RDM_ST_MeleeCombo_UnbalanceMana)))
return MeleeID;
return NewActionID;
}
}

//RDM_ST_ACCELERATION
if (IsEnabled(CustomComboPreset.RDM_ST_ThunderAero) && IsEnabled(CustomComboPreset.RDM_ST_ThunderAero_Accel)
&& actionID is Jolt or Jolt2 or Jolt3)
{
if (SpellCombo.TryAcceleration(actionID, out uint AccID, IsEnabled(CustomComboPreset.RDM_ST_ThunderAero_Accel_Swiftcast)))
return AccID;
if (SpellCombo.TryAcceleration(ref NewActionID, IsEnabled(CustomComboPreset.RDM_ST_ThunderAero_Accel_Swiftcast)))
return NewActionID;
}

if (actionID is Jolt or Jolt2 or Jolt3)
{

if (SpellCombo.TrySTSpellRotation(actionID, out uint SpellID,
if (SpellCombo.TrySTSpellRotation(ref NewActionID,
IsEnabled(CustomComboPreset.RDM_ST_FireStone),
IsEnabled(CustomComboPreset.RDM_ST_ThunderAero)))
return SpellID;
return NewActionID;
}

//NO_CONDITIONS_MET
Expand Down Expand Up @@ -227,29 +231,31 @@ protected override uint Invoke(uint actionID)
CanSpellWeave())
return Variant.VariantRampart;

uint NewActionID = 0;

//RDM_OGCD
if (TryOGCDs(actionID, true, out uint oGCDAction, true))
return oGCDAction;
if (TryOGCDs(actionID, true, ref NewActionID, true))
return NewActionID;

// LUCID
if (TryLucidDreaming(actionID, 6500, ComboAction))
if (TryLucidDreaming(6500, ComboAction))
return All.LucidDreaming;

//RDM_MELEEFINISHER
if (MeleeCombo.TryMeleeFinisher(out uint finisherAction))
return finisherAction;
if (MeleeCombo.TryMeleeFinisher(ref NewActionID))
return NewActionID;

if (MeleeCombo.TryAoEManaEmbolden(actionID, out uint ManaEmbolden))
return ManaEmbolden;
if (MeleeCombo.TryAoEManaEmbolden(ref NewActionID))
return NewActionID;

if (MeleeCombo.TryAoEMeleeCombo(actionID, out uint AoEMeleeID))
return AoEMeleeID;
if (MeleeCombo.TryAoEMeleeCombo(ref NewActionID))
return NewActionID;

if (SpellCombo.TryAcceleration(actionID, out uint AccelID))
return AccelID;
if (SpellCombo.TryAcceleration(ref NewActionID))
return NewActionID;

if (SpellCombo.TryAoESpellRotation(actionID, out uint SpellID))
return SpellID;
if (SpellCombo.TryAoESpellRotation(ref NewActionID))
return NewActionID;
return actionID;
}
}
Expand All @@ -259,6 +265,12 @@ internal class RDM_AoE_DPS : CustomCombo
protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.RDM_AoE_DPS;
protected override uint Invoke(uint actionID)
{
if (actionID is not (Scatter or Impact) &&
actionID is not (Moulinet or Veraero2 or Verthunder2))
return actionID;

uint NewActionID = 0;

if (actionID is Scatter or Impact)
{
//VARIANTS
Expand All @@ -276,12 +288,12 @@ protected override uint Invoke(uint actionID)
//RDM_OGCD
if (IsEnabled(CustomComboPreset.RDM_AoE_oGCD)
&& LevelChecked(Corpsacorps)
&& TryOGCDs(actionID, true, out uint oGCDAction, true))
return oGCDAction;
&& TryOGCDs(actionID, true, ref NewActionID, true))
return NewActionID;

// LUCID
if (IsEnabled(CustomComboPreset.RDM_AoE_Lucid)
&& TryLucidDreaming(actionID, Config.RDM_AoE_Lucid_Threshold, ComboAction))
&& TryLucidDreaming(Config.RDM_AoE_Lucid_Threshold, ComboAction))
return All.LucidDreaming;
}

Expand All @@ -295,8 +307,8 @@ protected override uint Invoke(uint actionID)
(Config.RDM_AoE_MeleeFinisher_OnAction[1] && actionID is Moulinet) ||
(Config.RDM_AoE_MeleeFinisher_OnAction[2] && actionID is Veraero2 or Verthunder2)));

if (ActionFound && MeleeCombo.TryMeleeFinisher(out uint finisherAction))
return finisherAction;
if (ActionFound && MeleeCombo.TryMeleeFinisher(ref NewActionID))
return NewActionID;
}
//END_RDM_MELEEFINISHER

Expand All @@ -312,24 +324,24 @@ protected override uint Invoke(uint actionID)
if (ActionFound)
{
if (IsEnabled(CustomComboPreset.RDM_AoE_MeleeCombo_ManaEmbolden)
&& MeleeCombo.TryAoEManaEmbolden(actionID, out uint ManaEmbolen, Config.RDM_AoE_MoulinetRange))
return ManaEmbolen;
&& MeleeCombo.TryAoEManaEmbolden(ref NewActionID, Config.RDM_AoE_MoulinetRange))
return NewActionID;

if (MeleeCombo.TryAoEMeleeCombo(actionID, out uint AoEMelee, Config.RDM_AoE_MoulinetRange, IsEnabled(CustomComboPreset.RDM_AoE_MeleeCombo_CorpsGapCloser),
if (MeleeCombo.TryAoEMeleeCombo(ref NewActionID, Config.RDM_AoE_MoulinetRange, IsEnabled(CustomComboPreset.RDM_AoE_MeleeCombo_CorpsGapCloser),
false)) //Melee range enforced
return AoEMelee;
return NewActionID;
}
}

if (actionID is Scatter or Impact)
{
if (IsEnabled(CustomComboPreset.RDM_AoE_Accel)
&& SpellCombo.TryAcceleration(actionID, out uint AccelID, IsEnabled(CustomComboPreset.RDM_AoE_Accel_Swiftcast),
&& SpellCombo.TryAcceleration(ref NewActionID, IsEnabled(CustomComboPreset.RDM_AoE_Accel_Swiftcast),
IsEnabled(CustomComboPreset.RDM_AoE_Accel_Weave)))
return AccelID;
return NewActionID;

if (SpellCombo.TryAoESpellRotation(actionID, out uint SpellID))
return SpellID;
if (SpellCombo.TryAoESpellRotation(ref NewActionID))
return NewActionID;

}

Expand Down
Loading

0 comments on commit e4e3655

Please sign in to comment.