87 lines
2.5 KiB
Lua
87 lines
2.5 KiB
Lua
local mod = DBM:NewMod("Noth", "DBM-Naxx", 3)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision(("$Revision: 2248 $"):sub(12, -3))
|
|
mod:SetCreatureID(15954)
|
|
mod:RegisterCombat("combat")
|
|
mod:RegisterEvents(
|
|
"SPELL_CAST_SUCCESS",
|
|
"SPELL_AURA_APPLIED",
|
|
"SPELL_AURA_APPLIED_DOSE",
|
|
"PLAYER_ALIVE"
|
|
)
|
|
|
|
-----TELEPORT-----
|
|
local warnTeleportNow = mod:NewAnnounce("Teleport Now", 3, 46573, nil, "Show warning for Noth teleporting to and from the balcony")
|
|
local warnTeleportSoon = mod:NewAnnounce("Teleport in 10 seconds", 1, 46573, nil, "Show pre-warning for Noth teleporting to and from the balcony")
|
|
local timerTeleport = mod:NewTimer(600, "Teleport to Balcony", 46573, nil, "Show timer for Noth teleporting to the balcony")
|
|
local timerTeleportBack = mod:NewTimer(600, "Teleport to Raid", 46573, nil, "Show timer for Noth teleporting from the balcony")
|
|
-----CURSE-----
|
|
local warnCurse = mod:NewSpellAnnounce(29213, 2)
|
|
local specWarnCurse = mod:NewSpecialWarningYou(29213)
|
|
-----Adds-----
|
|
local timerSkeletons = mod:NewNextTimer(30, 52611)
|
|
--Rise, my soldiers! Rise and fight once more!
|
|
-----MISC-----
|
|
-- local berserkTimer = mod:NewBerserkTimer(375)
|
|
local phase = 0
|
|
|
|
-----BOSS FUNCTIONS-----
|
|
function mod:OnCombatStart(delay)
|
|
-- berserkTimer:Start(375-delay)
|
|
timerSkeletons:Start(15-delay)
|
|
timerSkeletons:Schedule(15)
|
|
phase = 0
|
|
self:BackInRoom()
|
|
end
|
|
|
|
function mod:Balcony()
|
|
local timer
|
|
if phase == 1 then timer = 60
|
|
elseif phase == 2 then timer = 60
|
|
elseif phase == 3 then timer = 60
|
|
else return end
|
|
timerTeleportBack:Show(timer)
|
|
warnTeleportSoon:Schedule(timer - 10)
|
|
warnTeleportNow:Schedule(timer)
|
|
self:ScheduleMethod(timer, "BackInRoom")
|
|
timerSkeletons:Start(5)
|
|
timerSkeletons:Schedule(5)
|
|
end
|
|
|
|
function mod:BackInRoom()
|
|
phase = phase + 1
|
|
local timer
|
|
if phase == 1 then timer = 75
|
|
elseif phase == 2 then timer = 75
|
|
elseif phase == 3 then timer = 75
|
|
else return end
|
|
timerTeleport:Show(timer)
|
|
warnTeleportSoon:Schedule(timer - 10)
|
|
warnTeleportNow:Schedule(timer)
|
|
self:ScheduleMethod(timer, "Balcony")
|
|
timerSkeletons:Start(15)
|
|
timerSkeletons:Schedule(15)
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
if args:IsSpellID(29213, 54835, 350288) then -- Curse of the Plaguebringer
|
|
warnCurse:Show()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if args:IsSpellID(29213, 54835, 350288) then
|
|
if args:IsPlayer() then
|
|
specWarnCurse:Show();
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED_DOSE(args)
|
|
if args:IsSpellID(29213, 54835, 350288) then
|
|
if args:IsPlayer() then
|
|
specWarnCurse:Show();
|
|
end
|
|
end
|
|
end |