mirror of
https://github.com/parnic/ice-hud.git
synced 2025-06-16 06:40:13 -05:00
- check for the player interrupting the spell locally before it's had a chance to come back from the server
This commit is contained in:
@ -2,6 +2,7 @@ local AceOO = AceLibrary("AceOO-2.0")
|
|||||||
local deformat = AceLibrary("Deformat-2.0")
|
local deformat = AceLibrary("Deformat-2.0")
|
||||||
|
|
||||||
local SPELLINTERRUPTOTHERSELF = SPELLINTERRUPTOTHERSELF
|
local SPELLINTERRUPTOTHERSELF = SPELLINTERRUPTOTHERSELF
|
||||||
|
local SPELLFAILCASTSELF = SPELLFAILCASTSELF
|
||||||
|
|
||||||
IceCastBar = AceOO.Class(IceBarElement)
|
IceCastBar = AceOO.Class(IceBarElement)
|
||||||
|
|
||||||
@ -45,6 +46,7 @@ function IceCastBar.prototype:Enable(core)
|
|||||||
|
|
||||||
self:RegisterEvent("CHAT_MSG_SPELL_HOSTILEPLAYER_DAMAGE", "CheckChatInterrupt")
|
self:RegisterEvent("CHAT_MSG_SPELL_HOSTILEPLAYER_DAMAGE", "CheckChatInterrupt")
|
||||||
self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE", "CheckChatInterrupt")
|
self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE", "CheckChatInterrupt")
|
||||||
|
self:RegisterEvent("CHAT_MSG_SPELL_FAILED_LOCALPLAYER", "CheckChatInterrupt")
|
||||||
|
|
||||||
self:RegisterEvent("UNIT_SPELLCAST_DELAYED", "SpellCastDelayed") -- unit
|
self:RegisterEvent("UNIT_SPELLCAST_DELAYED", "SpellCastDelayed") -- unit
|
||||||
self:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED", "SpellCastSucceeded") -- "player", spell, rank
|
self:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED", "SpellCastSucceeded") -- "player", spell, rank
|
||||||
@ -265,6 +267,10 @@ function IceCastBar.prototype:CheckChatInterrupt(msg)
|
|||||||
local player, spell = deformat(msg, SPELLINTERRUPTOTHERSELF)
|
local player, spell = deformat(msg, SPELLINTERRUPTOTHERSELF)
|
||||||
--IceHUD:Debug("CheckChatInterrupt", msg)
|
--IceHUD:Debug("CheckChatInterrupt", msg)
|
||||||
|
|
||||||
|
if not player then
|
||||||
|
player, spell = deformat(msg, SPELLFAILCASTSELF)
|
||||||
|
end
|
||||||
|
|
||||||
if player then
|
if player then
|
||||||
self.current = nil
|
self.current = nil
|
||||||
self:StartBar(IceCastBar.Actions.Failure, "Interrupted")
|
self:StartBar(IceCastBar.Actions.Failure, "Interrupted")
|
||||||
@ -280,7 +286,6 @@ function IceCastBar.prototype:SpellCastInterrupted(unit)
|
|||||||
self:StartBar(IceCastBar.Actions.Failure, "Interrupted")
|
self:StartBar(IceCastBar.Actions.Failure, "Interrupted")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
function IceCastBar.prototype:SpellCastDelayed(unit, delay)
|
function IceCastBar.prototype:SpellCastDelayed(unit, delay)
|
||||||
if (unit ~= self.unit) then return end
|
if (unit ~= self.unit) then return end
|
||||||
--IceHUD:Debug("SpellCastDelayed", unit, UnitCastingInfo(unit))
|
--IceHUD:Debug("SpellCastDelayed", unit, UnitCastingInfo(unit))
|
||||||
|
Reference in New Issue
Block a user