From fa7083a422691d34febe26c06e780ff05c16d525 Mon Sep 17 00:00:00 2001 From: Nick Towle Date: Sat, 7 Oct 2023 20:18:30 -0400 Subject: [PATCH] Cataclysm/ThroneTides/Trash: Add trash module --- Cataclysm/ThroneTides/Locales/deDE.lua | 14 +- Cataclysm/ThroneTides/Locales/esES.lua | 14 +- Cataclysm/ThroneTides/Locales/frFR.lua | 14 +- Cataclysm/ThroneTides/Locales/itIT.lua | 14 +- Cataclysm/ThroneTides/Locales/koKR.lua | 14 +- Cataclysm/ThroneTides/Locales/ptBR.lua | 14 +- Cataclysm/ThroneTides/Locales/ruRU.lua | 14 +- Cataclysm/ThroneTides/Locales/zhCN.lua | 14 +- Cataclysm/ThroneTides/Locales/zhTW.lua | 14 +- Cataclysm/ThroneTides/Options/Colors.lua | 15 ++ Cataclysm/ThroneTides/Options/Sounds.lua | 15 ++ Cataclysm/ThroneTides/Trash.lua | 265 +++++++++++++++++++++++ Cataclysm/ThroneTides/modules.xml | 1 + 13 files changed, 413 insertions(+), 9 deletions(-) create mode 100644 Cataclysm/ThroneTides/Trash.lua diff --git a/Cataclysm/ThroneTides/Locales/deDE.lua b/Cataclysm/ThroneTides/Locales/deDE.lua index 91dceb77c..6d9016d97 100644 --- a/Cataclysm/ThroneTides/Locales/deDE.lua +++ b/Cataclysm/ThroneTides/Locales/deDE.lua @@ -1,5 +1,17 @@ -local L = BigWigs:NewBossLocale("Ozumat", "deDE") +local L = BigWigs:NewBossLocale("Throne of the Tides Trash", "deDE") if not L then return end +if L then + --L.nazjar_oracle = "Naz'jar Oracle" + --L.vicious_snap_dragon = "Vicious Snap Dragon" + --L.nazjar_sentinel = "Naz'jar Sentinel" + --L.nazjar_ravager = "Naz'jar Ravager" + --L.nazjar_tempest_witch = "Naz'jar Tempest Witch" + --L.faceless_seer = "Faceless Seer" + --L.faceless_watcher = "Faceless Watcher" + --L.tainted_sentry = "Tainted Sentry" +end + +L = BigWigs:NewBossLocale("Ozumat", "deDE") if L then L.custom_on_autotalk = "Automatisch ansprechen" L.custom_on_autotalk_desc = "Wählt direkt die Dialogoption zum Beginn des Kampfes." diff --git a/Cataclysm/ThroneTides/Locales/esES.lua b/Cataclysm/ThroneTides/Locales/esES.lua index 86f965407..f0e18a96d 100644 --- a/Cataclysm/ThroneTides/Locales/esES.lua +++ b/Cataclysm/ThroneTides/Locales/esES.lua @@ -1,5 +1,17 @@ -local L = BigWigs:NewBossLocale("Ozumat", "esES") or BigWigs:NewBossLocale("Ozumat", "esMX") +local L = BigWigs:NewBossLocale("Throne of the Tides Trash", "esES") or BigWigs:NewBossLocale("Throne of the Tides Trash", "esMX") if not L then return end +if L then + --L.nazjar_oracle = "Naz'jar Oracle" + --L.vicious_snap_dragon = "Vicious Snap Dragon" + --L.nazjar_sentinel = "Naz'jar Sentinel" + --L.nazjar_ravager = "Naz'jar Ravager" + --L.nazjar_tempest_witch = "Naz'jar Tempest Witch" + --L.faceless_seer = "Faceless Seer" + --L.faceless_watcher = "Faceless Watcher" + --L.tainted_sentry = "Tainted Sentry" +end + +L = BigWigs:NewBossLocale("Ozumat", "esES") or BigWigs:NewBossLocale("Ozumat", "esMX") if L then --L.custom_on_autotalk = "Autotalk" --L.custom_on_autotalk_desc = "Instantly selects the gossip option to start the fight." diff --git a/Cataclysm/ThroneTides/Locales/frFR.lua b/Cataclysm/ThroneTides/Locales/frFR.lua index 49c2fff6a..1d38cc638 100644 --- a/Cataclysm/ThroneTides/Locales/frFR.lua +++ b/Cataclysm/ThroneTides/Locales/frFR.lua @@ -1,5 +1,17 @@ -local L = BigWigs:NewBossLocale("Ozumat", "frFR") +local L = BigWigs:NewBossLocale("Throne of the Tides Trash", "frFR") if not L then return end +if L then + --L.nazjar_oracle = "Naz'jar Oracle" + --L.vicious_snap_dragon = "Vicious Snap Dragon" + --L.nazjar_sentinel = "Naz'jar Sentinel" + --L.nazjar_ravager = "Naz'jar Ravager" + --L.nazjar_tempest_witch = "Naz'jar Tempest Witch" + --L.faceless_seer = "Faceless Seer" + --L.faceless_watcher = "Faceless Watcher" + --L.tainted_sentry = "Tainted Sentry" +end + +L = BigWigs:NewBossLocale("Ozumat", "frFR") if L then --L.custom_on_autotalk = "Autotalk" --L.custom_on_autotalk_desc = "Instantly selects the gossip option to start the fight." diff --git a/Cataclysm/ThroneTides/Locales/itIT.lua b/Cataclysm/ThroneTides/Locales/itIT.lua index e804a43cb..16c311817 100644 --- a/Cataclysm/ThroneTides/Locales/itIT.lua +++ b/Cataclysm/ThroneTides/Locales/itIT.lua @@ -1,5 +1,17 @@ -local L = BigWigs:NewBossLocale("Ozumat", "itIT") +local L = BigWigs:NewBossLocale("Throne of the Tides Trash", "itIT") if not L then return end +if L then + --L.nazjar_oracle = "Naz'jar Oracle" + --L.vicious_snap_dragon = "Vicious Snap Dragon" + --L.nazjar_sentinel = "Naz'jar Sentinel" + --L.nazjar_ravager = "Naz'jar Ravager" + --L.nazjar_tempest_witch = "Naz'jar Tempest Witch" + --L.faceless_seer = "Faceless Seer" + --L.faceless_watcher = "Faceless Watcher" + --L.tainted_sentry = "Tainted Sentry" +end + +L = BigWigs:NewBossLocale("Ozumat", "itIT") if L then --L.custom_on_autotalk = "Autotalk" --L.custom_on_autotalk_desc = "Instantly selects the gossip option to start the fight." diff --git a/Cataclysm/ThroneTides/Locales/koKR.lua b/Cataclysm/ThroneTides/Locales/koKR.lua index 3e50fb8fe..7216e6518 100644 --- a/Cataclysm/ThroneTides/Locales/koKR.lua +++ b/Cataclysm/ThroneTides/Locales/koKR.lua @@ -1,5 +1,17 @@ -local L = BigWigs:NewBossLocale("Ozumat", "koKR") +local L = BigWigs:NewBossLocale("Throne of the Tides Trash", "koKR") if not L then return end +if L then + --L.nazjar_oracle = "Naz'jar Oracle" + --L.vicious_snap_dragon = "Vicious Snap Dragon" + --L.nazjar_sentinel = "Naz'jar Sentinel" + --L.nazjar_ravager = "Naz'jar Ravager" + --L.nazjar_tempest_witch = "Naz'jar Tempest Witch" + --L.faceless_seer = "Faceless Seer" + --L.faceless_watcher = "Faceless Watcher" + --L.tainted_sentry = "Tainted Sentry" +end + +L = BigWigs:NewBossLocale("Ozumat", "koKR") if L then L.custom_on_autotalk = "자동 대화" L.custom_on_autotalk_desc = "전투를 시작하는 대화 선택지를 즉시 선택합니다." diff --git a/Cataclysm/ThroneTides/Locales/ptBR.lua b/Cataclysm/ThroneTides/Locales/ptBR.lua index 6255ca4b9..785a33c6e 100644 --- a/Cataclysm/ThroneTides/Locales/ptBR.lua +++ b/Cataclysm/ThroneTides/Locales/ptBR.lua @@ -1,5 +1,17 @@ -local L = BigWigs:NewBossLocale("Ozumat", "ptBR") +local L = BigWigs:NewBossLocale("Throne of the Tides Trash", "ptBR") if not L then return end +if L then + --L.nazjar_oracle = "Naz'jar Oracle" + --L.vicious_snap_dragon = "Vicious Snap Dragon" + --L.nazjar_sentinel = "Naz'jar Sentinel" + --L.nazjar_ravager = "Naz'jar Ravager" + --L.nazjar_tempest_witch = "Naz'jar Tempest Witch" + --L.faceless_seer = "Faceless Seer" + --L.faceless_watcher = "Faceless Watcher" + --L.tainted_sentry = "Tainted Sentry" +end + +L = BigWigs:NewBossLocale("Ozumat", "ptBR") if L then L.custom_on_autotalk = "Conversa Automática" L.custom_on_autotalk_desc = "Instantaneamente seleciona a opção de conversa para iniciar a luta." diff --git a/Cataclysm/ThroneTides/Locales/ruRU.lua b/Cataclysm/ThroneTides/Locales/ruRU.lua index 3e9fe7e32..d4474b56d 100644 --- a/Cataclysm/ThroneTides/Locales/ruRU.lua +++ b/Cataclysm/ThroneTides/Locales/ruRU.lua @@ -1,5 +1,17 @@ -local L = BigWigs:NewBossLocale("Ozumat", "ruRU") +local L = BigWigs:NewBossLocale("Throne of the Tides Trash", "ruRU") if not L then return end +if L then + --L.nazjar_oracle = "Naz'jar Oracle" + --L.vicious_snap_dragon = "Vicious Snap Dragon" + --L.nazjar_sentinel = "Naz'jar Sentinel" + --L.nazjar_ravager = "Naz'jar Ravager" + --L.nazjar_tempest_witch = "Naz'jar Tempest Witch" + --L.faceless_seer = "Faceless Seer" + --L.faceless_watcher = "Faceless Watcher" + --L.tainted_sentry = "Tainted Sentry" +end + +L = BigWigs:NewBossLocale("Ozumat", "ruRU") if L then L.custom_on_autotalk = "Авторазговор" L.custom_on_autotalk_desc = "Мгновенный выбор опции запуска боя в диалоге." diff --git a/Cataclysm/ThroneTides/Locales/zhCN.lua b/Cataclysm/ThroneTides/Locales/zhCN.lua index d62a6f9db..b21a49238 100644 --- a/Cataclysm/ThroneTides/Locales/zhCN.lua +++ b/Cataclysm/ThroneTides/Locales/zhCN.lua @@ -1,5 +1,17 @@ -local L = BigWigs:NewBossLocale("Ozumat", "zhCN") +local L = BigWigs:NewBossLocale("Throne of the Tides Trash", "zhCN") if not L then return end +if L then + --L.nazjar_oracle = "Naz'jar Oracle" + --L.vicious_snap_dragon = "Vicious Snap Dragon" + --L.nazjar_sentinel = "Naz'jar Sentinel" + --L.nazjar_ravager = "Naz'jar Ravager" + --L.nazjar_tempest_witch = "Naz'jar Tempest Witch" + --L.faceless_seer = "Faceless Seer" + --L.faceless_watcher = "Faceless Watcher" + --L.tainted_sentry = "Tainted Sentry" +end + +L = BigWigs:NewBossLocale("Ozumat", "zhCN") if L then L.custom_on_autotalk = "自动对话" L.custom_on_autotalk_desc = "立即选择对话选项开始战斗。" diff --git a/Cataclysm/ThroneTides/Locales/zhTW.lua b/Cataclysm/ThroneTides/Locales/zhTW.lua index 05c6bb1d3..29a0fd03e 100644 --- a/Cataclysm/ThroneTides/Locales/zhTW.lua +++ b/Cataclysm/ThroneTides/Locales/zhTW.lua @@ -1,5 +1,17 @@ -local L = BigWigs:NewBossLocale("Ozumat", "zhTW") +local L = BigWigs:NewBossLocale("Throne of the Tides Trash", "zhTW") if not L then return end +if L then + --L.nazjar_oracle = "Naz'jar Oracle" + --L.vicious_snap_dragon = "Vicious Snap Dragon" + --L.nazjar_sentinel = "Naz'jar Sentinel" + --L.nazjar_ravager = "Naz'jar Ravager" + --L.nazjar_tempest_witch = "Naz'jar Tempest Witch" + --L.faceless_seer = "Faceless Seer" + --L.faceless_watcher = "Faceless Watcher" + --L.tainted_sentry = "Tainted Sentry" +end + +L = BigWigs:NewBossLocale("Ozumat", "zhTW") if L then --L.custom_on_autotalk = "Autotalk" --L.custom_on_autotalk_desc = "Instantly selects the gossip option to start the fight." diff --git a/Cataclysm/ThroneTides/Options/Colors.lua b/Cataclysm/ThroneTides/Options/Colors.lua index 189fe91ef..4df1c621b 100644 --- a/Cataclysm/ThroneTides/Options/Colors.lua +++ b/Cataclysm/ThroneTides/Options/Colors.lua @@ -33,3 +33,18 @@ BigWigs:AddColors("Mindbender Ghur'sha", { BigWigs:AddColors("Ozumat", { ["stages"] = {"green","yellow"}, }) + +BigWigs:AddColors("Throne of the Tides Trash", { + [75992] = {"blue","yellow"}, + [76590] = "orange", + [76634] = "yellow", + [76813] = "yellow", + [76820] = {"blue","orange","red"}, + [426645] = "red", + [426663] = {"blue","red"}, + [426684] = "orange", + [426741] = "purple", + [426783] = "red", + [428542] = {"blue","orange"}, + [429021] = "purple", +}) diff --git a/Cataclysm/ThroneTides/Options/Sounds.lua b/Cataclysm/ThroneTides/Options/Sounds.lua index cd6d4a7cc..f960caa50 100644 --- a/Cataclysm/ThroneTides/Options/Sounds.lua +++ b/Cataclysm/ThroneTides/Options/Sounds.lua @@ -28,3 +28,18 @@ BigWigs:AddSounds("Mindbender Ghur'sha", { BigWigs:AddSounds("Ozumat", { ["stages"] = "info", }) + +BigWigs:AddSounds("Throne of the Tides Trash", { + [75992] = "alarm", + [76590] = "alarm", + [76634] = "alert", + [76813] = "alert", + [76820] = {"alert","info"}, + [426645] = "alert", + [426663] = {"info","warning"}, + [426684] = "alarm", + [426741] = "alert", + [426783] = "alert", + [428542] = "alarm", + [429021] = "alert", +}) diff --git a/Cataclysm/ThroneTides/Trash.lua b/Cataclysm/ThroneTides/Trash.lua new file mode 100644 index 000000000..0b1940f8b --- /dev/null +++ b/Cataclysm/ThroneTides/Trash.lua @@ -0,0 +1,265 @@ +local isTenDotTwo = select(4, GetBuildInfo()) >= 100200 --- XXX delete when 10.2 is live everywhere +-------------------------------------------------------------------------------- +-- Module Declaration +-- + +local mod, CL = BigWigs:NewBoss("Throne of the Tides Trash", 643) +if not mod then return end +mod.displayName = CL.trash +mod:RegisterEnableMob( + 41096, -- Naz'jar Oracle + 41139, -- Naz'jar Spiritmender + 212681, -- Vicious Snap Dragon + 40577, -- Naz'jar Sentinel + 212673, -- Naz'jar Ravager + 40634, -- Naz'jar Tempest Witch + 212775, -- Faceless Seer + 40936, -- Faceless Watcher + 40925 -- Tainted Sentry +) + +-------------------------------------------------------------------------------- +-- Localization +-- + +local L = mod:GetLocale() +if L then + L.nazjar_oracle = "Naz'jar Oracle" + L.vicious_snap_dragon = "Vicious Snap Dragon" + L.nazjar_sentinel = "Naz'jar Sentinel" + L.nazjar_ravager = "Naz'jar Ravager" + L.nazjar_tempest_witch = "Naz'jar Tempest Witch" + L.faceless_seer = "Faceless Seer" + L.faceless_watcher = "Faceless Watcher" + L.tainted_sentry = "Tainted Sentry" +end + +-------------------------------------------------------------------------------- +-- Initialization +-- + +function mod:GetOptions() + return { + -- Naz'jar Oracle + {76820, "DISPEL"}, -- Hex + 76813, -- Healing Wave + -- Vicious Snap Dragon + {426663, "ME_ONLY"}, -- Ravenous Pursuit + -- Naz'jar Sentinel + {426741, "TANK_HEALER"}, -- Shellbreaker + 428542, -- Crushing Depths + -- Naz'jar Ravager + 426684, -- Volatile Bolt + 426645, -- Acid Barrage + -- Naz'jar Tempest Witch + {75992, "SAY"}, -- Lightning Surge + -- Faceless Seer + 426783, -- Mind Flay + -- Faceless Watcher + 76590, -- Shadow Smash + {429021, "TANK", "OFF"}, -- Crush + -- Tainted Sentry + 76634, -- Swell + }, { + [76820] = L.nazjar_oracle, + [426663] = L.vicious_snap_dragon, + [426741] = L.nazjar_sentinel, + [426684] = L.nazjar_ravager, + [75992] = L.nazjar_tempest_witch, + [426783] = L.faceless_seer, + [76590] = L.faceless_watcher, + [76634] = L.tainted_sentry, + } +end + +-- XXX delete this entire if block below when 10.2 is live everywhere +if not isTenDotTwo then + -- before 10.2 + function mod:GetOptions() + return { + -- Naz'jar Oracle + {76820, "DISPEL"}, -- Hex + 76813, -- Healing Wave + -- Naz'jar Tempest Witch + {75992, "SAY"}, -- Lightning Surge + -- Faceless Watcher + 76590, -- Shadow Smash + -- Tainted Sentry + 76634, -- Swell + }, { + [76820] = L.nazjar_oracle, + [75992] = L.nazjar_tempest_witch, + [76590] = L.faceless_watcher, + [76634] = L.tainted_sentry, + } + end +end + +function mod:OnBossEnable() + -- Naz'jar Oracle + self:Log("SPELL_CAST_START", "Hex", 76820) + self:Log("SPELL_AURA_APPLIED", "HexApplied", 76820) + self:Log("SPELL_CAST_START", "HealingWave", 76813) + + -- XXX remove these lines from the if block when 10.2 is live everywhere + if isTenDotTwo then + -- Vicious Snap Dragon + self:Log("SPELL_AURA_APPLIED", "RavenousPursuitApplied", 426663) + + -- Naz'jar Sentinel + self:Log("SPELL_CAST_START", "Shellbreaker", 426741) + self:Log("SPELL_AURA_APPLIED", "CrushingDepthsApplied", 428542) + + -- Naz'jar Ravager + self:Log("SPELL_CAST_START", "VolatileBolt", 426684) + self:Log("SPELL_CAST_START", "AcidBarrage", 426645) + end + + -- Naz'jar Tempest Witch + self:Log("SPELL_AURA_APPLIED", "LightningSurgeApplied", 75992) + + -- XXX remove these lines from the if block when 10.2 is live everywhere + if isTenDotTwo then + -- Faceless Seer + self:Log("SPELL_CAST_START", "MindFlay", 426783) + end + + -- Faceless Watcher + self:Log("SPELL_CAST_START", "ShadowSmash", 76590) + -- XXX remove this line from the if block when 10.2 is live everywhere + if isTenDotTwo then + self:Log("SPELL_CAST_START", "Crush", 429021) + end + + -- Tainted Sentry + self:Log("SPELL_CAST_START", "Swell", 76634) +end + +-------------------------------------------------------------------------------- +-- Event Handlers +-- + +-- Naz'jar Oracle + +function mod:Hex(args) + self:Message(args.spellId, "red", CL.casting:format(args.spellName)) + self:PlaySound(args.spellId, "alert") + --self:NameplateCDBar(args.spellId, 20.7, args.sourceGUID) +end + +function mod:HexApplied(args) + if self:Me(args.destGUID) or self:Dispeller("magic", nil, args.spellId) then + self:TargetMessage(args.spellId, "orange", args.destName) + self:PlaySound(args.spellId, "info", nil, args.destName) + end +end + +function mod:HealingWave(args) + self:Message(args.spellId, "yellow", CL.casting:format(args.spellName)) + self:PlaySound(args.spellId, "alert") + --self:NameplateCDBar(args.spellId, 3.6, args.sourceGUID) +end + +-- Vicious Snap Dragon + +function mod:RavenousPursuitApplied(args) + local onMe = self:Me(args.destGUID) + if onMe and self:Tank() then + -- tanks don't care about being fixated + return + end + self:TargetMessage(args.spellId, "red", args.destName) + if onMe then + self:PlaySound(args.spellId, "warning", nil, args.destName) + else + self:PlaySound(args.spellId, "info", nil, args.destName) + end +end + +-- Naz'jar Sentinel + +do + local prev = 0 + function mod:Shellbreaker(args) + local t = args.time + if t - prev > 1.5 then + prev = t + self:Message(args.spellId, "purple") + self:PlaySound(args.spellId, "alert") + --self:NameplateCDBar(args.spellId, 18.2, args.sourceGUID) + end + end +end + +function mod:CrushingDepthsApplied(args) + if self:Me(args.destGUID) or self:Healer() then + self:TargetMessage(args.spellId, "orange", args.destName) + self:PlaySound(args.spellId, "alarm", nil, args.destName) + end +end + +-- Naz'jar Ravager + +function mod:VolatileBolt(args) + self:Message(args.spellId, "orange") + self:PlaySound(args.spellId, "alarm") + --self:NameplateCDBar(args.spellId, 21.9, args.sourceGUID) +end + +function mod:AcidBarrage(args) + self:Message(args.spellId, "red") -- TODO purple? + self:PlaySound(args.spellId, "alert") + --self:NameplateCDBar(args.spellId, 10.9, args.sourceGUID) +end + +-- Naz'jar Tempest Witch + +function mod:LightningSurgeApplied(args) + local onMe = self:Me(args.destGUID) + if onMe or self:Dispeller("magic", nil, args.spellId) then + self:TargetMessage(args.spellId, "yellow", args.destName) + self:PlaySound(args.spellId, "alarm", nil, args.destName) + if onMe then + self:Say(args.spellId) + end + end + -- if this is uncommented, move to SPELL_CAST_SUCCESS + --self:NameplateCDBar(args.spellId, 19.4, args.sourceGUID) +end + +-- Faceless Seer + +do + local prev = 0 + function mod:MindFlay(args) + local t = args.time + if t - prev > 1.5 then + prev = t + self:Message(args.spellId, "red", CL.casting:format(args.spellName)) + self:PlaySound(args.spellId, "alert") + end + --self:NameplateCDBar(args.spellId, 8.5, args.sourceGUID) + end +end + +-- Faceless Watcher + +function mod:ShadowSmash(args) + self:Message(args.spellId, "orange") + self:PlaySound(args.spellId, "alarm") + --self:NameplateCDBar(args.spellId, 24.3, args.sourceGUID) +end + +function mod:Crush(args) + self:Message(args.spellId, "purple") + self:PlaySound(args.spellId, "alert") + --self:NameplateCDBar(args.spellId, 17.0, args.sourceGUID) +end + +-- Tainted Sentry + +function mod:Swell(args) + self:Message(args.spellId, "yellow") + self:PlaySound(args.spellId, "alert") + --self:NameplateCDBar(args.spellId, 20.6, args.sourceGUID) +end diff --git a/Cataclysm/ThroneTides/modules.xml b/Cataclysm/ThroneTides/modules.xml index f33247c97..87ffb6101 100644 --- a/Cataclysm/ThroneTides/modules.xml +++ b/Cataclysm/ThroneTides/modules.xml @@ -5,6 +5,7 @@