From 692c7ddda7b5bd9c32cd94aabf4e21db76ddaeee Mon Sep 17 00:00:00 2001 From: unrealdreamz <132005717+unrealdreamz@users.noreply.github.com> Date: Mon, 18 May 2026 19:26:45 -0400 Subject: [PATCH 1/2] Recognize Ngamahu Rage source --- spec/System/TestSkills_spec.lua | 56 ++++++++++++++++++++++++++++++++- src/Modules/ModParser.lua | 1 + 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/spec/System/TestSkills_spec.lua b/spec/System/TestSkills_spec.lua index 3afa41ce0..029b521ee 100644 --- a/spec/System/TestSkills_spec.lua +++ b/spec/System/TestSkills_spec.lua @@ -193,6 +193,60 @@ describe("TestSkills", function() assert.True(baseLeapSlamHit < build.calcsTab.mainOutput.AverageDamage) end) + it("Test configured Rage still requires a recognised Rage source", function() + build.itemsTab:CreateDisplayItemFromRaw([[ + New Item + Fanatic Greathammer + Quality: 0 + ]]) + build.itemsTab:AddDisplayItem() + runCallback("OnFrame") + + build.skillsTab:PasteSocketGroup("Leap Slam 20/0 1") + runCallback("OnFrame") + + local baseLeapSlamHit = build.calcsTab.mainOutput.AverageDamage + + build.configTab.input.multiplierRage = 30 + build.configTab:BuildModList() + runCallback("OnFrame") + + assert.are.equals(nil, build.calcsTab.mainOutput.Rage) + assert.are.equals(baseLeapSlamHit, build.calcsTab.mainOutput.AverageDamage) + end) + + it("Test Ngamahu's Chosen rage charm modifier is recognised", function() + build.itemsTab:CreateDisplayItemFromRaw([[ + New Item + Fanatic Greathammer + Quality: 0 + ]]) + build.itemsTab:AddDisplayItem() + runCallback("OnFrame") + + build.skillsTab:PasteSocketGroup("Leap Slam 20/0 1") + runCallback("OnFrame") + + local baseLeapSlamHit = build.calcsTab.mainOutput.AverageDamage + + build.configTab.input.customMods = "Grants up to your maximum Rage on use" + build.configTab.input.multiplierRage = 30 + build.configTab:BuildModList() + runCallback("OnFrame") + + assert.are.equals(30, build.calcsTab.mainOutput.Rage) + assert.True(baseLeapSlamHit < build.calcsTab.mainOutput.AverageDamage) + + local modList, extra = modLib.parseMod("Grants up to your maximum Rage on use") + local grantsRage = false + for _, mod in ipairs(modList) do + grantsRage = grantsRage or mod.name == "Condition:CanGainRage" + end + + assert.are.equals(nil, extra) + assert.True(grantsRage) + end) + it("Test stacking persistent buff supports of same category", function() build.skillsTab:PasteSocketGroup("Arctic Armour 20/0 1\nClarity I 1/0 1") build.skillsTab:PasteSocketGroup("Time of Need 20/0 1\nClarity II 1/0 1") @@ -245,4 +299,4 @@ describe("TestSkills", function() assert.True(build.calcsTab.calcsOutput.Cooldown == 10) end) -end) \ No newline at end of file +end) diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index cc20d66c3..74ef0ac7c 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -5689,6 +5689,7 @@ local specialModList = { flag("Condition:CanGainRage"), } end, ["when you lose temporal chains you gain maximum rage"] = { flag("Condition:CanGainRage") }, + ["grants up to your maximum rage on use"] = { flag("Condition:CanGainRage") }, ["with a murderous eye jewel socketed, melee attacks grant (%d+) rage on hit, no more than once every second"] = { flag("Condition:CanGainRage", { type = "Condition", var = "HaveMurderousEyeJewelIn{SlotName}" }) }, ["gain %d+ rage after spending a total of %d+ mana"] = { flag("Condition:CanGainRage") }, ["rage grants cast speed instead of attack speed"] = { flag("Condition:RageCastSpeed") }, From 54a981439d95751837bb9d5d05950d3b07fc5330 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Thu, 21 May 2026 15:36:24 +1000 Subject: [PATCH 2/2] Remove tests --- spec/System/TestSkills_spec.lua | 56 +-------------------------------- 1 file changed, 1 insertion(+), 55 deletions(-) diff --git a/spec/System/TestSkills_spec.lua b/spec/System/TestSkills_spec.lua index 029b521ee..3afa41ce0 100644 --- a/spec/System/TestSkills_spec.lua +++ b/spec/System/TestSkills_spec.lua @@ -193,60 +193,6 @@ describe("TestSkills", function() assert.True(baseLeapSlamHit < build.calcsTab.mainOutput.AverageDamage) end) - it("Test configured Rage still requires a recognised Rage source", function() - build.itemsTab:CreateDisplayItemFromRaw([[ - New Item - Fanatic Greathammer - Quality: 0 - ]]) - build.itemsTab:AddDisplayItem() - runCallback("OnFrame") - - build.skillsTab:PasteSocketGroup("Leap Slam 20/0 1") - runCallback("OnFrame") - - local baseLeapSlamHit = build.calcsTab.mainOutput.AverageDamage - - build.configTab.input.multiplierRage = 30 - build.configTab:BuildModList() - runCallback("OnFrame") - - assert.are.equals(nil, build.calcsTab.mainOutput.Rage) - assert.are.equals(baseLeapSlamHit, build.calcsTab.mainOutput.AverageDamage) - end) - - it("Test Ngamahu's Chosen rage charm modifier is recognised", function() - build.itemsTab:CreateDisplayItemFromRaw([[ - New Item - Fanatic Greathammer - Quality: 0 - ]]) - build.itemsTab:AddDisplayItem() - runCallback("OnFrame") - - build.skillsTab:PasteSocketGroup("Leap Slam 20/0 1") - runCallback("OnFrame") - - local baseLeapSlamHit = build.calcsTab.mainOutput.AverageDamage - - build.configTab.input.customMods = "Grants up to your maximum Rage on use" - build.configTab.input.multiplierRage = 30 - build.configTab:BuildModList() - runCallback("OnFrame") - - assert.are.equals(30, build.calcsTab.mainOutput.Rage) - assert.True(baseLeapSlamHit < build.calcsTab.mainOutput.AverageDamage) - - local modList, extra = modLib.parseMod("Grants up to your maximum Rage on use") - local grantsRage = false - for _, mod in ipairs(modList) do - grantsRage = grantsRage or mod.name == "Condition:CanGainRage" - end - - assert.are.equals(nil, extra) - assert.True(grantsRage) - end) - it("Test stacking persistent buff supports of same category", function() build.skillsTab:PasteSocketGroup("Arctic Armour 20/0 1\nClarity I 1/0 1") build.skillsTab:PasteSocketGroup("Time of Need 20/0 1\nClarity II 1/0 1") @@ -299,4 +245,4 @@ describe("TestSkills", function() assert.True(build.calcsTab.calcsOutput.Cooldown == 10) end) -end) +end) \ No newline at end of file