Files
coa-dbm/DBM-MC/Magmadar.lua
T
Andrew6810 39c0ed874e init
2022-10-21 06:50:13 -07:00

116 lines
3.0 KiB
Lua

local mod = DBM:NewMod("Magmadar", "DBM-MC", 1)
local L = mod:GetLocalizedStrings()
mod:SetRevision(("$Revision: 132 $"):sub(12, -3))
mod:SetCreatureID(11982)
mod:RegisterCombat("combat")
mod:RegisterEvents(
"SPELL_AURA_APPLIED",
"SPELL_AURA_REMOVED",
"SPELL_CAST_SUCCESS",
"SPELL_DAMAGE",
"SPELL_PERIODIC_DAMAGE"
)
local warnPanic = mod:NewSpellAnnounce(19408)
local warnEnrage = mod:NewSpellAnnounce(19451)
local warnDog = mod:NewSpellAnnounce(2105054)
local warnLavaBomb = mod:NewSpecialWarningYou(2105054)
local timerNextDog = mod:NewNextTimer(40, 5105044)
local timerNextPanic = mod:NewNextTimer(30, 19408)
local timerNextLava = mod:NewNextTimer(30, 2105054)
local timerNextBreath = mod:NewNextTimer(10, 2105049)
local warnNextHysteria = mod:NewSpellAnnounce(2105031)
local warnNextDread = mod:NewSpellAnnounce(2105032)
local warnNextFury = mod:NewSpellAnnounce(2105033)
local warnNextDispair = mod:NewSpellAnnounce(2105030)
local timerNextHysteria = mod:NewNextTimer(150, 2105031)
local timerNextDread = mod:NewNextTimer(150, 2105032)
local timerNextFury = mod:NewNextTimer(150, 2105033)
local timerNextDispair = mod:NewNextTimer(150, 2105030)
local timerPanic = mod:NewBuffActiveTimer(8, 19408)
local timerEnrage = mod:NewBuffActiveTimer(8, 19451)
mod:AddBoolOption(L.lavaBombYellOpt)
function mod:OnCombatStart(delay)
timerPanic:Start(-delay)
timerNextDog:Start(25-delay)
warnDog:Schedule(25-delay)
self:ScheduleMethod(25, "DogSpawner")
timerNextHysteria:Start(15-delay)
timerNextDread:Start(45-delay)
timerNextFury:Start(75-delay)
timerNextDispair:Start(105-delay)
end
function mod:DogSpawner()
self:UnscheduleMethod("DogSpawner")
warnDog:Show()
timerNextDog:Start()
self:ScheduleMethod(40, "DogSpawner")
end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(19451) then
warnEnrage:Show()
timerEnrage:Start()
elseif args:IsSpellID(2105054) then
if args:IsPlayer() then
warnLavaBomb:Show()
if self.Options.lavaBombYellOpt then
SendChatMessage(L.lavaBombYell, "YELL")
end
end
timerNextLava:Start()
elseif args:IsSpellID(2105054) then
warnNextHysteria:Show()
timerNextHysteria:Start()
elseif args:IsSpellID(2105054) then
warnNextDread:Show()
timerNextDread:Start()
elseif args:IsSpellID(2105054) then
warnNextFury:Show()
timerNextFury:Start()
elseif args:IsSpellID(2105054) then
warnNextDispair:Show()
timerNextDispair:Start()
end
end
function mod:SPELL_AURA_REMOVED(args)
if args:IsSpellID(19451) then
timerEnrage:Cancel()
end
end
function mod:SPELL_CAST_SUCCESS(args)
if args:IsSpellID(19408, 2105045) then
warnPanic:Show()
timerPanic:Start()
timerNextPanic:Start()
end
end
function mod:SPELL_DAMAGE(args)
if args:IsSpellID(2105049) then
timerNextBreath:Start()
end
end
function mod:SPELL_PERIODIC_DAMAGE(args)
if args:IsSpellID(2105054) then
if args:IsPlayer() then
warnLavaBomb:Show()
if self.Options.lavaBombYellOpt then
SendChatMessage(L.lavaBombYell, "YELL")
end
end
end
end