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.
110 lines
2.9 KiB
110 lines
2.9 KiB
|
|
--------------------------------------------------------------------------------
|
|
-- Module Declaration
|
|
--
|
|
|
|
local mod, CL = BigWigs:NewBoss("Opera Hall: Westfall Story", 1651, 1826)
|
|
if not mod then return end
|
|
mod:RegisterEnableMob(114261, 114260) -- Toe Knee, Mrrgria
|
|
--mod.engageId = 1957 -- Same for every opera event. So it's basically useless.
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Locals
|
|
--
|
|
|
|
local phase = 1
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Initialization
|
|
--
|
|
|
|
function mod:GetOptions()
|
|
return {
|
|
"stages",
|
|
227568, -- Burning Leg Sweep
|
|
{227777, "PROXIMITY"}, -- Thunder Ritual
|
|
227783, -- Wash Away
|
|
}
|
|
end
|
|
|
|
function mod:OnBossEnable()
|
|
self:RegisterEvent("INSTANCE_ENCOUNTER_ENGAGE_UNIT", "CheckBossStatus")
|
|
self:Log("SPELL_CAST_START", "BurningLegSweep", 227568)
|
|
self:Log("SPELL_CAST_START", "ThunderRitual", 227777)
|
|
self:Log("SPELL_AURA_APPLIED", "ThunderRitualApplied", 227777)
|
|
self:Log("SPELL_AURA_REMOVED", "ThunderRitualRemoved", 227777)
|
|
self:Log("SPELL_CAST_START", "WashAway", 227783)
|
|
|
|
self:RegisterEvent("BOSS_KILL")
|
|
end
|
|
|
|
function mod:OnEngage()
|
|
phase = 1
|
|
self:Bar(227568, 8.5) -- Burning Leg Sweep
|
|
self:RegisterEvent("INSTANCE_ENCOUNTER_ENGAGE_UNIT")
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Event Handlers
|
|
--
|
|
|
|
function mod:INSTANCE_ENCOUNTER_ENGAGE_UNIT()
|
|
local foundMrrgria, foundToeKnee = nil, nil
|
|
for i = 1, 5 do
|
|
local guid = self:UnitGUID(("boss%d"):format(i))
|
|
if guid then
|
|
local mobId = self:MobId(guid)
|
|
if mobId == 114260 then -- Mrrgria
|
|
foundMrrgria = true
|
|
elseif mobId == 114261 then -- Toe Knee
|
|
foundToeKnee = true
|
|
end
|
|
end
|
|
end
|
|
|
|
if foundMrrgria and phase == 1 then -- Mrrgria
|
|
phase = 2
|
|
self:MessageOld("stages", "cyan", "long", CL.stage:format(2), false)
|
|
self:StopBar(227568) -- Burning Leg Sweep
|
|
self:Bar(227777, 8.5) -- Thunder Ritual
|
|
self:Bar(227783, 15.5) -- Wash Away
|
|
elseif foundToeKnee and phase == 2 then -- Toe Knee
|
|
phase = 3
|
|
self:MessageOld("stages", "cyan", "long", CL.stage:format(3), false)
|
|
self:Bar(227568, 8) -- Burning Leg Sweep
|
|
end
|
|
end
|
|
|
|
function mod:BurningLegSweep(args)
|
|
self:MessageOld(args.spellId, "yellow", "alarm")
|
|
self:CDBar(args.spellId, 19)
|
|
end
|
|
|
|
function mod:ThunderRitual(args)
|
|
self:MessageOld(args.spellId, "red", "warning")
|
|
self:Bar(args.spellId, 17)
|
|
end
|
|
|
|
function mod:ThunderRitualApplied(args)
|
|
if self:Me(args.destGUID) then
|
|
self:OpenProximity(args.spellId, 5)
|
|
self:TargetBar(args.spellId, 5, args.destName)
|
|
end
|
|
end
|
|
|
|
function mod:ThunderRitualRemoved(args)
|
|
if self:Me(args.destGUID) then
|
|
self:CloseProximity(args.spellId)
|
|
end
|
|
end
|
|
|
|
function mod:WashAway(args)
|
|
self:MessageOld(args.spellId, "orange", "info")
|
|
self:Bar(args.spellId, 23)
|
|
end
|
|
|
|
function mod:BOSS_KILL(_, id)
|
|
if id == 1957 then
|
|
self:Win()
|
|
end
|
|
end
|
|
|