dc8afd6584
Co-authored-by: Szyler <Szyler@Szyler.com>
162 lines
4.3 KiB
Lua
162 lines
4.3 KiB
Lua
local mod = DBM:NewMod("Razuvious", "DBM-Naxx", 4)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision(("$Revision: 2248 $"):sub(12, -3))
|
|
mod:SetCreatureID(16061, 16803, 16803)
|
|
mod:RegisterCombat("yell", L.Yell1, L.Yell2, L.Yell3, L.Yell4)
|
|
mod:SetBossHealthInfo(
|
|
16803, "Trainee 1",
|
|
16803, "Trainee 2"
|
|
)
|
|
mod:RegisterEvents(
|
|
"SPELL_AURA_APPLIED",
|
|
"SPELL_AURA_APPLIED_DOSE",
|
|
"SPELL_CAST_SUCCESS",
|
|
"SPELL_CAST_START",
|
|
"UNIT_HEALTH",
|
|
"UNIT_DIED",
|
|
"PLAYER_ALIVE",
|
|
"SPELL_MISSED"
|
|
)
|
|
|
|
-----DISRUPTING SHOUT-----
|
|
local timerShout = mod:NewCDTimer(8, 2123920)
|
|
-----Break Unholy Blade-----
|
|
local warnUnholyBladeNow = mod:NewSpellAnnounce(2123928, 2)
|
|
local warnUnholyBladeSoon = mod:NewSoonAnnounce(2123928, 2)
|
|
local timerUnholyBlade = mod:NewNextTimer(30, 2123928)
|
|
local timerCastUnholyBlade = mod:NewCastTimer(3, 2123928)
|
|
-----JAGGED KNIFE-----
|
|
local warnKnifeNow = mod:NewTargetAnnounce(2123924, 2)
|
|
local timerKnife = mod:NewNextTimer(15, 2123924)
|
|
-----Death Strike-----
|
|
local timerDeathStrike = mod:NewNextTimer(15,2123919)
|
|
local warnDeathStrike = mod:NewCastAnnounce(2123919)
|
|
local specwarnDeathStrike = mod:NewSpecialWarningStack(2123919, 2)
|
|
--------Strikes--------------
|
|
local timerPlagueStrike = mod:NewTimer(12, "Plague Strike active", 2123905)
|
|
local timerFrostStrike = mod:NewTimer(12, "Frost Strike active", 2123904)
|
|
-----MISC-----
|
|
local prewarn
|
|
local phase
|
|
local warnPhase2 = mod:NewPhaseAnnounce(2)
|
|
local warnPhase2Soon = mod:NewAnnounce("Prepare to stack for Anti-Magic Zone!", 1, 2123928, nil, "Show pre-warning for Phase 2")
|
|
local timerenrage = mod:NewTimer(180, "Enrage", 2123914)
|
|
|
|
-----PROG NOTES-------
|
|
--"Brake Unholy Blade" (2123928) - vet ikke timer
|
|
-- 2123905,"Plague Strike" || SPELL_CAST_SUCCESS
|
|
--2123919,"Death Strike" || SPELL_CAST_START - vet ikke timer
|
|
-- 2123920 - Disrupting Shout || vet ikke timer
|
|
-- Frost Strike - (finn Spell ID). 12 sec, 20sec CD
|
|
-- finn timer Death Strike
|
|
-- finn timer Jagged Knife
|
|
-- finn timer Break Unholy Blade
|
|
-- fix trigger for p2
|
|
--
|
|
|
|
|
|
|
|
-----BOSS FUNCTIONS-----
|
|
function mod:OnCombatStart(delay)
|
|
phase = 1
|
|
prewarn = 1
|
|
self.vb.phase = 1
|
|
-----Break Unholy Blade-----
|
|
timerUnholyBlade:Start(-delay)
|
|
if mod:GetBossTarget(16061) ~= nil then
|
|
timerKnife:Start(-delay)
|
|
timerDeathStrike:Start(20-delay)
|
|
end
|
|
end
|
|
|
|
function mod:BreakUnholyBlade()
|
|
warnUnholyBladeNow:Show()
|
|
timerUnholyBlade:Start()
|
|
timerCastUnholyBlade:Start()
|
|
warnUnholyBladeSoon:Show(25)
|
|
end
|
|
|
|
function mod:DeathStrike()
|
|
warnDeathStrike:Show()
|
|
timerDeathStrike:Start()
|
|
end
|
|
|
|
function mod:PhaseTwo()
|
|
timerDeathStrike:Stop()
|
|
timerUnholyBlade:Stop()
|
|
warnPhase2:Show();
|
|
timerenrage:Start()
|
|
timerShout:Start(8)
|
|
timerKnife:Start()
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if args:IsSpellID(2123924,2123925,2123926,2123927) then
|
|
warnKnifeNow:Show(args.destName)
|
|
if args:IsPlayer() then
|
|
SendChatMessage("Jagged Cold Steel Knife on "..UnitName("PLAYER").."!", "Say")
|
|
end
|
|
timerKnife:Start()
|
|
elseif args:IsSpellID(2123914) then
|
|
self:ScheduleMethod(0,"PhaseTwo")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED_DOSE(args)
|
|
if args:IsSpellID(2123919) and args.amount >=1 then
|
|
if args:IsPlayer() then
|
|
specwarnDeathStrike:Show(args.amount)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
if args:IsSpellID(2123905) then
|
|
timerPlagueStrike:Start()
|
|
elseif args:IsSpellID(2123904) then
|
|
timerFrostStrike:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_DAMAGE(args)
|
|
if args:IsSpellID(2123928,2123929,2123930,2123931) then
|
|
phase = 2
|
|
self.vb.phase = 2
|
|
self:ScheduleMethod(0,"PhaseTwo")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_MISSED(args)
|
|
if args:IsSpellID(2123920) and (args.destName == "Instructor Razuvious" or args.destName == "Shade of Instructor Razuvious") then
|
|
timerShout:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
if args:IsSpellID(2123928,2123929,2123930,2123931) then
|
|
self:ScheduleMethod(0,"BreakUnholyBlade")
|
|
elseif args:IsSpellID(2123919) then
|
|
self:ScheduleMethod(0, "DeathStrike")
|
|
end
|
|
end
|
|
|
|
function mod:UNIT_HEALTH(uId)
|
|
if self:GetUnitCreatureId(uId) == 16061 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.55 and phase == 1 and prewarn == 1 then
|
|
warnPhase2Soon:Show()
|
|
prewarn = 2
|
|
end
|
|
end
|
|
|
|
function mod:UNIT_DIED(args)
|
|
local cid = self:GetCIDFromGUID(args.destGUID)
|
|
if cid == 16061 or cid == 26620 then
|
|
timerenrage:Stop()
|
|
timerKnife:Stop()
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatEnd()
|
|
timerenrage:Stop()
|
|
timerKnife:Stop()
|
|
end |