96 lines
2.3 KiB
Lua
96 lines
2.3 KiB
Lua
local mod = DBM:NewMod("Thekal", "DBM-ZG", 1)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision(("$Revision: 148 $"):sub(12, -3))
|
|
|
|
mod:SetCreatureID(14509, 11348, 11347)
|
|
mod:RegisterCombat("combat")
|
|
mod:RegisterKill("yell", L.YellKill)
|
|
|
|
mod:SetBossHealthInfo(
|
|
14509, L.Thekal,
|
|
11348, L.Zath,
|
|
11347, L.LorKhan
|
|
)
|
|
|
|
mod:RegisterEvents(
|
|
"SPELL_CAST_START",
|
|
"SPELL_AURA_APPLIED",
|
|
"SPELL_AURA_REMOVED",
|
|
"SPELL_SUMMON",
|
|
"CHAT_MSG_MONSTER_EMOTE",
|
|
"CHAT_MSG_MONSTER_YELL"
|
|
)
|
|
|
|
|
|
local warnSimulKill = mod:NewAnnounce("WarnSimulKill", 1, 24173)
|
|
local warnHeal = mod:NewCastAnnounce(24208)
|
|
local warnBlind = mod:NewTargetAnnounce(21060)
|
|
local warnGouge = mod:NewTargetAnnounce(12540)
|
|
local warnPhase2 = mod:NewPhaseAnnounce(2)
|
|
local warnAdds = mod:NewSpellAnnounce(24183)
|
|
|
|
local timerSimulKill = mod:NewTimer(15, "TimerSimulKill", 24173)
|
|
local timerHeal = mod:NewCastTimer(4, 24208)
|
|
local timerBlind = mod:NewTargetTimer(10, 21060)
|
|
local timerGouge = mod:NewTargetTimer(4, 12540)
|
|
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
if args:IsSpellID(24208) then
|
|
warnHeal:Show()
|
|
timerHeal:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if args:IsSpellID(21060) then --Blind Daze
|
|
warnBlind:Show(args.destName)
|
|
timerBlind:Start(args.destName)
|
|
elseif args:IsSpellID(12540) and self:IsInCombat() then --Gouge Stun
|
|
warnGouge:Show(args.destName)
|
|
timerGouge:Start(args.destName)
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
if args:IsSpellID(21060) then
|
|
timerBlind:Cancel(args.destName)
|
|
elseif args:IsSpellID(12540) then
|
|
timerGouge:Cancel(args.destName)
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_SUMMON(args)
|
|
if args:IsSpellID(24813) then
|
|
warnAdds:Show()
|
|
end
|
|
end
|
|
|
|
local killTime = 0
|
|
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 then -- Bossfight (tank and spank)
|
|
self:SendSync("YellPhase2")
|
|
end
|
|
end
|
|
|
|
function mod:OnSync(msg, arg)
|
|
if msg == "PriestDied" then
|
|
if (GetTime() - killTime) > 20 then
|
|
warnSimulKill:Show()
|
|
timerSimulKill:Start()
|
|
killTime = GetTime()
|
|
end
|
|
elseif msg == "YellPhase2" then
|
|
warnPhase2:Show()
|
|
timerSimulKill:Cancel()
|
|
DBM.BossHealth:Clear()
|
|
DBM.BossHealth:AddBoss(14509, L.Thekal)
|
|
end
|
|
end |