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.
92 lines
2.9 KiB
92 lines
2.9 KiB
|
3 years ago
|
local mod = DBM:NewMod(1238, "DBM-Party-WoD", 4, 558)
|
||
|
|
local L = mod:GetLocalizedStrings()
|
||
|
|
|
||
|
|
mod.statTypes = "normal,heroic,mythic,challenge,timewalker"
|
||
|
|
mod.upgradedMPlus = true
|
||
|
|
|
||
|
|
mod:SetRevision("20220917014128")
|
||
|
|
mod:SetCreatureID(83612)
|
||
|
|
mod:SetEncounterID(1754)
|
||
|
|
|
||
|
|
mod:RegisterCombat("combat")
|
||
|
|
|
||
|
|
mod:RegisterEventsInCombat(
|
||
|
|
"SPELL_AURA_APPLIED 168398 181089",
|
||
|
|
"SPELL_CAST_START 168929 168227 169129",
|
||
|
|
"UNIT_DIED"
|
||
|
|
)
|
||
|
|
|
||
|
|
--[[
|
||
|
|
(ability.id = 168227 or ability.id = 168929 or ability.id = 169129) and type = "begincast"
|
||
|
|
or ability.id = 168398 and type = "applydebuff"
|
||
|
|
or ability.id = 181089
|
||
|
|
or type = "dungeonencounterstart" or type = "dungeonencounterend"
|
||
|
|
--]]
|
||
|
|
local warnRapidFire = mod:NewTargetNoFilterAnnounce(168398, 3)
|
||
|
|
local warnBackdraft = mod:NewCastAnnounce(169129, 4)
|
||
|
|
local warnCannonBarrageEnd = mod:NewEndAnnounce(168929, 1)
|
||
|
|
|
||
|
|
local specWarnRapidFire = mod:NewSpecialWarningMoveAway(168398, nil, nil, nil, 1, 2)
|
||
|
|
local yellRapidFire = mod:NewYell(168398)
|
||
|
|
local specWarnGronSmash = mod:NewSpecialWarningSpell(168227, nil, nil, nil, 2, 2)
|
||
|
|
local specWarnCannonBarrage = mod:NewSpecialWarningSpell(168929, nil, nil, nil, 3, 2)--Use the one time cast trigger instead of drycode when relogging
|
||
|
|
|
||
|
|
local timerRapidFireCD = mod:NewCDTimer(11.5, 168398, nil, nil, nil, 3)
|
||
|
|
local timerRapidFire = mod:NewTargetTimer(5, 168398, nil, "-Tank", nil, 5)
|
||
|
|
local timerGronSmashCD = mod:NewCDTimer(40.1, 168227, nil, nil, nil, 2)
|
||
|
|
local timerBackdraftCD = mod:NewCDTimer(13.3, 169129, nil, nil, nil, 3)
|
||
|
|
mod.vb.smashActive = false
|
||
|
|
|
||
|
|
function mod:OnCombatStart(delay)
|
||
|
|
self.vb.smashActive = false
|
||
|
|
timerGronSmashCD:Start(30-delay)
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:SPELL_AURA_APPLIED(args)
|
||
|
|
if args.spellId == 168398 then
|
||
|
|
timerRapidFire:Start(args.destName)
|
||
|
|
timerRapidFireCD:Start()
|
||
|
|
if args:IsPlayer() then
|
||
|
|
specWarnRapidFire:Show()
|
||
|
|
specWarnRapidFire:Play("runout")
|
||
|
|
yellRapidFire:Yell()
|
||
|
|
else
|
||
|
|
warnRapidFire:Show(args.destName)
|
||
|
|
end
|
||
|
|
elseif args.spellId == 181089 then--Encounter Event
|
||
|
|
self.vb.smashActive = false
|
||
|
|
warnCannonBarrageEnd:Show()
|
||
|
|
timerBackdraftCD:Stop()
|
||
|
|
timerGronSmashCD:Start(40.1)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:SPELL_CAST_START(args)
|
||
|
|
local spellId = args.spellId
|
||
|
|
if spellId == 168227 then
|
||
|
|
timerRapidFireCD:Stop()
|
||
|
|
specWarnGronSmash:Show()
|
||
|
|
specWarnGronSmash:Play("carefly")
|
||
|
|
if self:IsHard() then
|
||
|
|
timerBackdraftCD:Start(13.3)
|
||
|
|
end
|
||
|
|
self.vb.smashActive = true
|
||
|
|
elseif spellId == 168929 then
|
||
|
|
specWarnCannonBarrage:Show()
|
||
|
|
specWarnCannonBarrage:Play("findshelter")
|
||
|
|
elseif spellId == 169129 then
|
||
|
|
warnBackdraft:Show()
|
||
|
|
if self.vb.smashActive then--Only start timer if smash active, sometimes it can go off on transition but it won't be cast again
|
||
|
|
timerBackdraftCD:Start(6.5)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:UNIT_DIED(args)
|
||
|
|
local cid = self:GetCIDFromGUID(args.destGUID)
|
||
|
|
if cid == 83613 then
|
||
|
|
timerRapidFireCD:Cancel()
|
||
|
|
timerRapidFire:Cancel()
|
||
|
|
end
|
||
|
|
end
|