Files
wow-weakauras/WeakAuras/Projects/Visp Bogec.lua

117 lines
4.3 KiB
Lua

--COMBAT_LOG_EVENT_UNFILTERED GROUP_ROSTER_UPDATE
function(allstates, e, ...)
local aura_env = aura_env
local restoreState = function(name, state, dur, pclass)
if allstates[name .. state] then
allstates[name .. state] = {
-- Playername .. spellname
show = true,
changed = true,
index = name,
resort = true,
name = aura_env.classColor(pclass) .. name .. "\124r",
icon = GetSpellTexture(state),
progressType = "static",
value = dur,
total = dur,
}
return true
end
end
if e == "COMBAT_LOG_EVENT_UNFILTERED" then
local se = select(2, ...)
if se == "SPELL_CAST_SUCCESS" then
local name = select(5, ...)
local spellID = select(12, ...)
if aura_env.classSpells[select(3, UnitClass(name))] and aura_env.classSpells[select(3, UnitClass(name))][spellID] then -- Player should probably be tracked
--print(name, spell)
--DevTools_Dump(allstates)
if allstates[name .. select(1, GetSpellInfo(spellID))] then
--print("YEET")
local pclass = select(3, UnitClass(name))
local dur = aura_env.classSpells[select(3, UnitClass(name))][spellID]
allstates[name .. select(1, GetSpellInfo(spellID))] = {
show = true,
changed = true,
index = name,
resort = true,
name = aura_env.classColor(select(3, UnitClass(name))) .. name .. "\124r",
icon = GetSpellTexture(spellID),
progressType = "timed",
expirationTime = GetTime() + aura_env.classSpells[select(3, UnitClass(name))][spellID],
duration = dur,
ticker = C_Timer.After(dur - dur / 3, function() restoreState(name, spellID, dur, pclass) end)}
return true
end
end
end
elseif e == "GROUP_ROSTER_UPDATE" then
aura_env.groupMembers = {}
for k, v in pairs(allstates) do
v.show = false
v.changed = true
end
for i = 1, GetNumGroupMembers() do
if IsInRaid() == true then
aura_env.groupMembers[UnitName("raid" .. i)] = select(3, UnitClass("raid" .. i))
end
end
for k, v in pairs(aura_env.groupMembers) do
if aura_env.classSpells[v] then
for k2, v2 in pairs(aura_env.classSpells[v]) do
allstates[k .. select(1, GetSpellInfo(k2))] = {
-- Playername .. spellname
show = true,
changed = true,
index = k,
class = v,
resort = true,
name = aura_env.classColor(v) .. k .. "\124r",
icon = GetSpellTexture(k2),
progressType = "static",
value = v2,
total = v2,
}
end
end
end
end
return true
end
--INIT
aura_env.groupMembers = {}
aura_env.classSpells = {
-- Form [SpellID] = spellcooldown,
[2] = {-- Paladin
[31821] = 180,
},
[11] = {--Druid
},
[5] = {-- Priest
},
[7] = {-- Shaman
},
[10] = {-- Monk
},
}
aura_env.classColor = function(class)
if class == 6 then return "\124cFFC41F3B" elseif
class == 12 then return "\124cFFA330C9" elseif
class == 11 then return "\124cFFFF7D0A" elseif
class == 3 then return "\124cFFABD473" elseif
class == 8 then return "\124cFF40C7EB" elseif
class == 10 then return "\124cFF00FF96" elseif
class == 2 then return "\124cFFF58CBA" elseif
class == 5 then return "\124cFFFFFFFF" elseif
class == 4 then return "\124cFFFFF569" elseif
class == 7 then return "\124cFF0070DE" elseif
class == 9 then return "\124cFF8787ED" elseif
class == 1 then return "\124cFFC79C6E" else
return "\124cFF000000" end
end