local mod = DBM:NewMod(1774, "DBM-BrokenIsles", 1, 822) local L = mod:GetLocalizedStrings() mod:SetRevision("20210905144823") mod:SetCreatureID(109331) mod:SetEncounterID(1952) mod:SetReCombatTime(20) mod:EnableWBEngageSync()--Enable syncing engage in outdoors mod:RegisterCombat("combat") mod:RegisterEventsInCombat( "SPELL_CAST_START 217966 217986 217893", "SPELL_CAST_SUCCESS 217877", "SPELL_AURA_APPLIED 217563 217877 217831 217834", "SPELL_AURA_REMOVED 217877", "SPELL_PERIODIC_DAMAGE 217907", "SPELL_PERIODIC_MISSED 217907", "UNIT_SPELLCAST_SUCCEEDED" ) --TODO, promote howling gale to special warn if it is at all threatening local warnAncientRageFire = mod:NewSpellAnnounce(217563, 2) local warnBurningBomb = mod:NewSpellAnnounce(217877, 3) local warnAncientRageFrost = mod:NewSpellAnnounce(217831, 2) local warnHowlingGale = mod:NewSpellAnnounce(217966, 2) local warnIcyComet = mod:NewSpellAnnounce(217925, 2) local warnAncientRageArcane = mod:NewSpellAnnounce(217834, 2) local specBurningBomb = mod:NewSpecialWarningYou(217877, nil, nil, nil, 1, 2)--You warning because you don't have to run out unless healer is afk. However still warn in case they are local specWrathfulFlames = mod:NewSpecialWarningDodge(217893, nil, nil, nil, 1, 2) local specWrathfulFlamesGTFO = mod:NewSpecialWarningMove(217907, nil, nil, nil, 1, 2) local specArcaneDesolation = mod:NewSpecialWarningSpell(217986, nil, nil, nil, 2, 2) local timerBurningBombCD = mod:NewCDTimer(13.4, 217877, nil, nil, nil, 3) local timerWrathfulFlamesCD = mod:NewCDTimer(13.4, 217907, nil, nil, nil, 2) local timerHowlingGaleCD = mod:NewCDTimer(13.8, 217966, nil, nil, nil, 2) local timerArcaneDesolationCD = mod:NewCDTimer(12.2, 217986, nil, nil, nil, 2) mod:AddReadyCheckOption(43193, false) mod:AddRangeFrameOption(10, 217877) mod.vb.specialCast = 0 function mod:OnCombatStart(delay, yellTriggered) self.vb.specialCast = 0 if yellTriggered then end end function mod:OnCombatEnd() if self.Options.RangeFrame then DBM.RangeCheck:Hide() end end function mod:SPELL_CAST_START(args) local spellId = args.spellId if spellId == 217966 then self.vb.specialCast = self.vb.specialCast + 1 warnHowlingGale:Show() if self.vb.specialCast == 1 then timerHowlingGaleCD:Start() end elseif spellId == 217986 then self.vb.specialCast = self.vb.specialCast + 1 specArcaneDesolation:Show() specArcaneDesolation:Play("carefly") if self.vb.specialCast == 1 then timerArcaneDesolationCD:Start() end elseif spellId == 217893 then specWrathfulFlames:Show() specWrathfulFlames:Play("watchstep") end end function mod:SPELL_CAST_SUCCESS(args) local spellId = args.spellId if spellId == 217877 then self.vb.specialCast = self.vb.specialCast + 1 if self.vb.specialCast == 1 then timerBurningBombCD:Start() end end end function mod:SPELL_AURA_APPLIED(args) local spellId = args.spellId if spellId == 217877 then warnBurningBomb:CombinedShow(0.3, args.destName) if args:IsPlayer() then specBurningBomb:Show() specBurningBomb:Play("targetyou") if self.Options.RangeFrame then DBM.RangeCheck:Show(10) end end end end function mod:SPELL_AURA_REMOVED(args) local spellId = args.spellId if spellId == 217877 then if args:IsPlayer() then if self.Options.RangeFrame then DBM.RangeCheck:Hide() end end end end function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId) if spellId == 217907 and destGUID == UnitGUID("player") and self:AntiSpam(2, 5) then specWrathfulFlamesGTFO:Show() specWrathfulFlamesGTFO:Play("runaway") end end mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) if spellId == 217563 and self:AntiSpam(4, 1) then---Fire Phase self.vb.specialCast = 0 warnAncientRageFire:Show() timerWrathfulFlamesCD:Start(7.4) elseif spellId == 217831 and self:AntiSpam(4, 2) then--Frost Phase self.vb.specialCast = 0 warnAncientRageFrost:Show() elseif spellId == 217834 and self:AntiSpam(4, 3) then--Arcane Phase self.vb.specialCast = 0 warnAncientRageArcane:Show() elseif spellId == 217919 and self:AntiSpam(4, 4) then--Icy Comet warnIcyComet:Show() end end