@@ -18,6 +18,8 @@ addon.AnchorManager = namespace.AnchorManager
18
18
addon .defaultConfig = namespace .defaultConfig
19
19
addon .activeFrames = activeFrames
20
20
21
+ local GetSchoolString = _G .GetSchoolString
22
+ local strformat = _G .string .format
21
23
local GetNamePlateForUnit = _G .C_NamePlate .GetNamePlateForUnit
22
24
local UnitIsFriend = _G .UnitIsFriend
23
25
local UnitCastingInfo = _G .UnitCastingInfo
@@ -545,7 +547,7 @@ local bit_band = _G.bit.band
545
547
local playerInterrupts = namespace .playerInterrupts
546
548
547
549
function addon :COMBAT_LOG_EVENT_UNFILTERED ()
548
- local _ , eventType , _ , _ , _ , srcFlags , _ , dstGUID , _ , dstFlags , _ , _ , spellName , _ , missType = CombatLogGetCurrentEventInfo ()
550
+ local _ , eventType , _ , _ , _ , srcFlags , _ , dstGUID , _ , dstFlags , _ , _ , spellName , spellSchool , missType = CombatLogGetCurrentEventInfo ()
549
551
if eventType == " SPELL_MISSED" then
550
552
if missType == " IMMUNE" and playerInterrupts [spellName ] then
551
553
if bit_band (dstFlags , COMBATLOG_OBJECT_CONTROL_PLAYER ) <= 0 then -- dest unit is not a player
@@ -588,6 +590,14 @@ function addon:COMBAT_LOG_EVENT_UNFILTERED()
588
590
end
589
591
end
590
592
end
593
+ elseif eventType == " SPELL_INTERRUPT" then
594
+ for unitID , castbar in pairs (activeFrames ) do -- have to scan for it due to race conditions with UNIT_SPELLCAST_*
595
+ if castbar :GetAlpha () > 0 then
596
+ if UnitGUID (unitID ) == dstGUID then
597
+ castbar .Text :SetText (strformat (_G .LOSS_OF_CONTROL_DISPLAY_INTERRUPT_SCHOOL , GetSchoolString (spellSchool )))
598
+ end
599
+ end
600
+ end
591
601
end
592
602
end
593
603
0 commit comments