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.

305 lines
10 KiB

4 years ago
--------------------------------------------------------------------------------
-- Module Declaration
--
local mod, CL = BigWigs:NewBoss("Rygelon", 2481, 2467)
if not mod then return end
4 years ago
mod:RegisterEnableMob(182777) -- Rygelon
4 years ago
mod:SetEncounterID(2549)
mod:SetRespawnTime(30)
--------------------------------------------------------------------------------
-- Locals
--
4 years ago
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
4 years ago
--------------------------------------------------------------------------------
-- Localization
--
local L = mod:GetLocale()
if L then
end
--------------------------------------------------------------------------------
-- Initialization
--
4 years ago
local darkEclipseMarker = mod:AddMarkerOption(false, "player", 1, 361548, 1, 2, 3, 4) -- Dark Eclipse
4 years ago
function mod:GetOptions()
return {
4 years ago
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",
4 years ago
}
end
function mod:OnBossEnable()
4 years ago
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)
4 years ago
end
function mod:OnEngage()
4 years ago
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
4 years ago
end
--------------------------------------------------------------------------------
-- Event Handlers
--
4 years ago
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