Thread Tools Display Modes
03-28-11, 11:27 AM   #1
daylesan
A Fallenroot Satyr
Join Date: Feb 2011
Posts: 22
Recognizing Aura Mastery's interrupt immunity

I want my addon to recognize when player's (hostile) target is immune to interrupt effects due to Aura Mastery.

This sounds easy at first, but after looking into it for a while it seems very tricky, if not impossible. Hopefully someone can prove me wrong

Consider this:

Originally Posted by Aura Mastery tooltip
Causes your Concentration Aura to make all affected targets immune to Silence and Interrupt effects and improve the effect of all other auras by 100%. Lasts 6 sec.
1. Aura Mastery only provides immunity if used in tandem with Concentration Aura.
2. The Concentration Aura and Aura Mastery must be cast by the same paladin (this is my interpretation of the tooltip at least).
3. UnitCastingInfo // UnitChannelInfo do not recognize spells cast under Aura Mastery as being uninterruptible (as shown by my own testing)
4. UNIT_SPELLCAST_NOT_INTERRUPTIBLE and UNIT_SPELLCAST_INTERRUPTIBLE do not provide useful information in these cases (as shown by my own testing)


UnitBuff() gives detailed info (so we can check if the Aura Mastery and Concentration Aura come from the same player), but is only available for unitID's. So we can't get detailed info unless the player has the paladin on focus or is targeting him (are there special unitID's for arena or battleground opponents?)

There's also the question: what happens in a situation where multiple paladins all use Concentration Aura?


Another approach would be using COMBAT_LOG_EVENT_UNFILTERED. Then we are not limited by unitID's, but can't use UnitBuff either. It's possible to track Aura Mastery and Concentration Aura casts on a per-player basis, but there are also holes in this approach (players casting Concentration Aura outside of combat log range).


Is this possible at all?

Last edited by daylesan : 03-28-11 at 03:39 PM.
  Reply With Quote
03-28-11, 04:55 PM   #2
Crissa
A Flamescale Wyrmkin
 
Crissa's Avatar
Join Date: May 2008
Posts: 136
I don't think this is supposed to be possible at all.

However, you could have an addon that looked for the aura on your target then flashed some sort of warning on the screen. It couldn't interrupt your clicking or keystrokes, but it would be helpful. There was an addon for Druids that did stuff like this called BadKitty on Curse.

-Crissa
  Reply With Quote
03-28-11, 05:21 PM   #3
hankthetank
A Theradrim Guardian
AddOn Author - Click to view addons
Join Date: Jul 2009
Posts: 64
You would need to store active auras of hostile paladins.
  • Check for SPELL_CAST_SUCCESS inside COMBATLOG_EVENT_UNFILTERED with arg9 being the spell id of any paladin aura to track aura changes.
  • To get initial values there is no way around using group target scans.
    • Listen for UNIT_TARGET and check if the target is a hostile paladin player (UnitIsPlayer(arg1 .. "target") and UnitCanAttack("player", arg1 .. "target") and select(2, UnitClass(arg1 .. "target")) == "PALADIN").
    • Then check if there is already a player with the target GUID (UnitGUID(...)) in your database. If not so iterate over the buffs with UnitAura(arg1 .. "target", i = 1 .. n, "HELPFUL") and check for concentration aura.
    • Make sure that arg8 (spell source) is the hostile paladin himself as aura mstery works only for your own active aura (UnitIsUnit(select(8, UnitAura(arg1 .. "target", i, "HELPFUL")), arg1 .. "target"). If so store the paladin guid in your database.
  • Drop your database and make an initial check for every group member with the above method when zoning.
  • Remove the guid once the paladin casts an aura other than conc aura (SPELL_CAST_SUCCESS).
  • Now when you receive an event for an aura mastery cast you can check against your database.
  • For arena opponents you can make use of unit ids arena1 through n. So it's slightly easier to run an initial check using these unit ids after ARENA_OPPONENT_UPDATE fired. Generaly the whole process would be easier for an arena exclusive solution as you could just check every opponent after an aura mastery cast instead of using a database / table.

Last edited by hankthetank : 03-28-11 at 10:59 PM.
  Reply With Quote

WoWInterface » Developer Discussions » Lua/XML Help » Recognizing Aura Mastery's interrupt immunity

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off