From a5ca4ed3e24527d550504d51fed8a571b3601cd8 Mon Sep 17 00:00:00 2001 From: Nick Towle Date: Fri, 11 Oct 2024 05:57:13 -0400 Subject: [PATCH] Delves/Trash: Zekvir random spawn event, Zekvir's Influence (#1166) --- Delves/Trash/Fungarian.lua | 6 +++ Delves/Trash/Kobold.lua | 6 +++ Delves/Trash/Kobyss.lua | 6 +++ Delves/Trash/Locales/deDE.lua | 6 ++- Delves/Trash/Locales/esES.lua | 6 ++- Delves/Trash/Locales/frFR.lua | 6 ++- Delves/Trash/Locales/itIT.lua | 6 ++- Delves/Trash/Locales/koKR.lua | 6 ++- Delves/Trash/Locales/ptBR.lua | 6 ++- Delves/Trash/Locales/ruRU.lua | 6 ++- Delves/Trash/Locales/zhCN.lua | 6 ++- Delves/Trash/Locales/zhTW.lua | 6 ++- Delves/Trash/Nerubian.lua | 6 +++ Delves/Trash/Nightfall.lua | 6 +++ Delves/Trash/Options/Colors.lua | 3 ++ Delves/Trash/Options/Sounds.lua | 3 ++ Delves/Trash/Rares.lua | 86 +++++++++++++++++++++++++++++---- Delves/Trash/Underkeep.lua | 6 +++ 18 files changed, 163 insertions(+), 19 deletions(-) diff --git a/Delves/Trash/Fungarian.lua b/Delves/Trash/Fungarian.lua index 6e812ba31..1b4b0ccea 100644 --- a/Delves/Trash/Fungarian.lua +++ b/Delves/Trash/Fungarian.lua @@ -123,6 +123,12 @@ function mod:OnBossEnable() -- Particularly Bad Guy self:Log("SPELL_CAST_START", "HideousLaughter", 372529) + + -- also enable the Rares module + local raresModule = BigWigs:GetBossModule("Delve Rares", true) + if raresModule then + raresModule:Enable() + end end -------------------------------------------------------------------------------- diff --git a/Delves/Trash/Kobold.lua b/Delves/Trash/Kobold.lua index 1947bc254..7250017c0 100644 --- a/Delves/Trash/Kobold.lua +++ b/Delves/Trash/Kobold.lua @@ -76,6 +76,12 @@ function mod:OnBossEnable() -- Spitfire Fusetender self:Log("SPELL_CAST_SUCCESS", "ThrowDynamite", 448528) + + -- also enable the Rares module + local raresModule = BigWigs:GetBossModule("Delve Rares", true) + if raresModule then + raresModule:Enable() + end end -------------------------------------------------------------------------------- diff --git a/Delves/Trash/Kobyss.lua b/Delves/Trash/Kobyss.lua index f4c965ee2..763009a0b 100644 --- a/Delves/Trash/Kobyss.lua +++ b/Delves/Trash/Kobyss.lua @@ -106,6 +106,12 @@ function mod:OnBossEnable() -- Deepwater Makura self:Log("SPELL_CAST_START", "BubbleSurge", 445771) + + -- also enable the Rares module + local raresModule = BigWigs:GetBossModule("Delve Rares", true) + if raresModule then + raresModule:Enable() + end end function mod:VerifyEnable(_, mobId) diff --git a/Delves/Trash/Locales/deDE.lua b/Delves/Trash/Locales/deDE.lua index 93de07fe5..593e52e85 100644 --- a/Delves/Trash/Locales/deDE.lua +++ b/Delves/Trash/Locales/deDE.lua @@ -80,5 +80,9 @@ if L then L.tala = "Tala" L.velo = "Velo" L.anubvir = "Anub'vir" - L.zekvir = "Zekvir (Zufälliges Erscheinen)" + L.zekvir = "Zekvir" + --L.zekvirs_influence = "Zekvir's Influence" + L.zekvir_random = "Zekvir (Zufälliges Erscheinen)" + --L.zekvir_breach = "Zekvir incoming" + --L.zekvir_breach_desc = "Show an alert when Zekvir is spawning in the Delve." end diff --git a/Delves/Trash/Locales/esES.lua b/Delves/Trash/Locales/esES.lua index 606fd04c5..32697269d 100644 --- a/Delves/Trash/Locales/esES.lua +++ b/Delves/Trash/Locales/esES.lua @@ -80,5 +80,9 @@ if L then L.tala = "Tala" L.velo = "Velo" L.anubvir = "Anub'vir" - L.zekvir = "Zekvir (Random Spawn)" + L.zekvir = "Zekvir" + --L.zekvirs_influence = "Zekvir's Influence" + L.zekvir_random = "Zekvir (Random Spawn)" + --L.zekvir_breach = "Zekvir incoming" + --L.zekvir_breach_desc = "Show an alert when Zekvir is spawning in the Delve." end diff --git a/Delves/Trash/Locales/frFR.lua b/Delves/Trash/Locales/frFR.lua index a7e057a86..a9e425407 100644 --- a/Delves/Trash/Locales/frFR.lua +++ b/Delves/Trash/Locales/frFR.lua @@ -80,5 +80,9 @@ if L then L.tala = "Tala" L.velo = "Velo" L.anubvir = "Anub'vir" - L.zekvir = "Zekvir (Apparition aléatoire)" + L.zekvir = "Zekvir" + --L.zekvirs_influence = "Zekvir's Influence" + L.zekvir_random = "Zekvir (Apparition aléatoire)" + --L.zekvir_breach = "Zekvir incoming" + --L.zekvir_breach_desc = "Show an alert when Zekvir is spawning in the Delve." end diff --git a/Delves/Trash/Locales/itIT.lua b/Delves/Trash/Locales/itIT.lua index ebc9ef020..878c9bab8 100644 --- a/Delves/Trash/Locales/itIT.lua +++ b/Delves/Trash/Locales/itIT.lua @@ -80,5 +80,9 @@ if L then --L.tala = "Tala" --L.velo = "Velo" --L.anubvir = "Anub'vir" - --L.zekvir = "Zekvir (Random Spawn)" + --L.zekvir = "Zekvir" + --L.zekvirs_influence = "Zekvir's Influence" + --L.zekvir_random = "Zekvir (Random Spawn)" + --L.zekvir_breach = "Zekvir incoming" + --L.zekvir_breach_desc = "Show an alert when Zekvir is spawning in the Delve." end diff --git a/Delves/Trash/Locales/koKR.lua b/Delves/Trash/Locales/koKR.lua index 970acae75..05a93577f 100644 --- a/Delves/Trash/Locales/koKR.lua +++ b/Delves/Trash/Locales/koKR.lua @@ -80,5 +80,9 @@ if L then --L.tala = "Tala" --L.velo = "Velo" --L.anubvir = "Anub'vir" - --L.zekvir = "Zekvir (Random Spawn)" + --L.zekvir = "Zekvir" + --L.zekvirs_influence = "Zekvir's Influence" + --L.zekvir_random = "Zekvir (Random Spawn)" + --L.zekvir_breach = "Zekvir incoming" + --L.zekvir_breach_desc = "Show an alert when Zekvir is spawning in the Delve." end diff --git a/Delves/Trash/Locales/ptBR.lua b/Delves/Trash/Locales/ptBR.lua index 0c1fa11aa..aff53dff8 100644 --- a/Delves/Trash/Locales/ptBR.lua +++ b/Delves/Trash/Locales/ptBR.lua @@ -80,5 +80,9 @@ if L then --L.tala = "Tala" --L.velo = "Velo" --L.anubvir = "Anub'vir" - --L.zekvir = "Zekvir (Random Spawn)" + --L.zekvir = "Zekvir" + --L.zekvirs_influence = "Zekvir's Influence" + --L.zekvir_random = "Zekvir (Random Spawn)" + --L.zekvir_breach = "Zekvir incoming" + --L.zekvir_breach_desc = "Show an alert when Zekvir is spawning in the Delve." end diff --git a/Delves/Trash/Locales/ruRU.lua b/Delves/Trash/Locales/ruRU.lua index 4b51326c6..e322d45d8 100644 --- a/Delves/Trash/Locales/ruRU.lua +++ b/Delves/Trash/Locales/ruRU.lua @@ -80,5 +80,9 @@ if L then --L.tala = "Tala" --L.velo = "Velo" --L.anubvir = "Anub'vir" - --L.zekvir = "Zekvir (Random Spawn)" + --L.zekvir = "Zekvir" + --L.zekvirs_influence = "Zekvir's Influence" + --L.zekvir_random = "Zekvir (Random Spawn)" + --L.zekvir_breach = "Zekvir incoming" + --L.zekvir_breach_desc = "Show an alert when Zekvir is spawning in the Delve." end diff --git a/Delves/Trash/Locales/zhCN.lua b/Delves/Trash/Locales/zhCN.lua index 1b6e8e2ae..513c07f3d 100644 --- a/Delves/Trash/Locales/zhCN.lua +++ b/Delves/Trash/Locales/zhCN.lua @@ -80,5 +80,9 @@ if L then L.tala = "塔拉" L.velo = "威罗" L.anubvir = "阿努布维尔" - L.zekvir = "泽克维尔(随机出现)" + L.zekvir = "泽克维尔" + --L.zekvirs_influence = "Zekvir's Influence" + L.zekvir_random = "泽克维尔(随机出现)" + --L.zekvir_breach = "Zekvir incoming" + --L.zekvir_breach_desc = "Show an alert when Zekvir is spawning in the Delve." end diff --git a/Delves/Trash/Locales/zhTW.lua b/Delves/Trash/Locales/zhTW.lua index b1e6f9c09..1e527d302 100644 --- a/Delves/Trash/Locales/zhTW.lua +++ b/Delves/Trash/Locales/zhTW.lua @@ -80,5 +80,9 @@ if L then --L.tala = "Tala" --L.velo = "Velo" --L.anubvir = "Anub'vir" - --L.zekvir = "Zekvir (Random Spawn)" + --L.zekvir = "Zekvir" + --L.zekvirs_influence = "Zekvir's Influence" + --L.zekvir_random = "Zekvir (Random Spawn)" + --L.zekvir_breach = "Zekvir incoming" + --L.zekvir_breach_desc = "Show an alert when Zekvir is spawning in the Delve." end diff --git a/Delves/Trash/Nerubian.lua b/Delves/Trash/Nerubian.lua index 7e6d8572b..bbde27e82 100644 --- a/Delves/Trash/Nerubian.lua +++ b/Delves/Trash/Nerubian.lua @@ -113,6 +113,12 @@ function mod:OnBossEnable() -- Nerubian Webspinner self:Log("SPELL_CAST_SUCCESS", "WebLaunch", 433448) + + -- also enable the Rares module + local raresModule = BigWigs:GetBossModule("Delve Rares", true) + if raresModule then + raresModule:Enable() + end end -------------------------------------------------------------------------------- diff --git a/Delves/Trash/Nightfall.lua b/Delves/Trash/Nightfall.lua index 60b818345..456bc1f7e 100644 --- a/Delves/Trash/Nightfall.lua +++ b/Delves/Trash/Nightfall.lua @@ -94,6 +94,12 @@ function mod:OnBossEnable() -- Shadow Elemental self:Log("SPELL_CAST_START", "InflictDeath", 440205, 470593) + + -- also enable the Rares module + local raresModule = BigWigs:GetBossModule("Delve Rares", true) + if raresModule then + raresModule:Enable() + end end -------------------------------------------------------------------------------- diff --git a/Delves/Trash/Options/Colors.lua b/Delves/Trash/Options/Colors.lua index c586eeb43..281a40fb5 100644 --- a/Delves/Trash/Options/Colors.lua +++ b/Delves/Trash/Options/Colors.lua @@ -74,6 +74,8 @@ BigWigs:AddColors("Delve Rares", { [450492] = "yellow", [450505] = {"blue","red"}, [450519] = "orange", + [457448] = "orange", + [457880] = "yellow", [458090] = "yellow", [458099] = "red", [458104] = {"red","yellow"}, @@ -84,4 +86,5 @@ BigWigs:AddColors("Delve Rares", { [459421] = "yellow", [461741] = {"blue","orange"}, [462686] = "red", + ["zekvir_breach"] = "cyan", }) diff --git a/Delves/Trash/Options/Sounds.lua b/Delves/Trash/Options/Sounds.lua index de23c51fe..6de9e0bc6 100644 --- a/Delves/Trash/Options/Sounds.lua +++ b/Delves/Trash/Options/Sounds.lua @@ -74,6 +74,8 @@ BigWigs:AddSounds("Delve Rares", { [450492] = "alarm", [450505] = {"alert","info"}, [450519] = "alarm", + [457448] = "alarm", + [457880] = "long", [458090] = "alarm", [458099] = "alert", [458104] = "alert", @@ -84,4 +86,5 @@ BigWigs:AddSounds("Delve Rares", { [459421] = "alert", [461741] = {"alarm","underyou"}, [462686] = "alert", + ["zekvir_breach"] = "long", }) diff --git a/Delves/Trash/Rares.lua b/Delves/Trash/Rares.lua index 4307df0e5..490f48b1b 100644 --- a/Delves/Trash/Rares.lua +++ b/Delves/Trash/Rares.lua @@ -15,9 +15,16 @@ mod:RegisterEnableMob( 227513, -- Tala 227514, -- Velo 227573, -- Anub'vir - 217208 -- Zekvir + 227471, -- Zekvir (unattackable) + 217208 -- Zekvir (random spawn) ) +-------------------------------------------------------------------------------- +-- Locals +-- + +local zekvirEngaged = false + -------------------------------------------------------------------------------- -- Localization -- @@ -36,7 +43,12 @@ if L then L.tala = "Tala" L.velo = "Velo" L.anubvir = "Anub'vir" - L.zekvir = "Zekvir (Random Spawn)" + L.zekvir = "Zekvir" + L.zekvirs_influence = "Zekvir's Influence" + L.zekvir_random = "Zekvir (Random Spawn)" + L.zekvir_breach = "Zekvir incoming" + L.zekvir_breach_desc = "Show an alert when Zekvir is spawning in the Delve." + L.zekvir_breach_icon = "INV_Achievement_RaidNerubian_NerubianHulk" end -------------------------------------------------------------------------------- @@ -84,7 +96,11 @@ function mod:GetOptions() 458099, -- Grasping Darkness -- Anub'vir 449038, -- Impaling Spikes + -- Zekvir's Influence + 457880, -- Ascension + 457448, -- Shadow Eruption -- Zekvir + "zekvir_breach", 450519, -- Angler's Web 450492, -- Horrendous Roar 450505, -- Enfeebling Spittle @@ -99,7 +115,8 @@ function mod:GetOptions() [458104] = L.tala, [458090] = L.velo, [449038] = L.anubvir, - [450519] = L.zekvir, + [457880] = L.zekvirs_influence, + ["zekvir_breach"] = L.zekvir_random, },{ [445781] = CL.frontal_cone, -- Lava Blast (Frontal Cone) [415253] = CL.frontal_cone, -- Fungal Breath (Frontal Cone) @@ -164,14 +181,19 @@ function mod:OnBossEnable() self:Log("SPELL_CAST_START", "ImpalingSpikes", 449038) self:Death("AnubvirDeath", 227573) - -- Zekvir + -- Zekvir's Influence + self:Log("SPELL_CAST_START", "Ascension", 457880) -- cast by any Zekvir-empowered mob + self:Log("SPELL_CAST_START", "ShadowEruption", 457448) -- cast by any Zekvir-empowered mob + self:Log("SPELL_CAST_START", "AnglersWebImage", 457881) -- cast by untargetable Zekvir 227471 + + -- Zekvir (random spawn) + self:RegisterEvent("CHAT_MSG_RAID_BOSS_EMOTE") -- Zekvir incoming or Zekvir leaving self:Log("SPELL_CAST_START", "EnfeeblingSpittle", 450505) self:Log("SPELL_INTERRUPT", "EnfeeblingSpittleInterrupt", 450505) self:Log("SPELL_CAST_SUCCESS", "EnfeeblingSpittleSuccess", 450505) self:Log("SPELL_AURA_APPLIED", "EnfeeblingSpittleApplied", 450505) self:Log("SPELL_CAST_START", "HorrendousRoar", 450492) self:Log("SPELL_CAST_START", "AnglersWeb", 450519) - self:Death("ZekvirDeath", 217208) end -------------------------------------------------------------------------------- @@ -519,11 +541,54 @@ do end end +-- Zekvir's Influence + +do + local prev = 0 + function mod:Ascension(args) + if args.time - prev > 2.5 then + prev = args.time + self:Message(args.spellId, "yellow", CL.casting:format(args.spellName)) + self:PlaySound(args.spellId, "long") + end + end +end + +do + local prev = 0 + function mod:ShadowEruption(args) + if args.time - prev > 2.5 then + prev = args.time + self:Message(args.spellId, "orange") + self:PlaySound(args.spellId, "alarm") + end + end +end + +function mod:AnglersWebImage() + self:Message(450519, "orange") + self:PlaySound(450519, "alarm") +end + -- Zekvir do local timer + function mod:CHAT_MSG_RAID_BOSS_EMOTE(_, msg) + -- [CHAT_MSG_RAID_BOSS_EMOTE] |TInterface\\ICONS\\INV_Achievement_RaidNerubian_NerubianHulk.BLP:36|t Zekvir has breached the Delve!#Zekvir + -- [CHAT_MSG_RAID_BOSS_EMOTE] |TInterface\\ICONS\\INV_Achievement_RaidNerubian_NerubianHulk.BLP:36|t Zekvir burrows into the ground and escapes!#Zekvir + if msg:find("INV_Achievement_RaidNerubian_NerubianHulk", nil, true) then + if not zekvirEngaged then + zekvirEngaged = true + self:Message("zekvir_breach", "cyan", CL.incoming:format(L.zekvir), L.zekvir_breach_icon) + self:PlaySound("zekvir_breach", "long") + else + self:ZekvirRetreat() + end + end + end + function mod:EnfeeblingSpittle(args) if self:MobId(args.sourceGUID) == 217208 then -- Zekvir rare spawn self:Message(args.spellId, "red", CL.casting:format(args.spellName)) @@ -538,7 +603,7 @@ do timer = nil end self:CDBar(450505, 15.3) - timer = self:ScheduleTimer("ZekvirDeath", 30) + timer = self:ScheduleTimer("ZekvirRetreat", 30) end end @@ -549,7 +614,7 @@ do timer = nil end self:CDBar(args.spellId, 15.3) - timer = self:ScheduleTimer("ZekvirDeath", 30) + timer = self:ScheduleTimer("ZekvirRetreat", 30) end end @@ -570,7 +635,7 @@ do end self:Message(args.spellId, "yellow", CL.fear) self:CDBar(args.spellId, 18.2, CL.fear) - timer = self:ScheduleTimer("ZekvirDeath", 30) + timer = self:ScheduleTimer("ZekvirRetreat", 30) self:PlaySound(args.spellId, "alarm") end end @@ -583,12 +648,13 @@ do end self:Message(args.spellId, "orange") self:CDBar(args.spellId, 23.1) - timer = self:ScheduleTimer("ZekvirDeath", 30) + timer = self:ScheduleTimer("ZekvirRetreat", 30) self:PlaySound(args.spellId, "alarm") end end - function mod:ZekvirDeath() + function mod:ZekvirRetreat() + zekvirEngaged = false if timer then self:CancelTimer(timer) timer = nil diff --git a/Delves/Trash/Underkeep.lua b/Delves/Trash/Underkeep.lua index dd45b04c4..ad6a154c6 100644 --- a/Delves/Trash/Underkeep.lua +++ b/Delves/Trash/Underkeep.lua @@ -80,6 +80,12 @@ function mod:OnBossEnable() -- Web Marauder self:Log("SPELL_CAST_START", "GossamerWebbing", 453149) + + -- also enable the Rares module + local raresModule = BigWigs:GetBossModule("Delve Rares", true) + if raresModule then + raresModule:Enable() + end end --------------------------------------------------------------------------------