135 lines
3.9 KiB
Lua
135 lines
3.9 KiB
Lua
local mod = DBM:NewMod("Nalorakk", "DBM-ZulAman")
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision(("$Revision: 5015 $"):sub(12, -3))
|
|
mod:SetCreatureID(23576)
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEvents(
|
|
"SPELL_AURA_APPLIED",
|
|
"SPELL_AURA_APPLIED_DOSE",
|
|
"SPELL_AURA_REMOVED",
|
|
"SPELL_DAMAGE",
|
|
"SPELL_CAST_START",
|
|
"SPELL_SUMMON",
|
|
"CHAT_MSG_MONSTER_YELL"
|
|
)
|
|
|
|
local warnBear = mod:NewAnnounce("WarnBear", 4, 39414)
|
|
local warnBearSoon = mod:NewAnnounce("WarnBearSoon", 3, 39414)
|
|
local warnNormal = mod:NewAnnounce("WarnNormal", 4, 39414)
|
|
local warnNormalSoon = mod:NewAnnounce("WarnNormalSoon", 3, 39414)
|
|
local warnSilence = mod:NewSpellAnnounce(42398, 3)
|
|
local specWarnFury = mod:NewSpecialWarningSpell(2135837)
|
|
local specWarnFuryStacks= mod:NewSpecialWarningStack(2135838)
|
|
local specWarnRend = mod:NewSpecialWarningTarget(2135833)
|
|
local timerNextWhirling = mod:NewNextTimer(15, 2135814)
|
|
|
|
local timerNextImpale = mod:NewNextTimer(15, 2135823)
|
|
local warnImpale = mod:NewTargetAnnounce(2135824, 3) --2135823, 2135824, 2135825, 2135826, 2135827
|
|
|
|
local timerBear = mod:NewTimer(45, "TimerBear", 39414)
|
|
local timerNormal = mod:NewTimer(30, "TimerNormal", 39414)
|
|
local timerCharge1 = mod:NewTimer(13, "Charge (1)", 2135805)
|
|
local timerCharge2 = mod:NewTimer(14, "Charge (2)", 2135805)
|
|
local timerCharge3 = mod:NewTimer(15, "Charge (3)", 2135805)
|
|
local timerNextFury = mod:NewNextTimer(45, 2135837)
|
|
local timerNextRoar = mod:NewNextTimer(2135829, 14) -- HC 2135830 , ASC 10Man 2135831, ASC25man 2135832 --2136323 is ZUL'JIN ROAR!!!
|
|
local timerNextRend = mod:NewNextTimer(10, 2135833) --timer seems to not be constant, need to find out
|
|
local berserkTimer = mod:NewBerserkTimer(600)
|
|
|
|
local roarSpam = 0
|
|
local roarCount = 0
|
|
local roarTimer = 0
|
|
-- local chargeCount = 0
|
|
|
|
function mod:OnCombatStart(delay)
|
|
berserkTimer:Start(-delay)
|
|
timerNextFury:Start()
|
|
roarSpam = 0
|
|
roarCount = 0
|
|
roarTimer = 0
|
|
-- self:bearCharge()
|
|
end
|
|
|
|
-- function mod:bearCharge()
|
|
-- self:UnscheduleMethod("bearCharge")
|
|
-- timerCharge1:Start()
|
|
-- timerCharge2:Start()
|
|
-- timerCharge3:Start()
|
|
-- -- chargeCount = 0
|
|
-- end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if args:IsSpellID(2135812) then
|
|
timerNextRoar:Start()
|
|
timerNextFury:Start()
|
|
elseif args:IsSpellID(2135837) then
|
|
specWarnFury:Show()
|
|
elseif args:IsSpellID(2135804, 2135805, 2135806, 2135807) and AntiSpam(5) then
|
|
timerCharge1:Start()
|
|
timerCharge2:Start()
|
|
timerCharge3:Start()
|
|
-- chargeCount = chargeCount+1
|
|
-- if chargeCount == 3 then
|
|
-- self:bearCharge()
|
|
-- end
|
|
elseif args:IsSpellID(2135833, 2135834, 2135835, 2135836) then
|
|
specWarnRend:Show(args.destName)
|
|
timerNextRend:Start()
|
|
elseif args:IsSpellID(2135824, 2135825, 2135826, 2135827) then
|
|
warnImpale:Show(args.destName)
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED_DOSE(args)
|
|
if args:IsSpellID(2135838) then
|
|
if args.amount == 25 or args.amount == 50 or args.amount == 75 or args.amount == 100 then
|
|
specWarnFuryStacks:Show(args.amount)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
if args:IsSpellID(2135812) then
|
|
timerNextRoar:Stop()
|
|
timerNextFury:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_DAMAGE(args)
|
|
if args:IsSpellID(2135829, 2135830, 2135831, 2135832) and AntiSpam() then
|
|
roarCount = roarCount + 1
|
|
roarTimer = math.max(3, 14-roarCount)
|
|
timerNextRoar:Start(roarTimer)
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
if args:IsSpellID(2135823) then
|
|
timerNextImpale:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_SUMMON(args)
|
|
if args:IsSpellID(2135814) and AntiSpam() then
|
|
timerNextWhirling:Start()
|
|
end
|
|
end
|
|
|
|
function mod:CHAT_MSG_MONSTER_YELL(msg)
|
|
if msg == L.YellBear or msg:find(L.YellBear) then
|
|
timerBear:Cancel()
|
|
warnBearSoon:Cancel()
|
|
warnBear:Show()
|
|
timerNormal:Start()
|
|
warnNormalSoon:Schedule(25)
|
|
elseif msg == L.YellNormal or msg:find(L.YellNormal) then
|
|
timerNormal:Cancel()
|
|
warnNormalSoon:Cancel()
|
|
warnNormal:Show()
|
|
timerBear:Start()
|
|
warnBearSoon:Schedule(40)
|
|
end
|
|
end
|