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
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
|
|
|