From 2a5efed4bfbe5b93a9972e794f266febc05fd340 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Fri, 1 Aug 2025 16:53:58 +1000 Subject: [PATCH] Revert PR #8804 as it caused issues Fixes #8866 Reopens #8042 --- src/Modules/CalcActiveSkill.lua | 14 +++----------- src/Modules/CalcPerform.lua | 2 +- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/src/Modules/CalcActiveSkill.lua b/src/Modules/CalcActiveSkill.lua index 5899714a..01a1896c 100644 --- a/src/Modules/CalcActiveSkill.lua +++ b/src/Modules/CalcActiveSkill.lua @@ -486,6 +486,9 @@ function calcs.buildActiveSkillModList(env, activeSkill) if level.manaMultiplier then skillModList:NewMod("SupportManaMultiplier", "MORE", level.manaMultiplier, skillEffect.grantedEffect.modSource) end + if level.manaReservationPercent then + activeSkill.skillData.manaReservationPercent = level.manaReservationPercent + end -- Handle multiple triggers situation and if triggered by a trigger skill save a reference to the trigger. local match = skillEffect.grantedEffect.addSkillTypes and (not skillFlags.disable) if match and skillEffect.grantedEffect.isTrigger then @@ -495,8 +498,6 @@ function calcs.buildActiveSkillModList(env, activeSkill) else activeSkill.triggeredBy = skillEffect end - elseif level.manaReservationPercent then - activeSkill.skillData.manaReservationPercent = level.manaReservationPercent end if level.PvPDamageMultiplier then skillModList:NewMod("PvpDamageMultiplier", "MORE", level.PvPDamageMultiplier, skillEffect.grantedEffect.modSource) @@ -507,15 +508,6 @@ function calcs.buildActiveSkillModList(env, activeSkill) end end - if activeSkill.activeEffect.srcInstance then - local supportEffect = activeSkill.activeEffect.srcInstance.supportEffect - if supportEffect and supportEffect.grantedEffect.isTrigger then - for effect, _ in pairs(supportEffect.isSupporting) do - activeSkill.skillData.manaReservationPercent = (activeSkill.skillData.manaReservationPercent or 0) + (supportEffect.grantedEffect.levels[supportEffect.level].manaReservationPercent or 0) - end - end - end - -- Apply gem/quality modifiers from support gems skillModList:NewMod("GemLevel", "BASE", activeSkill.activeEffect.srcInstance and activeSkill.activeEffect.srcInstance.level or activeSkill.activeEffect.level, "Max Level") for _, supportProperty in ipairs(skillModList:Tabulate("LIST", activeSkill.skillCfg, "SupportedGemProperty")) do diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index fc0e3044..a41ac33a 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -1654,7 +1654,7 @@ function calcs.perform(env, skipEHP) breakdown.ManaReserved = { reservations = { } } end for _, activeSkill in ipairs(env.player.activeSkillList) do - if activeSkill.skillTypes[SkillType.HasReservation] and not activeSkill.skillTypes[SkillType.ReservationBecomesCost] then + if (activeSkill.skillTypes[SkillType.HasReservation] or activeSkill.skillData.SupportedByAutoexertion) and not activeSkill.skillTypes[SkillType.ReservationBecomesCost] then local skillModList = activeSkill.skillModList local skillCfg = activeSkill.skillCfg local mult = floor(skillModList:More(skillCfg, "SupportManaMultiplier"), 4)