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.

91 lines
2.4 KiB

local mod = DBM:NewMod("JulakDoom", "DBM-Party-Cataclysm", 15)
local L = mod:GetLocalizedStrings()
mod.statTypes = "normal,timewalker"
mod:SetRevision("20210721041639")
mod:SetCreatureID(50089)
mod:SetModelID(24301)
mod:SetUsedIcons(8, 7)
mod:EnableWBEngageSync()--Enable syncing engage in outdoors
mod:RegisterCombat("combat")
mod:RegisterEventsInCombat(
"SPELL_CAST_START 93610",
"SPELL_AURA_APPLIED 93621",
"SPELL_AURA_REMOVED 93621",
"SPELL_DAMAGE 93612",
"SPELL_MISSED 93612"
)
local warnShockwave = mod:NewCastAnnounce(93610, 3)
local warnMC = mod:NewTargetNoFilterAnnounce(93621, 4)
local specWarnShockwave = mod:NewSpecialWarningDodge(93610, "Tank", nil, nil, 1, 2)
local specWarnBreath = mod:NewSpecialWarningMove(93612, nil, nil, nil, 1, 8)
local timerShockwaveCD = mod:NewNextTimer(28.5, 93610, nil, nil, nil, 3)
local timerMCCD = mod:NewNextTimer(40, 93621, nil, nil, nil, 3)
mod:AddSetIconOption("SetIconOnMC", 93621, true, false, {8, 7})
local warnMCTargets = {}
mod.vb.mcIcon = 8
function mod:OnCombatStart(delay)
table.wipe(warnMCTargets)
self.vb.mcIcon = 8
timerShockwaveCD:Start(10-delay)
timerMCCD:Start(-delay)
end
local function showMC(self)
warnMC:Show(table.concat(warnMCTargets, "<, >"))
table.wipe(warnMCTargets)
self.vb.mcIcon = 8
end
function mod:SPELL_CAST_START(args)
if args.spellId == 93610 then
if self.Options.SpecWarn93610dodge then
specWarnShockwave:Show()
specWarnShockwave:Play("shockwave")
else
warnShockwave:Show()
end
timerShockwaveCD:Start()
end
end
function mod:SPELL_AURA_APPLIED(args)
if args.spellId == 93621 then
warnMCTargets[#warnMCTargets + 1] = args.destName
timerMCCD:Start()
if self.Options.SetIconOnMC then
self:SetIcon(args.destName, self.vb.mcIcon)
end
self.vb.mcIcon = self.vb.mcIcon - 1
self:Unschedule(showMC)
if #warnMCTargets >= 2 then
showMC(self)
else
self:Schedule(0.9, showMC, self)
end
end
end
function mod:SPELL_AURA_REMOVED(args)
if args.spellId == 93621 and self.Options.SetIconOnMC then
self:SetIcon(args.destName, 0)
end
end
function mod:SPELL_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId)
if spellId == 93612 and destGUID == UnitGUID("player") and self:AntiSpam(3) then
specWarnBreath:Show()
specWarnBreath:Play("watchfeet")
end
end
mod.SPELL_MISSED = mod.SPELL_DAMAGE