diff --git a/WeakAuras/Modernize.lua b/WeakAuras/Modernize.lua index 528fcbd..4fa838a 100644 --- a/WeakAuras/Modernize.lua +++ b/WeakAuras/Modernize.lua @@ -1245,6 +1245,17 @@ function Private.Modernize(data) end end + if data.internalVersion < 65 then + for triggerId, triggerData in ipairs(data.triggers) do + if triggerData.trigger.type == "item" + and triggerData.trigger.event == "Item Count" + and type(triggerData.trigger.itemName) == "number" + then + triggerData.trigger.use_exact_itemName = true + end + end + end + if data.internalVersion < 67 or data.internalVersion > WeakAuras.InternalVersion() then local castMigrationNeeded = data.internalVersion < 67 data.internalVersion = WeakAuras.InternalVersion() diff --git a/WeakAuras/Prototypes.lua b/WeakAuras/Prototypes.lua index 1120dcc..7815597 100644 --- a/WeakAuras/Prototypes.lua +++ b/WeakAuras/Prototypes.lua @@ -4947,9 +4947,19 @@ Private.event_prototypes = { trigger.itemName = trigger.itemName or 0; local itemName = type(trigger.itemName) == "number" and trigger.itemName or "[["..trigger.itemName.."]]"; local ret = [[ - local count = GetItemCount(%s, %s, %s); + local itemName = %s + local exactSpellMatch = %s + if not exactSpellMatch and tonumber(itemName) then + itemName = GetItemInfo(itemName) + end + local count = GetItemCount(itemName, %s, %s); ]]; - return ret:format(itemName, trigger.use_includeBank and "true" or "nil", trigger.use_includeCharges and "true" or "nil"); + return ret:format( + itemName, + trigger.use_exact_itemName and "true" or "nil", + trigger.use_includeBank and "true" or "nil", + trigger.use_includeCharges and "true" or "nil" + ) end, args = { { @@ -4957,8 +4967,19 @@ Private.event_prototypes = { required = true, display = L["Item"], type = "item", + showExactOption = true, test = "true" }, + { + name = "name", + display = L["Name"], + init = "itemName", + type = "string", + hidden = true, + store = true, + test = "true", + conditionType = "string" + }, { name = "includeBank", display = L["Include Bank"], @@ -4975,22 +4996,58 @@ Private.event_prototypes = { name = "count", display = L["Item Count"], type = "number" - } + }, + { + name = "stacks", + display = L["Stacks"], + init = "count", + hidden = true, + store = true, + test = "true", + conditionType = "number" + }, + { + name = "value", + init = "count", + hidden = true, + store = true, + test = "true", + display = L["Progress Value"], + conditionType = "number" + }, + { + name = "total", + init = 0, + hidden = true, + store = true, + test = "true", + display = L["Progress Total"], + conditionType = "number" + }, + { + name = "progressType", + init = "'static'", + hidden = true, + store = true, + test = "true", + conditionType = "number" + }, + { + name = "icon", + init = "GetItemIcon(itemName)", + hidden = true, + store = true, + test = "true" + }, + { + name = "name", + init = "itemName", + hidden = true, + store = true, + test = "true" + }, }, - durationFunc = function(trigger) - local count = GetItemCount(trigger.itemName, trigger.use_includeBank, trigger.use_includeCharges); - return count, 0, true; - end, - stacksFunc = function(trigger) - local count = GetItemCount(trigger.itemName, trigger.use_includeBank, trigger.use_includeCharges); - return count, 0, true; - end, - nameFunc = function(trigger) - return trigger.itemName; - end, - iconFunc = function(trigger) - return GetItemIcon(trigger.itemName); - end, + statesParameter = "one", hasItemID = true, automaticrequired = true },