Add cooldown alert
This commit is contained in:
5
LegionWA/CooldownAlert/Event.lua
Normal file
5
LegionWA/CooldownAlert/Event.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
-- ACTIONBAR_UPDATE_COOLDOWN
|
||||
function(allstates, e)
|
||||
aura_env.processEvent(allstates)
|
||||
return true
|
||||
end
|
1
LegionWA/CooldownAlert/Export
Normal file
1
LegionWA/CooldownAlert/Export
Normal file
@@ -0,0 +1 @@
|
||||
dWunqaGiksXNukknksWPiHEffjYSOsDlsXUKcdJq1XeOLrI8mLsMgfX1irTnLs9nbW4ukY5uvyEuKKUNu0(OijoOaAHckEOsHjQu1ffuAJQkYhjuAKcqNuvPvssVKIe1mPOKBsrsTtcPFkOAOuu0sje9uHMkvCvksvBLIu6RuKkRLIe6TekUlHWEL8xvjdgDyIwSsr1JPWKj4Yk2mvYNvfJwv1Pf1QvkkEnfvZMs3MuA3I8BLmCP0YPQNlvtxLRtQ2UG8DLkJxvrDEvPwpfj49uu4(uuQ9dxblNkklN6QyVIk1q5gbvstqL188HjBVTrWpQO2kkurHYPIp(1UkgWWf5xtXWf1jqZQIc5(MrpzC5qtfLwBfLgxo044ZppJ3uVeMsunbfVI9wPXuIkEf7J1LzUYPRIMvy)Ktf)N8Z)vF6dXfpab)WKpu(JaeGT2(JTlxAmz7kAxsHYPIN0oPtPYPIA1TxUCQRUkEs7KUYPIA1TxUCQRUk6x2PCQOwD7LlN6QRIczxUYg627D5urT62lxo1vxf9sJPCQOwD7LlN6QRI50JFP3wovuRU9YLtD1vX2qTN0oPRCQOwD7LlN6QRIUKgxELkNkQv3E5YPU6QOEFEzyL9ET51vrzkRvEtfMk6NN8k58UDQOW7KuB24XV0BR485wzsyeQWuXZNFEgF5uX()Ax4Pk2)x7cpfOXLdn1vXSqf3yTScRDPaTJ)eRFP3wXC6gFsAnTJVNxPs0TQ4USW9xFYeLfFRTfpyacGjBsztcAIjLlnMOCft6AD85NNX3lrdwXCkFV6N0FJqjAW6QOr5uIgSCQ4nF(c(Pv6IztHPenakvrPXLdno(8ZZ4n1lHPevtqXRO04YRuVCQyoLVYPIcRxg69BPTctfn073sBfL6E5RjfQX5LgMpcX2XA7GnbndOccccQK4kfGGUb1Obuvx4z0oPdQGGGGkTTYbyl3GA0aUXk1hdV8YReubbbbvs8pusCLCdQrdyyFpGlxGoV9qfeeeuPGBTTYk5guJgWaktcGlxG3)aAM(1ng3YdvqqqWTc(Xwk7guJgWadnPNXVz7GX)8yfGkiiiOYBTT4I7guJgW4FEScGlxG3)akY8Z)nl9oubbbbdkUjM4guJgWaktcGlxGFYpJWslubbbbdQSYbnrz3GA0agO3qMgqNL3pPdQGGGGBs5TCdQrdyaLA1oEWLlqv9(LngOccccU9hMiUBqnAadOmjaUCbgLg(SRSXavqqqWTcUjLf3nOgnGb6fM0bUFCnjHXdvqqqWnT92k)HBqnAafRU0lKLjWLlWatg5jDGMY50thQGGGGkjUjIhCtUb1Obmm2P3ZPhWLlWy7yT7KEHC6bQMnuTldPfmBSs7Z9wR89EDV8YReytqXBycuTldPf8XqyVUxE5vcSjyWgkdvOk19YxtkuJDlV57LNeSjOzy2q11YdAUBWE7yTFfaZjWwz23vqQ7LVMuOgNxAy(ieBhRTRiOWcQGGGGsDV81Kc1y3YB(E5jftVDS2VcIaSjOzavqqqqqqqq)ifEd2e886JBOcccccccc(l7B8l9pthSjOlPTpUHkiiiOzdvqqqWSlqXoxSDS2n(L(NPRqVDS2VckcE)tcQGGGGGGGGsDV81Kc1y3YB(E5jftVDS2VcIOXVSVXV0)mDWMGNxFGkiiiiiiiOu3lFnPqn2T8MVxEsX0BhR9RGiAy8l9pthSjyFSJXPqq3GIDUy7yTB8l9ptxHE7yTFfuurOccccojbOojbOcvPUx(AsHA06xgtVh2qt6aBc6spzC5vsbP12p5nDfHkiiiORLh0C3G92XA)kaMtGTYSVRGu3lFnPqnoV0W8ri2owBxrqHfubbbbbbbb1ObmGYKGDa7TJ12b3LVFqJFP)z6qfeeeeeee0UmKwWCxKJu4nubbbbbbbbZUavqQ7LVMuOg7wEZ3lpPy6TJ1(vqen(L9n(L(NPRi49pjOccccccccccccAxgslOXV0)mDWMG9XogNcbDdk25ITJ1UXV0)mDf6TJ1(vqrfHkiiiiiiiiiiiy2fOcg)s)Z0bnvaL6E5RjfQXUL389YtkME7yTFferdJFP)z6kcE)tcQGGGGGGGGGGGGGGGG5UihPWBWMGNxFGkiiiiiiiiiiiiiiiOu3lFnPqn2T8MVxEsX0BhR9RGiAy8l9pthSjOXV0)mDOcccccccccccco2(avqqqqqqqqqqqqqqqWCxKJu4nytqxsBFGkiiiiiiiiiiiiiiiOu3lFnPqn2T8MVxEsX0BhR9RGiAy8l9pthSjOXV0)mDOccccccccccccojbOcccccccco2(avqqqqqqqqqqqWCxKJu4nytW(yhJtbLCdk25ITJ1UXAzfw7sk0BhR9RGIkcAQc(yiSx3lV8kbvqqqqqqqWjjavOcvqqqqqqqWSlqfsRduQ7LVMuOg7wEZ3lpPy6TJ1(vqen8Ju4nOmjaM7ICKcVve8(NeubbbbbbbbbbbbTldPfmBSsGnb7JDmof2YnOyNl2ow73KRLc92XA)kOOIqfeeeeeeeeeeeuAT9tEtxm92XA)kicWMGMbubbbbbbbbbbbbbbbb7)RDGnbpV(4gQGGGGGGGGGGGGGGGGg)Y0Zia2e886JBOccccccccccccccccMtcZNbBck25CYAhfu0nubbbbbbbbbbbbbbbb9tF5pWMGNxFCdvOccccccccccccccccMnwjWMGzJvYnuHkiiiiiiiiiiiiiiiyRF94NE35D7a2e00CzTJGPXnubbbbbbbbbbbbbbbbNp3M9YlVsozTdytqXoNtw7OGIGMsGzJvAFU3ALV3R7LxELCdvqqqqqqqqqqqqqqqqbDV8YReytWSXkTp3BTY3719YlVsUHkiiiiiiiiiiiiiiiOu)wbmlmGnbpV(4gQGGGGGGGGGGGGMnubbbbbbbbNKauHkiiiiiiiOu3lFnPqn2T8MVxEsX0BhR9RGiA4hPWBWMG5UihPWBOccccojbOojH6QRI385lyytYn3oc1MxrzkRvE5vQCQORCk3)lNkEVBNk26N(CvS1p95QOlPWuxDv885NNXxov8E3ov0qVFlTvCcnPRxXa3W5B4IgMaf5ltVzUpqNW(AJWd3S2hUPt0kAO3VL2kQrdyGB48nCrdtGI8LP3m3hOtyFTr4HBw7d30jkuDPNmU8kPG0A7N8MUBWrrOcccck19YxtkuJw)Yy69WgAsNcsRTFYB6kcvqqqq)C6(e451hOojHk2)x7cpvX()Ax4PanUCOPIg)JH5vCcnPRIg69BP919UDQy)K3O3kiVPUk(p5N)RenOsBQI2LuOCQ4jTt6uQCQOwD7LlN6QRIN0oPRCQOwD7LlN6QRIczxUYg627D5urT62lxo1vxf9sJPCQOwD7LlN6QRI(LDkNkQv3E5YPU6QyBO2tAN0vovuRU9YLtD1vXC6XV0BlNkQv3E5YPU6QOlPXLxPYPIA1TxUCQRU6QyoDJpjTM2X3ZRuj6wvui33m6jJlhAQO0AR4JDTRctf9ZtELCE3ovmBSsvmPR1XNFEgFVenyf3LfU)s0GkTPkMfQ4gRLvyTlfOD8xfnw2LVCkrnPev8gkxxD1vXqLObnrPG1vf
|
68
LegionWA/CooldownAlert/Init.lua
Normal file
68
LegionWA/CooldownAlert/Init.lua
Normal file
@@ -0,0 +1,68 @@
|
||||
aura_env.trackedSpells = {
|
||||
20271, -- Judgement
|
||||
26573, -- Consecration
|
||||
209202, -- Eye of Tyr
|
||||
213652, -- Hand of the Protector
|
||||
31935, -- Avenger's Shield
|
||||
53600, -- Shield of the Righteous
|
||||
1044, -- Hand of Freedom
|
||||
155145, -- Arcane Torrent
|
||||
853, -- Hammer of Justice
|
||||
6940, -- Hand of Sacrifice
|
||||
31850, -- Ardent Defender
|
||||
86659, -- Guardian of Ancient Kings
|
||||
204018, -- Blessing of Spellwarding
|
||||
}
|
||||
local iconDisplayDuration = 0.4
|
||||
local gcdDuration = 1.5
|
||||
|
||||
aura_env.workData = {}
|
||||
for k, spellId in pairs(aura_env.trackedSpells) do
|
||||
aura_env.workData[spellId] = {
|
||||
ready = true,
|
||||
hasCharges = false,
|
||||
}
|
||||
if GetSpellCharges(spellId) then
|
||||
aura_env.workData[spellId].hasCharges = true
|
||||
aura_env.workData[spellId].charges = select(1, GetSpellCharges(spellId))
|
||||
end
|
||||
end
|
||||
|
||||
aura_env.processEvent = function(allstates)
|
||||
for k, spellId in pairs(aura_env.trackedSpells) do
|
||||
-- Handle spells with charges
|
||||
local isReady
|
||||
if (aura_env.workData[spellId].hasCharges) then
|
||||
local charges = select(1, GetSpellCharges(spellId))
|
||||
if (charges > aura_env.workData[spellId].charges) then
|
||||
isReady = true
|
||||
aura_env.workData[spellId].charges = charges
|
||||
else
|
||||
isReady = false
|
||||
aura_env.workData[spellId].charges = charges
|
||||
end
|
||||
else
|
||||
isReady = select(2, GetSpellCooldown(spellId)) < gcdDuration
|
||||
end
|
||||
|
||||
|
||||
if (not aura_env.workData[spellId].ready and isReady) then
|
||||
local icon = select(3, GetSpellInfo(spellId))
|
||||
allstates[spellId] = {
|
||||
show = true,
|
||||
changed = true,
|
||||
index = GetTime(),
|
||||
resort = true,
|
||||
|
||||
icon = icon,
|
||||
|
||||
progressType = "timed",
|
||||
expirationTime = GetTime() + iconDisplayDuration,
|
||||
duration = iconDisplayDuration,
|
||||
autoHide = true,
|
||||
}
|
||||
end
|
||||
|
||||
aura_env.workData[spellId].ready = isReady
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user