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