from retail

This commit is contained in:
NoM0Re
2025-01-13 19:15:17 +01:00
parent 43c9ccec1c
commit 74cc0c7ee8
3 changed files with 59 additions and 19 deletions
+39 -12
View File
@@ -899,9 +899,14 @@ function WeakAuras.ScanUnitEvents(event, unit, ...)
Private.ActivateAuraEnvironment(id);
local updateTriggerState = false;
for triggernum, data in pairs(triggers) do
local allStates = WeakAuras.GetTriggerStateForTrigger(id, triggernum);
if (RunTriggerFunc(allStates, data, id, triggernum, event, unit, ...)) then
updateTriggerState = true;
local delay = GenericTrigger.GetDelay(data)
if delay == 0 then
local allStates = WeakAuras.GetTriggerStateForTrigger(id, triggernum);
if (RunTriggerFunc(allStates, data, id, triggernum, event, unit, ...)) then
updateTriggerState = true;
end
else
Private.RunTriggerFuncWithDelay(delay, id, triggernum, data, event, unit, ...)
end
end
if (updateTriggerState) then
@@ -2262,6 +2267,7 @@ do
local spellCdsRune = CreateSpellCDHandler();
local spellDetails = {}
local mark_ACTIONBAR_UPDATE_COOLDOWN, mark_PLAYER_ENTERING_WORLD
function Private.InitCooldownReady()
cdReadyFrame = CreateFrame("Frame");
@@ -2292,21 +2298,35 @@ do
end
if GetTime() - cdReadyFrame.inWorld < 2 then
cdReadyFrame:SetScript("OnUpdate", cdReadyFrame.HandleEvent)
mark_PLAYER_ENTERING_WORLD = true
cdReadyFrame:Show()
return
end
if (event == "ACTIONBAR_UPDATE_COOLDOWN") then
mark_ACTIONBAR_UPDATE_COOLDOWN = true
cdReadyFrame:Show()
return
end
cdReadyFrame:SetScript("OnUpdate", nil)
Private.StartProfileSystem("generictrigger cd tracking");
if type(event) == "number" then-- Called from OnUpdate!
Private.CheckSpellKnown()
Private.CheckCooldownReady()
Private.CheckItemSlotCooldowns()
elseif(event == "SPELL_UPDATE_COOLDOWN"
or event == "RUNE_POWER_UPDATE" or event == "RUNE_TYPE_UPDATE" or event == "ACTIONBAR_UPDATE_COOLDOWN"
if mark_PLAYER_ENTERING_WORLD then
Private.CheckSpellKnown()
Private.CheckCooldownReady()
Private.CheckItemSlotCooldowns()
mark_PLAYER_ENTERING_WORLD = nil
mark_ACTIONBAR_UPDATE_COOLDOWN = nil
elseif mark_ACTIONBAR_UPDATE_COOLDOWN then
Private.CheckCooldownReady()
mark_ACTIONBAR_UPDATE_COOLDOWN = nil
end
elseif(event == "SPELL_UPDATE_COOLDOWN" or event == "RUNE_POWER_UPDATE"
or event == "PLAYER_TALENT_UPDATE"
or event == "CHARACTER_POINTS_CHANGED") then
Private.CheckCooldownReady();
or event == "CHARACTER_POINTS_CHANGED" or event == "RUNE_TYPE_UPDATE") then
if event == "SPELL_UPDATE_COOLDOWN" then
mark_ACTIONBAR_UPDATE_COOLDOWN = nil
end
Private.CheckCooldownReady();
elseif(event == "SPELLS_CHANGED") then
Private.CheckSpellKnown()
Private.CheckCooldownReady()
@@ -2326,8 +2346,15 @@ do
Private.CheckItemSlotCooldowns();
end
Private.StopProfileSystem("generictrigger cd tracking");
if mark_PLAYER_ENTERING_WORLD == nil and mark_ACTIONBAR_UPDATE_COOLDOWN == nil then
cdReadyFrame:Hide()
else
cdReadyFrame:Show()
end
end
cdReadyFrame:Hide()
cdReadyFrame:SetScript("OnEvent", cdReadyFrame.HandleEvent)
cdReadyFrame:SetScript("OnUpdate", cdReadyFrame.HandleEvent)
end
function WeakAuras.GetRuneCooldown(id)