From a5ccf0e15d4b9b196f195e879fffd8af32975e85 Mon Sep 17 00:00:00 2001 From: "Johnny C. Lam" Date: Mon, 5 May 2014 18:03:35 +0000 Subject: [PATCH] Properly detect the end of an instant-cast spell cast on yourself. Treat friendly spells cast on a target of yourself the same as a spellcast that procs a buff on the player -- we track the buff appearing on the player and remove the spell from the in-flight spell queue. git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1382 d5049fe3-3747-40f7-a4b5-f36d6801af5f --- OvaleFuture.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/OvaleFuture.lua b/OvaleFuture.lua index 4a259d8..4717a20 100644 --- a/OvaleFuture.lua +++ b/OvaleFuture.lua @@ -70,7 +70,9 @@ local OVALE_UNKNOWN_GUID = 0 -- These CLEU events are eventually received after a successful spellcast. local OVALE_CLEU_SPELLCAST_RESULTS = { SPELL_AURA_APPLIED = true, + SPELL_AURA_APPLIED_DOSE = true, SPELL_AURA_REFRESH = true, + SPELL_AURA_REMOVED_DOSE = true, SPELL_CAST_SUCCESS = true, SPELL_CAST_FAILED = true, SPELL_DAMAGE = true, @@ -210,9 +212,9 @@ local function AddSpellToQueue(spellId, lineId, startTime, endTime, channeled, a for target, auraTable in pairs(si.aura) do for filter, auraList in pairs(auraTable) do for auraId, spellData in pairs(auraList) do - if spellData and type(spellData) == "number" and spellData > 0 then + if spellData and (spellData == "refresh" or (type(spellData) == "number" and spellData > 0)) then spellcast.auraId = auraId - if target == "player" then + if target == "player" or (target == "target" and spellcast.target == self_guid) then spellcast.removeOnSuccess = true end break -- 1.7.9.5