From 506707a718c29c630d023acdfd00217590c731f7 Mon Sep 17 00:00:00 2001 From: Nick Towle Date: Tue, 21 Nov 2023 01:17:03 -0500 Subject: [PATCH] Legion/BlackRookHold/Trash: "Drink" Ancient Potion, Soul Blade cast, Arcane Blitz updates --- Legion/BlackRookHold/Options/Colors.lua | 7 ++- Legion/BlackRookHold/Options/Sounds.lua | 1 + Legion/BlackRookHold/Trash.lua | 75 ++++++++++++++++++------- 3 files changed, 61 insertions(+), 22 deletions(-) diff --git a/Legion/BlackRookHold/Options/Colors.lua b/Legion/BlackRookHold/Options/Colors.lua index ffbba8bb3..4ff6bf16f 100644 --- a/Legion/BlackRookHold/Options/Colors.lua +++ b/Legion/BlackRookHold/Options/Colors.lua @@ -39,12 +39,13 @@ BigWigs:AddColors("Kurtalos Ravencrest", { BigWigs:AddColors("Black Rook Hold Trash", { [194966] = {"blue","orange"}, [196916] = "orange", - [200084] = {"blue","orange"}, - [200105] = "yellow", + [200084] = {"blue","orange","yellow"}, + [200105] = "cyan", [200248] = "yellow", [200261] = "orange", - [200291] = "yellow", + [200291] = "orange", [200343] = "red", + [200784] = "yellow", [200913] = "orange", [203163] = {"blue","orange"}, [204896] = "red", diff --git a/Legion/BlackRookHold/Options/Sounds.lua b/Legion/BlackRookHold/Options/Sounds.lua index 4da71c7ae..f974974d7 100644 --- a/Legion/BlackRookHold/Options/Sounds.lua +++ b/Legion/BlackRookHold/Options/Sounds.lua @@ -45,6 +45,7 @@ BigWigs:AddSounds("Black Rook Hold Trash", { [200261] = "alarm", [200291] = "alert", [200343] = "alarm", + [200784] = "alert", [200913] = "alarm", [203163] = {"alert","warning"}, [204896] = "alert", diff --git a/Legion/BlackRookHold/Trash.lua b/Legion/BlackRookHold/Trash.lua index 38f76cd8a..1310bf39c 100644 --- a/Legion/BlackRookHold/Trash.lua +++ b/Legion/BlackRookHold/Trash.lua @@ -80,6 +80,7 @@ function mod:GetOptions() -- Risen Arcanist 200248, -- Arcane Blitz -- Wyrmtongue Scavenger + 200784, -- "Drink" Ancient Potion 200913, -- Indigestion -- Bloodscent Felhound 204896, -- Drain Life @@ -101,7 +102,7 @@ function mod:GetOptions() [200291] = L.risen_scout, [200343] = L.risen_archer, [200248] = L.risen_arcanist, - [200913] = L.wyrmtongue_scavenger, + [200784] = L.wyrmtongue_scavenger, [204896] = L.bloodscent_felhound, [203163] = L.felspite_dominator, [214003] = L.risen_swordsman, @@ -111,6 +112,8 @@ end function mod:OnBossEnable() -- Ghostly Retainer + self:Log("SPELL_CAST_START", "SoulBlade", 200084) + self:Log("SPELL_AURA_APPLIED", "SoulBladeApplied", 200084) self:Log("SPELL_AURA_APPLIED_DOSE", "SoulBladeApplied", 200084) -- Ghostly Protector @@ -139,13 +142,13 @@ function mod:OnBossEnable() -- Risen Arcanist self:Log("SPELL_CAST_START", "ArcaneBlitz", 200248) + self:Log("SPELL_AURA_APPLIED", "ArcaneBlitzApplied", 200248) self:Log("SPELL_AURA_APPLIED_DOSE", "ArcaneBlitzApplied", 200248) self:Log("SPELL_AURA_REMOVED", "ArcaneBlitzRemoved", 200248) -- Wyrmtongue Scavenger - -- TODO this is just spammed if you stop the first cast, either delete or see if it's adjusted - --self:Log("SPELL_CAST_START", "DrinkAncientPotion", 200784) - -- TODO other potion effects? ("Hyperactive, Frenzy Potion) + self:Log("SPELL_CAST_START", "DrinkAncientPotion", 200784) + -- TODO other potion effects? (Hyperactive, Frenzy Potion) self:Log("SPELL_CAST_START", "Indigestion", 200913) -- Bloodscent Felhound @@ -175,23 +178,41 @@ end -- Ghostly Retainer -function mod:SoulBladeApplied(args) - if args.amount % 2 == 0 and (self:Dispeller("magic", nil, args.spellId) or self:Me(args.destGUID)) then - self:StackMessage(args.spellId, "orange", args.destName, args.amount, 4) - self:PlaySound(args.spellId, "alert", nil, args.destName) +do + local prev = 0 + function mod:SoulBlade(args) + local t = args.time + if t - prev > 2 then + prev = t + self:Message(args.spellId, "yellow") + self:PlaySound(args.spellId, "alert") + end + end +end + +do + local prev = 0 + function mod:SoulBladeApplied(args) + local t = args.time + if t - prev > 3 and (self:Dispeller("magic", nil, args.spellId) or self:Me(args.destGUID)) then + prev = t + self:StackMessage(args.spellId, "orange", args.destName, args.amount, 2) + self:PlaySound(args.spellId, "alert", nil, args.destName) + end end end -- Ghostly Protector function mod:SacrificeSoul(args) - self:Message(args.spellId, "yellow", CL.on:format(args.spellName, args.sourceName)) + self:Message(args.spellId, "cyan", CL.on:format(args.spellName, args.sourceName)) self:PlaySound(args.spellId, "info") end -- Ghostly Councilor function mod:DarkMending(args) + -- non-Mythic+ only self:Message(args.spellId, "red", CL.casting:format(args.spellName)) self:PlaySound(args.spellId, "warning") end @@ -226,10 +247,10 @@ do local amount = args.amount local t = args.time -- stacks very quickly on the tank - if t - prev > 3 and amount % 10 == 0 and (self:Me(args.destGUID) or self:Dispeller("magic", nil, 225908)) then + if t - prev > 3 and amount % 5 == 0 and (self:Me(args.destGUID) or self:Dispeller("magic", nil, 225908)) then prev = t - self:StackMessage(225908, "yellow", args.destName, amount, 30) - if amount >= 30 then + self:StackMessage(225908, "yellow", args.destName, amount, 10) + if amount >= 15 then self:PlaySound(225908, "warning", nil, args.destName) else self:PlaySound(225908, "alert", nil, args.destName) @@ -260,7 +281,7 @@ do local t = args.time if t - prev > 1.5 then prev = t - self:Message(args.spellId, "yellow") + self:Message(args.spellId, "orange") self:PlaySound(args.spellId, "alert") end end @@ -286,16 +307,20 @@ do local blitzTracker = {} function mod:ArcaneBlitz(args) - -- only show a message if stacks are getting high - local amount = blitzTracker[args.sourceGUID] - if amount and amount > 2 and (self:Interrupter() or self:Dispeller("magic", true)) then - self:Message(args.spellId, "yellow", CL.count:format(args.spellName, amount)) + local amount = blitzTracker[args.sourceGUID] or 0 + local _, interruptReady = self:Interrupter() + if interruptReady or (self:Dispeller("magic") and amount >= 2) then + if amount >= 1 then + self:Message(args.spellId, "yellow", CL.casting:format(CL.count:format(args.spellName, amount))) + else + self:Message(args.spellId, "yellow", CL.casting:format(args.spellName)) + end self:PlaySound(args.spellId, "alert") end end function mod:ArcaneBlitzApplied(args) - blitzTracker[args.destGUID] = args.amount + blitzTracker[args.destGUID] = args.amount or 1 end function mod:ArcaneBlitzRemoved(args) @@ -307,9 +332,21 @@ end do local prev = 0 - function mod:Indigestion(args) + function mod:DrinkAncientPotion(args) local t = args.time if t - prev > 2 then + prev = t + self:Message(args.spellId, "yellow") + self:PlaySound(args.spellId, "alert") + end + end +end + +do + local prev = 0 + function mod:Indigestion(args) + local t = args.time + if t - prev > 1.5 then prev = t self:Message(args.spellId, "orange") self:PlaySound(args.spellId, "alarm")