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.

85 lines
3.0 KiB

local mod = DBM:NewMod(1687, "DBM-Party-Legion", 5, 767)
local L = mod:GetLocalizedStrings()
mod:SetRevision("20220116042005")
mod:SetCreatureID(91007)
mod:SetEncounterID(1793)
mod:RegisterCombat("combat")
mod:RegisterEventsInCombat(
"SPELL_CAST_START 200732 200551 200637 200700 200404",
"SPELL_AURA_APPLIED 200154",
"CHAT_MSG_RAID_BOSS_EMOTE"
)
local warnCrystalSpikes = mod:NewSpellAnnounce(200551, 2)
local warnBurningHatred = mod:NewTargetAnnounce(200154, 2)
local specWarnMoltenCrash = mod:NewSpecialWarningDefensive(200732, "Tank", nil, nil, 3, 2)
local specWarnLandSlide = mod:NewSpecialWarningSpell(200700, "Tank", nil, nil, 1, 2)
local specWarnMagmaSculptor = mod:NewSpecialWarningSwitch(200637, "Dps", nil, nil, 1, 2)
local specWarnMagmaWave = mod:NewSpecialWarningMoveTo(200404, nil, nil, nil, 2, 2)
local specWarnBurningHatred = mod:NewSpecialWarningYou(200154, nil, nil, nil, 1, 2)
local timerMoltenCrashCD = mod:NewCDTimer(16.5, 200732, nil, "Tank", nil, 5, nil, DBM_COMMON_L.TANK_ICON, nil, 2, 3)--16.5-23
local timerLandSlideCD = mod:NewCDTimer(16.5, 200700, nil, "Tank", nil, 5, nil, DBM_COMMON_L.TANK_ICON)--16.5-27
local timerCrystalSpikesCD = mod:NewCDTimer(21.4, 200551, nil, nil, nil, 3)
local timerMagmaSculptorCD = mod:NewCDTimer(71, 200637, nil, nil, nil, 1)--Everyone?
local timerMagmaWaveCD = mod:NewCDTimer(60, 200404, nil, nil, nil, 2, nil, DBM_COMMON_L.DEADLY_ICON, nil, 1, 4)
local shelterName = DBM:GetSpellInfo(200551)
function mod:OnCombatStart(delay)
timerCrystalSpikesCD:Start(5.8-delay)
timerMagmaSculptorCD:Start(7.3-delay)
timerLandSlideCD:Start(15.5-delay)
timerMoltenCrashCD:Start(18.7-delay)
timerMagmaWaveCD:Start(65-delay)
end
function mod:SPELL_CAST_START(args)
local spellId = args.spellId
if spellId == 200732 then
specWarnMoltenCrash:Show()
specWarnMoltenCrash:Play("defensive")
timerMoltenCrashCD:Start()
elseif spellId == 200551 then
warnCrystalSpikes:Show()
timerCrystalSpikesCD:Start()
elseif spellId == 200637 then
specWarnMagmaSculptor:Show()
specWarnMagmaSculptor:Play("killbigmob")
timerMagmaSculptorCD:Start()
elseif spellId == 200700 then
specWarnLandSlide:Show()
specWarnLandSlide:Play("shockwave")
timerLandSlideCD:Start()
elseif spellId == 200404 and self:AntiSpam(3, 1) then
specWarnMagmaWave:Show(shelterName)
specWarnMagmaWave:Play("findshelter")
timerMagmaWaveCD:Start()
end
end
function mod:SPELL_AURA_APPLIED(args)
local spellId = args.spellId
if spellId == 200732 then
if args:IsPlayer() then
specWarnBurningHatred:Show()
specWarnBurningHatred:Play("targetyou")
else
warnBurningHatred:Show(args.destName)
end
end
end
--1 second faster than combat log. 1 second slower than Unit event callout but that's no longer reliable.
function mod:CHAT_MSG_RAID_BOSS_EMOTE(msg)
if msg:find("spell:200404") and self:AntiSpam(3, 1) then
specWarnMagmaWave:Show(shelterName)
specWarnMagmaWave:Play("findshelter")
timerMagmaWaveCD:Start()
end
end