diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index 77b61b3971..f4ee530dab 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -1968,7 +1968,14 @@ function calcs.perform(env, skipEHP) breakdown.ManaReserved = { reservations = { } } end for _, activeSkill in ipairs(env.player.activeSkillList) do - if (activeSkill.skillTypes[SkillType.HasReservation] or activeSkill.skillData.triggeredByAutoexertion ) and not activeSkill.skillTypes[SkillType.ReservationBecomesCost] then + -- Mana-Infused Staff does nothing unless it actually reserves mana + local noManaReservation = activeSkill.activeEffect.grantedEffect.id == "ManaInfusedStaff" + and (activeSkill.skillModList:Flag(activeSkill.skillCfg, "BloodMagicReserved") or (output.Mana or 0) == 0) + if noManaReservation then + activeSkill.skillFlags.disable = true + activeSkill.disableReason = "This skill requires reserving Mana" + end + if (activeSkill.skillTypes[SkillType.HasReservation] or activeSkill.skillData.triggeredByAutoexertion ) and not activeSkill.skillTypes[SkillType.ReservationBecomesCost] and not noManaReservation then local skillModList = activeSkill.skillModList local skillCfg = activeSkill.skillCfg local mult = floor(skillModList:More(skillCfg, "SupportManaMultiplier"), 4) diff --git a/src/Modules/CalcTools.lua b/src/Modules/CalcTools.lua index 3c17791bc5..fdd6c09a11 100644 --- a/src/Modules/CalcTools.lua +++ b/src/Modules/CalcTools.lua @@ -91,6 +91,11 @@ function calcLib.canGrantedEffectSupportActiveSkill(grantedEffect, activeSkill, return false end + -- Mana-Infused Staff cannot be supported by Arrogance in game + if grantedEffect.id == "SupportArrogance" and activeSkill.activeEffect.grantedEffect.id == "ManaInfusedStaff" then + return false + end + -- Special case for things like Forbidden Shako or Hungry Loop with for example Prismatic Burst and another compatible support if not appliesToGrantedSkills and grantedEffect.fromItem and grantedEffect.support and (activeSkill.activeEffect.grantedEffect.fromItem or activeSkill.activeEffect.grantedEffect.modSource:sub(1, #"Item") == "Item" or (activeSkill.activeEffect.srcInstance and activeSkill.activeEffect.srcInstance.fromItem)) then return false