aUFBanzai = AceLibrary("AceAddon-2.0"):new("AceEvent-2.0", "AceHook-2.0")
local _G = getfenv(0)
function aUFBanzai:OnEnable()
if not aUF then return end
-- add aggro methods to unit prototype
function aUF.classes.aUFunit.prototype:Banzai_UnitGainedAggro(byevent)
if type(byevent) =="table" and not byevent[self.unit] then return end
self.HealthBar:SetStatusBarColor(1, 0, 0)
end
function aUF.classes.aUFunit.prototype:Banzai_UnitLostAggro(byevent)
if type(byevent) =="table" and not byevent[self.unit] then return end
end
-- register events in current instances
for k,v in aUF.units do
v:RegisterEvent("Banzai_UnitGainedAggro")
v:RegisterEvent("Banzai_UnitLostAggro")
end
-- all future instances will have events registered
function aUF.classes.aUFunit.prototype:RegisterEventsNew(allEvents,unregister)
if not unregister and self.eventsRegistered == false then
self:RegisterEvent("Banzai_UnitGainedAggro")
self:RegisterEvent("Banzai_UnitLostAggro")
elseif self.eventsRegistered == true and unregister then
self:UnregisterEvent("Banzai_UnitGainedAggro")
self:UnregisterEvent("Banzai_UnitLostAggro")
end
self:RegisterEventsOld(allEvents,unregister)
end
-- hook RegisterEvents
aUF.classes.aUFunit.prototype.RegisterEventsOld = aUF.classes.aUFunit.prototype.RegisterEvents
aUF.classes.aUFunit.prototype.RegisterEvents = aUF.classes.aUFunit.prototype.RegisterEventsNew
end