diff --git a/src/Modules/CalcActiveSkill.lua b/src/Modules/CalcActiveSkill.lua index 31fcf9b5d10..b45c77cf28e 100644 --- a/src/Modules/CalcActiveSkill.lua +++ b/src/Modules/CalcActiveSkill.lua @@ -273,6 +273,12 @@ function calcs.buildActiveSkillModList(env, activeSkill) activeSkill.disableReason = "This skill requires a Shield" end + if skillTypes[SkillType.RequiresStaff] and not activeSkill.summonSkill and (not activeSkill.actor.itemList["Weapon 1"] or activeSkill.actor.itemList["Weapon 1"].type ~= "Staff") then + -- Skill requires a staff to be equipped + skillFlags.disable = true + activeSkill.disableReason = "This skill requires a Staff" + end + if skillFlags.shieldAttack then -- Special handling for Spectral Shield Throw skillFlags.weapon2Attack = true diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index 77b61b39712..3112659bdf6 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -1968,7 +1968,7 @@ 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 + if (activeSkill.skillTypes[SkillType.HasReservation] or activeSkill.skillData.triggeredByAutoexertion ) and not activeSkill.skillTypes[SkillType.ReservationBecomesCost] and not activeSkill.skillFlags.disable then local skillModList = activeSkill.skillModList local skillCfg = activeSkill.skillCfg local mult = floor(skillModList:More(skillCfg, "SupportManaMultiplier"), 4)