diff --git a/spec/System/TestItemTools_spec.lua b/spec/System/TestItemTools_spec.lua index ab7c6785e..4b31025d2 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 a013bbd7c..397d18eff 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 +}