You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

665 lines
23 KiB

--------------------------------------------------------------------------------
-- TODO:
-- -- Stop/start bars during a dance? does it delay it or just keep the CD counting down?
--------------------------------------------------------------------------------
-- Module Declaration
--
local mod, CL = BigWigs:NewBoss("The Council of Blood", 2296, 2426)
if not mod then return end
mod:RegisterEnableMob(
166969, -- Baroness Frieda
166970, -- Lord Stavros
166971) -- Castellan Niklaus
mod:SetEncounterID(2412)
mod:SetRespawnTime(30)
mod:SetStage(1)
--------------------------------------------------------------------------------
-- Locals
--
local bossesKilled = 0
local stavrosAlive = true
local friedaAlive = true
local niklausAlive = true
local killOrder = nil
local dancingFeverCount = 1
local mobCollector = {}
--------------------------------------------------------------------------------
-- Localization
--
local L = mod:GetLocale()
if L then
L.custom_on_repeating_dark_recital = "Repeating Dark Recital"
L.custom_on_repeating_dark_recital_desc = "Repeating Dark Recital say messages with icons {rt1}, {rt2} to find your partner while dancing."
L.custom_off_select_boss_order = "Mark Boss Kill Order"
L.custom_off_select_boss_order_desc = "Mark the order the raid will kill the bosses in with cross {rt7}. Requires raid leader or assist to mark."
L.custom_off_select_boss_order_value1 = "Niklaus -> Frieda -> Stavros"
L.custom_off_select_boss_order_value2 = "Frieda -> Niklaus -> Stavros"
L.custom_off_select_boss_order_value3 = "Stavros -> Niklaus -> Frieda"
L.custom_off_select_boss_order_value4 = "Niklaus -> Stavros -> Frieda"
L.custom_off_select_boss_order_value5 = "Frieda -> Stavros -> Niklaus"
L.custom_off_select_boss_order_value6 = "Stavros -> Frieda -> Niklaus"
L.dance_assist = "Dance Assist"
L.dance_assist_desc = "Show directional warnings for the dancing stage."
L.dance_assist_icon = "misc_arrowlup"
L.dance_assist_up = "|T450907:0:0:0:0:64:64:4:60:4:60|t Dance Forward |T450907:0:0:0:0:64:64:4:60:4:60|t"
L.dance_assist_right = "|T450908:0:0:0:0:64:64:4:60:4:60|t Dance Right |T450908:0:0:0:0:64:64:4:60:4:60|t"
L.dance_assist_down = "|T450905:0:0:0:0:64:64:4:60:4:60|t Dance Down |T450905:0:0:0:0:64:64:4:60:4:60|t"
L.dance_assist_left = "|T450906:0:0:0:0:64:64:4:60:4:60|t Dance Left |T450906:0:0:0:0:64:64:4:60:4:60|t"
-- These need to match the in-game boss yells
L.dance_yell_up = "Prance Forward" -- Prance Forward!
L.dance_yell_right = "Shimmy right" -- Shimmy right!
L.dance_yell_down = "Boogie down" -- Boogie down!
L.dance_yell_down_2 = L.dance_yell_down -- Needed because of esMX funkyness
L.dance_yell_left = "Sashay left" -- Sashay left!
end
--------------------------------------------------------------------------------
-- Initialization
--
local dutifulAttendantMarker = mod:AddMarkerOption(false, "npc", 8, -22948, 8) -- Dutiful Attendant
local waltzingVenthyrMarker = mod:AddMarkerOption(false, "npc", 8, -22653, 8) -- Waltzing Venthyr
local afterImageMarker = mod:AddMarkerOption(false, "npc", 6, -22433, 6) -- Afterimage of Baroness Frieda
function mod:GetOptions()
return {
"stages",
"custom_off_select_boss_order",
--[[ Castellan Niklaus ]]--
{346690, "TANK"}, -- Duelist's Riposte
346698, -- Summon Dutiful Attendant
dutifulAttendantMarker,
330978, -- Dredger Servants
330965, -- Castellan's Cadre
{346790, "TANK"}, -- Sintouched Blade
--[[ Baroness Frieda ]]--
{346651, "ME_ONLY"}, -- Drain Essence
337110, -- Dreadbolt Volley
346657, -- Prideful Eruption
346945, -- Manifest Pain
346681, -- Soul Spikes
--[[ Lord Stavros ]]--
327497, -- Evasive Lunge
{331634, "SAY", "ME_ONLY_EMPHASIZE"}, -- Dark Recital
"custom_on_repeating_dark_recital",
346800, -- Waltz of Blood
346303, -- Violent Uproar
waltzingVenthyrMarker,
--[[ Intermission: The Danse Macabre ]]--
330959, -- Danse Macabre
"dance_assist",
{330848, "ME_ONLY"}, -- Wrong Moves
--[[ Mythic ]]--
-22433, -- Afterimage of Baroness Frieda
afterImageMarker,
{347350, "SAY", "SAY_COUNTDOWN"}, -- Dancing Fever
},{
["stages"] = "general",
[346690] = -22147, -- Castellan Niklaus
[346651] = -22148, -- Baroness Frieda
[327497] = -22149, -- Lord Stavros
[330959] = -22146, -- Intermission: The Danse Macabre
[347350] = "mythic",
},{
[331634] = CL.link, -- Dark Recital (Link)
}
end
function mod:OnBossEnable()
self:RegisterEvent("CHAT_MSG_MONSTER_YELL")
self:Death("BossDeath", 166969, 166970, 166971) -- Baroness Frieda, Lord Stavros, Castellan Niklaus
--[[ Castellan Niklaus ]]--
self:Log("SPELL_CAST_START", "DuelistsRiposte", 346690)
self:Log("SPELL_AURA_APPLIED", "DuelistsRiposteApplied", 346690)
self:Log("SPELL_AURA_APPLIED_DOSE", "DuelistsRiposteApplied", 346690)
self:Log("SPELL_CAST_START", "SummonDutifulAttendant", 346698)
self:Log("SPELL_CAST_START", "DredgerServants", 330978)
self:Log("SPELL_CAST_SUCCESS", "CastellansCadre", 330965)
self:Log("SPELL_CAST_START", "SintouchedBlade", 346790)
--[[ Baroness Frieda ]]--
self:Log("SPELL_CAST_START", "DrainEssence", 346654)
self:Log("SPELL_AURA_APPLIED", "DrainEssenceApplied", 346651)
self:Log("SPELL_CAST_START", "DreadboltVolley", 337110)
self:Log("SPELL_CAST_START", "PridefulEruption", 346657)
self:Log("SPELL_CAST_START", "SoulSpikes", 346762)
self:Log("SPELL_AURA_APPLIED", "SoulSpikesApplied", 346681)
self:Log("SPELL_AURA_APPLIED_DOSE", "SoulSpikesApplied", 346681)
--[[ Lord Stavros ]]--
self:Log("SPELL_CAST_START", "EvasiveLunge", 327497)
self:Log("SPELL_AURA_APPLIED", "EvasiveLungeApplied", 327610)
self:Log("SPELL_AURA_APPLIED_DOSE", "EvasiveLungeApplied", 327610)
self:Log("SPELL_CAST_START", "DarkRecital", 331634)
self:Log("SPELL_AURA_APPLIED", "DarkRecitalApplied", 331637, 331636)
self:Log("SPELL_AURA_REMOVED", "DarkRecitalRemoved", 331637, 331636)
self:Log("SPELL_CAST_START", "WaltzOfBlood", 346800)
self:Log("SPELL_CAST_START", "ViolentUproar", 346303)
--[[ Intermission: The Danse Macabre ]]--
self:Log("SPELL_CAST_SUCCESS", "DanseMacabreBegins", 347376) -- Dance Area Trigger // This is when the NPC's start running to the stage
self:Log("SPELL_AURA_REMOVED", "DanseMacabreOver", 330959)
self:Log("SPELL_AURA_APPLIED", "WrongMovesApplied", 330848)
--[[ Mythic ]]--
self:Log("SPELL_AURA_APPLIED", "DancingFeverApplied", 347350)
self:Log("SPELL_AURA_APPLIED", "GroundDamage", 346945) -- Manifest Pain
self:Log("SPELL_PERIODIC_DAMAGE", "GroundDamage", 346945)
self:Log("SPELL_PERIODIC_MISSED", "GroundDamage", 346945)
end
function mod:OnEngage()
bossesKilled = 0
friedaAlive = true
stavrosAlive = true
niklausAlive = true
dancingFeverCount = 1
mobCollector = {}
self:SetStage(1)
self:CDBar(346698, 7.5) -- Summon Dutiful Attendant
self:CDBar(346690, 18.5) -- Duelist's Riposte
self:CDBar(337110, 6) -- Dreadbolt Volley
self:CDBar(346651, 15.5) -- Drain Essence
self:CDBar(327497, 8.5) -- Evasive Lunge
self:CDBar(331634, 24) -- Dark Recital
if self:Mythic() then
self:CDBar(347350, 5, CL.count:format(self:SpellName(347350), dancingFeverCount)) -- Dancing Fever
self:RegisterEvent("INSTANCE_ENCOUNTER_ENGAGE_UNIT") -- Afterimage warnings
end
-- Mark kill order
killOrder = self:GetOption("custom_off_select_boss_order")
if killOrder == 1 or killOrder == 4 then -- Niklaus first
local boss = self:GetUnitIdByGUID(166971) -- Castellan Niklaus
if boss then
self:CustomIcon(false, boss, 7)
end
elseif killOrder == 2 or killOrder == 5 then -- Frieda First
local boss = self:GetUnitIdByGUID(166969) -- Baroness Frieda
if boss then
self:CustomIcon(false, boss, 7)
end
elseif killOrder == 3 or killOrder == 6 then -- Stavros First
local boss = self:GetUnitIdByGUID(166970) -- Lord Stavros
if boss then
self:CustomIcon(false, boss, 7)
end
end
end
--------------------------------------------------------------------------------
-- Event Handlers
--
function mod:INSTANCE_ENCOUNTER_ENGAGE_UNIT()
local unit, guid = self:GetBossId(172803) -- Afterimage of Baroness Frieda
if guid and not mobCollector[guid] then
mobCollector[guid] = true
self:Message(-22433, "red", CL.spawned:format(self:SpellName(-22433)), false)
self:PlaySound(-22433, "long")
if self:GetOption(afterImageMarker) then
self:CustomIcon(false, unit, 6)
end
end
end
function mod:CHAT_MSG_MONSTER_YELL(event, msg, npcname)
if msg:find(L.dance_yell_up, nil, true) then
self:Message("dance_assist", "blue", L.dance_assist_up, false)
elseif msg:find(L.dance_yell_right, nil, true) then
self:Message("dance_assist", "blue", L.dance_assist_right, false)
elseif msg:find(L.dance_yell_down, nil, true) or msg:find(L.dance_yell_down_2, nil, true) then
self:Message("dance_assist", "blue", L.dance_assist_down, false)
elseif msg:find(L.dance_yell_left, nil, true) then
self:Message("dance_assist", "blue", L.dance_assist_left, false)
end
end
function mod:BossDeath(args)
bossesKilled = bossesKilled + 1
if bossesKilled > 2 then return end -- You win at 3
self:SetStage(bossesKilled + 1)
self:Message("stages", "green", CL.mob_killed:format(args.destName, bossesKilled, 3), false)
if args.mobId == 166969 then -- Frieda
friedaAlive = false
self:StopBar(346651) -- Drain Essence
self:StopBar(337110) -- Dreadbolt Volley
self:StopBar(346657) -- Prideful Eruption
elseif args.mobId == 166970 then -- Stavros
stavrosAlive = false
self:StopBar(327497) -- Evasive Lunge
self:StopBar(331634) -- Dark Recital
self:StopBar(346800) -- Waltz of Blood
elseif args.mobId == 166971 then -- Niklaus
niklausAlive = false
self:StopBar(346690) -- Duelist's Riposte
self:StopBar(346698) -- Summon Dutiful Attendant
self:StopBar(330978) -- Dredger Servants
end
if self:Mythic() then
if friedaAlive == false then
self:CDBar(337110, 20) -- Start/Reset the initial Dreadbolt Volley Afterimage Spawn.
end
if stavrosAlive == false then
self:CDBar(331634, 40) -- Start/Reset the initial Dark Recital Afterimage Spawn
end
end
if bossesKilled == 1 then
if friedaAlive then
self:CDBar(346651, 9) -- Drain Essence
self:CDBar(346657, 38) -- Prideful Eruption
end
if stavrosAlive then
self:CDBar(327497, 10.9) -- Evasive Lunge
self:CDBar(331634, 26.6) -- Dark Recital
self:CDBar(346800, 33.8) -- Waltz of Blood
end
if niklausAlive then
self:CDBar(330978, 8.1) -- Dredger Servants
self:CDBar(346690, 12.3) -- Duelist's Riposte
self:CDBar(346698, 42.3) -- Summon Dutiful Attendant
end
if killOrder == 2 or killOrder == 3 then -- Niklaus second
local boss = self:GetUnitIdByGUID(166971) -- Castellan Niklaus
if boss then
self:CustomIcon(false, boss, 7)
end
elseif killOrder == 1 or killOrder == 6 then -- Frieda second
local boss = self:GetUnitIdByGUID(166969) -- Baroness Frieda
if boss then
self:CustomIcon(false, boss, 7)
end
elseif killOrder == 4 or killOrder == 5 then -- Stavros second
local boss = self:GetUnitIdByGUID(166970) -- Lord Stavros
if boss then
self:CustomIcon(false, boss, 7)
end
end
elseif bossesKilled == 2 then
if friedaAlive then
self:CDBar(346651, 9) -- Drain Essence
self:CDBar(346657, 24) -- Prideful Eruption
self:CDBar(346681, 35.2) -- Soul Spikes
end
if stavrosAlive then
self:CDBar(331634, 9.4) -- Dark Recital
self:CDBar(327497, 15.2) -- Evasive Lunge
self:CDBar(346303, 29.8) -- Violent Uproar
self:CDBar(346800, 65.2) -- Waltz of Blood
end
if niklausAlive then
self:CDBar(346690, 12.3) -- Duelist's Riposte
self:CDBar(330965, 16.6) -- Castellan's Cadre
self:CDBar(346698, 25.2) -- Summon Dutiful Attendant
self:CDBar(330978, 43.7) -- Dredger Servants
end
if killOrder == 5 or killOrder == 6 then -- Niklaus last
local boss = self:GetUnitIdByGUID(166971) -- Castellan Niklaus
if boss then
self:CustomIcon(false, boss, 7)
end
elseif killOrder == 3 or killOrder == 4 then -- Frieda last
local boss = self:GetUnitIdByGUID(166969) -- Baroness Frieda
if boss then
self:CustomIcon(false, boss, 7)
end
elseif killOrder == 1 or killOrder == 2 then -- Stavros last
local boss = self:GetUnitIdByGUID(166970) -- Lord Stavros
if boss then
self:CustomIcon(false, boss, 7)
end
end
end
end
--[[ Castellan Niklaus ]]--
function mod:DuelistsRiposte(args)
self:Message(args.spellId, "purple")
self:PlaySound(args.spellId, "alarm")
local cd = self:Mythic() and 7.5 or 8.5
if stavrosAlive then -- 2 tank bosses alive, longer CD
if self:Mythic() then
cd = bossesKilled == 0 and 18.7 or 15
else
cd = bossesKilled == 0 and 21.5 or 17
end
end
self:CDBar(args.spellId, cd)
end
function mod:DuelistsRiposteApplied(args)
self:NewStackMessage(args.spellId, "purple", args.destName, args.amount, 2)
end
do
function mod:DutifulAttendantMarking(event, unit, guid)
if self:MobId(guid) == 175992 then -- Dutiful Attendant
self:CustomIcon(dutifulAttendantMarker, unit, 8)
self:UnregisterTargetEvents()
end
end
function mod:SummonDutifulAttendant(args)
self:Message(args.spellId, "red")
self:PlaySound(args.spellId, "warning")
self:CDBar(args.spellId, self:Mythic() and (bossesKilled == 2 and 22.5 or 45) or bossesKilled == 2 and 25.5 or 51.5)
if self:GetOption(dutifulAttendantMarker) then
self:RegisterTargetEvents("DutifulAttendantMarking")
self:ScheduleTimer("UnregisterTargetEvents", 10)
end
end
end
function mod:DredgerServants(args)
self:Message(args.spellId, "yellow")
self:PlaySound(args.spellId, "long")
self:CDBar(args.spellId, self:Mythic() and 45 or 51)
end
function mod:CastellansCadre(args)
self:Message(args.spellId, "cyan")
self:PlaySound(args.spellId, "info")
self:CDBar(args.spellId, self:Mythic() and 45 or 51.5)
end
function mod:SintouchedBlade(args)
self:Message(args.spellId, "purple")
self:PlaySound(args.spellId, "alarm")
self:CDBar(args.spellId, 5)
end
--[[ Baroness Frieda ]]--
do
local playerList = {}
function mod:DrainEssence()
playerList = {}
self:CDBar(346651, self:Mythic() and 22.5 or bossesKilled == 1 and 20 or bossesKilled == 2 and 45 or 25)
end
function mod:DrainEssenceApplied(args)
playerList[#playerList+1] = args.destName
if self:Me(args.destGUID) then
self:PlaySound(args.spellId, "alarm")
end
self:NewTargetsMessage(args.spellId, "orange", playerList, 3)
end
end
do
local prev = 0
function mod:DreadboltVolley(args)
if not friedaAlive and self:Mythic() then -- Afterimage stuff
local _, ready = self:Interrupter() -- warn regardless of target/focus
if ready then
self:Message(args.spellId, "yellow", CL.casting:format(args.spellName))
self:PlaySound(args.spellId, "alarm")
end
local t = args.time
if t-prev > 15 then -- 3 casts, 3s~ between, only start bar for the first in the set
prev = t
self:CDBar(args.spellId, 45)
end
else -- Actual Frieda
local canDo, ready = self:Interrupter(args.sourceGUID)
if canDo then
self:Message(args.spellId, "yellow", CL.casting:format(args.spellName))
if ready then
self:PlaySound(args.spellId, "alarm")
end
end
self:CDBar(args.spellId, 5.3) -- Spell Lockout?
end
end
end
function mod:PridefulEruption(args)
self:Message(args.spellId, "red")
self:PlaySound(args.spellId, "warning")
self:CDBar(args.spellId, (bossesKilled == 1 and 120 or bossesKilled == 2 and 41.5)) -- Cooldown with 1 boss killed unconfirmed
end
function mod:SoulSpikes(args)
self:Message(346681, "orange", CL.casting:format(args.spellName))
self:PlaySound(346681, "alert")
self:CDBar(346681, 41.5)
end
function mod:SoulSpikesApplied(args)
local amount = args.amount or 1
self:NewStackMessage(args.spellId, "orange", args.destName, amount)
self:PlaySound(args.spellId, "info")
end
--[[ Lord Stavros ]]--
function mod:EvasiveLunge(args)
self:Message(args.spellId, "orange")
self:PlaySound(args.spellId, "alarm")
local cd = self:Mythic() and 7.5 or 11
if niklausAlive then -- 2 tank bosses alive, longer CD
if self:Mythic() then
cd = bossesKilled == 0 and 18.7 or 15
else
cd = bossesKilled == 0 and 21.5 or 17
end
end
self:CDBar(args.spellId, cd)
end
function mod:EvasiveLungeApplied(args)
local amount = args.amount or 1
if self:Me(args.destGUID) and not self:Tank() then
self:NewStackMessage(327497, "blue", args.destName, amount)
self:PlaySound(327497, "alarm")
elseif self:Tank() and self:Tank(args.destName) then
self:NewStackMessage(327497, "purple", args.destName, amount, 2)
end
end
do
local firstDarkRecitalTargetGUID, lastDarkRecitalName, darkrecitalPairCount = nil, nil, 0
local darkRecitalFallbackTimer, sayTimer = nil, nil
function mod:DarkRecital(args)
self:Message(args.spellId, "orange")
firstDarkRecitalTargetGUID = nil
darkrecitalPairCount = 0
if stavrosAlive == false then
self:Bar(args.spellId, bossesKilled == 1 and 60 or 37.7)
else
self:Bar(args.spellId, self:Mythic() and (bossesKilled == 0 and 45 or bossesKilled == 1 and 60 or 22.9) or bossesKilled == 0 and 51.5 or bossesKilled == 1 and 69.5 or 22.9)
end
end
function mod:DarkRecitalApplied(args)
if self:Me(args.destGUID) then
self:PlaySound(331634, "warning")
end
if args.spellId == 331636 then -- 1st Dark Recital Target
firstDarkRecitalTargetGUID = args.destGUID
lastDarkRecitalName = args.destName
darkrecitalPairCount = darkrecitalPairCount + 1
if self:Me(args.destGUID) then -- fallback if a partner is missing
darkRecitalFallbackTimer = self:ScheduleTimer("PersonalMessage", 0.1, 331634, false, CL.link_with:format("|cffff0000???"))
end
elseif args.spellId == 331637 and firstDarkRecitalTargetGUID then -- 2nd Dark Recital Target
if self:Me(args.destGUID) then -- We got 2nd debuff, so print last name
self:PersonalMessage(331634, false, CL.link_with_icon:format(darkrecitalPairCount, self:ColorName(lastDarkRecitalName)))
local icon = ("{rt%d}"):format(darkrecitalPairCount)
self:Yell(331634, icon, true)
if self:GetOption("custom_on_repeating_dark_recital") then
sayTimer = self:ScheduleRepeatingTimer("Yell", 1.5, false, icon, true)
end
elseif self:Me(firstDarkRecitalTargetGUID) then -- We got 1st debuff so this is our partner
self:PersonalMessage(331634, false, CL.link_with_icon:format(darkrecitalPairCount, self:ColorName(args.destName)))
local icon = ("{rt%d}"):format(darkrecitalPairCount)
self:Yell(331634, icon, true)
if self:GetOption("custom_on_repeating_dark_recital") then
sayTimer = self:ScheduleRepeatingTimer("Yell", 1.5, false, icon, true)
end
end
firstDarkRecitalTargetGUID = nil
if darkRecitalFallbackTimer then -- We printed above, so cancel this
self:CancelTimer(darkRecitalFallbackTimer)
darkRecitalFallbackTimer = nil
end
else -- Missing a partner, alternative message
if self:Me(args.destGUID) or self:Me(firstDarkRecitalTargetGUID) then
self:PersonalMessage(331634, false, CL.link_with:format("|cffff00ff???"))
if darkRecitalFallbackTimer then -- We printed above, so cancel this
self:CancelTimer(darkRecitalFallbackTimer)
darkRecitalFallbackTimer = nil
end
end
firstDarkRecitalTargetGUID = nil
end
end
function mod:DarkRecitalRemoved(args)
if self:Me(args.destGUID) then
self:Message(331634, "green", CL.removed:format(args.spellName))
self:PlaySound(331634, "info")
if sayTimer then
self:CancelTimer(sayTimer)
sayTimer = nil
end
end
end
end
function mod:WaltzOfBlood(args)
self:Message(args.spellId, "yellow")
self:PlaySound(args.spellId, "long")
self:Bar(args.spellId, 60)
end
do
function mod:WaltzingVenthyrMarking(event, unit, guid)
if self:MobId(guid) == 176026 then -- Dancing Fool (only 1 targetable unit)
self:CustomIcon(waltzingVenthyrMarker, unit, 8)
self:UnregisterTargetEvents()
end
end
local prev = 0
function mod:ViolentUproar(args) -- Maybe a better way?
local t = args.time
if t-prev > 5 then
prev = t
self:Message(args.spellId, "orange")
self:PlaySound(args.spellId, "warning")
self:Bar(args.spellId, 60)
if self:GetOption(waltzingVenthyrMarker) then
self:RegisterTargetEvents("WaltzingVenthyrMarking")
self:ScheduleTimer("UnregisterTargetEvents", 5)
end
end
end
end
--[[ Intermission: The Danse Macabre ]]--
function mod:DanseMacabreBegins(args)
self:Message(330959, "green") -- Dance Macabre
self:PlaySound(330959, "long")
self:Bar(330959, 38.8, self:SpellName(305757)) -- 305757 = "Dancing"
self:CastBar(330959, 10.2) -- Dance Macabre
self:PauseBar(346651) -- Drain Essence
self:PauseBar(337110) -- Dreadbolt Volley
self:PauseBar(346657) -- Prideful Eruption
self:PauseBar(346681) -- Soul Spikes
self:PauseBar(327497) -- Evasive Lunge
self:PauseBar(331634) -- Dark Recital
self:PauseBar(346800) -- Waltz of Blood
self:PauseBar(346690) -- Duelist's Riposte
self:PauseBar(346698) -- Summon Dutiful Attendant
self:PauseBar(330978) -- Dredger Servants
self:PauseBar(330965) -- Castellans Cadre
self:PauseBar(346303) -- Violent Uproar
if self:Mythic() then
-- Dancing Fever does not pause but has a timer reset when dancing.
-- Pauzing the bar right away so the player can see when the ability will come in line with others.
self:CDBar(347350, 5.8, CL.count:format(self:SpellName(347350), dancingFeverCount)) -- Dancing Fever
self:PauseBar(347350, CL.count:format(self:SpellName(347350), dancingFeverCount)) -- Dancing Fever
end
end
function mod:DanseMacabreOver(args)
self:ResumeBar(346651) -- Drain Essence
self:ResumeBar(337110) -- Dreadbolt Volley
self:ResumeBar(346657) -- Prideful Eruption
self:ResumeBar(346681) -- Soul Spikes
self:ResumeBar(327497) -- Evasive Lunge
self:ResumeBar(331634) -- Dark Recital
self:ResumeBar(346800) -- Waltz of Blood
self:ResumeBar(346690) -- Duelist's Riposte
self:ResumeBar(346698) -- Summon Dutiful Attendant
self:ResumeBar(330978) -- Dredger Servants
self:ResumeBar(330965) -- Castellans Cadre
self:ResumeBar(346303) -- Violent Uproar
self:ResumeBar(347350, CL.count:format(self:SpellName(347350), dancingFeverCount)) -- Dancing Fever
end
function mod:WrongMovesApplied(args)
self:TargetMessage(args.spellId, "orange", args.destName) -- ME_ONLY is enabled, but players can get all fails if they would like too
if self:Me(args.destGUID) then
self:PlaySound(args.spellId, "info")
end
end
--[[ Mythic ]]--
do
local playerList = {}
local prev = 0
function mod:DancingFeverApplied(args)
local t = args.time
if t-prev > 3 then
prev = t
playerList = {}
dancingFeverCount = dancingFeverCount + 1
self:CDBar(args.spellId, 60, CL.count:format(args.spellName, dancingFeverCount))
end
playerList[#playerList+1] = args.destName
if self:Me(args.destGUID) then
self:PlaySound(args.spellId, "warning")
end
self:NewTargetsMessage(args.spellId, "orange", playerList, 5, CL.count:format(args.spellName, dancingFeverCount-1))
end
end
do
local prev = 0
function mod:GroundDamage(args)
if self:Me(args.destGUID) then
local t = args.time
if t-prev > 2 then
prev = t
self:PlaySound(args.spellId, "underyou")
self:PersonalMessage(args.spellId, "underyou")
end
end
end
end