Add framework for stinky detector

This commit is contained in:
2024-09-26 16:55:30 +02:00
parent 9f0714fd33
commit df8c118b5f
2 changed files with 84 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
-- COMBAT_LOG_EVENT_UNFILTERED TICKER_1000
---@param allstates allstates
---@param e string
function(allstates, e, ...)
if e == "TICKER_1000" then
local ttl = 120
for _, state in pairs(allstates) do
if state.progress then
local elapsedTime = GetTime() - state.index
if elapsedTime > ttl then
state.show = false
state.changed = true
else
local prettyTime = ""
local minutes = 0
while elapsedTime > 60 do
elapsedTime = elapsedTime - 60
minutes = minutes + 1
end
if minutes > 0 then
prettyTime = string.format("%s%dm", prettyTime, minutes)
end
if elapsedTime > 0 then
prettyTime = string.format("%s %ds", prettyTime, elapsedTime)
end
state.progress = string.format("%20s", prettyTime)
state.changed = true
end
end
end
return true
end
local detected = false
local stinky = ""
local source, err = CLEUParser.GetSourceName(...)
if not err then
if aura_env.stinkies[source] then
stinky = source
detected = true
end
end
if not detected then
local destination, err = CLEUParser.GetDestName(...)
if not err then
if aura_env.stinkies[destination] then
stinky = destination
detected = true
end
end
end
if detected then
aura_env.StinkyDetected(stinky)
allstates[stinky] = {
show = true,
changed = true,
name = string.format("%30s", stinky),
progressType = "timed",
duration = 60,
expirationTime = GetTime() + 60,
autohide = true,
index = GetTime(),
progress = string.format("%20s", "0s"),
}
end
return true
end

View File

@@ -0,0 +1,12 @@
if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end
if not WeakAurasSaved.Cyka.Stinkies then WeakAurasSaved.Cyka.Stinkies = {} end
aura_env.stinkies = WeakAurasSaved.Cyka.Stinkies
aura_env.stinkies[UnitName("player")] = true
aura_env.localStinkies = {}
---@param name string
aura_env.StinkyDetected = function(name)
aura_env.localStinkies[name] = GetTime()
DevTools_Dump(aura_env.localStinkies)
end