-------------------------------------------------------------------------------- -- Module Declaration -- local mod, CL = BigWigs:NewBoss("Rygelon", 2481, 2467) if not mod then return end mod:RegisterEnableMob(182777) -- Rygelon mod:SetEncounterID(2549) mod:SetRespawnTime(30) -------------------------------------------------------------------------------- -- Locals -- local darkEclipseCount = 1 local celestialCollapseCount = 1 local manifestCosmosCount = 1 local celestialTerminatorCount = 1 local massiveBangCount = 1 local shatterSphereCount = 1 local stellarShroudCount = 1 local darkQuasarCount = 1 local singularityOnMe = false -------------------------------------------------------------------------------- -- Localization -- local L = mod:GetLocale() if L then end -------------------------------------------------------------------------------- -- Initialization -- local darkEclipseMarker = mod:AddMarkerOption(false, "player", 1, 361548, 1, 2, 3, 4) -- Dark Eclipse function mod:GetOptions() return { 361548, -- Dark Eclipse darkEclipseMarker, 362275, -- Celestial Collapse {362206, "SAY_COUNTDOWN"}, -- Event Horizon 362390, -- Manifest Cosmos {362184, "TANK"}, -- Corrupted Strikes {362172, "TANK"}, -- Corrupted Wound 363109, -- Celestial Terminator 363533, -- Massive Bang 366606, -- Radiant Plasma 362207, -- The Singularity 364114, -- Shatter Sphere -- Mythic {362088, "SAY"}, -- Cosmic Irregularity 366379, -- Stellar Shroud 362798, -- Cosmic Radiation 368080, -- Dark Quasar },{ [361548] = -24245, -- Rygelon [362088] = "mythic", } end function mod:OnBossEnable() self:Log("SPELL_CAST_SUCCESS", "DarkEclipse", 361548) self:Log("SPELL_AURA_APPLIED", "DarkEclipseApplied", 361548) self:Log("SPELL_AURA_REMOVED", "DarkEclipseRemoved", 361548) self:Log("SPELL_CAST_START", "CelestialCollapse", 362275) self:Log("SPELL_AURA_APPLIED", "EventHorizonApplied", 362206) self:Log("SPELL_AURA_REMOVED", "EventHorizonRemoved", 362206) self:Log("SPELL_CAST_START", "ManifestCosmos", 362390) self:Log("SPELL_CAST_START", "CorruptedStrikes", 362184) self:Log("SPELL_AURA_APPLIED", "CorruptedWoundApplied", 362172) self:Log("SPELL_CAST_SUCCESS", "CelestialTerminator", 363109) self:Log("SPELL_CAST_START", "MassiveBang", 363533) self:Log("SPELL_CAST_START", "RadiantPlasma", 366606) self:Log("SPELL_AURA_APPLIED", "TheSingularityApplied", 362207) self:Log("SPELL_AURA_REMOVED", "TheSingularityRemoved", 362207) self:Log("SPELL_CAST_START", "ShatterSphere", 364114) self:Log("SPELL_AURA_APPLIED", "GroundDamage", 362798) -- Cosmic Radiation self:Log("SPELL_PERIODIC_DAMAGE", "GroundDamage", 362798) self:Log("SPELL_PERIODIC_MISSED", "GroundDamage", 362798) -- Mythic self:Log("SPELL_AURA_APPLIED", "CosmicIrregularityApplied", 362088) self:Log("SPELL_AURA_APPLIED_DOSE", "CosmicIrregularityApplied", 362088) self:Log("SPELL_CAST_START", "StellarShroud", 366379) self:Log("SPELL_CAST_SUCCESS", "DarkQuasar", 368080) self:Log("SPELL_AURA_APPLIED", "DarkQuasarApplied", 368080) self:Log("SPELL_AURA_APPLIED_DOSE", "DarkQuasarApplied", 368080) end function mod:OnEngage() darkEclipseCount = 1 celestialCollapseCount = 1 manifestCosmosCount = 1 celestialTerminatorCount = 1 massiveBangCount = 1 stellarShroudCount = 1 darkQuasarCount = 1 --self:Bar(361548, 30, CL.count:format(self:SpellName(361548), darkEclipseCount)) -- Dark Eclipse --self:Bar(362275, 30, CL.count:format(self:SpellName(362275), celestialCollapseCount)) -- Celestial Collapse --self:Bar(362390, 30, CL.count:format(self:SpellName(362390), manifestCosmosCount)) -- Manifest Cosmos --self:Bar(363109, 30, CL.count:format(self:SpellName(363109), celestialTerminatorCount)) -- Celestial Terminator --self:Bar(363533, 30, CL.count:format(self:SpellName(363533), massiveBangCount)) -- Massive Bang if self:Mythic() then --self:Bar(366379, 30, CL.count:format(self:SpellName(366379), stellarShroudCount)) -- Stellar Shroud end end -------------------------------------------------------------------------------- -- Event Handlers -- do local playerList = {} function mod:DarkEclipse(args) playerList = {} darkEclipseCount = darkEclipseCount + 1 --self:Bar(args.spellId, 30, CL.count:format(args.spellName, darkEclipseCount)) end function mod:DarkEclipseApplied(args) local count = #playerList+1 playerList[count] = args.destName playerList[args.destName] = count -- Set raid marker if self:Me(args.destGUID) then self:PlaySound(args.spellId, "warning") end self:NewTargetsMessage(args.spellId, "cyan", playerList, nil, CL.count:format(args.spellName, darkEclipseCount-1)) self:CustomIcon(darkEclipseMarker, args.destName, count) end function mod:DarkEclipseRemoved(args) self:CustomIcon(darkEclipseMarker, args.destName, 0) end end function mod:CelestialCollapse(args) self:StopBar(CL.count:format(args.spellName, celestialCollapseCount)) self:Message(args.spellId, "yellow", CL.count:format(args.spellName, celestialCollapseCount)) self:PlaySound(args.spellId, "alert") celestialCollapseCount = celestialCollapseCount + 1 --self:Bar(args.spellId, 30, CL.count:format(args.spellName, celestialCollapseCount)) end function mod:EventHorizonApplied(args) if self:Me(args.destGUID) then self:Message(args.spellId, "green", CL.you:format(args.spellName)) self:PlaySound(args.spellId, "info") self:TargetBar(args.spellId, 9, args.destName) self:SayCountdown(args.spellId, 9) end end function mod:EventHorizonRemoved(args) if self:Me(args.destGUID) then self:CancelSayCountdown(args.spellId) end end function mod:ManifestCosmos(args) self:StopBar(CL.count:format(args.spellName, manifestCosmosCount)) self:Message(args.spellId, "yellow", CL.count:format(args.spellName, manifestCosmosCount)) self:PlaySound(args.spellId, "alert") manifestCosmosCount = manifestCosmosCount + 1 --self:Bar(args.spellId, 30, CL.count:format(args.spellName, manifestCosmosCount)) end function mod:CorruptedStrikes(args) self:StopBar(args.spellName) self:Message(args.spellId, "purple") self:PlaySound(args.spellId, "alert") --self:Bar(args.spellId, 14.5) end function mod:CorruptedWoundApplied(args) self:TargetMessage(args.spellId, "purple", args.destName) if not self:Me(args.destGUID) and not self:Tanking("boss1") then self:PlaySound(args.spellId, "warning") end end function mod:CelestialTerminator(args) self:StopBar(CL.count:format(args.spellName, celestialTerminatorCount)) self:Message(args.spellId, "yellow", CL.count:format(args.spellName, celestialTerminatorCount)) self:PlaySound(args.spellId, "alert") celestialTerminatorCount = celestialTerminatorCount + 1 --self:Bar(args.spellId, 30, CL.count:format(args.spellName, celestialTerminatorCount)) end do local singularityCheck, debuffName = nil, mod:SpellName(362207) local function checkForSingularity() if not singularityOnMe then mod:Message(362207, "blue", CL.no:format(debuffName)) mod:PlaySound(362207, "warning") singularityCheck = mod:ScheduleTimer(checkForSingularity, 1.5) end end function mod:MassiveBang(args) self:StopBar(CL.count:format(args.spellName, massiveBangCount)) self:Message(args.spellId, "yellow", CL.casting:format(CL.count:format(args.spellName, massiveBangCount))) self:PlaySound(args.spellId, "alert") self:CastBar(args.spellId, 10) massiveBangCount = massiveBangCount + 1 --self:Bar(args.spellId, 30, CL.count:format(args.spellName, massiveBangCount)) checkForSingularity() end function mod:MassiveBangSuccess(args) if singularityCheck then self:CancelTimer(singularityCheck) end end end function mod:RadiantPlasma(args) self:Message(args.spellId, "red") self:PlaySound(args.spellId, "alarm") end function mod:TheSingularityApplied(args) if self:Me(args.destGUID) then self:Message(args.spellId, "green", CL.you:format(args.spellName)) self:PlaySound(args.spellId, "info") singularityOnMe = true end end function mod:TheSingularityRemoved(args) if self:Me(args.destGUID) then singularityOnMe = false end end function mod:ShatterSphere(args) self:StopBar(CL.count:format(args.spellName, shatterSphereCount)) self:Message(args.spellId, "yellow", CL.count:format(args.spellName, shatterSphereCount)) self:PlaySound(args.spellId, "alert") shatterSphereCount = shatterSphereCount + 1 end do local prev = 0 function mod:GroundDamage(args) if self:Me(args.destGUID) then local t = args.time if t-prev > 2 then prev = t self:PlaySound(args.spellId, "underyou") self:PersonalMessage(args.spellId, "underyou") end end end end -- Mythic function mod:CosmicIrregularityApplied(args) if self:Me(args.destGUID) then local amount = args.amount or 1 self:NewStackMessage(args.spellId, "blue", args.destName, args.amount) self:PlaySound(args.spellId, "alarm") if amount > 3 then -- Yell: stack amount, extra emphasize on 6 self:Yell(args.spellId, amount == 6 and "{rt8} 6 {rt8}" or amount, true) end end end function mod:StellarShroud(args) self:StopBar(CL.count:format(args.spellName, stellarShroudCount)) self:Message(args.spellId, "orange", CL.count:format(args.spellName, stellarShroudCount)) self:PlaySound(args.spellId, "alert") stellarShroudCount = stellarShroudCount + 1 --self:Bar(args.spellId, 30, CL.count:format(args.spellName, stellarShroudCount)) end do local scheduled, destName, stacks = nil, nil, 0 function mod:DarkQuasarStackMessage() mod:NewStackMessage(368080, "yellow", destName, stacks) mod:PlaySound(368080, "alert") scheduled = nil end function mod:DarkQuasar(args) self:StopBar(CL.count:format(args.spellName, darkQuasarCount)) darkQuasarCount = darkQuasarCount + 1 --self:Bar(args.spellId, 30, CL.count:format(args.spellName, darkQuasarCount)) end function mod:DarkQuasarApplied(args) stacks = args.amount or 1 destName = args.destName if not scheduled then -- Delay message to only warn for highest stack scheduled = self:ScheduleTimer("DarkQuasarStackMessage", 0.1, args.destName) end end end