@@ -3,11 +3,10 @@ local L = mod:GetLocalizedStrings()
|
|||||||
|
|
||||||
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
|
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
|
||||||
mod:SetCreatureID(22948)
|
mod:SetCreatureID(22948)
|
||||||
mod:RegisterCombat("yell", DBM_BLOODBOIL_YELL_PULL)
|
mod:RegisterCombat("combat", 22948)
|
||||||
|
|
||||||
mod:RegisterEvents(
|
mod:RegisterEvents(
|
||||||
"SPELL_AURA_APPLIED",
|
"SPELL_AURA_APPLIED"
|
||||||
"SPELL_AURA_REMOVED"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
local warningBoilingBlood = mod:NewSpellAnnounce(2143508, 3)
|
local warningBoilingBlood = mod:NewSpellAnnounce(2143508, 3)
|
||||||
@@ -27,43 +26,49 @@ local timerMakgora = mod:NewTargetTimer(35, 2143523)
|
|||||||
local warningBoilBlood = mod:NewSpellAnnounce(2143517, 3) --Burst damage from boiling the pools
|
local warningBoilBlood = mod:NewSpellAnnounce(2143517, 3) --Burst damage from boiling the pools
|
||||||
local timerNextBoilBlood = mod:NewNextTimer(20, 2143517)
|
local timerNextBoilBlood = mod:NewNextTimer(20, 2143517)
|
||||||
|
|
||||||
|
local elapsed, total, remainingTimerNextMakgora
|
||||||
|
|
||||||
function mod:OnCombatStart(delay)
|
function mod:OnCombatStart(delay)
|
||||||
timerNextBoilingBlood:Start(10-delay)
|
timerNextBoilingBlood:Start(10-delay)
|
||||||
timerNextSeismicSmash:Start(20-delay)
|
timerNextSeismicSmash:Start(20-delay)
|
||||||
timerNextMakgora:Start(70-delay)
|
timerNextMakgora:Start(70-delay)
|
||||||
|
remainingTimerNextMakgora = 30
|
||||||
end
|
end
|
||||||
|
|
||||||
function mod:SPELL_AURA_APPLIED(args)
|
function mod:SPELL_AURA_APPLIED(args)
|
||||||
if args:IsSpellID(2143508, 2143509, 2143510, 2143511) and (25 >= timerMakgora:GetTime() or timerMakgora:GetTime() <= 3) then
|
if args:IsSpellID(2143508, 2143509, 2143510, 2143511) and (remainingTimerNextMakgora >= 25) then
|
||||||
warningBoilingBlood:Show()
|
warningBoilingBlood:Show()
|
||||||
timerNextBoilingBlood:Start()
|
timerNextBoilingBlood:Start()
|
||||||
elseif args:IsSpellID(2143530, 2143531, 2143532, 2143533) and (10 >= timerMakgora:GetTime() or timerMakgora:GetTime() <= 3) then
|
elapsed, total = timerNextMakgora:GetTime()
|
||||||
|
remainingTimerNextMakgora = total - elapsed
|
||||||
|
elseif args:IsSpellID(2143530, 2143531, 2143532, 2143533) and (remainingTimerNextMakgora >= 10) then
|
||||||
warningSeismicSmash:Show()
|
warningSeismicSmash:Show()
|
||||||
timerNextSeismicSmash:Start()
|
timerNextSeismicSmash:Start()
|
||||||
timerSeismicSmash:Start()
|
timerSeismicSmash:Start()
|
||||||
|
elapsed, total = timerNextMakgora:GetTime()
|
||||||
|
remainingTimerNextMakgora = total - elapsed
|
||||||
elseif args:IsSpellID(2143523) then
|
elseif args:IsSpellID(2143523) then
|
||||||
warnMakgora:Show()
|
warnMakgora:Show()
|
||||||
timerNextMakgora:Start()
|
timerNextMakgora:Start()
|
||||||
timerMakgora:Start(args.destName)
|
timerMakgora:Start(args.destName)
|
||||||
timerNextMalevolentCleave:Start()
|
timerNextMalevolentCleave:Start()
|
||||||
elseif args:IsSpellID(2143527) and (20 >= timerMakgora:GetTime() or timerMakgora:GetTime() <= 3) then
|
elapsed, total = timerNextMakgora:GetTime()
|
||||||
|
remainingTimerNextMakgora = total - elapsed
|
||||||
|
timerNextBoilingBlood:Start(42)
|
||||||
|
timerNextSeismicSmash:Start(50)
|
||||||
|
elseif args:IsSpellID(2143527) and (remainingTimerNextMakgora >= 20) then
|
||||||
warningFatalstrike:Show()
|
warningFatalstrike:Show()
|
||||||
timerNextFatalstrike:Start()
|
timerNextFatalstrike:Start()
|
||||||
elseif args:IsSpellID(2143517) and DBM:AntiSpam(15) and (25 >= timerMakgora:GetTime() or timerMakgora:GetTime() <= 3) then
|
elapsed, total = timerNextMakgora:GetTime()
|
||||||
|
remainingTimerNextMakgora = total - elapsed
|
||||||
|
elseif args:IsSpellID(2143517) and DBM:AntiSpam(15) and (remainingTimerNextMakgora >= 25) then
|
||||||
warningBoilBlood:Show()
|
warningBoilBlood:Show()
|
||||||
timerNextBoilBlood:Start()
|
timerNextBoilBlood:Start()
|
||||||
|
elapsed, total = timerNextMakgora:GetTime()
|
||||||
|
remainingTimerNextMakgora = total - elapsed
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function mod:SPELL_AURA_REMOVED(args)
|
|
||||||
if args:IsSpellID(2143523) then
|
|
||||||
timerNextBoilingBlood:Start()
|
|
||||||
timerNextSeismicSmash:Start()
|
|
||||||
timerNextMakgora:Start()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- local boilCounter = 0
|
-- local boilCounter = 0
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ local L = mod:GetLocalizedStrings()
|
|||||||
|
|
||||||
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
|
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
|
||||||
mod:SetCreatureID(23418)
|
mod:SetCreatureID(23418)
|
||||||
mod:RegisterCombat("yell", DBM_SOULS_YELL_PULL, 23420)
|
mod:RegisterCombat("yell", L.DBM_SOULS_YELL_PULL, 23420)
|
||||||
|
|
||||||
|
|
||||||
mod:RegisterEvents(
|
mod:RegisterEvents(
|
||||||
@@ -30,14 +30,14 @@ local timerNextSoulDrain = mod:NewNextTimer(20, 2143760)
|
|||||||
|
|
||||||
local warnRuneShield = mod:NewSpellAnnounce(2143808, 2)
|
local warnRuneShield = mod:NewSpellAnnounce(2143808, 2)
|
||||||
local timerRuneShield = mod:NewTargetTimer(15, 2143808)
|
local timerRuneShield = mod:NewTargetTimer(15, 2143808)
|
||||||
local timerNextRuneShield = mod:NewNextTimer(16, 2143808)
|
local timerNextRuneShield = mod:NewNextTimer(15, 2143808)
|
||||||
|
|
||||||
local warnTease = mod:NewSpellAnnounce(2143808, 2)
|
local warnTease = mod:NewSpellAnnounce(2143808, 2)
|
||||||
local timerTease = mod:NewBuffActiveTimer(15, 2143808)
|
local timerTease = mod:NewBuffActiveTimer(15, 2143808)
|
||||||
local timerNextTease = mod:NewNextTimer(30, 2143808)
|
local timerNextTease = mod:NewNextTimer(30, 2143808)
|
||||||
|
|
||||||
local warnSeethe = mod:NewSpellAnnounce(2143861, 2)
|
local warnSeethe = mod:NewSpellAnnounce(2143861, 2)
|
||||||
local timerSeethe = mod:NewBuffActiveTimer(15, 2143861)
|
local timerSeethe = mod:NewTargetTimer(15, 2143861)
|
||||||
local timerNextSeethe = mod:NewNextTimer(15, 2143861)
|
local timerNextSeethe = mod:NewNextTimer(15, 2143861)
|
||||||
|
|
||||||
local warnSoulScream = mod:NewSpellAnnounce(2143853, 2)
|
local warnSoulScream = mod:NewSpellAnnounce(2143853, 2)
|
||||||
@@ -50,11 +50,15 @@ local warnAuraOfDesire = mod:NewSpellAnnounce(2143800, 2)
|
|||||||
local warnAuraOfAnger = mod:NewSpellAnnounce(2143850, 2)
|
local warnAuraOfAnger = mod:NewSpellAnnounce(2143850, 2)
|
||||||
|
|
||||||
--local
|
--local
|
||||||
local isSuffer = false
|
-- local isSuffer
|
||||||
|
-- local isDesire
|
||||||
|
-- local isAnger
|
||||||
|
|
||||||
function mod:OnCombatStart(delay)
|
function mod:OnCombatStart(delay)
|
||||||
self.vb.phase = 1
|
self.vb.phase = 1
|
||||||
isSuffer = true
|
-- isSuffer = true
|
||||||
|
-- isDesire = false
|
||||||
|
-- isAnger = false
|
||||||
end
|
end
|
||||||
|
|
||||||
function mod:SPELL_AURA_APPLIED(args)
|
function mod:SPELL_AURA_APPLIED(args)
|
||||||
@@ -63,29 +67,30 @@ function mod:SPELL_AURA_APPLIED(args)
|
|||||||
timerTargetSpiritShock:Start(args.destName)
|
timerTargetSpiritShock:Start(args.destName)
|
||||||
elseif args:IsSpellID(2143961) and args.amount and args.amount >= 20 and args.amount % 5 == 0 then
|
elseif args:IsSpellID(2143961) and args.amount and args.amount >= 20 and args.amount % 5 == 0 then
|
||||||
warnSoulBlast:Show()
|
warnSoulBlast:Show()
|
||||||
elseif args:IsSpellID(2143760, 2143761, 2143762, 2143763) then
|
elseif args:IsSpellID(2143760, 2143761, 2143762, 2143763) and DBM:AntiSpam() then
|
||||||
warnSoulDrain:Show()
|
warnSoulDrain:Show()
|
||||||
elseif args:IsSpellID(2143808) then
|
elseif args:IsSpellID(2143808) then
|
||||||
warnRuneShield:Show()
|
warnRuneShield:Show()
|
||||||
timerRuneShield:Start()
|
timerRuneShield:Start(args.destName)
|
||||||
elseif args:IsSpellID(2143808) then
|
elseif args:IsSpellID(2143808) then
|
||||||
warnTease:Show()
|
warnTease:Show()
|
||||||
timerTease:Start()
|
timerTease:Start()
|
||||||
timerNextTease:Start()
|
timerNextTease:Start()
|
||||||
elseif args:IsSpellID(2143861) then
|
elseif args:IsSpellID(2143861) then
|
||||||
warnSeethe:Show()
|
if DBM:AntiSpam() then
|
||||||
timerSeethe:Start()
|
warnSeethe:Show()
|
||||||
timerNextSeethe:Start()
|
timerNextSeethe:Start()
|
||||||
elseif args:IsSpellID(2143750, 2143751, 2143752, 2143753) and DBM:AntiSpam(60) and self.vb.phase == 1 then
|
end
|
||||||
warnAuraOfSuffering:Show()
|
timerSeethe:Start(args.destName)
|
||||||
timerNextSoulDrain:Start(20)
|
elseif args:IsSpellID(2143800, 2143803) and DBM:AntiSpam(60) then
|
||||||
elseif args:IsSpellID(2143800, 2143803) and DBM:AntiSpam(60) and self.vb.phase == 1 then
|
|
||||||
self.vb.phase = 2
|
self.vb.phase = 2
|
||||||
|
-- isDesire = true
|
||||||
warnAuraOfDesire:Show()
|
warnAuraOfDesire:Show()
|
||||||
timerNextRuneShield:Start(16)
|
timerNextRuneShield:Start(20)
|
||||||
timerNextTease:Start(20)
|
timerNextTease:Start(25)
|
||||||
elseif args:IsSpellID(2143850) and DBM:AntiSpam(60) and self.vb.phase == 2 then
|
elseif args:IsSpellID(2143850, 2143852) and DBM:AntiSpam(60) then
|
||||||
self.vb.phase = 3
|
self.vb.phase = 3
|
||||||
|
-- isAnger = true
|
||||||
warnAuraOfAnger:Show()
|
warnAuraOfAnger:Show()
|
||||||
timerNextSoulScream:Start(10)
|
timerNextSoulScream:Start(10)
|
||||||
end
|
end
|
||||||
@@ -109,23 +114,24 @@ end
|
|||||||
|
|
||||||
function mod:UNIT_HEALTH(unit)
|
function mod:UNIT_HEALTH(unit)
|
||||||
--Essence of Suffering
|
--Essence of Suffering
|
||||||
if isSuffer and (mod:GetUnitCreatureId(unit) == 23418) then
|
if (mod:GetUnitCreatureId(unit) == 23418) then
|
||||||
local hp = (math.max(0,UnitHealth(unit)) / math.max(1, UnitHealthMax(unit))) * 100;
|
local hp = (math.max(0,UnitHealth(unit)) / math.max(1, UnitHealthMax(unit))) * 100;
|
||||||
if (hp <= 1) then
|
if (hp <= 2) then
|
||||||
intermissionSummonEssenceOfSuffering:Start()
|
intermissionSummonEssenceOfSuffering:Start()
|
||||||
end
|
end
|
||||||
--Essence of Desire
|
--Essence of Desire
|
||||||
elseif isSuffer and (mod:GetUnitCreatureId(unit) == 23419) then
|
elseif (mod:GetUnitCreatureId(unit) == 23419) then
|
||||||
local hp = (math.max(0,UnitHealth(unit)) / math.max(1, UnitHealthMax(unit))) * 100;
|
local hp = (math.max(0,UnitHealth(unit)) / math.max(1, UnitHealthMax(unit))) * 100;
|
||||||
if (hp <= 1) then
|
if (hp <= 2) then
|
||||||
intermissionSummonEssenceOfDesire:Start()
|
intermissionSummonEssenceOfDesire:Start()
|
||||||
|
self.vb.phase = 2
|
||||||
end
|
end
|
||||||
--Essence of Anger
|
--Essence of Anger
|
||||||
elseif isSuffer and (mod:GetUnitCreatureId(unit) == 23420) then
|
-- elseif isAnger and (mod:GetUnitCreatureId(unit) == 23420) then
|
||||||
local hp = (math.max(0,UnitHealth(unit)) / math.max(1, UnitHealthMax(unit))) * 100;
|
-- local hp = (math.max(0,UnitHealth(unit)) / math.max(1, UnitHealthMax(unit))) * 100;
|
||||||
if (hp <= 1) then
|
-- if (hp <= 2) then
|
||||||
intermissionSummonEssenceOfAnger:Start()
|
-- intermissionSummonEssenceOfAnger:Start()
|
||||||
end
|
-- end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
+288
-24
@@ -15,12 +15,20 @@ mod:RegisterEvents(
|
|||||||
"SPELL_DAMAGE",
|
"SPELL_DAMAGE",
|
||||||
"UNIT_DIED",
|
"UNIT_DIED",
|
||||||
"CHAT_MSG_MONSTER_YELL",
|
"CHAT_MSG_MONSTER_YELL",
|
||||||
"UNIT_SPELLCAST_START"
|
"UNIT_SPELLCAST_START",
|
||||||
|
"UNIT_HEALTH",
|
||||||
|
"UNIT_AURA"
|
||||||
)
|
)
|
||||||
|
|
||||||
local timerCombatStart = mod:NewTimer(3, "TimerCombatStart", 2457)
|
local timerCombatStart = mod:NewTimer(3, "TimerCombatStart", 2457)
|
||||||
|
local timerHumanForm = mod:NewTimer(85, "TimerHumanForm", 2457)
|
||||||
|
local timerDemonForm = mod:NewTimer(60, "TimerDemonForm", 2457)
|
||||||
|
|
||||||
local warnChaosBlast = mod:NewSpellAnnounce(2144802, 2)
|
local warnPhase = mod:NewPhaseAnnounce(2)
|
||||||
|
local warnPhaseSoon = mod:NewAnnounce("WarnPhaseSoon", 1)
|
||||||
|
|
||||||
|
local timerAddsSpawn = mod:NewTimer(9, "TimerAddsSpawn", 19879)
|
||||||
|
local warnChaosBlast = mod:NewSpellAnnounce(2144805, 2)
|
||||||
local warnFlameCrash = mod:NewSpellAnnounce(2144720, 2)
|
local warnFlameCrash = mod:NewSpellAnnounce(2144720, 2)
|
||||||
local warnFlameCrashDot = mod:NewSpellAnnounce(2144720, 3)
|
local warnFlameCrashDot = mod:NewSpellAnnounce(2144720, 3)
|
||||||
local warnForceNova = mod:NewSpellAnnounce(2144724, 2)
|
local warnForceNova = mod:NewSpellAnnounce(2144724, 2)
|
||||||
@@ -28,31 +36,116 @@ local warnShear = mod:NewSpellAnnounce(2144718, 2)
|
|||||||
local warnDrawSoul = mod:NewSpellAnnounce(2144737, 2)
|
local warnDrawSoul = mod:NewSpellAnnounce(2144737, 2)
|
||||||
local warnFelFireBlast = mod:NewSpellAnnounce(2144829, 2)
|
local warnFelFireBlast = mod:NewSpellAnnounce(2144829, 2)
|
||||||
local warnUnharnessedBlade = mod:NewSpellAnnounce(2144742, 2)
|
local warnUnharnessedBlade = mod:NewSpellAnnounce(2144742, 2)
|
||||||
|
local warnShadowBreach = mod:NewSpellAnnounce(2144868, 2)
|
||||||
|
local warnEyeBeam = mod:NewSpellAnnounce(2144816, 2)
|
||||||
|
local warnDarkBarrage = mod:NewSpellAnnounce(2144812, 2)
|
||||||
|
|
||||||
local yellUnharnessedBlade = mod:NewFadesYell(2144742)
|
local yellUnharnessedBlade = mod:NewFadesYell(2144742)
|
||||||
|
|
||||||
local timerChaosBlast = mod:NewCastTimer(2, 2144802)
|
local timerChaosBlast = mod:NewCastTimer(2, 2144805)
|
||||||
local timerChaosBlastDebuff = mod:NewBuffActiveTimer(6, 2144802)
|
local timerChaosBlastDebuff = mod:NewBuffActiveTimer(6, 2144805)
|
||||||
|
local timerNextChaosBlast = mod:NewNextTimer(12, 2144805)
|
||||||
local timerNextFlameCrash = mod:NewNextTimer(30, 2144720)
|
local timerNextFlameCrash = mod:NewNextTimer(30, 2144720)
|
||||||
local timerFlameCrash = mod:NewCastTimer(2, 2144720)
|
local timerFlameCrash = mod:NewCastTimer(2, 2144720)
|
||||||
local timerNextForceNova = mod:NewNextTimer(25, 2144724)
|
local timerNextForceNova = mod:NewNextTimer(25, 2144724)
|
||||||
local timerNextShear = mod:NewNextTimer(25, 2144718)
|
local timerNextShear = mod:NewNextTimer(25, 2144718)
|
||||||
local timerNextDrawSoul = mod:NewNextTimer(30, 2144737)
|
local timerNextDrawSoul = mod:NewNextTimer(30, 2144737)
|
||||||
local timerFelFireBlast = mod:NewCastTimer(2, 2144802)
|
local timerFelFireBlast = mod:NewCastTimer(2, 2144829)
|
||||||
local timerNextFelFireBlast = mod:NewNextTimer(20, 2144829)
|
local timerNextFelFireBlast = mod:NewNextTimer(20, 2144829)
|
||||||
local timerFelFireBlast2 = mod:NewCastTimer(2, 2144802)
|
local timerFelFireBlast2 = mod:NewCastTimer(2, 2144829)
|
||||||
local timerNextFelFireBlast2 = mod:NewNextTimer(20, 2144829)
|
local timerNextFelFireBlast2 = mod:NewNextTimer(20, 2144829)
|
||||||
local timerNextUnharnessedBlade = mod:NewNextTimer(30, 2144742)
|
local timerNextUnharnessedBlade = mod:NewNextTimer(30, 2144742)
|
||||||
|
|
||||||
|
local timerEyeBeam = mod:NewTargetTimer(20, 2144816)
|
||||||
|
local timerNextEyeBeam = mod:NewNextTimer(25, 2144816)
|
||||||
|
local timerTargetDarkBarrage = mod:NewTargetTimer(10, 2144812)
|
||||||
|
local timertDarkBarrage = mod:NewCastTimer(3, 2144812)
|
||||||
|
local timerNextDarkBarrage = mod:NewNextTimer(25, 2144812)
|
||||||
|
|
||||||
|
local timerNextShadowBreach = mod:NewNextTimer(42, 2144868)
|
||||||
|
local timerParalyzingStare = mod:NewTargetTimer(30, 2144871)
|
||||||
|
local timerShadowPrison = mod:NewCastTimer(60, 2144960)
|
||||||
|
|
||||||
|
local timerBladeCD = mod:NewNextTimer(40, 2144742)
|
||||||
|
local warnBlade = mod:NewSpellAnnounce(2144742)
|
||||||
|
|
||||||
|
-----------
|
||||||
|
-- Ascended
|
||||||
|
|
||||||
|
local warnPhase5 = mod:NewAnnounce("Stage Five: Avatar of Hatred", 3, 2145004)
|
||||||
|
local warnSoulShear = mod:NewSpellAnnounce(2145040)
|
||||||
|
local warnHateCrash = mod:NewSpellAnnounce(2145025)
|
||||||
|
local warnMadness = mod:NewSpellAnnounce(2145051)
|
||||||
|
local warnUnleash = mod:NewSpellAnnounce(2145061)
|
||||||
|
local warnStruggle = mod:NewSpellAnnounce(2145081)
|
||||||
|
local warnHateBeam = mod:NewSpellAnnounce(2145074)
|
||||||
|
|
||||||
|
local specWarnHatred = mod:NewSpecialWarning("Unleash Hatred!", 2145065)
|
||||||
|
|
||||||
|
local timerMotes = mod:NewTimer(5, "Motes of Hatres spawning", 2145072)
|
||||||
|
local timerP5RP = mod:NewTimer(49, "Illidan tranformation RP", 2145004)
|
||||||
|
local timerSoulShear = mod:NewNextTimer(35, 2145040)
|
||||||
|
local timerHateCrash = mod:NewNextTimer(35, 2145025)
|
||||||
|
local timerMadness = mod:NewNextTimer(110, 2145051)
|
||||||
|
local timerUnleash = mod:NewNextTimer(110, 2145061)
|
||||||
|
local timerNextHateBeam = mod:NewNextTimer(110, 2145074)
|
||||||
|
local timerHateBeam = mod:NewTimer(12,"Eye Beam", 2145074)
|
||||||
|
local timerStruggle = mod:NewNextTimer(110, 2145081)
|
||||||
|
local timerStruggling = mod:NewTimer(10, "Illidan is struggling", 2145081)
|
||||||
|
|
||||||
|
local azzinothKilled = 0
|
||||||
|
local bladeCount = 0
|
||||||
|
local shearCount = 0
|
||||||
|
local crashCount = 0
|
||||||
|
local bonusTime = 0
|
||||||
|
|
||||||
|
mod:AddBoolOption("RangeCheck", true)
|
||||||
|
|
||||||
|
function mod:phase5()
|
||||||
|
self.vb.phase = 5
|
||||||
|
warnPhase:Show(5)
|
||||||
|
timerNextForceNova:Start(15)
|
||||||
|
timerNextShear:Start(25)
|
||||||
|
timerNextDrawSoul:Start(30)
|
||||||
|
timerNextUnharnessedBlade:Start(35)
|
||||||
|
timerDemonForm:Start()
|
||||||
|
timerHumanForm:Stop()
|
||||||
|
end
|
||||||
|
|
||||||
|
function mod:CancelP5timers()
|
||||||
|
timerBladeCD:Cancel()
|
||||||
|
timerFlameCrash:Cancel()
|
||||||
|
timerParasite:Cancel()
|
||||||
|
timerDrawSoul:Cancel()
|
||||||
|
timerShearCD:Cancel()
|
||||||
|
timerNextDemon:Cancel()
|
||||||
|
bladeCount = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
function mod:StartP5timers()
|
||||||
|
timerBladeCD:Start(16)
|
||||||
|
timerMadness:Start(30)
|
||||||
|
timerSoulShear:Start(37)
|
||||||
|
timerHateCrash:Start(44)
|
||||||
|
timerUnleash:Start(70)
|
||||||
|
timerNextHateBeam:Start(77)
|
||||||
|
timerStruggle:Start(93)
|
||||||
|
end
|
||||||
|
|
||||||
function mod:OnCombatStart(delay)
|
function mod:OnCombatStart(delay)
|
||||||
|
if DBM:AntiSpam(600) then
|
||||||
|
self.vb.phase = 1
|
||||||
|
end
|
||||||
|
azzinothKilled = 0
|
||||||
if self.Options.RangeCheck then
|
if self.Options.RangeCheck then
|
||||||
DBM.RangeCheck:Show(15)
|
DBM.RangeCheck:Show(15)
|
||||||
end
|
end
|
||||||
timerCombatStart:Start(3)
|
timerCombatStart:Start(4)
|
||||||
timerNextForceNova:Start(18-delay)
|
timerAddsSpawn:Start(9-delay)
|
||||||
timerNextShear:Start(28-delay)
|
timerNextForceNova:Start(19-delay)
|
||||||
timerNextDrawSoul:Start(33-delay)
|
timerNextShear:Start(29-delay)
|
||||||
timerNextUnharnessedBlade:Start(38)
|
timerNextDrawSoul:Start(34-delay)
|
||||||
|
timerNextUnharnessedBlade:Start(39-delay)
|
||||||
end
|
end
|
||||||
|
|
||||||
function mod:UnharnessedBlade()
|
function mod:UnharnessedBlade()
|
||||||
@@ -64,16 +157,7 @@ function mod:UnharnessedBlade()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function mod:SPELL_CAST_SUCCESS(args)
|
function mod:SPELL_CAST_SUCCESS(args)
|
||||||
if args:IsSpellID(2144840) then
|
if args:IsSpellID(2144803,2144804,2144805, 2144806) then
|
||||||
if timerFelFireBlast:IsStarted() or timerNextFelFireBlast:IsStarted() then
|
|
||||||
timerFelFireBlast2:Start()
|
|
||||||
timerNextFelFireBlast2:Start(20)
|
|
||||||
else
|
|
||||||
timerFelFireBlast:Start()
|
|
||||||
timerNextFelFireBlast:Start(20)
|
|
||||||
end
|
|
||||||
warnFelFireBlast:Show()
|
|
||||||
elseif args:IsSpellID(2144802,2144803,2144804,2144805) then
|
|
||||||
warnChaosBlast:Show()
|
warnChaosBlast:Show()
|
||||||
timerChaosBlast:Start()
|
timerChaosBlast:Start()
|
||||||
elseif args:IsSpellID(2144715,2144716,2144717,2144718) then
|
elseif args:IsSpellID(2144715,2144716,2144717,2144718) then
|
||||||
@@ -83,7 +167,16 @@ function mod:SPELL_CAST_SUCCESS(args)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function mod:SPELL_CAST_START(args)
|
function mod:SPELL_CAST_START(args)
|
||||||
if args:IsSpellID(2144737,2144738,2144739,2144740) then
|
if args:IsSpellID(2144829, 2144830, 2144831, 2144832) then
|
||||||
|
if timerFelFireBlast:IsStarted() or timerNextFelFireBlast:IsStarted() then
|
||||||
|
timerFelFireBlast2:Start()
|
||||||
|
timerNextFelFireBlast2:Start(20)
|
||||||
|
else
|
||||||
|
timerFelFireBlast:Start()
|
||||||
|
timerNextFelFireBlast:Start(20)
|
||||||
|
end
|
||||||
|
warnFelFireBlast:Show()
|
||||||
|
elseif args:IsSpellID(2144737,2144738,2144739,2144740) then
|
||||||
warnDrawSoul:Show()
|
warnDrawSoul:Show()
|
||||||
timerNextDrawSoul:Start()
|
timerNextDrawSoul:Start()
|
||||||
elseif args:IsSpellID(2144720,2144721,2144722,2144723) then
|
elseif args:IsSpellID(2144720,2144721,2144722,2144723) then
|
||||||
@@ -100,19 +193,91 @@ function mod:SPELL_CAST_START(args)
|
|||||||
elseif args:IsSpellID(2144715,2144716,2144717,2144718) then
|
elseif args:IsSpellID(2144715,2144716,2144717,2144718) then
|
||||||
warnShear:Show()
|
warnShear:Show()
|
||||||
timerNextShear:Start()
|
timerNextShear:Start()
|
||||||
elseif args:IsSpellID(2144802,2144803,2144804,2144805) then
|
elseif args:IsSpellID(2144803,2144804,2144805,2144806) then
|
||||||
warnChaosBlast:Show()
|
warnChaosBlast:Show()
|
||||||
timerChaosBlast:Start()
|
timerChaosBlast:Start()
|
||||||
|
elseif args:IsSpellID(2144816) then
|
||||||
|
warnEyeBeam:Show()
|
||||||
|
timerEyeBeam:Start()
|
||||||
|
elseif args:IsSpellID(2144810) then
|
||||||
|
warnDarkBarrage:Show()
|
||||||
|
timertDarkBarrage:Start()
|
||||||
|
elseif args:IsSpellID(2144868, 2144869) then
|
||||||
|
warnShadowBreach:Show()
|
||||||
|
elseif args:IsSpellID(2144871, 2144872) then
|
||||||
|
timerParalyzingStare:Start(args.destName)
|
||||||
|
-- elseif (args:IsSpellID(2144863) or args:IsSpellID(2144864,2144865,2144866,2144867)) and not timerCombatStart:IsStarted() and DBM:AntiSpam() then
|
||||||
|
-- timerCombatStart:Start(60)
|
||||||
|
-- self:ScheduleMethod(60, "phase5")
|
||||||
|
-- timerNextShadowBreach:Start(20)
|
||||||
|
elseif args:IsSpellID(2144742, 2145015) then
|
||||||
|
if bladeCount >= 1 and phase == 3 then
|
||||||
|
timerBladeCD:Start()
|
||||||
|
warnBlade:Show()
|
||||||
|
bladeCount = bladeCount + 1
|
||||||
|
elseif bladeCount >= 1 and phase == 5 then
|
||||||
|
timerBladeCD:Start()
|
||||||
|
warnBlade:Show()
|
||||||
|
bladeCount = bladeCount + 1
|
||||||
|
elseif bladeCount >= 1 and phase == 6 then
|
||||||
|
warnBlade:Show()
|
||||||
|
timerBladeCD:Start(75)
|
||||||
|
bladeCount = 0
|
||||||
|
elseif bladeCount == 0 and phase == 6 then
|
||||||
|
timerBladeCD:Start(35)
|
||||||
|
warnBlade:Show()
|
||||||
|
bladeCount = bladeCount + 1
|
||||||
|
else
|
||||||
|
timerBladeCD:Start(30)
|
||||||
|
warnBlade:Show()
|
||||||
|
bladeCount = bladeCount + 1
|
||||||
|
end
|
||||||
|
elseif args:IsSpellID(2145040) then
|
||||||
|
warnSoulShear:Show()
|
||||||
|
if shearCount == 0 then
|
||||||
|
timerSoulShear:Start()
|
||||||
|
shearCount = shearCount + 1
|
||||||
|
elseif shearCount == 1 then
|
||||||
|
shearCount = 0
|
||||||
|
timerSoulShear:Start(75)
|
||||||
|
end
|
||||||
|
elseif args:IsSpellID(2145022, 2145023, 2145024, 2145025) then
|
||||||
|
warnHateCrash:Show()
|
||||||
|
if phase == 6 and crashCount == 0 then
|
||||||
|
timerHateCrash:Start()
|
||||||
|
crashCount = crashCount + 1
|
||||||
|
elseif phase == 6 and crashCount == 1 then
|
||||||
|
timerHateCrash:Start(74)
|
||||||
|
crashCount = 0
|
||||||
|
end
|
||||||
|
elseif args:IsSpellID(2145051,2145052) then
|
||||||
|
warnMadness:Show()
|
||||||
|
timerMadness:Start(110)
|
||||||
|
elseif args:IsSpellID(2145074) then
|
||||||
|
warnHateBeam:Show()
|
||||||
|
timerHateBeam:Start()
|
||||||
|
timerNextHateBeam:Start()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function mod:SPELL_AURA_APPLIED(args)
|
function mod:SPELL_AURA_APPLIED(args)
|
||||||
if args:IsSpellID(2144802,2144803,2144804,2144805) then
|
if args:IsSpellID(2144803,2144804,2144805,2144806) then
|
||||||
timerChaosBlastDebuff:Start()
|
timerChaosBlastDebuff:Start()
|
||||||
elseif args:IsSpellID(2144720,2144721,2144722,2144723) then
|
elseif args:IsSpellID(2144720,2144721,2144722,2144723) then
|
||||||
if args:IsPlayer() then
|
if args:IsPlayer() then
|
||||||
warnFlameCrashDot:Show()
|
warnFlameCrashDot:Show()
|
||||||
end
|
end
|
||||||
|
elseif args:IsSpellID(2144810) then
|
||||||
|
timerTargetDarkBarrage:Start(args.destName)
|
||||||
|
elseif args:IsSpellID(2144960, 2144961) and self.vb.phase == 5 then
|
||||||
|
self.vb.phase = 6
|
||||||
|
warnPhase:Show(6)
|
||||||
|
timerCombatStart:Start(34)
|
||||||
|
timerNextUnharnessedBlade:Start(5)
|
||||||
|
timerNextForceNova:Start(15)
|
||||||
|
timerNextShear:Start(25)
|
||||||
|
timerNextDrawSoul:Start(30)
|
||||||
|
timerShadowPrison:Start(60)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -123,10 +288,109 @@ function mod:SPELL_DAMAGE(args)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function mod:UNIT_AURA(unit)
|
||||||
|
Name = UnitName(unit)
|
||||||
|
if (UnitDebuff(unit, "Betrayer's Gaze")) and eyebeamTarget == 0 and DBM:AntiSpam(2,4) then
|
||||||
|
eyebeamTarget = 1
|
||||||
|
if Name == UnitName("player") then
|
||||||
|
specWarnEyebeam:Show()
|
||||||
|
SendChatMessage("Eye Beam on "..UnitName("PLAYER").."!", "SAY")
|
||||||
|
else
|
||||||
|
warnEyebeamTarget:Show(Name)
|
||||||
|
end
|
||||||
|
self:SetIcon(Name, 8, 10)
|
||||||
|
self:ScheduleMethod(10,"EyeBeamReset")
|
||||||
|
end
|
||||||
|
if (UnitDebuff("Boss1", "Struggle for Control"))and DBM:AntiSpam(105, 3) then
|
||||||
|
warnStruggle:Show()
|
||||||
|
timerStruggling:Start()
|
||||||
|
timerStruggle:Start()
|
||||||
|
Struggled = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function mod:OnCombatEnd()
|
function mod:OnCombatEnd()
|
||||||
DBM.RangeCheck:Hide()
|
DBM.RangeCheck:Hide()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function mod:UNIT_DIED(args)
|
||||||
|
|
||||||
|
local cid = mod:GetUnitCreatureId(args.destGUID)
|
||||||
|
if cid == 22997 and self.vb.phase == 2 then
|
||||||
|
if azzinothKilled == 1 then
|
||||||
|
local elapsed1, total1 = timerTargetDarkBarrage:GetTime()
|
||||||
|
local elapsed2, total2 = timerEyeBeam:GetTime()
|
||||||
|
local elapsed, total = math.max(elapsed1, elapsed2, 0), math.max(total1, total2, 0)
|
||||||
|
if (total or 0) > 0 then
|
||||||
|
bonusTime = (total - elapsed) or 0
|
||||||
|
end
|
||||||
|
self.vb.phase = 3
|
||||||
|
timerCombatStart:Start(7+bonusTime)
|
||||||
|
timerNextUnharnessedBlade:Start(12+bonusTime)
|
||||||
|
timerNextForceNova:Start(22+bonusTime)
|
||||||
|
timerNextShear:Start(33+bonusTime)
|
||||||
|
timerNextDrawSoul:Start(37+bonusTime)
|
||||||
|
timerDemonForm:Start(60+bonusTime)
|
||||||
|
else
|
||||||
|
azzinothKilled = azzinothKilled + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function mod:CHAT_MSG_MONSTER_YELL(msg)
|
||||||
|
if msg == L.DBM_ILLIDAN_YELL_PULL_RP then
|
||||||
|
timerCombatStart:Start(40)
|
||||||
|
elseif msg == L.DBM_ILLIDAN_YELL_DEMON then
|
||||||
|
self.vb.phase = 4
|
||||||
|
warnPhase:Show(4)
|
||||||
|
timerDemonForm:Stop()
|
||||||
|
timerHumanForm:Start()
|
||||||
|
self:ScheduleMethod(85, "phase5")
|
||||||
|
timerNextForceNova:Stop()
|
||||||
|
timerNextShear:Stop()
|
||||||
|
timerNextDrawSoul:Stop()
|
||||||
|
timerNextUnharnessedBlade:Stop()
|
||||||
|
timerNextShadowBreach:Start(42)
|
||||||
|
elseif msg == L.Phase5 or msg:find(L.Phase5) then
|
||||||
|
self.vb.phase = 7
|
||||||
|
warnPhase5:Schedule(46)
|
||||||
|
timerP5RP:Start()
|
||||||
|
self:ScheduleMethod(0,"CancelP5timers")
|
||||||
|
self:ScheduleMethod(49, "StartP5timers")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function mod:UNIT_HEALTH(unit)
|
||||||
|
if mod:GetUnitCreatureId(unit) == 22917 then
|
||||||
|
local hp = (math.max(0,UnitHealth(unit)) / math.max(1, UnitHealthMax(unit))) * 100;
|
||||||
|
if (hp <= 75) and DBM:AntiSpam(5) and self.vb.phase == 1 then
|
||||||
|
warnPhaseSoon:Show()
|
||||||
|
elseif (hp <= 71) and self.vb.phase == 1 then
|
||||||
|
self.vb.phase = 2
|
||||||
|
warnPhase:Show(2)
|
||||||
|
timerNextForceNova:Stop()
|
||||||
|
timerNextShear:Stop()
|
||||||
|
timerNextDrawSoul:Stop()
|
||||||
|
timerNextUnharnessedBlade:Stop()
|
||||||
|
timerCombatStart:Start(4)
|
||||||
|
timerNextChaosBlast:Start(12)
|
||||||
|
timerNextEyeBeam:Start(25)
|
||||||
|
elseif (hp <= 35) and DBM:AntiSpam(5) and self.vb.phase == 4 then
|
||||||
|
warnPhaseSoon:Show()
|
||||||
|
elseif (hp <= 31) and self.vb.phase == 5 then
|
||||||
|
self.vb.phase = 6
|
||||||
|
warnPhase:Show(6)
|
||||||
|
timerCombatStart:Start(34)
|
||||||
|
timerNextUnharnessedBlade:Start(5)
|
||||||
|
timerNextForceNova:Start(15)
|
||||||
|
timerNextShear:Start(25)
|
||||||
|
timerNextDrawSoul:Start(30)
|
||||||
|
end
|
||||||
|
elseif mod:GetUnitCreatureId(unit) == 22997 then
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- if self.Options.RangeCheck then
|
-- if self.Options.RangeCheck then
|
||||||
-- DBM_Gui_DistanceFrame_Hide()
|
-- DBM_Gui_DistanceFrame_Hide()
|
||||||
-- end
|
-- end
|
||||||
|
|||||||
+146
-204
@@ -2,30 +2,44 @@ local mod = DBM:NewMod("Council", "DBM-BlackTemple")
|
|||||||
local L = mod:GetLocalizedStrings()
|
local L = mod:GetLocalizedStrings()
|
||||||
|
|
||||||
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
|
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
|
||||||
mod:SetCreatureID(22949)
|
mod:SetCreatureID(22949, 22950, 22951, 22952)
|
||||||
mod:RegisterCombat("yell", DBM_COUNCIL_YELL_PULL1, DBM_COUNCIL_YELL_PULL2, DBM_COUNCIL_YELL_PULL3, DBM_COUNCIL_YELL_PULL4)
|
mod:RegisterCombat("combat", 22949, 22950, 22951, 22952)
|
||||||
|
|
||||||
mod:RegisterEvents(
|
mod:RegisterEvents(
|
||||||
"SPELL_CAST_START",
|
"SPELL_CAST_START",
|
||||||
"SPELL_HEAL",
|
"SPELL_HEAL",
|
||||||
"SPELL_INTERRUPT",
|
"SPELL_INTERRUPT",
|
||||||
"SPELL_AURA_APPLIED",
|
"SPELL_AURA_APPLIED",
|
||||||
"SPELL_AURA_REMOVED"
|
"SPELL_AURA_REMOVED",
|
||||||
|
"UNIT_DIED"
|
||||||
)
|
)
|
||||||
|
|
||||||
--Lady Malande
|
--Lady Malande
|
||||||
local warnPaintoPleasure = mod:NewTargetAnnounce(2144463, 3)
|
local warnPaintoPleasure = mod:NewSpellAnnounce(2144463, 3)
|
||||||
local timerNextPaintoPleasure = mod:NewNextTimer(30, 2144463)
|
local timerNextPaintoPleasure = mod:NewNextTimer(15, 2144463)
|
||||||
|
local timerPaintoPleasure = mod:NewCastTimer(1.5, 2144463)
|
||||||
|
|
||||||
local warnSadism = mod:NewSpellAnnounce(2144464, 3)
|
local warnSadism = mod:NewSpellAnnounce(2144464, 3)
|
||||||
local timerNextSadism = mod:NewNextTimer(60, 2144464)
|
local timerNextSadism = mod:NewNextTimer(45, 2144464)
|
||||||
|
local timerSadism = mod:NewCastTimer(3.5, 2144464)
|
||||||
|
|
||||||
|
--- Mythic/Ascended
|
||||||
|
local specWarnEmpoweredSadism = mod:NewSpecialWarning("Empowered Sadism", 2144514, 3)
|
||||||
|
local timerCastEmpoweredSadism = mod:NewCastTimer(3.5, 2144514)
|
||||||
|
|
||||||
|
|
||||||
--Veras Darkshadow
|
--Veras Darkshadow
|
||||||
local warnSmokeBomb = mod:NewTargetAnnounce(2144560, 3)
|
local warnSmokeBomb = mod:NewSpellAnnounce(2144560, 3)
|
||||||
local timerNextSmokeBomb = mod:NewNextTimer(60, 2144560)
|
local timerNextSmokeBomb = mod:NewNextTimer(60, 2144560)
|
||||||
|
|
||||||
--Gathios the Shatterer
|
--Gathios the Shatterer
|
||||||
|
local warnDeathSentence = mod:NewAnnounce("Death Sentence on %s", 3, 2144260)
|
||||||
|
local warnEmpoweredDeathSentence = mod:NewAnnounce("Empowered Death Sentence on %s", 3, 214431)
|
||||||
|
local specWarnDeathSentence = mod:NewSpecialWarningYou(2144260)
|
||||||
|
local specWarnEmpoweredDeathSentence= mod:NewSpecialWarning("Empowered Death Sentence on you", 3, 214431)
|
||||||
|
|
||||||
local timerNextDeathSentence = mod:NewNextTimer(60, 2144260)
|
local timerNextDeathSentence = mod:NewNextTimer(60, 2144260)
|
||||||
local timerDeathSentence = mod:NewBuffActiveTimer(10, 2144260, nil, false)
|
local timerDeathSentence = mod:NewTargetTimer(10, 2144260)
|
||||||
local timerNextConsecrate = mod:NewNextTimer(15, 2144256, nil, false)
|
local timerNextConsecrate = mod:NewNextTimer(15, 2144256, nil, false)
|
||||||
|
|
||||||
--High Nethermancer Zerevor
|
--High Nethermancer Zerevor
|
||||||
@@ -33,33 +47,100 @@ local timerNextRuneofPower = mod:NewNextTimer(60, 2144368)
|
|||||||
local warnNetherprotection = mod:NewSpellAnnounce(2144351, 3)
|
local warnNetherprotection = mod:NewSpellAnnounce(2144351, 3)
|
||||||
local timerNextNetherProtection = mod:NewNextTimer(30, 2144351)
|
local timerNextNetherProtection = mod:NewNextTimer(30, 2144351)
|
||||||
|
|
||||||
|
--Authority
|
||||||
|
local timerCrownofCommand = mod:NewTimer(18, "Crown of Command on %s", 2144201)
|
||||||
|
local warnCrownofCommand = mod:NewAnnounce("Crown of Command on %s", 3, 2144201)
|
||||||
|
local councilDeath = 0
|
||||||
|
|
||||||
function mod:OnCombatStart(delay)
|
function mod:OnCombatStart(delay)
|
||||||
|
councilDeath = 0
|
||||||
timerNextPaintoPleasure:Start(25-delay)
|
timerNextPaintoPleasure:Start(25-delay)
|
||||||
timerNextSmokeBomb:Start(33-delay)
|
timerNextSmokeBomb:Start(33-delay)
|
||||||
timerNextDeathSentence:Start(15-delay)
|
timerNextDeathSentence:Start(15-delay)
|
||||||
timerNextConsecrate:Start(10-delay)
|
timerNextConsecrate:Start(10-delay)
|
||||||
timerNextRuneofPower:Start(45-delay)
|
timerNextRuneofPower:Start(45-delay)
|
||||||
timerNextSadism:Start(60-delay)
|
timerNextSadism:Start(60-delay)
|
||||||
|
self:ScheduleMethod(33-delay,"SmokeBomb")
|
||||||
|
end
|
||||||
|
|
||||||
|
function mod:SmokeBomb()
|
||||||
|
warnSmokeBomb:Show()
|
||||||
|
timerNextSmokeBomb:cancel()
|
||||||
|
if councilDeath == 0 then
|
||||||
|
timerNextSmokeBomb:start(60)
|
||||||
|
elseif councilDeath == 1 then
|
||||||
|
timerNextSmokeBomb:start(45)
|
||||||
|
elseif councilDeath == 2 then
|
||||||
|
timerNextSmokeBomb:start(30)
|
||||||
|
elseif councilDeath == 3 then
|
||||||
|
timerNextSmokeBomb:start(15)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function mod:SPELL_AURA_APPLIED(args)
|
function mod:SPELL_AURA_APPLIED(args)
|
||||||
if args:IsSpellID(2144560, 2144610) and DBM:AntiSpam(20, 1) then
|
if args:IsSpellID(2144560, 2144610) and DBM:AntiSpam(16, 1) then
|
||||||
warnSmokeBomb:Show()
|
warnSmokeBomb:Show()
|
||||||
timerNextSmokeBomb:Start()
|
if councilDeath == 0 then
|
||||||
elseif args:IsSpellID(2144560, 2144261, 2144262, 2144263) or
|
timerNextSmokeBomb:Start(60)
|
||||||
args:IsSpellID(2144264, 2144265, 2144266, 2144267) or
|
elseif councilDeath == 1 then
|
||||||
args:IsSpellID(2144268, 2144310, 2144311, 2144313) or
|
timerNextSmokeBomb:Start(45)
|
||||||
args:IsSpellID(2144315, 2144316, 2144317, 2144318) then
|
elseif councilDeath == 2 then
|
||||||
timerNextDeathSentence:Start()
|
timerNextSmokeBomb:Start(30)
|
||||||
timerDeathSentence:Start()
|
elseif councilDeath == 3 then
|
||||||
|
timerNextSmokeBomb:Start(15)
|
||||||
|
end
|
||||||
|
elseif args:IsSpellID(2144260) then
|
||||||
|
if args:IsPlayer() then
|
||||||
|
specWarnDeathSentence:Show();
|
||||||
|
else
|
||||||
|
warnDeathSentence:Show(args.destName)
|
||||||
|
end
|
||||||
|
timerDeathSentence:Start(args.destName)
|
||||||
|
self:SetIcon(args.destName, 8, 15)
|
||||||
|
if DBM:AntiSpam(2,5) then
|
||||||
|
if councilDeath == 0 then
|
||||||
|
timerNextDeathSentence:Start(60)
|
||||||
|
elseif councilDeath == 1 then
|
||||||
|
timerNextDeathSentence:Start(45)
|
||||||
|
elseif councilDeath == 2 then
|
||||||
|
timerNextDeathSentence:Start(30)
|
||||||
|
elseif councilDeath == 3 then
|
||||||
|
timerNextDeathSentence:Start(15)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
elseif args:IsSpellID(2144310) then
|
||||||
|
if args:IsPlayer() then
|
||||||
|
specWarnEmpoweredDeathSentence:Show();
|
||||||
|
else
|
||||||
|
warnEmpoweredDeathSentence:Show(args.destName)
|
||||||
|
end
|
||||||
|
timerDeathSentence:Start(args.destName)
|
||||||
|
self:SetIcon(args.destName, 8, 15)
|
||||||
|
if DBM:AntiSpam(2,4) then
|
||||||
|
if councilDeath == 0 then
|
||||||
|
timerNextDeathSentence:Start(60)
|
||||||
|
elseif councilDeath == 1 then
|
||||||
|
timerNextDeathSentence:Start(45)
|
||||||
|
elseif councilDeath == 2 then
|
||||||
|
timerNextDeathSentence:Start(30)
|
||||||
|
elseif councilDeath == 3 then
|
||||||
|
timerNextDeathSentence:Start(15)
|
||||||
|
end
|
||||||
|
end
|
||||||
elseif args:IsSpellID(2144256) then
|
elseif args:IsSpellID(2144256) then
|
||||||
timerNextConsecrate:Start()
|
timerNextConsecrate:Start()
|
||||||
elseif args:IsSpellID(2144368, 2144418) and DBM:AntiSpam(20, 1) then
|
elseif args:IsSpellID(2144368, 2144418) and DBM:AntiSpam(20, 2) then
|
||||||
timerNextRuneofPower:Start()
|
timerNextRuneofPower:Start()
|
||||||
elseif args:IsSpellID(2144351, 2144401) then
|
elseif args:IsSpellID(2144351, 2144401) then
|
||||||
warnNetherprotection:Show()
|
warnNetherprotection:Show()
|
||||||
end
|
end
|
||||||
|
if args:IsSpellID(2144201) then
|
||||||
|
timerCrownofCommand:Start(args.destName)
|
||||||
|
warnCrownofCommand:Show(args.destName)
|
||||||
|
end
|
||||||
|
if args:IsSpellID(2144559) and args.sourceName == "Veras DarkShadow" and DBM:AntiSpam(14,3) then
|
||||||
|
self:ScheduleMethod(2,"SmokeBomb")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function mod:SPELL_AURA_REMOVED(args)
|
function mod:SPELL_AURA_REMOVED(args)
|
||||||
@@ -72,196 +153,57 @@ function mod:SPELL_CAST_START(args)
|
|||||||
if args:IsSpellID(2144462, 2144463, 2144512, 2144513) then
|
if args:IsSpellID(2144462, 2144463, 2144512, 2144513) then
|
||||||
warnPaintoPleasure:Show()
|
warnPaintoPleasure:Show()
|
||||||
timerNextPaintoPleasure:Start()
|
timerNextPaintoPleasure:Start()
|
||||||
|
timerPaintoPleasure:Start()
|
||||||
--when rogue splits, 22951 is fake 22952 is real.
|
--when rogue splits, 22951 is fake 22952 is real.
|
||||||
elseif args:IsSpellID(2144464, 2144465, 2144466, 2144467) or args:IsSpellID(2144514, 2144515, 2144516, 2144517) then
|
elseif args:IsSpellID(2144464, 2144465, 2144466, 2144467) then
|
||||||
warnSadism:Show()
|
warnSadism:Show()
|
||||||
timerNextSadism:Start()
|
timerSadism:Start()
|
||||||
|
if councilDeath == 0 then
|
||||||
|
timerNextSadism:Start(60)
|
||||||
|
elseif councilDeath == 1 then
|
||||||
|
timerNextSadism:Start(45)
|
||||||
|
elseif councilDeath == 2 then
|
||||||
|
timerNextSadism:Start(30)
|
||||||
|
elseif councilDeath == 3 then
|
||||||
|
timerNextSadism:Start(15)
|
||||||
|
end
|
||||||
|
elseif args:IsSpellID(2144514, 2144515, 2144516, 2144517) then
|
||||||
|
specWarnEmpoweredSadism:Show()
|
||||||
|
timerCastEmpoweredSadism:Start()
|
||||||
|
if councilDeath == 0 then
|
||||||
|
timerNextSadism:Start(60)
|
||||||
|
elseif councilDeath == 1 then
|
||||||
|
timerNextSadism:Start(45)
|
||||||
|
elseif councilDeath == 2 then
|
||||||
|
timerNextSadism:Start(30)
|
||||||
|
elseif councilDeath == 3 then
|
||||||
|
timerNextSadism:Start(15)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--Council:AddOption("WarnCoH", true, DBM_COUNCIL_OPTION_COH)
|
function mod:SPELL_INTERRUPT(args)
|
||||||
--Council:AddOption("WarnDP", true, DBM_COUNCIL_OPTION_DP)
|
if args:IsSpellID(2144462, 2144463, 2144512, 2144513) then
|
||||||
--Council:AddOption("WarnDW", false, DBM_COUNCIL_OPTION_DW)
|
timerPaintoPleasure:Cancel()
|
||||||
--Council:AddOption("WarnVanish", true, DBM_COUNCIL_OPTION_VANISH)
|
end
|
||||||
--Council:AddOption("WarnVanishFade", true, DBM_COUNCIL_OPTION_VANISHFADED)
|
end
|
||||||
--Council:AddOption("WarnVanishFadeSoon", true, DBM_COUNCIL_OPTION_VANISHFADESOON)
|
|
||||||
--Council:AddOption("WarnShieldNormal", true, DBM_COUNCIL_OPTION_SN)
|
|
||||||
--Council:AddOption("WarnShieldSpell", true, DBM_COUNCIL_OPTION_SS)
|
|
||||||
--Council:AddOption("WarnShieldMelee", true, DBM_COUNCIL_OPTION_SM)
|
|
||||||
--Council:AddOption("WarnDevAura", true, DBM_COUNCIL_OPTION_DEVAURA)
|
|
||||||
--Council:AddOption("WarnResAura", true, DBM_COUNCIL_OPTION_RESAURA)
|
|
||||||
|
|
||||||
--Council:AddBarOption("Enrage")
|
|
||||||
--Council:AddBarOption("Circle of Healing")
|
|
||||||
--Council:AddBarOption("Next Circle of Healing")
|
|
||||||
--Council:AddBarOption("Divine Wrath")
|
|
||||||
--Council:AddBarOption("Reflective Shield")
|
|
||||||
--Council:AddBarOption("Vanish")
|
|
||||||
--Council:AddBarOption("Devotion Aura")
|
|
||||||
--Council:AddBarOption("Resistance Aura")
|
|
||||||
--Council:AddBarOption("Spell Shield: (.*)")
|
|
||||||
--Council:AddBarOption("Melee Shield: (.*)")
|
|
||||||
|
|
||||||
-- self:StartStatusBarTimer(900 - delay, "Enrage", "Interface\\Icons\\Spell_Shadow_UnholyFrenzy")
|
|
||||||
-- self:ScheduleAnnounce(300 - delay, DBM_GENERIC_ENRAGE_WARN:format(10, DBM_MIN), 1)
|
|
||||||
-- self:ScheduleAnnounce(600 - delay, DBM_GENERIC_ENRAGE_WARN:format(5, DBM_MIN), 1)
|
|
||||||
-- self:ScheduleAnnounce(720 - delay, DBM_GENERIC_ENRAGE_WARN:format(3, DBM_MIN), 1)
|
|
||||||
-- self:ScheduleAnnounce(840 - delay, DBM_GENERIC_ENRAGE_WARN:format(1, DBM_MIN), 2)
|
|
||||||
-- self:ScheduleAnnounce(870 - delay, DBM_GENERIC_ENRAGE_WARN:format(30, DBM_SEC), 3)
|
|
||||||
-- self:ScheduleAnnounce(890 - delay, DBM_GENERIC_ENRAGE_WARN:format(10, DBM_SEC), 4)
|
|
||||||
|
|
||||||
|
|
||||||
-- function Council:OnEvent(event, args)
|
|
||||||
-- if event == "SPELL_CAST_START" then
|
|
||||||
-- if args.spellId == 41455 then
|
|
||||||
-- self:SendSync("CoHCast")
|
|
||||||
-- elseif args.spellId == 41472 then
|
|
||||||
-- self:SendSync("DWCast")
|
|
||||||
-- end
|
|
||||||
-- elseif event == "SPELL_HEAL" then
|
|
||||||
-- if args.spellId == 41455 then
|
|
||||||
-- self:SendSync("CoHHeal")
|
|
||||||
-- end
|
|
||||||
-- elseif event == "SPELL_INTERRUPT" then
|
|
||||||
-- if args.extraSpellId == 41455 then
|
|
||||||
-- self:SendSync("CoHInterrupt")
|
|
||||||
-- end
|
|
||||||
-- elseif event == "SPELL_AURA_APPLIED" then
|
|
||||||
-- if args.spellId == 41485 then
|
|
||||||
-- self:SendSync("DP"..tostring(args.destName))
|
|
||||||
-- elseif args.spellId == 41472 then
|
|
||||||
-- self:SendSync("DW"..tostring(args.destName))
|
|
||||||
-- elseif args.spellId == 41476 then
|
|
||||||
-- self:SendSync("Vanish")
|
|
||||||
-- elseif args.spellId == 41475 then
|
|
||||||
-- self:SendSync("ShieldNormal")
|
|
||||||
-- elseif args.spellId == 41452 then
|
|
||||||
-- self:SendSync("DevAura")
|
|
||||||
-- elseif args.spellId == 41453 then
|
|
||||||
-- self:SendSync("ResAura")
|
|
||||||
-- elseif args.spellId == 41451 then
|
|
||||||
-- local target = args.destName
|
|
||||||
-- if target == DBM_COUNCIL_MOB_GATHIOS then
|
|
||||||
-- target = DBM_COUNCIL_MOB_GATHIOS_EN
|
|
||||||
-- elseif target == DBM_COUNCIL_MOB_MALANDE then
|
|
||||||
-- target = DBM_COUNCIL_MOB_MALANDE_EN
|
|
||||||
-- elseif target == DBM_COUNCIL_MOB_ZEREVOR then
|
|
||||||
-- target = DBM_COUNCIL_MOB_ZEREVOR_EN
|
|
||||||
-- elseif target == DBM_COUNCIL_MOB_VERAS then
|
|
||||||
-- target = DBM_COUNCIL_MOB_VERAS_EN
|
|
||||||
-- else
|
|
||||||
-- return
|
|
||||||
-- end
|
|
||||||
-- self:SendSync("Spellward"..target)
|
|
||||||
-- elseif args.spellId == 41450 then
|
|
||||||
-- local target = args.destName
|
|
||||||
-- if target == DBM_COUNCIL_MOB_GATHIOS then
|
|
||||||
-- target = DBM_COUNCIL_MOB_GATHIOS_EN
|
|
||||||
-- elseif target == DBM_COUNCIL_MOB_MALANDE then
|
|
||||||
-- target = DBM_COUNCIL_MOB_MALANDE_EN
|
|
||||||
-- elseif target == DBM_COUNCIL_MOB_ZEREVOR then
|
|
||||||
-- target = DBM_COUNCIL_MOB_ZEREVOR_EN
|
|
||||||
-- elseif target == DBM_COUNCIL_MOB_VERAS then
|
|
||||||
-- target = DBM_COUNCIL_MOB_VERAS_EN
|
|
||||||
-- else
|
|
||||||
-- return
|
|
||||||
-- end
|
|
||||||
-- self:SendSync("Protection"..target)
|
|
||||||
-- end
|
|
||||||
-- elseif event == "SPELL_AURA_REMOVED" then
|
|
||||||
-- if args.spellId == 41476 then
|
|
||||||
-- self:SendSync("FadeVanish")
|
|
||||||
-- end
|
|
||||||
-- elseif event == "VanishFadeSoon" then
|
|
||||||
-- if self.Options.WarnVanishFadeSoon then
|
|
||||||
-- self:Announce(DBM_COUNCIL_WARN_VANISHFADE_SOON, 3)
|
|
||||||
-- end
|
|
||||||
-- end
|
|
||||||
-- end
|
|
||||||
|
|
||||||
-- function Council:OnSync(msg)
|
|
||||||
-- if msg:sub(0, 9) == "Spellward" then
|
|
||||||
-- msg = msg:sub(10)
|
|
||||||
-- self:StartStatusBarTimer(15, "Spell Shield: "..msg, "Interface\\Icons\\Spell_Holy_SealOfRighteousness")
|
|
||||||
|
|
||||||
-- if self.Options.WarnShieldSpell then
|
|
||||||
-- if GetLocale():sub(0, 2) ~= "en" then
|
|
||||||
-- if msg == DBM_COUNCIL_MOB_GATHIOS_EN then
|
|
||||||
-- msg = DBM_COUNCIL_MOB_GATHIOS
|
|
||||||
-- elseif msg == DBM_COUNCIL_MOB_MALANDE_EN then
|
|
||||||
-- msg = DBM_COUNCIL_MOB_MALANDE
|
|
||||||
-- elseif msg == DBM_COUNCIL_MOB_ZEREVOR_EN then
|
|
||||||
-- msg = DBM_COUNCIL_MOB_ZEREVOR
|
|
||||||
-- elseif msg == DBM_COUNCIL_MOB_VERAS_EN then
|
|
||||||
-- msg = DBM_COUNCIL_MOB_VERAS
|
|
||||||
-- end
|
|
||||||
-- end
|
|
||||||
-- self:Announce(DBM_COUNCIL_WARN_SHIELD_SPELL:format(msg), 2)
|
|
||||||
-- end
|
|
||||||
|
|
||||||
-- elseif msg == "DWCast" then
|
|
||||||
-- self:StartStatusBarTimer(2, "Divine Wrath", "Interface\\Icons\\Spell_Holy_SearingLight")
|
|
||||||
|
|
||||||
-- elseif msg:sub(0, 10) == "Protection" and self.InCombat then
|
|
||||||
-- msg = msg:sub(11)
|
|
||||||
-- self:StartStatusBarTimer(15, "Melee Shield: "..msg, "Interface\\Icons\\Spell_Holy_SealOfProtection")
|
|
||||||
-- if self.Options.WarnShieldMelee then
|
|
||||||
-- if GetLocale():sub(0, 2) ~= "en" then
|
|
||||||
-- if msg == DBM_COUNCIL_MOB_GATHIOS_EN then
|
|
||||||
-- msg = DBM_COUNCIL_MOB_GATHIOS
|
|
||||||
-- elseif msg == DBM_COUNCIL_MOB_MALANDE_EN then
|
|
||||||
-- msg = DBM_COUNCIL_MOB_MALANDE
|
|
||||||
-- elseif msg == DBM_COUNCIL_MOB_ZEREVOR_EN then
|
|
||||||
-- msg = DBM_COUNCIL_MOB_ZEREVOR
|
|
||||||
-- elseif msg == DBM_COUNCIL_MOB_VERAS_EN then
|
|
||||||
-- msg = DBM_COUNCIL_MOB_VERAS
|
|
||||||
-- end
|
|
||||||
-- end
|
|
||||||
-- self:Announce(DBM_COUNCIL_WARN_SHIELD_MELEE:format(msg), 2)
|
|
||||||
-- end
|
|
||||||
-- elseif msg == "CoHCast" then
|
|
||||||
-- if self.Options.WarnCoH then
|
|
||||||
-- self:Announce(DBM_COUNCIL_WARN_CAST_COH, 4)
|
|
||||||
-- end
|
|
||||||
-- self:StartStatusBarTimer(2.5, "Circle of Healing", "Interface\\Icons\\Spell_Holy_CircleOfRenewal")
|
|
||||||
-- elseif msg == "CoHHeal" then
|
|
||||||
-- self:StartStatusBarTimer(19.5, "Next Circle of Healing", "Interface\\Icons\\Spell_Holy_CircleOfRenewal")
|
|
||||||
-- elseif msg == "CoHInterrupt" then
|
|
||||||
-- self:StartStatusBarTimer(14.5, "Next Circle of Healing", "Interface\\Icons\\Spell_Holy_CircleOfRenewal")
|
|
||||||
-- elseif msg:sub(0, 2) == "DP" and self.InCombat then
|
|
||||||
-- msg = msg:sub(3)
|
|
||||||
-- if self.Options.WarnDP then
|
|
||||||
-- self:Announce(DBM_COUNCIL_WARN_POISON:format(msg), 2)
|
|
||||||
-- end
|
|
||||||
-- self:SetIcon(msg, 8)
|
|
||||||
-- elseif msg:sub(0, 2) == "DW" then
|
|
||||||
-- msg = msg:sub(3)
|
|
||||||
-- if self.Options.WarnDW then
|
|
||||||
-- self:Announce(DBM_COUNCIL_WARN_WRATH:format(msg), 1)
|
|
||||||
-- end
|
|
||||||
-- elseif msg == "ShieldNormal" then
|
|
||||||
-- if self.Options.WarnShieldNormal then
|
|
||||||
-- self:Announce(DBM_COUNCIL_WARN_SHIELD_NORMAL, 3)
|
|
||||||
-- end
|
|
||||||
-- self:StartStatusBarTimer(20, "Reflective Shield", "Interface\\Icons\\Spell_Holy_PowerWordShield")
|
|
||||||
|
|
||||||
-- elseif msg == "Vanish" and self.Options.WarnVanish then
|
|
||||||
-- self:Announce(DBM_COUNCIL_WARN_VANISH, 1)
|
|
||||||
-- self:StartStatusBarTimer(31, "Vanish", "Interface\\Icons\\Ability_Vanish")
|
|
||||||
-- self:ScheduleEvent(26, "VanishFadeSoon")
|
|
||||||
-- elseif msg == "FadeVanish" and self.Options.WarnVanishFade then
|
|
||||||
-- self:Announce(DBM_COUNCIL_WARN_VANISH_FADED, 4)
|
|
||||||
-- elseif msg == "DevAura" then
|
|
||||||
-- if self.Options.WarnDevAura then
|
|
||||||
-- self:Announce(DBM_COUNCIL_WARN_AURA_DEV, 1)
|
|
||||||
-- end
|
|
||||||
-- self:StartStatusBarTimer(30, "Devotion Aura", "Interface\\Icons\\Spell_Holy_SealOfProtection")
|
|
||||||
-- elseif msg == "ResAura" then
|
|
||||||
-- if self.Options.WarnResAura then
|
|
||||||
-- self:Announce(DBM_COUNCIL_WARN_AURA_RES, 1)
|
|
||||||
-- end
|
|
||||||
-- self:StartStatusBarTimer(30, "Resistance Aura", "Interface\\Icons\\Spell_Frost_WizardMark")
|
|
||||||
-- end
|
|
||||||
-- end
|
|
||||||
|
|
||||||
|
|
||||||
|
function mod:UNIT_DIED(args)
|
||||||
|
local cid = self:GetCIDFromGUID(args.destGUID)
|
||||||
|
if cid == 22952 and DBM:AntiSpam(2,8) then
|
||||||
|
self:UnscheduleMethod("SmokeBomb")
|
||||||
|
councilDeath = councilDeath + 1
|
||||||
|
end
|
||||||
|
if args.destName =="Lady Malande" and DBM:AntiSpam(2,5) then
|
||||||
|
councilDeath = councilDeath + 1
|
||||||
|
timerNextSadism:Cancel()
|
||||||
|
end
|
||||||
|
if args.destName =="High Nethermancer Zerevor" and DBM:AntiSpam(2,6) then
|
||||||
|
councilDeath = councilDeath + 1
|
||||||
|
timerNextRuneofPower:Cancel()
|
||||||
|
end
|
||||||
|
if args.destName =="Gathios the Shatterer" and DBM:AntiSpam(2,7) then
|
||||||
|
councilDeath = councilDeath + 1
|
||||||
|
timerNextDeathSentence:Cancel()
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -13,8 +13,11 @@ mod:RegisterEvents(
|
|||||||
|
|
||||||
local warningShield = mod:NewSpellAnnounce(2142521, 3)
|
local warningShield = mod:NewSpellAnnounce(2142521, 3)
|
||||||
local warningDischarge = mod:NewSpellAnnounce(2142504, 3)
|
local warningDischarge = mod:NewSpellAnnounce(2142504, 3)
|
||||||
|
local specWarnYouDischarge = mod:NewSpecialWarningYou(2142504)
|
||||||
local warningPuddle = mod:NewSpellAnnounce(2142594, 3)
|
local warningPuddle = mod:NewSpellAnnounce(2142594, 3)
|
||||||
local warnSpine = mod:NewTargetAnnounce(2142516, 2)
|
local warnSpine = mod:NewTargetAnnounce(2142516, 2)
|
||||||
|
local warnOozeDot = mod:NewSpellAnnounce(2142564, 2)
|
||||||
|
local specWarnDampFeet = mod:NewSpecialWarning("Move out of the water!", 2142550)
|
||||||
|
|
||||||
local warnPhase2 = mod:NewPhaseAnnounce(2)
|
local warnPhase2 = mod:NewPhaseAnnounce(2)
|
||||||
|
|
||||||
@@ -29,12 +32,15 @@ local yellDischarge = mod:NewFadesYell(2142504)
|
|||||||
|
|
||||||
mod:AddBoolOption(L.SpineYellOpt)
|
mod:AddBoolOption(L.SpineYellOpt)
|
||||||
mod:AddBoolOption(L.DischargeYellOpt)
|
mod:AddBoolOption(L.DischargeYellOpt)
|
||||||
|
mod:AddBoolOption(L.SpineIconsOpt)
|
||||||
|
mod:AddBoolOption(L.RangeCheck)
|
||||||
|
|
||||||
|
local spineWreathIcon = 8
|
||||||
|
|
||||||
function mod:OnCombatStart(delay)
|
function mod:OnCombatStart(delay)
|
||||||
self:ScheduleMethod(0-delay, "NewAdds")
|
self:ScheduleMethod(0-delay, "NewAdds")
|
||||||
timerNextSpine:Start(50-delay)
|
timerNextDischarge:Start(10-delay)
|
||||||
timerNextShield:Start(35-delay)
|
spineWreathIcon = 8
|
||||||
end
|
end
|
||||||
|
|
||||||
function mod:OnCombatEnd()
|
function mod:OnCombatEnd()
|
||||||
@@ -51,25 +57,45 @@ function mod:SPELL_AURA_APPLIED(args)
|
|||||||
if args:IsSpellID(2142521) then
|
if args:IsSpellID(2142521) then
|
||||||
warningShield:Show()
|
warningShield:Show()
|
||||||
timerNextShield:Start()
|
timerNextShield:Start()
|
||||||
elseif args:IsSpellID(2142504) then-- This is the damage proc, not the aura. args:IsSpellID(2142505, 2142506, 2142507, 2142508) then
|
timerNextSpine:Start(10)
|
||||||
warningDischarge:Show()
|
elseif args:IsSpellID(2142504) then
|
||||||
timerNextDischarge:Start()
|
if args:IsPlayer() then
|
||||||
if args:IsPlayer() and self.Options.DischargeYellOpt then
|
if self.Options.DischargeYellOpt then
|
||||||
yellDischarge:Schedule(8, 5)
|
SendChatMessage(L.SayDischargeFade, "SAY")
|
||||||
|
yellDischarge:Countdown(8, 5)
|
||||||
|
end
|
||||||
|
specWarnYouDischarge:Show()
|
||||||
|
if self.Options.RangeCheck then
|
||||||
|
DBM.RangeCheck:Show(15)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if DBM:AntiSpam() then
|
||||||
|
warningDischarge:Show()
|
||||||
|
timerNextDischarge:Start()
|
||||||
end
|
end
|
||||||
elseif args:IsSpellID(2142516, 2142517, 2142518, 2142519) then
|
elseif args:IsSpellID(2142516, 2142517, 2142518, 2142519) then
|
||||||
warnSpine:Show()
|
warnSpine:Show(args.destName)
|
||||||
timerNextSpine:Start()
|
timerNextSpine:Start()
|
||||||
timerTargetSpine:Start(args.destName)
|
timerTargetSpine:Start(args.destName)
|
||||||
|
if self.Options.SpineIconsOpt then
|
||||||
|
self:SetIcon(args.destName, spineWreathIcon, 20)
|
||||||
|
spineWreathIcon = spineWreathIcon - 1
|
||||||
|
end
|
||||||
elseif args:IsSpellID(2142526) then
|
elseif args:IsSpellID(2142526) then
|
||||||
warnPhase2:Show()
|
warnPhase2:Show()
|
||||||
|
timerNextShield:Stop()
|
||||||
|
timerNextSpine:Stop()
|
||||||
elseif args:IsSpellID(2142594,2142595,2142596,2142597) or args:IsSpellID(2142560, 21425601,2142562,2142563) then
|
elseif args:IsSpellID(2142594,2142595,2142596,2142597) or args:IsSpellID(2142560, 21425601,2142562,2142563) then
|
||||||
if args:IsPlayer() then
|
if args:IsPlayer() then
|
||||||
warningPuddle:Show()
|
warningPuddle:Show()
|
||||||
end
|
end
|
||||||
elseif args:IsSpellID() then
|
elseif args:IsSpellID(2142564, 2142565, 2142566, 2142567) then
|
||||||
if args:IsPlayer() then
|
if args:IsPlayer() then
|
||||||
warningPuddle:Show()
|
warnOozeDot:Show()
|
||||||
|
end
|
||||||
|
elseif args:IsSpellID(2142550, 2142551) then
|
||||||
|
if args:IsPlayer() then
|
||||||
|
specWarnDampFeet:Show()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -77,12 +103,21 @@ end
|
|||||||
function mod:SPELL_AURA_REMOVED(args)
|
function mod:SPELL_AURA_REMOVED(args)
|
||||||
if args:IsSpellID(2142516, 2142517, 2142518, 2142519) then
|
if args:IsSpellID(2142516, 2142517, 2142518, 2142519) then
|
||||||
timerTargetSpine:Stop()
|
timerTargetSpine:Stop()
|
||||||
|
if self.Options.SpineIconsOpt then
|
||||||
|
spineWreathIcon = spineWreathIcon + 1
|
||||||
|
end
|
||||||
|
elseif args:IsSpellID(2142504) then
|
||||||
|
if args:IsPlayer() then
|
||||||
|
if self.Options.RangeCheck then
|
||||||
|
DBM.RangeCheck:Hide()
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function mod:SPELL_PERIODIC_DAMAGE(args)
|
function mod:SPELL_PERIODIC_DAMAGE(args)
|
||||||
if self.Options.SpineYellOpt and args:IsPlayer() then
|
if args:IsSpellID(2142516, 2142517, 2142518, 2142519) then
|
||||||
if args:IsSpellID(2142516, 2142517, 2142518, 2142519) then
|
if self.Options.SpineYellOpt and args:IsPlayer() then
|
||||||
SendChatMessage(L.SpineYell, "YELL")
|
SendChatMessage(L.SpineYell, "YELL")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -14,10 +14,12 @@ mod:RegisterEvents(
|
|||||||
"SPELL_HEAL"
|
"SPELL_HEAL"
|
||||||
)
|
)
|
||||||
|
|
||||||
local timerNextAdds = mod:NewNextTimer(35, 2142603)
|
local timerNextGroup = mod:NewNextTimer(35, 2142687)
|
||||||
local warnSoulDomination = mod:NewSpellAnnounce(2142603, 2)
|
local timerNextSorcerer = mod:NewNextTimer(30, 2142602)
|
||||||
local timerSoulDomination = mod:NewCastTimer(300, 2142603)
|
local timerSoulDomination = mod:NewCastTimer(300, 2142603)
|
||||||
|
|
||||||
|
local warnSorcerer = mod:NewSpellAnnounce(2142602, 2)
|
||||||
|
local warnSoulDomination = mod:NewSpellAnnounce(2142603, 2)
|
||||||
local warnDeadlyPoison = mod:NewTargetAnnounce(2142657, 2)
|
local warnDeadlyPoison = mod:NewTargetAnnounce(2142657, 2)
|
||||||
local warnPoisonedShiv = mod:NewTargetAnnounce(2142653, 2)
|
local warnPoisonedShiv = mod:NewTargetAnnounce(2142653, 2)
|
||||||
|
|
||||||
@@ -25,29 +27,40 @@ local warnHealingStream = mod:NewSpellAnnounce(2142677, 2)
|
|||||||
local warnRiptide = mod:NewSpellAnnounce(2142680, 2) --Might be useful to warn if this is cast on shade of akama
|
local warnRiptide = mod:NewSpellAnnounce(2142680, 2) --Might be useful to warn if this is cast on shade of akama
|
||||||
local warnVigilance = mod:NewSpellAnnounce(2142686, 2) --Might be useful to warn if this is cast on shade of akama
|
local warnVigilance = mod:NewSpellAnnounce(2142686, 2) --Might be useful to warn if this is cast on shade of akama
|
||||||
|
|
||||||
|
local fightStarted = false
|
||||||
|
|
||||||
function mod:OnCombatStart(delay)
|
function mod:OnCombatStart(delay)
|
||||||
timerNextAdds:Start(5-delay)
|
timerNextGroup:Start(5-delay)
|
||||||
self:ScheduleMethod(5-delay, "NewAdds")
|
self:ScheduleMethod(5-delay, "NewGroup")
|
||||||
|
timerNextSorcerer:Start(60-delay)
|
||||||
|
self:ScheduleMethod(60-delay, "NewSorcerer")
|
||||||
|
fightStarted = true
|
||||||
end
|
end
|
||||||
|
|
||||||
function mod:OnCombatEnd()
|
function mod:OnCombatEnd()
|
||||||
DBM.RangeCheck:Hide()
|
DBM.RangeCheck:Hide()
|
||||||
end
|
end
|
||||||
|
|
||||||
function mod:NewAdds()
|
function mod:NewGroup()
|
||||||
self:UnscheduleMethod("NewAdds")
|
self:UnscheduleMethod("NewGroup")
|
||||||
timerNextAdds:Start()
|
timerNextGroup:Start()
|
||||||
self:ScheduleMethod(35, "NewAdds")
|
self:ScheduleMethod(35, "NewGroup")
|
||||||
|
end
|
||||||
|
|
||||||
|
function mod:NewSorcerer()
|
||||||
|
self:UnscheduleMethod("NewSorcerer")
|
||||||
|
warnSorcerer:Show()
|
||||||
|
timerNextSorcerer:Start()
|
||||||
|
self:ScheduleMethod(30, "NewSorcerer")
|
||||||
end
|
end
|
||||||
|
|
||||||
function mod:SPELL_AURA_APPLIED(args)
|
function mod:SPELL_AURA_APPLIED(args)
|
||||||
if args:IsSpellID(2142603) then
|
if args:IsSpellID(2142603) and fightStarted == true then
|
||||||
warnSoulDomination:Show()
|
warnSoulDomination:Show()
|
||||||
timerSoulDomination:Start()
|
timerSoulDomination:Start()
|
||||||
elseif args:IsSpellID(2142657) and args.amount and args.amount >= 2 and args.amount % 2 == 0 then
|
elseif args:IsSpellID(2142657) and args.amount and args.amount >= 2 and args.amount % 2 == 0 and DBM:AntiSpam(5, 1) then
|
||||||
warnDeadlyPoison:Show(args.destName)
|
warnDeadlyPoison:Show(args.destName)
|
||||||
elseif args:IsSpellID(2142653) and args.amount and args.amount >= 2 and args.amount % 2 == 0 then
|
elseif args:IsSpellID(2142653) and args.amount and args.amount >= 2 and args.amount % 2 == 0 and DBM:AntiSpam(5, 1) then
|
||||||
warnPoisonedShiv:Show(args.destName)
|
warnPoisonedShiv:Show(args.destName)
|
||||||
elseif args:IsSpellID(2142686) and self:GetCIDFromGUID(args.destGUID) == 22841 then
|
elseif args:IsSpellID(2142686) and self:GetCIDFromGUID(args.destGUID) == 22841 then
|
||||||
warnVigilance:Show()
|
warnVigilance:Show()
|
||||||
|
|||||||
+17
-11
@@ -3,7 +3,7 @@ local L = mod:GetLocalizedStrings()
|
|||||||
|
|
||||||
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
|
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
|
||||||
mod:SetCreatureID(22947)
|
mod:SetCreatureID(22947)
|
||||||
mod:RegisterCombat("yell", DBM_SHAHRAZ_YELL_PULL)
|
mod:RegisterCombat("yell", L.DBM_SHAHRAZ_YELL_PULL)
|
||||||
|
|
||||||
mod:RegisterEvents(
|
mod:RegisterEvents(
|
||||||
"SPELL_AURA_APPLIED",
|
"SPELL_AURA_APPLIED",
|
||||||
@@ -53,6 +53,9 @@ local warningShahrazFila = mod:NewAnnounce(L.ShahrazFila, 2, 2144003)
|
|||||||
local warningShahrazMater = mod:NewAnnounce(L.ShahrazMater, 2, 2144001)
|
local warningShahrazMater = mod:NewAnnounce(L.ShahrazMater, 2, 2144001)
|
||||||
local warningWiShahrazVirgo = mod:NewAnnounce(L.ShahrazVirgo, 2, 2144096)
|
local warningWiShahrazVirgo = mod:NewAnnounce(L.ShahrazVirgo, 2, 2144096)
|
||||||
|
|
||||||
|
--Ascended
|
||||||
|
local warningALittleChat = mod:NewSpellAnnounce(2144007, 3)
|
||||||
|
local timerNextALittleChat = mod:NewNextTimer(48, 2144007)
|
||||||
|
|
||||||
--local
|
--local
|
||||||
local isMother = false
|
local isMother = false
|
||||||
@@ -62,6 +65,7 @@ local below10 = false
|
|||||||
function mod:OnCombatStart(delay)
|
function mod:OnCombatStart(delay)
|
||||||
timerNextForcedThoughts:Start(15-delay)
|
timerNextForcedThoughts:Start(15-delay)
|
||||||
timerNextFatalAttraction:Start(35-delay)
|
timerNextFatalAttraction:Start(35-delay)
|
||||||
|
timerNextALittleChat:Start(20-delay)
|
||||||
self:ScheduleMethod(15-delay, "NewThoughts")
|
self:ScheduleMethod(15-delay, "NewThoughts")
|
||||||
below20 = false
|
below20 = false
|
||||||
below10 = false
|
below10 = false
|
||||||
@@ -89,14 +93,14 @@ function mod:SPELL_AURA_APPLIED(args)
|
|||||||
timerSinisterThoughts:Stop()
|
timerSinisterThoughts:Stop()
|
||||||
timerVileThoughts:Stop()
|
timerVileThoughts:Stop()
|
||||||
timerWickedThoughts:Stop()
|
timerWickedThoughts:Stop()
|
||||||
timerNextForcedThoughtsStop()
|
timerNextForcedThoughts:Stop()
|
||||||
|
|
||||||
timerNextFatalAttraction:Stop()
|
timerNextFatalAttraction:Stop()
|
||||||
|
|
||||||
timerNextSinfulBeamStop()
|
timerNextSinfulBeam:Stop()
|
||||||
timerNextSinisterBeamStop()
|
timerNextSinisterBeam:Stop()
|
||||||
timerNextVileBeamStop()
|
timerNextVileBeam:Stop()
|
||||||
timerNextWickedBeamStop()
|
timerNextWickedBeam:Stop()
|
||||||
elseif args:IsSpellID(2144001) and args.amount and args.amount >= 8 and args.amount % 2 == 0 and DBM:AntiSpam(5, 1) then
|
elseif args:IsSpellID(2144001) and args.amount and args.amount >= 8 and args.amount % 2 == 0 and DBM:AntiSpam(5, 1) then
|
||||||
warningShahrazMater:Show()
|
warningShahrazMater:Show()
|
||||||
elseif args:IsSpellID(2144003) and args.amount and args.amount >= 8 and args.amount % 2 == 0 and DBM:AntiSpam(5, 1) then
|
elseif args:IsSpellID(2144003) and args.amount and args.amount >= 8 and args.amount % 2 == 0 and DBM:AntiSpam(5, 1) then
|
||||||
@@ -105,11 +109,13 @@ function mod:SPELL_AURA_APPLIED(args)
|
|||||||
warningShahrazAvian:Show()
|
warningShahrazAvian:Show()
|
||||||
elseif args:IsSpellID(2144096) and args.amount and args.amount >= 8 and args.amount % 2 == 0 and DBM:AntiSpam(5, 1) then
|
elseif args:IsSpellID(2144096) and args.amount and args.amount >= 8 and args.amount % 2 == 0 and DBM:AntiSpam(5, 1) then
|
||||||
warningWiShahrazVirgo:Show()
|
warningWiShahrazVirgo:Show()
|
||||||
|
elseif args:IsSpellID(2144007) then
|
||||||
|
warningALittleChat:Show()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function mod:SPELL_DAMAGE(args)
|
function mod:SPELL_DAMAGE(args)
|
||||||
if args:IsSpellID(2144017) or args:IsSpellID(2144018) or args:IsSpellID(2144019) or args:IsSpellID(2144020) and DBM:Antispam() then
|
if args:IsSpellID(2144017) or args:IsSpellID(2144018) or args:IsSpellID(2144019) or args:IsSpellID(2144020) and DBM:AntiSpam() then
|
||||||
warningSinfulBeam:Show()
|
warningSinfulBeam:Show()
|
||||||
timerCastSinfulBeam:Start()
|
timerCastSinfulBeam:Start()
|
||||||
timerNextSinfulBeam:Start()
|
timerNextSinfulBeam:Start()
|
||||||
@@ -120,7 +126,7 @@ function mod:SPELL_DAMAGE(args)
|
|||||||
timerVileThoughts:Stop()
|
timerVileThoughts:Stop()
|
||||||
timerWickedThoughts:Stop()
|
timerWickedThoughts:Stop()
|
||||||
end
|
end
|
||||||
elseif args:IsSpellID(2144021) or args:IsSpellID(2144022) or args:IsSpellID(2144023) or args:IsSpellID(2144024) and DBM:Antispam() then
|
elseif args:IsSpellID(2144021) or args:IsSpellID(2144022) or args:IsSpellID(2144023) or args:IsSpellID(2144024) and DBM:AntiSpam() then
|
||||||
warningSinisterBeam:Show()
|
warningSinisterBeam:Show()
|
||||||
timerNextSinisterBeam:Start()
|
timerNextSinisterBeam:Start()
|
||||||
if args:IsPlayer() then
|
if args:IsPlayer() then
|
||||||
@@ -130,17 +136,17 @@ function mod:SPELL_DAMAGE(args)
|
|||||||
timerVileThoughts:Stop()
|
timerVileThoughts:Stop()
|
||||||
timerWickedThoughts:Stop()
|
timerWickedThoughts:Stop()
|
||||||
end
|
end
|
||||||
elseif args:IsSpellID(2144025) or args:IsSpellID(2144026) or args:IsSpellID(2144027) or args:IsSpellID(2144028) and DBM:Antispam() then
|
elseif args:IsSpellID(2144025) or args:IsSpellID(2144026) or args:IsSpellID(2144027) or args:IsSpellID(2144028) and DBM:AntiSpam() then
|
||||||
warningVileBeam:Show()
|
warningVileBeam:Show()
|
||||||
timerNextVileBeam:Start()
|
timerNextVileBeam:Start()
|
||||||
if args:IsPlayer() then
|
if args:IsPlayer() then
|
||||||
warningSinfulThoughts:Show()
|
warningSinfulThoughts:Show()
|
||||||
timerSinfulThoughts:Stop()
|
timerSinfulThoughts:Stop()
|
||||||
warningVileThoughts:Stop()
|
timerSinisterThoughts:Stop()
|
||||||
timerVileThoughts:Start()
|
timerVileThoughts:Start()
|
||||||
timerWickedThoughts:Stop()
|
timerWickedThoughts:Stop()
|
||||||
end
|
end
|
||||||
elseif args:IsSpellID(2144029) or args:IsSpellID(2144030) or args:IsSpellID(2144031) or args:IsSpellID(2144032) and DBM:Antispam() then
|
elseif args:IsSpellID(2144029) or args:IsSpellID(2144030) or args:IsSpellID(2144031) or args:IsSpellID(2144032) and DBM:AntiSpam() then
|
||||||
warningWickedBeam:Show()
|
warningWickedBeam:Show()
|
||||||
timerNextWickedBeam:Start()
|
timerNextWickedBeam:Start()
|
||||||
if args:IsPlayer() then
|
if args:IsPlayer() then
|
||||||
|
|||||||
@@ -3,35 +3,73 @@ local L = mod:GetLocalizedStrings()
|
|||||||
|
|
||||||
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
|
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
|
||||||
mod:SetCreatureID(22898)
|
mod:SetCreatureID(22898)
|
||||||
mod:RegisterCombat("combat")
|
mod:RegisterCombat("combat", 22898)
|
||||||
|
|
||||||
mod:RegisterEvents(
|
mod:RegisterEvents(
|
||||||
"CHAT_MSG_RAID_BOSS_EMOTE",
|
"CHAT_MSG_RAID_BOSS_EMOTE",
|
||||||
"SPELL_AURA_APPLIED",
|
"SPELL_AURA_APPLIED",
|
||||||
"SPELL_AURA_APPLIED_DOSE",
|
"SPELL_AURA_APPLIED_DOSE",
|
||||||
|
"SPELL_AURA_REMOVED",
|
||||||
"SPELL_CAST_START",
|
"SPELL_CAST_START",
|
||||||
"SPELL_DAMAGE"
|
"SPELL_DAMAGE",
|
||||||
|
"UNIT_HEALTH"
|
||||||
)
|
)
|
||||||
|
|
||||||
local warningTitanic = mod:NewSpellAnnounce(2142758, 3)
|
local warningTitanic = mod:NewSpellAnnounce(2142758, 3)
|
||||||
local warningSupreme = mod:NewSpellAnnounce(2142764, 3)
|
local warningSupreme = mod:NewSpellAnnounce(2142764, 3)
|
||||||
local warnCracked = mod:NewAnnounce(L.SupremusCracked, 2, 2142751)
|
local warnCracked = mod:NewAnnounce(L.SupremusCracked, 2, 2142751)
|
||||||
|
local warnThreatDetected = mod:NewTargetAnnounce(2142765, 3)
|
||||||
|
|
||||||
local timerTitanic = mod:NewCastTimer(6, 2142758)
|
local timerTitanic = mod:NewCastTimer(6, 2142758)
|
||||||
local timerSupreme = mod:NewCastTimer(2, 2142764)
|
local timerSupreme = mod:NewCastTimer(2, 2142764)
|
||||||
|
local timerThreatDetected = mod:NewTargetTimer(60, 2142765)
|
||||||
|
|
||||||
local timerEruption = mod:NewCastTimer(4, 2142774)
|
local timerEruption = mod:NewCastTimer(4, 2142774)
|
||||||
|
local timerNextPillar = mod:NewNextTimer(15, 2142574)
|
||||||
|
|
||||||
local warnPhase2 = mod:NewPhaseAnnounce(2)
|
local warnPhase2 = mod:NewPhaseAnnounce(2)
|
||||||
|
local warnPhase2Soon = mod:NewAnnounce(L.WarnPhase2Soon, 1)
|
||||||
|
local timerEnrage = mod:NewTimer(600, "Berserk", 44427)
|
||||||
|
local oldMarkThreat
|
||||||
|
local oldMarkTarget
|
||||||
|
|
||||||
|
mod:AddBoolOption(L.threatIconsOpt)
|
||||||
|
|
||||||
function mod:OnCombatStart(delay)
|
function mod:OnCombatStart(delay)
|
||||||
|
oldMarkThreat = 0
|
||||||
|
self:ScheduleMethod(0-delay, "NewPillar")
|
||||||
|
timerEnrage:Start()
|
||||||
|
end
|
||||||
|
|
||||||
|
function mod:NewPillar()
|
||||||
|
self:UnscheduleMethod("NewPillar")
|
||||||
|
timerNextPillar:Start()
|
||||||
|
self:ScheduleMethod(15, "NewPillar")
|
||||||
end
|
end
|
||||||
|
|
||||||
function mod:SPELL_AURA_APPLIED(args)
|
function mod:SPELL_AURA_APPLIED(args)
|
||||||
if args:IsSpellID(2142772) then --Enrages at 30% hp need hp check
|
if args:IsSpellID(2142772) then --Enrages at 30% hp need hp check
|
||||||
warnPhase2:Show()
|
warnPhase2:Show()
|
||||||
|
timerThreatDetected:Stop()
|
||||||
|
timerEnrage:Stop()
|
||||||
elseif args:IsSpellID(2142751) then
|
elseif args:IsSpellID(2142751) then
|
||||||
warnCracked:Show(args.spellName, args.destName, args.amount or 1)
|
warnCracked:Show(args.spellName, args.destName, args.amount or 1)
|
||||||
|
elseif args:IsSpellID(2142765) then
|
||||||
|
-- warnThreatDetected:Show(args.destName) --Game does this
|
||||||
|
timerThreatDetected:Stop()
|
||||||
|
timerThreatDetected:Start(args.destName)
|
||||||
|
if self.Options.threatIconsOpt then
|
||||||
|
oldMarkThreat, oldMarkTarget = self:GetIcon(args.destName), args.destName
|
||||||
|
self:SetIcon(args.destName, 8, 60)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function mod:SPELL_AURA_REMOVED(args)
|
||||||
|
if args:IsSpellID(2142765) then
|
||||||
|
if self.Options.threatIconsOpt then
|
||||||
|
self:SetIcon(oldMarkTarget, oldMarkThreat or 0)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -56,6 +94,16 @@ function mod:SPELL_DAMAGE(args)
|
|||||||
timerEruption:Start()
|
timerEruption:Start()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
mod.SPELL_MISSED = mod.SPELL_DAMAGE -- Hack to include SPELL_MISSED as well without more code
|
||||||
|
|
||||||
|
function mod:UNIT_HEALTH(unit)
|
||||||
|
if mod:GetUnitCreatureId(unit) == 22898 then
|
||||||
|
local hp = (math.max(0,UnitHealth(unit)) / math.max(1, UnitHealthMax(unit))) * 100;
|
||||||
|
if (hp <= 40) and DBM:AntiSpam(600) then
|
||||||
|
warnPhase2Soon:Show()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Supremus.MinRevision = 828
|
-- Supremus.MinRevision = 828
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,11 @@ local L = mod:GetLocalizedStrings()
|
|||||||
|
|
||||||
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
|
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
|
||||||
mod:SetCreatureID(22871)
|
mod:SetCreatureID(22871)
|
||||||
mod:RegisterCombat("yell", DBM_GOREFIEND_YELL_PULL)
|
mod:RegisterCombat("yell", L.DBM_GOREFIEND_YELL_PULL)
|
||||||
|
|
||||||
mod:RegisterEvents(
|
mod:RegisterEvents(
|
||||||
"SPELL_AURA_APPLIED"
|
"SPELL_AURA_APPLIED",
|
||||||
|
"UNIT_AURA"
|
||||||
)
|
)
|
||||||
|
|
||||||
local warningWitherAndRot = mod:NewSpellAnnounce(2143286, 3)
|
local warningWitherAndRot = mod:NewSpellAnnounce(2143286, 3)
|
||||||
@@ -17,11 +18,15 @@ local warnSoulReaper = mod:NewSpellAnnounce(2143272, 2)
|
|||||||
local timerNextWitherAndRot = mod:NewNextTimer(30, 2143286)
|
local timerNextWitherAndRot = mod:NewNextTimer(30, 2143286)
|
||||||
local timerNextGraspingDeath = mod:NewNextTimer(30, 2143282)
|
local timerNextGraspingDeath = mod:NewNextTimer(30, 2143282)
|
||||||
local timerNextShadowofDeath = mod:NewNextTimer(30, 2143264)
|
local timerNextShadowofDeath = mod:NewNextTimer(30, 2143264)
|
||||||
|
local timerTargetShadowofDeath = mod:NewTargetTimer(37, 2143264)
|
||||||
|
local timerTargetShadowofDeath2 = mod:NewTargetTimer(75, 2143264)
|
||||||
local timerSoulReaper = mod:NewNextTimer(20, 2143271)
|
local timerSoulReaper = mod:NewNextTimer(20, 2143271)
|
||||||
|
|
||||||
--Shadow of death has different timer for everyone. First person to expire has to run out.
|
--Shadow of death has different timer for everyone. First person to expire has to run out.
|
||||||
--Would like to add warnings for Teron's soul shards, tracked in a stacking buff on the boss. Spell id 2143255
|
--Would like to add warnings for Teron's soul shards, tracked in a stacking buff on the boss. Spell id 2143255
|
||||||
|
|
||||||
|
local shadowOfDeathName = GetSpellInfo(2143282)
|
||||||
|
|
||||||
function mod:OnCombatStart(delay)
|
function mod:OnCombatStart(delay)
|
||||||
timerNextWitherAndRot:Start(15-delay)
|
timerNextWitherAndRot:Start(15-delay)
|
||||||
timerNextGraspingDeath:Start(30-delay)
|
timerNextGraspingDeath:Start(30-delay)
|
||||||
@@ -30,13 +35,13 @@ function mod:OnCombatStart(delay)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function mod:SPELL_AURA_APPLIED(args)
|
function mod:SPELL_AURA_APPLIED(args)
|
||||||
if args:IsSpellID(2143286, 2143287, 2143288, 2143289) and DBM:AntiSpam(10) then
|
if args:IsSpellID(2143286, 2143287, 2143288, 2143289) and DBM:AntiSpam(29) then
|
||||||
warningWitherAndRot:Show()
|
warningWitherAndRot:Show()
|
||||||
timerNextWitherAndRot:Start()
|
timerNextWitherAndRot:Start()
|
||||||
elseif args:IsSpellID(2143282, 2143283, 2143284, 2143285) and DBM:AntiSpam(10) then
|
elseif args:IsSpellID(2143282, 2143283, 2143284, 2143285) and DBM:AntiSpam(29) then
|
||||||
warningGraspingDeath:Show()
|
warningGraspingDeath:Show()
|
||||||
timerNextGraspingDeath:Start()
|
timerNextGraspingDeath:Start()
|
||||||
elseif args:IsSpellID(2143264) then
|
elseif args:IsSpellID(2143264, 2143258, 2143259) and DBM:AntiSpam() then
|
||||||
warnShadowOfDeath:Show()
|
warnShadowOfDeath:Show()
|
||||||
timerNextShadowofDeath:Start()
|
timerNextShadowofDeath:Start()
|
||||||
elseif args:IsSpellID(2143271, 2143272, 2143273, 2143274) then
|
elseif args:IsSpellID(2143271, 2143272, 2143273, 2143274) then
|
||||||
@@ -45,7 +50,23 @@ function mod:SPELL_AURA_APPLIED(args)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--name, rank, icon, count, debuffType, duration, expirationTime, unitCaster, isStealable, shouldConsolidate, spellId
|
||||||
|
-- = UnitAura("unit", index or "name"[, "rank"[, "filter"]])
|
||||||
|
|
||||||
|
function mod:UNIT_AURA(uId)
|
||||||
|
local name = UnitName(uId)
|
||||||
|
if (not name) then return end
|
||||||
|
local spellName, _, _, _, _, duration, expires, _, _, _, spellId = UnitDebuff(uId, shadowOfDeathName)
|
||||||
|
if not spellId or not expires then return end
|
||||||
|
if args:IsSpellID(2143286, 2143287, 2143288, 2143289) and expires > 0 then
|
||||||
|
if expires < 60 then
|
||||||
|
timerTargetShadowofDeath:Start(expires, name)
|
||||||
|
end
|
||||||
|
if expires < 130 and expires > 60 then
|
||||||
|
timerTargetShadowofDeath2:Start(expires, name)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
--Gorefiend:AddOption("WarnIncinerate", false, DBM_GOREFIEND_OPTION_INCINERATE)
|
--Gorefiend:AddOption("WarnIncinerate", false, DBM_GOREFIEND_OPTION_INCINERATE)
|
||||||
|
|
||||||
|
|||||||
@@ -11,13 +11,17 @@ L:SetWarningLocalization{
|
|||||||
}
|
}
|
||||||
|
|
||||||
L:SetOptionLocalization{
|
L:SetOptionLocalization{
|
||||||
SpineYellOpt = "Yell when you are affected by $spell:2142516",
|
SpineYellOpt = "Yell when you are affected by $spell:2142516",
|
||||||
DischargeYellOpt = "Yell when you are affected by $spell:2142504"
|
DischargeYellOpt = "Yell when you are affected by $spell:2142504",
|
||||||
|
SpineIconsOpt = DBM_CORE_AUTO_ICONS_OPTION_TEXT:format(2142516)
|
||||||
}
|
}
|
||||||
|
|
||||||
L:SetMiscLocalization{
|
L:SetMiscLocalization{
|
||||||
SpineYell = "Spine on me!",
|
SpineYell = "Spine on me!",
|
||||||
DBM_NAJENTUS_YELL_PULL = "You will die in the name of Lady Vashj!";
|
DBM_NAJENTUS_YELL_PULL = "You will die in the name of Lady Vashj!",
|
||||||
|
SayDischarge = "Static Charge on "..UnitName("PLAYER"),
|
||||||
|
SayDischargeFade = "Discharge on "..UnitName("PLAYER"),
|
||||||
|
NewAdds = "New filth"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -51,14 +55,17 @@ L:SetGeneralLocalization{
|
|||||||
}
|
}
|
||||||
|
|
||||||
L:SetWarningLocalization{
|
L:SetWarningLocalization{
|
||||||
SupremusCracked = "%s on >%s< (%d)" --(args.spellName, args.destName, args.amount or 1)
|
SupremusCracked = "%s on >%s< (%d)", --(args.spellName, args.destName, args.amount or 1)
|
||||||
|
WarnPhaseSoon = "Phase %s soon",
|
||||||
}
|
}
|
||||||
|
|
||||||
L:SetOptionLocalization{
|
L:SetOptionLocalization{
|
||||||
SupremusCracked = "Show $spell:2142751 targets and stack number warning" --(args.spellName, args.destName, args.amount or 1)
|
SupremusCracked = "Show $spell:2142751 targets and stack number warning", --(args.spellName, args.destName, args.amount or 1)
|
||||||
|
threatIconsOpt = DBM_CORE_AUTO_ICONS_OPTION_TEXT:format(2142765)
|
||||||
}
|
}
|
||||||
|
|
||||||
L:SetMiscLocalization{
|
L:SetMiscLocalization{
|
||||||
|
NewPillar = "New vulcano"
|
||||||
}
|
}
|
||||||
|
|
||||||
-- DBM_SUPREMUS_NAME = "Supremus";
|
-- DBM_SUPREMUS_NAME = "Supremus";
|
||||||
@@ -123,6 +130,7 @@ L:SetOptionLocalization{
|
|||||||
}
|
}
|
||||||
|
|
||||||
L:SetMiscLocalization{
|
L:SetMiscLocalization{
|
||||||
|
DBM_GOREFIEND_YELL_PULL = "Vengeance is mine!"
|
||||||
}
|
}
|
||||||
|
|
||||||
-- DBM_GOREFIEND_NAME = "Teron Gorefiend";
|
-- DBM_GOREFIEND_NAME = "Teron Gorefiend";
|
||||||
@@ -151,6 +159,7 @@ L:SetOptionLocalization{
|
|||||||
}
|
}
|
||||||
|
|
||||||
L:SetMiscLocalization{
|
L:SetMiscLocalization{
|
||||||
|
DBM_BLOODBOIL_YELL_PULL = "Horde will... crush you.";
|
||||||
}
|
}
|
||||||
|
|
||||||
-- DBM_BLOODBOIL_NAME = "Gurtogg Bloodboil";
|
-- DBM_BLOODBOIL_NAME = "Gurtogg Bloodboil";
|
||||||
@@ -182,6 +191,7 @@ L:SetOptionLocalization{
|
|||||||
}
|
}
|
||||||
|
|
||||||
L:SetMiscLocalization{
|
L:SetMiscLocalization{
|
||||||
|
DBM_SOULS_YELL_PULL = "Pain and suffering are all that await you!" -- Essence of Suffering
|
||||||
}
|
}
|
||||||
|
|
||||||
-- DBM_SOULS_NAME = "Essence of Souls"
|
-- DBM_SOULS_NAME = "Essence of Souls"
|
||||||
@@ -281,6 +291,10 @@ L:SetOptionLocalization{
|
|||||||
}
|
}
|
||||||
|
|
||||||
L:SetMiscLocalization{
|
L:SetMiscLocalization{
|
||||||
|
DBM_COUNCIL_YELL_PULL1 = "Common... such a crude language. Bandal!",
|
||||||
|
DBM_COUNCIL_YELL_PULL2 = "You wish to test me?",
|
||||||
|
DBM_COUNCIL_YELL_PULL3 = "I have better things to do...",
|
||||||
|
DBM_COUNCIL_YELL_PULL4 = "Flee or die!"
|
||||||
}
|
}
|
||||||
|
|
||||||
-- DBM_COUNCIL_NAME = "Illidari Council"
|
-- DBM_COUNCIL_NAME = "Illidari Council"
|
||||||
@@ -332,6 +346,7 @@ L:SetGeneralLocalization{
|
|||||||
}
|
}
|
||||||
|
|
||||||
L:SetWarningLocalization{
|
L:SetWarningLocalization{
|
||||||
|
TimerAddsSpawn = "Adds spawning"
|
||||||
}
|
}
|
||||||
|
|
||||||
L:SetOptionLocalization{
|
L:SetOptionLocalization{
|
||||||
@@ -339,7 +354,13 @@ L:SetOptionLocalization{
|
|||||||
|
|
||||||
L:SetMiscLocalization{
|
L:SetMiscLocalization{
|
||||||
DBM_ILLIDAN_YELL_PULL = "You are not prepared!",
|
DBM_ILLIDAN_YELL_PULL = "You are not prepared!",
|
||||||
|
DBM_ILLIDAN_YELL_PULL_RP = "Akama. Your duplicity is hardly surprising. I should have slaughtered you and your malformed brethren long ago.",
|
||||||
UnharnessedBlade = "Blade on me!",
|
UnharnessedBlade = "Blade on me!",
|
||||||
|
DBM_ILLIDAN_YELL_DEMON = "You know nothing of power!",
|
||||||
|
Phase5 = "It is finished. You are beaten.",
|
||||||
|
TimerCombatStart = "Combat starts",
|
||||||
|
TimerHumanForm = "Human Form",
|
||||||
|
TimerDemonForm = "Demon Form",
|
||||||
}
|
}
|
||||||
|
|
||||||
-- DBM_ILLIDAN_NAME = "Illidan Stormrage"
|
-- DBM_ILLIDAN_NAME = "Illidan Stormrage"
|
||||||
|
|||||||
@@ -249,4 +249,9 @@ v5.19 17/02/2024
|
|||||||
- Fixed pull timer on Ragnaros
|
- Fixed pull timer on Ragnaros
|
||||||
- Fixed Lua errors in MC
|
- Fixed Lua errors in MC
|
||||||
- Added a antispam to rockfall on Golemagg, defaulted to off. (go to settings to turn on manually)
|
- Added a antispam to rockfall on Golemagg, defaulted to off. (go to settings to turn on manually)
|
||||||
- Removed spammy warnHandofRagTargets.
|
- Removed spammy warnHandofRagTargets.
|
||||||
|
----------------------------------------------------------------------------------------------------
|
||||||
|
v5.20 06/04/2024
|
||||||
|
- Fixed many bugs to Black Temple
|
||||||
|
- Added many new mechanics to Black Temple
|
||||||
|
- Fixed auch crypt spam
|
||||||
@@ -42,9 +42,9 @@
|
|||||||
-- Globals/Default Options --
|
-- Globals/Default Options --
|
||||||
-------------------------------
|
-------------------------------
|
||||||
DBM = {
|
DBM = {
|
||||||
Revision = ("$Revision: 5019 $"):sub(12, -3),
|
Revision = ("$Revision: 5020 $"):sub(12, -3),
|
||||||
Version = "5.19",
|
Version = "5.20",
|
||||||
DisplayVersion = "5.19", -- the string that is shown as version
|
DisplayVersion = "5.20", -- the string that is shown as version
|
||||||
ReleaseRevision = 5019 -- the revision of the latest stable version that is available (for /dbm ver2)
|
ReleaseRevision = 5019 -- the revision of the latest stable version that is available (for /dbm ver2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,10 +35,10 @@ end
|
|||||||
function mod:SPELL_CAST_START(args)
|
function mod:SPELL_CAST_START(args)
|
||||||
if args:IsSpellID(32424) then
|
if args:IsSpellID(32424) then
|
||||||
warningAvatar:Show()
|
warningAvatar:Show()
|
||||||
elseif args.spellId == 32422 then
|
-- elseif args.spellId == 32422 then
|
||||||
warnRibbon:Show()
|
-- warnRibbon:Show()
|
||||||
timerRibbonCast:Start()
|
-- timerRibbonCast:Start()
|
||||||
timerNextRibbon:Start()
|
-- timerNextRibbon:Start()
|
||||||
elseif args.spellId == 32346 then
|
elseif args.spellId == 32346 then
|
||||||
-- warnSoul:Show()
|
-- warnSoul:Show()
|
||||||
timerSoulCast:Start()
|
timerSoulCast:Start()
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ function mod:SPELL_DAMAGE(args)
|
|||||||
if args:IsSpellID(2135924, 2135925, 2135926, 2135927) and args:IsPlayer() then
|
if args:IsSpellID(2135924, 2135925, 2135926, 2135927) and args:IsPlayer() then
|
||||||
warnFlame:Show()
|
warnFlame:Show()
|
||||||
elseif args:IsSpellID(2135924, 2135925, 2135926, 2135927) then
|
elseif args:IsSpellID(2135924, 2135925, 2135926, 2135927) then
|
||||||
if DBM:AntiSpam(pillarTimer-0.1, 1) then -- Antispam at 20-0.1 seconds to not have other people walking into the pillar change the next timer.
|
if DBM:AntiSpam(pillarTimer-0.1, 1) then -- AntiSpam at 20-0.1 seconds to not have other people walking into the pillar change the next timer.
|
||||||
pillarTimer = ((pillarTimer + 5) <= 20) and 20 or 15 -- Alternates between 20 and 15. If pillartimer + 5 is 20, then 20 otherwise (ie. if 20+5 is not 20, then) 15
|
pillarTimer = ((pillarTimer + 5) <= 20) and 20 or 15 -- Alternates between 20 and 15. If pillartimer + 5 is 20, then 20 otherwise (ie. if 20+5 is not 20, then) 15
|
||||||
timerNextPillar:Start(pillarTimer) --
|
timerNextPillar:Start(pillarTimer) --
|
||||||
end
|
end
|
||||||
@@ -115,7 +115,7 @@ end
|
|||||||
|
|
||||||
function mod:SPELL_MISSED(args)
|
function mod:SPELL_MISSED(args)
|
||||||
if args:IsSpellID(2135924, 2135925, 2135926, 2135927) then
|
if args:IsSpellID(2135924, 2135925, 2135926, 2135927) then
|
||||||
if DBM:AntiSpam(pillarTimer-0.1, 1) then -- Antispam at 20-0.1 seconds to not have other people walking into the pillar change the next timer. AntiSpam(x,1) means Antispam ID1, so this would be the same antispam timer as the Spell_damage one.
|
if DBM:AntiSpam(pillarTimer-0.1, 1) then -- AntiSpam at 20-0.1 seconds to not have other people walking into the pillar change the next timer. AntiSpam(x,1) means AntiSpam ID1, so this would be the same antispam timer as the Spell_damage one.
|
||||||
pillarTimer = ((pillarTimer + 5) <= 20) and 20 or 15 -- Alternates between 20 and 15. If pillartimer + 5 is 20, then 20 otherwise (ie. if 20+5 is not 20, then) 15
|
pillarTimer = ((pillarTimer + 5) <= 20) and 20 or 15 -- Alternates between 20 and 15. If pillartimer + 5 is 20, then 20 otherwise (ie. if 20+5 is not 20, then) 15
|
||||||
timerNextPillar:Start(pillarTimer) --
|
timerNextPillar:Start(pillarTimer) --
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user