Browse Source

allow substring matches to compare against random-buff items

master
anonymous 8 months ago
parent
commit
8e19817abc
3 changed files with 15 additions and 10 deletions
  1. +1
    -1
      Better.toc
  2. +5
    -2
      main.fnl
  3. +9
    -7
      main.lua

+ 1
- 1
Better.toc View File

@@ -2,7 +2,7 @@
## Title: Better
## Notes: Shows better item for given slot
## Author: L
## Version: 0.0.5
## Version: 0.0.6

Items.lua



+ 5
- 2
main.fnl View File

@@ -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


+ 9
- 7
main.lua View File

@@ -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)


Loading…
Cancel
Save