37 lines
1.2 KiB
Lua
37 lines
1.2 KiB
Lua
---@class aura_env
|
|
---@field config table<string, any>
|
|
---@field stinkies table<string, boolean>
|
|
---@field detectedStinkies table<string, {seen: number, soundPlayed: number?}>
|
|
---@field StinkyDetected fun(name: string)
|
|
aura_env.stinkies = {}
|
|
aura_env.detectedStinkies = {}
|
|
|
|
---@param input string
|
|
---@param deliminer string
|
|
---@return string[], string|nil
|
|
local function StrSplit(input, deliminer)
|
|
if not deliminer then return {}, "deliminer is nil" end
|
|
if not input then return {}, "input is nil" end
|
|
local parts = {}
|
|
for part in string.gmatch(input, "([^" .. deliminer .. "]+)") do
|
|
table.insert(parts, strtrim(part))
|
|
end
|
|
return parts, nil
|
|
end
|
|
|
|
local stinkies = StrSplit(aura_env.config.stinkies, ",")
|
|
for _, name in ipairs(stinkies) do
|
|
aura_env.stinkies[name] = true
|
|
end
|
|
|
|
aura_env.StinkyDetected = function(name)
|
|
print("StinkyDetected", name)
|
|
DevTools_Dump(aura_env.detectedStinkies)
|
|
aura_env.detectedStinkies[name] = { seen = GetTime() }
|
|
if not aura_env.detectedStinkies[name].soundPlayed or
|
|
aura_env.detectedStinkies[name].soundPlayed < GetTime() - aura_env.config.soundThrottle then
|
|
PlaySoundFile("Interface\\Sounds\\Domination.ogg", "Master")
|
|
aura_env.detectedStinkies[name].soundPlayed = GetTime()
|
|
end
|
|
end
|