local mod = DBM:NewMod(1696, "DBM-Party-Legion", 9, 777) local L = mod:GetLocalizedStrings() mod.statTypes = "normal,heroic,mythic" mod:SetRevision("20240106080507") mod:SetCreatureID(102246) mod:SetEncounterID(1852) mod:RegisterCombat("combat") mod:RegisterEventsInCombat( "SPELL_AURA_APPLIED 202480", "SPELL_CAST_START 202217 202341 201863", "SPELL_PERIODIC_DAMAGE 202485", "SPELL_PERIODIC_MISSED 202485" ) --TODO, if fixate poses a probelm on difficulties higher than heroic add a special warning. --TODO, swarmCD local warnImpale = mod:NewTargetAnnounce(202341, 4) local warnSwarm = mod:NewSpellAnnounce(201863, 2) local warnFixate = mod:NewTargetAnnounce(202480, 3) local specWarnMandibleStrike = mod:NewSpecialWarningDefensive(202217, nil, nil, nil, 1, 2) local specWarnImpale = mod:NewSpecialWarningMoveAway(202341, nil, nil, nil, 1, 2) local yellImpale = mod:NewYell(202341) local specWarnOozeGTFO = mod:NewSpecialWarningMove(202485, nil, nil, nil, 1, 2) local timerMandibleStrikeCD = mod:NewCDTimer(22.8, 202217, nil, "Tank", nil, 5, nil, DBM_COMMON_L.TANK_ICON)--22-30 local timerImpaleCD = mod:NewCDTimer(22.8, 202341, nil, nil, nil, 3) local timerSwarmCD = mod:NewCDTimer(22.8, 201863, nil, nil, nil, 1) local timerFixateCD = mod:NewCDTimer(15.5, 202480, nil, nil, nil, 3, nil, DBM_COMMON_L.HEROIC_ICON) local bugsSeen = {} function mod:ImpaleTarget(targetname, uId) if not targetname then return end if targetname == UnitName("player") then specWarnImpale:Show() specWarnImpale:Play("runout") yellImpale:Yell() else warnImpale:Show(targetname) end end function mod:OnCombatStart(delay) table.wipe(bugsSeen) timerMandibleStrikeCD:Start(8.9-delay) timerImpaleCD:Start(18.5-delay) timerSwarmCD:Start(30-delay) if not self:IsNormal() then timerFixateCD:Start(35.5-delay) end end function mod:SPELL_CAST_START(args) local spellId = args.spellId if spellId == 202217 then if self:IsTanking("player", "boss1", nil, true) then specWarnMandibleStrike:Show() specWarnMandibleStrike:Play("defensive") end timerMandibleStrikeCD:Start() elseif spellId == 202341 then self:BossUnitTargetScanner("boss1", "ImpaleTarget", 3.4) timerImpaleCD:Start() elseif spellId == 201863 then warnSwarm:Show() -- timerSwarmCD:Start() end end function mod:SPELL_AURA_APPLIED(args) local spellId = args.spellId if spellId == 202480 then warnFixate:Show(args.destName) if not bugsSeen[args.sourceGUID] then bugsSeen[args.sourceGUID] = true timerFixateCD:Start() end end end function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId) if spellId == 202485 and destGUID == UnitGUID("player") and self:AntiSpam(2, 1) then specWarnOozeGTFO:Show() specWarnMandibleStrike:Play("runaway") end end mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE