From 6deffeb45b0fe215896d6c23bbbc53e2f80b4592 Mon Sep 17 00:00:00 2001 From: unrealdreamz <132005717+unrealdreamz@users.noreply.github.com> Date: Mon, 18 May 2026 17:16:39 -0400 Subject: [PATCH] Fix applyRange plus sign at zero --- spec/System/TestItemTools_spec.lua | 5 ++++- src/Modules/ItemTools.lua | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/spec/System/TestItemTools_spec.lua b/spec/System/TestItemTools_spec.lua index ab7c6785e0..4b31025d28 100644 --- a/spec/System/TestItemTools_spec.lua +++ b/spec/System/TestItemTools_spec.lua @@ -36,6 +36,9 @@ local applyRangeTests = { [{ "+(-25-50)% to Fire Resistance", 1.0, 1.5 }] = "+75% to Fire Resistance", [{ "+(-25-50)% to Fire Resistance", 0.0, 1.0 }] = "-25% to Fire Resistance", [{ "+(-25-50)% to Fire Resistance", 0.0, 1.5 }] = "-37% to Fire Resistance", + + -- Range with plus sign that resolves exactly to zero + [{ "+(-1-1) to Maximum Power Charges", 0.5, 1.0 }] = "0 to Maximum Power Charges", } describe("TestItemTools", function() @@ -45,4 +48,4 @@ describe("TestItemTools", function() assert.are.equals(expected, result) end) end -end) \ No newline at end of file +end) diff --git a/src/Modules/ItemTools.lua b/src/Modules/ItemTools.lua index a013bbd7ce..397d18eff0 100644 --- a/src/Modules/ItemTools.lua +++ b/src/Modules/ItemTools.lua @@ -76,7 +76,7 @@ function itemLib.applyRange(line, range, valueScalar, baseValueScalar) local strippedLine = line:gsub("([%+-]?)%((%-?%d+%.?%d*)%-(%-?%d+%.?%d*)%)", function(sign, min, max) local value = min + range * (tonumber(max) - min) if sign == "-" then value = value * -1 end - return (sign == "+" and value >= 0 ) and sign..tostring(value) or tostring(value) + return (sign == "+" and value > 0) and sign..tostring(value) or tostring(value) end) :gsub("%-(%d+%.?%d*%%) (%a+)", antonymFunc) :gsub("(%-?%d+%.?%d*)", function(value) @@ -366,4 +366,4 @@ itemLib.wiki = { return key == itemLib.wiki.key end, triggered = false -} \ No newline at end of file +}