From d3339015760f5dc3583271b77eeccdc0cd673441 Mon Sep 17 00:00:00 2001 From: PhatPhuckDave Date: Sat, 11 Jan 2025 19:09:29 +0100 Subject: [PATCH] Untrack (and track) stinkies on target that are or are not supposed to be tracked --- Modules/StinkyTracker.lua | 50 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) 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