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.
88 lines
2.7 KiB
88 lines
2.7 KiB
local mod = DBM:NewMod(184, "DBM-Party-Cataclysm", 11, 76)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod.statTypes = "heroic,timewalker"
|
|
|
|
mod:SetRevision("20240428124541")
|
|
mod:SetCreatureID(52053)
|
|
mod:SetEncounterID(1181)
|
|
mod:SetUsedIcons(8)
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_AURA_APPLIED 96338 96316 96916",
|
|
"SPELL_CAST_START 96914 96338 96342"
|
|
)
|
|
|
|
local warnZanzilElixir = mod:NewSpellAnnounce(96316, 4)
|
|
local warnZanzilFire = mod:NewSpellAnnounce(96914, 3)
|
|
local warnZanzilGas = mod:NewSpellAnnounce(96338, 3)
|
|
local warnGaze = mod:NewTargetNoFilterAnnounce(96342, 3)
|
|
|
|
local specWarnGaze = mod:NewSpecialWarningRun(96342, nil, nil, nil, 4, 2)
|
|
local specWarnToxic = mod:NewSpecialWarning("SpecWarnToxic", nil, nil, nil, 8, 2)
|
|
local specWarnFire = mod:NewSpecialWarningMove(96916, nil, nil, nil, 1, 8)
|
|
|
|
local timerZanzilGas = mod:NewBuffActiveTimer(7, 96338, nil, nil, nil, 2)
|
|
local timerGaze = mod:NewTargetTimer(17, 96342, nil, nil, nil, 3)
|
|
local timerZanzilElixir = mod:NewCDTimer(30, 96316, nil, nil, nil, 1)
|
|
|
|
mod:AddSetIconOption("SetIconOnGaze", 96342, false, 0, {8})
|
|
mod:AddBoolOption("InfoFrame", "Healer")--on by default for healers, so they know what numpties to heal through gas
|
|
|
|
local frameDebuff = DBM:GetSpellName(96328)
|
|
|
|
function mod:GazeTarget()
|
|
local targetname = self:GetBossTarget(52054)
|
|
if not targetname then return end
|
|
timerGaze:Start(targetname)
|
|
if self.Options.SetIconOnGaze then
|
|
self:SetIcon(targetname, 8, 17)
|
|
end
|
|
if targetname == UnitName("player") then
|
|
specWarnGaze:Show()
|
|
specWarnGaze:Play("justrun")
|
|
else
|
|
warnGaze:Show(targetname)
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatStart(delay)
|
|
if self.Options.InfoFrame then
|
|
DBM.InfoFrame:SetHeader(L.PlayerDebuffs)
|
|
DBM.InfoFrame:Show(5, "playergooddebuff", frameDebuff)
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatEnd()
|
|
if self.Options.InfoFrame then
|
|
DBM.InfoFrame:Hide()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if args.spellId == 96338 then
|
|
timerZanzilGas:Start()
|
|
elseif args.spellId == 96316 then
|
|
warnZanzilElixir:Show()
|
|
timerZanzilElixir:Start()
|
|
elseif args.spellId == 96916 and args:IsPlayer() and self:AntiSpam() then
|
|
specWarnFire:Show()
|
|
specWarnFire:Play("watchfeet")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
if args.spellId == 96914 then
|
|
warnZanzilFire:Show()
|
|
elseif args.spellId == 96338 then
|
|
warnZanzilGas:Show()
|
|
if not DBM:UnitDebuff("player", args.spellName) and not UnitIsDeadOrGhost("player") then
|
|
specWarnToxic:Show()
|
|
specWarnToxic:Play("useitem")
|
|
end
|
|
elseif args.spellId == 96342 and self:IsInCombat() then
|
|
self:ScheduleMethod(0.2, "GazeTarget")
|
|
end
|
|
end
|
|
|