You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
2.3 KiB

local mod = DBM:NewMod(188, "DBM-Party-Cataclysm", 10, 77)
local L = mod:GetLocalizedStrings()
mod.statTypes = "heroic,timewalker"
mod:SetRevision("20220116042005")
mod:SetCreatureID(23578)
mod:SetEncounterID(1191)
mod:RegisterCombat("combat")
mod:RegisterEventsInCombat(
"SPELL_AURA_APPLIED 97497",
"SPELL_CAST_START 43140",
"CHAT_MSG_MONSTER_YELL"
)
local warnFlameCast = mod:NewSpellAnnounce(43140, 2)
local warnAddsSoon = mod:NewSoonAnnounce(43962, 3)
local warnHatchAll = mod:NewSpellAnnounce(43144, 4)
local specWarnFlameBreath = mod:NewSpecialWarningMove(97497, nil, nil, nil, 1, 2)
local specWarnAdds = mod:NewSpecialWarningSpell(43962, nil, nil, nil, 1, 2)
local specWarnBomb = mod:NewSpecialWarningDodge(42630, nil, nil, nil, 2)
local specWarnHatchAll = mod:NewSpecialWarningSpell(43144, "Tank", nil, nil, 1, 2)
local timerBomb = mod:NewCastTimer(12, 42630, nil, nil, nil, 3)
local timerBombCD = mod:NewNextTimer(30, 42630, nil, nil, nil, 3)
local timerAdds = mod:NewNextTimer(60, 43962, nil, nil, nil, 1, nil, DBM_COMMON_L.TANK_ICON..DBM_COMMON_L.DAMAGE_ICON) -- this timer only works accurately when one of the hatchers has been killed. Otherwise it's getting delayed by 30 seconds each cycle.
local berserkTimer = mod:NewBerserkTimer(600)
function mod:OnCombatStart(delay)
timerAdds:Start(12-delay)
timerBombCD:Start(55-delay)
berserkTimer:Start(-delay)
end
function mod:SPELL_AURA_APPLIED(args)
if args.spellId == 97497 and args:IsPlayer() and self:AntiSpam() then
specWarnFlameBreath:Show()
specWarnFlameBreath:Play("runaway")
end
end
function mod:SPELL_CAST_START(args)
if args.spellId == 43140 then
warnFlameCast:Show() -- Seems he doesn't target the person :(
end
end
function mod:CHAT_MSG_MONSTER_YELL(msg)
if msg == L.YellAdds or msg:find(L.YellAdds) then
specWarnAdds:Show()
specWarnAdds:Play("mobsoon")
warnAddsSoon:Schedule(60)
timerAdds:Start()
elseif msg == L.YellBomb or msg:find(L.YellBomb) then
specWarnBomb:Show()
specWarnBomb:Play("watchstep")
timerBomb:Start()
timerBombCD:Start()
elseif msg == L.YellHatchAll or msg:find(L.YellHatchAll) then
warnHatchAll:Show()
if self.Options.SpecWarn43144spell then
specWarnHatchAll:Show()
specWarnHatchAll:Play("mobsoon")
else
warnHatchAll:Show()
end
end
end