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.
136 lines
4.1 KiB
136 lines
4.1 KiB
local mod = DBM:NewMod(1774, "DBM-BrokenIsles", 1, 822)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20201111164513")
|
|
mod:SetCreatureID(109331)
|
|
mod:SetEncounterID(1952)
|
|
mod:SetReCombatTime(20)
|
|
|
|
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, _, bfaSpellId, _, legacySpellId)
|
|
local spellId = legacySpellId or bfaSpellId
|
|
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
|
|
|