diff --git a/main.fnl b/main.fnl index 3beff21..41e282b 100644 --- a/main.fnl +++ b/main.fnl @@ -47,6 +47,9 @@ (starts-with a "gt>:") (< (tonumber (string.sub a 5)) (tonumber b)) + (starts-with a "contains:") + (string.match (string.sub a 9) b) + (= a b))) ;; 2a: querying @@ -74,7 +77,7 @@ ;; 2b: specialized querying (fn find-item-by-name [name] - (find-item {8 name})) + (find-item {8 (.. "contains:" name)})) (fn find-next-better-item [class subclass invtype lv ilv stat-position item-stat ?sort] (let [stat-comparison "gt>:%d"] @@ -160,7 +163,7 @@ i-id (if i-link (parse-item-id i-link)) p-level (UnitLevel "player")] - (if (not i-link) + (if (not i-link) ;; empty (let [best (. (find-good-item diff --git a/main.lua b/main.lua index a8030b7..4fb8794 100644 --- a/main.lua +++ b/main.lua @@ -40,12 +40,14 @@ local function matches(a, b) return (tonumber(string.sub(a, 5)) > tonumber(b)) elseif starts_with(a, "gt>:") then return (tonumber(string.sub(a, 5)) < tonumber(b)) + elseif starts_with(a, "contains:") then + return string.match(string.sub(a, 9), b) else return (a == b) end end local function find_items(params, _3fsort) - _G.assert((nil ~= params), "Missing argument params on main.fnl:54") + _G.assert((nil ~= params), "Missing argument params on main.fnl:57") local results do local tbl_17_auto = {} @@ -79,7 +81,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:69") + _G.assert((nil ~= params), "Missing argument params on main.fnl:72") local results = find_items(params, _3fsort) if results then return results[1] @@ -88,17 +90,17 @@ local function find_item(params, _3fsort) end end local function find_item_by_name(name) - return find_item({[8] = name}) + return find_item({[8] = ("contains:" .. name)}) end local function find_next_better_item(class, subclass, invtype, lv, ilv, stat_position, item_stat, _3fsort) local stat_comparison = "gt>:%d" return find_items({[4] = class, [6] = subclass, [10] = invtype, [14] = string.format("lte:%d", lv), [stat_position] = string.format(stat_comparison, 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:88") - _G.assert((nil ~= stat_position), "Missing argument stat-position on main.fnl:88") - _G.assert((nil ~= lv), "Missing argument lv on main.fnl:88") - _G.assert((nil ~= invtype), "Missing argument invtype on main.fnl:88") + _G.assert((nil ~= stat_baseline), "Missing argument stat-baseline on main.fnl:91") + _G.assert((nil ~= stat_position), "Missing argument stat-position on main.fnl:91") + _G.assert((nil ~= lv), "Missing argument lv on main.fnl:91") + _G.assert((nil ~= invtype), "Missing argument invtype on main.fnl:91") return find_items({[10] = invtype, [14] = string.format("lte:%d", lv), [stat_position] = string.format("gte:%d", stat_baseline)}, _3fsort) end local function parse_item_id(link)