diff --git a/Modules/StinkyTracker.lua b/Modules/StinkyTracker.lua index 63adf94..fb09529 100644 --- a/Modules/StinkyTracker.lua +++ b/Modules/StinkyTracker.lua @@ -197,6 +197,56 @@ function shared.StinkyTracker.Init() end end) + local targetFrame = CreateFrame("Frame") + targetFrame:RegisterEvent("UNIT_TARGET") + targetFrame:SetScript("OnEvent", function(self, event, unit) + if Heimdall_Data.config.stinkyTracker.debug then + print(string.format("[%s] Event received: %s for unit: %s", ModuleName, event, unit or "target")) + end + local unit = "target" + + if not Heimdall_Data.config.stinkyTracker.enabled then + if Heimdall_Data.config.stinkyTracker.debug then + print(string.format("[%s] Module disabled, ignoring event", ModuleName)) + end + return + end + + if not UnitIsPlayer(unit) then + if Heimdall_Data.config.stinkyTracker.debug then + print(string.format("[%s] Target %s is not a player, nothing to do", ModuleName, name)) + end + return + end + + local name = UnitName(unit) + local enemy = UnitCanAttack("player", unit) + if enemy then + if Heimdall_Data.config.stinkyTracker.debug then + print(string.format("[%s] Target %s is enemy - tracking as stinky", ModuleName, name)) + end + shared.stinkyTracker.stinkies[name] = { + name = name, + class = UnitClass(unit), + seenAt = GetTime(), + hostile = true + } + return + end + + if not shared.stinkyTracker.stinkies[name] then + if Heimdall_Data.config.stinkyTracker.debug then + print(string.format("[%s] Target %s is friendly and not stinky, nothing to do", ModuleName, name)) + end + return + end + + if Heimdall_Data.config.stinkyTracker.debug then + print(string.format("[%s] Target %s is friendly and stinky - removing from stinkies", ModuleName, name)) + end + shared.stinkyTracker.stinkies[name] = nil + end) + if Heimdall_Data.config.stinkyTracker.debug then print(string.format("[%s] Module initialized", ModuleName)) end