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.

101 lines
3.3 KiB

local mod = DBM:NewMod(1229, "DBM-Party-WoD", 8, 559)
local L = mod:GetLocalizedStrings()
mod:SetRevision("20200806142123")
mod:SetCreatureID(76585)
mod:SetEncounterID(1760)
mod:RegisterCombat("combat")
mod:RegisterEventsInCombat(
"SPELL_AURA_APPLIED 155620 167203",
"SPELL_AURA_APPLIED_DOSE 155620",
"SPELL_AURA_REMOVED 167203",
"SPELL_DAMAGE 155051",
"SPELL_MISSED 155051",
"SPELL_PERIODIC_DAMAGE 155057",
"SPELL_ABSORBED 155057",
"UNIT_SPELLCAST_SUCCEEDED boss1"
)
local warnBurningRage = mod:NewStackAnnounce(155620, 3, nil, "RemoveEnrage|Tank")
local warnSwirlingWinds = mod:NewSpellAnnounce(167203, 2)
local warnMagmaSpit = mod:NewTargetNoFilterAnnounce(155051, 3)
local specWarnBurningRage = mod:NewSpecialWarningDispel(155620, "RemoveEnrage", nil, nil, 1, 2)
local specWarnMagmaSpit = mod:NewSpecialWarningMove(155051, nil, nil, nil, 1, 8)
local specWarnMagmaSpitYou = mod:NewSpecialWarningYou(155051, nil, nil, nil, 1, 2)
local yellMagmaSpit = mod:NewYell(155051)
local specWarnMagmaPool = mod:NewSpecialWarningMove(155057, nil, nil, nil, 1, 8)
local specWarnEngulfingFire = mod:NewSpecialWarningDodge(154996, nil, nil, nil, 3, 2)
local timerEngulfingFireCD = mod:NewCDTimer(24, 154996, nil, nil, nil, 3)
local timerSwirlingWinds = mod:NewBuffActiveTimer(20, 167203, nil, nil, nil, 6)
mod.vb.firstBreath = false
function mod:MagmaSpitTarget(targetname, uId)
if not targetname then return end
if targetname == UnitName("player") then
specWarnMagmaSpitYou:Show()
specWarnMagmaSpitYou:Play("targetyou")
yellMagmaSpit:Yell()
else
warnMagmaSpit:Show(targetname)
end
end
function mod:OnCombatStart(delay)
timerEngulfingFireCD:Start(15-delay)--Needs more data
self.vb.firstBreath = false
end
function mod:SPELL_AURA_APPLIED(args)
local spellId = args.spellId
if spellId == 155620 then
warnBurningRage:Show(args.destName, args.amount or 1)
specWarnBurningRage:Show(args.destName)
specWarnBurningRage:Play("enrage")
elseif spellId == 167203 then
warnSwirlingWinds:Show()
timerSwirlingWinds:Start()
timerEngulfingFireCD:Cancel()
end
end
mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
function mod:SPELL_AURA_REMOVED(args)
if args.spellId == 167203 then
self.vb.firstBreath = false
end
end
function mod:SPELL_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId)
if spellId == 155051 and destGUID == UnitGUID("player") and self:AntiSpam(3, 1) then--Goriona's Void zones
specWarnMagmaSpit:Show()
specWarnMagmaSpit:Play("watchfeet")
end
end
mod.SPELL_MISSED = mod.SPELL_DAMAGE
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId)
if spellId == 155057 and destGUID == UnitGUID("player") and self:AntiSpam(3, 1) then--Goriona's Void zones
specWarnMagmaPool:Show()
specWarnMagmaPool:Play("watchfeet")
end
end
mod.SPELL_ABSORBED = mod.SPELL_PERIODIC_DAMAGE
--This boss actually does fire IEEU so boss1 works
function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId)
if spellId == 154996 then
specWarnEngulfingFire:Show()
specWarnEngulfingFire:Play("breathsoon")
if not self.vb.firstBreath then
self.vb.firstBreath = true
timerEngulfingFireCD:Start()
end
elseif spellId == 155050 then
self:BossTargetScanner(76585, "MagmaSpitTarget", 0.05, 10)
end
end