You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
906 lines
33 KiB
906 lines
33 KiB
if not WeakAuras.IsCorrectVersion() or not WeakAuras.IsLibsOK() then return end
|
|
local AddonName, OptionsPrivate = ...
|
|
|
|
local L = WeakAuras.L;
|
|
|
|
local function getAuraMatchesLabel(name)
|
|
local ids = WeakAuras.spellCache.GetSpellsMatching(name)
|
|
if(ids) then
|
|
local numMatches = 0;
|
|
for _ in pairs(ids) do
|
|
numMatches = numMatches + 1;
|
|
end
|
|
if(numMatches == 1) then
|
|
return L["1 Match"];
|
|
else
|
|
return L["%i Matches"]:format(numMatches);
|
|
end
|
|
else
|
|
return "";
|
|
end
|
|
end
|
|
|
|
local function getAuraMatchesList(name)
|
|
local ids = WeakAuras.spellCache.GetSpellsMatching(name)
|
|
if(ids) then
|
|
local descText = "";
|
|
for id in pairs(ids) do
|
|
local _, _, icon = GetSpellInfo(id);
|
|
if(icon) then
|
|
if(descText == "") then
|
|
descText = "|T"..icon..":0|t: "..id;
|
|
else
|
|
descText = descText.."\n|T"..icon..":0|t: "..id;
|
|
end
|
|
end
|
|
end
|
|
return descText;
|
|
else
|
|
return "";
|
|
end
|
|
end
|
|
|
|
local noop = function() end
|
|
|
|
local function CanShowNameInfo(data)
|
|
if(data.regionType == "aurabar" or data.regionType == "icon" or data.regionType == "text") then
|
|
return true;
|
|
else
|
|
return false;
|
|
end
|
|
end
|
|
|
|
local function CanShowStackInfo(data)
|
|
if(data.regionType == "aurabar" or data.regionType == "icon" or data.regionType == "text") then
|
|
return true;
|
|
else
|
|
return false;
|
|
end
|
|
end
|
|
|
|
local function GetBuffTriggerOptions(data, triggernum)
|
|
local trigger = data.triggers[triggernum].trigger
|
|
trigger.names = trigger.names or {}
|
|
trigger.spellIds = trigger.spellIds or {}
|
|
local spellCache = WeakAuras.spellCache;
|
|
local ValidateNumeric = WeakAuras.ValidateNumeric;
|
|
local aura_options = {
|
|
deleteNote = {
|
|
type = "description",
|
|
order = 8,
|
|
name = L["Note: The legacy buff trigger is now permanently disabled. It will be removed in the near future."],
|
|
fontSize = "large"
|
|
},
|
|
convertToBuffTrigger2SpaceBeforeDesc = {
|
|
type = "description",
|
|
width = 0.4,
|
|
order = 8.1,
|
|
name = "",
|
|
},
|
|
convertToBuffTrigger2Desc = {
|
|
type = "description",
|
|
width = WeakAuras.doubleWidth - 0.8,
|
|
order = 8.2,
|
|
name = function()
|
|
if (not OptionsPrivate.Private.CanConvertBuffTrigger2) then
|
|
return "";
|
|
end
|
|
local _, err = OptionsPrivate.Private.CanConvertBuffTrigger2(trigger);
|
|
return err or "";
|
|
end,
|
|
},
|
|
convertToBuffTrigger2SpaceAfterDesc = {
|
|
type = "description",
|
|
width = 0.4,
|
|
order = 8.3,
|
|
name = "",
|
|
},
|
|
convertToBuffTrigger2SpaceBefore = {
|
|
type = "description",
|
|
width = 0.3,
|
|
order = 8.4,
|
|
name = "",
|
|
},
|
|
convertToBuffTrigger2 = {
|
|
type = "execute",
|
|
width = WeakAuras.doubleWidth - 0.6,
|
|
name = L["Convert to New Aura Trigger"],
|
|
order = 8.5,
|
|
disabled = function()
|
|
if (not OptionsPrivate.Private.CanConvertBuffTrigger2) then
|
|
return true;
|
|
end
|
|
if (not OptionsPrivate.Private.CanConvertBuffTrigger2(trigger)) then
|
|
return true;
|
|
end
|
|
return false;
|
|
end,
|
|
desc = function()
|
|
local _, err = OptionsPrivate.Private.CanConvertBuffTrigger2(trigger);
|
|
return err or ""
|
|
end,
|
|
func = function()
|
|
OptionsPrivate.Private.ConvertBuffTrigger2(trigger);
|
|
WeakAuras.Add(data);
|
|
WeakAuras.UpdateThumbnail(data)
|
|
WeakAuras.ClearAndUpdateOptions(data.id);
|
|
end
|
|
},
|
|
convertToBuffTrigger2SpaceAfter = {
|
|
type = "description",
|
|
width = 0.3,
|
|
order = 8.6,
|
|
name = "",
|
|
},
|
|
|
|
fullscan = {
|
|
type = "toggle",
|
|
name = L["Use Full Scan (High CPU)"],
|
|
width = WeakAuras.doubleWidth,
|
|
order = 9,
|
|
set = noop
|
|
},
|
|
autoclone = {
|
|
type = "toggle",
|
|
name = L["Show all matches (Auto-clone)"],
|
|
width = WeakAuras.doubleWidth,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.fullscan); end,
|
|
order = 9.5,
|
|
set = noop
|
|
},
|
|
useName = {
|
|
type = "toggle",
|
|
name = L["Aura(s)"],
|
|
width = WeakAuras.halfWidth,
|
|
order = 10,
|
|
hidden = function() return not (trigger.type == "aura" and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
disabled = true,
|
|
get = function() return true end,
|
|
set = noop
|
|
},
|
|
use_name = {
|
|
type = "toggle",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Aura Name"],
|
|
order = 10,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.fullscan); end,
|
|
set = noop
|
|
},
|
|
name_operator = {
|
|
type = "select",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Operator"],
|
|
order = 11,
|
|
disabled = function() return not trigger.use_name end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.fullscan); end,
|
|
values = OptionsPrivate.Private.string_operator_types,
|
|
set = noop
|
|
},
|
|
name = {
|
|
type = "input",
|
|
name = L["Aura Name"],
|
|
width = WeakAuras.doubleWidth,
|
|
order = 12,
|
|
disabled = function() return not trigger.use_name end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.fullscan); end,
|
|
set = noop
|
|
},
|
|
use_tooltip = {
|
|
type = "toggle",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Tooltip"],
|
|
order = 13,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
set = noop
|
|
},
|
|
tooltip_operator = {
|
|
type = "select",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Operator"],
|
|
order = 14,
|
|
disabled = function() return not trigger.use_tooltip end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
values = OptionsPrivate.Private.string_operator_types,
|
|
set = noop
|
|
},
|
|
tooltip = {
|
|
type = "input",
|
|
width = WeakAuras.doubleWidth,
|
|
name = L["Tooltip"],
|
|
order = 15,
|
|
disabled = function() return not trigger.use_tooltip end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
set = noop
|
|
},
|
|
use_stealable = {
|
|
type = "toggle",
|
|
width = WeakAuras.doubleWidth,
|
|
name = function(input)
|
|
local value = trigger.use_stealable;
|
|
if(value == nil) then return L["Stealable"];
|
|
elseif(value == false) then return "|cFFFF0000 "..L["Negator"].." "..L["Stealable"];
|
|
else return "|cFF00FF00"..L["Stealable"]; end
|
|
end,
|
|
order = 16,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
get = function()
|
|
local value = trigger.use_stealable;
|
|
if(value == nil) then return false;
|
|
elseif(value == false) then return "false";
|
|
else return "true"; end
|
|
end,
|
|
set = noop
|
|
},
|
|
use_spellId = {
|
|
type = "toggle",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Spell ID"],
|
|
order = 17,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
set = noop
|
|
},
|
|
spellId = {
|
|
type = "input",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Spell ID"],
|
|
order = 18,
|
|
disabled = function() return not trigger.use_spellId end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
set = noop
|
|
},
|
|
use_debuffClass = {
|
|
type = "toggle",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Debuff Type"],
|
|
order = 19,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.fullscan); end,
|
|
set = noop
|
|
},
|
|
debuffClass = {
|
|
type = "select",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Debuff Type"],
|
|
order = 20,
|
|
disabled = function() return not trigger.use_debuffClass end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.fullscan); end,
|
|
values = OptionsPrivate.Private.debuff_class_types,
|
|
set = noop
|
|
},
|
|
multiuse_name = {
|
|
type = "toggle",
|
|
width = WeakAuras.halfWidth,
|
|
name = L["Aura Name"],
|
|
order = 10,
|
|
hidden = function() return not (trigger.type == "aura" and not trigger.fullscan and trigger.unit == "multi"); end,
|
|
disabled = true,
|
|
get = function() return true end,
|
|
set = noop
|
|
},
|
|
multiicon = {
|
|
type = "execute",
|
|
width = WeakAuras.halfWidth,
|
|
name = "",
|
|
image = function()
|
|
if (not trigger.name) then return "" end;
|
|
local icon = spellCache.GetIcon(trigger.name);
|
|
return icon and tostring(icon) or "", 18, 18 end,
|
|
order = 11,
|
|
disabled = function() return not trigger.name and spellCache.GetIcon(trigger.name) end,
|
|
hidden = function() return not (trigger.type == "aura" and not trigger.fullscan and trigger.unit == "multi"); end,
|
|
set = noop
|
|
},
|
|
multiname = {
|
|
type = "input",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Aura Name"],
|
|
desc = L["Enter an aura name, partial aura name, or spell id"],
|
|
order = 12,
|
|
hidden = function() return not (trigger.type == "aura" and not trigger.fullscan and trigger.unit == "multi"); end,
|
|
get = function(info) return trigger.spellId and tostring(trigger.spellId) or trigger.name end,
|
|
set = noop
|
|
},
|
|
name1icon = {
|
|
type = "execute",
|
|
width = WeakAuras.halfWidth,
|
|
name = function() return getAuraMatchesLabel(trigger.names[1]) end,
|
|
desc = function() return getAuraMatchesList(trigger.names[1]) end,
|
|
image = function()
|
|
local icon = spellCache.GetIcon(trigger.names[1]);
|
|
return icon and tostring(icon) or "", 18, 18
|
|
end,
|
|
order = 11,
|
|
disabled = function() return not spellCache.GetIcon(trigger.names[1]) end,
|
|
hidden = function() return not (trigger.type == "aura" and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
set = noop
|
|
},
|
|
name1 = {
|
|
type = "input",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Aura Name"],
|
|
desc = L["Enter an aura name, partial aura name, or spell id"],
|
|
order = 12,
|
|
hidden = function() return not (trigger.type == "aura" and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
get = function(info) return trigger.spellIds[1] and tostring(trigger.spellIds[1]) or trigger.names[1] end,
|
|
set = noop
|
|
},
|
|
name2space = {
|
|
type = "execute",
|
|
width = WeakAuras.halfWidth,
|
|
name = L["or"],
|
|
image = function() return "", 0, 0 end,
|
|
order = 13,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[1] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
},
|
|
name2icon = {
|
|
type = "execute",
|
|
width = WeakAuras.halfWidth,
|
|
name = function() return getAuraMatchesLabel(trigger.names[2]) end,
|
|
desc = function() return getAuraMatchesList(trigger.names[2]) end,
|
|
image = function()
|
|
local icon = spellCache.GetIcon(trigger.names[2]);
|
|
return icon and tostring(icon) or "", 18, 18
|
|
end,
|
|
order = 14,
|
|
disabled = function() return not spellCache.GetIcon(trigger.names[2]) end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[1] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
},
|
|
name2 = {
|
|
type = "input",
|
|
width = WeakAuras.normalWidth,
|
|
order = 15,
|
|
name = "",
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[1] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
get = function(info) return trigger.spellIds[2] and tostring(trigger.spellIds[2]) or trigger.names[2] end,
|
|
set = noop
|
|
},
|
|
name3space = {
|
|
type = "execute",
|
|
width = WeakAuras.halfWidth,
|
|
name = "",
|
|
image = function() return "", 0, 0 end,
|
|
order = 16,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[2] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
},
|
|
name3icon = {
|
|
type = "execute",
|
|
width = WeakAuras.halfWidth,
|
|
name = function() return getAuraMatchesLabel(trigger.names[3]) end,
|
|
desc = function() return getAuraMatchesList(trigger.names[3]) end,
|
|
image = function()
|
|
local icon = spellCache.GetIcon(trigger.names[3]);
|
|
return icon and tostring(icon) or "", 18, 18
|
|
end,
|
|
order = 17,
|
|
disabled = function() return not spellCache.GetIcon(trigger.names[3]) end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[2] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
},
|
|
name3 = {
|
|
type = "input",
|
|
width = WeakAuras.normalWidth,
|
|
order = 18,
|
|
name = "",
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[2] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
get = function(info) return trigger.spellIds[3] and tostring(trigger.spellIds[3]) or trigger.names[3] end,
|
|
set = noop
|
|
},
|
|
name4space = {
|
|
type = "execute",
|
|
width = WeakAuras.halfWidth,
|
|
name = "",
|
|
image = function() return "", 0, 0 end,
|
|
order = 19,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[3] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
},
|
|
name4icon = {
|
|
type = "execute",
|
|
width = WeakAuras.halfWidth,
|
|
name = function() return getAuraMatchesLabel(trigger.names[4]) end,
|
|
desc = function() return getAuraMatchesList(trigger.names[4]) end,
|
|
image = function()
|
|
local icon = spellCache.GetIcon(trigger.names[4]);
|
|
return icon and tostring(icon) or "", 18, 18
|
|
end,
|
|
order = 20,
|
|
disabled = function() return not spellCache.GetIcon(trigger.names[4]) end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[3] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
},
|
|
name4 = {
|
|
type = "input",
|
|
order = 21,
|
|
name = "",
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[3] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
get = function(info) return trigger.spellIds[4] and tostring(trigger.spellIds[4]) or trigger.names[4] end,
|
|
set = noop
|
|
},
|
|
name5space = {
|
|
type = "execute",
|
|
width = WeakAuras.halfWidth,
|
|
name = "",
|
|
image = function() return "", 0, 0 end,
|
|
order = 22,
|
|
disabled = function() return not spellCache.GetIcon(trigger.names[5]) end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[4] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
},
|
|
name5icon = {
|
|
type = "execute",
|
|
width = WeakAuras.halfWidth,
|
|
name = function() return getAuraMatchesLabel(trigger.names[5]) end,
|
|
desc = function() return getAuraMatchesList(trigger.names[5]) end,
|
|
image = function()
|
|
local icon = spellCache.GetIcon(trigger.names[5]);
|
|
return icon and tostring(icon) or "", 18, 18
|
|
end,
|
|
order = 23,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[4] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
},
|
|
name5 = {
|
|
type = "input",
|
|
width = WeakAuras.normalWidth,
|
|
order = 24,
|
|
name = "",
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[4] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
get = function(info) return trigger.spellIds[5] and tostring(trigger.spellIds[5]) or trigger.names[5] end,
|
|
set = noop
|
|
},
|
|
name6space = {
|
|
type = "execute",
|
|
name = "",
|
|
width = WeakAuras.halfWidth,
|
|
image = function() return "", 0, 0 end,
|
|
order = 25,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[5] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
},
|
|
name6icon = {
|
|
type = "execute",
|
|
name = function() return getAuraMatchesLabel(trigger.names[6]) end,
|
|
desc = function() return getAuraMatchesList(trigger.names[6]) end,
|
|
width = WeakAuras.halfWidth,
|
|
image = function()
|
|
local icon = spellCache.GetIcon(trigger.names[6]);
|
|
return icon and tostring(icon) or "", 18, 18
|
|
end,
|
|
order = 26,
|
|
disabled = function() return not spellCache.GetIcon(trigger.names[6]) end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[5] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
},
|
|
name6 = {
|
|
type = "input",
|
|
width = WeakAuras.normalWidth,
|
|
order = 27,
|
|
name = "",
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[5] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
get = function(info) return trigger.spellIds[6] and tostring(trigger.spellIds[6]) or trigger.names[6] end,
|
|
set = noop
|
|
},
|
|
name7space = {
|
|
type = "execute",
|
|
name = "",
|
|
width = WeakAuras.halfWidth,
|
|
image = function() return "", 0, 0 end,
|
|
order = 28,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[6] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
},
|
|
name7icon = {
|
|
type = "execute",
|
|
name = function() return getAuraMatchesLabel(trigger.names[7]) end,
|
|
desc = function() return getAuraMatchesList(trigger.names[7]) end,
|
|
width = WeakAuras.halfWidth,
|
|
image = function()
|
|
local icon = spellCache.GetIcon(trigger.names[7]);
|
|
return icon and tostring(icon) or "", 18, 18
|
|
end,
|
|
order = 29,
|
|
disabled = function() return not spellCache.GetIcon(trigger.names[7]) end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[6] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
},
|
|
name7 = {
|
|
type = "input",
|
|
width = WeakAuras.normalWidth,
|
|
order = 30,
|
|
name = "",
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[6] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
get = function(info) return trigger.spellIds[7] and tostring(trigger.spellIds[7]) or trigger.names[7] end,
|
|
set = noop
|
|
},
|
|
name8space = {
|
|
type = "execute",
|
|
name = "",
|
|
width = WeakAuras.halfWidth,
|
|
image = function() return "", 0, 0 end,
|
|
order = 31,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[7] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
},
|
|
name8icon = {
|
|
type = "execute",
|
|
name = function() return getAuraMatchesLabel(trigger.names[8]) end,
|
|
desc = function() return getAuraMatchesList(trigger.names[8]) end,
|
|
width = WeakAuras.halfWidth,
|
|
image = function()
|
|
local icon = spellCache.GetIcon(trigger.names[8]);
|
|
return icon and tostring(icon) or "", 18, 18
|
|
end,
|
|
order = 32,
|
|
disabled = function() return not spellCache.GetIcon(trigger.names[8]) end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[7] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
},
|
|
name8 = {
|
|
type = "input",
|
|
width = WeakAuras.normalWidth,
|
|
order = 33,
|
|
name = "",
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[7] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
get = function(info) return trigger.spellIds[8] and tostring(trigger.spellIds[8]) or trigger.names[8] end,
|
|
set = noop
|
|
},
|
|
name9space = {
|
|
type = "execute",
|
|
name = "",
|
|
width = WeakAuras.halfWidth,
|
|
image = function() return "", 0, 0 end,
|
|
order = 34,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[8] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
},
|
|
name9icon = {
|
|
type = "execute",
|
|
name = function() return getAuraMatchesLabel(trigger.names[9]) end,
|
|
desc = function() return getAuraMatchesList(trigger.names[9]) end,
|
|
width = WeakAuras.halfWidth,
|
|
image = function()
|
|
local icon = spellCache.GetIcon(trigger.names[9]);
|
|
return icon and tostring(icon) or "", 18, 18
|
|
end,
|
|
order = 35,
|
|
disabled = function() return not spellCache.GetIcon(trigger.names[9]) end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[8] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
},
|
|
name9 = {
|
|
type = "input",
|
|
width = WeakAuras.normalWidth,
|
|
order = 36,
|
|
name = "",
|
|
hidden = function() return not (trigger.type == "aura" and trigger.names[8] and not trigger.fullscan and trigger.unit ~= "multi"); end,
|
|
get = function(info) return trigger.spellIds[9] and tostring(trigger.spellIds[9]) or trigger.names[9] end,
|
|
set = noop
|
|
},
|
|
useUnit = {
|
|
type = "toggle",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Unit"],
|
|
order = 40,
|
|
disabled = true,
|
|
hidden = function() return not (trigger.type == "aura"); end,
|
|
get = function() return true end,
|
|
set = noop
|
|
},
|
|
unit = {
|
|
type = "select",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Unit"],
|
|
order = 41,
|
|
values = function()
|
|
if(trigger.fullscan) then
|
|
return OptionsPrivate.Private.actual_unit_types_with_specific;
|
|
else
|
|
return OptionsPrivate.Private.unit_types;
|
|
end
|
|
end,
|
|
hidden = function() return not (trigger.type == "aura"); end,
|
|
get = function()
|
|
if(trigger.fullscan and (trigger.unit == "group" or trigger.unit == "multi")) then
|
|
trigger.unit = "player";
|
|
end
|
|
return trigger.unit;
|
|
end,
|
|
set = noop
|
|
},
|
|
useSpecificUnit = {
|
|
type = "toggle",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Specific Unit"],
|
|
order = 42,
|
|
disabled = true,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit == "member") end,
|
|
get = function() return true end,
|
|
set = noop
|
|
},
|
|
specificUnit = {
|
|
type = "input",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Specific Unit"],
|
|
order = 43,
|
|
desc = L["Can be a Name or a Unit ID (e.g. party1). A name only works on friendly players in your group."],
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit == "member") end,
|
|
set = noop
|
|
},
|
|
useGroup_count = {
|
|
type = "toggle",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Group Member Count"],
|
|
disabled = true,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit == "group"); end,
|
|
get = function() return true; end,
|
|
order = 45,
|
|
set = noop
|
|
},
|
|
group_countOperator = {
|
|
type = "select",
|
|
name = L["Operator"],
|
|
order = 46,
|
|
width = WeakAuras.halfWidth,
|
|
values = OptionsPrivate.Private.operator_types,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit == "group"); end,
|
|
get = function() return trigger.group_countOperator; end,
|
|
set = noop
|
|
},
|
|
group_count = {
|
|
type = "input",
|
|
name = L["Count"],
|
|
desc = function()
|
|
local groupType = OptionsPrivate.Private.unit_types[trigger.unit or "group"] or "|cFFFF0000error|r";
|
|
return L["Group aura count description"]:format(groupType, groupType, groupType, groupType, groupType, groupType, groupType);
|
|
end,
|
|
order = 47,
|
|
width = WeakAuras.halfWidth,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit == "group"); end,
|
|
get = function() return trigger.group_count; end,
|
|
set = noop
|
|
},
|
|
useGroupRole = {
|
|
type = "toggle",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Filter by Group Role"],
|
|
order = 47.1,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit == "group"); end,
|
|
set = noop
|
|
},
|
|
group_role = {
|
|
type = "select",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Group Role"],
|
|
values = OptionsPrivate.Private.role_types,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit == "group"); end,
|
|
disabled = function() return not trigger.useGroupRole; end,
|
|
get = function() return trigger.group_role; end,
|
|
order = 47.2,
|
|
set = noop
|
|
},
|
|
ignoreSelf = {
|
|
type = "toggle",
|
|
name = L["Ignore self"],
|
|
order = 47.3,
|
|
width = WeakAuras.doubleWidth,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit == "group"); end,
|
|
set = noop
|
|
},
|
|
groupclone = {
|
|
type = "toggle",
|
|
name = L["Show all matches (Auto-clone)"],
|
|
width = WeakAuras.doubleWidth,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit == "group"); end,
|
|
order = 47.4,
|
|
set = noop
|
|
},
|
|
name_info = {
|
|
type = "select",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Name Info"],
|
|
order = 47.5,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit == "group" and not trigger.groupclone); end,
|
|
disabled = function() return not CanShowNameInfo(data); end,
|
|
get = function()
|
|
if(CanShowNameInfo(data)) then
|
|
return trigger.name_info;
|
|
else
|
|
return nil;
|
|
end
|
|
end,
|
|
values = OptionsPrivate.Private.group_aura_name_info_types,
|
|
set = noop
|
|
},
|
|
stack_info = {
|
|
type = "select",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Stack Info"],
|
|
order = 47.6,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit == "group" and not trigger.groupclone); end,
|
|
disabled = function() return not CanShowStackInfo(data); end,
|
|
get = function()
|
|
if(CanShowStackInfo(data)) then
|
|
return trigger.stack_info;
|
|
else
|
|
return nil;
|
|
end
|
|
end,
|
|
values = OptionsPrivate.Private.group_aura_stack_info_types,
|
|
set = noop
|
|
},
|
|
hideAlone = {
|
|
type = "toggle",
|
|
name = L["Hide When Not In Group"],
|
|
order = 47.7,
|
|
width = WeakAuras.doubleWidth,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit == "group"); end,
|
|
set = noop
|
|
},
|
|
useDebuffType = {
|
|
type = "toggle",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Aura Type"],
|
|
order = 50,
|
|
disabled = true,
|
|
hidden = function() return not (trigger.type == "aura"); end,
|
|
get = function() return true end,
|
|
set = noop
|
|
},
|
|
debuffType = {
|
|
type = "select",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Aura Type"],
|
|
order = 51,
|
|
values = OptionsPrivate.Private.debuff_types,
|
|
hidden = function() return not (trigger.type == "aura"); end,
|
|
set = noop
|
|
},
|
|
subcount = {
|
|
type = "toggle",
|
|
width = WeakAuras.doubleWidth,
|
|
name = L["Use tooltip \"size\" instead of stacks"],
|
|
hidden = function() return not (trigger.type == "aura" and trigger.fullscan) end,
|
|
order = 55,
|
|
set = noop
|
|
},
|
|
subcountCount = {
|
|
type = "select",
|
|
values = OptionsPrivate.Private.tooltip_count,
|
|
width = WeakAuras.doubleWidth,
|
|
name = L["Use nth value from tooltip:"],
|
|
hidden = function() return not (trigger.type == "aura" and trigger.fullscan and trigger.subcount) end,
|
|
order = 55.5,
|
|
set = noop
|
|
},
|
|
useRem = {
|
|
type = "toggle",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Remaining Time"],
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit ~= "multi"); end,
|
|
order = 56,
|
|
set = noop
|
|
},
|
|
remOperator = {
|
|
type = "select",
|
|
name = L["Operator"],
|
|
order = 57,
|
|
width = WeakAuras.halfWidth,
|
|
values = OptionsPrivate.Private.operator_types,
|
|
disabled = function() return not trigger.useRem; end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit ~= "multi"); end,
|
|
get = function() return trigger.useRem and trigger.remOperator or nil end,
|
|
set = noop
|
|
},
|
|
rem = {
|
|
type = "input",
|
|
name = L["Remaining Time"],
|
|
validate = ValidateNumeric,
|
|
order = 58,
|
|
width = WeakAuras.halfWidth,
|
|
disabled = function() return not trigger.useRem; end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit ~= "multi"); end,
|
|
get = function() return trigger.useRem and trigger.rem or nil end,
|
|
set = noop
|
|
},
|
|
useCount = {
|
|
type = "toggle",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Stack Count"],
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit ~= "multi"); end,
|
|
order = 60,
|
|
set = noop
|
|
},
|
|
countOperator = {
|
|
type = "select",
|
|
name = L["Operator"],
|
|
order = 62,
|
|
width = WeakAuras.halfWidth,
|
|
values = OptionsPrivate.Private.operator_types,
|
|
disabled = function() return not trigger.useCount; end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit ~= "multi"); end,
|
|
get = function() return trigger.useCount and trigger.countOperator or nil end,
|
|
set = noop
|
|
},
|
|
count = {
|
|
type = "input",
|
|
name = L["Stack Count"],
|
|
validate = ValidateNumeric,
|
|
order = 65,
|
|
width = WeakAuras.halfWidth,
|
|
disabled = function() return not trigger.useCount; end,
|
|
hidden = function() return not (trigger.type == "aura" and trigger.unit ~= "multi"); end,
|
|
get = function() return trigger.useCount and trigger.count or nil end,
|
|
set = noop
|
|
},
|
|
ownOnly = {
|
|
type = "toggle",
|
|
width = WeakAuras.doubleWidth,
|
|
name = function()
|
|
local value = trigger.ownOnly;
|
|
if(value == nil) then return L["Own Only"];
|
|
elseif(value == false) then return "|cFFFF0000 "..L["Negator"].." "..L["Own Only"];
|
|
else return "|cFF00FF00"..L["Own Only"]; end
|
|
end,
|
|
desc = function()
|
|
local value = trigger.ownOnly;
|
|
if(value == nil) then return L["Only match auras cast by the player"];
|
|
elseif(value == false) then return L["Only match auras cast by people other than the player"];
|
|
else return L["Only match auras cast by the player"]; end
|
|
end,
|
|
get = function()
|
|
local value = trigger.ownOnly;
|
|
if(value == nil) then return false;
|
|
elseif(value == false) then return "false";
|
|
else return "true"; end
|
|
end,
|
|
order = 70,
|
|
hidden = function() return not (trigger.type == "aura"); end,
|
|
set = noop
|
|
},
|
|
useBuffShowOn = {
|
|
type = "toggle",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Show On"],
|
|
order = 71,
|
|
disabled = true,
|
|
hidden = function()
|
|
return not (trigger.type == "aura" and not(trigger.unit ~= "group" and trigger.fullscan and trigger.autoclone) and trigger.unit ~= "multi" and not(trigger.unit == "group" and not trigger.groupclone));
|
|
end,
|
|
get = function() return true end,
|
|
set = noop
|
|
},
|
|
buffShowOn = {
|
|
type = "select",
|
|
width = WeakAuras.normalWidth,
|
|
name = "",
|
|
values = OptionsPrivate.Private.bufftrigger_progress_behavior_types,
|
|
order = 71.1,
|
|
get = function() return trigger.buffShowOn end,
|
|
hidden = function()
|
|
return not (trigger.type == "aura" and not(trigger.unit ~= "group" and trigger.fullscan and trigger.autoclone) and trigger.unit ~= "multi" and not(trigger.unit == "group" and not trigger.groupclone));
|
|
end,
|
|
set = noop
|
|
},
|
|
unitExists = {
|
|
type = "toggle",
|
|
width = WeakAuras.normalWidth,
|
|
name = L["Show If Unit Is Invalid"],
|
|
order = 72,
|
|
hidden = function()
|
|
return not (trigger.type == "aura"
|
|
and not(trigger.unit ~= "group" and trigger.fullscan and trigger.autoclone)
|
|
and trigger.unit ~= "multi"
|
|
and trigger.unit ~= "group"
|
|
and trigger.unit ~= "player");
|
|
end,
|
|
set = noop
|
|
},
|
|
linespacer = {
|
|
type = "description",
|
|
order = 73,
|
|
width = WeakAuras.doubleWidth,
|
|
name = "",
|
|
hidden = function()
|
|
-- For those that update without restarting
|
|
return not OptionsPrivate.Private.CanConvertBuffTrigger2
|
|
end,
|
|
},
|
|
|
|
};
|
|
|
|
OptionsPrivate.commonOptions.AddCommonTriggerOptions(aura_options, data, triggernum, true)
|
|
OptionsPrivate.commonOptions.AddTriggerGetterSetter(aura_options, data, triggernum)
|
|
OptionsPrivate.AddTriggerMetaFunctions(aura_options, data, triggernum)
|
|
|
|
return {
|
|
["trigger." .. triggernum .. ".legacy_aura_options"] = aura_options
|
|
}
|
|
end
|
|
|
|
WeakAuras.RegisterTriggerSystemOptions({"aura"}, GetBuffTriggerOptions);
|
|
|