902 - Targeting self causes glitch in "interruptible" response on target and player frame castbars
Casting spells such as fireball on a hostile target cause my cast bar to show my spell as interruptible.
Casting a spell with nothing targeted, such as hearthstone, a portal, or a mount..and my castbar still indicates the spell can be interrupted.
This is expected behavior.
The bug occurs when I target MYSELF and cast a non-channeled spell (using a non harmful spell of course such as hearthstone, a portal, or mounting), then both my player and target (while targeting self) frames cast bar color indicate that the cast cannot be interrupted by turning gray. At this point, regardless of what I cast or target, the player cast bar (and target if targeting self) will continue to indicate that the cast in not interruptible for the duration of the session.
Through trial and error I've found that I can reverse the glitch by targeting myself and casting and CHANNELED spell, such as blizzard. After doing this I can again see my spells as interruptible as long as I don't repeat the glitch by casting a non-channeled spell while targeting myself.
I've created a luatext to indicate whether spells can be interrupted, and the same glitch affects the text as well. My workaround/fix for that is to use a condition to check if my target is myself (if (isintercast or isinterchan == true) and not (UnitName(unit)==UnitName("Player")) then), however this will simply indicate that all of my spells are interruptable...which may or may not be correct.
My guess is that there might not really be a case where checking to see if "Player" spells are interruptible using those functions is really appropriate. At the same time it would be nice to know which of my spells or abilities can or cant be interrupted. Those functions don't seem to have more arguements beyond "unit" to offer another unit to check against like UnitIsFriend("Player", unit) does.
I'm using the most recent Alpha or Beta versions of PitBull4
Here's the entire luatext I'm using for cast information, including the interruptible status that I added. Keep in mind though that this bug isn't limited to my custom luatext, it applies to the cast bar as well...and isn't as easy to "kinda fix", as I have in this script.
local cast_data = CastData(unit)
local _,_,_,_,_,_,_,_,isintercast = UnitCastingInfo(unit)
local _,_,_,_,_,_,_,isinterchan = UnitChannelInfo(unit)
local r,g,b = 255,255,96
local ir,ig,ib = 255,32,32
local noir,noig,noib = 132,132,132
local stopr,stopg,stopb = 132,132,132
local maxstrlen = 30
Outline()
if cast_data then
local spell,stop_message,target = cast_data.spell,cast_data.stop_message,cast_data.target
local stop_time,stop_duration = cast_data.stop_time
if stop_time then
r,g,b = stopr,stopg,stopb
stop_duration = GetTime() - stop_time
elseif (isintercast or isinterchan == true) and not (UnitName(unit)==UnitName("Player")) then
r,g,b = noir,noig,noib
else
if not UnitIsFriend("player", unit)then
r,g,b = ir,ig,ib
end
end
Alpha(-(stop_duration or 0) + .5)
if stop_message then
return "|cff%02x%02x%02x%s|r",r,g,b,stop_message
else
if strlen(spell) >= maxstrlen then
return "|cff%02x%02x%02x%s|r",r,g,b,Abbreviate(spell)
else
return "|cff%02x%02x%02x%s|r",r,g,b,strupper(spell)
end
end
end
return ConfigMode()
Facts
- Last updated
- Mar 11, 2013
- Reported
- Dec 26, 2010
- Status
- New - Issue has not had initial review yet.
- Type
- Defect - A shortcoming, fault, or imperfection
- Priority
- Medium - Normal priority.
- Votes
- 0
- Component
- Core