diff --git a/main.fnl b/main.fnl index efd1c21..800185f 100644 --- a/main.fnl +++ b/main.fnl @@ -35,6 +35,12 @@ (starts-with a "gte:") (<= (tonumber (string.sub a 5)) (tonumber b)) + (starts-with a "lt<:") + (> (tonumber (string.sub a 5)) (tonumber b)) + + (starts-with a "gt>:") + (< (tonumber (string.sub a 5)) (tonumber b)) + (= a b))) ;; querying @@ -71,7 +77,7 @@ 14 (string.format "gte:%d" (- lv 4)) 14 (string.format "lte:%d" lv) ;; 12 (string.format "gte:%d" ilv) - stat-position (string.format "gte:%d" item-stat)} + stat-position (string.format "gt>:%d" item-stat)} ?sort)) (lambda find-good-item [invtype lv stat-position stat-baseline ?sort] diff --git a/main.lua b/main.lua index 5d89142..a029e1c 100644 --- a/main.lua +++ b/main.lua @@ -31,12 +31,16 @@ local function matches(a, b) return (tonumber(string.sub(a, 5)) >= tonumber(b)) elseif starts_with(a, "gte:") then return (tonumber(string.sub(a, 5)) <= tonumber(b)) + elseif starts_with(a, "lt<:") then + return (tonumber(string.sub(a, 5)) > tonumber(b)) + elseif starts_with(a, "gt>:") then + return (tonumber(string.sub(a, 5)) < tonumber(b)) else return (a == b) end end local function find_items(params, _3fsort) - _G.assert((nil ~= params), "Missing argument params on main.fnl:42") + _G.assert((nil ~= params), "Missing argument params on main.fnl:48") local results do local tbl_17_auto = {} @@ -70,7 +74,7 @@ local function find_items(params, _3fsort) end end local function find_item(params, _3fsort) - _G.assert((nil ~= params), "Missing argument params on main.fnl:57") + _G.assert((nil ~= params), "Missing argument params on main.fnl:63") local results = find_items(params, _3fsort) if results then return first(results) @@ -82,13 +86,13 @@ local function find_item_by_name(name) return find_item({[8] = name}) end local function find_next_better_item(class, subclass, invtype, lv, ilv, stat_position, item_stat, _3fsort) - return find_items({[4] = class, [6] = subclass, [10] = invtype, [14] = string.format("lte:%d", lv), [stat_position] = string.format("gte:%d", item_stat)}, _3fsort) + return find_items({[4] = class, [6] = subclass, [10] = invtype, [14] = string.format("lte:%d", lv), [stat_position] = string.format("gt>:%d", item_stat)}, _3fsort) end local function find_good_item(invtype, lv, stat_position, stat_baseline, _3fsort) - _G.assert((nil ~= stat_baseline), "Missing argument stat-baseline on main.fnl:77") - _G.assert((nil ~= stat_position), "Missing argument stat-position on main.fnl:77") - _G.assert((nil ~= lv), "Missing argument lv on main.fnl:77") - _G.assert((nil ~= invtype), "Missing argument invtype on main.fnl:77") + _G.assert((nil ~= stat_baseline), "Missing argument stat-baseline on main.fnl:83") + _G.assert((nil ~= stat_position), "Missing argument stat-position on main.fnl:83") + _G.assert((nil ~= lv), "Missing argument lv on main.fnl:83") + _G.assert((nil ~= invtype), "Missing argument invtype on main.fnl:83") return find_items({[10] = invtype, [14] = string.format("lte:%d", lv), [stat_position] = string.format("gte:%d", stat_baseline)}, _3fsort) end local function parse_opts(msg)