Skip to content

Commit 7358397

Browse files
committed
Added new aura filters (only available on midnight beta).
1 parent c08f2f2 commit 7358397

File tree

2 files changed

+59
-16
lines changed

2 files changed

+59
-16
lines changed

Options/modules/statuses/StatusAuraMidnight.lua

Lines changed: 57 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ end
6565

6666
local function filter_exists_substring(status, key, subkey, value)
6767
local filter = filter_get_value(status, key, subkey, default or '')
68-
return strfind(filter, value)~=nil
68+
return tcontains( { strsplit('|', filter) }, value)
6969
end
7070

7171
local function get_new_aura_status_key(data)
@@ -225,7 +225,9 @@ local function MakeBuffsOptions(status, options)
225225
return filter_get_value(status, 'aura_filter', 'filter', 'HELPFUL')=='HELPFUL' and filter_get_value(status, 'aura_filter', 'blizFilter')==nil
226226
end,
227227
set = function(info, v)
228-
filter_set_value(status, 'aura_filter', 'filter', (not v) and 'HELPFUL|PLAYER|RAID' or nil)
228+
if v then
229+
filter_set_value(status, 'aura_filter', 'filter', (not v) and 'HELPFUL|PLAYER|RAID' or nil)
230+
end
229231
end,
230232
}
231233
options.filter_player = {
@@ -240,19 +242,44 @@ local function MakeBuffsOptions(status, options)
240242
filter_toggle_substring( status, 'aura_filter', 'filter', 'PLAYER', 'HELPFUL' )
241243
end,
242244
}
243-
options.filter_raid = {
245+
options.filter_raid_combat = {
244246
type = "toggle",
245247
order = 40,
246248
width = "full",
247-
name = L["Buffs that are relevant for your player class"],
249+
name = L["Buffs relevant for your class"],
250+
get = function()
251+
return filter_exists_substring( status, 'aura_filter', 'filter', 'RAID_IN_COMBAT' )
252+
end,
253+
set = function()
254+
filter_toggle_substring( status, 'aura_filter', 'filter', 'RAID_IN_COMBAT', 'HELPFUL' )
255+
end,
256+
hidden = function() return Grid2.versionCli<=120000 end,
257+
}
258+
options.filter_raid = {
259+
type = "toggle",
260+
order = 43,
261+
width = "full",
262+
name = L["Buffs relevant for your class (light version)"],
248263
get = function()
249264
return filter_exists_substring( status, 'aura_filter', 'filter', 'RAID' )
250265
end,
251266
set = function()
252267
filter_toggle_substring( status, 'aura_filter', 'filter', 'RAID', 'HELPFUL' )
253268
end,
254269
}
255-
options.filter_defensives = {
270+
options.filter_defensive = {
271+
type = "toggle",
272+
order = 45,
273+
width = "full",
274+
name = L["Big defensive buff"],
275+
get = function()
276+
return filter_exists_substring( status, 'aura_filter', 'filter', 'BIG_DEFENSIVE' )
277+
end,
278+
set = function()
279+
filter_toggle_substring( status, 'aura_filter', 'filter', 'BIG_DEFENSIVE', 'HELPFUL' )
280+
end,
281+
}
282+
options.filter_external_defensives = {
256283
type = "toggle",
257284
order = 50,
258285
width = "full",
@@ -278,7 +305,7 @@ local function MakeBuffsOptions(status, options)
278305
filter_set_value(status, 'aura_filter', 'blizFilter', v and 'HELPFUL|RAID' or nil)
279306
end,
280307
}
281-
options.filter_bliz_defensives = {
308+
options.filter_bliz_defensive = {
282309
type = "toggle",
283310
order = 70,
284311
width = "full",
@@ -389,8 +416,10 @@ local function MakeDebuffsFilterOptions(status, options)
389416
filter_get_value(status, 'aura_filter', 'blizFilter')==nil
390417
end,
391418
set = function(info, v)
392-
filter_set_value(status, 'aura_filter', 'filter', (not v) and 'HARMFUL|PLAYER|RAID' or nil)
393-
filter_set_value(status, 'aura_filter', 'typed', nil)
419+
if v then
420+
filter_set_value(status, 'aura_filter', 'filter', (not v) and 'HARMFUL|PLAYER|RAID' or nil)
421+
filter_set_value(status, 'aura_filter', 'typed', nil)
422+
end
394423
end,
395424
}
396425
options.filter_player = {
@@ -405,16 +434,16 @@ local function MakeDebuffsFilterOptions(status, options)
405434
filter_toggle_substring( status, 'aura_filter', 'filter', 'PLAYER', 'HARMFUL' )
406435
end,
407436
}
408-
options.filter_raid = {
437+
options.filter_raid_dispel = {
409438
type = "toggle",
410439
order = 40,
411440
width = "full",
412441
name = L["Debuffs that i can dispel"],
413442
get = function()
414-
return filter_exists_substring( status, 'aura_filter', 'filter', 'RAID' )
443+
return filter_exists_substring( status, 'aura_filter', 'filter', Grid2.versionCli<=120000 and 'RAID' or 'RAID_PLAYER_DISPELLABLE' )
415444
end,
416445
set = function()
417-
filter_toggle_substring( status, 'aura_filter', 'filter', 'RAID', 'HARMFUL' )
446+
filter_toggle_substring( status, 'aura_filter', 'filter', Grid2.versionCli<=120000 and 'RAID' or 'RAID_PLAYER_DISPELLABLE', 'HARMFUL' )
418447
end,
419448
}
420449
options.filter_nameplate = {
@@ -429,7 +458,7 @@ local function MakeDebuffsFilterOptions(status, options)
429458
filter_toggle_substring( status, 'aura_filter', 'filter', 'INCLUDE_NAME_PLATE_ONLY', 'HARMFUL' )
430459
end,
431460
}
432-
options.debuffs_typed = {
461+
options.filter_typed = {
433462
type = "toggle",
434463
order = 60,
435464
width = "full",
@@ -442,7 +471,7 @@ local function MakeDebuffsFilterOptions(status, options)
442471
filter_set_value( status, 'aura_filter', 'typed', v, false)
443472
end,
444473
}
445-
options.debuffs_typeless = {
474+
options.filter_typeless = {
446475
type = "toggle",
447476
order = 70,
448477
width = "full",
@@ -460,6 +489,20 @@ local function MakeDebuffsFilterOptions(status, options)
460489
filter_set_value( status, 'aura_filter', 'typed', v)
461490
end,
462491
}
492+
options.filter_control = {
493+
type = "toggle",
494+
order = 75,
495+
width = "full",
496+
name = L["Crowd control debuffs"],
497+
desc = L["Display only debuffs that limit mobility or actions."],
498+
get = function()
499+
return filter_exists_substring( status, 'aura_filter', 'filter', 'CROWD_CONTROL' )
500+
end,
501+
set = function()
502+
filter_toggle_substring( status, 'aura_filter', 'filter', 'CROWD_CONTROL', 'HARMFUL' )
503+
end,
504+
hidden = function() return Grid2.versionCli<=120000 end, -- available only on midnight beta
505+
}
463506
options.filter_bliz_debuffs = {
464507
type = "toggle",
465508
order = 80,
@@ -533,7 +576,7 @@ function Grid2Options:MakeMidnightDispellableByMeOptions(status, options)
533576
name = L["Get Dispellable debuffs from Blizzard Unit Frames"],
534577
get = function() return status.dbx.blizFilter~=nil end,
535578
set = function(_, v)
536-
status.dbx.blizFilter = v and "HARMFUL|RAID" or nil
579+
status.dbx.blizFilter = v and "HARMFUL|RAID_PLAYER_DISPELLABLE" or nil
537580
refresh_aura_status(status)
538581
end,
539582
}

modules/StatusMidnightAuras.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ end
195195

196196
--[[ mdebuffs database format
197197
type = "mdebuffs",
198-
aura_filter = { filter= 'HARMFUL' ],
198+
aura_filter = { filter = 'HARMFUL' ],
199199
colors = {}
200200
--]]
201201

@@ -266,7 +266,7 @@ do
266266
end
267267

268268
function DebuffsDispell:UpdateDB()
269-
self.aura_filter = 'HARMFUL|RAID'
269+
self.aura_filter = 'HARMFUL|RAID_PLAYER_DISPELLABLE'
270270
self.aura_func = self.dbx.blizFilter and LBA.GetUnitAuras or nil
271271
self.aura_color:ClearPoints()
272272
local colors = self.dbx.colors or {}

0 commit comments

Comments
 (0)