|
|
|
|
local mod = DBM:NewMod(2517, "DBM-DragonIsles", nil, 1205)
|
|
|
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
|
|
|
|
|
|
mod:SetRevision("20230106004352")
|
|
|
|
|
mod:SetCreatureID(193532)
|
|
|
|
|
mod:SetEncounterID(2653)
|
|
|
|
|
mod:SetReCombatTime(20)
|
|
|
|
|
mod:EnableWBEngageSync()--Enable syncing engage in outdoors
|
|
|
|
|
--mod:SetMinSyncRevision(11969)
|
|
|
|
|
|
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
|
--mod:RegisterCombat("combat_yell", L.Pull)
|
|
|
|
|
|
|
|
|
|
mod:RegisterEventsInCombat(
|
|
|
|
|
"SPELL_CAST_START 389431 389725 389514 391247",
|
|
|
|
|
"SPELL_CAST_SUCCESS 390635"
|
|
|
|
|
-- "SPELL_AURA_APPLIED",
|
|
|
|
|
-- "SPELL_AURA_APPLIED_DOSE",
|
|
|
|
|
-- "SPELL_AURA_REMOVED",
|
|
|
|
|
-- "SPELL_PERIODIC_DAMAGE",
|
|
|
|
|
-- "SPELL_PERIODIC_MISSED"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
--TODO, magma eruption targets? could not find a debuff ID, it might use emote/whisper
|
|
|
|
|
--TODO, does he return to P1 after a while of infusion?
|
|
|
|
|
--TODO, likely fix rain event
|
|
|
|
|
--Phase One
|
|
|
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(25874))
|
|
|
|
|
local warnMagmaEruption = mod:NewSpellAnnounce(389725, 2)
|
|
|
|
|
--local warnDarkDeterrence = mod:NewStackAnnounce(361390, 2, nil, "Tank|Healer")
|
|
|
|
|
|
|
|
|
|
local specWarnDeterringFlame = mod:NewSpecialWarningSpell(389431, nil, nil, nil, 2, 2)
|
|
|
|
|
local specWarnLavaBreath = mod:NewSpecialWarningDodge(389514, nil, nil, nil, 2, 2)
|
|
|
|
|
|
|
|
|
|
local timerDeterringFlameCD = mod:NewAITimer(74.7, 389431, nil, nil, nil, 2)
|
|
|
|
|
local timerMagmaEruptionCD = mod:NewAITimer(53.4, 389725, nil, nil, nil, 3)
|
|
|
|
|
local timerLavaBreathCD = mod:NewAITimer(43.1, 389514, nil, nil, nil, 3, nil, DBM_COMMON_L.DEADLY_ICON)
|
|
|
|
|
--local timerDeterrentStrikeCD = mod:NewAITimer(9.7, 361387, nil, nil, nil, 5, nil, DBM_COMMON_L.TANK_ICON)
|
|
|
|
|
--Phase Two
|
|
|
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(25878))
|
|
|
|
|
local warnFlameInfusion = mod:NewCastAnnounce(391247, 2)
|
|
|
|
|
|
|
|
|
|
local specWarnRainofDestruction = mod:NewSpecialWarningSpell(390635, nil, nil, nil, 2, 2)
|
|
|
|
|
|
|
|
|
|
local timerRainofDestructionCD = mod:NewAITimer(74.7, 390635, nil, nil, nil, 2)
|
|
|
|
|
|
|
|
|
|
--mod:AddRangeFrameOption(5, 361632)
|
|
|
|
|
|
|
|
|
|
function mod:OnCombatStart(delay, yellTriggered)
|
|
|
|
|
self:SetStage(1)
|
|
|
|
|
-- if yellTriggered then
|
|
|
|
|
--timerDeterringFlameCD:Start(1)
|
|
|
|
|
--timerMagmaEruptionCD:Start(1)
|
|
|
|
|
--timerLavaBreathCD:Start(1)
|
|
|
|
|
-- end
|
|
|
|
|
-- if self.Options.RangeFrame then
|
|
|
|
|
-- DBM.RangeCheck:Hide()
|
|
|
|
|
-- end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--function mod:OnCombatEnd()
|
|
|
|
|
-- if self.Options.InfoFrame then
|
|
|
|
|
-- DBM.InfoFrame:Hide()
|
|
|
|
|
-- end
|
|
|
|
|
--end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
|
|
|
local spellId = args.spellId
|
|
|
|
|
if spellId == 389431 then
|
|
|
|
|
specWarnDeterringFlame:Show()
|
|
|
|
|
specWarnDeterringFlame:Play("carefly")
|
|
|
|
|
timerDeterringFlameCD:Start()
|
|
|
|
|
elseif spellId == 389725 then
|
|
|
|
|
warnMagmaEruption:Show()
|
|
|
|
|
timerMagmaEruptionCD:Start()
|
|
|
|
|
elseif spellId == 389514 then
|
|
|
|
|
specWarnLavaBreath:Show()
|
|
|
|
|
specWarnLavaBreath:Play("breathsoon")
|
|
|
|
|
timerLavaBreathCD:Start()
|
|
|
|
|
elseif spellId == 391247 then
|
|
|
|
|
self:SetStage(2)
|
|
|
|
|
warnFlameInfusion:Show()
|
|
|
|
|
timerDeterringFlameCD:Stop()
|
|
|
|
|
timerMagmaEruptionCD:Stop()
|
|
|
|
|
timerLavaBreathCD:Stop()
|
|
|
|
|
--P2 timer start
|
|
|
|
|
timerMagmaEruptionCD:Start(2)
|
|
|
|
|
timerLavaBreathCD:Start(2)
|
|
|
|
|
timerRainofDestructionCD:Start(2)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
|
|
|
local spellId = args.spellId
|
|
|
|
|
if spellId == 390635 then
|
|
|
|
|
specWarnRainofDestruction:Show()
|
|
|
|
|
specWarnRainofDestruction:Play("specialsoon")
|
|
|
|
|
timerRainofDestructionCD:Start()
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--[[
|
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
|
|
|
local spellId = args.spellId
|
|
|
|
|
if spellId == 361632 then
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
|
|
|
|
|
|
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
|
|
|
local spellId = args.spellId
|
|
|
|
|
if spellId == 361632 then
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName)
|
|
|
|
|
if spellId == 361335 and destGUID == UnitGUID("player") and self:AntiSpam(2, 4) then
|
|
|
|
|
specWarnGTFO:Show(spellName)
|
|
|
|
|
specWarnGTFO:Play("watchfeet")
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE
|
|
|
|
|
--]]
|