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.
875 lines
35 KiB
875 lines
35 KiB
--------------------------------------------------------------------------------
|
|
-- Module Declaration
|
|
--
|
|
|
|
local mod, CL = BigWigs:NewBoss("The Jailer", 2481, 2464)
|
|
if not mod then return end
|
|
mod:RegisterEnableMob(180990) -- The Jailer
|
|
mod:SetEncounterID(2537)
|
|
mod:SetRespawnTime(30)
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Locals
|
|
--
|
|
|
|
local relentlessDominationCount = 1
|
|
local chainsOfOppressionCount = 1
|
|
local martyrdomCount = 1
|
|
local tormentCount = 1
|
|
local runeOfDamnationCount = 1
|
|
local unholyAttunementCount = 1
|
|
local shatteringBlastCount = 1
|
|
local runeOfCompulsion = 1
|
|
local decimatorCount = 1
|
|
local desolationCount = 1
|
|
local runeOfDominationCount = 1
|
|
local chainsOfAnguishCount = 1
|
|
local defileCount = 1
|
|
local fallingDebrisCount = 1
|
|
local currentAzerothHealth = 100
|
|
local lastAzerothHealth = 100
|
|
local worldCount = 1
|
|
local specialCount = 1
|
|
local specialTimer = nil
|
|
local meteorCleaveCount = 1
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Timers
|
|
--
|
|
|
|
local timersNormal = {
|
|
[1] = {
|
|
[365436] = {21.9, 51, 69, 0}, -- Torment
|
|
[363893] = {40, 40, 40, 40, 0}, -- Martyrdom
|
|
[362028] = {48, 60, 60, 0}, -- Relenting Domination
|
|
[359809] = {90, 0}, -- Chains of Oppression
|
|
[360281] = {11, 19, 34, 33.0, 28, 26.0, 0}, -- Rune of Damnation
|
|
},
|
|
[2] = {
|
|
[365436] = {42, 50.0, 55.0, 45.0}, -- Torment
|
|
[360562] = {27.9, 57.5, 47.5, 43.0}, -- Decimator
|
|
[360373] = {18.9, 45, 45, 45, 42.5, 0}, -- Unholy Attunement
|
|
[359856] = {34.5, 13.4, 30, 15, 30.9, 15.5, 28.4, 15.9}, -- Shattering Blast
|
|
[366285] = {61.9, 60, 60}, -- Rune of Compulsion
|
|
},
|
|
[3] = {
|
|
[365436] = {26, 86.9}, -- Torment
|
|
[360562] = {34.9, 52, 41.9, 41.9}, -- Decimator
|
|
[365033] = {41.9, 60, 60}, -- Desolation
|
|
[365150] = {63, 83.9}, -- Rune of Domination
|
|
[365212] = {51.9, 41.9, 41.9, 41.9}, -- Chains of Anguish
|
|
[365169] = {55, 40.9, 43, 42.9}, -- Defile
|
|
},
|
|
}
|
|
|
|
local timersHeroic = {
|
|
[1] = {
|
|
[365436] = {11.0, 52.0, 45.0, 47.0, 0}, -- Torment
|
|
[363893] = {31.0, 40.0, 52.0, 39.0, 0}, -- Martyrdom
|
|
[362028] = {55.0, 57.0, 56.0, 0}, -- Relenting Domination
|
|
[359809] = {40.0, 48.0, 49.0, 0}, -- Chains of Oppression
|
|
[360281] = {22.0, 25.0, 29.0, 21.0, 30.5, 19.5, 0}, -- Rune of Damnation
|
|
},
|
|
[2] = {
|
|
[365436] = {22, 16.0, 35.5, 61.5, 29, 30, 0}, -- Torment
|
|
[360562] = {26, 41.0, 35, 45, 41, 0}, -- Decimator
|
|
[360373] = {19, 45.0, 45.0, 46, 41.9, 0}, -- Unholy Attunement
|
|
[359856] = {33.0, 16.0, 30.0, 15.0, 29.0, 17.0, 29.0, 14.0, 0}, -- Shattering Blast
|
|
[366285] = {41.0, 46.0, 45.0, 47, 0}, -- Rune of Compulsion
|
|
},
|
|
[3] = {
|
|
[365436] = {51, 75}, -- Torment
|
|
[360562] = {26, 38, 47, 33, 40}, -- Decimator
|
|
[365033] = {42, 60, 64}, -- Desolation
|
|
[365150] = {71, 79}, -- Rune of Domination
|
|
[365212] = {37, 55, 43, 43}, -- Chains of Anguish
|
|
[365169] = {33, 45, 45, 52}, -- Defile
|
|
},
|
|
}
|
|
|
|
local timersMythic = {
|
|
[1] = {
|
|
[365436] = {8.0, 42.0, 40.0, 32.0, 44.0, 0}, -- Torment
|
|
[363893] = {30.0, 47.0, 31.0, 43.0}, -- Martyrdom
|
|
[362028] = {44.0, 54.0, 70, 0}, -- Relenting Domination
|
|
[359809] = {16.0, 111.0, 0}, -- Chains of Oppression
|
|
[360281] = {35.0, 23.0, 26.0, 29.0, 27.0, 18.0, 0}, -- Rune of Damnation
|
|
-- Heals are in mythicSpecialTimers
|
|
},
|
|
[2] = {
|
|
[365436] = {33.0, 38.0, 35.0, 25.0, 32.0, 26.0}, -- Torment
|
|
[360562] = {57.0, 42.5, 33.5, 41.0}, -- Decimator
|
|
[360373] = {19.0, 45.0, 45.0, 45.0, 42.0}, -- Unholy Attunement
|
|
[359856] = {35.0, 14.0, 30.0, 15.0, 26.0, 22.0, 26.0, 14.0}, -- Shattering Blast
|
|
[366285] = {27.0, 50, 50.0, 61.0}, -- Rune of Compulsion
|
|
-- Heals are in mythicSpecialTimers
|
|
},
|
|
[3] = {
|
|
[365436] = {58.0, 110.0, 0}, -- Torment
|
|
[360562] = {28.0, 44.0, 39.0, 36.0, 0}, -- Decimator
|
|
[365033] = {39.0, 82.0, 0}, -- Desolation
|
|
[365150] = {85.0, 57.0, 0}, -- Rune of Domination
|
|
[365212] = {36.0, 47.0, 47.5, 40.5, 0}, -- Chains of Anguish
|
|
[365169] = {55.0, 24.0, 39.0, 40, 0}, -- Defile
|
|
-- Heals are in mythicSpecialTimers
|
|
},
|
|
[4] = {
|
|
[360281] = {14.5, 28.5, 43.0}, -- Rune of Damnation
|
|
[360378] = {20.0, 61.0, 44.0}, -- Meteor Cleave
|
|
[368591] = {12.5}, -- Death Sentence
|
|
[360562] = {25.0, 31.0, 48.0}, -- Decimator
|
|
[365436] = {50.0, 24.0, 38.0}, -- Torment
|
|
-- Dispels are in mythicSpecialTimers
|
|
},
|
|
}
|
|
|
|
local timersLFR = {
|
|
[1] = {
|
|
[365436] = {21.9, 51, 69, 0}, -- Torment
|
|
[363893] = {40, 40, 40, 40, 0}, -- Martyrdom
|
|
[362028] = {48, 60, 60, 0}, -- Relenting Domination
|
|
[359809] = {90, 0}, -- Chains of Oppression
|
|
[360281] = {11, 19, 34, 33.0, 28, 26.0, 0}, -- Rune of Damnation
|
|
},
|
|
[2] = {
|
|
[365436] = {37.0, 59.0, 18.0, 39.0, 39.0, 0}, -- Torment
|
|
[360562] = {23.0, 65.0, 39.0, 50.0, 0}, -- Decimator
|
|
[360373] = {196.7, 0}, -- Unholy Attunement
|
|
[359856] = {30.0, 22.0, 22.0, 28.0, 18.0, 20.0, 22.0, 22.0, 0}, -- Shattering Blast
|
|
[366285] = {59.0, 48.1, 61.9, 0}, -- Rune of Compulsion
|
|
},
|
|
[3] = { -- from a 15:25 kill (6:15 P3) with a few extra extrapolated times
|
|
[365436] = {46.0, 42.0, 32.0, 10.0}, -- Torment (first sequence is 26, 50, 32, 10; then this repeats)
|
|
[360562] = {35.0, 52.0, 42.0, 42.0, 45.0, 42.0, 42.0, 46.0, 42.0, 42.0, 46.0, 42.0, 42.0, 46.0}, -- Decimator
|
|
[365150] = {63.0, 84.0, 45.0, 84.0, 46.0, 84.0, 46.0, 84.0, 46.0, 84.0}, -- Rune of Domination
|
|
[365212] = {52.0, 42.0, 42.0, 42.0, 45.0, 42.0, 42.0, 46.0, 42.0, 42.0, 46.0, 42.0, 42.0, 46.0}, -- Chains of Anguish
|
|
[365169] = {47.0, 36.0, 31.0, 43.0, 55.0, 31.0, 37.0, 62.0, 31.0, 37.0, 62.0, 31.0, 37.0, 62.0}, -- Defile
|
|
},
|
|
}
|
|
|
|
local timerTable = {
|
|
[14] = timersNormal,
|
|
[15] = timersHeroic,
|
|
[16] = timersMythic,
|
|
[17] = timersLFR,
|
|
}
|
|
local timers
|
|
|
|
local mythicSpecialTimers = {
|
|
-- pull/0:00 -> 0:25 -> 1:11 -> 1:43 -> 2:17
|
|
[1] = {25.0, 46.0, 32.0, 34.0},
|
|
-- stage2/2:47 -> 3:40.5 -> 4:22 -> 5:15 -> 5:49
|
|
[2] = {48.5, 46.5, 53, 34},
|
|
-- stage3/6:15 -> 7:00.5 -> 7:21 -> 7:54.5 (2x lines) -> 8:33
|
|
[3] = {45.5, 20.5, 33.5, 38.5},
|
|
-- Dispel Timers in last stage, from Heal Channel Start (_SUCCES)
|
|
[4] = {40, 30, 29}
|
|
}
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Localization
|
|
--
|
|
|
|
local L = mod:GetLocale()
|
|
if L then
|
|
L.rune_of_damnation_countdown = "Countdown"
|
|
L.rune_of_damnation_countdown_icon = 360281 -- Rune of Damnation
|
|
L.rune_of_damnation_countdown_desc = "Countdown for the players who are affected by Rune of Damnation"
|
|
L.jump = "Jump In"
|
|
|
|
L.relentless_domination = "Domination"
|
|
L.chains_of_oppression = "Pull Chains"
|
|
L.unholy_attunement = "Pylons"
|
|
L.shattering_blast = "Tank Blast"
|
|
L.rune_of_compulsion = "Charms"
|
|
L.desolation = "Azeroth Soak"
|
|
L.chains_of_anguish = "Spread Chains"
|
|
L.chain = "Chain"
|
|
L.chain_target = "Chaining %s!"
|
|
L.chains_remaining = "%d/%d Chains Broken"
|
|
L.rune_of_domination = "Group Soaks"
|
|
|
|
L.final = "Final %s"
|
|
|
|
L.azeroth_health = "Azeroth Health"
|
|
L.azeroth_health_desc = "Azeroth Health Warnings"
|
|
|
|
L.azeroth_new_health_plus = "Azeroth Health: +%.1f%% (%d)"
|
|
L.azeroth_new_health_minus = "Azeroth Health: -%.1f%% (%d)"
|
|
|
|
L.mythic_blood_soak_stage_1 = "Stage 1 Blood Soak timings"
|
|
L.mythic_blood_soak_stage_1_desc = "Show a bar for timings when healing azeroth is at a good time, used by Echo on their first kill"
|
|
L.mythic_blood_soak_stage_2 = "Stage 2 Blood Soak timings"
|
|
L.mythic_blood_soak_stage_2_desc = L.mythic_blood_soak_stage_1_desc
|
|
L.mythic_blood_soak_stage_3 = "Stage 3 Blood Soak timings"
|
|
L.mythic_blood_soak_stage_3_desc = L.mythic_blood_soak_stage_1_desc
|
|
|
|
L.mythic_blood_soak_bar = "Heal Azeroth"
|
|
L.mythic_blood_soak_icon = "spell_azerite_essence10"
|
|
|
|
L.floors_open = "Floors Open"
|
|
L.floors_open_desc = "Time until the floors opens up and you can fall into opened holes."
|
|
|
|
L.mythic_dispel_stage_4 = "Dispel Timers"
|
|
L.mythic_dispel_stage_4_desc = "Timers for when to do dispels in the last stage, used by Echo on their first kill"
|
|
L.mythic_dispel_bar = "Dispels"
|
|
L.mythic_dispel_icon = "spell_holy_dispelmagic"
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Initialization
|
|
--
|
|
|
|
local runeOfDamnationMarker = mod:AddMarkerOption(false, "player", 1, 360281, 1, 2, 3, 4, 5, 6) -- Rune of Damnation
|
|
local runeOfCompulsionMarker = mod:AddMarkerOption(false, "player", 1, 366285, 1, 2, 3, 4) -- Rune of Compulsion
|
|
local runeOfDominationMarker = mod:AddMarkerOption(false, "player", 1, 365150, 1, 2, 3) -- Rune of Domination
|
|
local chainsOfAnguishMarker = mod:AddMarkerOption(false, "player", 8, 365212, 8, 7, 6, 5) -- Chains of Anguish
|
|
function mod:GetOptions()
|
|
return {
|
|
"stages",
|
|
"azeroth_health",
|
|
362012, -- Eternity's End
|
|
"floors_open",
|
|
-- Stage One: Origin of Domination
|
|
362028, -- Relentless Domination
|
|
362075, -- Domination
|
|
366132, -- Tyranny
|
|
359809, -- Chains of Oppression
|
|
{363893, "SAY", "SAY_COUNTDOWN"}, -- Martyrdom
|
|
{366545, "TANK"}, -- Persecution
|
|
365436, -- Torment
|
|
{360281, "SAY", "SAY_COUNTDOWN", "ME_ONLY"}, -- Rune of Damnation
|
|
{"rune_of_damnation_countdown", "COUNTDOWN"},
|
|
runeOfDamnationMarker,
|
|
-- Stage Two: Unholy Attunement
|
|
360373, -- Unholy Attunement
|
|
363332, -- Unbreakable Grasp
|
|
359856, -- Shattering Blast
|
|
{366285, "SAY", "SAY_COUNTDOWN"}, -- Rune of Compulsion
|
|
runeOfCompulsionMarker,
|
|
360562, -- Decimator
|
|
-- Stage Three: Eternity's End
|
|
365033, -- Desolation
|
|
{365150, "SAY", "SAY_COUNTDOWN"}, -- Rune of Domination
|
|
runeOfDominationMarker,
|
|
365212, -- Chains of Anguish
|
|
chainsOfAnguishMarker,
|
|
365169, -- Defile
|
|
-- Mythic
|
|
"mythic_blood_soak_stage_1",
|
|
"mythic_blood_soak_stage_2",
|
|
"mythic_blood_soak_stage_3",
|
|
366374, -- World Crusher
|
|
366678, -- World Cracker
|
|
367051, -- World Shatterer
|
|
"mythic_dispel_stage_4",
|
|
368383, -- Diverted Life Shield
|
|
360378, -- Meteor Cleave
|
|
{368591, "SAY", "SAY_COUNTDOWN"}, -- Death Sentence
|
|
},{
|
|
["stages"] = "general",
|
|
[362028] = -24087, -- Stage One: Origin of Domination
|
|
[360373] = -23925, -- Stage Two: Unholy Attunement
|
|
[365033] = -24252, -- Stage Three: Eternity's End
|
|
["mythic_blood_soak_stage_1"] = "mythic", -- Stage Three: Eternity's End
|
|
},{
|
|
[362028] = L.relentless_domination, -- Relentless Domination
|
|
[359809] = L.chains_of_oppression, -- Chains of Oppression
|
|
[363893] = CL.tank_combo, -- Martyrdom
|
|
[360281] = CL.bombs, -- Rune of Damnation
|
|
[360373] = L.unholy_attunement, -- Unholy Attunement
|
|
[359856] = L.shattering_blast, -- Shattering Blast
|
|
[366285] = L.rune_of_compulsion, -- Rune of Compulsion
|
|
[360562] = CL.knockback, -- Decimator
|
|
[365033] = L.desolation, -- Desolation
|
|
[365150] = L.rune_of_domination, -- Rune of Domination
|
|
[365212] = L.chains_of_anguish, -- Chains of Anguish
|
|
["mythic_blood_soak_stage_1"] = L.mythic_blood_soak_bar, -- Heal Azeroth
|
|
["mythic_blood_soak_stage_2"] = L.mythic_blood_soak_bar, -- Heal Azeroth
|
|
["mythic_blood_soak_stage_3"] = L.mythic_blood_soak_bar, -- Heal Azeroth
|
|
}
|
|
end
|
|
|
|
function mod:OnBossEnable()
|
|
self:RegisterWidgetEvent(3554, "AzerothHealthWidget")
|
|
|
|
-- Stage One: Origin of Domination
|
|
self:Log("SPELL_CAST_START", "RelentlessDomination", 362028)
|
|
self:Log("SPELL_AURA_APPLIED", "DominationApplied", 362075)
|
|
self:Log("SPELL_AURA_APPLIED", "TyrannyApplied", 366132)
|
|
self:Log("SPELL_CAST_SUCCESS", "ChainsOfOppression", 359809)
|
|
self:Log("SPELL_AURA_APPLIED", "MartyrdomApplied", 363893)
|
|
self:Log("SPELL_AURA_APPLIED", "PersecutionApplied", 366545)
|
|
self:Log("SPELL_CAST_SUCCESS", "Torment", 365436, 370071) -- p1/p2, p3 (+adds)
|
|
self:Log("SPELL_AURA_APPLIED", "TormentApplied", 362401)
|
|
self:Log("SPELL_CAST_SUCCESS", "RuneOfDamnation", 360279)
|
|
self:Log("SPELL_AURA_APPLIED", "RuneOfDamnationApplied", 360281)
|
|
self:Log("SPELL_AURA_REMOVED", "RuneOfDamnationRemoved", 360281)
|
|
|
|
-- Stage Two: Unholy Attunement
|
|
self:Log("SPELL_CAST_START", "FinalRelentlessDomination", 367851)
|
|
self:Log("SPELL_CAST_START", "UnholyAttunement", 360373)
|
|
self:Log("SPELL_CAST_START", "ShatteringBlast", 359856)
|
|
self:Log("SPELL_CAST_SUCCESS", "RuneOfCompulsion", 366284)
|
|
self:Log("SPELL_AURA_APPLIED", "RuneOfCompulsionApplied", 366285)
|
|
self:Log("SPELL_AURA_REMOVED", "RuneOfCompulsionRemoved", 366285)
|
|
self:Log("SPELL_CAST_START", "Decimator", 360562, 364942, 364488) -- 3 different types based on distance?
|
|
self:Log("SPELL_CAST_START", "FinalUnholyAttunement", 367290)
|
|
|
|
-- Stage Three: Eternity's End
|
|
self:Log("SPELL_CAST_SUCCESS", "UnbreakingGrasp", 363332)
|
|
self:Log("SPELL_CAST_START", "Desolation", 365033)
|
|
self:Log("SPELL_CAST_SUCCESS", "RuneOfDomination", 365147)
|
|
self:Log("SPELL_AURA_APPLIED", "RuneOfDominationApplied", 365150)
|
|
self:Log("SPELL_AURA_REMOVED", "RuneOfDominationRemoved", 365150)
|
|
self:Log("SPELL_CAST_START", "ChainsOfAnguish", 365212)
|
|
self:Log("SPELL_AURA_APPLIED", "ChainsOfAnguishApplied", 365222) -- 365219 Initial Target, 365222 Secondary Targets
|
|
self:Log("SPELL_AURA_REMOVED", "ChainsOfAnguishRemoved", 365222)
|
|
self:Log("SPELL_CAST_START", "Defile", 365169)
|
|
self:Log("SPELL_CAST_START", "EternitysEnd", 362012)
|
|
|
|
-- Mythic
|
|
self:Log("SPELL_CAST_START", "WorldCrusher", 366374)
|
|
self:Log("SPELL_CAST_START", "WorldCracker", 366678)
|
|
self:Log("SPELL_CAST_SUCCESS", "WorldShatterer", 367051)
|
|
|
|
-- -- Stage 4
|
|
self:Log("SPELL_CAST_SUCCESS", "DivertedLifeShield", 368383)
|
|
self:Log("SPELL_CAST_START", "MeteorCleave", 360378)
|
|
self:Log("SPELL_CAST_SUCCESS", "DeathSentence", 363772) -- Initial Debuff
|
|
self:Log("SPELL_AURA_APPLIED", "DeathSentenceApplied", 368591)
|
|
self:Log("SPELL_AURA_REMOVED", "DeathSentenceRemoved", 368591)
|
|
timers = timerTable[mod:Difficulty()] -- make sure something is set, but you're screwed if you reload regardless
|
|
end
|
|
|
|
function mod:OnEngage(difficulty)
|
|
timers = timerTable[difficulty]
|
|
self:SetStage(1)
|
|
currentAzerothHealth = 100
|
|
lastAzerothHealth = 100
|
|
|
|
-- Stage 1
|
|
relentlessDominationCount = 1
|
|
chainsOfOppressionCount = 1
|
|
martyrdomCount = 1
|
|
tormentCount = 1
|
|
runeOfDamnationCount = 1
|
|
-- Stage 2
|
|
unholyAttunementCount = 1
|
|
shatteringBlastCount = 1
|
|
runeOfCompulsion = 1
|
|
decimatorCount = 1
|
|
-- Stage 3
|
|
desolationCount = 1
|
|
runeOfDominationCount = 1
|
|
chainsOfAnguishCount = 1
|
|
defileCount = 1
|
|
fallingDebrisCount = 1
|
|
|
|
self:Bar(360281, timers[1][360281][runeOfDamnationCount], CL.count:format(CL.bombs, runeOfDamnationCount))
|
|
self:Bar(365436, timers[1][365436][tormentCount], CL.count:format(self:SpellName(365436), tormentCount))
|
|
self:Bar(363893, timers[1][363893][martyrdomCount], CL.count:format(CL.tank_combo, martyrdomCount))
|
|
self:Bar(362028, timers[1][362028][relentlessDominationCount], CL.count:format(L.relentless_domination, relentlessDominationCount))
|
|
self:Bar(359809, timers[1][359809][chainsOfOppressionCount], CL.count:format(L.chains_of_oppression, chainsOfOppressionCount))
|
|
self:Bar("stages", 180, CL.stage:format(2), 360373) -- Unholy Attunement
|
|
|
|
if self:Mythic() then
|
|
worldCount = 1
|
|
specialCount = 1
|
|
self:Bar(366374, 3) -- World Crusher
|
|
self:StartSpecialTimer(mythicSpecialTimers[1][specialCount]) -- Heal Azeroth
|
|
end
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Event Handlers
|
|
--
|
|
|
|
do
|
|
local scheduled = nil
|
|
function mod:AzerothHealthMessage()
|
|
if currentAzerothHealth > lastAzerothHealth and (currentAzerothHealth - lastAzerothHealth) > 3 then
|
|
local change = currentAzerothHealth - lastAzerothHealth
|
|
mod:Message("azeroth_health", "green", L.azeroth_new_health_plus:format(change, currentAzerothHealth), "inv_heartofazeroth")
|
|
elseif currentAzerothHealth ~= lastAzerothHealth and (lastAzerothHealth - currentAzerothHealth) > 3 then -- only if changed
|
|
local change = lastAzerothHealth - currentAzerothHealth
|
|
mod:Message("azeroth_health", "red", L.azeroth_new_health_minus:format(change, currentAzerothHealth), "inv_heartofazeroth")
|
|
end
|
|
lastAzerothHealth = currentAzerothHealth
|
|
scheduled = nil
|
|
end
|
|
|
|
function mod:AzerothHealthWidget(_, value)
|
|
self:CancelTimer(scheduled)
|
|
scheduled = self:ScheduleTimer("AzerothHealthMessage", 1.5)
|
|
currentAzerothHealth = value
|
|
end
|
|
end
|
|
|
|
function mod:EternitysEnd(args)
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "long")
|
|
end
|
|
|
|
-- Stage One: Origin of Domination
|
|
function mod:RelentlessDomination(args)
|
|
self:StopBar(CL.count:format(L.relentless_domination, relentlessDominationCount))
|
|
self:Message(args.spellId, "red", CL.count:format(L.relentless_domination, relentlessDominationCount))
|
|
self:PlaySound(args.spellId, "warning")
|
|
relentlessDominationCount = relentlessDominationCount + 1
|
|
self:Bar(args.spellId, timers[1][args.spellId][relentlessDominationCount], relentlessDominationCount == 3 and L.final:format(CL.count:format(L.relentless_domination, relentlessDominationCount)) or CL.count:format(L.relentless_domination, relentlessDominationCount))
|
|
if not self:Easy() then
|
|
self:Bar(366132, 11.1) -- Tyranny
|
|
end
|
|
end
|
|
|
|
do
|
|
local prev = 0
|
|
local playerList = {}
|
|
function mod:DominationApplied(args)
|
|
local t = args.time
|
|
if t-prev > 2 then
|
|
prev = t
|
|
playerList = {}
|
|
end
|
|
playerList[#playerList+1] = args.destName
|
|
if self:Me(args.destGUID) then
|
|
self:PlaySound(args.spellId, "warning")
|
|
end
|
|
self:NewTargetsMessage(args.spellId, "red", playerList)
|
|
end
|
|
end
|
|
|
|
do
|
|
local prev = 0
|
|
function mod:TyrannyApplied(args)
|
|
-- XXX this is the hit debuff, doesn't seem like there is a way to get targets
|
|
local t = args.time
|
|
if t-prev > 2 then
|
|
prev = t
|
|
self:StopBar(args.spellId)
|
|
end
|
|
if self:Me(args.destGUID) then
|
|
self:PersonalMessage(args.spellId)
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:ChainsOfOppression(args)
|
|
self:StopBar(CL.count:format(L.chains_of_oppression, chainsOfOppressionCount))
|
|
self:Message(args.spellId, "yellow", CL.count:format(L.chains_of_oppression, chainsOfOppressionCount))
|
|
self:CastBar(args.spellId, 6, CL.explosion)
|
|
self:PlaySound(args.spellId, "long")
|
|
chainsOfOppressionCount = chainsOfOppressionCount + 1
|
|
self:Bar(args.spellId, timers[1][args.spellId][chainsOfOppressionCount], CL.count:format(L.chains_of_oppression, chainsOfOppressionCount))
|
|
end
|
|
|
|
function mod:MartyrdomApplied(args)
|
|
self:StopBar(CL.count:format(CL.tank_combo, martyrdomCount))
|
|
if self:Me(args.destGUID) then
|
|
self:Yell(args.spellId, CL.tank_combo)
|
|
self:YellCountdown(args.spellId, 3.5, nil, 2)
|
|
end
|
|
self:TargetMessage(args.spellId, "purple", args.destName, CL.count:format(CL.tank_combo, martyrdomCount))
|
|
self:PlaySound(args.spellId, "alarm")
|
|
martyrdomCount = martyrdomCount + 1
|
|
self:Bar(args.spellId, timers[1][args.spellId][martyrdomCount], CL.count:format(CL.tank_combo, martyrdomCount))
|
|
end
|
|
|
|
function mod:PersecutionApplied(args)
|
|
self:TargetMessage(args.spellId, "purple", args.destName)
|
|
self:PlaySound(args.spellId, "warning")
|
|
end
|
|
|
|
function mod:Torment(args)
|
|
self:StopBar(CL.count:format(args.spellName, tormentCount))
|
|
self:Message(365436, "yellow", CL.count:format(args.spellName, tormentCount))
|
|
tormentCount = tormentCount + 1
|
|
if self:LFR() and self:GetStage() == 3 then
|
|
-- four cast cycle with the first two being different
|
|
local cd = timers[3][365436][(tormentCount - 1) % 4 + 1]
|
|
if tormentCount == 2 then
|
|
cd = 50.0
|
|
end
|
|
self:Bar(365436, cd, CL.count:format(args.spellName, tormentCount))
|
|
else
|
|
self:Bar(365436, timers[self:GetStage()][365436][tormentCount], CL.count:format(args.spellName, tormentCount))
|
|
end
|
|
end
|
|
|
|
function mod:TormentApplied(args)
|
|
if self:Me(args.destGUID) then
|
|
self:PlaySound(365436, "warning")
|
|
--self:Say(365436) -- Everyone Gets it, no need I guess
|
|
--self:SayCountdown(365436, 5)
|
|
end
|
|
end
|
|
|
|
do
|
|
local playerList = {}
|
|
function mod:RuneOfDamnation(args)
|
|
self:StopBar(CL.count:format(CL.bombs, runeOfDamnationCount))
|
|
runeOfDamnationCount = runeOfDamnationCount + 1
|
|
self:Bar(360281, timers[self:GetStage()][360281][runeOfDamnationCount], CL.count:format(CL.bombs, runeOfDamnationCount))
|
|
playerList = {}
|
|
end
|
|
|
|
function mod:RuneOfDamnationApplied(args)
|
|
local count = #playerList+1
|
|
local icon = count
|
|
playerList[count] = args.destName
|
|
playerList[args.destName] = icon -- Set raid marker
|
|
if self:Me(args.destGUID) then
|
|
self:PlaySound(args.spellId, "warning")
|
|
self:Say(args.spellId, CL.count_rticon:format(CL.bomb, icon, icon))
|
|
self:SayCountdown(args.spellId, 6, icon)
|
|
if self:GetOption("rune_of_damnation_countdown") then -- Show Jumpbar, instead of TargetBar
|
|
self:Bar("rune_of_damnation_countdown", 5.5, L.jump, 360281) -- Jump a bit earlier
|
|
else
|
|
self:TargetBar(args.spellId, 6, args.destName)
|
|
end
|
|
end
|
|
self:NewTargetsMessage(args.spellId, "cyan", playerList, nil, CL.count:format(CL.bombs, runeOfDamnationCount-1))
|
|
self:CustomIcon(runeOfDamnationMarker, args.destName, icon)
|
|
end
|
|
|
|
function mod:RuneOfDamnationRemoved(args)
|
|
if self:Me(args.destGUID) then
|
|
self:CancelSayCountdown(args.spellId)
|
|
self:StopBar(L.jump)
|
|
end
|
|
self:CustomIcon(runeOfDamnationMarker, args.destName)
|
|
end
|
|
end
|
|
|
|
-- Stage Two: Unholy Attunement
|
|
function mod:FinalRelentlessDomination()
|
|
self:Message(362028, "red", L.final:format(CL.count:format(L.relentless_domination, relentlessDominationCount)))
|
|
self:PlaySound(362028, "warning")
|
|
self:SetStage(2)
|
|
|
|
self:StopBar(CL.count:format(L.relentless_domination, relentlessDominationCount)) -- Relentless Domination
|
|
self:StopBar(CL.count:format(L.chains_of_oppression, chainsOfOppressionCount)) -- Chains of Opression
|
|
self:StopBar(CL.count:format(CL.tank_combo, martyrdomCount)) -- Martyrdom
|
|
self:StopBar(CL.count:format(self:SpellName(365436), tormentCount)) -- Torment
|
|
self:StopBar(CL.count:format(CL.bombs, runeOfDamnationCount)) -- Rune of Damnation
|
|
self:StopBar(CL.count:format(L.mythic_blood_soak_bar, specialCount-1)) -- Heal Azeroth
|
|
if specialTimer then
|
|
self:CancelTimer(specialTimer)
|
|
self:CancelDelayedMessage(CL.count:format(L.mythic_blood_soak_bar, specialCount-2))
|
|
specialTimer = nil
|
|
end
|
|
|
|
unholyAttunementCount = 1
|
|
shatteringBlastCount = 1
|
|
runeOfCompulsion = 1
|
|
decimatorCount = 1
|
|
tormentCount = 1
|
|
|
|
if not self:Easy() then
|
|
self:Bar(366132, 11.1) -- Tyranny
|
|
end
|
|
|
|
self:Bar("floors_open", 16, L.floors_open, "inv_engineering_90_blackhole") -- Holes opening up
|
|
self:Bar(360373, timers[2][360373][unholyAttunementCount], CL.count:format(L.unholy_attunement, unholyAttunementCount)) -- Unholy Attunement
|
|
self:Bar(359856, timers[2][359856][shatteringBlastCount], CL.count:format(L.shattering_blast, shatteringBlastCount)) -- Shattering Blast
|
|
self:Bar(366285, timers[2][366285][runeOfCompulsion], CL.count:format(L.rune_of_compulsion, runeOfCompulsion)) -- Rune of Compulsion
|
|
self:Bar(360562, timers[2][360562][decimatorCount], CL.count:format(CL.knockback, decimatorCount)) -- Decimator
|
|
self:Bar(365436, timers[2][365436][tormentCount], CL.count:format(self:SpellName(365436), tormentCount)) -- Torment
|
|
|
|
if self:Mythic() then
|
|
worldCount = 1
|
|
specialCount = 1
|
|
self:Bar(366678, 23, CL.count:format(self:SpellName(366678), worldCount)) -- World Cracker
|
|
self:StartSpecialTimer(mythicSpecialTimers[2][specialCount]) -- Heal Azeroth
|
|
end
|
|
end
|
|
|
|
function mod:UnholyAttunement(args)
|
|
self:StopBar(CL.count:format(L.unholy_attunement, unholyAttunementCount))
|
|
self:Message(args.spellId, "yellow", CL.count:format(L.unholy_attunement, unholyAttunementCount))
|
|
self:PlaySound(args.spellId, "alert")
|
|
unholyAttunementCount = unholyAttunementCount + 1
|
|
self:Bar(args.spellId, timers[2][args.spellId][unholyAttunementCount], unholyAttunementCount == 5 and L.final:format(CL.count:format(L.unholy_attunement, unholyAttunementCount)) or CL.count:format(L.unholy_attunement, unholyAttunementCount))
|
|
end
|
|
|
|
function mod:ShatteringBlast(args)
|
|
self:StopBar(CL.count:format(L.shattering_blast, shatteringBlastCount))
|
|
self:Message(args.spellId, "purple", CL.count:format(L.shattering_blast, shatteringBlastCount))
|
|
self:PlaySound(args.spellId, "alarm")
|
|
shatteringBlastCount = shatteringBlastCount + 1
|
|
self:Bar(args.spellId, timers[2][args.spellId][shatteringBlastCount], CL.count:format(L.shattering_blast, shatteringBlastCount))
|
|
end
|
|
|
|
do
|
|
local playerList = {}
|
|
function mod:RuneOfCompulsion(args)
|
|
self:StopBar(CL.count:format(L.rune_of_compulsion, runeOfCompulsion))
|
|
runeOfCompulsion = runeOfCompulsion + 1
|
|
self:Bar(366285, timers[2][366285][runeOfCompulsion], CL.count:format(L.rune_of_compulsion, runeOfCompulsion))
|
|
playerList = {}
|
|
end
|
|
|
|
function mod:RuneOfCompulsionApplied(args)
|
|
local count = #playerList+1
|
|
local icon = count
|
|
playerList[count] = args.destName
|
|
playerList[args.destName] = icon -- Set raid marker
|
|
if self:Me(args.destGUID) then
|
|
self:PlaySound(args.spellId, "warning")
|
|
self:Say(args.spellId, CL.count_rticon:format(L.rune_of_compulsion, icon, icon))
|
|
self:SayCountdown(args.spellId, 4, icon)
|
|
end
|
|
self:NewTargetsMessage(args.spellId, "cyan", playerList, nil, CL.count:format(L.rune_of_compulsion, runeOfCompulsion-1))
|
|
self:CustomIcon(runeOfCompulsionMarker, args.destName, icon)
|
|
end
|
|
|
|
function mod:RuneOfCompulsionRemoved(args)
|
|
if self:Me(args.destGUID) then
|
|
self:CancelSayCountdown(args.spellId)
|
|
end
|
|
self:CustomIcon(runeOfCompulsionMarker, args.destName)
|
|
end
|
|
end
|
|
|
|
function mod:Decimator()
|
|
self:StopBar(CL.count:format(CL.knockback, decimatorCount))
|
|
self:Message(360562, "yellow", CL.count:format(CL.knockback, decimatorCount))
|
|
self:PlaySound(360562, "alert")
|
|
decimatorCount = decimatorCount + 1
|
|
self:Bar(360562, timers[self:GetStage()][360562][decimatorCount], CL.count:format(CL.knockback, decimatorCount))
|
|
end
|
|
|
|
function mod:FinalUnholyAttunement(args)
|
|
self:Message(360373, "yellow", L.final:format(CL.count:format(L.unholy_attunement, unholyAttunementCount)))
|
|
self:PlaySound(360373, "alert")
|
|
|
|
self:StopBar(CL.count:format(self:SpellName(366678), worldCount)) -- World Cracker
|
|
self:StopBar(CL.count:format(L.unholy_attunement, unholyAttunementCount)) -- Unholy Attunement
|
|
self:StopBar(CL.count:format(L.shattering_blast, shatteringBlastCount)) -- Shattering Blast
|
|
self:StopBar(CL.count:format(L.rune_of_compulsion, runeOfCompulsion)) -- Rune of Compulsion
|
|
self:StopBar(CL.count:format(CL.knockback, decimatorCount)) -- Decimator
|
|
self:StopBar(CL.count:format(self:SpellName(365436), tormentCount)) -- Torment
|
|
self:StopBar(CL.count:format(L.mythic_blood_soak_bar, specialCount-1)) -- Heal Azeroth
|
|
|
|
if specialTimer then
|
|
self:CancelTimer(specialTimer)
|
|
self:CancelDelayedMessage(CL.count:format(L.mythic_blood_soak_bar, specialCount-2)) -- Heal Azeroth
|
|
specialTimer = nil
|
|
end
|
|
|
|
self:Bar("floors_open", 3.5, L.floors_open, "inv_engineering_90_blackhole") -- Holes opening up
|
|
self:Bar("stages", 10.5, CL.stage:format(3), 363332) -- Unbreaking Grasp
|
|
end
|
|
|
|
-- Stage Three: Eternity's End
|
|
function mod:UnbreakingGrasp(args)
|
|
self:SetStage(3)
|
|
self:Message("stages", "cyan", CL.stage:format(3), false)
|
|
self:PlaySound("stages", "long")
|
|
self:Bar(args.spellId, 15)
|
|
|
|
tormentCount = 1
|
|
decimatorCount = 1
|
|
desolationCount = 1
|
|
chainsOfAnguishCount = 1
|
|
runeOfDominationCount = 1
|
|
defileCount = 1
|
|
fallingDebrisCount = 1
|
|
|
|
self:Bar(360562, timers[3][360562][decimatorCount], CL.count:format(CL.knockback, decimatorCount)) -- Decimator
|
|
self:Bar(365436, self:LFR() and 26 or timers[3][365436][tormentCount], CL.count:format(self:SpellName(365436), tormentCount)) -- Torment
|
|
self:Bar(365212, timers[3][365212][chainsOfAnguishCount], CL.count:format(L.chains_of_anguish, chainsOfAnguishCount)) -- Chains of Anguish
|
|
self:Bar(365150, timers[3][365150][runeOfDominationCount], CL.count:format(L.rune_of_domination, runeOfDominationCount)) -- Rune of Domination
|
|
self:Bar(365169, timers[3][365169][defileCount], CL.count:format(self:SpellName(365169), defileCount)) -- Defile
|
|
if not self:LFR() then
|
|
self:Bar(365033, timers[3][365033][desolationCount], CL.count:format(L.desolation, desolationCount)) -- Desolation
|
|
end
|
|
if self:Mythic() then
|
|
worldCount = 1
|
|
specialCount = 1
|
|
self:Bar(367051, 21.5, CL.count:format(self:SpellName(367051), worldCount)) -- World Shatterer
|
|
self:StartSpecialTimer(mythicSpecialTimers[3][specialCount]) -- Heal Azeroth
|
|
end
|
|
end
|
|
|
|
function mod:Desolation(args)
|
|
self:StopBar(CL.count:format(L.desolation, desolationCount))
|
|
self:Message(args.spellId, "red", CL.count:format(L.desolation, desolationCount))
|
|
self:PlaySound(args.spellId, "alert")
|
|
desolationCount = desolationCount + 1
|
|
self:Bar(args.spellId, timers[3][args.spellId][desolationCount], CL.count:format(L.desolation, desolationCount))
|
|
end
|
|
|
|
do
|
|
local playerList = {}
|
|
function mod:RuneOfDomination(args)
|
|
self:StopBar(CL.count:format(L.rune_of_domination, runeOfDominationCount))
|
|
runeOfDominationCount = runeOfDominationCount + 1
|
|
self:Bar(365150, timers[3][365150][runeOfDominationCount], CL.count:format(L.rune_of_domination, runeOfDominationCount))
|
|
playerList = {}
|
|
end
|
|
|
|
function mod:RuneOfDominationApplied(args)
|
|
local count = #playerList+1
|
|
local icon = count
|
|
playerList[count] = args.destName
|
|
playerList[args.destName] = icon -- Set raid marker
|
|
if self:Me(args.destGUID) then
|
|
self:PlaySound(args.spellId, "warning")
|
|
self:Say(args.spellId, CL.count_rticon:format(L.rune_of_domination, icon, icon))
|
|
self:SayCountdown(args.spellId, 6, icon)
|
|
end
|
|
self:NewTargetsMessage(args.spellId, "cyan", playerList, nil, CL.count:format(L.rune_of_domination, runeOfDominationCount-1))
|
|
self:CustomIcon(runeOfDominationMarker, args.destName, icon)
|
|
end
|
|
|
|
function mod:RuneOfDominationRemoved(args)
|
|
if self:Me(args.destGUID) then
|
|
self:CancelSayCountdown(args.spellId)
|
|
end
|
|
self:CustomIcon(runeOfDominationMarker, args.destName)
|
|
end
|
|
end
|
|
|
|
do
|
|
local playerList = {}
|
|
local removed, count = 0, 0
|
|
function mod:ChainsOfAnguish(args)
|
|
self:StopBar(CL.count:format(L.chains_of_anguish, chainsOfAnguishCount))
|
|
self:Message(args.spellId, "yellow", CL.count:format(L.chain_target:format(self:ColorName(self:UnitName("boss1target") or "???")), chainsOfAnguishCount))
|
|
if self:Tank() then
|
|
self:PlaySound(args.spellId, "warning")
|
|
else
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
chainsOfAnguishCount = chainsOfAnguishCount + 1
|
|
playerList = {}
|
|
removed, count = 0, 0
|
|
self:Bar(args.spellId, timers[3][args.spellId][chainsOfAnguishCount], CL.count:format(L.chains_of_anguish, chainsOfAnguishCount))
|
|
end
|
|
|
|
function mod:ChainsOfAnguishApplied(args)
|
|
count = #playerList+1
|
|
local icon = 9 - count -- 8, 7, 6, 5
|
|
playerList[count] = args.destName
|
|
playerList[args.destName] = icon -- Set raid marker
|
|
if self:Me(args.destGUID) then
|
|
self:PlaySound(365212, "warning")
|
|
end
|
|
self:NewTargetsMessage(365212, "yellow", playerList, nil, CL.count:format(L.chains_of_anguish, chainsOfAnguishCount-1))
|
|
self:CustomIcon(chainsOfAnguishMarker, args.destName, icon)
|
|
end
|
|
|
|
function mod:ChainsOfAnguishRemoved(args)
|
|
removed = removed + 1
|
|
if self:Me(args.destGUID) then
|
|
self:Message(365212, "blue", CL.removed:format(L.chains_of_anguish))
|
|
end
|
|
self:Message(365212, "green", L.chains_remaining:format(removed, count))
|
|
self:PlaySound(365212, "info")
|
|
self:CustomIcon(chainsOfAnguishMarker, args.destName)
|
|
end
|
|
end
|
|
|
|
function mod:Defile(args)
|
|
self:StopBar(CL.count:format(args.spellName, defileCount))
|
|
self:Message(args.spellId, "orange", CL.count:format(args.spellName, defileCount))
|
|
self:PlaySound(args.spellId, "warning")
|
|
defileCount = defileCount + 1
|
|
self:Bar(args.spellId, timers[3][args.spellId][defileCount], CL.count:format(args.spellName, defileCount))
|
|
end
|
|
|
|
-- Mythic
|
|
function mod:StartSpecialTimer(t)
|
|
local stage = self:GetStage()
|
|
local text = stage == 4 and L.mythic_dispel_bar or L.mythic_blood_soak_bar
|
|
local icon = stage == 4 and L.mythic_dispel_icon or L.mythic_blood_soak_icon
|
|
local spellId = stage == 1 and "mythic_blood_soak_stage_1" or stage == 2 and "mythic_blood_soak_stage_2" or stage == 3 and "mythic_blood_soak_stage_3" or "mythic_dispel_stage_4" -- SetOption:"mythic_blood_soak_stage_1","mythic_blood_soak_stage_2","mythic_blood_soak_stage_3","mythic_dispel_stage_4":
|
|
self:Bar(spellId, t, CL.count:format(text, specialCount), icon)
|
|
self:DelayedMessage(spellId, t, "yellow", CL.count:format(text, specialCount), icon, "long")
|
|
specialCount = specialCount + 1
|
|
if mythicSpecialTimers[stage][specialCount] then
|
|
specialTimer = self:ScheduleTimer("StartSpecialTimer", t, mythicSpecialTimers[stage][specialCount])
|
|
end
|
|
end
|
|
|
|
function mod:WorldCrusher(args)
|
|
self:Message(args.spellId, "cyan")
|
|
self:PlaySound(args.spellId, "info")
|
|
end
|
|
|
|
function mod:WorldCracker(args)
|
|
self:StopBar(CL.count:format(args.spellName, worldCount))
|
|
self:Message(args.spellId, "cyan", CL.count:format(args.spellName, worldCount))
|
|
self:PlaySound(args.spellId, "info")
|
|
worldCount = worldCount + 1
|
|
if worldCount < 5 then
|
|
self:Bar(args.spellId, timers[2][360373][unholyAttunementCount], CL.count:format(args.spellName, worldCount)) -- Re-use unholy attunement timers
|
|
end
|
|
end
|
|
|
|
function mod:WorldShatterer(args)
|
|
self:Message(args.spellId, "cyan")
|
|
self:PlaySound(args.spellId, "info")
|
|
end
|
|
|
|
function mod:DivertedLifeShield(args)
|
|
self:SetStage(4)
|
|
self:Message("stages", "cyan", CL.stage:format(4), false)
|
|
self:PlaySound("stages", "long")
|
|
|
|
self:StopBar(CL.count:format(L.desolation, desolationCount)) -- Desolation
|
|
self:StopBar(CL.count:format(L.rune_of_domination, runeOfDominationCount)) -- Rune of Domination
|
|
self:StopBar(CL.count:format(L.chains_of_anguish, chainsOfAnguishCount)) -- Chains of Anguish
|
|
self:StopBar(CL.count:format(self:SpellName(365169), defileCount)) -- Defile
|
|
self:StopBar(CL.count:format(CL.knockback, decimatorCount)) -- Decimator
|
|
self:StopBar(CL.count:format(self:SpellName(365436), tormentCount)) -- Torment
|
|
|
|
if specialTimer then
|
|
self:CancelTimer(specialTimer)
|
|
self:CancelDelayedMessage(CL.count:format(L.mythic_blood_soak_bar, specialCount-2))
|
|
specialTimer = nil
|
|
end
|
|
|
|
meteorCleaveCount = 1
|
|
runeOfDamnationCount = 1
|
|
decimatorCount = 1
|
|
tormentCount = 1
|
|
|
|
self:Bar(368591, timers[4][368591][1]) -- Death Sentence
|
|
self:Bar(360378, timers[4][360378][meteorCleaveCount], CL.count:format(self:SpellName(360378), meteorCleaveCount)) -- Meteor Cleave
|
|
self:Bar(360281, timers[4][360281][runeOfDamnationCount], CL.count:format(CL.bombs, runeOfDamnationCount)) -- Rune of Damnation
|
|
self:Bar(360562, timers[4][360562][decimatorCount], CL.count:format(CL.knockback, decimatorCount)) -- Decimator
|
|
self:Bar(365436, timers[4][365436][tormentCount], CL.count:format(self:SpellName(365436), tormentCount)) -- Torment
|
|
|
|
specialCount = 1
|
|
self:StartSpecialTimer(mythicSpecialTimers[4][specialCount]) -- Dispels
|
|
end
|
|
|
|
function mod:MeteorCleave(args)
|
|
self:Message(args.spellId, "yellow", CL.count:format(args.spellName, meteorCleaveCount))
|
|
self:PlaySound(args.spellId, "alert")
|
|
meteorCleaveCount = meteorCleaveCount + 1
|
|
self:Bar(args.spellId, timers[4][args.spellId][meteorCleaveCount], CL.count:format(args.spellName, meteorCleaveCount))
|
|
end
|
|
|
|
function mod:DeathSentence(args)
|
|
self:TargetMessage(368591, "yellow", args.destName)
|
|
end
|
|
|
|
function mod:DeathSentenceApplied(args)
|
|
if self:Me(args.destGUID) then
|
|
self:PersonalMessage(args.spellId)
|
|
self:PlaySound(args.spellId, "warning")
|
|
self:Say(args.spellId)
|
|
self:SayCountdown(args.spellId, 30)
|
|
end
|
|
end
|
|
|
|
function mod:DeathSentenceRemoved(args)
|
|
if self:Me(args.destGUID) then
|
|
self:CancelSayCountdown(args.spellId)
|
|
end
|
|
end
|
|
|