Targeting self causes glitch in "interruptible" response on target and player frame castbars #902


  • New
  • Defect
Open
Assigned to shefkin
  • _ForgeUser111214 created this issue Dec 25, 2010

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

  • _ForgeUser111214 added the tags New Defect Dec 25, 2010
  • Stanzilla unassigned issue from ckknight Aug 23, 2012
  • Stanzilla assigned issue to shefkin Aug 23, 2012

To post a comment, please login or register a new account.