PitBull Unit Frames 4.0

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()

User When Change
Stanzilla Aug 23, 2012 at 21:54 UTC Changed assigned to from ckknight to Shefki
Aoxomoxoa Dec 26, 2010 at 04:02 UTC Create

You must login to post a comment. Don't have an account? Register to get one!

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

Reported by

Possible assignees