from retail
This commit is contained in:
@@ -1434,11 +1434,16 @@ local function CleanUpMatchDataForUnit(unit, filter)
|
||||
for index, data in pairs(matchData[unit][filter]) do
|
||||
matchData[unit][filter][index] = nil
|
||||
for id, triggerData in pairs(data.auras) do
|
||||
for triggernum in pairs(triggerData) do
|
||||
matchDataByTrigger[id][triggernum][unit][index] = nil
|
||||
matchDataChanged[id] = matchDataChanged[id] or {}
|
||||
matchDataChanged[id][triggernum] = true
|
||||
end
|
||||
for triggernum in pairs(triggerData) do
|
||||
if matchDataByTrigger[id] and matchDataByTrigger[id][triggernum]
|
||||
and matchDataByTrigger[id][triggernum][unit]
|
||||
and matchDataByTrigger[id][triggernum][unit][index]
|
||||
then
|
||||
matchDataByTrigger[id][triggernum][unit][index] = nil
|
||||
matchDataChanged[id] = matchDataChanged[id] or {}
|
||||
matchDataChanged[id][triggernum] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -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)
|
||||
|
||||
+10
-2
@@ -2691,6 +2691,16 @@ local function pAdd(data, simpleChange)
|
||||
end
|
||||
end
|
||||
|
||||
-- If the aura has a onHide animation we need to cancel it to ensure it's truely hidden now
|
||||
if Private.regions[id] then
|
||||
Private.CancelAnimation(Private.regions[id].region, true, true, true, true, true, true)
|
||||
end
|
||||
if clones[id] then
|
||||
for _, region in pairs(clones[id]) do
|
||||
Private.CancelAnimation(region, true, true, true, true, true, true)
|
||||
end
|
||||
end
|
||||
|
||||
Private.ClearAuraEnvironment(id);
|
||||
for parent in Private.TraverseParents(data) do
|
||||
Private.ClearAuraEnvironment(parent.id);
|
||||
@@ -5581,5 +5591,3 @@ do
|
||||
return data.regionType == "group" or data.regionType == "dynamicgroup"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user