Compare commits
2 Commits
v3.3.0-coa.3
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| d241fd1b5e | |||
| ad2a536efe |
@@ -3760,14 +3760,17 @@ local function loadFilterOptions()
|
|||||||
add = {
|
add = {
|
||||||
order = 0,
|
order = 0,
|
||||||
type = "input",
|
type = "input",
|
||||||
name = L["Aura name"],
|
name = L["Aura name or spell ID"],
|
||||||
|
desc = L["Enter an exact aura name, or a numeric spell ID for precise matching (CoA's client exposes aura spell IDs)."],
|
||||||
--dialogControl = "Aura_EditBox",
|
--dialogControl = "Aura_EditBox",
|
||||||
hidden = false,
|
hidden = false,
|
||||||
set = function(info, value)
|
set = function(info, value)
|
||||||
local filterType = info[#(info) - 3]
|
local filterType = info[#(info) - 3]
|
||||||
local filter = filterMap[info[#(info) - 2]]
|
local filter = filterMap[info[#(info) - 2]]
|
||||||
|
|
||||||
ShadowUF.db.profile.filters[filterType][filter][value] = true
|
-- A purely-numeric entry is stored as a number so it matches the
|
||||||
|
-- spellId returned by UnitAura; anything else stays a name string.
|
||||||
|
ShadowUF.db.profile.filters[filterType][filter][tonumber(value) or value] = true
|
||||||
|
|
||||||
reloadUnitAuras()
|
reloadUnitAuras()
|
||||||
rebuildFilters()
|
rebuildFilters()
|
||||||
@@ -3844,9 +3847,17 @@ local function loadFilterOptions()
|
|||||||
type = "description",
|
type = "description",
|
||||||
-- Odd I know, AceConfigDialog-3.0 expands descriptions to full width if width is nil
|
-- Odd I know, AceConfigDialog-3.0 expands descriptions to full width if width is nil
|
||||||
-- on the other hand we can't set width to "normal" so tricking it
|
-- on the other hand we can't set width to "normal" so tricking it
|
||||||
width = "",
|
width = "",
|
||||||
fontSize = "medium",
|
fontSize = "medium",
|
||||||
name = function(info) return spellMap[info[#(info)]] end,
|
name = function(info)
|
||||||
|
local entry = spellMap[info[#(info)]]
|
||||||
|
-- Numeric entries are spell IDs; show "Name (ID)" when the client can resolve it.
|
||||||
|
if( type(entry) == "number" ) then
|
||||||
|
local spellName = GetSpellInfo(entry)
|
||||||
|
return spellName and string.format("%s (%d)", spellName, entry) or tostring(entry)
|
||||||
|
end
|
||||||
|
return entry
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
local spellRow = {
|
local spellRow = {
|
||||||
|
|||||||
@@ -48,6 +48,8 @@ L["Ascending"] = "Ascending"
|
|||||||
L["Aura border style"] = "Aura border style"
|
L["Aura border style"] = "Aura border style"
|
||||||
L["Aura filters"] = "Aura filters"
|
L["Aura filters"] = "Aura filters"
|
||||||
L["Aura name"] = "Aura name"
|
L["Aura name"] = "Aura name"
|
||||||
|
L["Aura name or spell ID"] = "Aura name or spell ID"
|
||||||
|
L["Enter an exact aura name, or a numeric spell ID for precise matching (CoA's client exposes aura spell IDs)."] = "Enter an exact aura name, or a numeric spell ID for precise matching (CoA's client exposes aura spell IDs)."
|
||||||
L["Auras"] = "Auras"
|
L["Auras"] = "Auras"
|
||||||
L["Aura types to filter"] = "Aura types to filter"
|
L["Aura types to filter"] = "Aura types to filter"
|
||||||
L["B"] = "B"
|
L["B"] = "B"
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ local COA_CLASS_DISPELS = {
|
|||||||
["WITCHHUNTER"] = { Curse = true },
|
["WITCHHUNTER"] = { Curse = true },
|
||||||
["SUNCLERIC"] = { Magic = true, Disease = true, Poison = true }, -- Sanctify
|
["SUNCLERIC"] = { Magic = true, Disease = true, Poison = true }, -- Sanctify
|
||||||
["WILDWALKER"] = { Disease = true, Poison = true }, -- Primalist (Soothing Touch — DBC says Magic, gameplay is Poison/Disease)
|
["WILDWALKER"] = { Disease = true, Poison = true }, -- Primalist (Soothing Touch — DBC says Magic, gameplay is Poison/Disease)
|
||||||
["WITCHDOCTOR"] = { Disease = true, Poison = true }, -- Cleansing Idol (AoE)
|
["WITCHDOCTOR"] = { Curse = true, Disease = true, Poison = true }, -- Hexbreak (806240, single-target Curse) + Cleansing Idol (504840, AoE Disease/Poison)
|
||||||
["TINKER"] = { Disease = true, Poison = true }, -- Nanobot Cleanser
|
["TINKER"] = { Disease = true, Poison = true }, -- Nanobot Cleanser
|
||||||
}
|
}
|
||||||
local function getCoaDispels()
|
local function getCoaDispels()
|
||||||
@@ -531,10 +531,12 @@ local function scan(parent, frame, type, config, filter)
|
|||||||
local index = 0
|
local index = 0
|
||||||
while( true ) do
|
while( true ) do
|
||||||
index = index + 1
|
index = index + 1
|
||||||
local name, rank, texture, count, auraType, duration, endTime, caster, isStealable = UnitAura(frame.parent.unit, index, filter)
|
-- CoA's 3.3.5 client returns spellId as the 11th value (stock 3.3.5a stops at 10),
|
||||||
|
-- which lets the whitelist/blacklist match by ID as well as by name.
|
||||||
|
local name, rank, texture, count, auraType, duration, endTime, caster, isStealable, _, spellId = UnitAura(frame.parent.unit, index, filter)
|
||||||
if( not name ) then break end
|
if( not name ) then break end
|
||||||
|
|
||||||
if( ( not coaFilter or (auraType and coaFilter[auraType]) ) and ( not config.player or playerUnits[caster] ) and ( not parent.whitelist[type] and not parent.blacklist[type] or parent.whitelist[type] and parent.whitelist[name] or parent.blacklist[type] and not parent.blacklist[name] ) ) then
|
if( ( not coaFilter or (auraType and coaFilter[auraType]) ) and ( not config.player or playerUnits[caster] ) and ( not parent.whitelist[type] and not parent.blacklist[type] or parent.whitelist[type] and ( parent.whitelist[name] or parent.whitelist[spellId] ) or parent.blacklist[type] and not ( parent.blacklist[name] or parent.blacklist[spellId] ) ) ) then
|
||||||
-- Create any buttons we need
|
-- Create any buttons we need
|
||||||
frame.totalAuras = frame.totalAuras + 1
|
frame.totalAuras = frame.totalAuras + 1
|
||||||
if( #(frame.buttons) < frame.totalAuras ) then
|
if( #(frame.buttons) < frame.totalAuras ) then
|
||||||
|
|||||||
Reference in New Issue
Block a user