Properly detect the end of an instant-cast spell cast on yourself.
Johnny C. Lam [05-05-14 - 18:03]
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
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