116 lines
3.0 KiB
Lua
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 |