diff --git a/XIVSlothCombo/Combos/CustomComboPreset.cs b/XIVSlothCombo/Combos/CustomComboPreset.cs index 53efa4ec2..14c1d6bbe 100644 --- a/XIVSlothCombo/Combos/CustomComboPreset.cs +++ b/XIVSlothCombo/Combos/CustomComboPreset.cs @@ -322,7 +322,8 @@ public enum CustomComboPreset AST_AoE_SimpleHeals_Horoscope = 1026, [ParentCombo(AST_AoE_SimpleHeals_AspectedHelios)] - [CustomComboInfo("Aspected Helios Option", "In Helios mode: Will Cast Aspected Helios when the HoT is missing on yourself.", AST.JobID)] + [CustomComboInfo("Aspected Helios Option", "In Helios mode: Will Cast Aspected Helios when the HoT is missing on yourself." + + "\nIn Aspected Helios mode: Is considered enabled regardless.", AST.JobID)] AST_AoE_SimpleHeals_Aspected = 1053, [ReplaceSkill(AST.Benefic2)] diff --git a/XIVSlothCombo/Combos/PvE/AST.cs b/XIVSlothCombo/Combos/PvE/AST.cs index 05c2de2a7..2d8562149 100644 --- a/XIVSlothCombo/Combos/PvE/AST.cs +++ b/XIVSlothCombo/Combos/PvE/AST.cs @@ -483,8 +483,6 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim bool NonaspectedMode = GetIntOptionAsBool(Config.AST_AoEHeals_AltMode); //(0 or 1 radio values) if (NonaspectedMode && actionID is Helios || !NonaspectedMode && actionID is AspectedHelios or HeliosConjuction) - - { var canLady = (Config.AST_AoE_SimpleHeals_WeaveLady && CanSpellWeave(actionID)) || !Config.AST_AoE_SimpleHeals_WeaveLady; var canHoroscope = (Config.AST_AoE_SimpleHeals_Horoscope && CanSpellWeave(actionID)) || !Config.AST_AoE_SimpleHeals_Horoscope; @@ -515,30 +513,23 @@ Gauge.DrawnCrownCard is CardType.LADY return OriginalHook(Horoscope); } - if (IsEnabled(CustomComboPreset.AST_AoE_SimpleHeals_Aspected) && NonaspectedMode) // So helios mode can run aspected option - { - if ((ActionReady(AspectedHelios) - && !HasEffect(Buffs.AspectedHelios) - && !HasEffect(Buffs.HeliosConjunction)) - || HasEffect(Buffs.Horoscope) - || (HasEffect(Buffs.NeutralSect) && !HasEffect(Buffs.NeutralSectShield))) - return OriginalHook(AspectedHelios); - } + // Only check for our own HoTs + var aspectedHeliosHoT = FindEffect(Buffs.AspectedBenefic, LocalPlayer, LocalPlayer?.GameObjectId); + var heliosConjunctionHoT = FindEffect(Buffs.AspectedBenefic, LocalPlayer, LocalPlayer?.GameObjectId); - if (!NonaspectedMode) //So aspected mode runs normal without having to select it from the option as well + if ((IsEnabled(CustomComboPreset.AST_AoE_SimpleHeals_Aspected) && NonaspectedMode) || // Helios mode: option must be on + !NonaspectedMode) // Aspected mode: option is not required { if ((ActionReady(AspectedHelios) - && !HasEffect(Buffs.AspectedHelios) - && !HasEffect(Buffs.HeliosConjunction)) + && aspectedHeliosHoT is null + && heliosConjunctionHoT is null) || HasEffect(Buffs.Horoscope) || (HasEffect(Buffs.NeutralSect) && !HasEffect(Buffs.NeutralSectShield))) return OriginalHook(AspectedHelios); } - if ((HasEffect(Buffs.AspectedHelios) - || HasEffect(Buffs.HeliosConjunction)) - && (FindEffect(Buffs.AspectedHelios)?.RemainingTime > 2 - || FindEffect(Buffs.HeliosConjunction)?.RemainingTime > 2)) + if ((aspectedHeliosHoT is not null || heliosConjunctionHoT is not null) + && (aspectedHeliosHoT?.RemainingTime > 2 || heliosConjunctionHoT?.RemainingTime > 2)) return Helios; }