From 3bb2f7c1813c77847ad5c8e5603698a74431f225 Mon Sep 17 00:00:00 2001 From: Trifall Date: Tue, 4 Aug 2026 02:23:17 -0400 Subject: [PATCH] Fix non-projectile wand attacks registering as spellslinger triggers --- spec/System/TestTriggers_spec.lua | 8 ++++++++ src/Modules/CalcTriggers.lua | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/spec/System/TestTriggers_spec.lua b/spec/System/TestTriggers_spec.lua index c4ca6d2f124..5769afa3b6b 100644 --- a/spec/System/TestTriggers_spec.lua +++ b/spec/System/TestTriggers_spec.lua @@ -1055,13 +1055,21 @@ describe("TestTriggers", function() build.itemsTab:AddDisplayItem() runCallback("OnFrame") + build.itemsTab:CreateDisplayItemFromRaw("Test Shield\nSplintered Tower Shield") + build.itemsTab:AddDisplayItem() + runCallback("OnFrame") + build.skillsTab:PasteSocketGroup("Arc 20/0 1\nSpellslinger 20/0 1\n") runCallback("OnFrame") build.skillsTab:PasteSocketGroup("Kinetic Blast 20/0 1\n") runCallback("OnFrame") + build.skillsTab:PasteSocketGroup("Shield Charge 20/0 1\nFaster Attacks 20/0 1\n") + runCallback("OnFrame") + assert.True(build.calcsTab.mainOutput.SkillTriggerRate ~= nil) + assert.are.equals("Spellslinger's Trigger: Kinetic Blast", build.calcsTab.mainEnv.player.mainSkill.infoMessage) end) it("Trigger Mark On Hit", function() diff --git a/src/Modules/CalcTriggers.lua b/src/Modules/CalcTriggers.lua index 13f699938e5..46c61a59182 100644 --- a/src/Modules/CalcTriggers.lua +++ b/src/Modules/CalcTriggers.lua @@ -1201,8 +1201,8 @@ local configTable = { return {triggerName = "Spellslinger", triggerOnUse = true, triggerSkillCond = function(env, skill) - local isWandAttack = (not skill.weaponTypes or (skill.weaponTypes and skill.weaponTypes["Wand"])) and skill.skillTypes[SkillType.Attack] - return isWandAttack and not skill.skillData.triggeredBySpellSlinger + local isWandProjectileAttack = skill.skillTypes[SkillType.Attack] and skill.skillTypes[SkillType.Projectile] and band(skill.skillCfg.flags, ModFlag.Wand) > 0 + return isWandProjectileAttack and not skill.skillData.triggeredBySpellSlinger end} end, ["call to arms"] = function(env) -- This is for backwards compatibility only