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.
83 lines
3.0 KiB
83 lines
3.0 KiB
local mod = DBM:NewMod(887, "DBM-Party-WoD", 2, 385)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod.statTypes = "normal,heroic,mythic,challenge,timewalker"
|
|
|
|
mod:SetRevision("20220127091750")
|
|
mod:SetCreatureID(75786)
|
|
mod:SetEncounterID(1652)
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_CAST_START 153247 152940 152939",
|
|
"SPELL_AURA_APPLIED 153227",
|
|
"SPELL_PERIODIC_DAMAGE 153227",
|
|
"SPELL_ABSORBED 153227"
|
|
)
|
|
|
|
local warnHeatWave = mod:NewSpellAnnounce(152940, 3, nil, nil, nil, nil, nil, 2)
|
|
local warnBurningSlag = mod:NewSpellAnnounce(152939, 3)
|
|
local warnFieryBoulder = mod:NewCountAnnounce(153247, 4)
|
|
|
|
local specWarnFieryBoulder = mod:NewSpecialWarningCount(153247, nil, nil, 2, 2, 12)--Important to everyone
|
|
local specWarnBurningSlagFire = mod:NewSpecialWarningMove(152939, nil, nil, 2, 1, 8)
|
|
|
|
local timerFieryBoulderCD = mod:NewNextTimer(13.3, 153247, nil, nil, nil, 3)--13.3-13.4 Observed
|
|
local timerHeatWave = mod:NewBuffActiveTimer(9.5, 152940, nil, nil, nil, 2)
|
|
local timerHeatWaveCD = mod:NewNextTimer(9.5, 152940, nil, nil, nil, 2)--9.5-9.8 Observed
|
|
local timerBurningSlagCD = mod:NewNextTimer(10.7, 152939, nil, nil, nil, 3)--10.7-11 Observed
|
|
|
|
mod.vb.boulderCount = 0
|
|
mod.vb.burningSlagCast = false--More robust than using a really huge anti spam, because this will work with recovery, antispam won't
|
|
|
|
function mod:OnCombatStart(delay)
|
|
self.vb.boulderCount = 0
|
|
self.vb.burningSlagCast = false
|
|
timerFieryBoulderCD:Start(8-delay)
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 153247 then--Boulder
|
|
if self.vb.burningSlagCast then self.vb.burningSlagCast = false end
|
|
self.vb.boulderCount = self.vb.boulderCount + 1
|
|
if self.vb.boulderCount == 1 then
|
|
specWarnFieryBoulder:Show(self.vb.boulderCount)
|
|
specWarnFieryBoulder:Play("meteorrun")
|
|
else
|
|
warnFieryBoulder:Show(self.vb.boulderCount)
|
|
end
|
|
if self.vb.boulderCount == 3 then
|
|
timerHeatWaveCD:Start()
|
|
self.vb.boulderCount = 0
|
|
else
|
|
timerFieryBoulderCD:Start(3.5)--Not to be confused with cast timer, that's 3 seconds. The previous meteor WILL hit ground before next cast.
|
|
end
|
|
elseif spellId == 152940 then--Heat Wave
|
|
warnHeatWave:Show()
|
|
timerHeatWave:Start()
|
|
timerBurningSlagCD:Start()
|
|
warnHeatWave:Play("aesoon")
|
|
elseif spellId == 152939 and not self.vb.burningSlagCast then--Burning Slag
|
|
self.vb.burningSlagCast = true
|
|
warnBurningSlag:Show()
|
|
timerFieryBoulderCD:Start()
|
|
--warnBurningSlag:Play("firecircle") not proper voice. disable.
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if args.spellId == 153227 and args:IsPlayer() and self:AntiSpam(2, 1) then
|
|
specWarnBurningSlagFire:Show()
|
|
specWarnBurningSlagFire:Play("watchfeet")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId)
|
|
if spellId == 153227 and destGUID == UnitGUID("player") and self:AntiSpam(2, 1) then
|
|
specWarnBurningSlagFire:Show()
|
|
specWarnBurningSlagFire:Play("watchfeet")
|
|
end
|
|
end
|
|
mod.SPELL_ABSORBED = mod.SPELL_PERIODIC_DAMAGE
|
|
|