aura tracking per unit
This commit is contained in:
parent
b714c065f6
commit
709cc7fd86
@ -1,4 +1,6 @@
|
|||||||
local select, string_gsub, tostring, pairs, ipairs = select, string.gsub, tostring, pairs, ipairs
|
local select, string_gsub, tostring, pairs, ipairs = select, string.gsub, tostring, pairs, ipairs
|
||||||
|
local wipe = wipe
|
||||||
|
local unpack = unpack
|
||||||
|
|
||||||
local CombatLogGetCurrentEventInfo = CombatLogGetCurrentEventInfo
|
local CombatLogGetCurrentEventInfo = CombatLogGetCurrentEventInfo
|
||||||
local AURA_TYPE_DEBUFF = AURA_TYPE_DEBUFF
|
local AURA_TYPE_DEBUFF = AURA_TYPE_DEBUFF
|
||||||
@ -34,10 +36,11 @@ function EventListener:JOINED_ARENA()
|
|||||||
self:RegisterEvent("UNIT_SPELLCAST_START")
|
self:RegisterEvent("UNIT_SPELLCAST_START")
|
||||||
self:RegisterEvent("UNIT_SPELLCAST_CHANNEL_START")
|
self:RegisterEvent("UNIT_SPELLCAST_CHANNEL_START")
|
||||||
self:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")
|
self:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")
|
||||||
self:SetScript("OnEvent", EventListener.OnEvent)
|
|
||||||
|
|
||||||
-- in case arena has started already we check for units
|
-- in case arena has started already we check for units
|
||||||
for i=1,Gladdy.curBracket do
|
for i=1,Gladdy.curBracket do
|
||||||
|
if Gladdy.buttons["arena"..i].lastAuras then
|
||||||
|
wipe(Gladdy.buttons["arena"..i].lastAuras)
|
||||||
|
end
|
||||||
if UnitExists("arena" .. i) then
|
if UnitExists("arena" .. i) then
|
||||||
Gladdy:SpotEnemy("arena" .. i, true)
|
Gladdy:SpotEnemy("arena" .. i, true)
|
||||||
end
|
end
|
||||||
@ -45,6 +48,7 @@ function EventListener:JOINED_ARENA()
|
|||||||
Gladdy:SendMessage("PET_SPOTTED", "arenapet" .. i)
|
Gladdy:SendMessage("PET_SPOTTED", "arenapet" .. i)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
self:SetScript("OnEvent", EventListener.OnEvent)
|
||||||
end
|
end
|
||||||
|
|
||||||
function EventListener:Reset()
|
function EventListener:Reset()
|
||||||
@ -281,6 +285,13 @@ function EventListener:UNIT_AURA(unit, isFullUpdate, updatedAuras)
|
|||||||
if not button then
|
if not button then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
if not button.auras then
|
||||||
|
button.auras = {}
|
||||||
|
end
|
||||||
|
wipe(button.auras)
|
||||||
|
if not button.lastAuras then
|
||||||
|
button.lastAuras = {}
|
||||||
|
end
|
||||||
for i = 1, 2 do
|
for i = 1, 2 do
|
||||||
if not Gladdy.buttons[unit].class or not Gladdy.buttons[unit].race then
|
if not Gladdy.buttons[unit].class or not Gladdy.buttons[unit].race then
|
||||||
Gladdy:SpotEnemy(unit, false)
|
Gladdy:SpotEnemy(unit, false)
|
||||||
@ -318,6 +329,31 @@ function EventListener:UNIT_AURA(unit, isFullUpdate, updatedAuras)
|
|||||||
Gladdy:SendMessage("AURA_GAIN", unit, auraType, spellID, spellName, texture, duration, expirationTime, count, dispelType, i, unitCaster)
|
Gladdy:SendMessage("AURA_GAIN", unit, auraType, spellID, spellName, texture, duration, expirationTime, count, dispelType, i, unitCaster)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
-- check auras
|
||||||
|
for spellID,v in pairs(button.lastAuras) do
|
||||||
|
if not button.auras[spellID] then
|
||||||
|
if Gladdy.db.cooldown and Cooldowns.cooldownSpellIds[v[3]] then
|
||||||
|
local spellId = Cooldowns.cooldownSpellIds[v[3]] -- don't use spellId from combatlog, in case of different spellrank
|
||||||
|
if spellID == 16188 or spellID == 17116 then -- Nature's Swiftness (same name for druid and shaman)
|
||||||
|
spellId = spellID
|
||||||
|
end
|
||||||
|
Gladdy:Debug("INFO", "EL:UNIT_AURA Cooldowns:AURA_FADE", unit, spellId)
|
||||||
|
Cooldowns:AURA_FADE(unit, spellId)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
wipe(button.lastAuras)
|
||||||
|
button.lastAuras = Gladdy:DeepCopy(button.auras)
|
||||||
|
end
|
||||||
|
|
||||||
|
function EventListener:UpdateAuras(unit)
|
||||||
|
local button = Gladdy.buttons[unit]
|
||||||
|
if not button or button.lastAuras then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
for i=1, #button.lastAuras do
|
||||||
|
Gladdy.modules["Auras"]:AURA_GAIN(unit, unpack(button.lastAuras[i]))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function EventListener:UNIT_SPELLCAST_START(unit)
|
function EventListener:UNIT_SPELLCAST_START(unit)
|
||||||
|
Loading…
Reference in New Issue
Block a user