From e88587927d50447478a889eb2698e0406901fd3b Mon Sep 17 00:00:00 2001 From: Nick Towle Date: Sun, 12 Jan 2025 00:59:37 -0500 Subject: [PATCH] Shadowlands/TheaterOfPain/Trash: Update for War Within Season 2 --- Shadowlands/TheaterOfPain/Locales/deDE.lua | 9 +- Shadowlands/TheaterOfPain/Locales/esES.lua | 11 +- Shadowlands/TheaterOfPain/Locales/frFR.lua | 11 +- Shadowlands/TheaterOfPain/Locales/itIT.lua | 11 +- Shadowlands/TheaterOfPain/Locales/koKR.lua | 11 +- Shadowlands/TheaterOfPain/Locales/ptBR.lua | 9 +- Shadowlands/TheaterOfPain/Locales/ruRU.lua | 9 +- Shadowlands/TheaterOfPain/Locales/zhCN.lua | 9 +- Shadowlands/TheaterOfPain/Locales/zhTW.lua | 11 +- Shadowlands/TheaterOfPain/Options/Colors.lua | 25 +- Shadowlands/TheaterOfPain/Options/Sounds.lua | 27 +- Shadowlands/TheaterOfPain/Trash.lua | 808 +++++++++++++++---- 12 files changed, 731 insertions(+), 220 deletions(-) diff --git a/Shadowlands/TheaterOfPain/Locales/deDE.lua b/Shadowlands/TheaterOfPain/Locales/deDE.lua index 574fabe05..a076c5197 100644 --- a/Shadowlands/TheaterOfPain/Locales/deDE.lua +++ b/Shadowlands/TheaterOfPain/Locales/deDE.lua @@ -6,19 +6,16 @@ end L = BigWigs:NewBossLocale("Theater Of Pain Trash", "deDE") if L then - L.mordretha_warmup_trigger = "Soldaten von Maldraxxus! Seid Ihr bereit für ein Massaker?!" + --L.battlefield_ritualist = "Battlefield Ritualist" L.raging_bloodhorn = "Tobendes Bluthorn" L.diseased_horror = "Kranker Schrecken" L.blighted_sludge_spewer = "Verseuchter Schlickspeier" L.putrid_butcher = "Eitriger Schlächter" + --L.disgusting_refuse = "Disgusting Refuse" L.rancid_gasbag = "Ranziger Gasbeutel" - L.dokigg_the_brutalizer_harugia_the_bloodthirsty = "Dokigg der Metzler / Harugia die Blutrünstige" L.dokigg_the_brutalizer = "Dokigg der Metzler" - L.nekthara_the_mangler_heavin_the_breaker = "Nekthara der Zerfleischer / Wuchtus der Brecher" - L.nekthara_the_mangler_rek_the_hardened = "Nekthara der Zerfleischer / Rek die Gehärtete" L.nekthara_the_mangler = "Nekthara der Zerfleischer" L.heavin_the_breaker = "Wuchtus der Brecher" - L.harugia_the_bloodthirsty_advent_nevermore = "Harugia die Blutrünstige / Advent Nimmermehr" L.harugia_the_bloodthirsty = "Harugia die Blutrünstige" L.ancient_captain = "Uralter Hauptmann" L.advent_nevermore = "Advent Nimmermehr" @@ -28,4 +25,6 @@ if L then L.bone_magus = "Knochenmagus" L.nefarious_darkspeaker = "Ruchloser Dunkelsprecher" L.soulforged_bonereaver = "Seelengeschmiedeter Knochenhäscher" + + L.mordretha_warmup_trigger = "Soldaten von Maldraxxus! Seid Ihr bereit für ein Massaker?!" end diff --git a/Shadowlands/TheaterOfPain/Locales/esES.lua b/Shadowlands/TheaterOfPain/Locales/esES.lua index 6d99805ae..cd70359e7 100644 --- a/Shadowlands/TheaterOfPain/Locales/esES.lua +++ b/Shadowlands/TheaterOfPain/Locales/esES.lua @@ -1,24 +1,21 @@ local L = BigWigs:NewBossLocale("Xav the Unfallen", "esES") or BigWigs:NewBossLocale("Xav the Unfallen", "esMX") if not L then return end if L then - -- L.defeated = "%s has defeated %s" + --L.defeated = "%s has defeated %s" end L = BigWigs:NewBossLocale("Theater Of Pain Trash", "esES") or BigWigs:NewBossLocale("Theater Of Pain Trash", "esMX") if L then - --L.mordretha_warmup_trigger = "Soldiers of Maldraxxus! Are you ready for some carnage?!" + --L.battlefield_ritualist = "Battlefield Ritualist" L.raging_bloodhorn = "Cuernosangre enfurecido" L.diseased_horror = "Horror malsano" L.blighted_sludge_spewer = "Vomitalodos contagiado" L.putrid_butcher = "Carnicero pútrido" + --L.disgusting_refuse = "Disgusting Refuse" L.rancid_gasbag = "Saco de gas rancio" - L.dokigg_the_brutalizer_harugia_the_bloodthirsty = "Dokigg el Brutalizador / Harugia la Sanguinaria" L.dokigg_the_brutalizer = "Dokigg el Brutalizador" - L.nekthara_the_mangler_heavin_the_breaker = "Nekthara el Mutilador / Heavin el Rompedor" - L.nekthara_the_mangler_rek_the_hardened = "Nekthara el Mutilador / Rek la Endurecida" L.nekthara_the_mangler = "Nekthara el Mutilador" L.heavin_the_breaker = "Heavin el Rompedor" - L.harugia_the_bloodthirsty_advent_nevermore = "Harugia la Sanguinaria / Venida Nuncamás" L.harugia_the_bloodthirsty = "Harugia la Sanguinaria" L.ancient_captain = "Capitán ancestral" L.advent_nevermore = "Venida Nuncamás" @@ -28,4 +25,6 @@ if L then L.bone_magus = "Magus osario" L.nefarious_darkspeaker = "Hablaoscuro nefario" L.soulforged_bonereaver = "Espetahuesos forjado con almas" + + --L.mordretha_warmup_trigger = "Soldiers of Maldraxxus! Are you ready for some carnage?!" end diff --git a/Shadowlands/TheaterOfPain/Locales/frFR.lua b/Shadowlands/TheaterOfPain/Locales/frFR.lua index 1a67e77db..888cab9ee 100644 --- a/Shadowlands/TheaterOfPain/Locales/frFR.lua +++ b/Shadowlands/TheaterOfPain/Locales/frFR.lua @@ -1,24 +1,21 @@ local L = BigWigs:NewBossLocale("Xav the Unfallen", "frFR") if not L then return end if L then - -- L.defeated = "%s has defeated %s" + --L.defeated = "%s has defeated %s" end L = BigWigs:NewBossLocale("Theater Of Pain Trash", "frFR") if L then - --L.mordretha_warmup_trigger = "Soldiers of Maldraxxus! Are you ready for some carnage?!" + --L.battlefield_ritualist = "Battlefield Ritualist" L.raging_bloodhorn = "Cornesang déchaîné" L.diseased_horror = "Horreur infectieuse" L.blighted_sludge_spewer = "Crache-vase chancreux" L.putrid_butcher = "Boucher putride" + --L.disgusting_refuse = "Disgusting Refuse" L.rancid_gasbag = "Sac à gaz rance" - L.dokigg_the_brutalizer_harugia_the_bloodthirsty = "Dokigg le Brutalisateur / Harugia la Sanguinaire" L.dokigg_the_brutalizer = "Dokigg le Brutalisateur" - L.nekthara_the_mangler_heavin_the_breaker = "Nekthara le Mutilateur / Relent le Briseur" - L.nekthara_the_mangler_rek_the_hardened = "Nekthara le Mutilateur / Rek l'Endurcie" L.nekthara_the_mangler = "Nekthara le Mutilateur" L.heavin_the_breaker = "Relent le Briseur" - L.harugia_the_bloodthirsty_advent_nevermore = "Harugia la Sanguinaire / Aurore la Résolue" L.harugia_the_bloodthirsty = "Harugia la Sanguinaire" L.ancient_captain = "Ancien capitaine" L.advent_nevermore = "Aurore la Résolue" @@ -28,4 +25,6 @@ if L then L.bone_magus = "Magus des os" L.nefarious_darkspeaker = "Sombre orateur néfaste" L.soulforged_bonereaver = "Saccage-os forgé d'âmes" + + --L.mordretha_warmup_trigger = "Soldiers of Maldraxxus! Are you ready for some carnage?!" end diff --git a/Shadowlands/TheaterOfPain/Locales/itIT.lua b/Shadowlands/TheaterOfPain/Locales/itIT.lua index 861be3c1b..0bdd30568 100644 --- a/Shadowlands/TheaterOfPain/Locales/itIT.lua +++ b/Shadowlands/TheaterOfPain/Locales/itIT.lua @@ -1,24 +1,21 @@ local L = BigWigs:NewBossLocale("Xav the Unfallen", "itIT") if not L then return end if L then - -- L.defeated = "%s has defeated %s" + --L.defeated = "%s has defeated %s" end L = BigWigs:NewBossLocale("Theater Of Pain Trash", "itIT") if L then - --L.mordretha_warmup_trigger = "Soldiers of Maldraxxus! Are you ready for some carnage?!" + --L.battlefield_ritualist = "Battlefield Ritualist" L.raging_bloodhorn = "Cornocruento Furente" L.diseased_horror = "Orrore Malato" L.blighted_sludge_spewer = "Sputapoltiglia Ammorbato" L.putrid_butcher = "Macellaio Putrido" + --L.disgusting_refuse = "Disgusting Refuse" L.rancid_gasbag = "Pallone Gonfiato Rancido" - L.dokigg_the_brutalizer_harugia_the_bloodthirsty = "Dokigg il Brutalizzatore / Harugia la Sanguinaria" L.dokigg_the_brutalizer = "Dokigg il Brutalizzatore" - L.nekthara_the_mangler_heavin_the_breaker = "Nekthara il Dilaniatore / Pesan il Demolitore" - L.nekthara_the_mangler_rek_the_hardened = "Nekthara il Dilaniatore / Rek l'Indurita" L.nekthara_the_mangler = "Nekthara il Dilaniatore" L.heavin_the_breaker = "Pesan il Demolitore" - L.harugia_the_bloodthirsty_advent_nevermore = "Harugia la Sanguinaria / Baluardo dell'Avvento Fatomorto" L.harugia_the_bloodthirsty = "Harugia la Sanguinaria" L.ancient_captain = "Capitano Antico" L.advent_nevermore = "Baluardo dell'Avvento Fatomorto" @@ -28,4 +25,6 @@ if L then L.bone_magus = "Magus d'Ossa" L.nefarious_darkspeaker = "Oratore Oscuro Nefasto" L.soulforged_bonereaver = "Mietiossa Forgianima" + + --L.mordretha_warmup_trigger = "Soldiers of Maldraxxus! Are you ready for some carnage?!" end diff --git a/Shadowlands/TheaterOfPain/Locales/koKR.lua b/Shadowlands/TheaterOfPain/Locales/koKR.lua index 517916f71..abaecbc80 100644 --- a/Shadowlands/TheaterOfPain/Locales/koKR.lua +++ b/Shadowlands/TheaterOfPain/Locales/koKR.lua @@ -1,24 +1,21 @@ local L = BigWigs:NewBossLocale("Xav the Unfallen", "koKR") if not L then return end if L then - -- L.defeated = "%s has defeated %s" + --L.defeated = "%s has defeated %s" end L = BigWigs:NewBossLocale("Theater Of Pain Trash", "koKR") if L then - --L.mordretha_warmup_trigger = "Soldiers of Maldraxxus! Are you ready for some carnage?!" + --L.battlefield_ritualist = "Battlefield Ritualist" L.raging_bloodhorn = "분노의 핏빛뿔" L.diseased_horror = "병든 공포" L.blighted_sludge_spewer = "파멸의 오물분출자" L.putrid_butcher = "부패의 도살자" + --L.disgusting_refuse = "Disgusting Refuse" L.rancid_gasbag = "썩은 가스주머니" - L.dokigg_the_brutalizer_harugia_the_bloodthirsty = "야만전사 도키그 / 피에 굶주린 하루기아" L.dokigg_the_brutalizer = "야만전사 도키그" - L.nekthara_the_mangler_heavin_the_breaker = "분쇄자 네크타라 / 파괴자 헤빈" - L.nekthara_the_mangler_rek_the_hardened = "분쇄자 네크타라 / 완고한 렉" L.nekthara_the_mangler = "분쇄자 네크타라" L.heavin_the_breaker = "파괴자 헤빈" - L.harugia_the_bloodthirsty_advent_nevermore = "피에 굶주린 하루기아 / 강림자 네버모어" L.harugia_the_bloodthirsty = "피에 굶주린 하루기아" L.ancient_captain = "고대의 대장" L.advent_nevermore = "강림자 네버모어" @@ -28,4 +25,6 @@ if L then L.bone_magus = "해골 학자" L.nefarious_darkspeaker = "사악한 암흑예언자" L.soulforged_bonereaver = "영혼벼림 뼈약탈자" + + --L.mordretha_warmup_trigger = "Soldiers of Maldraxxus! Are you ready for some carnage?!" end diff --git a/Shadowlands/TheaterOfPain/Locales/ptBR.lua b/Shadowlands/TheaterOfPain/Locales/ptBR.lua index 31656a487..56c6aa27d 100644 --- a/Shadowlands/TheaterOfPain/Locales/ptBR.lua +++ b/Shadowlands/TheaterOfPain/Locales/ptBR.lua @@ -6,19 +6,16 @@ end L = BigWigs:NewBossLocale("Theater Of Pain Trash", "ptBR") if L then - --L.mordretha_warmup_trigger = "Soldiers of Maldraxxus! Are you ready for some carnage?!" + --L.battlefield_ritualist = "Battlefield Ritualist" L.raging_bloodhorn = "Sangaste Enfurecido" L.diseased_horror = "Horror Doentio" L.blighted_sludge_spewer = "Cospe-lodo Empesteado" L.putrid_butcher = "Açougueiro Pútrido" + --L.disgusting_refuse = "Disgusting Refuse" L.rancid_gasbag = "Gasoso Repugnante" - L.dokigg_the_brutalizer_harugia_the_bloodthirsty = "Dokigg, o Brutalizador / Harúgia, a Sedenta por Sangue" L.dokigg_the_brutalizer = "Dokigg, o Brutalizador" - L.nekthara_the_mangler_heavin_the_breaker = "Nekthara, o Mutilador / Heavin, o Fraturador" - L.nekthara_the_mangler_rek_the_hardened = "Nekthara, o Mutilador / Rek, a Endurecida" L.nekthara_the_mangler = "Nekthara, o Mutilador" L.heavin_the_breaker = "Heavin, o Fraturador" - L.harugia_the_bloodthirsty_advent_nevermore = "Harúgia, a Sedenta por Sangue / Advêntia Nuncamais" L.harugia_the_bloodthirsty = "Harúgia, a Sedenta por Sangue" L.ancient_captain = "Capitão Ancestral" L.advent_nevermore = "Advêntia Nuncamais" @@ -28,4 +25,6 @@ if L then L.bone_magus = "Magus Ósseo" L.nefarious_darkspeaker = "Orador Sombrio Nefasto" L.soulforged_bonereaver = "Ossolador Forjado em Almas" + + --L.mordretha_warmup_trigger = "Soldiers of Maldraxxus! Are you ready for some carnage?!" end diff --git a/Shadowlands/TheaterOfPain/Locales/ruRU.lua b/Shadowlands/TheaterOfPain/Locales/ruRU.lua index 7004eb71c..330472e12 100644 --- a/Shadowlands/TheaterOfPain/Locales/ruRU.lua +++ b/Shadowlands/TheaterOfPain/Locales/ruRU.lua @@ -6,19 +6,16 @@ end L = BigWigs:NewBossLocale("Theater Of Pain Trash", "ruRU") if L then - --L.mordretha_warmup_trigger = "Soldiers of Maldraxxus! Are you ready for some carnage?!" + --L.battlefield_ritualist = "Battlefield Ritualist" L.raging_bloodhorn = "Яростный кроворог" L.diseased_horror = "Зараженный ужас" L.blighted_sludge_spewer = "Чумной изрыгатель слизи" L.putrid_butcher = "Гнилостный мясник" + --L.disgusting_refuse = "Disgusting Refuse" L.rancid_gasbag = "Тошнотворный газовый мешок" - L.dokigg_the_brutalizer_harugia_the_bloodthirsty = "Докигг Изверг / Харугия Кровожадная" L.dokigg_the_brutalizer = "Докигг Изверг" - L.nekthara_the_mangler_heavin_the_breaker = "Нектара Изувер / Хивин Ломатель" - L.nekthara_the_mangler_rek_the_hardened = "Нектара Изувер / Рек Закаленная" L.nekthara_the_mangler = "Нектара Изувер" L.heavin_the_breaker = "Хивин Ломатель" - L.harugia_the_bloodthirsty_advent_nevermore = "Харугия Кровожадная / Адвент Невермор" L.harugia_the_bloodthirsty = "Харугия Кровожадная" L.ancient_captain = "Древний капитан" L.advent_nevermore = "Адвент Невермор" @@ -28,4 +25,6 @@ if L then L.bone_magus = "Костяной чародей" L.nefarious_darkspeaker = "Пагубный темный проповедник" L.soulforged_bonereaver = "Усиленный душами похититель костей" + + --L.mordretha_warmup_trigger = "Soldiers of Maldraxxus! Are you ready for some carnage?!" end diff --git a/Shadowlands/TheaterOfPain/Locales/zhCN.lua b/Shadowlands/TheaterOfPain/Locales/zhCN.lua index 0bfd18a3c..f8823a123 100644 --- a/Shadowlands/TheaterOfPain/Locales/zhCN.lua +++ b/Shadowlands/TheaterOfPain/Locales/zhCN.lua @@ -6,19 +6,16 @@ end L = BigWigs:NewBossLocale("Theater Of Pain Trash", "zhCN") if L then - L.mordretha_warmup_trigger = "玛卓克萨斯的士兵们!想欣赏暴力美学了吗?!" + --L.battlefield_ritualist = "Battlefield Ritualist" L.raging_bloodhorn = "狂怒的血角" L.diseased_horror = "染病恐魔" L.blighted_sludge_spewer = "凋零淤泥喷射者" L.putrid_butcher = "腥臭屠夫" + --L.disgusting_refuse = "Disgusting Refuse" L.rancid_gasbag = "腐臭的气囊怪" - L.dokigg_the_brutalizer_harugia_the_bloodthirsty = "残暴者多基格 / 嗜血的哈鲁吉亚" L.dokigg_the_brutalizer = "残暴者多基格" - L.nekthara_the_mangler_heavin_the_breaker = "裂伤者耐克萨拉 / 粉碎者赫文" - L.nekthara_the_mangler_rek_the_hardened = "裂伤者耐克萨拉 / 老练的里克" L.nekthara_the_mangler = "裂伤者耐克萨拉" L.heavin_the_breaker = "粉碎者赫文" - L.harugia_the_bloodthirsty_advent_nevermore = "嗜血的哈鲁吉亚 / 阿德文特·追惘" L.harugia_the_bloodthirsty = "嗜血的哈鲁吉亚" L.ancient_captain = "上古队长" L.advent_nevermore = "阿德文特·追惘" @@ -28,4 +25,6 @@ if L then L.bone_magus = "白骨魔导师" L.nefarious_darkspeaker = "卑劣的暗语者" L.soulforged_bonereaver = "魂铸白骨编织者" + + L.mordretha_warmup_trigger = "玛卓克萨斯的士兵们!想欣赏暴力美学了吗?!" end diff --git a/Shadowlands/TheaterOfPain/Locales/zhTW.lua b/Shadowlands/TheaterOfPain/Locales/zhTW.lua index aaf34833c..de50e5ca7 100644 --- a/Shadowlands/TheaterOfPain/Locales/zhTW.lua +++ b/Shadowlands/TheaterOfPain/Locales/zhTW.lua @@ -6,19 +6,16 @@ end L = BigWigs:NewBossLocale("Theater Of Pain Trash", "zhTW") if L then - L.mordretha_warmup_trigger = "瑪卓薩斯的士兵!準備大開殺戒了嗎?!" + --L.battlefield_ritualist = "Battlefield Ritualist" L.raging_bloodhorn = "發狂的血角龍" L.diseased_horror = "染病懼怪" L.blighted_sludge_spewer = "染疫嘔泥者" L.putrid_butcher = "腐臭屠夫" + --L.disgusting_refuse = "Disgusting Refuse" L.rancid_gasbag = "腐臭肉囊" - L.dokigg_the_brutalizer_harugia_the_bloodthirsty = "『殘暴者』多奇格 / 『嗜血者』哈魯吉亞" L.dokigg_the_brutalizer = "『殘暴者』多奇格" - --L.nekthara_the_mangler_heavin_the_breaker = "Nekthara the Mangler / 『毀壞者』黑文" - --L.nekthara_the_mangler_rek_the_hardened = "Nekthara the Mangler / Rek the Hardened" - L.nekthara_the_mangler = "Nekthara the Mangler" + --L.nekthara_the_mangler = "Nekthara the Mangler" L.heavin_the_breaker = "『毀壞者』黑文" - L.harugia_the_bloodthirsty_advent_nevermore = "『嗜血者』哈魯吉亞 / 無臨" L.harugia_the_bloodthirsty = "『嗜血者』哈魯吉亞" L.ancient_captain = "古代隊長" L.advent_nevermore = "無臨" @@ -28,4 +25,6 @@ if L then L.bone_magus = "骸骨魔導師" L.nefarious_darkspeaker = "惡毒暗語者" --L.soulforged_bonereaver = "Soulforged Bonereaver" + + L.mordretha_warmup_trigger = "瑪卓薩斯的士兵!準備大開殺戒了嗎?!" end diff --git a/Shadowlands/TheaterOfPain/Options/Colors.lua b/Shadowlands/TheaterOfPain/Options/Colors.lua index 0069a7726..4e0554911 100644 --- a/Shadowlands/TheaterOfPain/Options/Colors.lua +++ b/Shadowlands/TheaterOfPain/Options/Colors.lua @@ -56,32 +56,39 @@ BigWigs:AddColors("Mordretha, the Endless Empress", { }) BigWigs:AddColors("Theater Of Pain Trash", { - [317605] = "red", - [319290] = "red", + [317605] = "orange", + [321039] = "orange", [330562] = "red", + [330565] = "purple", [330586] = "yellow", - [330614] = "yellow", - [330700] = {"blue","purple"}, + [330614] = "orange", + [330697] = {"blue","purple"}, [330716] = "orange", [330725] = {"blue","yellow"}, [330868] = "red", [331223] = {"blue","orange"}, [331237] = "yellow", [331275] = "yellow", + [331288] = "purple", + [331316] = "purple", [332708] = "orange", [332836] = {"blue","red"}, [333241] = "orange", - [333294] = "red", + [333294] = "orange", + [333299] = {"blue","yellow"}, [333708] = {"blue","yellow"}, - [333827] = "red", + [333827] = "yellow", [333845] = "purple", [333861] = {"blue","red"}, - [334023] = "yellow", - [337037] = "blue", + [334023] = "orange", + [336995] = {"blue","red"}, + [341902] = {"red","yellow"}, [341949] = {"blue","yellow"}, [341969] = "orange", + [341977] = "red", [342125] = "orange", [342135] = "yellow", [342139] = {"orange","red"}, - [342675] = "orange", + [342675] = "red", + [1215850] = "red", }) diff --git a/Shadowlands/TheaterOfPain/Options/Sounds.lua b/Shadowlands/TheaterOfPain/Options/Sounds.lua index 42b956ba6..19a96b9ec 100644 --- a/Shadowlands/TheaterOfPain/Options/Sounds.lua +++ b/Shadowlands/TheaterOfPain/Options/Sounds.lua @@ -57,31 +57,38 @@ BigWigs:AddSounds("Mordretha, the Endless Empress", { BigWigs:AddSounds("Theater Of Pain Trash", { [317605] = "alarm", - [319290] = "alert", + [321039] = "alarm", [330562] = "warning", + [330565] = "alert", [330586] = "alert", - [330614] = "alert", - [330700] = "alert", + [330614] = "alarm", + [330697] = "alert", [330716] = "long", [330725] = "alert", [330868] = {"alert","warning"}, - [331223] = {"long","underyou"}, - [331237] = "info", + [331223] = {"alarm","underyou"}, + [331237] = "long", [331275] = "info", - [332708] = "alert", + [331288] = "alert", + [331316] = "alert", + [332708] = "alarm", [332836] = "alert", - [333241] = "warning", + [333241] = {"alarm","warning"}, [333294] = "alarm", + [333299] = "info", [333708] = "alert", [333827] = "alert", [333845] = "alert", [333861] = {"alert","warning"}, - [334023] = "alert", - [337037] = "underyou", + [334023] = "alarm", + [336995] = {"alarm","underyou"}, + [341902] = {"alert","warning"}, [341949] = "alert", [341969] = "warning", - [342125] = "alert", + [341977] = "alert", + [342125] = "alarm", [342135] = "warning", [342139] = {"alert","warning"}, [342675] = "alert", + [1215850] = "alarm", }) diff --git a/Shadowlands/TheaterOfPain/Trash.lua b/Shadowlands/TheaterOfPain/Trash.lua index fc204a1de..9ca5416ad 100644 --- a/Shadowlands/TheaterOfPain/Trash.lua +++ b/Shadowlands/TheaterOfPain/Trash.lua @@ -1,3 +1,4 @@ +local isElevenDotOne = select(4, GetBuildInfo()) >= 110100 -- XXX remove when 11.1 is live -------------------------------------------------------------------------------- -- Module Declaration -- @@ -6,9 +7,12 @@ local mod, CL = BigWigs:NewBoss("Theater Of Pain Trash", 2293) if not mod then return end mod.displayName = CL.trash mod:RegisterEnableMob( + 170838, -- Unyielding Contender + 174197, -- Battlefield Ritualist 170850, -- Raging Bloodhorn 170690, -- Diseased Horror 174210, -- Blighted Sludge-Spewer + 163089, -- Disgusting Refuse 169927, -- Putrid Butcher 163086, -- Rancid Gasbag 167538, -- Dokigg the Brutalizer @@ -31,19 +35,16 @@ mod:RegisterEnableMob( local L = mod:GetLocale() if L then - L.mordretha_warmup_trigger = "Soldiers of Maldraxxus! Are you ready for some carnage?!" + L.battlefield_ritualist = "Battlefield Ritualist" L.raging_bloodhorn = "Raging Bloodhorn" L.diseased_horror = "Diseased Horror" - L.blighted_sludge_spewer = "Blighted Sludge-Spewer" + L.blighted_sludge_spewer = "Blighted Sludge-Spewer" -- XXX remove when 11.1 is live L.putrid_butcher = "Putrid Butcher" + L.disgusting_refuse = "Disgusting Refuse" L.rancid_gasbag = "Rancid Gasbag" - L.dokigg_the_brutalizer_harugia_the_bloodthirsty = "Dokigg the Brutalizer / Harugia the Bloodthirsty" L.dokigg_the_brutalizer = "Dokigg the Brutalizer" - L.nekthara_the_mangler_heavin_the_breaker = "Nekthara the Mangler / Heavin the Breaker" - L.nekthara_the_mangler_rek_the_hardened = "Nekthara the Mangler / Rek the Hardened" L.nekthara_the_mangler = "Nekthara the Mangler" L.heavin_the_breaker = "Heavin the Breaker" - L.harugia_the_bloodthirsty_advent_nevermore = "Harugia the Bloodthirsty / Advent Nevermore" L.harugia_the_bloodthirsty = "Harugia the Bloodthirsty" L.ancient_captain = "Ancient Captain" L.advent_nevermore = "Advent Nevermore" @@ -53,122 +54,299 @@ if L then L.bone_magus = "Bone Magus" L.nefarious_darkspeaker = "Nefarious Darkspeaker" L.soulforged_bonereaver = "Soulforged Bonereaver" + + L.mordretha_warmup_trigger = "Soldiers of Maldraxxus! Are you ready for some carnage?!" end -------------------------------------------------------------------------------- -- Initialization -- -function mod:GetOptions() - return { - -- Raging Bloodhorn - {333241, "DISPEL"}, -- Raging Tantrum - -- Diseased Horror - 319290, -- Meat Shield - {330700, "DISPEL"}, -- Decaying Blight - -- Blighted Sludge-Spewer - 341969, -- Withering Discharge - {341949, "DISPEL"}, -- Withering Blight - -- Putrid Butcher - 330586, -- Devour Flesh - 332836, -- Chop - -- Rancid Gasbag - 330614, -- Vile Eruption - -- Dokigg the Brutalizer / Harugia the Bloodthirsty - 342139, -- Battle Trance - -- Dokigg the Brutalizer - 342125, -- Brutal Leap - -- Nekthara the Mangler / Heavin the Breaker - 342135, -- Interrupting Roar - -- Nekthara the Mangler / Rek the Hardened - 317605, -- Whirlwind - -- Nekthara the Mangler - 337037, -- Whirling Blade - -- Heavin the Breaker - 332708, -- Ground Smash - -- Harugia the Bloodthirsty / Advent Nevermore - {333861, "SAY"}, -- Ricocheting Blade - -- Harugia the Bloodthirsty - 334023, -- Bloodthirsty Charge - -- Ancient Captain - 330562, -- Demoralizing Shout - -- Advent Nevermore - 333827, -- Seismic Stomp - 331275, -- Unbreakable Guard - -- Rek the Hardened - {333845, "TANK_HEALER"}, -- Unbalancing Blow - -- Portal Guardian - 330716, -- Soulstorm - {330725, "DISPEL"}, -- Shadow Vulnerability - -- Maniacal Soulbinder - 330868, -- Necrotic Bolt Volley - {333708, "DISPEL"}, -- Soul Corruption - -- Bone Magus - 342675, -- Bone Spear - -- Nefarious Darkspeaker - 333294, -- Death Winds - -- Soulforged Bonereaver - 331223, -- Bonestorm - 331237, -- Bone Spikes - }, { - [333241] = L.raging_bloodhorn, - [319290] = L.diseased_horror, - [341969] = L.blighted_sludge_spewer, - [330586] = L.putrid_butcher, - [330614] = L.rancid_gasbag, - [342139] = L.dokigg_the_brutalizer_harugia_the_bloodthirsty, - [342125] = L.dokigg_the_brutalizer, - [342135] = L.nekthara_the_mangler_heavin_the_breaker, - [317605] = L.nekthara_the_mangler_rek_the_hardened, - [337037] = L.nekthara_the_mangler, - [332708] = L.heavin_the_breaker, - [333861] = L.harugia_the_bloodthirsty_advent_nevermore, - [334023] = L.harugia_the_bloodthirsty, - [330562] = L.ancient_captain, - [333827] = L.advent_nevermore, - [333845] = L.rek_the_hardened, - [330716] = L.portal_guardian, - [330868] = L.maniacal_soulbinder, - [342675] = L.bone_magus, - [333294] = L.nefarious_darkspeaker, - [331223] = L.soulforged_bonereaver - } +if isElevenDotOne then + function mod:GetOptions() + return { + -- Battlefield Ritualist + {341902, "DISPEL", "NAMEPLATE"}, -- Unholy Fervor + -- Raging Bloodhorn + {333241, "NAMEPLATE"}, -- Raging Tantrum + -- Diseased Horror + {341977, "NAMEPLATE"}, -- Meat Shield + {330697, "DISPEL", "NAMEPLATE"}, -- Decaying Strike + -- Disgusting Refuse + 321039, -- Disgusting Burst + {341949, "DISPEL"}, -- Withering Blight + -- Putrid Butcher + {330586, "NAMEPLATE"}, -- Devour Flesh + {332836, "NAMEPLATE"}, -- Chop + -- Rancid Gasbag + {330614, "NAMEPLATE"}, -- Vile Eruption + -- Dokigg the Brutalizer + {1215850, "NAMEPLATE"}, -- Earthcrusher + {331316, "TANK_HEALER", "NAMEPLATE"}, -- Savage Flurry + {317605, "NAMEPLATE"}, -- Whirlwind + -- Nekthara the Mangler + {342135, "NAMEPLATE"}, -- Interrupting Roar + {336995, "NAMEPLATE"}, -- Whirling Blade + -- Heavin the Breaker + {332708, "NAMEPLATE"}, -- Ground Smash + {331288, "TANK", "NAMEPLATE"}, -- Colossus Smash + -- Harugia the Bloodthirsty + {333861, "SAY", "NAMEPLATE"}, -- Ricocheting Blade + {334023, "NAMEPLATE"}, -- Bloodthirsty Charge + -- Ancient Captain + {330562, "NAMEPLATE"}, -- Demoralizing Shout + {330565, "TANK", "NAMEPLATE"}, -- Shield Bash + -- Advent Nevermore + {333827, "NAMEPLATE"}, -- Seismic Stomp + -- Rek the Hardened + {333845, "TANK_HEALER", "NAMEPLATE"}, -- Unbalancing Blow + -- Portal Guardian + {330716, "NAMEPLATE"}, -- Soulstorm + {330725, "DISPEL", "NAMEPLATE"}, -- Shadow Vulnerability + -- Maniacal Soulbinder + {330868, "NAMEPLATE"}, -- Necrotic Bolt Volley + -- Bone Magus + {342675, "NAMEPLATE"}, -- Bone Spear + -- Nefarious Darkspeaker + {333294, "NAMEPLATE"}, -- Death Winds + {333299, "DISPEL", "SAY", "NAMEPLATE"}, -- Curse of Desolation + -- Soulforged Bonereaver + {331223, "NAMEPLATE"}, -- Bonestorm + {331237, "NAMEPLATE"}, -- Bone Spikes + }, { + [341902] = L.battlefield_ritualist, + [333241] = L.raging_bloodhorn, + [341977] = L.diseased_horror, + [321039] = L.disgusting_refuse, + [330586] = L.putrid_butcher, + [330614] = L.rancid_gasbag, + [1215850] = L.dokigg_the_brutalizer, + [342135] = L.nekthara_the_mangler, + [332708] = L.heavin_the_breaker, + [333861] = L.harugia_the_bloodthirsty, + [330562] = L.ancient_captain, + [333827] = L.advent_nevermore, + [333845] = L.rek_the_hardened, + [330716] = L.portal_guardian, + [330868] = L.maniacal_soulbinder, + [342675] = L.bone_magus, + [333294] = L.nefarious_darkspeaker, + [331223] = L.soulforged_bonereaver + } + end +else -- XXX delete this block when 11.1 is live + function mod:GetOptions() + return { + -- Battlefield Ritualist + {341902, "DISPEL", "NAMEPLATE"}, -- Unholy Fervor + -- Raging Bloodhorn + {333241, "NAMEPLATE"}, -- Raging Tantrum + -- Diseased Horror + {341977, "NAMEPLATE"}, -- Meat Shield + {330697, "DISPEL", "NAMEPLATE"}, -- Decaying Strike + -- Disgusting Refuse + 321039, -- Disgusting Burst + {341949, "DISPEL"}, -- Withering Blight + -- Blighted Sludge-Spewer (removed 11.1) + 341969, -- Withering Discharge (removed 11.1) + -- Putrid Butcher + {330586, "NAMEPLATE"}, -- Devour Flesh + {332836, "NAMEPLATE"}, -- Chop + -- Rancid Gasbag + {330614, "NAMEPLATE"}, -- Vile Eruption + -- Dokigg the Brutalizer + 342139, -- Battle Trance (removed 11.1) + 342125, -- Brutal Leap (removed 11.1) + -- Nekthara the Mangler + {342135, "NAMEPLATE"}, -- Interrupting Roar + {317605, "NAMEPLATE"}, -- Whirlwind + {336995, "NAMEPLATE"}, -- Whirling Blade + -- Heavin the Breaker + {332708, "NAMEPLATE"}, -- Ground Smash + {331288, "TANK", "NAMEPLATE"}, -- Colossus Smash + -- Harugia the Bloodthirsty + {333861, "SAY", "NAMEPLATE"}, -- Ricocheting Blade + {334023, "NAMEPLATE"}, -- Bloodthirsty Charge + -- Ancient Captain + {330562, "NAMEPLATE"}, -- Demoralizing Shout + {330565, "TANK", "NAMEPLATE"}, -- Shield Bash + -- Advent Nevermore + {333827, "NAMEPLATE"}, -- Seismic Stomp + 331275, -- Unbreakable Guard (removed 11.1) + -- Rek the Hardened + {333845, "TANK_HEALER", "NAMEPLATE"}, -- Unbalancing Blow + -- Portal Guardian + {330716, "NAMEPLATE"}, -- Soulstorm + {330725, "DISPEL", "NAMEPLATE"}, -- Shadow Vulnerability + -- Maniacal Soulbinder + {330868, "NAMEPLATE"}, -- Necrotic Bolt Volley + {333708, "DISPEL"}, -- Soul Corruption (removed 11.1) + -- Bone Magus + {342675, "NAMEPLATE"}, -- Bone Spear + -- Nefarious Darkspeaker + {333294, "NAMEPLATE"}, -- Death Winds + {333299, "DISPEL", "SAY", "NAMEPLATE"}, -- Curse of Desolation + -- Soulforged Bonereaver + {331223, "NAMEPLATE"}, -- Bonestorm + {331237, "NAMEPLATE"}, -- Bone Spikes + }, { + [341902] = L.battlefield_ritualist, + [333241] = L.raging_bloodhorn, + [341977] = L.diseased_horror, + [321039] = L.disgusting_refuse, + [341969] = L.blighted_sludge_spewer, + [330586] = L.putrid_butcher, + [330614] = L.rancid_gasbag, + [342139] = L.dokigg_the_brutalizer, + [342135] = L.nekthara_the_mangler, + [332708] = L.heavin_the_breaker, + [333861] = L.harugia_the_bloodthirsty, + [330562] = L.ancient_captain, + [333827] = L.advent_nevermore, + [333845] = L.rek_the_hardened, + [330716] = L.portal_guardian, + [330868] = L.maniacal_soulbinder, + [342675] = L.bone_magus, + [333294] = L.nefarious_darkspeaker, + [331223] = L.soulforged_bonereaver + } + end end function mod:OnBossEnable() + -- Warmup self:RegisterEvent("CHAT_MSG_MONSTER_YELL") + -- Battlefield Ritualist + self:Log("SPELL_CAST_START", "UnholyFervor", 341902) + self:Log("SPELL_AURA_APPLIED", "UnholyFervorApplied", 341902) + self:Death("BattlefieldRitualistDeath", 174197) + + -- Raging Bloodhorn + self:RegisterEngageMob("RagingBloodhornEngaged", 170850) + self:Log("SPELL_CAST_SUCCESS", "RagingTantrum", 333241) self:Log("SPELL_AURA_APPLIED", "RagingTantrumApplied", 333241) + self:Death("RagingBloodhornDeath", 170850) + + -- Diseased Horror + self:RegisterEngageMob("DiseasedHorrorEngaged", 170690) self:Log("SPELL_CAST_START", "MeatShield", 341977) + self:Log("SPELL_CAST_START", "DecayingStrike", 330697) + self:Log("SPELL_CAST_SUCCESS", "DecayingStrikeSuccess", 330697) self:Log("SPELL_AURA_APPLIED_DOSE", "DecayingBlightApplied", 330700) - self:Log("SPELL_CAST_START", "WitheringDischarge", 341969) + self:Death("DiseasedHorrorDeath", 170690) + + -- Blighted Sludge-Spewer -- XXX removed in 11.1 + self:Log("SPELL_CAST_START", "WitheringDischarge", 341969) -- XXX removed in 11.1 + + -- Disgusting Refuse + self:Death("DisgustingRefuseDeath", 163089) -- Disgusting Burst self:Log("SPELL_AURA_APPLIED", "WitheringBlightApplied", 341949) self:Log("SPELL_AURA_APPLIED_DOSE", "WitheringBlightApplied", 341949) + + -- Putrid Butcher + self:RegisterEngageMob("PutridButcherEngaged", 169927) self:Log("SPELL_CAST_START", "DevourFlesh", 330586) + self:Log("SPELL_CAST_SUCCESS", "DevourFleshSuccess", 330586) self:Log("SPELL_CAST_START", "Chop", 332836) + self:Log("SPELL_CAST_SUCCESS", "ChopSuccess", 332836) + self:Death("PutridButcherDeath", 169927) + + -- Rancid Gasbag + self:RegisterEngageMob("RancidGasbagEngaged", 163086) self:Log("SPELL_CAST_START", "VileEruption", 330614) - self:Log("SPELL_CAST_START", "BattleTrance", 342139) - self:Log("SPELL_AURA_APPLIED", "BattleTranceApplied", 342139) - self:Log("SPELL_CAST_START", "BrutalLeap", 342125) - self:Log("SPELL_CAST_START", "InterruptingRoar", 342135) + self:Death("RancidGasbagDeath", 163086) + + -- Chamber of Conquest + if isElevenDotOne then -- XXX remove this check when 11.1 is live + self:RegisterEngageMob("DokiggTheBrutalizerEngaged", 167538) + self:RegisterEngageMob("NektharaTheManglerEngaged", 162744) + self:RegisterEngageMob("HeavinTheBreakerEngaged", 167532) + self:RegisterEngageMob("HarugiaTheBloodthirstyEngaged", 167536) + self:RegisterEngageMob("AdventNevermoreEngaged", 167533) + self:RegisterEngageMob("RekTheHardenedEngaged", 167534) + end + self:Death("ChamberOfConquestDeath", 167538, 162744, 167532, 167536, 167533, 167534) + + -- Dokigg the Brutalizer + if isElevenDotOne then -- XXX remove this check when 11.1 is live + self:Log("SPELL_CAST_START", "Earthcrusher", 1215850) + self:Log("SPELL_CAST_START", "SavageFlurry", 331316) + else -- XXX remove this block when 11.1 is live + self:Log("SPELL_CAST_START", "BattleTrance", 342139) -- XXX removed in 11.1 + self:Log("SPELL_AURA_APPLIED", "BattleTranceApplied", 342139) -- XXX removed in 11.1 + self:Log("SPELL_CAST_START", "BrutalLeap", 342125) -- XXX removed in 11.1 + end self:Log("SPELL_CAST_START", "Whirlwind", 317605) + + -- Nekthara the Mangler / Heavin the Breaker + self:Log("SPELL_CAST_START", "InterruptingRoar", 342135) + + -- Nekthara the Mangler / Harugia the Bloodthirsty + self:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") -- for 336995, Whirling Blade self:Log("SPELL_DAMAGE", "WhirlingBladeDamage", 337037) + self:Log("SPELL_MISSED", "WhirlingBladeDamage", 337037) + + -- Heavin the Breaker self:Log("SPELL_CAST_START", "GroundSmash", 332708) + self:Log("SPELL_CAST_START", "ColossusSmash", 331288) + + -- Harugia the Bloodthirsty / Advent Nevermore self:Log("SPELL_CAST_START", "RicochetingBlade", 333861) + + -- Harugia the Bloodthirsty self:Log("SPELL_CAST_START", "BloodthirstyCharge", 334023) + + -- Ancient Captain + self:RegisterEngageMob("AncientCaptainEngaged", 164506) self:Log("SPELL_CAST_START", "DemoralizingShout", 330562) + self:Log("SPELL_CAST_START", "ShieldBash", 330565) + self:Death("AncientCaptainDeath", 164506) + + -- Advent Nevermore self:Log("SPELL_CAST_START", "SeismicStomp", 333827) - self:Log("SPELL_CAST_START", "UnbreakableGuard", 331275) + if not isElevenDotOne then -- XXX remove when 11.1 is live + self:Log("SPELL_CAST_START", "UnbreakableGuard", 331275) + end + + -- Rek the Hardened self:Log("SPELL_CAST_START", "UnbalancingBlow", 333845) + + -- Portal Guardian + self:RegisterEngageMob("PortalGuardianEngaged", 167998) self:Log("SPELL_CAST_START", "Soulstorm", 330716) + self:Log("SPELL_CAST_SUCCESS", "ShadowVulnerability", 330725) self:Log("SPELL_AURA_APPLIED", "ShadowVulnerabilityApplied", 330725) + self:Death("PortalGuardianDeath", 167998) + + -- Maniacal Soulbinder + self:RegisterEngageMob("ManiacalSoulbinderEngaged", 160495) self:Log("SPELL_CAST_START", "NecroticBoltVolley", 330868) - self:Log("SPELL_AURA_APPLIED", "SoulCorruptionApplied", 333708) + self:Log("SPELL_INTERRUPT", "NecroticBoltVolleyInterrupt", 330868) + self:Log("SPELL_CAST_SUCCESS", "NecroticBoltVolleySuccess", 330868) + self:Log("SPELL_AURA_APPLIED", "SoulCorruptionApplied", 333708) -- XXX removed in 11.1 + self:Death("ManiacalSoulbinderDeath", 160495) + + -- Bone Magus + self:RegisterEngageMob("BoneMagusEngaged", 170882) self:Log("SPELL_CAST_START", "BoneSpear", 342675) + self:Log("SPELL_INTERRUPT", "BoneSpearInterrupt", 342675) + self:Log("SPELL_CAST_SUCCESS", "BoneSpearSuccess", 342675) + self:Death("BoneMagusDeath", 170882) + + -- Nefarious Darkspeaker + self:RegisterEngageMob("NefariousDarkspeakerEngaged", 169893) + self:Log("SPELL_CAST_START", "DeathWinds", 333294) + self:Log("SPELL_CAST_SUCCESS", "CurseOfDesolation", 333299) + self:Log("SPELL_AURA_APPLIED", "CurseOfDesolationApplied", 333299) + self:Death("NefariousDarkspeakerDeath", 169893) + + -- Soulforged Bonereaver + self:RegisterEngageMob("SoulforgedBonereaverEngaged", 162763) self:Log("SPELL_CAST_START", "Bonestorm", 331223) self:Log("SPELL_DAMAGE", "BonestormDamage", 331224) self:Log("SPELL_CAST_START", "BoneSpikes", 331237) - self:Log("SPELL_CAST_START", "DeathWinds", 333294) + self:Death("SoulforgedBonereaverDeath", 162763) end -------------------------------------------------------------------------------- @@ -176,9 +354,9 @@ end -- -- Warmup + function mod:CHAT_MSG_MONSTER_YELL(event, msg) - if msg == L.mordretha_warmup_trigger then - -- Mordretha Warmup + if msg == L.mordretha_warmup_trigger then -- Mordretha Warmup local mordrethaModule = BigWigs:GetBossModule("Mordretha, the Endless Empress", true) if mordrethaModule then mordrethaModule:Enable() @@ -187,71 +365,153 @@ function mod:CHAT_MSG_MONSTER_YELL(event, msg) end end +-- Battlefield Ritualist + +function mod:UnholyFervor(args) + -- this isn't cast unless there is a mob nearby with low hp + self:Message(args.spellId, "red", CL.casting:format(args.spellName)) + -- cooldown is triggered by cast start + self:Nameplate(args.spellId, 15.8, args.sourceGUID) + self:PlaySound(args.spellId, "alert") +end + +function mod:UnholyFervorApplied(args) + if self:Dispeller("magic", true, args.spellId) then + self:Message(args.spellId, "yellow", CL.on:format(args.destName, args.spellName)) + self:PlaySound(args.spellId, "warning") + end +end + +function mod:BattlefieldRitualistDeath(args) + self:ClearNameplate(args.destGUID) +end + -- Raging Bloodhorn + +function mod:RagingBloodhornEngaged(guid) + self:Nameplate(333241, 9.0, guid) -- Raging Tantrum +end + +function mod:RagingTantrum(args) + self:Nameplate(args.spellId, 15.8, args.sourceGUID) +end + function mod:RagingTantrumApplied(args) - if self:Dispeller("enrage", true, args.spellId) or self:Healer() then - self:Message(args.spellId, "orange", CL.buff_other:format(args.destName, args.spellName)) + if self:Dispeller("enrage", true) then + self:Message(args.spellId, "orange", CL.on:format(args.destName, args.spellName)) self:PlaySound(args.spellId, "warning") + else + self:Message(args.spellId, "orange") + self:PlaySound(args.spellId, "alarm") end end +function mod:RagingBloodhornDeath(args) + self:ClearNameplate(args.destGUID) +end + -- Diseased Horror + +function mod:DiseasedHorrorEngaged(guid) + -- Meat Shield isn't cast until a certain hp % threshold + self:Nameplate(330697, 2.7, guid) -- Decaying Strike +end + function mod:MeatShield(args) if self:Friendly(args.sourceFlags) then -- these NPCs can be mind-controlled by DKs return end - self:Message(319290, "red", CL.casting:format(args.spellName)) - self:PlaySound(319290, "alert") + self:Message(args.spellId, "red", CL.casting:format(args.spellName)) + -- cooldown is triggered by cast start + self:Nameplate(args.spellId, 15.8, args.sourceGUID) + self:PlaySound(args.spellId, "alert") +end + +function mod:DecayingStrike(args) + self:Nameplate(args.spellId, 0, args.sourceGUID) end + +function mod:DecayingStrikeSuccess(args) + self:Nameplate(args.spellId, 11.2, args.sourceGUID) +end + do local prev = 0 function mod:DecayingBlightApplied(args) if not self:Player(args.destFlags) then -- don't alert if a NPC is debuffed (usually by a mind-controlled mob) return end - if self:Dispeller("disease", nil, args.spellId) then - if args.amount > 3 then - local t = args.time - if t - prev > 3 then - prev = t - self:StackMessageOld(args.spellId, args.destName, args.amount, "purple") - self:PlaySound(args.spellId, "alert", nil, args.destName) - end - end + if self:Dispeller("disease", nil, 330697) and args.amount > 3 and args.time - prev > 3 then + prev = args.time + self:StackMessage(330697, "purple", args.destName, args.amount, 3) + self:PlaySound(330697, "alert", nil, args.destName) end end end +function mod:DiseasedHorrorDeath(args) + self:ClearNameplate(args.destGUID) +end + -- Blighted Sludge-Spewer -function mod:WitheringDischarge(args) + +function mod:WitheringDischarge(args) -- XXX removed in 11.1 if self:Friendly(args.sourceFlags) then -- these NPCs can be mind-controlled by DKs return end self:Message(args.spellId, "orange", CL.casting:format(args.spellName)) self:PlaySound(args.spellId, "warning") end + +-- Disgusting Refuse + do - local playerList = mod:NewTargetList() - function mod:WitheringBlightApplied(args) - if not self:Player(args.destFlags) then -- don't alert if a NPC is debuffed (usually by a mind-controlled mob) - return + local prev = 0 + function mod:DisgustingRefuseDeath(args) -- Disgusting Burst + if args.time - prev > 2 then + prev = args.time + self:Message(321039, "orange") + self:PlaySound(321039, "alarm") end + end +end + +do + local playerList = {} + local prev = 0 + function mod:WitheringBlightApplied(args) if self:Dispeller("disease", nil, args.spellId) then + if args.time - prev > .5 then -- throttle alerts to .5s intervals + prev = args.time + playerList = {} + end playerList[#playerList+1] = args.destName + self:TargetsMessage(args.spellId, "yellow", playerList, 5, nil, nil, .5) self:PlaySound(args.spellId, "alert", nil, playerList) - self:TargetsMessageOld(args.spellId, "yellow", playerList, 5) end end end -- Putrid Butcher + +function mod:PutridButcherEngaged(guid) + -- Devour Flesh isn't cast until a certain hp % threshold + self:Nameplate(332836, 2.4, guid) -- Chop +end + function mod:DevourFlesh(args) if self:Friendly(args.sourceFlags) then -- these NPCs can be mind-controlled by DKs return end - self:Message(args.spellId, "yellow", CL.casting:format(args.spellName)) + self:Message(args.spellId, "yellow") + self:Nameplate(args.spellId, 0, args.sourceGUID) self:PlaySound(args.spellId, "alert") end + +function mod:DevourFleshSuccess(args) + self:Nameplate(args.spellId, 16.2, args.sourceGUID) +end + do local function printTarget(self, name, guid) if self:Me(guid) or self:Healer() then @@ -259,27 +519,88 @@ do self:PlaySound(332836, "alert", nil, name) end end + function mod:Chop(args) if self:Friendly(args.sourceFlags) then -- these NPCs can be mind-controlled by DKs return end + self:Nameplate(args.spellId, 0, args.sourceGUID) if not self:Tank() then self:GetUnitTarget(printTarget, 0.2, args.sourceGUID) end end + + function mod:ChopSuccess(args) + self:Nameplate(args.spellId, 16.7, args.sourceGUID) + end +end + +function mod:PutridButcherDeath(args) + self:ClearNameplate(args.destGUID) end -- Rancid Gasbag + +function mod:RancidGasbagEngaged(guid) + self:Nameplate(330614, 7.1, guid) -- Vile Eruption +end + function mod:VileEruption(args) - self:Message(args.spellId, "yellow", CL.casting:format(args.spellName)) - self:PlaySound(args.spellId, "alert") + self:Message(args.spellId, "orange") + self:Nameplate(args.spellId, 15.7, args.sourceGUID) + self:PlaySound(args.spellId, "alarm") +end + +function mod:RancidGasbagDeath(args) + self:ClearNameplate(args.destGUID) +end + +-- Chamber of Conquest + +function mod:DokiggTheBrutalizerEngaged(guid) + self:Nameplate(331316, 2.2, guid) -- Savage Flurry + self:Nameplate(317605, 3.5, guid) -- Whirlwind + self:Nameplate(1215850, 11.8, guid) -- Earthcrusher +end + +function mod:NektharaTheManglerEngaged(guid) + self:Nameplate(317605, 1.9, guid) -- Whirlwind + self:Nameplate(336995, 6.7, guid) -- Whirling Blade + self:Nameplate(342135, 9.2, guid) -- Interrupting Roar +end + +function mod:HeavinTheBreakerEngaged(guid) + self:Nameplate(342135, 2.3, guid) -- Interrupting Roar + self:Nameplate(332708, 7.4, guid) -- Ground Smash + self:Nameplate(331288, 11.8, guid) -- Colossus Smash +end + +function mod:HarugiaTheBloodthirstyEngaged(guid) + self:Nameplate(333861, 2.0, guid) -- Ricocheting Blade + self:Nameplate(336995, 5.6, guid) -- Whirling Blade + self:Nameplate(334023, 5.6, guid) -- Bloodthirsty Charge +end + +function mod:AdventNevermoreEngaged(guid) + self:Nameplate(333861, 2.4, guid) -- Ricocheting Blade + self:Nameplate(333827, 2.4, guid) -- Seismic Stomp +end + +function mod:RekTheHardenedEngaged(guid) + self:Nameplate(333845, 5.7, guid) -- Unbalancing Blow + self:Nameplate(317605, 6.1, guid) -- Whirlwind + -- and Swift Strikes, which doesn't matter +end + +function mod:ChamberOfConquestDeath(args) + self:ClearNameplate(args.destGUID) end -- Dokigg the Brutalizer / Harugia the Bloodthirsty -function mod:BattleTrance(args) + +function mod:BattleTrance(args) -- XXX removed in 11.1 local canInterrupt, interruptReady = self:Interrupter() local enrageDispeller = self:Dispeller("enrage", true) - -- this can be interrupted or you can let the cast go through and dispel the enrage if canInterrupt or enrageDispeller then self:Message(args.spellId, "red", CL.casting:format(args.spellName)) @@ -290,7 +611,8 @@ function mod:BattleTrance(args) end end end -function mod:BattleTranceApplied(args) + +function mod:BattleTranceApplied(args) -- XXX removed in 11.1 if self:Dispeller("enrage", true) or self:Tank() then self:Message(args.spellId, "orange", CL.buff_other:format(args.destName, args.spellName)) self:PlaySound(args.spellId, "warning") @@ -298,52 +620,113 @@ function mod:BattleTranceApplied(args) end -- Dokigg the Brutalizer -function mod:BrutalLeap(args) + +function mod:BrutalLeap(args) -- XXX removed in 11.1 -- target detection not possible with this spell - self:Message(args.spellId, "orange", CL.casting:format(args.spellName)) - self:PlaySound(args.spellId, "alert") + self:Message(args.spellId, "orange") + self:PlaySound(args.spellId, "alarm") +end + +function mod:Earthcrusher(args) + local unit = self:UnitTokenFromGUID(args.sourceGUID) + if unit and UnitAffectingCombat(unit) and UnitCanAttack("player", unit) then + self:Message(args.spellId, "red") + self:Nameplate(args.spellId, 13.3, args.sourceGUID) + self:PlaySound(args.spellId, "alarm") + end +end + +function mod:SavageFlurry(args) + local unit = self:UnitTokenFromGUID(args.sourceGUID) + if unit and UnitAffectingCombat(unit) and UnitCanAttack("player", unit) then + self:Message(args.spellId, "purple") + self:Nameplate(args.spellId, 13.3, args.sourceGUID) + self:PlaySound(args.spellId, "alert") + end end -- Nekthara the Mangler / Heavin the Breaker + function mod:InterruptingRoar(args) local unit = self:UnitTokenFromGUID(args.sourceGUID) if unit and UnitAffectingCombat(unit) and UnitCanAttack("player", unit) then - self:Message(args.spellId, "yellow", CL.casting:format(args.spellName)) + self:Message(args.spellId, "yellow") + self:Nameplate(args.spellId, 18.2, args.sourceGUID) self:PlaySound(args.spellId, "warning") end end --- Nekthara the Mangler / Rek the Hardened +-- Dokigg the Brutalizer / Nekthara the Mangler / Rek the Hardened + function mod:Whirlwind(args) local unit = self:UnitTokenFromGUID(args.sourceGUID) if unit and UnitAffectingCombat(unit) and UnitCanAttack("player", unit) then - self:Message(args.spellId, "red", CL.casting:format(args.spellName)) + self:Message(args.spellId, "orange") + local mobId = self:MobId(args.sourceGUID) + if mobId == 167538 then -- Dokigg the Brutalizer + self:Nameplate(args.spellId, 26.7, args.sourceGUID) + elseif mobId == 162744 then -- Nekthara the Mangler + self:Nameplate(args.spellId, 18.2, args.sourceGUID) + else -- 167534, Rek the Hardened + self:Nameplate(args.spellId, 20.6, args.sourceGUID) + end self:PlaySound(args.spellId, "alarm") end end --- Nekthara the Mangler +-- Nekthara the Mangler / Harugia the Bloodthirsty + +do + local prev + function mod:UNIT_SPELLCAST_SUCCEEDED(_, unit, castGUID, spellId) + if castGUID ~= prev and spellId == 336995 then -- Whirling Blade + prev = castGUID + local unitGUID = self:UnitGUID(unit) + if unitGUID then + self:Message(spellId, "red") + self:Nameplate(spellId, 13.3, unitGUID) + self:PlaySound(spellId, "alarm") + end + end + end +end + +--function mod:WhirlingBlade(args) + --self:Message(args.spellId, "red") + --self:Nameplate(args.spellId, 13.3, args.sourceGUID) + --self:PlaySound(args.spellId, "alarm") +--end + do local prev = 0 function mod:WhirlingBladeDamage(args) - if self:Me(args.destGUID) then - local t = args.time - if t - prev > 1.5 then - prev = t - self:PersonalMessage(args.spellId, "underyou") - self:PlaySound(args.spellId, "underyou") - end + if self:Me(args.destGUID) and args.time - prev > 1.5 then + prev = args.time + self:PersonalMessage(336995, "near") + self:PlaySound(336995, "underyou") end end end -- Heavin the Breaker + function mod:GroundSmash(args) - self:Message(args.spellId, "orange", CL.casting:format(args.spellName)) - self:PlaySound(args.spellId, "alert") + self:Message(args.spellId, "orange") + self:Nameplate(args.spellId, 12.1, args.sourceGUID) + self:PlaySound(args.spellId, "alarm") +end + +function mod:ColossusSmash(args) + local unit = self:UnitTokenFromGUID(args.sourceGUID) + if unit and UnitAffectingCombat(unit) and UnitCanAttack("player", unit) then + self:Message(args.spellId, "purple") + self:Nameplate(args.spellId, 9.7, args.sourceGUID) + self:PlaySound(args.spellId, "alert") + end end -- Harugia the Bloodthirsty / Advent Nevermore + do local function printTarget(self, name, guid) self:TargetMessage(333861, "red", name) @@ -354,66 +737,107 @@ do self:PlaySound(333861, "alert", nil, name) end end + function mod:RicochetingBlade(args) local unit = self:UnitTokenFromGUID(args.sourceGUID) if unit and UnitAffectingCombat(unit) and UnitCanAttack("player", unit) then self:GetUnitTarget(printTarget, 0.2, args.sourceGUID) + self:Nameplate(args.spellId, 12.1, args.sourceGUID) end end end -- Harugia the Bloodthirsty + function mod:BloodthirstyCharge(args) - -- target detection not possible with this spell - self:Message(args.spellId, "yellow", CL.casting:format(args.spellName)) - self:PlaySound(args.spellId, "alert") + self:Message(args.spellId, "orange") + self:Nameplate(args.spellId, 10.5, args.sourceGUID) + self:PlaySound(args.spellId, "alarm") end -- Ancient Captain + +function mod:AncientCaptainEngaged(guid) + if self:Interrupter() then + self:Nameplate(330562, 3.2, guid) -- Demoralizing Shout + end + self:Nameplate(330565, 7.6, guid) -- Shield Bash +end + function mod:DemoralizingShout(args) if self:Friendly(args.sourceFlags) then -- these NPCs can be mind-controlled by DKs return end local canInterrupt, interruptReady = self:Interrupter() - if canInterrupt then self:Message(args.spellId, "red", CL.casting:format(args.spellName)) + self:Nameplate(args.spellId, 17.0, args.sourceGUID) if interruptReady then self:PlaySound(args.spellId, "warning") end end end +function mod:ShieldBash(args) + if self:Friendly(args.sourceFlags) then -- these NPCs can be mind-controlled by DKs + return + end + self:Message(args.spellId, "purple") + self:Nameplate(args.spellId, 9.7, args.sourceGUID) + self:PlaySound(args.spellId, "alert") +end + +function mod:AncientCaptainDeath(args) + self:ClearNameplate(args.destGUID) +end + -- Advent Nevermore + function mod:SeismicStomp(args) local unit = self:UnitTokenFromGUID(args.sourceGUID) if unit and UnitAffectingCombat(unit) and UnitCanAttack("player", unit) then - self:Message(args.spellId, "red", CL.casting:format(args.spellName)) + self:Message(args.spellId, "yellow") + self:Nameplate(args.spellId, 9.3, args.sourceGUID) self:PlaySound(args.spellId, "alert") end end -function mod:UnbreakableGuard(args) + +function mod:UnbreakableGuard(args) -- XXX remove when 11.1 is live local unit = self:UnitTokenFromGUID(args.sourceGUID) if unit and UnitAffectingCombat(unit) and UnitCanAttack("player", unit) then - self:Message(args.spellId, "yellow", CL.casting:format(args.spellName)) + self:Message(args.spellId, "yellow") self:PlaySound(args.spellId, "info") end end -- Rek the Hardened + function mod:UnbalancingBlow(args) local unit = self:UnitTokenFromGUID(args.sourceGUID) if unit and UnitAffectingCombat(unit) and UnitCanAttack("player", unit) then - self:Message(args.spellId, "purple", CL.casting:format(args.spellName)) + self:Message(args.spellId, "purple") + self:Nameplate(args.spellId, 9.7, args.sourceGUID) self:PlaySound(args.spellId, "alert") end end -- Portal Guardian + +function mod:PortalGuardianEngaged(guid) + self:Nameplate(330725, 3.2, guid) -- Shadow Vulnerability + self:Nameplate(330716, 6.0, guid) -- Soulstorm +end + function mod:Soulstorm(args) - self:Message(args.spellId, "orange", CL.casting:format(args.spellName)) + self:Message(args.spellId, "orange") + self:Nameplate(args.spellId, 23.0, args.sourceGUID) self:PlaySound(args.spellId, "long") end + +function mod:ShadowVulnerability(args) + self:Nameplate(args.spellId, 17.0, args.sourceGUID) +end + function mod:ShadowVulnerabilityApplied(args) if self:Dispeller("curse", nil, args.spellId) then self:TargetMessage(args.spellId, "yellow", args.destName) @@ -421,18 +845,38 @@ function mod:ShadowVulnerabilityApplied(args) end end +function mod:PortalGuardianDeath(args) + self:ClearNameplate(args.destGUID) +end + -- Maniacal Soulbinder + +function mod:ManiacalSoulbinderEngaged(guid) + self:Nameplate(330868, 6.9, guid) -- Necrotic Bolt Volley +end + function mod:NecroticBoltVolley(args) if self:Friendly(args.sourceFlags) then -- these NPCs can be mind-controlled by DKs return end self:Message(args.spellId, "red", CL.casting:format(args.spellName)) + self:Nameplate(args.spellId, 0, args.sourceGUID) + if self:Interrupter() then + self:PlaySound(args.spellId, "warning") + else + self:PlaySound(args.spellId, "alert") + end +end - -- ideally this should be interrupted, but it can also be stunned/etc to delay this cast for 2.75 seconds + stun duration - local _, interruptReady = self:Interrupter() - self:PlaySound(args.spellId, interruptReady and "warning" or "alert") +function mod:NecroticBoltVolleyInterrupt(args) + self:Nameplate(330868, 21.7, args.destGUID) end -function mod:SoulCorruptionApplied(args) + +function mod:NecroticBoltVolleySuccess(args) + self:Nameplate(args.spellId, 21.7, args.sourceGUID) +end + +function mod:SoulCorruptionApplied(args) -- XXX removed in 11.1 if not self:Player(args.destFlags) then -- don't alert if a NPC is debuffed (usually by a mind-controlled mob) return end @@ -442,33 +886,95 @@ function mod:SoulCorruptionApplied(args) end end +function mod:ManiacalSoulbinderDeath(args) + self:ClearNameplate(args.destGUID) +end + -- Bone Magus + +function mod:BoneMagusEngaged(guid) + self:Nameplate(342675, 2.0, guid) -- Bone Spear +end + function mod:BoneSpear(args) if self:Friendly(args.sourceFlags) then -- these NPCs can be mind-controlled by DKs return end - self:Message(args.spellId, "orange", CL.casting:format(args.spellName)) + self:Message(args.spellId, "red", CL.casting:format(args.spellName)) + self:Nameplate(args.spellId, 0, args.sourceGUID) self:PlaySound(args.spellId, "alert") end +function mod:BoneSpearInterrupt(args) + self:Nameplate(342675, 17.4, args.destGUID) +end + +function mod:BoneSpearSuccess(args) + self:Nameplate(args.spellId, 17.4, args.sourceGUID) +end + +function mod:BoneMagusDeath(args) + self:ClearNameplate(args.destGUID) +end + -- Nefarious Darkspeaker + +function mod:NefariousDarkspeakerEngaged(guid) + self:Nameplate(333294, 3.1, guid) -- Death Winds + self:Nameplate(333299, 8.8, guid) -- Curse of Desolation +end + function mod:DeathWinds(args) - self:Message(args.spellId, "red", CL.casting:format(args.spellName)) + self:Message(args.spellId, "orange") + self:Nameplate(args.spellId, 8.5, args.sourceGUID) self:PlaySound(args.spellId, "alarm") end +function mod:CurseOfDesolation(args) + self:Nameplate(args.spellId, 14.6, args.sourceGUID) +end + +function mod:CurseOfDesolationApplied(args) + local onMe = self:Me(args.destGUID) + if onMe or self:Dispeller("curse", nil, args.spellId) then + self:TargetMessage(args.spellId, "yellow", args.destName) + if onMe then + self:Say(args.spellId, nil, nil, "Curse of Desolation") + end + self:PlaySound(args.spellId, "info", nil, args.destName) + end +end + +function mod:NefariousDarkspeakerDeath(args) + self:ClearNameplate(args.destGUID) +end + -- Soulforged Bonereaver + +function mod:SoulforgedBonereaverEngaged(guid) + self:Nameplate(331237, 5.0, guid) -- Bone Spikes + self:Nameplate(331223, 21.7, guid) -- Bonestorm +end + function mod:Bonestorm(args) - self:Message(args.spellId, "orange", CL.casting:format(args.spellName)) - self:PlaySound(args.spellId, "long") + self:Message(args.spellId, "orange") + self:Nameplate(args.spellId, 33.9, args.sourceGUID) + self:PlaySound(args.spellId, "alarm") end + function mod:BonestormDamage(args) if not self:Tank() and self:Me(args.destGUID) then - self:PersonalMessage(331223, "underyou") + self:PersonalMessage(331223, "near") self:PlaySound(331223, "underyou") end end + function mod:BoneSpikes(args) - self:Message(args.spellId, "yellow", CL.casting:format(args.spellName)) - self:PlaySound(args.spellId, "info") + self:Message(args.spellId, "yellow") + self:Nameplate(args.spellId, 33.9, args.sourceGUID) + self:PlaySound(args.spellId, "long") +end + +function mod:SoulforgedBonereaverDeath(args) + self:ClearNameplate(args.destGUID) end