init
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
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
|
||||
Reference in New Issue
Block a user