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.
114 lines
4.2 KiB
114 lines
4.2 KiB
local mod = DBM:NewMod(893, "DBM-Party-WoD", 2, 385)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod.statTypes = "normal,heroic,mythic,challenge,timewalker"
|
|
|
|
mod:SetRevision("20230708234551")
|
|
mod:SetCreatureID(74366, 74475)--74366 Forgemaster Gog'duh, 74475 Magmolatus
|
|
mod:SetEncounterID(1655)
|
|
mod:SetMainBossID(74475)
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_AURA_APPLIED 149997 149975 150032",
|
|
"SPELL_CAST_START 149941 150038 150023",
|
|
"SPELL_PERIODIC_DAMAGE 150011",
|
|
"SPELL_ABSORBED 150011"
|
|
)
|
|
|
|
local warnDancingFlames = mod:NewTargetNoFilterAnnounce(149975, 3, nil, "Healer")
|
|
local warnMoltenImpact = mod:NewSpellAnnounce(150038, 3)
|
|
|
|
local specWarnMagmaBarrage = mod:NewSpecialWarningGTFO(150011, nil, nil, nil, 1, 8)
|
|
local specWarnRoughSmash = mod:NewSpecialWarningDodge(149941, "Melee", nil, nil, 4, 2)
|
|
local specWarnRuination = mod:NewSpecialWarningSwitch(-8622, "-Healer", nil, nil, 1, 2)
|
|
local specWarnCalamity = mod:NewSpecialWarningSwitch(-8626, "-Healer", nil, nil, 1, 2)
|
|
local specWarnFirestorm = mod:NewSpecialWarningInterrupt(149997, "HasInterrupt", nil, 2, 1, 2)
|
|
local specWarnDancingFlames = mod:NewSpecialWarningDispel(149975, "RemoveMagic", nil, nil, 1, 2)
|
|
local specWarnMagmolatus = mod:NewSpecialWarningSwitch(-8621, nil, nil, 2, 1, 2)--Dps can turn this on too I suppose but 5 seconds after boss spawns they are switching to add anyways, so this is mainly for tank to pick it up
|
|
local specWarnSlagSmash = mod:NewSpecialWarningDodge(150023, "Melee", nil, nil, 4, 2)
|
|
local specWarnWitheringFlames = mod:NewSpecialWarningDispel(150032, "RemoveMagic", nil, nil, 1, 2)
|
|
|
|
local timerMoltenImpactCD = mod:NewNextTimer(21.5, 150038, nil, nil, nil, 1)
|
|
|
|
local activeAddGUIDS = {}
|
|
|
|
function mod:OnCombatStart(delay)
|
|
table.wipe(activeAddGUIDS)
|
|
self:RegisterShortTermEvents(
|
|
"INSTANCE_ENCOUNTER_ENGAGE_UNIT"
|
|
)
|
|
end
|
|
|
|
function mod:OnCombatEnd()
|
|
table.wipe(activeAddGUIDS)
|
|
self:UnregisterShortTermEvents()
|
|
end
|
|
|
|
function mod:INSTANCE_ENCOUNTER_ENGAGE_UNIT()
|
|
for i = 1, 5 do
|
|
local unitID = "boss"..i
|
|
local unitGUID = UnitGUID(unitID)
|
|
local cid = self:GetCIDFromGUID(unitGUID)
|
|
if UnitExists(unitID) and not activeAddGUIDS[unitGUID] then
|
|
activeAddGUIDS[unitGUID] = true
|
|
--Ruination#Creature:0:3314:1175:11531:74570
|
|
if cid == 74570 then--Ruination
|
|
specWarnRuination:Show()
|
|
specWarnRuination:Play("mobsoon")
|
|
elseif cid == 74571 then--Calamity
|
|
specWarnCalamity:Show()
|
|
specWarnCalamity:Play("mobsoon")
|
|
elseif cid == 74475 then--Magmolatus
|
|
specWarnMagmolatus:Show()
|
|
specWarnMagmolatus:Play("bigmob")
|
|
timerMoltenImpactCD:Start(5)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 149997 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnFirestorm:Show(args.sourceName)
|
|
if self:IsTank() then
|
|
specWarnFirestorm:Play("kickcast")
|
|
else
|
|
specWarnFirestorm:Play("helpkick")
|
|
end
|
|
elseif spellId == 149975 then
|
|
if self:CheckDispelFilter("magic") then--only show once. (prevent loud sound)
|
|
specWarnDancingFlames:CombinedShow(0.3, args.destName)
|
|
specWarnDancingFlames:ScheduleVoice(0.3, "dispelnow")
|
|
else
|
|
warnDancingFlames:CombinedShow(0.3, args.destName)--heroic is 2 targets so combined.
|
|
end
|
|
elseif spellId == 150032 and self:CheckDispelFilter("magic") then
|
|
specWarnWitheringFlames:Show(args.destName)
|
|
specWarnWitheringFlames:Play("dispelnow")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 149941 then
|
|
specWarnRoughSmash:Show()
|
|
specWarnRoughSmash:Play("justrun")
|
|
elseif spellId == 150038 then
|
|
warnMoltenImpact:Show()
|
|
timerMoltenImpactCD:Start()
|
|
elseif spellId == 150023 then
|
|
specWarnSlagSmash:Show()
|
|
specWarnSlagSmash:Play("justrun")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName)
|
|
if spellId == 150011 and destGUID == UnitGUID("player") and self:AntiSpam(2, 1) then--need to check spell ids again
|
|
specWarnMagmaBarrage:Show(spellName)
|
|
specWarnMagmaBarrage:Play("watchfeet")
|
|
end
|
|
end
|
|
mod.SPELL_ABSORBED = mod.SPELL_PERIODIC_DAMAGE
|
|
|