119 lines
6.3 KiB
Lua
119 lines
6.3 KiB
Lua
--COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_ENABLED PLAYER_REGEN_DISABLED DRUID_HOTS_REMOVE_HOT
|
|
function(e, ...)
|
|
if not WeakAurasSaved.DruidHots then
|
|
WeakAurasSaved.DruidHots = {
|
|
["Rejuvenation"] = {["count"] = 0, ["duration"] = 18, ["timers"] = {}},
|
|
["Regrowth"] = {["count"] = 0, ["duration"] = 12, ["timers"] = {}},
|
|
["Lifebloom"] = {["count"] = 0, ["duration"] = 15, ["timers"] = {}},
|
|
["Wild Growth"] = {["count"] = 0, ["duration"] = 7, ["timers"] = {}},
|
|
["Spring Blossoms"] = {["count"] = 0, ["duration"] = 6, ["timers"] = {}},
|
|
["Grove Tending"] = {["count"] = 0, ["duration"] = 9, ["timers"] = {}},
|
|
["Rejuvenation (Germination)"] = {["count"] = 0, ["duration"] = 18, ["timers"] = {}},
|
|
}
|
|
end
|
|
if not WeakAurasSaved.DruidHots.ticker then WeakAurasSaved.DruidHots.ticker = C_Timer.NewTicker(0.5, function() WeakAuras.ScanEvents("UPDATE_HOTS") end) end
|
|
if e == "DRUID_HOTS_REMOVE_HOT" then
|
|
local name, id = ...
|
|
--DevTools_Dump(WeakAurasSaved.DruidHots)
|
|
if WeakAurasSaved.DruidHots[name].timers[id] then
|
|
if WeakAurasSaved.DruidHots[name].timers[id] then WeakAurasSaved.DruidHots[name].timers[id]:Cancel() end
|
|
WeakAurasSaved.DruidHots[name].timers[id] = nil
|
|
WeakAurasSaved.DruidHots[name].count = WeakAurasSaved.DruidHots[name].count - 1
|
|
end
|
|
WeakAuras.ScanEvents("UPDATE_HOTS")
|
|
--DevTools_Dump(WeakAurasSaved.DruidHots)
|
|
elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then
|
|
local se = select(2, ...)
|
|
local caster = select(5, ...)
|
|
local spellname = select(13, ...)
|
|
local target = select(10, ...)
|
|
if se == "SPELL_AURA_APPLIED" then
|
|
if caster and caster == UnitName("player") then
|
|
if WeakAurasSaved.DruidHots[spellname] then
|
|
WeakAurasSaved.DruidHots[spellname].count = WeakAurasSaved.DruidHots[spellname].count + 1
|
|
WeakAurasSaved.DruidHots[spellname].timers[WeakAurasSaved.DruidHots[spellname].count] = C_Timer.NewTimer(WeakAurasSaved.DruidHots[spellname].duration * 4, function() WeakAuras.ScanEvents("DRUID_HOTS_REMOVE_HOT", spellname, WeakAurasSaved.DruidHots[spellname].count) end)
|
|
--DevTools_Dump(WeakAurasSaved.DruidHots)
|
|
WeakAuras.ScanEvents("UPDATE_HOTS")
|
|
end
|
|
end
|
|
elseif se == "SPELL_AURA_REMOVED" then
|
|
if caster and caster == UnitName("player") then
|
|
if WeakAurasSaved.DruidHots[spellname] then
|
|
if WeakAurasSaved.DruidHots[spellname].count > 0 then
|
|
WeakAurasSaved.DruidHots[spellname].count = WeakAurasSaved.DruidHots[spellname].count - 1
|
|
if WeakAurasSaved.DruidHots[spellname].timers[WeakAurasSaved.DruidHots[spellname].count + 1] then WeakAurasSaved.DruidHots[spellname].timers[WeakAurasSaved.DruidHots[spellname].count + 1]:Cancel(); WeakAurasSaved.DruidHots[spellname].timers[WeakAurasSaved.DruidHots[spellname].count + 1] = nil end
|
|
--DevTools_Dump(WeakAurasSaved.DruidHots)
|
|
WeakAuras.ScanEvents("UPDATE_HOTS")
|
|
end
|
|
end
|
|
end
|
|
end
|
|
elseif e == "PLAYER_REGEN_ENABLED" or e == "PLAYER_REGEN_DISABLED" then
|
|
WeakAurasSaved.DruidHots = {
|
|
["Rejuvenation"] = {["count"] = 0, ["duration"] = 18, ["timers"] = {}},
|
|
["Regrowth"] = {["count"] = 0, ["duration"] = 12, ["timers"] = {}},
|
|
["Lifebloom"] = {["count"] = 0, ["duration"] = 15, ["timers"] = {}},
|
|
["Wild Growth"] = {["count"] = 0, ["duration"] = 7, ["timers"] = {}},
|
|
["Spring Blossoms"] = {["count"] = 0, ["duration"] = 6, ["timers"] = {}},
|
|
["Grove Tending"] = {["count"] = 0, ["duration"] = 9, ["timers"] = {}},
|
|
["Rejuvenation (Germination)"] = {["count"] = 0, ["duration"] = 18, ["timers"] = {}},
|
|
}
|
|
local instance = "party"
|
|
if IsInRaid() then instance = "raid" end
|
|
local index = 1
|
|
--DevTools_Dump(UnitBuff("player", index, "PLAYER"))
|
|
while UnitBuff("player", index, "PLAYER") do
|
|
local name = UnitBuff("player", index, "PLAYER")
|
|
if WeakAurasSaved.DruidHots[name] then
|
|
WeakAurasSaved.DruidHots[name].count = WeakAurasSaved.DruidHots[name].count + 1
|
|
end
|
|
index = index + 1
|
|
if index > 20 then break end
|
|
end
|
|
for i = 1, GetNumGroupMembers() do
|
|
local index = 1
|
|
--DevTools_Dump(UnitBuff(instance .. i, index, "PLAYER"))
|
|
while UnitBuff(instance .. i, index, "PLAYER") do
|
|
--DevTools_Dump(UnitBuff(instance .. i , index, "PLAYER"))
|
|
local name = UnitBuff(instance .. i, index, "PLAYER")
|
|
if WeakAurasSaved.DruidHots[name] then
|
|
WeakAurasSaved.DruidHots[name].count = WeakAurasSaved.DruidHots[name].count + 1
|
|
end
|
|
index = index + 1
|
|
if index > 20 then break end
|
|
end
|
|
end
|
|
--DevTools_Dump(WeakAurasSaved.DruidHots)
|
|
WeakAuras.ScanEvents("UPDATE_HOTS")
|
|
end
|
|
end
|
|
|
|
--DISPLAY
|
|
function()
|
|
return WeakAurasSaved.DruidHots["Spring Blossoms"].count
|
|
end
|
|
|
|
--Mana bar
|
|
--DISPLAY
|
|
function()
|
|
local mana = UnitPower("player", 0)
|
|
if mana >= 1e3 and mana < 1e6 then
|
|
mana = string.format("%.1fk", mana / 1e3)
|
|
elseif mana >= 1e6 and mana < 1e9 then
|
|
mana = string.format("%.1fM", mana / 1e6)
|
|
end
|
|
return mana
|
|
end
|
|
|
|
--INIT
|
|
if not WeakAurasSaved.DruidHots then
|
|
WeakAurasSaved.DruidHots = {
|
|
["Rejuvenation"] = {["count"] = 0, ["duration"] = 18, ["timer"] = nil},
|
|
["Regrowth"] = {["count"] = 0, ["duration"] = 12, ["timer"] = nil},
|
|
["Lifebloom"] = {["count"] = 0, ["duration"] = 15, ["timer"] = nil},
|
|
["Wild Growth"] = {["count"] = 0, ["duration"] = 7, ["timer"] = nil},
|
|
["Spring Blossoms"] = {["count"] = 0, ["duration"] = 6, ["timer"] = nil},
|
|
["Grove Tending"] = {["count"] = 0, ["duration"] = 9, ["timer"] = nil},
|
|
["Rejuvenation (Germination)"] = {["count"] = 0, ["duration"] = 18, ["timer"] = nil},
|
|
}
|
|
end |