local mod = DBM:NewMod("Thekal", "DBM-ZG", 1) local L = mod:GetLocalizedStrings() mod:SetRevision(("$Revision$"):sub(12, -3)) mod:SetCreatureID(14509, 11348, 11347) mod:SetEncounterID(789) mod:SetBossHPInfoToHighest() mod:RegisterCombat("combat") mod:RegisterKill("yell", L.YellKill) mod:RegisterEventsInCombat( "SPELL_CAST_START 24208", "SPELL_AURA_APPLIED 21060 12540", "SPELL_AURA_REMOVED 21060 12540", "SPELL_SUMMON 24813", "CHAT_MSG_MONSTER_EMOTE", "CHAT_MSG_MONSTER_YELL" ) local warnSimulKill = mod:NewAnnounce("WarnSimulKill", 1, 24173) local warnBlind = mod:NewTargetAnnounce(21060, 2) local warnGouge = mod:NewTargetAnnounce(12540, 2) local warnPhase2 = mod:NewPhaseAnnounce(2) local warnAdds = mod:NewSpellAnnounce(24183, 3) local specWarnHeal = mod:NewSpecialWarningInterrupt(24208, "HasInterrupt", nil, nil, 1, 2) local timerSimulKill = mod:NewTimer(15, "TimerSimulKill", 24173) local timerBlind = mod:NewTargetTimer(10, 21060, nil, nil, nil, 3) local timerGouge = mod:NewTargetTimer(4, 12540, nil, nil, nil, 3) function mod:OnCombatStart(delay) self:SetStage(1) end do local GreatHeal = DBM:GetSpellInfo(24208) function mod:SPELL_CAST_START(args) --if args:IsSpellID(24208) then if args.spellName == GreatHeal and args:IsSrcTypeHostile() then if self:CheckInterruptFilter(args.sourceGUID, false, true) then specWarnHeal:Show(args.sourceName) specWarnHeal:Play("kickcast") end end end end do local Blind, Gouge = DBM:GetSpellInfo(21060), DBM:GetSpellInfo(12540) function mod:SPELL_AURA_APPLIED(args) --if args:IsSpellID(21060) then --Blind Daze if args.spellName == Blind and args:IsDestTypePlayer() then warnBlind:Show(args.destName) timerBlind:Start(args.destName) --elseif args:IsSpellID(12540) and args:IsDestTypePlayer() then --Gouge Stun elseif args.spellName == Gouge and args:IsDestTypePlayer() then warnGouge:Show(args.destName) timerGouge:Start(args.destName) end end function mod:SPELL_AURA_REMOVED(args) --if args:IsSpellID(21060) then if args.spellName == Blind and args:IsDestTypePlayer() then timerBlind:Stop(args.destName) --elseif args:IsSpellID(12540) then elseif args.spellName == Gouge and args:IsDestTypePlayer() then timerGouge:Stop(args.destName) end end end do local SummonZulGardians = DBM:GetSpellInfo(24183) function mod:SPELL_SUMMON(args) --if args:IsSpellID(24183) then if args.spellName == SummonZulGardians then warnAdds:Show() end end end function mod:CHAT_MSG_MONSTER_EMOTE(msg) if msg == L.PriestDied then -- Starts timer before ressurection of adds. self:SendSync("PriestDied") end end function mod:CHAT_MSG_MONSTER_YELL(msg) if msg == L.YellPhase2 and self.vb.phase < 2 then -- Bossfight (tank and spank) self:SendSync("YellPhase2") end end function mod:OnSync(msg) if not self:IsInCombat() then return end if msg == "PriestDied" then if self:AntiSpam(20, 1) then warnSimulKill:Show() timerSimulKill:Start() end elseif msg == "YellPhase2" and self.vb.phase < 2 then self:SetStage(2) warnPhase2:Show() timerSimulKill:Stop() end end