From d72b08157f4391299617602fd9ce53645b974828 Mon Sep 17 00:00:00 2001 From: Nick Towle Date: Sun, 3 Nov 2024 18:10:02 -0500 Subject: [PATCH] Classic/ZulFarrak/Velratha: Add boss module --- Classic/ZulFarrak/Options/Colors.lua | 4 ++ Classic/ZulFarrak/Options/Sounds.lua | 4 ++ Classic/ZulFarrak/Velratha.lua | 71 +++++++++++++++++++++++++--- 3 files changed, 73 insertions(+), 6 deletions(-) diff --git a/Classic/ZulFarrak/Options/Colors.lua b/Classic/ZulFarrak/Options/Colors.lua index b7fac6563..d13184713 100644 --- a/Classic/ZulFarrak/Options/Colors.lua +++ b/Classic/ZulFarrak/Options/Colors.lua @@ -6,6 +6,10 @@ BigWigs:AddColors("Antu'sul", { }) BigWigs:AddColors("Hydromancer Velratha", { + [12491] = "red", + [15245] = "orange", + [15982] = "red", + [78802] = "purple", }) BigWigs:AddColors("Witch Doctor Zum'rah", { diff --git a/Classic/ZulFarrak/Options/Sounds.lua b/Classic/ZulFarrak/Options/Sounds.lua index e3f956078..576f0b931 100644 --- a/Classic/ZulFarrak/Options/Sounds.lua +++ b/Classic/ZulFarrak/Options/Sounds.lua @@ -6,6 +6,10 @@ BigWigs:AddSounds("Antu'sul", { }) BigWigs:AddSounds("Hydromancer Velratha", { + [12491] = "alert", + [15245] = "alarm", + [15982] = "alert", + [78802] = "alarm", }) BigWigs:AddSounds("Witch Doctor Zum'rah", { diff --git a/Classic/ZulFarrak/Velratha.lua b/Classic/ZulFarrak/Velratha.lua index 86d8ac8be..0e9bb5df9 100644 --- a/Classic/ZulFarrak/Velratha.lua +++ b/Classic/ZulFarrak/Velratha.lua @@ -1,4 +1,3 @@ -if BigWigsLoader.isRetail and select(4, GetBuildInfo()) < 110005 then return end -- XXX remove when 11.0.5 is live -------------------------------------------------------------------------------- -- Module Declaration -- @@ -15,24 +14,84 @@ mod:SetEncounterID(593) function mod:GetOptions() return { + 15982, -- Healing Wave + 78802, -- Crashing Wave } end function mod:OnBossEnable() - if self:Retail() then - self:RegisterEvent("ENCOUNTER_START") -- XXX no boss frames + self:Log("SPELL_CAST_START", "HealingWave", 15982) + self:Log("SPELL_INTERRUPT", "HealingWaveInterrupt", 15982) + self:Log("SPELL_CAST_SUCCESS", "HealingWaveSuccess", 15982) + self:Log("SPELL_CAST_START", "CrashingWave", 78802) + if self:Heroic() then -- no encounter events in Timewalking + self:RegisterEvent("INSTANCE_ENCOUNTER_ENGAGE_UNIT", "CheckBossStatus") + self:Death("Win", 7795) end end function mod:OnEngage() + self:CDBar(78802, 8.5) -- Crashing Wave +end + +-------------------------------------------------------------------------------- +-- Vanilla Initialization +-- + +if mod:Vanilla() then + function mod:GetOptions() + return { + 12491, -- Healing Wave + 15245, -- Shadow Bolt Volley + } + end + + function mod:OnBossEnable() + self:Log("SPELL_CAST_START", "HealingWave", 12491) + self:Log("SPELL_CAST_START", "ShadowBoltVolley", 15245) + end + + function mod:OnEngage() + end end -------------------------------------------------------------------------------- -- Event Handlers -- -function mod:ENCOUNTER_START(_, id) -- XXX no boss frames - if id == self.engageId then - self:Engage() +function mod:HealingWave(args) + if self:MobId(args.sourceGUID) == 7795 then -- Hydromancer Velratha + -- on Retail this is only cast when the boss is below 50% health + self:Message(args.spellId, "red", CL.casting:format(args.spellName)) + self:PlaySound(args.spellId, "alert") + end +end + +function mod:HealingWaveInterrupt(args) + if self:MobId(args.destGUID) == 7795 then -- Hydromancer Velratha + self:CDBar(15982, 10.4) + end +end + +function mod:HealingWaveSuccess(args) + if self:MobId(args.sourceGUID) == 7795 then -- Hydromancer Velratha + self:CDBar(args.spellId, 10.4) + end +end + +function mod:CrashingWave(args) + self:Message(args.spellId, "purple") + self:CDBar(args.spellId, 8.5) + self:PlaySound(args.spellId, "alarm") +end + +-------------------------------------------------------------------------------- +-- Vanilla Event Handlers +-- + +function mod:ShadowBoltVolley(args) + if self:MobId(args.sourceGUID) == 7795 then -- Hydromancer Velratha + self:Message(args.spellId, "orange", CL.casting:format(args.spellName)) + self:PlaySound(args.spellId, "alarm") end end