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