82a9ac0937
* 5.20 * Update to 5.21 --------- Co-authored-by: Szyler <Szyler@Szyler.com>
557 lines
16 KiB
Lua
557 lines
16 KiB
Lua
local mod = DBM:NewMod("Illidan", "DBM-BlackTemple")
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
|
|
mod:SetCreatureID(22917)
|
|
mod:RegisterCombat("combat", 22917)
|
|
mod:SetBossHealthInfo(22917, "Illidan Stormrage")
|
|
|
|
mod:RegisterEvents(
|
|
"SPELL_AURA_APPLIED",
|
|
"SPELL_AURA_APPLIED_DOSE",
|
|
"SPELL_CAST_START",
|
|
"SPELL_CAST_SUCCESS",
|
|
"CHAT_MSG_MONSTER_YELL",
|
|
"UNIT_DIED",
|
|
"SPELL_INTERRUPT",
|
|
"UNIT_HEALTH",
|
|
"UNIT_AURA"
|
|
)
|
|
|
|
-- General
|
|
local timerLongRPStart = mod:NewTimer(39, "Combat starting in ", 560576)
|
|
local timerShortRPStart = mod:NewTimer(3, "Combat starting in ", 560576)
|
|
local berserkTimer = mod:NewBerserkTimer(1200) -- 20 minutes
|
|
|
|
-- Stage One: You Are Not Prepared
|
|
local warnPhase1 = mod:NewAnnounce("Stage One: You Are Not Prepared", 3, 804613)
|
|
local warnDrawSoul = mod:NewSpellAnnounce(2144737)
|
|
local warnShear = mod:NewSpellAnnounce(2144715)
|
|
local warnCrash = mod:NewSpellAnnounce(2144720)
|
|
local warnBlade = mod:NewSpellAnnounce(2144742)
|
|
local warnElites = mod:NewAnnounce("New waves of Illidari Elites", 804613)
|
|
|
|
local timerShearCD = mod:NewNextTimer(30, 2144715)
|
|
local timerFlameCrash = mod:NewNextTimer(30, 2144720)
|
|
local timerDrawSoul = mod:NewNextTimer(30, 2144737)
|
|
local timerBladeCD = mod:NewNextTimer(40, 2144742)
|
|
local timerElites = mod:NewTimer(60, "Illidari Elites", 804613)
|
|
local timerChainLightning = mod:NewCastTimer(3, 2144908)
|
|
local timerChainLightningCD = mod:NewCDTimer(9, 2144908)
|
|
|
|
|
|
-- Stage Two: Flames of Azzinoth
|
|
local warnPhase2 = mod:NewAnnounce("Stage Two: Flames of Azzinoth", 3, 801892)
|
|
--Illidan Stormrage
|
|
local warnBarrage = mod:NewTargetAnnounce(2144811, 3)
|
|
local warnEyebeamTarget = mod:NewAnnounce("Eye Beam on %s!", 3, "Interface\\Icons\\ability_demonhunter_eyebeam")
|
|
|
|
local specWarnBarrage = mod:NewSpecialWarning("Shadow Barrage on >YOU!<", 2144811)
|
|
local specWarnEyebeam = mod:NewSpecialWarning("Eyebeam on >YOU!<", 2144766)
|
|
|
|
local timerNextBarrage = mod:NewNextTimer(10, 2144811)
|
|
local timerBarrage = mod:NewTargetTimer(10, 2144811)
|
|
local timerEyebeam = mod:NewTargetTimer(20, 2144816)
|
|
local timerNextEyebeam = mod:NewNextTimer(35, 2144816)
|
|
local timerLanding = mod:NewTimer(7, "Illidan is targetable", 560576)
|
|
|
|
local specWarnChaosBlast = mod:NewSpecialWarning("Chaos Blast on you", 2144803)
|
|
local warnChaosBlast = mod:NewAnnounce("Chaos Blast on %s", 2144803)
|
|
local timerCBcast = mod:NewCastTimer(2, 2144803)
|
|
|
|
-- Flame of Azzinoth
|
|
local timerFelFireBlast = mod:NewNextTimer(20, 2144780)
|
|
|
|
-- Stage Three: The Demon Within
|
|
local warnPhase3 = mod:NewAnnounce("Stage Three: The Demon Within", 3, 40506)
|
|
local warnParasite = mod:NewTargetAnnounce(2144749, 3)
|
|
local specWarnParasite = mod:NewSpecialWarning("Parasitic Shadowfiends on >YOU!<", 2144751)
|
|
local yellParasiteFades = mod:NewFadesYell(2144751)
|
|
local warnDemonSoon = mod:NewAnnounce("Demon Within soon", 40506)
|
|
local timerNextDemon = mod:NewTimer(70, "Next Demon Phase", 40506)
|
|
|
|
local timerNextParasite = mod:NewNextTimer(40, 2144749)
|
|
local timerParasite = mod:NewTargetTimer(10, 2144751)
|
|
|
|
|
|
-- [Stage Three: The Demon Within] Demon Form
|
|
|
|
local warnDemonForm = mod:NewAnnounce("Demon Form", 3, 40506)
|
|
|
|
local specWarnShadowDemon = mod:NewSpecialWarning("Switch to Shadow Demons", 2144868)
|
|
|
|
local timerShadowDemon = mod:NewNextTimer(20, 2144868)
|
|
local timerNextHuman = mod:NewTimer(60, "Next Human Phase", 560576)
|
|
local timerChaosBurst = mod:NewNextTimer(10, 2144858)
|
|
|
|
-- Stage Four: The Long Hunt
|
|
local warnPhase4 = mod:NewAnnounce("Stage Four: The Long Hunt", 3, 2144934)
|
|
local warnTrapped = mod:NewAnnounce("Illidan is trapped", 3, 5116)
|
|
local specWarnTrap = mod:NewSpecialWarning("Maiev has placed the trap!", 1499)
|
|
|
|
local timerP4RP = mod:NewTimer(33, "Enemies to Lovers RP", 2144934)
|
|
local timerHatred = mod:NewNextTimer(20, 2144761)
|
|
local timerTrap = mod:NewTimer(30, "Next Maiev Trap", 1499)
|
|
local timerStun = mod:NewTimer(15, "Illidan is trapped", 5116)
|
|
|
|
-- Stage Five: Avatar of Hatred
|
|
local warnPhase5 = mod:NewAnnounce("Stage Five: Avatar of Hatred", 3, 2145004)
|
|
local warnSoulShear = mod:NewSpellAnnounce(2145040)
|
|
local warnHateCrash = mod:NewSpellAnnounce(2145025)
|
|
local warnMadness = mod:NewSpellAnnounce(2145051)
|
|
local warnUnleash = mod:NewSpellAnnounce(2145061)
|
|
local warnStruggle = mod:NewSpellAnnounce(2145081)
|
|
local warnHateBeam = mod:NewSpellAnnounce(2145074)
|
|
|
|
local specWarnHatred = mod:NewSpecialWarning("Unleash Hatred!", 2145065)
|
|
|
|
local timerMotes = mod:NewTimer(5, "Motes of Hatres spawning", 2145072)
|
|
local timerP5RP = mod:NewTimer(49, "Illidan tranformation RP", 2145004)
|
|
local timerDyingRP = mod:NewTimer(23, "Illidan dying RP", 2145004)
|
|
local timerSoulShear = mod:NewNextTimer(35, 2145040)
|
|
local timerHateCrash = mod:NewNextTimer(35, 2145025)
|
|
local timerMadness = mod:NewNextTimer(110, 2145051)
|
|
local timerUnleash = mod:NewNextTimer(110, 2145061)
|
|
local timerNextHateBeam = mod:NewNextTimer(110, 2145074)
|
|
local timerHateBeam = mod:NewTimer(12,"Eye Beam", 2145074)
|
|
local timerStruggle = mod:NewNextTimer(110, 2145081)
|
|
local timerStruggling = mod:NewTimer(10, "Illidan is struggling", 2145081)
|
|
|
|
local ParasiteTargets = {}
|
|
|
|
local illidan = false
|
|
|
|
|
|
mod:AddBoolOption(L.ParasiteIcon)
|
|
|
|
mod.vb.flamesDown = 0
|
|
local warned_flame = false
|
|
local warned_50demon = false
|
|
local warned_10demon = false
|
|
local LongPullRP = false
|
|
local Name
|
|
local bladeCount
|
|
local crashCount
|
|
local shearCount
|
|
local EliteCD = 60
|
|
local prepared
|
|
local Struggled
|
|
local eyebeamTarget
|
|
local castEyebeam = false
|
|
local castBarrage = false
|
|
|
|
function mod:warnParasiteTargets()
|
|
warnParasite:Show(table.concat(ParasiteTargets, "<, >"))
|
|
table.wipe(ParasiteTargets)
|
|
end
|
|
|
|
local function humanForms(self)
|
|
self:Unschedule(humanForms)
|
|
timerChaosBurst:Start()
|
|
timerBladeCD:Start(15)
|
|
timerFlameCrash:Start(25)
|
|
timerNextParasite:Start(30)
|
|
timerShearCD:Start(35)
|
|
timerDrawSoul:Start(40)
|
|
timerNextDemon:Start()
|
|
end
|
|
|
|
local function phase4Start(self)
|
|
self:Unschedule(humanForms)
|
|
timerBladeCD:Start(5)
|
|
timerFlameCrash:Start(15)
|
|
timerHatred:Start()
|
|
timerShearCD:Start(25)
|
|
timerDrawSoul:Start(30)
|
|
timerParasite:Start(50)
|
|
timerNextDemon:Start(60)
|
|
timerTrap:Start()
|
|
end
|
|
|
|
local function humanHatredForms(self)
|
|
self:Unschedule(humanForms)
|
|
timerChaosBurst:Start()
|
|
timerBladeCD:Start(15)
|
|
timerFlameCrash:Start(25)
|
|
timerHatred:Start(30)
|
|
timerShearCD:Start(35)
|
|
timerDrawSoul:Start(40)
|
|
timerTrap:Start(30)
|
|
timerParasite:Start(60)
|
|
timerNextDemon:Start()
|
|
end
|
|
|
|
function mod:CancelP5timers()
|
|
timerBladeCD:Cancel()
|
|
timerFlameCrash:Cancel()
|
|
timerParasite:Cancel()
|
|
timerDrawSoul:Cancel()
|
|
timerShearCD:Cancel()
|
|
timerNextDemon:Cancel()
|
|
bladeCount = 0
|
|
end
|
|
|
|
function mod:StartP5timers()
|
|
timerBladeCD:Start(16)
|
|
timerMadness:Start(30)
|
|
timerSoulShear:Start(37)
|
|
timerHateCrash:Start(44)
|
|
timerUnleash:Start(70)
|
|
timerNextHateBeam:Start(77)
|
|
timerStruggle:Start(93)
|
|
end
|
|
|
|
function mod:EyeBeamReset()
|
|
eyebeamTarget = 0
|
|
end
|
|
|
|
function mod:ChaosBlast()
|
|
local targetCB = mod:GetBossTarget(22917)
|
|
if targetCB == UnitName("player") then
|
|
specWarnChaosBlast:Show()
|
|
SendChatMessage("Chaos Blast on "..UnitName("PLAYER").."!", "SAY")
|
|
else
|
|
warnChaosBlast:Show(targetCB)
|
|
end
|
|
timerCBcast:Start(targetCB)
|
|
self:SetIcon(targetCB, 8, 2)
|
|
end
|
|
|
|
local function illidariElites(self)
|
|
self:Unschedule(illidariElites)
|
|
if not EliteCD then EliteCD = 60 end
|
|
timerElites:Start(EliteCD or 60)
|
|
self:Schedule(EliteCD or 60, illidariElites, self)
|
|
warnElites:Show()
|
|
EliteCD = EliteCD - 5
|
|
end
|
|
|
|
local function Prepared(self)
|
|
self:Unschedule(Prepared)
|
|
prepared = true
|
|
end
|
|
|
|
function mod:OnCombatStart(delay)
|
|
illidan = true
|
|
self.vb.phase = 1
|
|
warnPhase1:Show()
|
|
eyebeamTarget = 0
|
|
castEyebeam = false
|
|
castBarrage = false
|
|
warned_50demon = false
|
|
warned_10demon = false
|
|
warned_flame = false
|
|
self.vb.flamesDown = 0
|
|
bladeCount = 0
|
|
shearCount = 0
|
|
crashCount = 0
|
|
EliteCD = 60
|
|
table.wipe(ParasiteTargets)
|
|
if LongPullRP == false or LongPullRP == nil then
|
|
self:Schedule(8, illidariElites, self)
|
|
timerElites:Start(8)
|
|
timerFlameCrash:Start(18)
|
|
timerShearCD:Start(28)
|
|
timerDrawSoul:Start(33)
|
|
timerBladeCD:Start(38)
|
|
self:Schedule(5, Prepared, self)
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatEnd()
|
|
illidan = false
|
|
self:UnregisterAllEvents()
|
|
if self.Options.RangeFrame then
|
|
DBM.RangeCheck:Hide()
|
|
end
|
|
LongPullRP = false
|
|
prepared = false
|
|
Struggled = false
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
if illidan == true then
|
|
if args:IsSpellID(2144737, 2144738, 2144739, 2144740) then
|
|
warnDrawSoul:Show()
|
|
timerDrawSoul:Start()
|
|
elseif args:IsSpellID(2144868) then
|
|
specWarnShadowDemon:Show()
|
|
elseif args:IsSpellID(2144715) then -- Shear
|
|
timerShearCD:Start()
|
|
warnShear:Show()
|
|
elseif args:IsSpellID(2144720, 2144721, 2144722, 2144723) then -- Flame Crash
|
|
timerFlameCrash:Start()
|
|
warnCrash:Show()
|
|
elseif args:IsSpellID(2144742, 2145015) then
|
|
if bladeCount >= 1 and self.vb.phase == 3 then
|
|
timerBladeCD:Start()
|
|
warnBlade:Show()
|
|
bladeCount = bladeCount + 1
|
|
elseif bladeCount >= 1 and self.vb.phase == 5 then
|
|
timerBladeCD:Start()
|
|
warnBlade:Show()
|
|
bladeCount = bladeCount + 1
|
|
elseif bladeCount >= 1 and self.vb.phase == 6 then
|
|
warnBlade:Show()
|
|
timerBladeCD:Start(75)
|
|
bladeCount = 0
|
|
elseif bladeCount == 0 and self.vb.phase == 6 then
|
|
timerBladeCD:Start(35)
|
|
warnBlade:Show()
|
|
bladeCount = bladeCount + 1
|
|
else
|
|
timerBladeCD:Start(30)
|
|
warnBlade:Show()
|
|
bladeCount = bladeCount + 1
|
|
end
|
|
elseif args:IsSpellID(2145040) then
|
|
warnSoulShear:Show()
|
|
if shearCount == 0 then
|
|
timerSoulShear:Start()
|
|
shearCount = shearCount + 1
|
|
elseif shearCount == 1 then
|
|
shearCount = 0
|
|
timerSoulShear:Start(75)
|
|
end
|
|
elseif args:IsSpellID(2145022, 2145023, 2145024, 2145025) then
|
|
warnHateCrash:Show()
|
|
if self.vb.phase == 6 and crashCount == 0 then
|
|
timerHateCrash:Start()
|
|
crashCount = crashCount + 1
|
|
elseif self.vb.phase == 6 and crashCount == 1 then
|
|
timerHateCrash:Start(74)
|
|
crashCount = 0
|
|
end
|
|
elseif args:IsSpellID(2145051,2145052) then
|
|
warnMadness:Show()
|
|
timerMadness:Start(110)
|
|
elseif args:IsSpellID(2144908) then
|
|
timerChainLightning:Start(3)
|
|
timerChainLightningCD:Start()
|
|
elseif args:IsSpellID(2145074) then
|
|
warnHateBeam:Show()
|
|
timerHateBeam:Start()
|
|
timerNextHateBeam:Start()
|
|
elseif args:IsSpellID(2144816) then
|
|
castEyebeam = true
|
|
elseif args:IsSpellID(2144803) then
|
|
self:ScheduleMethod(0.15,"ChaosBlast")
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
function mod:SPELL_INTERRUPT(args)
|
|
if illidan == true then
|
|
if args:IsSpellID(2144908) then
|
|
timerChainLightning:Cancel()
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if illidan == true then
|
|
if args:IsSpellID(2144751, 2144752, 2144753, 2144754, 2144755) then
|
|
timerParasite:Start(args.destName)
|
|
if args:IsPlayer() then
|
|
specWarnParasite:Show()
|
|
yellParasiteFades:Countdown(10, 3)
|
|
end
|
|
self:UnscheduleMethod("warnParasiteTargets")
|
|
ParasiteTargets[#ParasiteTargets + 1] = args.destName
|
|
self:ScheduleMethod(0.3, "warnParasiteTargets")
|
|
if self.Options.ParasiteIcon then
|
|
if DBM:AntiSpam(10) then self:SetIcon(args.destName, 7)
|
|
elseif DBM:AntiSpam(10) then self:SetIcon(args.destName, 6)
|
|
elseif DBM:AntiSpam(10) then self:SetIcon(args.destName, 5)
|
|
elseif DBM:AntiSpam(10) then self:SetIcon(args.destName, 4)
|
|
elseif DBM:AntiSpam(10) then self:SetIcon(args.destName, 3)
|
|
end
|
|
end
|
|
timerNextParasite:Start()
|
|
end
|
|
if args:IsSpellID(2144810) then
|
|
if args.destName == args:IsPlayer() then
|
|
specWarnBarrage:Show()
|
|
SendChatMessage("Dark Barrage on "..UnitName("PLAYER").."!", "SAY")
|
|
else
|
|
warnBarrage:Show(args.destName)
|
|
end
|
|
self:SetIcon(args.destName, 7, 2)
|
|
timerBarrage:Start(args.destName)
|
|
castBarrage = true
|
|
end
|
|
if args:IsSpellID(2145061) and args.destName == "Illidan Stormrage" then
|
|
timerUnleash:Start(110)
|
|
timerMotes:Start(5)
|
|
warnUnleash:Show()
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
if illidan == true then
|
|
if args:IsSpellID(2144751, 2144752, 2144753, 2144754, 2144755) then
|
|
timerParasite:Stop(args.destName)
|
|
elseif args:IsSpellID(2144816) then
|
|
castEyebeam = false
|
|
elseif args:IsSpellID(2144810) then
|
|
castBarrage = false
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:UNIT_DIED(args)
|
|
if illidan == true then
|
|
local cid = self:GetCIDFromGUID(args.destGUID)
|
|
if cid == 22997 then
|
|
self.vb.flamesDown = self.vb.flamesDown + 1
|
|
if self.vb.flamesDown >= 2 then
|
|
self.vb.phase = 3
|
|
warnPhase3:Show()
|
|
bladeCount = 0
|
|
if castEyebeam == true then
|
|
local eyebeamTime = timerEyebeam:GetTime();
|
|
timerLanding:Start(eyebeamTime+7)
|
|
timerBladeCD:Start(eyebeamTime+10)
|
|
timerFlameCrash:Start(eyebeamTime+18)
|
|
timerNextParasite:Start(eyebeamTime+23)
|
|
timerShearCD:Start(eyebeamTime+28)
|
|
timerDrawSoul:Start(eyebeamTime+33)
|
|
timerNextDemon:Start(eyebeamTime+67)
|
|
elseif castBarrage == true then
|
|
local barrageTime = timerBarrage:GetTime();
|
|
timerLanding:Start(barrageTime+7)
|
|
timerBladeCD:Start(barrageTime+10)
|
|
timerFlameCrash:Start(barrageTime+18)
|
|
timerNextParasite:Start(barrageTime+23)
|
|
timerShearCD:Start(barrageTime+28)
|
|
timerDrawSoul:Start(barrageTime+33)
|
|
timerNextDemon:Start(barrageTime+67)
|
|
else
|
|
timerLanding:Start(7)
|
|
timerBladeCD:Start(10)
|
|
timerFlameCrash:Start(18)
|
|
timerNextParasite:Start(23)
|
|
timerShearCD:Start(28)
|
|
timerDrawSoul:Start(33)
|
|
timerNextDemon:Start(67)
|
|
end
|
|
end
|
|
end
|
|
if args.destName == Name then
|
|
eyebeamTarget = 0
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:CHAT_MSG_MONSTER_YELL(msg)
|
|
if msg == L.Pull or msg:find(L.Pull) then
|
|
timerLongRPStart:Start()
|
|
LongPullRP = true
|
|
self:Schedule(18, illidariElites, self)
|
|
timerElites:Start(44)
|
|
timerFlameCrash:Start(54)
|
|
timerShearCD:Start(64)
|
|
timerDrawSoul:Start(69)
|
|
timerBladeCD:Start(74)
|
|
self:Schedule(5, Prepared, self)
|
|
elseif msg == L.RealPull or msg:find(L.RealPull) and prepared == false or nil then
|
|
timerShortRPStart:Start()
|
|
elseif msg == L.Demon or msg:find(L.Demon) then
|
|
warnDemonForm:Show()
|
|
timerBladeCD:Cancel()
|
|
timerFlameCrash:Cancel()
|
|
timerParasite:Cancel()
|
|
timerDrawSoul:Cancel()
|
|
timerShearCD:Cancel()
|
|
bladeCount = 0
|
|
elseif msg == L.DemonWithinQuote or msg:find(L.DemonWithinQuote) then
|
|
timerNextHuman:Start()
|
|
timerChaosBurst:Start(10)
|
|
timerShadowDemon:Start(30)
|
|
if self.vb.phase == 3 then
|
|
self:Schedule(60, humanForms, self)
|
|
elseif self.vb.phase == 5 then
|
|
self:Schedule(60, humanHatredForms, self)
|
|
end
|
|
elseif msg == L.Phase4 or msg:find(L.Phase4) then
|
|
self.vb.phase = 4
|
|
bladeCount = 0
|
|
self:Unschedule(humanForms)
|
|
timerBladeCD:Cancel()
|
|
timerFlameCrash:Cancel()
|
|
timerShearCD:Cancel()
|
|
timerDrawSoul:Cancel()
|
|
timerNextParasite:Cancel()
|
|
timerNextHuman:Cancel()
|
|
timerNextDemon:Cancel()
|
|
timerP4RP:Start()
|
|
warnPhase4:Schedule(33)
|
|
self:Schedule(33, phase4Start, self)
|
|
elseif msg == L.MaievTrap or msg:find(L.MaievTrap) then
|
|
specWarnTrap:Show()
|
|
elseif msg == L.Trapped1 or msg == L.Trapped2 or msg == L.Trapped3 then
|
|
timerStun:Start()
|
|
warnTrapped:Show()
|
|
elseif msg == L.Phase5 or msg:find(L.Phase5) then
|
|
if mod:IsDifficulty("heroic25") then
|
|
self.vb.phase = 5
|
|
warnPhase5:Schedule(46)
|
|
timerP5RP:Start()
|
|
self:ScheduleMethod(0,"CancelP5timers")
|
|
self:ScheduleMethod(49, "StartP5timers")
|
|
else
|
|
timerDyingRP:Start()
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
function mod:UNIT_HEALTH(uId)
|
|
if illidan == true then
|
|
local cid = self:GetUnitCreatureId(uId)
|
|
if warned_50demon == false and cid == 22917 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.55 then
|
|
warned_50demon = true
|
|
warnDemonSoon:Show()
|
|
elseif warned_10demon == false and cid == 22917 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.15 then
|
|
warned_10demon = true
|
|
warnDemonSoon:Show()
|
|
elseif warned_flame == false and cid == 22917 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.7 then
|
|
warned_flame = true
|
|
warnPhase2:Show()
|
|
self.vb.phase = 2
|
|
self:Unschedule(illidariElites)
|
|
timerBladeCD:Cancel()
|
|
timerFlameCrash:Cancel()
|
|
timerShearCD:Cancel()
|
|
timerDrawSoul:Cancel()
|
|
timerElites:Cancel()
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:UNIT_AURA(unit)
|
|
if illidan == true then
|
|
if self.vb.phase == 2 and eyebeamTarget == 0 and UnitDebuff(unit, "Betrayer's Gaze") and DBM:AntiSpam(35) then
|
|
eyebeamTarget = 1
|
|
Name = UnitName(unit)
|
|
if Name == UnitName("player") then
|
|
specWarnEyebeam:Show()
|
|
SendChatMessage("Eye Beam on "..UnitName("PLAYER").."!", "SAY")
|
|
else
|
|
warnEyebeamTarget:Show(Name)
|
|
end
|
|
timerEyebeam:Start(Name)
|
|
self:SetIcon(Name, 6, 10)
|
|
self:ScheduleMethod(10,"EyeBeamReset")
|
|
end
|
|
if UnitDebuff("Boss", "Struggle for Control") and DBM:AntiSpam(105, 3) then
|
|
warnStruggle:Show()
|
|
timerStruggling:Start()
|
|
timerStruggle:Start()
|
|
Struggled = true
|
|
end
|
|
end
|
|
end |