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

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