Co-authored-by: Szyler <Szyler@Szyler.com>
This commit is contained in:
Szyler
2024-03-03 19:23:13 +01:00
committed by GitHub
parent 00255736e5
commit dc8afd6584
53 changed files with 2770 additions and 301 deletions
+1 -1
View File
@@ -571,7 +571,7 @@ function mod:SPELL_AURA_APPLIED(args) -- Weakened phase (C'Thun and tentacles)
end
end
if args:IsSpellID(2117117) then -- (From beneath it devours you)
if args.destName == UnitName("player") then
if args:IsPlayer() then
SpecwarnStomach:Show()
SendChatMessage(""..UnitName("PLAYER").."is being sent to the stomach", "Say")
else
+147
View File
@@ -0,0 +1,147 @@
local mod = DBM:NewMod("Bloodboil", "DBM-BlackTemple")
local L = mod:GetLocalizedStrings()
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
mod:SetCreatureID(22948)
mod:RegisterCombat("yell", DBM_BLOODBOIL_YELL_PULL)
mod:RegisterEvents(
"SPELL_AURA_APPLIED",
"SPELL_AURA_REMOVED"
)
local warningBoilingBlood = mod:NewSpellAnnounce(2143508, 3)
local warningSeismicSmash = mod:NewSpellAnnounce(2143531, 3)
local warnMakgora = mod:NewSpellAnnounce(2143520, 2)
local warningFatalstrike = mod:NewSpellAnnounce(2143527, 2)
local timerNextBoilingBlood = mod:NewNextTimer(20, 2143508)
local timerNextSeismicSmash = mod:NewNextTimer(20, 2143531)
local timerSeismicSmash = mod:NewCastTimer(5, 2143531)
local timerNextMakgora = mod:NewNextTimer(70, 2143520)
local timerNextFatalstrike = mod:NewNextTimer(20, 2143527)
local timerNextMalevolentCleave = mod:NewNextTimer(5, 2143526)
local timerMakgora = mod:NewTargetTimer(35, 2143523)
local warningBoilBlood = mod:NewSpellAnnounce(2143517, 3) --Burst damage from boiling the pools
local timerNextBoilBlood = mod:NewNextTimer(20, 2143517)
function mod:OnCombatStart(delay)
timerNextBoilingBlood:Start(10-delay)
timerNextSeismicSmash:Start(20-delay)
timerNextMakgora:Start(70-delay)
end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(2143508, 2143509, 2143510, 2143511) and (25 >= timerMakgora:GetTime() or timerMakgora:GetTime() <= 3) then
warningBoilingBlood:Show()
timerNextBoilingBlood:Start()
elseif args:IsSpellID(2143530, 2143531, 2143532, 2143533) and (10 >= timerMakgora:GetTime() or timerMakgora:GetTime() <= 3) then
warningSeismicSmash:Show()
timerNextSeismicSmash:Start()
timerSeismicSmash:Start()
elseif args:IsSpellID(2143523) then
warnMakgora:Show()
timerNextMakgora:Start()
timerMakgora:Start(args.destName)
timerNextMalevolentCleave:Start()
elseif args:IsSpellID(2143527) and (20 >= timerMakgora:GetTime() or timerMakgora:GetTime() <= 3) then
warningFatalstrike:Show()
timerNextFatalstrike:Start()
elseif args:IsSpellID(2143517) and DBM:AntiSpam(15) and (25 >= timerMakgora:GetTime() or timerMakgora:GetTime() <= 3) then
warningBoilBlood:Show()
timerNextBoilBlood:Start()
end
end
function mod:SPELL_AURA_REMOVED(args)
if args:IsSpellID(2143523) then
timerNextBoilingBlood:Start()
timerNextSeismicSmash:Start()
timerNextMakgora:Start()
end
end
-- local boilCounter = 0
--Bloodboil:AddOption("WarnSmash", false, DBM_BLOODBOIL_OPTION_SMASH)
--Bloodboil:AddBarOption("Enrage")
--Bloodboil:AddBarOption("Bloodboil")
--Bloodboil:AddBarOption("Fel Rage")
--Bloodboil:AddBarOption("Normal Phase")
--Bloodboil:AddBarOption("Arcing Smash")
-- boilCounter = 0
-- self:StartStatusBarTimer(600 - delay, "Enrage", "Interface\\Icons\\Spell_Shadow_UnholyFrenzy")
-- self:ScheduleSelf(300 - delay, "EnrageWarn", 300)
-- self:ScheduleSelf(480 - delay, "EnrageWarn", 120)
-- self:ScheduleSelf(540 - delay, "EnrageWarn", 60)
-- self:ScheduleSelf(570 - delay, "EnrageWarn", 30)
-- self:ScheduleSelf(590 - delay, "EnrageWarn", 10)
-- self:StartStatusBarTimer(57.5, "Fel Rage", "Interface\\Icons\\Spell_Fire_ElementalDevastation")
-- self:ScheduleSelf(52.5, "FelRageWarn")
-- self:StartStatusBarTimer(11.5, "Bloodboil", "Interface\\Icons\\Spell_Shadow_BloodBoil")
-- function Bloodboil:OnEvent(event, arg1)
-- if event == "SPELL_AURA_APPLIED" then
-- if arg1.spellId == 42005 then
-- self:SendSync("Bloodboil")
-- elseif arg1.spellId == 40604 then
-- self:SendSync("FelRage"..tostring(arg1.destName))
-- elseif arg1.spellId == 40599 then
-- self:SendSync("ArcingSmash"..tostring(arg1.destName))
-- end
-- elseif event == "SPELL_AURA_REMOVED" then
-- if arg1.spellId == 40594 then
-- boilCounter = 0
-- self:Announce(DBM_BLOODBOIL_WARN_NORMALPHASE, 3)
-- self:ScheduleSelf(52, "FelRageWarn")
-- self:StartStatusBarTimer(57, "Fel Rage", "Interface\\Icons\\Spell_Fire_ElementalDevastation")
-- self:StartStatusBarTimer(10, "Bloodboil", "Interface\\Icons\\Spell_Shadow_BloodBoil")
-- end
-- elseif event == "FelRageWarn" then
-- self:Announce(DBM_BLOODBOIL_WARN_FELRAGE_SOON, 2)
-- elseif event == "NormalWarn" then
-- self:Announce(DBM_BLOODBOIL_WARN_NORMAL_SOON, 2)
-- elseif event == "SmashWarn" then
-- self:Announce(DBM_BLOODBOIL_WARN_SMASH_SOON, 2)
-- elseif event == "EnrageWarn" and type(arg1) == "number" then
-- if arg1 >= 60 then
-- self:Announce(string.format(DBM_BLOODBOIL_WARN_ENRAGE, (arg1/60), DBM_MIN), 1)
-- else
-- self:Announce(string.format(DBM_BLOODBOIL_WARN_ENRAGE, arg1, DBM_SEC), 3)
-- end
-- end
-- end
-- function Bloodboil:OnSync(msg)
-- if msg == "Bloodboil" then
-- boilCounter = boilCounter + 1
-- self:Announce(DBM_BLOODBOIL_WARN_BLOODBOIL:format(boilCounter), 1)
-- self:StartStatusBarTimer(10, "Bloodboil", "Interface\\Icons\\Spell_Shadow_BloodBoil")
-- elseif msg:sub(0, 7) == "FelRage" then
-- msg = msg:sub(8)
-- self:EndStatusBarTimer("Bloodboil")
-- self:StartStatusBarTimer(28, "Normal Phase", "Interface\\Icons\\Spell_Nature_WispSplode")
-- self:ScheduleSelf(23, "NormalWarn")
-- self:Announce(DBM_BLOODBOIL_WARN_FELRAGE:format(msg), 4)
-- boilCounter = 0
-- elseif msg:sub(0, 11) == "ArcingSmash" then
-- msg = msg:sub(12)
-- self:StartStatusBarTimer(4, "Arcing Smash", "Interface\\Icons\\Ability_Warrior_Cleave")
-- if self.Options.WarnSmash then
-- self:ScheduleSelf(3, "SmashWarn")
-- self:Announce(DBM_BLOODBOIL_WARN_SMASH, 4)
-- end
-- end
-- end
+25
View File
@@ -0,0 +1,25 @@
## Interface: 30300
## Title:|cffffe00a<|r|cffff7d0aDBM|r|cffffe00a>|r |cff69ccf0Black Temple|r
## Author: Tandanu and Nitram, updated by Junior and Szyler.
## RequiredDeps: DBM-Core, DBM-BurningCrusade
## SavedVariablesPerCharacter: DBMBlackTemple_SavedVars, DBMBlackTemple_SavedStats
## DefaultState: Enabled
## LoadOnDemand: 1
## X-DBM-Mod: 1
## X-DBM-Mod-Category: BC
## X-DBM-Name: Black Temple
## X-DBM-Mod-Sort: 307
## X-DBM-Mod-LoadZone: Black Temple
localization.en.lua
Naj'entus.lua
Supremus.lua
ShadeOfAkama.lua
TeronGorefiend.lua
Bloodboil.lua
EssenceOfSouls.lua
Shahraz.lua
IllidariCouncil.lua
Illidan.lua
Trash.lua
+317
View File
@@ -0,0 +1,317 @@
local mod = DBM:NewMod("Souls", "DBM-BlackTemple")
local L = mod:GetLocalizedStrings()
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
mod:SetCreatureID(23418)
mod:RegisterCombat("yell", DBM_SOULS_YELL_PULL, 23420)
mod:RegisterEvents(
"CHAT_MSG_RAID_BOSS_EMOTE",
"CHAT_MSG_MONSTER_YELL",
"SPELL_AURA_APPLIED",
"SPELL_AURA_REMOVED",
"SPELL_CAST_START",
"SPELL_DAMAGE",
"UNIT_HEALTH"
)
local intermissionSummonEssenceOfSuffering = mod:NewCastTimer(35, 2143967)
local intermissionSummonEssenceOfDesire = mod:NewCastTimer(35, 2143968)
local intermissionSummonEssenceOfAnger = mod:NewCastTimer(35, 2143969)
local warnSpiritShock = mod:NewSpellAnnounce(2143804, 2)
local timerTargetSpiritShock = mod:NewTargetTimer(5, 2143804)
local warnSoulBlast = mod:NewSpellAnnounce(2143961, 2)
local warnSoulDrain = mod:NewSpellAnnounce(2143760, 2)
local timerNextSoulDrain = mod:NewNextTimer(20, 2143760)
local warnRuneShield = mod:NewSpellAnnounce(2143808, 2)
local timerRuneShield = mod:NewTargetTimer(15, 2143808)
local timerNextRuneShield = mod:NewNextTimer(16, 2143808)
local warnTease = mod:NewSpellAnnounce(2143808, 2)
local timerTease = mod:NewBuffActiveTimer(15, 2143808)
local timerNextTease = mod:NewNextTimer(30, 2143808)
local warnSeethe = mod:NewSpellAnnounce(2143861, 2)
local timerSeethe = mod:NewBuffActiveTimer(15, 2143861)
local timerNextSeethe = mod:NewNextTimer(15, 2143861)
local warnSoulScream = mod:NewSpellAnnounce(2143853, 2)
local timerSoulScream = mod:NewCastTimer(2, 2143853)
local timerNextSoulScream = mod:NewNextTimer(12, 2143853)
local warnAuraOfSuffering = mod:NewSpellAnnounce(2143751, 2)
local warnAuraOfDesire = mod:NewSpellAnnounce(2143800, 2)
local warnAuraOfAnger = mod:NewSpellAnnounce(2143850, 2)
--local
local isSuffer = false
function mod:OnCombatStart(delay)
self.vb.phase = 1
isSuffer = true
end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(2143804) then
warnSpiritShock:Show()
timerTargetSpiritShock:Start(args.destName)
elseif args:IsSpellID(2143961) and args.amount and args.amount >= 20 and args.amount % 5 == 0 then
warnSoulBlast:Show()
elseif args:IsSpellID(2143760, 2143761, 2143762, 2143763) then
warnSoulDrain:Show()
elseif args:IsSpellID(2143808) then
warnRuneShield:Show()
timerRuneShield:Start()
elseif args:IsSpellID(2143808) then
warnTease:Show()
timerTease:Start()
timerNextTease:Start()
elseif args:IsSpellID(2143861) then
warnSeethe:Show()
timerSeethe:Start()
timerNextSeethe:Start()
elseif args:IsSpellID(2143750, 2143751, 2143752, 2143753) and DBM:AntiSpam(60) and self.vb.phase == 1 then
warnAuraOfSuffering:Show()
timerNextSoulDrain:Start(20)
elseif args:IsSpellID(2143800, 2143803) and DBM:AntiSpam(60) and self.vb.phase == 1 then
self.vb.phase = 2
warnAuraOfDesire:Show()
timerNextRuneShield:Start(16)
timerNextTease:Start(20)
elseif args:IsSpellID(2143850) and DBM:AntiSpam(60) and self.vb.phase == 2 then
self.vb.phase = 3
warnAuraOfAnger:Show()
timerNextSoulScream:Start(10)
end
end
function mod:SPELL_AURA_REMOVED(args)
if args:IsSpellID(2143808) then
-- warnRuneShield:Hide()
timerRuneShield:Stop()
end
end
function mod:SPELL_CAST_START(args)
if args:IsSpellID(2143853, 2143854, 2143855, 2143856) or args:IsSpellID(2143857) then
warnSoulScream:Show()
timerSoulScream:Start()
timerNextSoulScream:Start()
end
end
function mod:UNIT_HEALTH(unit)
--Essence of Suffering
if isSuffer and (mod:GetUnitCreatureId(unit) == 23418) then
local hp = (math.max(0,UnitHealth(unit)) / math.max(1, UnitHealthMax(unit))) * 100;
if (hp <= 1) then
intermissionSummonEssenceOfSuffering:Start()
end
--Essence of Desire
elseif isSuffer and (mod:GetUnitCreatureId(unit) == 23419) then
local hp = (math.max(0,UnitHealth(unit)) / math.max(1, UnitHealthMax(unit))) * 100;
if (hp <= 1) then
intermissionSummonEssenceOfDesire:Start()
end
--Essence of Anger
elseif isSuffer and (mod:GetUnitCreatureId(unit) == 23420) then
local hp = (math.max(0,UnitHealth(unit)) / math.max(1, UnitHealthMax(unit))) * 100;
if (hp <= 1) then
intermissionSummonEssenceOfAnger:Start()
end
end
end
-- Souls.MinVersionToSync = 3.00
-- local drainTargets = {}
-- local spiteTargets = {}
-- local lastFixate
-- local lastSpite = 0
-- local phase = 1
--Souls:AddOption("WarnDrain", true, DBM_SOULS_OPTION_DRAIN)
--Souls:AddOption("WarnDrainCast", false, DBM_SOULS_OPTION_DRAIN_CAST)
--Souls:AddOption("WarnFixate", false, DBM_SOULS_OPTION_FIXATE)
--Souls:AddOption("WarnScream", false, DBM_SOULS_OPTION_SCREAM)
--Souls:AddOption("WarnSpite", true, DBM_SOULS_OPTION_SPITE)
--Souls:AddOption("SpecWarnSpite", true, DBM_SOULS_OPTION_SPECWARN_SPITE)
--Souls:AddOption("SpiteWhisper", false, DBM_SOULS_OPTION_WHISPER_SPITE)
--Souls:AddBarOption("Enrage")
--Souls:AddBarOption("Next Enrage")
--Souls:AddBarOption("Fixate: (.*)")
--Souls:AddBarOption("Mana Drain")
--Souls:AddBarOption("Rune Shield")
--Souls:AddBarOption("Deaden")
--Souls:AddBarOption("Soul Scream")
-- drainTargets = {}
-- spiteTargets = {}
-- lastFixate = nil
-- self:StartStatusBarTimer(47 - delay, "Next Enrage", "Interface\\Icons\\Spell_Shadow_UnholyFrenzy")
-- self:ScheduleSelf(42 - delay, "EnrageWarn")
-- phase = 1
-- function Souls:OnEvent(event, arg1)
-- if event == "CHAT_MSG_RAID_BOSS_EMOTE" then
-- if arg1 == DBM_SOULS_EMOTE_ENRAGE and self.InCombat then
-- self:Announce(DBM_SOULS_WARN_ENRAGE, 3)
-- self:StartStatusBarTimer(15, "Enrage", "Interface\\Icons\\Spell_Shadow_UnholyFrenzy")
-- self:ScheduleSelf(15, "NextEnrage")
-- end
-- elseif event == "NextEnrage" then
-- self:Announce(DBM_SOULS_WARN_ENRAGE_OVER, 2)
-- self:StartStatusBarTimer(32, "Next Enrage", "Interface\\Icons\\Spell_Shadow_UnholyFrenzy")
-- self:ScheduleSelf(27, "EnrageWarn")
-- elseif event == "EnrageWarn" then
-- self:Announce(DBM_SOULS_WARN_ENRAGE_SOON, 2)
-- elseif event == "SPELL_AURA_APPLIED" then
-- if arg1.spellId == 41431 and bit.band(arg1.destFlags, COMBATLOG_OBJECT_TYPE_PLAYER) == 0 then
-- self:SendSync("Runeshield")
-- elseif arg1.spellId == 41376 then
-- self:SendSync("Spite"..tostring(arg1.destName))
-- elseif arg1.spellId == 41303 then
-- self:SendSync("SoulDrain"..tostring(arg1.destName))
-- elseif arg1.spellId == 41294 then
-- self:SendSync("Fixate"..tostring(arg1.destName))
-- end
-- elseif event == "RuneShieldWarn" then
-- self:Announce(DBM_SOULS_WARN_RUNESHIELD_SOON, 2)
-- elseif event == "SPELL_CAST_START" then
-- if arg1.spellId == 41410 then
-- self:SendSync("Deaden")
-- elseif arg1.spellId == 41303 then
-- self:SendSync("DrainCast")
-- end
-- elseif event == "SPELL_DAMAGE" then
-- if arg1.spellId == 41545 then
-- self:SendSync("SoulScream")
-- end
-- elseif event == "DeadenWarn" then
-- self:Announce(DBM_SOULS_WARN_DEADEN_SOON, 1)
-- elseif event == "CHAT_MSG_MONSTER_YELL" and arg1 then
-- if arg1 == DBM_SOULS_YELL_DESIRE or arg1:find(DBM_SOULS_YELL_DESIRE_DEMONIC) then
-- phase = 2
-- self:Announce(DBM_SOULS_WARN_DESIRE_INC, 1)
-- self:StartStatusBarTimer(160, "Mana Drain", "Interface\\Icons\\Spell_Shadow_SiphonMana")
-- self:ScheduleSelf(140, "ManaDrainWarn")
-- self:StartStatusBarTimer(13.5, "Rune Shield", "Interface\\Icons\\Spell_Arcane_Blast")
-- self:ScheduleSelf(10.5, "RuneShieldWarn")
-- self:StartStatusBarTimer(28, "Deaden", "Interface\\Icons\\Spell_Shadow_SoulLeech_1")
-- self:ScheduleSelf(23, "DeadenWarn")
-- elseif arg1 == DBM_SOULS_YELL_ANGER_INC then
-- phase = 3
-- self:Announce(DBM_SOULS_WARN_ANGER_INC, 1)
-- end
-- elseif event == "ManaDrainWarn" then
-- self:Announce(DBM_SOULS_WARN_MANADRAIN, 1)
-- elseif event == "WarnDrain" then
-- local msg = ""
-- for i, v in ipairs(drainTargets) do
-- msg = msg..">"..v.."<"..", "
-- end
-- msg = msg:sub(0, -3)
-- drainTargets = {}
-- self:Announce(DBM_SOULS_WARN_SOULDRAIN:format(msg), 1)
-- elseif event == "WarnSpite" then
-- if (GetTime() - lastSpite) > 12 then
-- lastSpite = GetTime()
-- local msg = ""
-- for i, v in ipairs(spiteTargets) do
-- msg = msg..">"..v.."<"..", "
-- if v == UnitName("player") then
-- if self.Options.SpecWarnSpite then
-- self:AddSpecialWarning(DBM_SOULS_SPECWARN_SPITE)
-- end
-- end
-- if self.Options.SpiteWhisper and self.Options.Announce and DBM.Rank >= 1 then
-- self:SendHiddenWhisper(DBM_SOULS_WHISPER_SPITE, v)
-- end
-- end
-- msg = msg:sub(0, -3)
-- spiteTargets = {}
-- self:Announce(DBM_SOULS_WARN_SPITE:format(msg), 2)
-- else
-- spiteTargets = {}
-- end
-- end
-- end
-- function Souls:GetBossHP()
-- if phase == 1 then
-- return DBM_SOULS_BOSS_SUFFERING..": "..DBM.GetHPByName(DBM_SOULS_BOSS_SUFFERING)
-- elseif phase == 2 then
-- return DBM_SOULS_BOSS_DESIRE..": "..DBM.GetHPByName(DBM_SOULS_BOSS_DESIRE)
-- elseif phase == 3 then
-- return DBM_SOULS_BOSS_KILL_NAME..": "..DBM.GetHPByName(DBM_SOULS_BOSS_KILL_NAME)
-- end
-- end
-- function Souls:OnSync(msg)
-- if msg == "Runeshield" then
-- self:Announce(DBM_SOULS_WARN_RUNESHIELD, 3)
-- self:StartStatusBarTimer(15.4, "Rune Shield", "Interface\\Icons\\Spell_Arcane_Blast") -- the timer between 2 runeshields is always about 15.5 seconds in my combatlog...this could be due to delay/lag/whatever, but this timer seems to be quite accurate
-- self:ScheduleSelf(12.4, "RuneShieldWarn")
-- elseif msg == "Deaden" then
-- self:Announce(DBM_SOULS_WARN_DEADEN, 2)
-- self:StartStatusBarTimer(31.5, "Deaden", "Interface\\Icons\\Spell_Shadow_SoulLeech_1")
-- self:ScheduleSelf(26.5, "DeadenWarn")
-- elseif msg:sub(0, 5) == "Spite" and self.Options.WarnSpite then
-- msg = msg:sub(6)
-- table.insert(spiteTargets, msg)
-- self:UnScheduleSelf("WarnSpite")
-- if #spiteTargets == 3 then
-- self:OnEvent("WarnSpite")
-- else
-- self:ScheduleSelf(1.3, "WarnSpite")
-- end
-- elseif msg:sub(0, 9) == "SoulDrain" and self.Options.WarnDrain then
-- msg = msg:sub(10)
-- table.insert(drainTargets, msg)
-- self:UnScheduleSelf("WarnDrain")
-- if #drainTargets == 5 then
-- self:OnEvent("WarnDrain")
-- else
-- self:ScheduleSelf(1.5, "WarnDrain")
-- end
-- elseif msg == "DrainCast" then
-- if self.Options.WarnDrainCast then
-- self:Announce(DBM_SOULS_WARN_SOULDRAIN_CAST, 1)
-- end
-- elseif msg:sub(0, 6) == "Fixate" and self.InCombat then
-- msg = msg:sub(7)
-- if lastFixate then
-- self:EndStatusBarTimer(lastFixate)
-- end
-- self:StartStatusBarTimer(5.5, "Fixate: "..msg, "Interface\\Icons\\Spell_Shadow_SpectralSight")
-- lastFixate = "Fixate: "..msg
-- if msg == UnitName("player") then
-- self:AddSpecialWarning(DBM_SOULS_SPECWARN_FIXATE)
-- end
-- if self.Options.WarnFixate then
-- self:Announce(DBM_SOULS_WARN_FIXATE:format(msg), 2)
-- end
-- elseif msg == "SoulScream" then
-- self:StartStatusBarTimer(10, "Soul Scream", "Interface\\Icons\\Spell_Shadow_SoulLeech")
-- if self.Options.WarnScream then
-- self:Announce(DBM_SOULS_WARN_SCREAM, 1)
-- end
-- end
-- end
+423
View File
@@ -0,0 +1,423 @@
local mod = DBM:NewMod("Illidan", "DBM-BlackTemple")
local L = mod:GetLocalizedStrings()
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
mod:SetCreatureID(22917)
mod:RegisterCombat("yell", L.DBM_ILLIDAN_YELL_PULL)
-- Illidan:SetMinCombatTime(20)
mod:RegisterEvents(
"SPELL_CAST_SUCCESS",
"SPELL_CAST_START",
"SPELL_AURA_APPLIED",
"SPELL_CAST_SUCCESS",
"SPELL_DAMAGE",
"UNIT_DIED",
"CHAT_MSG_MONSTER_YELL",
"UNIT_SPELLCAST_START"
)
local timerCombatStart = mod:NewTimer(3, "TimerCombatStart", 2457)
local warnChaosBlast = mod:NewSpellAnnounce(2144802, 2)
local warnFlameCrash = mod:NewSpellAnnounce(2144720, 2)
local warnFlameCrashDot = mod:NewSpellAnnounce(2144720, 3)
local warnForceNova = mod:NewSpellAnnounce(2144724, 2)
local warnShear = mod:NewSpellAnnounce(2144718, 2)
local warnDrawSoul = mod:NewSpellAnnounce(2144737, 2)
local warnFelFireBlast = mod:NewSpellAnnounce(2144829, 2)
local warnUnharnessedBlade = mod:NewSpellAnnounce(2144742, 2)
local yellUnharnessedBlade = mod:NewFadesYell(2144742)
local timerChaosBlast = mod:NewCastTimer(2, 2144802)
local timerChaosBlastDebuff = mod:NewBuffActiveTimer(6, 2144802)
local timerNextFlameCrash = mod:NewNextTimer(30, 2144720)
local timerFlameCrash = mod:NewCastTimer(2, 2144720)
local timerNextForceNova = mod:NewNextTimer(25, 2144724)
local timerNextShear = mod:NewNextTimer(25, 2144718)
local timerNextDrawSoul = mod:NewNextTimer(30, 2144737)
local timerFelFireBlast = mod:NewCastTimer(2, 2144802)
local timerNextFelFireBlast = mod:NewNextTimer(20, 2144829)
local timerFelFireBlast2 = mod:NewCastTimer(2, 2144802)
local timerNextFelFireBlast2 = mod:NewNextTimer(20, 2144829)
local timerNextUnharnessedBlade = mod:NewNextTimer(30, 2144742)
function mod:OnCombatStart(delay)
if self.Options.RangeCheck then
DBM.RangeCheck:Show(15)
end
timerCombatStart:Start(3)
timerNextForceNova:Start(18-delay)
timerNextShear:Start(28-delay)
timerNextDrawSoul:Start(33-delay)
timerNextUnharnessedBlade:Start(38)
end
function mod:UnharnessedBlade()
local target = nil
target = mod:GetBossTarget(22917)
if target == UnitName("player") then
yellUnharnessedBlade:Countdown(3,3)
end
end
function mod:SPELL_CAST_SUCCESS(args)
if args:IsSpellID(2144840) 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()
timerChaosBlast:Start()
elseif args:IsSpellID(2144715,2144716,2144717,2144718) then
warnShear:Show()
timerNextShear:Start()
end
end
function mod:SPELL_CAST_START(args)
if args:IsSpellID(2144737,2144738,2144739,2144740) then
warnDrawSoul:Show()
timerNextDrawSoul:Start()
elseif args:IsSpellID(2144720,2144721,2144722,2144723) then
timerNextFlameCrash:Start()
warnFlameCrash:Show()
timerFlameCrash:Start()
elseif args:IsSpellID(2144829,2144830,2144831,2144832) then
warnFelFireBlast:Show()
timerNextFelFireBlast:Start()
elseif args:IsSpellID(2144742) then
self:ScheduleMethod(0.2, "UnharnessedBlade")
warnUnharnessedBlade:Show()
timerNextUnharnessedBlade:Start()
elseif args:IsSpellID(2144715,2144716,2144717,2144718) then
warnShear:Show()
timerNextShear:Start()
elseif args:IsSpellID(2144802,2144803,2144804,2144805) then
warnChaosBlast:Show()
timerChaosBlast:Start()
end
end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(2144802,2144803,2144804,2144805) then
timerChaosBlastDebuff:Start()
elseif args:IsSpellID(2144720,2144721,2144722,2144723) then
if args:IsPlayer() then
warnFlameCrashDot:Show()
end
end
end
function mod:SPELL_DAMAGE(args)
if args:IsSpellID(2144724,2144725,2144726,2144727) and DBM:AntiSpam(15) then
warnForceNova:Show()
timerNextForceNova:Start()
end
end
function mod:OnCombatEnd()
DBM.RangeCheck:Hide()
end
-- if self.Options.RangeCheck then
-- DBM_Gui_DistanceFrame_Hide()
-- end
-- phase2 = nil
-- phase4 = nil
-- local flameTargets = {}
-- local flamesDown = 0
-- local flameBursts = 0
-- local demonTargets = {}
-- local phase2
-- local warnedDemons
-- local phase4
--Illidan:AddOption("RangeCheck", true, DBM_ILLIDAN_OPTION_RANGECHECK)
--Illidan:AddOption("WarnPhases", true, DBM_ILLIDAN_OPTION_PHASES)
----Illidan:AddOption("WarnShearCast", false, DBM_ILLIDAN_OPTION_SHEARCAST)
----Illidan:AddOption("WarnShear", true, DBM_ILLIDAN_OPTION_SHEAR)
--Illidan:AddOption("WarnShadowfiend", true, DBM_ILLIDAN_OPTION_SHADOWFIEND)
--Illidan:AddOption("IconShadowfiend", true, DBM_ILLIDAN_OPTION_ICONFIEND)
--Illidan:AddOption("WarnBarrage", true, DBM_ILLIDAN_OPTION_BARRAGE)
--Illidan:AddOption("WarnBarrageSoon", true, DBM_ILLIDAN_OPTION_BARRAGE_SOON)
--Illidan:AddOption("WarnEyeBeam", true, DBM_ILLIDAN_OPTION_EYEBEAM)
----Illidan:AddOption("WarnEyeBeamSoon", false, DBM_ILLIDAN_OPTION_EYEBEAMSOON) -- inaccurate!
--Illidan:AddOption("WarnFlames", true, DBM_ILLIDAN_OPTION_FLAMES)
--Illidan:AddOption("WarnDemonForm", true, DBM_ILLIDAN_OPTION_DEMONFORM)
--Illidan:AddOption("WarnFlameBursts", true, DBM_ILLIDAN_OPTION_FLAMEBURST)
--Illidan:AddOption("WarnShadowDemons", true, DBM_ILLIDAN_OPTION_SHADOWDEMONS)
--Illidan:AddBarOption("Enrage")
--Illidan:AddBarOption("Illidan Stormrage")
----Illidan:AddBarOption("Shear: (.*)")
--Illidan:AddBarOption("Shadowfiend: (.*)")
--Illidan:AddBarOption("Next Dark Barrage")
--Illidan:AddBarOption("Dark Barrage: (.*)")
--Illidan:AddBarOption("Flames: (.*)", false)
--Illidan:AddBarOption("Demon Phase")
--Illidan:AddBarOption("Normal Phase")
--Illidan:AddBarOption("Shadow Demons")
--Illidan:AddBarOption("Next Flame Burst")
-- flameTargets = {}
-- demonTargets = {}
-- flamesDown = 0
-- flameBursts = 0
-- phase2 = nil
-- phase4 = nil
-- delay = (delay or 0) - 7 - 33 -- 7 = time until combat starts and 33 because the timer will stop while illidan is switching from phase 1->2, 2->3 and 3->4; according to my combatlogs this should be quite accurate
-- self:StartStatusBarTimer(1500 - delay, "Enrage", "Interface\\Icons\\Spell_Shadow_UnholyFrenzy");
-- self:ScheduleAnnounce(900 - delay, DBM_GENERIC_ENRAGE_WARN:format(10, DBM_MIN), 1)
-- self:ScheduleAnnounce(1200 - delay, DBM_GENERIC_ENRAGE_WARN:format(5, DBM_MIN), 1)
-- self:ScheduleAnnounce(1320 - delay, DBM_GENERIC_ENRAGE_WARN:format(3, DBM_MIN), 1)
-- self:ScheduleAnnounce(1440 - delay, DBM_GENERIC_ENRAGE_WARN:format(1, DBM_MIN), 2)
-- self:ScheduleAnnounce(1470 - delay, DBM_GENERIC_ENRAGE_WARN:format(30, DBM_SEC), 3)
-- self:ScheduleAnnounce(1490 - delay, DBM_GENERIC_ENRAGE_WARN:format(10, DBM_SEC), 4)
-- function Illidan:OnEvent(event, args)
-- if event == "CHAT_MSG_MONSTER_YELL" then
-- if args == DBM_ILLIDAN_YELL_EYEBEAM then
-- self:SendSync("EyeBeam")
-- elseif args == DBM_ILLIDAN_YELL_DEMONFORM then
-- self:SendSync("DemonForm")
-- elseif args == DBM_ILLIDAN_YELL_PHASE4 then
-- self:SendSync("Phase4")
-- elseif args == DBM_ILLIDAN_YELL_START then
-- self:StartStatusBarTimer(36.6, "Illidan Stormrage", "Interface\\Icons\\INV_Weapon_ShortBlade_07")
-- end
-- elseif event == "SPELL_AURA_APPLIED" then
-- if args.spellId == 40647 then
-- self:SendSync("Prison")
-- -- elseif args.spellId == 41032 then
-- -- self:SendSync("Shear"..tostring(args.destName))
-- elseif args.spellId == 41917 or args.spellId == 41914 then
-- self:SendSync("Shadowfiend"..tostring(args.destName))
-- elseif args.spellId == 40585 then
-- self:SendSync("DarkBarrage"..tostring(args.destName))
-- elseif args.spellId == 40932 then
-- self:SendSync("Flames"..tostring(args.destName))
-- elseif args.spellId == 41083 then
-- self:SendSync("ShadowDems"..tostring(args.destName))
-- elseif args.spellId == 40683 then -- ??
-- self:SendSync("P4Enrage")
-- elseif args.spellId == 40695 then
-- self:SendSync("Caged")
-- end
-- elseif event == "SPELL_CAST_SUCCESS" then
-- if args.spellId == 39855 then
-- self:SendSync("Phase2")
-- end
-- elseif event == "WarnAF" then
-- local msg = ""
-- for i, v in ipairs(flameTargets) do
-- msg = msg..">"..v.."<, "
-- end
-- msg = msg:sub(0, -3)
-- flameTargets = {}
-- if self.Options.WarnFlames then
-- self:Announce(DBM_ILLIDAN_WARN_FLAMES:format(msg), 3)
-- end
-- elseif event == "WarnSD" and not warnedDemons then
-- local msg = ""
-- for i, v in ipairs(demonTargets) do
-- msg = msg..">"..v.."<, "
-- end
-- msg = msg:sub(0, -3)
-- demonTargets = {}
-- if self.Options.WarnShadowDemons then
-- self:Announce(DBM_ILLIDAN_WARN_SHADOWDEMSON:format(msg), 4)
-- end
-- warnedDemons = true
-- elseif event == "UNIT_DIED" then
-- if args.destName == DBM_ILLIDAN_MOB_FLAME then
-- self:SendSync("FlameDown")
-- end
-- elseif event == "SPELL_DAMAGE" then
-- if args.spellId == 41131 then
-- self:SendSync("Flameburst")
-- end
-- -- elseif event == "SPELL_CAST_START" then
-- -- if args.spellId == 41032 then
-- -- self:SendSync("CastShear")
-- -- end
-- end
-- end
-- function Illidan:GetBossHP()
-- if phase2 then
-- return DBM_ILLIDAN_STATUSMSG_PHASE2
-- end
-- end
-- function Illidan:OnSync(msg)
-- if msg:sub(0, 5) == "Shear" then
-- -- msg = msg:sub(6)
-- -- if self.Options.WarnShear then
-- -- self:Announce(DBM_ILLIDAN_WARN_SHEAR:format(msg), 1)
-- -- end
-- -- self:StartStatusBarTimer(7, "Shear: "..msg, "Interface\\Icons\\Spell_Shadow_FocusedPower")
-- elseif msg == "CastShear" then
-- -- if self.Options.WarnShearCast then
-- -- self:Announce(DBM_ILLIDAN_WARN_CASTSHEAR, 1)
-- -- end
-- elseif msg:sub(0, 11) == "Shadowfiend" then
-- msg = msg:sub(12)
-- if msg == UnitName("player") then
-- self:AddSpecialWarning(DBM_ILLIDAN_SELFWARN_SHADOWFIEND)
-- end
-- if self.Options.WarnShadowfiend then
-- self:Announce(DBM_ILLIDAN_WARN_SHADOWFIEND:format(msg), 2)
-- end
-- if self.Options.IconShadowfiend then
-- self:SetIcon(msg, 10)
-- end
-- self:StartStatusBarTimer(10, "Shadowfiend: "..msg, "Interface\\Icons\\Spell_Shadow_Shadowfiend")
-- elseif msg:sub(0, 11) == "DarkBarrage" then
-- msg = msg:sub(12)
-- if self.Options.WarnBarrage then
-- self:Announce(DBM_ILLIDAN_WARN_BARRAGE:format(msg), 2)
-- end
-- if self.Options.WarnBarrageSoon then
-- self:ScheduleAnnounce(42, DBM_ILLIDAN_WARN_BARRAGE_SOON, 1)
-- end
-- self:EndStatusBarTimer("Next Dark Barrage") -- synced timers may only overwrite timers that are about to expire - the barrage timer seems to be quite inaccurate...so send a end timer command before.
-- self:StartStatusBarTimer(44, "Next Dark Barrage", "Interface\\Icons\\Spell_Shadow_PainSpike")
-- self:StartStatusBarTimer(10, "Dark Barrage: "..msg, "Interface\\Icons\\Spell_Shadow_PainSpike")
-- elseif msg == "EyeBeam" then
-- if self.Options.WarnEyeBeam then
-- self:Announce(DBM_ILLIDAN_WARN_EYEBEAM, 3)
-- end
-- -- if self.Options.WarnEyeBeamSoon then -- inaccurate!
-- -- self:ScheduleAnnounce(32, DBM_ILLIDAN_WARN_EYEBEAM_SOON, 2)
-- -- end
-- -- self:StartStatusBarTimer(35, "Next Eye Blast", "Interface\\Icons\\Spell_Shadow_SiphonMana")
-- elseif msg:sub(0, 6) == "Flames" then
-- msg = msg:sub(7)
-- self:StartStatusBarTimer(60, "Flames: "..msg, "Interface\\Icons\\Spell_Fire_BlueImmolation")
-- if msg == UnitName("player") then
-- self:AddSpecialWarning(DBM_ILLIDAN_SELFWARN_SHADOW)
-- end
-- table.insert(flameTargets, msg)
-- self:UnScheduleEvent("WarnAF")
-- self:ScheduleEvent(1, "WarnAF")
-- elseif msg == "Phase2" then
-- if self.Options.WarnPhases then
-- self:Announce(DBM_ILLIDAN_WARN_PHASE2, 4)
-- end
-- if self.Options.WarnBarrageSoon then
-- self:ScheduleAnnounce(76, DBM_ILLIDAN_WARN_BARRAGE_SOON, 1)
-- end
-- self:StartStatusBarTimer(81, "Next Dark Barrage", "Interface\\Icons\\Spell_Shadow_PainSpike")
-- phase2 = true
-- flamesDown = 0
-- elseif msg == "Phase3" then
-- if self.Options.WarnPhases then
-- self:Announce(DBM_ILLIDAN_WARN_PHASE3, 4)
-- end
-- if self.Options.RangeCheck then
-- DBM_Gui_DistanceFrame_Show()
-- end
-- phase2 = nil
-- self:StartStatusBarTimer(76, "Demon Phase", "Interface\\Icons\\Spell_Shadow_Metamorphosis")
-- if self.Options.WarnDemonForm then
-- self:ScheduleAnnounce(66, DBM_ILLIDAN_WARN_DEMONPHASE_SOON, 3)
-- end
-- self:EndStatusBarTimer("Next Dark Barrage")
-- self:UnScheduleAnnounce(DBM_ILLIDAN_WARN_BARRAGE_SOON, 1)
-- elseif msg == "Phase4" then
-- if self.Options.WarnPhases then
-- self:Announce(DBM_ILLIDAN_WARN_PHASE4, 4)
-- end
-- self:EndStatusBarTimer("Demon Phase")
-- self:EndStatusBarTimer("Normal Phase")
-- self:UnScheduleAnnounce(DBM_ILLIDAN_WARN_DEMONPHASE_SOON)
-- self:UnScheduleAnnounce(DBM_ILLIDAN_WARN_NORMALPHASE_SOON)
-- self:StartStatusBarTimer(92, "Demon Phase", "Interface\\Icons\\Spell_Shadow_Metamorphosis")
-- if self.Options.WarnDemonForm then
-- self:ScheduleAnnounce(82, DBM_ILLIDAN_WARN_DEMONPHASE_SOON, 3)
-- end
-- self:StartStatusBarTimer(71.5, "Enrage2", "Interface\\Icons\\Ability_Warrior_EndlessRage")
-- self:ScheduleAnnounce(66.5, DBM_ILLIDAN_WARN_P4ENRAGE_SOON, 3)
-- phase4 = true
-- elseif msg == "DemonForm" then
-- flameBursts = 0
-- if self.Options.WarnDemonForm then
-- self:Announce(DBM_ILLIDAN_WARN_PHASE_DEMON, 4)
-- end
-- self:StartStatusBarTimer(74, "Normal Phase", "Interface\\Icons\\INV_Weapon_ShortBlade_07")
-- self:StartStatusBarTimer(34, "Shadow Demons", "Interface\\Icons\\Spell_Shadow_SoulLeech_3")
-- self:StartStatusBarTimer(20, "Next Flame Burst", "Interface\\Icons\\Spell_Fire_BlueRainOfFire")
-- if self.Options.WarnDemonForm then
-- self:ScheduleAnnounce(64, DBM_ILLIDAN_WARN_NORMALPHASE_SOON, 2)
-- end
-- if self.Options.WarnShadowDemons then
-- self:ScheduleAnnounce(29, DBM_ILLIDAN_WARN_SHADOWDEMSSOON, 2)
-- end
-- if self.Options.WarnFlameBursts then
-- self:ScheduleAnnounce(15, DBM_ILLIDAN_WARN_FLAMEBURST_SOON, 1)
-- end
-- self:ScheduleMethod(74, "SendSync", "NormalForm")
-- warnedDemons = nil
-- elseif msg == "NormalForm" then
-- if self.Options.WarnDemonForm then
-- self:Announce(DBM_ILLIDAN_WARN_PHASE_NORMAL, 4)
-- end
-- self:StartStatusBarTimer(60, "Demon Phase", "Interface\\Icons\\Spell_Shadow_Metamorphosis")
-- if self.Options.WarnDemonForm then
-- self:ScheduleAnnounce(50, DBM_ILLIDAN_WARN_DEMONPHASE_SOON, 3)
-- end
-- if phase4 then
-- self:StartStatusBarTimer(40, "Enrage2", "Interface\\Icons\\Ability_Warrior_EndlessRage")
-- self:ScheduleAnnounce(35, DBM_ILLIDAN_WARN_P4ENRAGE_SOON, 3)
-- end
-- elseif msg == "FlameDown" then
-- flamesDown = flamesDown + 1
-- if flamesDown >= 2 then
-- self:SendSync("Phase3")
-- end
-- elseif msg == "Flameburst" then
-- flameBursts = flameBursts + 1
-- if flameBursts < 3 then
-- self:StartStatusBarTimer(19.5, "Next Flame Burst", "Interface\\Icons\\Spell_Fire_BlueRainOfFire")
-- if self.Options.WarnFlameBursts then
-- self:ScheduleAnnounce(14.5, DBM_ILLIDAN_WARN_FLAMEBURST_SOON, 1)
-- end
-- end
-- if self.Options.WarnFlameBursts then
-- self:Announce(DBM_ILLIDAN_WARN_FLAMEBURST:format(flameBursts), 3)
-- end
-- elseif msg:sub(0, 10) == "ShadowDems" then
-- msg = msg:sub(11)
-- if msg == UnitName("player") then
-- self:AddSpecialWarning(DBM_ILLIDAN_SELFWARN_DEMONS)
-- end
-- table.insert(demonTargets, msg)
-- self:UnScheduleEvent("WarnSD")
-- if #demonTargets == 4 then
-- self:OnEvent("WarnSD")
-- else
-- self:ScheduleEvent(1, "WarnSD")
-- end
-- elseif msg == "Prison" then
-- self:Announce(DBM_ILLIDAN_WARN_PRISON)
-- self:StartStatusBarTimer(30, "Shadow Prison", "Interface\\Icons\\Spell_Shadow_SealOfKings")
-- elseif msg == "P4Enrage" then
-- self:Announce(DBM_ILLIDAN_WARN_P4ENRAGE_NOW, 4)
-- elseif msg == "Caged" then
-- self:Announce(DBM_ILLIDAN_WARN_CAGED, 1)
-- self:StartStatusBarTimer(15, "Caged", 40695)
-- end
-- end
+267
View File
@@ -0,0 +1,267 @@
local mod = DBM:NewMod("Council", "DBM-BlackTemple")
local L = mod:GetLocalizedStrings()
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
mod:SetCreatureID(22949)
mod:RegisterCombat("yell", DBM_COUNCIL_YELL_PULL1, DBM_COUNCIL_YELL_PULL2, DBM_COUNCIL_YELL_PULL3, DBM_COUNCIL_YELL_PULL4)
mod:RegisterEvents(
"SPELL_CAST_START",
"SPELL_HEAL",
"SPELL_INTERRUPT",
"SPELL_AURA_APPLIED",
"SPELL_AURA_REMOVED"
)
--Lady Malande
local warnPaintoPleasure = mod:NewTargetAnnounce(2144463, 3)
local timerNextPaintoPleasure = mod:NewNextTimer(30, 2144463)
local warnSadism = mod:NewSpellAnnounce(2144464, 3)
local timerNextSadism = mod:NewNextTimer(60, 2144464)
--Veras Darkshadow
local warnSmokeBomb = mod:NewTargetAnnounce(2144560, 3)
local timerNextSmokeBomb = mod:NewNextTimer(60, 2144560)
--Gathios the Shatterer
local timerNextDeathSentence = mod:NewNextTimer(60, 2144260)
local timerDeathSentence = mod:NewBuffActiveTimer(10, 2144260, nil, false)
local timerNextConsecrate = mod:NewNextTimer(15, 2144256, nil, false)
--High Nethermancer Zerevor
local timerNextRuneofPower = mod:NewNextTimer(60, 2144368)
local warnNetherprotection = mod:NewSpellAnnounce(2144351, 3)
local timerNextNetherProtection = mod:NewNextTimer(30, 2144351)
function mod:OnCombatStart(delay)
timerNextPaintoPleasure:Start(25-delay)
timerNextSmokeBomb:Start(33-delay)
timerNextDeathSentence:Start(15-delay)
timerNextConsecrate:Start(10-delay)
timerNextRuneofPower:Start(45-delay)
timerNextSadism:Start(60-delay)
end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(2144560, 2144610) and DBM:AntiSpam(20, 1) then
warnSmokeBomb:Show()
timerNextSmokeBomb:Start()
elseif args:IsSpellID(2144560, 2144261, 2144262, 2144263) or
args:IsSpellID(2144264, 2144265, 2144266, 2144267) or
args:IsSpellID(2144268, 2144310, 2144311, 2144313) or
args:IsSpellID(2144315, 2144316, 2144317, 2144318) then
timerNextDeathSentence:Start()
timerDeathSentence:Start()
elseif args:IsSpellID(2144256) then
timerNextConsecrate:Start()
elseif args:IsSpellID(2144368, 2144418) and DBM:AntiSpam(20, 1) then
timerNextRuneofPower:Start()
elseif args:IsSpellID(2144351, 2144401) then
warnNetherprotection:Show()
end
end
function mod:SPELL_AURA_REMOVED(args)
if args:IsSpellID(2144351, 2144401) then
timerNextNetherProtection:Start()
end
end
function mod:SPELL_CAST_START(args)
if args:IsSpellID(2144462, 2144463, 2144512, 2144513) then
warnPaintoPleasure:Show()
timerNextPaintoPleasure:Start()
--when rogue splits, 22951 is fake 22952 is real.
elseif args:IsSpellID(2144464, 2144465, 2144466, 2144467) or args:IsSpellID(2144514, 2144515, 2144516, 2144517) then
warnSadism:Show()
timerNextSadism:Start()
end
end
--Council:AddOption("WarnCoH", true, DBM_COUNCIL_OPTION_COH)
--Council:AddOption("WarnDP", true, DBM_COUNCIL_OPTION_DP)
--Council:AddOption("WarnDW", false, DBM_COUNCIL_OPTION_DW)
--Council:AddOption("WarnVanish", true, DBM_COUNCIL_OPTION_VANISH)
--Council:AddOption("WarnVanishFade", true, DBM_COUNCIL_OPTION_VANISHFADED)
--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
+141
View File
@@ -0,0 +1,141 @@
local mod = DBM:NewMod("Najentus", "DBM-BlackTemple")
local L = mod:GetLocalizedStrings()
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
mod:SetCreatureID(22887)
mod:RegisterCombat("yell", L.DBM_NAJENTUS_YELL_PULL)
mod:RegisterEvents(
"SPELL_AURA_APPLIED",
"SPELL_AURA_REMOVED",
"SPELL_PERIODIC_DAMAGE"
)
local warningShield = mod:NewSpellAnnounce(2142521, 3)
local warningDischarge = mod:NewSpellAnnounce(2142504, 3)
local warningPuddle = mod:NewSpellAnnounce(2142594, 3)
local warnSpine = mod:NewTargetAnnounce(2142516, 2)
local warnPhase2 = mod:NewPhaseAnnounce(2)
local timerNextShield = mod:NewNextTimer(80, 2142521)
local timerNextDischarge = mod:NewNextTimer(20, 2142504)
local timerTargetSpine = mod:NewTargetTimer(30, 2142516)
local timerNextSpine = mod:NewNextTimer(30, 2142516)
local timerNextAdds = mod:NewNextTimer(15, 2142574)
local yellDischarge = mod:NewFadesYell(2142504)
mod:AddBoolOption(L.SpineYellOpt)
mod:AddBoolOption(L.DischargeYellOpt)
function mod:OnCombatStart(delay)
self:ScheduleMethod(0-delay, "NewAdds")
timerNextSpine:Start(50-delay)
timerNextShield:Start(35-delay)
end
function mod:OnCombatEnd()
DBM.RangeCheck:Hide()
end
function mod:NewAdds()
self:UnscheduleMethod("NewAdds")
timerNextAdds:Start()
self:ScheduleMethod(15, "NewAdds")
end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(2142521) then
warningShield:Show()
timerNextShield:Start()
elseif args:IsSpellID(2142504) then-- This is the damage proc, not the aura. args:IsSpellID(2142505, 2142506, 2142507, 2142508) then
warningDischarge:Show()
timerNextDischarge:Start()
if args:IsPlayer() and self.Options.DischargeYellOpt then
yellDischarge:Schedule(8, 5)
end
elseif args:IsSpellID(2142516, 2142517, 2142518, 2142519) then
warnSpine:Show()
timerNextSpine:Start()
timerTargetSpine:Start(args.destName)
elseif args:IsSpellID(2142526) then
warnPhase2:Show()
elseif args:IsSpellID(2142594,2142595,2142596,2142597) or args:IsSpellID(2142560, 21425601,2142562,2142563) then
if args:IsPlayer() then
warningPuddle:Show()
end
elseif args:IsSpellID() then
if args:IsPlayer() then
warningPuddle:Show()
end
end
end
function mod:SPELL_AURA_REMOVED(args)
if args:IsSpellID(2142516, 2142517, 2142518, 2142519) then
timerTargetSpine:Stop()
end
end
function mod:SPELL_PERIODIC_DAMAGE(args)
if self.Options.SpineYellOpt and args:IsPlayer() then
if args:IsSpellID(2142516, 2142517, 2142518, 2142519) then
SendChatMessage(L.SpineYell, "YELL")
end
end
end
--Najentus:AddOption("RangeCheck", true, DBM_NAJENTUS_OPTION_RANGECHECK)
--Najentus:AddOption("Icon", false, DBM_NAJENTUS_OPTION_ICON)
--Najentus:AddBarOption("Enrage")
--Najentus:AddBarOption("Next Tidal Shield")
-- self:StartStatusBarTimer(480 - delay, "Enrage", "Interface\\Icons\\Spell_Shadow_UnholyFrenzy")
-- self:ScheduleSelf(180 - delay, "EnrageWarn", 300)
-- self:ScheduleSelf(360 - delay, "EnrageWarn", 120)
-- self:ScheduleSelf(420 - delay, "EnrageWarn", 60)
-- self:ScheduleSelf(450 - delay, "EnrageWarn", 30)
-- self:ScheduleSelf(470 - delay, "EnrageWarn", 10)
-- self:StartStatusBarTimer(60 - delay, "Next Tidal Shield", "Interface\\Icons\\Spell_Nature_CrystalBall")
-- self:ScheduleSelf(50 - delay, "ShieldWarn")
-- function Najentus:OnEvent(event, arg1)
-- if event == "SPELL_AURA_APPLIED" then
-- if arg1.spellId == 39837 then
-- self:SendSync("Spine"..tostring(arg1.destName))
-- elseif arg1.spellId == 39872 then
-- self:SendSync("Shield")
-- end
-- elseif event == "SPELL_AURA_REMOVED" then
-- if arg1.spellId == 39872 then
-- self:SendSync("FadeShield")
-- end
-- elseif event == "EnrageWarn" and type(arg1) == "number" then
-- if arg1 >= 60 then
-- self:Announce(string.format(DBM_NAJENTUS_WARN_ENRAGE, (arg1/60), DBM_MIN), 1)
-- else
-- self:Announce(string.format(DBM_NAJENTUS_WARN_ENRAGE, arg1, DBM_SEC), 3)
-- end
-- elseif event == "ShieldWarn" then
-- self:Announce(DBM_NAJENTUS_WARN_SHIELD_SOON, 1)
-- end
-- end
-- function Najentus:OnSync(msg)
-- if msg:sub(0, 5) == "Spine" then
-- msg = msg:sub(6)
-- self:Announce(DBM_NAJENTUS_WARN_SPINE:format(msg), 2)
-- if self.Options.Icon then
-- self:SetIcon(msg, 15)
-- end
-- elseif msg == "Shield" then
-- self:Announce(DBM_NAJENTUS_WARN_SHIELD, 3)
-- self:ScheduleSelf(48, "ShieldWarn")
-- self:StartStatusBarTimer(58, "Next Tidal Shield", "Interface\\Icons\\Spell_Nature_CrystalBall")
-- end
-- end
+99
View File
@@ -0,0 +1,99 @@
local mod = DBM:NewMod("Akama", "DBM-BlackTemple")
local L = mod:GetLocalizedStrings()
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
mod:SetCreatureID(23421)
mod:RegisterCombat("combat", 22841)
-- Akama:SetMinCombatTime(60)
mod:RegisterEvents(
"UNIT_DIED",
"SPELL_AURA_APPLIED",
"SPELL_AURA_APPLIED_DOSE",
"SPELL_AURA_REMOVED",
"SPELL_HEAL"
)
local timerNextAdds = mod:NewNextTimer(35, 2142603)
local warnSoulDomination = mod:NewSpellAnnounce(2142603, 2)
local timerSoulDomination = mod:NewCastTimer(300, 2142603)
local warnDeadlyPoison = mod:NewTargetAnnounce(2142657, 2)
local warnPoisonedShiv = mod:NewTargetAnnounce(2142653, 2)
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 warnVigilance = mod:NewSpellAnnounce(2142686, 2) --Might be useful to warn if this is cast on shade of akama
function mod:OnCombatStart(delay)
timerNextAdds:Start(5-delay)
self:ScheduleMethod(5-delay, "NewAdds")
end
function mod:OnCombatEnd()
DBM.RangeCheck:Hide()
end
function mod:NewAdds()
self:UnscheduleMethod("NewAdds")
timerNextAdds:Start()
self:ScheduleMethod(35, "NewAdds")
end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(2142603) then
warnSoulDomination:Show()
timerSoulDomination:Start()
elseif args:IsSpellID(2142657) and args.amount and args.amount >= 2 and args.amount % 2 == 0 then
warnDeadlyPoison:Show(args.destName)
elseif args:IsSpellID(2142653) and args.amount and args.amount >= 2 and args.amount % 2 == 0 then
warnPoisonedShiv:Show(args.destName)
elseif args:IsSpellID(2142686) and self:GetCIDFromGUID(args.destGUID) == 22841 then
warnVigilance:Show()
elseif args:IsSpellID(2142680) and args:GetDestCreatureID() == 22841 then --not sure if this check works
warnRiptide:Show()
end
end
mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED -- Hack to include applied_dose as well without more code
function mod:SPELL_AURA_REMOVED(args)
if args:IsSpellID(2142603) then
-- warnSoulDomination:Hide()
timerSoulDomination:Stop()
end
end
function mod:SPELL_HEAL(args)
if args:IsSpellID(2142677) and DBM:AntiSpam(5) then
warnHealingStream:Show()
end
end
-- local channelersDown = 0
-- local sorcerersDown = 0
-- channelersDown = 0
-- sorcerersDown = 0
-- function Akama:OnEvent(event, arg1)
-- if event == "UNIT_DIED" then
-- if arg1.destName == DBM_AKAMA_MOB_CHANNELER then
-- self:SendSync("Channeler")
-- elseif arg1.destName == DBM_AKAMA_MOB_SORCERER then
-- self:SendSync("Sorcerer")
-- end
-- end
-- end
-- function Akama:OnSync(msg)
-- if msg == "Channeler" then
-- channelersDown = channelersDown + 1
-- self:Announce(DBM_AKAMA_WARN_CHANNELER_DOWN:format(channelersDown), 2)
-- elseif msg == "Sorcerer" then
-- sorcerersDown = sorcerersDown + 1
-- self:Announce(DBM_AKAMA_WARN_SORCERER_DOWN:format(sorcerersDown), 2)
-- end
-- end
+269
View File
@@ -0,0 +1,269 @@
local mod = DBM:NewMod("Shahraz", "DBM-BlackTemple")
local L = mod:GetLocalizedStrings()
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
mod:SetCreatureID(22947)
mod:RegisterCombat("yell", DBM_SHAHRAZ_YELL_PULL)
mod:RegisterEvents(
"SPELL_AURA_APPLIED",
"SPELL_DAMAGE",
"UNIT_HEALTH"
)
local warningFatalAttraction = mod:NewSpellAnnounce(2144012, 3)
-- local warningThoughts = mod:NewSpellAnnounce(2144033, 3)
local warningBossRunning = mod:NewSpellAnnounce(2144050, 3)
local warningBossRunning1 = mod:NewSoonAnnounce(2144050, 3)
local warningBossRunning2 = mod:NewSoonAnnounce(2144050, 3)
local timerNextFatalAttraction = mod:NewNextTimer(30, 2144012)
local timerNextForcedThoughts = mod:NewNextTimer(40, 2144035)
-- local timerNextBeam = mod:NewNextTimer(30, 2144017)
--Sinful
local warningSinfulBeam = mod:NewSpellAnnounce(2144017, 3)
local warningSinfulThoughts = mod:NewSpellAnnounce(2144033, 3)
local timerNextSinfulBeam = mod:NewNextTimer(50, 2144017)
local timerCastSinfulBeam = mod:NewCastTimer(3, 2144017)
local timerSinfulThoughts = mod:NewBuffActiveTimer(300, 2144033)
--Sinister
local warningSinisterBeam = mod:NewSpellAnnounce(2144021, 3)
local warningSinisterThoughts = mod:NewSpellAnnounce(2144034, 3)
local timerNextSinisterBeam = mod:NewNextTimer(50, 2144021)
local timerSinisterThoughts = mod:NewBuffActiveTimer(300, 2144034)
--Vile
local warningVileBeam = mod:NewSpellAnnounce(2144025, 3)
local warningVileThoughts = mod:NewSpellAnnounce(2144035, 3)
local timerNextVileBeam = mod:NewNextTimer(50, 2144025)
local timerVileThoughts = mod:NewBuffActiveTimer(300, 2144035)
--Wicked
local warningWickedBeam = mod:NewSpellAnnounce(2144029, 3)
local warningWickedThoughts = mod:NewSpellAnnounce(2144036, 3)
local timerNextWickedBeam = mod:NewNextTimer(50, 2144029)
local timerWickedThoughts = mod:NewBuffActiveTimer(300, 2144036)
local warningShahrazAvian = mod:NewAnnounce(L.ShahrazAvian, 2, 2144004)
local warningShahrazFila = mod:NewAnnounce(L.ShahrazFila, 2, 2144003)
local warningShahrazMater = mod:NewAnnounce(L.ShahrazMater, 2, 2144001)
local warningWiShahrazVirgo = mod:NewAnnounce(L.ShahrazVirgo, 2, 2144096)
--local
local isMother = false
local below20 = false
local below10 = false
function mod:OnCombatStart(delay)
timerNextForcedThoughts:Start(15-delay)
timerNextFatalAttraction:Start(35-delay)
self:ScheduleMethod(15-delay, "NewThoughts")
below20 = false
below10 = false
isMother = true
end
function mod:OnCombatEnd()
DBM.RangeCheck:Hide()
self:UnscheduleMethod("NewThoughts")
end
function mod:NewThoughts()
self:UnscheduleMethod("NewThoughts")
timerNextForcedThoughts:Start()
self:ScheduleMethod(40, "NewThoughts")
end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(2144012) then
warningFatalAttraction:Show()
timerNextFatalAttraction:Start()
elseif args:IsSpellID(2144050, 2144051) then
warningBossRunning:Show()
timerSinfulThoughts:Stop()
timerSinisterThoughts:Stop()
timerVileThoughts:Stop()
timerWickedThoughts:Stop()
timerNextForcedThoughtsStop()
timerNextFatalAttraction:Stop()
timerNextSinfulBeamStop()
timerNextSinisterBeamStop()
timerNextVileBeamStop()
timerNextWickedBeamStop()
elseif args:IsSpellID(2144001) and args.amount and args.amount >= 8 and args.amount % 2 == 0 and DBM:AntiSpam(5, 1) then
warningShahrazMater:Show()
elseif args:IsSpellID(2144003) and args.amount and args.amount >= 8 and args.amount % 2 == 0 and DBM:AntiSpam(5, 1) then
warningShahrazFila:Show()
elseif args:IsSpellID(2144004) and args.amount and args.amount >= 8 and args.amount % 2 == 0 and DBM:AntiSpam(5, 1) then
warningShahrazAvian:Show()
elseif args:IsSpellID(2144096) and args.amount and args.amount >= 8 and args.amount % 2 == 0 and DBM:AntiSpam(5, 1) then
warningWiShahrazVirgo:Show()
end
end
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
warningSinfulBeam:Show()
timerCastSinfulBeam:Start()
timerNextSinfulBeam:Start()
if args:IsPlayer() then
warningSinfulThoughts:Show()
timerSinfulThoughts:Start()
timerSinisterThoughts:Stop()
timerVileThoughts:Stop()
timerWickedThoughts:Stop()
end
elseif args:IsSpellID(2144021) or args:IsSpellID(2144022) or args:IsSpellID(2144023) or args:IsSpellID(2144024) and DBM:Antispam() then
warningSinisterBeam:Show()
timerNextSinisterBeam:Start()
if args:IsPlayer() then
warningSinisterThoughts:Show()
timerSinfulThoughts:Stop()
timerSinisterThoughts:Start()
timerVileThoughts:Stop()
timerWickedThoughts:Stop()
end
elseif args:IsSpellID(2144025) or args:IsSpellID(2144026) or args:IsSpellID(2144027) or args:IsSpellID(2144028) and DBM:Antispam() then
warningVileBeam:Show()
timerNextVileBeam:Start()
if args:IsPlayer() then
warningSinfulThoughts:Show()
timerSinfulThoughts:Stop()
warningVileThoughts:Stop()
timerVileThoughts:Start()
timerWickedThoughts:Stop()
end
elseif args:IsSpellID(2144029) or args:IsSpellID(2144030) or args:IsSpellID(2144031) or args:IsSpellID(2144032) and DBM:Antispam() then
warningWickedBeam:Show()
timerNextWickedBeam:Start()
if args:IsPlayer() then
warningWickedThoughts:Show()
timerSinfulThoughts:Stop()
timerSinisterThoughts:Stop()
timerVileThoughts:Stop()
timerWickedThoughts:Start()
end
end
end
function mod:UNIT_HEALTH(unit)
if isMother and (not below20 and not below10) and (mod:GetUnitCreatureId(unit) == 22947) then
local hp = (math.max(0,UnitHealth(unit)) / math.max(1, UnitHealthMax(unit))) * 100;
if (hp <= 23) and (below20 == false) then
warningBossRunning1:Show()
below20 = true
timerNextFatalAttraction:Stop()
timerSinfulThoughts:Stop()
timerSinisterThoughts:Stop()
timerVileThoughts:Stop()
timerWickedThoughts:Stop()
elseif (hp <= 13) and (below10 == false) then
warningBossRunning2:Show()
below10 = true
end
end
end
--Shahraz:AddOption("WarnBeam", false, DBM_SHAHRAZ_OPTION_BEAM)
--Shahraz:AddOption("WarnBeamSoon", false, DBM_SHAHRAZ_OPTION_BEAM_SOON)
--Shahraz:AddOption("WhisperFA", false, DBM_SEND_WHISPER)
--Shahraz:AddBarOption("Enrage")
--Shahraz:AddBarOption("Next Beam", false)
-- local fa = {}
-- local icon = 8
-- self:StartStatusBarTimer(600 - delay, "Enrage", "Interface\\Icons\\Spell_Shadow_UnholyFrenzy")
-- self:ScheduleSelf(300 - delay, "EnrageWarn", 300)
-- self:ScheduleSelf(480 - delay, "EnrageWarn", 120)
-- self:ScheduleSelf(540 - delay, "EnrageWarn", 60)
-- self:ScheduleSelf(570 - delay, "EnrageWarn", 30)
-- self:ScheduleSelf(590 - delay, "EnrageWarn", 10)
-- fa = {}
-- icon = 8
-- function Shahraz:OnEvent(event, arg1)
-- if event == "SPELL_AURA_APPLIED" then
-- if arg1.spellId == 41001 then
-- self:SendSync("FA"..tostring(arg1.destName))
-- elseif arg1.spellId == 40860 then
-- self:SendSync("BeamVile")
-- end
-- elseif event == "SPELL_DAMAGE" then
-- if arg1.spellId == 40859 then
-- self:SendSync("BeamSinister")
-- elseif arg1.spellId == 40827 then
-- self:SendSync("BeamSinful")
-- elseif arg1.spellId == 40861 then
-- self:SendSync("BeamWicked")
-- end
-- elseif event == "EnrageWarn" and type(arg1) == "number" then
-- if arg1 >= 60 then
-- self:Announce(string.format(DBM_SHAHRAZ_WARN_ENRAGE, (arg1/60), DBM_MIN), 1)
-- else
-- self:Announce(string.format(DBM_SHAHRAZ_WARN_ENRAGE, arg1, DBM_SEC), 3)
-- end
-- elseif event == "WarnFA" then
-- local msg = ""
-- for i, v in ipairs(fa) do
-- msg = msg..">"..v.."<, "
-- end
-- msg = msg:sub(0, -3)
-- fa = {}
-- self:Announce(DBM_SHAHRAZ_WARN_FA:format(msg), 4)
-- icon = 8
-- elseif event == "WarnBeam" then
-- if self.Options.WarnBeamSoon then
-- self:Announce(DBM_SHAHRAZ_WARN_BEAM_SOON, 1)
-- end
-- end
-- end
-- function Shahraz:OnSync(msg)
-- if msg:sub(0, 2) == "FA" then
-- msg = msg:sub(3)
-- table.insert(fa, msg)
-- if self.Options.Announce and DBM.Rank >= 1 then
-- if self.Options.WhisperFA then
-- self:SendHiddenWhisper(DBM_SHAHRAZ_WHISPER_FA, msg)
-- end
-- self:SetIcon(msg, 7.5, icon)
-- icon = icon - 1
-- end
-- if msg == UnitName("player") then
-- self:AddSpecialWarning(DBM_SHAHRAZ_SPECWARN_FA)
-- end
-- self:UnScheduleSelf("WarnFA")
-- if #fa == 3 then
-- self:OnEvent("WarnFA")
-- else
-- self:ScheduleSelf(1, "WarnFA")
-- end
-- elseif msg:sub(0, 4) == "Beam" then
-- if self.Options.WarnBeam then
-- msg = msg:sub(5)
-- if msg == "Vile" then
-- self:Announce(DBM_SHAHRAZ_WARN_BEAM_VILE, 2)
-- elseif msg == "Sinister" then
-- self:Announce(DBM_SHAHRAZ_WARN_BEAM_SINISTER, 2)
-- elseif msg == "Sinful" then
-- self:Announce(DBM_SHAHRAZ_WARN_BEAM_SINFUL, 2)
-- elseif msg == "Wicked" then
-- self:Announce(DBM_SHAHRAZ_WARN_BEAM_WICKED, 2)
-- end
-- end
-- self:ScheduleSelf(6, "WarnBeam")
-- self:StartStatusBarTimer(9, "Next Beam", "Interface\\Icons\\Spell_Shadow_ShadowBolt")
-- end
-- end
+150
View File
@@ -0,0 +1,150 @@
local mod = DBM:NewMod("Supremus", "DBM-BlackTemple")
local L = mod:GetLocalizedStrings()
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
mod:SetCreatureID(22898)
mod:RegisterCombat("combat")
mod:RegisterEvents(
"CHAT_MSG_RAID_BOSS_EMOTE",
"SPELL_AURA_APPLIED",
"SPELL_AURA_APPLIED_DOSE",
"SPELL_CAST_START",
"SPELL_DAMAGE"
)
local warningTitanic = mod:NewSpellAnnounce(2142758, 3)
local warningSupreme = mod:NewSpellAnnounce(2142764, 3)
local warnCracked = mod:NewAnnounce(L.SupremusCracked, 2, 2142751)
local timerTitanic = mod:NewCastTimer(6, 2142758)
local timerSupreme = mod:NewCastTimer(2, 2142764)
local timerEruption = mod:NewCastTimer(4, 2142774)
local warnPhase2 = mod:NewPhaseAnnounce(2)
function mod:OnCombatStart(delay)
end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(2142772) then --Enrages at 30% hp need hp check
warnPhase2:Show()
elseif args:IsSpellID(2142751) then
warnCracked:Show(args.spellName, args.destName, args.amount or 1)
end
end
function mod:SPELL_AURA_APPLIED_DOSE(args)
if args:IsSpellID(2142751) then
warnCracked:Show(args.spellName, args.destName, args.amount or 1)
end
end
function mod:SPELL_CAST_START(args)
if args:IsSpellID(2142758) then
warningTitanic:Show()
timerTitanic:Start()
elseif args:IsSpellID(2142758) then
warningSupreme:Show()
timerSupreme:Start()
end
end
function mod:SPELL_DAMAGE(args)
if args:IsSpellID(2142774) and DBM:AntiSpam(3) then
timerEruption:Start()
end
end
-- Supremus.MinRevision = 828
-- local lastIcon = nil
-- local phase2 = nil
--Supremus:AddOption("WarnKiteTarget", true, DBM_SUPREMUS_OPTION_TARGETWARN)
--Supremus:AddOption("IconKiteTarget", true, DBM_SUPREMUS_OPTION_TARGETICON)
--Supremus:AddOption("WhisperKiteTarget", false, DBM_SUPREMUS_OPTION_TARGETWHISPER)
--Supremus:AddBarOption("Enrage")
--Supremus:AddBarOption("Kite Phase")
--Supremus:AddBarOption("Tank & Spank Phase")
-- 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)
-- self:StartStatusBarTimer(60 - delay, "Kite Phase", "Interface\\Icons\\Spell_Fire_BurningSpeed")
-- self:ScheduleSelf(50 - delay, "PhaseWarn", 2)
-- lastIcon = nil
-- phase2 = nil
-- if lastIcon then
-- DBM.ClearIconByName(lastIcon)
-- lastIcon = nil
-- end
-- function Supremus:OnEvent(event, arg1)
-- if event == "CHAT_MSG_RAID_BOSS_EMOTE" and arg1 then
-- if arg1:find(DBM_SUPREMUS_EMOTE_PHASE1) then
-- self:StartStatusBarTimer(60, "Tank & Spank Phase", "Interface\\Icons\\Ability_Defend")
-- self:ScheduleSelf(50, "PhaseWarn", 2)
-- self:Announce(DBM_SUPREMUS_WARN_PHASE_1, 3)
-- if lastIcon then
-- DBM.ClearIconByName(lastIcon)
-- lastIcon = nil
-- end
-- phase2 = nil
-- elseif arg1 == DBM_SUPREMUS_EMOTE_PHASE2 then
-- self:StartStatusBarTimer(60, "Kite Phase", "Interface\\Icons\\Spell_Fire_BurningSpeed")
-- self:ScheduleSelf(50, "PhaseWarn", 1)
-- self:Announce(DBM_SUPREMUS_WARN_PHASE_2, 3)
-- self:ScheduleMethod(4, "NewTarget") -- he waits a few seconds before changing the target since patch 2.2
-- phase2 = true
-- elseif phase2 and arg1:find(DBM_SUPREMUS_EMOTE_NEWTARGET) then -- he sometimes uses this emote just after switching in phase 2 since 2.2
-- self:ScheduleMethod(0.5, "NewTarget")
-- end
-- elseif event == "PhaseWarn" and arg1 then
-- self:Announce(getglobal("DBM_SUPREMUS_WARN_PHASE_"..tostring(arg1).."_SOON"), 1)
-- elseif event == "SPELL_AURA_APPLIED" then
-- if arg1.spellId == 42052 and arg1.destName == UnitName("player") then
-- self:AddSpecialWarning(DBM_SUPREMUS_SPECWARN_VOLCANO)
-- end
-- end
-- end
-- function Supremus:NewTarget()
-- local target
-- for i = 1, GetNumRaidMembers() do
-- if UnitName("raid"..i.."target") == DBM_SUPREMUS_NAME then
-- target = UnitName("raid"..i.."targettarget")
-- break
-- end
-- end
-- if target then
-- if self.Options.WarnKiteTarget then
-- self:Announce(DBM_SUPREMUS_WARN_KITE_TARGET:format(target), 2)
-- end
-- if self.Options.IconKiteTarget and DBM.Rank >= 1 and self.Options.Announce then
-- lastIcon = target
-- self:SetIcon(target)
-- end
-- if self.Options.WhisperKiteTarget and DBM.Rank >= 1 and self.Options.Announce then
-- self:SendHiddenWhisper(DBM_SUPREMUS_WHISPER_RUN_AWAY, target)
-- end
-- end
-- end
+83
View File
@@ -0,0 +1,83 @@
local mod = DBM:NewMod("TeronGorefiend", "DBM-BlackTemple")
local L = mod:GetLocalizedStrings()
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
mod:SetCreatureID(22871)
mod:RegisterCombat("yell", DBM_GOREFIEND_YELL_PULL)
mod:RegisterEvents(
"SPELL_AURA_APPLIED"
)
local warningWitherAndRot = mod:NewSpellAnnounce(2143286, 3)
local warningGraspingDeath = mod:NewSpellAnnounce(2143282, 3)
local warnShadowOfDeath = mod:NewSpellAnnounce(2143264, 2)
local warnSoulReaper = mod:NewSpellAnnounce(2143272, 2)
local timerNextWitherAndRot = mod:NewNextTimer(30, 2143286)
local timerNextGraspingDeath = mod:NewNextTimer(30, 2143282)
local timerNextShadowofDeath = mod:NewNextTimer(30, 2143264)
local timerSoulReaper = mod:NewNextTimer(20, 2143271)
--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
function mod:OnCombatStart(delay)
timerNextWitherAndRot:Start(15-delay)
timerNextGraspingDeath:Start(30-delay)
timerNextShadowofDeath:Start(10-delay)
timerSoulReaper:Start(20-delay)
end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(2143286, 2143287, 2143288, 2143289) and DBM:AntiSpam(10) then
warningWitherAndRot:Show()
timerNextWitherAndRot:Start()
elseif args:IsSpellID(2143282, 2143283, 2143284, 2143285) and DBM:AntiSpam(10) then
warningGraspingDeath:Show()
timerNextGraspingDeath:Start()
elseif args:IsSpellID(2143264) then
warnShadowOfDeath:Show()
timerNextShadowofDeath:Start()
elseif args:IsSpellID(2143271, 2143272, 2143273, 2143274) then
warnSoulReaper:Show()
timerSoulReaper:Start()
end
end
--Gorefiend:AddOption("WarnIncinerate", false, DBM_GOREFIEND_OPTION_INCINERATE)
--Gorefiend:AddBarOption("Vengeful Spirit: (.*)")
--Gorefiend:AddBarOption("Shadow of Death: (.*)")
-- function Gorefiend:OnEvent(event, arg1)
-- if event == "SPELL_AURA_APPLIED" then
-- if arg1.spellId == 40251 then
-- if arg1.destName == UnitName("player") then
-- self:AddSpecialWarning(DBM_GOREFIEND_SPECWARN_SOD)
-- end
-- self:SendSync("SoD"..tostring(arg1.destName))
-- elseif arg1.spellId == 40239 then
-- self:SendSync("Inc"..tostring(arg1.destName))
-- end
-- elseif event == "Ghost" and arg1 then
-- self:StartStatusBarTimer(60, "Vengeful Spirit: "..tostring(arg1), "Interface\\Icons\\Spell_Shadow_DemonicTactics")
-- end
-- end
-- function Gorefiend:OnSync(msg)
-- if msg:sub(0, 3) == "SoD" then
-- msg = msg:sub(4)
-- self:Announce(DBM_GOREFIEND_WARN_SOD:format(msg), 3)
-- self:StartStatusBarTimer(55, "Shadow of Death: "..msg, "Interface\\Icons\\Spell_Arcane_PrismaticCloak")
-- self:ScheduleSelf(55, "Ghost", msg)
-- elseif msg:sub(0, 3) == "Inc" then
-- msg = msg:sub(4)
-- if self.Options.WarnIncinerate then
-- self:Announce(DBM_GOREFIEND_WARN_INCINERATE:format(msg), 2)
-- end
-- end
-- end
+21
View File
@@ -0,0 +1,21 @@
local mod = DBM:NewMod("Trash", "DBM-BlackTemple")
local L = mod:GetLocalizedStrings()
mod:SetRevision(("$Revision: 5019 $"):sub(12, -3))
mod:SetCreatureID(22879)
mod:RegisterCombat("combat", 22879)
mod:RegisterEvents(
"SPELL_AURA_APPLIED"
)
local warningIgnorePain = mod:NewSpellAnnounce(2142343, 3)
local timerIgnorePain = mod:NewBuffActiveTimer(8, 2142343)
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(2142343) then
warningIgnorePain:Show()
timerIgnorePain:Start()
end
end
+401
View File
@@ -0,0 +1,401 @@
local L
--High Warlord Naj'entus
L = DBM:GetModLocalization("Najentus")
L:SetGeneralLocalization{
name = "High Warlord Naj'entus"
}
L:SetWarningLocalization{
}
L:SetOptionLocalization{
SpineYellOpt = "Yell when you are affected by $spell:2142516",
DischargeYellOpt = "Yell when you are affected by $spell:2142504"
}
L:SetMiscLocalization{
SpineYell = "Spine on me!",
DBM_NAJENTUS_YELL_PULL = "You will die in the name of Lady Vashj!";
}
-- DBM_NAJENTUS_NAME = "High Warlord Naj'entus";
-- DBM_NAJENTUS_DESCRIPTION = "Announce Impaling Spine and Tidal Shield.";
-- DBM_NAJENTUS_OPTION_ICON = "Set icon on Impaling Spine target";
-- DBM_NAJENTUS_OPTION_RANGECHECK = "Show range check frame";
-- DBM_NAJENTUS_OPTION_FRAME = "Show players with less than 8500 health";
-- DBM_NAJENTUS_WARN_SPINE = "*** Impaling Spine on >%s< ***";
-- DBM_NAJENTUS_WARN_ENRAGE = "*** Enrage in %s %s ***";
-- DBM_NAJENTUS_WARN_SHIELD = "*** Tidal Shield ***";
-- DBM_NAJENTUS_WARN_SHIELD_SOON = "*** Tidal Shield soon ***";
-- DBM_NAJENTUS_FRAME_TITLE = "Naj'entus"
-- DBM_NAJENTUS_FRAME_TEXT = "Players with less than 8500 health:"
-- DBM_NAJENTUS_SPELL_PWS = "Power Word: Shield"
-- DBM_NAJENTUS_SPELL_FW = "Frost Ward"
-- DBM_NAJENTUS_SPELL_FB = "Fel Blossom"
-- Supremus
L = DBM:GetModLocalization("Supremus")
L:SetGeneralLocalization{
name = "Supremus"
}
L:SetWarningLocalization{
SupremusCracked = "%s on >%s< (%d)" --(args.spellName, args.destName, args.amount or 1)
}
L:SetOptionLocalization{
SupremusCracked = "Show $spell:2142751 targets and stack number warning" --(args.spellName, args.destName, args.amount or 1)
}
L:SetMiscLocalization{
}
-- DBM_SUPREMUS_NAME = "Supremus";
-- DBM_SUPREMUS_DESCRIPTION = "Announces phases and targets.";
-- DBM_SUPREMUS_OPTION_TARGETWARN = "Announces Supremus' target in phase 2";
-- DBM_SUPREMUS_OPTION_TARGETICON = "Set icon on Supremus' target";
-- DBM_SUPREMUS_OPTION_TARGETWHISPER = "Send whisper to Supremus' target";
-- DBM_SUPREMUS_EMOTE_PHASE1 = "punches the ground in anger!";
-- DBM_SUPREMUS_EMOTE_PHASE2 = "The ground begins to crack open!";
-- DBM_SUPREMUS_EMOTE_NEWTARGET = "acquires a new target";
-- DBM_SUPREMUS_WARN_KITE_TARGET = "Target: >%s<";
-- DBM_SUPREMUS_WARN_PHASE_1_SOON = "*** Tank & Spank phase in 10 sec ***";
-- DBM_SUPREMUS_WARN_PHASE_2_SOON = "*** Kite phase in 10 sec ***";
-- DBM_SUPREMUS_WARN_PHASE_1 = "*** Tank & Spank phase ****";
-- DBM_SUPREMUS_WARN_PHASE_2 = "*** Kite phase ***";
-- DBM_SUPREMUS_SPECWARN_FIRE = "Molten Fire";
-- DBM_SUPREMUS_SPECWARN_VOLCANO = "Volcano";
-- DBM_SUPREMUS_WHISPER_RUN_AWAY = "Run away!";
-- Shade of Akama
L = DBM:GetModLocalization("Akama")
L:SetGeneralLocalization{
name = "Shade of Akama"
}
L:SetWarningLocalization{
}
L:SetOptionLocalization{
}
L:SetMiscLocalization{
}
-- DBM_AKAMA_NAME = "Shade of Akama";
-- DBM_AKAMA_DESCRIPTION = nil;
-- DBM_AKAMA_MOB_AKAMA = "Akama";
-- DBM_AKAMA_MOB_DEFENDER = "Ashtongue Defender";
-- DBM_AKAMA_MOB_CHANNELER = "Ashtongue Channeler";
-- DBM_AKAMA_MOB_SORCERER = "Ashtongue Sorcerer";
-- DBM_AKAMA_MOB_DIES = "%s dies.";
-- DBM_AKAMA_WARN_CHANNELER_DOWN = "**** %s/6 channelers down ****";
-- DBM_AKAMA_WARN_SORCERER_DOWN = "**** %s sorcerers down ****";
-- Teron Gorefiend
L = DBM:GetModLocalization("TeronGorefiend")
L:SetGeneralLocalization{
name = "Teron Gorefiend"
}
L:SetWarningLocalization{
}
L:SetOptionLocalization{
}
L:SetMiscLocalization{
}
-- DBM_GOREFIEND_NAME = "Teron Gorefiend";
-- DBM_GOREFIEND_DESCRIPTION = "Announces Shadow of Death and Incinerate.";
-- DBM_GOREFIEND_OPTION_INCINERATE = "Announce incinerate";
-- DBM_GOREFIEND_YELL_PULL = "Vengeance is mine!";
-- DBM_GOREFIEND_WARN_SOD = "*** Shadow of Death: >%s< ***";
-- DBM_GOREFIEND_WARN_INCINERATE = "*** Incinerate: >%s< ***";
-- DBM_GOREFIEND_SPECWARN_SOD = "Shadow of Death";
-- Bloodboil
L = DBM:GetModLocalization("Bloodboil")
L:SetGeneralLocalization{
name = "Gurtogg Bloodboil"
}
L:SetWarningLocalization{
}
L:SetOptionLocalization{
}
L:SetMiscLocalization{
}
-- DBM_BLOODBOIL_NAME = "Gurtogg Bloodboil";
-- DBM_BLOODBOIL_DESCRIPTION = "Announces Bloodboil and Fel Rage.";
-- DBM_BLOODBOIL_OPTION_SMASH = "Announce Arcing Smash";
-- DBM_BLOODBOIL_YELL_PULL = "Horde will... crush you.";
-- DBM_BLOODBOIL_WARN_BLOODBOIL = "*** Bloodboil #%s ***";
-- DBM_BLOODBOIL_WARN_ENRAGE = "*** Enrage in %s %s ***";
-- DBM_BLOODBOIL_WARN_FELRAGE_SOON = "*** Fel Rage soon ***";
-- DBM_BLOODBOIL_WARN_NORMAL_SOON = "*** Normal Phase in 5 sec ***";
-- DBM_BLOODBOIL_WARN_FELRAGE = "*** Fel Rage on >%s< ***";
-- DBM_BLOODBOIL_WARN_NORMALPHASE = "*** Normal Phase ***";
-- DBM_BLOODBOIL_WARN_SMASH = "*** Arcing Smash ***";
-- DBM_BLOODBOIL_WARN_SMASH_SOON = "*** Arcing Smash soon ***";
-- Essence (Reliquary) of Souls
L = DBM:GetModLocalization("Souls")
L:SetGeneralLocalization{
name = "Essence of Souls"
}
L:SetWarningLocalization{
}
L:SetOptionLocalization{
}
L:SetMiscLocalization{
}
-- DBM_SOULS_NAME = "Essence of Souls"
-- DBM_SOULS_DESCRIPTION = "Announces Enrage, Fixate, Souldrain, Rune Shield, Deaden and Spite."
-- DBM_SOULS_OPTION_DRAIN = "Announce Souldrain"
-- DBM_SOULS_OPTION_DRAIN_CAST = "Announce Souldrain cast (useful for Mass Dispel)"
-- DBM_SOULS_OPTION_FIXATE = "Announce Fixate"
-- DBM_SOULS_OPTION_SPITE = "Announce Spite"
-- DBM_SOULS_OPTION_SCREAM = "Announce Soul Scream"
-- DBM_SOULS_OPTION_SPECWARN_SPITE = "Show special warning when you are afflicted by Spite"
-- DBM_SOULS_OPTION_WHISPER_SPITE = "Send whisper to Spite targets"
-- DBM_SOULS_BOSS_SUFFERING = "Essence of Suffering"
-- DBM_SOULS_BOSS_DESIRE = "Essence of Desire"
-- DBM_SOULS_BOSS_KILL_NAME = "Essence of Anger"
-- DBM_SOULS_YELL_PULL = "Pain and suffering are all that await you!" -- Essence of Suffering
-- DBM_SOULS_EMOTE_ENRAGE = "%s becomes enraged!"
-- DBM_SOULS_YELL_DESIRE = "You can have anything you desire... for a price."
-- DBM_SOULS_YELL_DESIRE_DEMONIC = "Shi shi rikk rukadare shi tichar kar x gular"
-- DBM_SOULS_DEBUFF_SPITE = "([^%s]+) (%w+) afflicted by Spite%."
-- DBM_SOULS_DEBUFF_SOULDRAIN = "([^%s]+) (%w+) afflicted by Soul Drain%."
-- DBM_SOULS_DEBUFF_FIXATE = "([^%s]+) (%w+) afflicted by Fixate%."
-- DBM_SOULS_YELL_ANGER_INC = "Beware: I live!"
-- DBM_SOULS_WARN_ENRAGE_SOON = "*** Enrage soon ***"
-- DBM_SOULS_WARN_ENRAGE = "*** Enrage ***"
-- DBM_SOULS_WARN_ENRAGE_OVER = "*** Enrage over ***"
-- DBM_SOULS_WARN_RUNESHIELD = "*** Rune Shield ***"
-- DBM_SOULS_WARN_RUNESHIELD_SOON = "*** Rune Shield in 3 sec ***"
-- DBM_SOULS_WARN_DEADEN = "*** Deaden ****"
-- DBM_SOULS_WARN_DEADEN_SOON = "*** Deaden in 5 sec ***"
-- DBM_SOULS_WARN_DESIRE_INC = "*** Essence of Desire - Zero mana in ~3 minutes ***"
-- DBM_SOULS_WARN_MANADRAIN = "*** Zero mana in 20 sec ***"
-- DBM_SOULS_WARN_SPITE = "*** Spite on %s ***"
-- DBM_SOULS_WARN_SOULDRAIN = "*** Souldrain on %s ***"
-- DBM_SOULS_WARN_SOULDRAIN_CAST = "*** Souldrain is casting ***"
-- DBM_SOULS_WARN_FIXATE = "*** Fixate: >%s< ***"
-- DBM_SOULS_SPECWARN_FIXATE = "Fixate!"
-- DBM_SOULS_WARN_SCREAM = "*** Soul Scream ***"
-- DBM_SOULS_SPECWARN_SPITE = "Spite!"
-- DBM_SOULS_WARN_ANGER_INC = "*** Essence of Anger ***";
-- DBM_SOULS_WHISPER_SPITE = "Spite on you!"
-- Mother Shahraz
L = DBM:GetModLocalization("Shahraz")
L:SetGeneralLocalization{
name = "Mother Shahraz"
}
L:SetWarningLocalization{
AttSunderAvian = "%s on >%s< (%d)", --(args.spellName, args.destName, args.amount or 1)
AttSunderFila = "%s on >%s< (%d)", --(args.spellName, args.destName, args.amount or 1)
AttSunderMater = "%s on >%s< (%d)", --(args.spellName, args.destName, args.amount or 1)
AttSunderVirgo = "%s on >%s< (%d)" --(args.spellName, args.destName, args.amount or 1)
}
L:SetOptionLocalization{
ShahrazAvian = "Show $spell:2144004 targets and stack number warning", --(args.spellName, args.destName, args.amount or 1)
ShahrazFila = "Show $spell:2144003 targets and stack number warning", --(args.spellName, args.destName, args.amount or 1)
ShahrazMater = "Show $spell:2144001 targets and stack number warning", --(args.spellName, args.destName, args.amount or 1)
ShahrazVirgo = "Show $spell:2144096 targets and stack number warning" --(args.spellName, args.destName, args.amount or 1)
}
L:SetMiscLocalization{
}
-- DBM_SHAHRAZ_NAME = "Mother Shahraz"
-- DBM_SHAHRAZ_DESCRIPTION = "Announces Fatal Attraction, sets an icons and sends whispers. Announces and shows a timer for Beams."
-- DBM_SHAHRAZ_OPTION_BEAM = "Announce Beams"
-- DBM_SHAHRAZ_OPTION_BEAM_SOON = "Show \"Beam soon\" warning"
-- DBM_SHAHRAZ_YELL_PULL = "So... business or pleasure?"
-- DBM_SHAHRAZ_WARN_ENRAGE = "*** Enrage in %s %s ***"
-- DBM_SHAHRAZ_WARN_FA = "*** Fatal Attraction on %s ***"
-- DBM_SHAHRAZ_SPECWARN_FA = "Fatal Attraction"
-- DBM_SHAHRAZ_WHISPER_FA = "Fatal Attraction on you!"
-- DBM_SHAHRAZ_WARN_BEAM_VILE = "*** Vile Beam ***"
-- DBM_SHAHRAZ_WARN_BEAM_SINISTER = "*** Sinister Beam ***"
-- DBM_SHAHRAZ_WARN_BEAM_SINFUL = "*** Sinful Beam ***"
-- DBM_SHAHRAZ_WARN_BEAM_WICKED = "*** Wicked Beam ***"
-- DBM_SHAHRAZ_WARN_BEAM_SOON = "*** Beam in 3 sec ***"
-- Illidari Council
L = DBM:GetModLocalization("Council")
L:SetGeneralLocalization{
name = "Illidari Council"
}
L:SetWarningLocalization{
}
L:SetOptionLocalization{
}
L:SetMiscLocalization{
}
-- DBM_COUNCIL_NAME = "Illidari Council"
-- DBM_COUNCIL_DESCRIPTION = "Announces Circle of Healing, Deadly Poison, Divine Wrath, Vanish and shields."
-- DBM_COUNCIL_OPTION_COH = "Announce Circle of Healing"
-- DBM_COUNCIL_OPTION_DP = "Announce Deadly Poison"
-- DBM_COUNCIL_OPTION_DW = "Announce Divine Wrath"
-- DBM_COUNCIL_OPTION_VANISH = "Announce Vanish"
-- DBM_COUNCIL_OPTION_VANISHFADED = "Show warning when Vanish fades"
-- DBM_COUNCIL_OPTION_VANISHFADESOON = "Show warning 5 seconds before Vanish fades"
-- DBM_COUNCIL_OPTION_SN = "Announce Reflective Shield"
-- DBM_COUNCIL_OPTION_SS = "Announce Spell Shield"
-- DBM_COUNCIL_OPTION_SM = "Announce Melee Shield"
-- DBM_COUNCIL_OPTION_DEVAURA = "Announce Devotion Aura"
-- DBM_COUNCIL_OPTION_RESAURA = "Announce Resistance Aura"
-- DBM_COUNCIL_MOB_GATHIOS = "Gathios the Shatterer"
-- DBM_COUNCIL_MOB_MALANDE = "Lady Malande"
-- DBM_COUNCIL_MOB_ZEREVOR = "High Nethermancer Zerevor"
-- DBM_COUNCIL_MOB_VERAS = "Veras Darkshadow"
-- DBM_COUNCIL_MOB_GATHIOS_EN = "Gathios the Shatterer"
-- DBM_COUNCIL_MOB_MALANDE_EN = "Lady Malande"
-- DBM_COUNCIL_MOB_ZEREVOR_EN = "High Nethermancer Zerevor"
-- DBM_COUNCIL_MOB_VERAS_EN = "Veras Darkshadow"
-- 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_WARN_CAST_COH = "Circle of Healing"
-- DBM_COUNCIL_WARN_POISON = "Deadly Poison on >%s<"
-- DBM_COUNCIL_WARN_SHIELD_NORMAL = "Reflective Shield"
-- DBM_COUNCIL_WARN_SHIELD_SPELL = "Spell Shield on %s"
-- DBM_COUNCIL_WARN_SHIELD_MELEE = "Melee Shield on %s"
-- DBM_COUNCIL_WARN_VANISH = "Vanish"
-- DBM_COUNCIL_WARN_VANISH_FADED = "Vanished faded"
-- DBM_COUNCIL_WARN_WRATH = "Divine Wrath on >%s<"
-- DBM_COUNCIL_WARN_AURA_DEV = "Devotion Aura"
-- DBM_COUNCIL_WARN_AURA_RES = "Resistance Aura"
-- DBM_COUNCIL_WARN_VANISHFADE_SOON = "Vanish fades in 5 sec"
-- Illidan Stormrage
L = DBM:GetModLocalization("Illidan")
L:SetGeneralLocalization{
name = "Illidan Stormrage"
}
L:SetWarningLocalization{
}
L:SetOptionLocalization{
}
L:SetMiscLocalization{
DBM_ILLIDAN_YELL_PULL = "You are not prepared!",
UnharnessedBlade = "Blade on me!",
}
-- DBM_ILLIDAN_NAME = "Illidan Stormrage"
-- DBM_ILLIDAN_DESCRIPTION = "Announces Phases, Shear, Shadowfiends, Barrage, Eye Blast, Agonizing Flames, Shadow Demons, Flame Burst and Enrage."
-- DBM_ILLIDAN_OPTION_RANGECHECK = "Show range check frame in phase 3"
-- DBM_ILLIDAN_OPTION_PHASES = "Announce phases"
-- DBM_ILLIDAN_OPTION_SHEARCAST = "Announce Shear cast"
-- DBM_ILLIDAN_OPTION_SHEAR = "Announce Shear"
-- DBM_ILLIDAN_OPTION_SHADOWFIEND = "Announce Shadowfiends"
-- DBM_ILLIDAN_OPTION_ICONFIEND = "Set icons on Shadowfiend targets"
-- DBM_ILLIDAN_OPTION_BARRAGE = "Announce Dark Barrage"
-- DBM_ILLIDAN_OPTION_BARRAGE_SOON = "Show \"Dark Barrage soon\" warning"
-- DBM_ILLIDAN_OPTION_EYEBEAM = "Announce Eye Blast"
-- DBM_ILLIDAN_OPTION_FLAMES = "Announce Agonizing Flames"
-- DBM_ILLIDAN_OPTION_DEMONFORM = "Announce demon/normal form"
-- DBM_ILLIDAN_OPTION_FLAMEBURST = "Announce Flame Burst"
-- DBM_ILLIDAN_OPTION_SHADOWDEMONS = "Announce Shadow Demons"
-- DBM_ILLIDAN_OPTION_EYEBEAMSOON = "Show \"Eye Blast soon\" warning"
-- DBM_ILLIDAN_YELL_EYEBEAM = "Stare into the eyes of the Betrayer!"
-- DBM_ILLIDAN_YELL_DEMONFORM = "Behold the power... of the demon within!"
-- DBM_ILLIDAN_YELL_PHASE4 = "Is this it, mortals? Is this all the fury you can muster?"
-- DBM_ILLIDAN_MOB_FLAME = "Flame of Azzinoth"
-- DBM_ILLIDAN_SPELL_SHADOWDEMONS = "Summon Shadow Demons"
-- DBM_ILLIDAN_SPELL_SHEAR = "Shear"
-- DBM_ILLIDAN_YELL_START = "Akama. Your duplicity is hardly surprising. I should have slaughtered you and your malformed brethren long ago."
-- DBM_ILLIDAN_WARN_SHEAR = "Shear on >%s<"
-- DBM_ILLIDAN_WARN_SHADOWFIEND = "Shadowfiend on >%s<"
-- DBM_ILLIDAN_WARN_BARRAGE = "Dark Barrage on >%s<"
-- DBM_ILLIDAN_WARN_BARRAGE_SOON = "Dark Barrage soon"
-- DBM_ILLIDAN_WARN_EYEBEAM = "Eye Blast"
-- DBM_ILLIDAN_WARN_FLAMES = "Agonizing Flames on %s"
-- DBM_ILLIDAN_WARN_PHASE2 = "Phase 2"
-- DBM_ILLIDAN_WARN_PHASE3 = "Phase 3"
-- DBM_ILLIDAN_WARN_PHASE4 = "Phase 4"
-- DBM_ILLIDAN_WARN_PHASE_DEMON = "Demon Phase"
-- DBM_ILLIDAN_WARN_FLAMEBURST = "Flame Burst #%s"
-- DBM_ILLIDAN_WARN_FLAMEBURST_SOON = "Flame Burst soon"
-- DBM_ILLIDAN_WARN_SHADOWDEMSSOON = "Shadow Demons soon"
-- DBM_ILLIDAN_WARN_SHADOWDEMS = "Shadow Demons"
-- DBM_ILLIDAN_WARN_NORMALPHASE_SOON = "Normal Phase in 10 sec"
-- DBM_ILLIDAN_WARN_CASTSHEAR = "Casting Shear"
-- DBM_ILLIDAN_WARN_EYEBEAM_SOON = "Eye Blast soon"
-- DBM_ILLIDAN_WARN_PHASE_NORMAL = "Normal Phase"
-- DBM_ILLIDAN_WARN_DEMONPHASE_SOON = "Demon Phase in 10 sec"
-- DBM_ILLIDAN_WARN_SHADOWDEMSON = "Shadow Demons on %s"
-- DBM_ILLIDAN_STATUSMSG_PHASE2 = "Phase 2"
-- DBM_ILLIDAN_WARN_PRISON = "Shadow Prison"
-- DBM_ILLIDAN_WARN_P4ENRAGE_SOON = "Enrage in 5 sec"
-- DBM_ILLIDAN_WARN_P4ENRAGE_NOW = "Enrage"
-- DBM_ILLIDAN_WARN_CAGED = "Caged"
-- DBM_ILLIDAN_SELFWARN_SHADOWFIEND = "Parasitic Shadowfiend"
-- DBM_ILLIDAN_SELFWARN_SHADOW = "Agonizing Flames"
-- DBM_ILLIDAN_SELFWARN_DEMONS = "Shadow Demon"
-- DBM_SBT["Enrage2"] = "Enrage" -- you cannot have two timers with the same id, so the 2nd enrage bar needs a "localization"
+18
View File
@@ -232,3 +232,21 @@ v5.17 15/05/2023
- Rewrote most of the Naxx fights, updating Spell IDs
- Added UNIT_DIED triggers to all
- Added AntiSpam
----------------------------------------------------------------------------------------------------
v5.18 15/05/2023
- Fixed druid spells on Malacrass
- Fixed warlock spell Ids on Warlock Malacrass being swapped
- Removed warning to look away on Malacrass (its a LOS mechanic)
- Added Deathknight spells to Malacrass
- Added some Ascended mechanics on Zuljin
- Fixed new spellIDs on Onyxia
- Fixed Blast Nova timers on Onyxia
- Added yell for Fireball on Onyxia
----------------------------------------------------------------------------------------------------
v5.19 17/02/2024
- Added all bosses from Black Temple
- Fixed repeating timers on Chromius for FinalCountdown due to server delay
- Fixed pull timer on Ragnaros
- Fixed Lua errors in MC
- Added a antispam to rockfall on Golemagg, defaulted to off. (go to settings to turn on manually)
- Removed spammy warnHandofRagTargets.
+4 -4
View File
@@ -42,10 +42,10 @@
-- Globals/Default Options --
-------------------------------
DBM = {
Revision = ("$Revision: 5016 $"):sub(12, -3),
Version = "5.17",
DisplayVersion = "5.17", -- the string that is shown as version
ReleaseRevision = 5016 -- the revision of the latest stable version that is available (for /dbm ver2)
Revision = ("$Revision: 5019 $"):sub(12, -3),
Version = "5.19",
DisplayVersion = "5.19", -- the string that is shown as version
ReleaseRevision = 5019 -- the revision of the latest stable version that is available (for /dbm ver2)
}
DBM_SavedOptions = {}
+2
View File
@@ -174,6 +174,8 @@ function mod:OnCombatEnd()
target1 = nil
target2 = nil
target3 = nil
self:UnscheduleMethod("Nightmare")
self:UnscheduleMethod("InfernalRain")
end
+2 -2
View File
@@ -106,8 +106,8 @@ function mod:OnCombatStart(delay)
prewarn = 0
phase = 0
terror = 0
lastDoomfire = nil
lastForce = nil
lastDoomfire = 0
lastForce = 0
drawFlames = 0
end
+1 -2
View File
@@ -127,8 +127,7 @@ function mod:SPELL_CAST_START(args)
end
function mod:UNIT_DIED(args)
local cid = self:GetCIDFromGUID(args.destGUID)
if cid == 26665 then
if args.destName == "Legion Portal" then
DBM.BossHealth:Clear()
end
end
+6 -6
View File
@@ -19,7 +19,7 @@ mod:RegisterEvents(
-- Final Countdown
local specWarnFinalCountdown = mod:NewSpecialWarning("Final Countdown! The Hourglass will vibrate %s times!", 2141735)
local warnCountdown = mod:NewAnnounce("There are %s vibrations left!", 2141735)
local timerNextFinalCountdown = mod:NewTimer(60,"Next Final Countdown: (%s)", 2141735)
local timerNextFinalCountdown = mod:NewTimer(62,"Next Final Countdown: (%s)", 2141735)
local timerFinalDuration = mod:NewTimer(2,"Final Countdown (%s ticks)", 2141735)
local warnFinalCDSoon = mod:NewAnnounce("Final Countdown soon!", 2141735)
local timerFinalDelay = mod:NewTimer(3, "Vibration travel time", 2141735)
@@ -92,9 +92,9 @@ function mod:OnCombatStart(delay)
ThrallHP = 0
insanity = 0
timerArcaneBreath:Start(40-delay)
timerNextFinalCountdown:Start(65-delay, count)
timerNextFinalCountdown:Start(67-delay, count)
warnFinalCDSoon:Schedule(60-delay)
self:ScheduleMethod(65-delay,"FinalCountdown")
self:ScheduleMethod(67-delay,"FinalCountdown")
end
function mod:FinalCountdown()
@@ -105,9 +105,9 @@ function mod:FinalCountdown()
timerFinalDuration:Start(duration, count)
count = count + 1
duration = duration + 2.5
timerNextFinalCountdown:Start(60,count)
warnFinalCDSoon:Schedule(55)
self:ScheduleMethod(60,"FinalCountdown")
timerNextFinalCountdown:Start(62,count)
warnFinalCDSoon:Schedule(57)
self:ScheduleMethod(62,"FinalCountdown")
elseif phase == 1 then
timerFinalDelay:Start(3)
self:ScheduleMethod(3,"FinalDuration")
+6 -2
View File
@@ -67,6 +67,8 @@ local lastSlap
local remainingSlap
local berserkTimer = mod:NewBerserkTimer(600)
mod:AddBoolOption("ChainWhisper", false)
function mod:OnCombatStart(delay)
prewarn = 1
phylDeath = 0
@@ -164,8 +166,10 @@ function mod:SPELL_AURA_APPLIED(args)
timerFrozen:Start()
end
if args:IsSpellID(2140654) and args:IsPlayer() then
warnChains:show(args.sourceName, args.destName)
-- SendChatMessage("sourceName is "..args.sourceName.."", "SAY")
warnChains:Show(args.sourceName, args.destName)
if self.Options.ChainWhisper then
SendChatMessage("I'm linked with you", "WHISPER")
end
-- SendChatMessage("destName is "..args.destName.."", "SAY")
-- if args.destName == UnitName("Player") then
-- specWarnChains:Show(args.destName)
+1
View File
@@ -16,6 +16,7 @@ L:SetTimerLocalization({
})
L:SetOptionLocalization({
ChainWhisper = "Enable this if you want to whisper your partner when you get linked by $spell:2140654."
})
L:SetMiscLocalization({
+11 -10
View File
@@ -29,11 +29,11 @@ function mod:OnCombatStart(delay)
timerNextCurse:Start()
end
function mod:warnFistTargets()
warnFist:Show(table.concat(FistTargets, "<, >"))
timerFist:Start(7-delay)
table.wipe(FistTargets)
end
-- function mod:warnFistTargets() -- too spammy
-- warnFist:Show(table.concat(FistTargets, "<, >"))
-- timerFist:Start(7-delay)
-- table.wipe(FistTargets)
-- end
-- function mod:SPELL_CAST_SUCCESS(args)
-- if args:IsSpellID(19716) then
@@ -45,11 +45,12 @@ end
-- end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(20277) and args:IsDestTypePlayer() then
self:UnscheduleMethod("warnFistTargets")
FistTargets[#FistTargets + 1] = args.destName
self:ScheduleMethod(0.3, "warnFistTargets")
elseif args:IsSpellID(20277) then
-- if args:IsSpellID(20277) and args:IsDestTypePlayer() then
-- self:UnscheduleMethod("warnFistTargets")
-- FistTargets[#FistTargets + 1] = args.destName
-- self:ScheduleMethod(0.3, "warnFistTargets")
-- else
if args:IsSpellID(20277) then
if args:IsPlayer() then
specWarnRain:Show()
end
+4 -7
View File
@@ -11,7 +11,7 @@ mod:RegisterEvents(
"SPELL_PERIODIC_DAMAGE"
)
mod:AddBoolOption(L.CaveinYellOpt)
mod:AddBoolOption(L.CaveinYellOpt, false)
local CaveInSpam = 0
local warnTrust = mod:NewSpellAnnounce(20553)
@@ -35,14 +35,11 @@ function mod:SPELL_AURA_APPLIED(args)
elseif args:IsSpellID(350098, 975009) then
if args:IsPlayer() then
warnCaveIn:Show()
if self.Options.CaveinYellOpt then
if self.Options.CaveinYellOpt and DBM:AntiSpam(5, 1) then
SendChatMessage(L.CaveinYell, "YELL")
end
end
if GetTime() > CaveInSpam then
CaveInSpam = GetTime()
timerNextCaveIn:Start()
end
timerNextCaveIn:Start()
end
end
@@ -50,7 +47,7 @@ function mod:SPELL_PERIODIC_DAMAGE(args)
if args:IsSpellID(350098, 975009) then
if args:IsPlayer() then
warnCaveIn:Show()
if self.Options.CaveinYellOpt then
if self.Options.CaveinYellOpt and DBM:AntiSpam(5, 1) then
SendChatMessage(L.CaveinYell, "YELL")
end
end
+5 -5
View File
@@ -13,7 +13,7 @@ mod:RegisterEvents(
"CHAT_MSG_MONSTER_YELL"
)
local timerCombatStart = mod:NewTimer(78, "TimerCombatStart", 2457)
local timerCombatStart = mod:NewTimer(68, "TimerCombatStart", 2457)
local warnSunder = mod:NewAnnounce(L.RagFire, 2, 2105107)
local warnHand = mod:NewSpellAnnounce(2105119)
@@ -46,10 +46,10 @@ function mod:OnCombatStart(delay)
end
function mod:Emerged()
timerNextHand:Start(-delay)
warnSubmergeSoon:Schedule(85-delay)
timerSubmerge:Start(-delay)
timerEmerge:Schedule(90-delay)
timerNextHand:Start()
warnSubmergeSoon:Schedule(85)
timerSubmerge:Start()
timerEmerge:Schedule(90)
self:ScheduleMethod(150, "Emerged")
end
+1 -1
View File
@@ -60,7 +60,7 @@ end
function mod:SPELL_CAST_START(args)
if args:IsSpellID(2105085, 2105086) or args:IsSpellID(2105087, 2105088) then
timerNextExplo:Start()
warnCastExplo:Start()
warnCastExplo:Show()
timerExplo:Start()
end
end
+11 -10
View File
@@ -29,28 +29,29 @@ function mod:OnCombatStart(delay)
table.wipe(HandofRagTargets)
end
function mod:warnHandofRagTargets()
warnHandRagnaros:Show(table.concat(HandofRagTargets, "<, >"))
timerHandRagnaros:Start()
table.wipe(HandofRagTargets)
end
-- function mod:warnHandofRagTargets() -- too spammy
-- warnHandRagnaros:Show(table.concat(HandofRagTargets, "<, >"))
-- timerHandRagnaros:Start()
-- table.wipe(HandofRagTargets)
-- end
function mod:SPELL_AURA_APPLIED(args)
-- if args:IsSpellID(19779) then
-- warnInspire:Show(args.destName)
-- timerInspire:Start(args.destName)
-- else
if args:IsSpellID(19780) and args:IsDestTypePlayer() then
self:UnscheduleMethod("warnHandofRagTargets")
HandofRagTargets[#HandofRagTargets + 1] = args.destName
self:ScheduleMethod(0.3, "warnHandofRagTargets")
-- if args:IsSpellID(19780) and args:IsDestTypePlayer() then
-- self:UnscheduleMethod("warnHandofRagTargets")
-- HandofRagTargets[#HandofRagTargets + 1] = args.destName
-- self:ScheduleMethod(0.3, "warnHandofRagTargets")
-- elseif args:IsSpellID(19776) then
-- warnShadowPain:Show(args.destName)
-- timerShadowPain:Start(args.destName)
-- elseif args:IsSpellID(20294) then
-- warnImmolate:Show(args.destName)
-- timerImmolate:Start(args.destName)
end
-- end
end
-- function mod:SPELL_AURA_REMOVED(args)
+3 -3
View File
@@ -121,7 +121,7 @@ function mod:SPELL_AURA_APPLIED(args)
elseif args:IsSpellID(30168) then
warnInterrupt:Show()
elseif args:IsSpellID(85405) then
if args.destName == UnitName("player") then
if args:IsPlayer() then
-- SendChatMessage("Fel Shock on "..UnitName("PLAYER")..", STACK ON ME!", "YELL")
specWarnYouFelShock:Show()
end
@@ -129,7 +129,7 @@ function mod:SPELL_AURA_APPLIED(args)
elseif args:IsSpellID(30619) then
warnMortalCleave:Show(args.spellName, args.destName, args.amount or 1)
elseif args:IsSpellID(351085) then
if args.destName == UnitName("player") then
if args:IsPlayer() then
specWarnConflag:Show()
end
end
@@ -139,7 +139,7 @@ function mod:SPELL_AURA_APPLIED_DOSE(args)
if args:IsSpellID(30619) and args.amount >= 4 then
warnMortalCleave:Show(args.spellName, args.destName, args.amount or 1)
elseif args:IsSpellID(351085) then
if args.destName == UnitName("player") then
if args:IsPlayer() then
specWarnConflag:Show()
end
end
+4 -4
View File
@@ -92,10 +92,10 @@ end
function mod:SPELL_AURA_REFRESH(args)
if args:IsSpellID(2123102) then
timerSadism:Stop()
timerBloodBath:Start()
warnBloodBathSoon:Cancel()
warnBloodBathSoon:Schedule(40)
timerSadism:Stop()
timerBloodBath:Start()
warnBloodBathSoon:Cancel()
warnBloodBathSoon:Schedule(40)
end
end
+4 -6
View File
@@ -63,13 +63,12 @@ function mod:SPELL_AURA_APPLIED(args)
elseif args:IsSpellID(2123206, 2123207, 2123208, 2123209) and DBM:AntiSpam() then
warnWebSprayNow:Show()
timerWebStunSoon:Start()
timerWebSpray:Start()
elseif args:IsSpellID(2123211,2123212,2123216,2123217) and (GetTime() - webSpam) > 5 then -- Web Wrap
webSpam = GetTime()
warnWebWrap:Show(args.destName)
timerWebWrap:Start()
if args.destName == UnitName("player") then
if args:IsPlayer() then
SendChatMessage(L.YellWebWrap, "YELL")
end
elseif args:IsSpellID(2123210) then
@@ -86,12 +85,11 @@ function mod:SPELL_AURA_APPLIED_DOSE(args)
necroticSpam = GetTime()
warnNecrotic:Show(args.spellName, args.destName, args.amount or 1)
end
end
if args:IsSpellID(2123202) then
elseif args:IsSpellID(2123202) then
if args:IsPlayer() and args.amount >= 1 then
specWarnDigestive:Show(args.amount)
specWarnDigestive:Show(args.amount)
elseif args:IsPlayer() == false and args.amount >= 4 and args.amount <=10 then
warnDigestive:Show(args.spellName, args.destName, args.amount or 1)
warnDigestive:Show(args.spellName, args.destName, args.amount or 1)
end
end
end
+7 -11
View File
@@ -48,10 +48,9 @@ function mod:SPELL_AURA_APPLIED_DOSE(args)
if args:IsPlayer() then
SpecWarnVicStacks:Show(args.amount)
else
warnViciousStacks:Show(args.spellName, args.destName, args.amount or 1)
warnViciousStacks:Show(args.spellName, args.destName, args.amount or 1)
end
end
if args:IsSpellID(2122904) then
elseif args:IsSpellID(2122904) then
if args.amount >=1 then
specWarnAngry:Show(args.spellName, args.destName, args.amount or 1)
end
@@ -63,16 +62,13 @@ function mod:SPELL_AURA_APPLIED(args)
if args:IsPlayer() then
SpecWarnVicStacks:Show(args.amount or 1)
else
warnViciousStacks:Show(args.spellName, args.destName, args.amount or 1)
warnViciousStacks:Show(args.spellName, args.destName, args.amount or 1)
end
end
if args:IsSpellID(2122904) then
elseif args:IsSpellID(2122904) then
specWarnAngry:Show(args.spellName, args.destName, args.amount or 1)
end
if args:IsSpellID(2122903) then
elseif args:IsSpellID(2122903) then
warnHungry:Show()
end
if args:IsSpellID(2122923) and (args.destName == "Gluth") then
elseif args:IsSpellID(2122923) and (args.destName == "Gluth") then
timerFeedFrenzy:Start()
end
end
@@ -80,7 +76,7 @@ end
function mod:UNIT_DIED(args)
local cid = self:GetCIDFromGUID(args.destGUID)
if cid == 15932 or cid == 26628 then
timerDecimate:Stop()
timerDecimate:Stop()
end
end
+5 -4
View File
@@ -72,7 +72,7 @@ function mod:SPELL_AURA_APPLIED(args)
if args:IsPlayer() then
specWarnInjection:Show()
else
warnInjection:Show(args.destName)
warnInjection:Show(args.destName)
end
timerInjection:Start(args.destName)
timerNextInjection:Start()
@@ -123,6 +123,7 @@ function mod:StitchedGiant()
timerStitchedGiant:Start()
self:ScheduleMethod(60,"StitchedGiant")
end
--if args:IsSpellID(28240) then
-- timer = 15
-- timerCloud:Start(timer)
@@ -132,9 +133,9 @@ end
function mod:UNIT_DIED(args)
local cid = self:GetCIDFromGUID(args.destGUID)
if cid == 15931 or cid == 26627 then
timerInjection:Stop()
timerSpray:Stop()
timerNextInjection:Stop()
timerInjection:Stop()
timerSpray:Stop()
timerNextInjection:Stop()
end
end
+10 -13
View File
@@ -49,23 +49,21 @@ function mod:SPELL_AURA_APPLIED(args)
if args:IsPlayer() then
specWarnGastric:Show();
else
warnGastric:Show(args.destName)
warnGastric:Show(args.destName)
end
timerGastricSelf:Start(args.destName)
self:SetIcon(args.destName, 8, 15)
timerGastric:Start()
end
if args:IsSpellID(2122516) then
elseif args:IsSpellID(2122516) then
if args:IsPlayer() then
specWarnNotFavToy:Show(args.destName)
timerNotFavToy:Start(args.destName)
specWarnNotFavToy:Show(args.destName)
timerNotFavToy:Start(args.destName)
end
MT = args.destName
end
if args:IsSpellID(2122515) then
elseif args:IsSpellID(2122515) then
if args:IsPlayer() then
specWarnFavToy:Show(args.destName)
timerFavToy:Start(args.destName)
specWarnFavToy:Show(args.destName)
timerFavToy:Start(args.destName)
end
end
end
@@ -73,10 +71,9 @@ end
function mod:SPELL_DAMAGE(args)
if args:IsSpellID(28308, 59192) and self.Options.WarningHateful and DBM:GetRaidRank() >= 1 then
announceStrike(args.destName, args.amount or 0)
end
if args:IsSpellID(2122505) and (args.destName == MT) then
timerNotFavToy:Stop()
timerNotFavToy:Start(MT)
elseif args:IsSpellID(2122505) and (args.destName == MT) then
timerNotFavToy:Stop()
timerNotFavToy:Start(MT)
end
end
+13 -15
View File
@@ -102,17 +102,16 @@ function mod:SPELL_AURA_APPLIED(args)
if args:IsPlayer() then
SendChatMessage("Magnetic Reversal on "..UnitName("PLAYER").."!", "Say")
end
warnMagnetic:Show(args.destName)
timerMagnetic:Start()
mod:SetIcon(args.destName, i, 15)
i = i-1
end
if args:IsSpellID(2124222) then
warnMagnetic:Show(args.destName)
timerMagnetic:Start()
mod:SetIcon(args.destName, i, 15)
i = i-1
elseif args:IsSpellID(2124222) then
local tanktarget = args.destName
if args:IsPlayer() then
specWarnTankOvercharged:Show()
else
warnTankOvercharged:Show(tanktarget)
warnTankOvercharged:Show(tanktarget)
end
mod:SetIcon(tanktarget, 8, 15)
end
@@ -139,17 +138,16 @@ function mod:UNIT_AURA(unit)
if currentCharge == 1 or currentCharge == 0 then
specWarnNegative:Show()
end
currentCharge = 2
negativePolarity:Show()
positivePolarity:Hide()
end
if UnitDebuff("Player","Polarity: Positive") then
currentCharge = 2
negativePolarity:Show()
positivePolarity:Hide()
elseif UnitDebuff("Player","Polarity: Positive") then
if currentCharge == 2 or currentCharge == 0 then
specWarnPositive:Show()
end
currentCharge = 1
negativePolarity:Hide()
positivePolarity:Show()
currentCharge = 1
negativePolarity:Hide()
positivePolarity:Show()
end
end
+70 -69
View File
@@ -156,8 +156,8 @@ function mod:PhaseTwo()
end
function mod:PhaseThreeTransition()
timerDnD:Start(10)
timerPhase3:Start()
timerDnD:Start(10)
timerPhase3:Start()
end
function mod:PhaseThree()
@@ -184,8 +184,8 @@ end
]]--
function mod:FrostPhase()
self:UnscheduleMethod(44, "DnD")
timerDnD:Cancel(44)
self:UnscheduleMethod(0, "DnD")
timerDnD:Cancel()
timerFrostPhase:Start()
self:ScheduleMethod(45, "FrostPhaseFinished")
end
@@ -196,9 +196,9 @@ function mod:FrostPhaseFinished()
end
function mod:DnD()
timerDnD:Start()
warnDnD:Show()
self:ScheduleMethod(20,"DnD")
timerDnD:Start()
warnDnD:Show()
self:ScheduleMethod(20,"DnD")
end
function mod:SPELL_CAST_START(args)
@@ -210,7 +210,7 @@ function mod:SPELL_AURA_APPLIED(args)
warnChains:Show(args.destName)
-----SHADOW FISSURE-----
elseif args:IsSpellID(2124579) and DBM:AntiSpam(5,5) then
if args.destName == UnitName("player") then
if args:IsPlayer() then
specWarnFissure:Show()
else
warnFissure:Show()
@@ -218,7 +218,7 @@ function mod:SPELL_AURA_APPLIED(args)
timerFissure:Start()
-----DEATH AND DECAY-----
elseif args:IsSpellID(2124575, 2124576, 2124577, 2124578) then
if args.destName == UnitName("player") then
if args:IsPlayer() then
specWarnDnD:Show()
end
elseif args:IsSpellID(2124512) then
@@ -236,11 +236,11 @@ function mod:SPELL_AURA_APPLIED(args)
specWarnManaBomb:Show()
else
warnManaBomb:Show(args.destName)
timerNextManaBomb:Start()
timerManaBomb:Start()
self:SetIcon(args.destName, mana)
mana = mana - 1
end
self:SetIcon(args.destName, mana)
mana = mana - 1
timerNextManaBomb:Start()
timerManaBomb:Start()
end
end
@@ -265,7 +265,7 @@ function mod:UNIT_HEALTH(uId)
frostPhase = 2
self:ScheduleMethod(43, "FrostPhase")
timerKTteleport:Start(43)
elseif self:GetUnitCreatureId(uId) == 15990 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.40 and frostPhase == 2 then
elseif self:GetUnitCreatureId(uId) == 15990 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.45 and frostPhase == 2 then
frostPhase = 3
warnAddsSoon:Show()
end
@@ -294,64 +294,65 @@ function mod:UNIT_DIED(args)
elseif not (mod:IsDifficulty("heroic10") or mod:IsDifficulty("heroic25")) and shadeCounter == 16 then
self:ScheduleMethod(0, "phaseThreeTransition")
end
end
if cid == 26614 then --Anub
timerLocust:Stop()
timerImpale:Stop()
elseif cid == 26615 then -- Faerlina
timerSadism:Stop()
elseif cid == 26617 then -- Noth
timerCurse:Stop()
elseif cid == 26619 then -- Loatheb
timerNextDeathbloom:Stop()
timerDeathblooming:Stop()
timerNecrotic:Stop()
elseif cid == 26620 then -- Raz
timerenrage:Stop()
timerKnife:Stop()
elseif (cid >= 26622 and cid <= 2665) then -- Horsemen
timerMark:Stop()
timerNextHolyWrath:Stop()
timerNextDeepChill:Stop()
timerNextMeteor:Stop()
timerNextFamine:Stop()
elseif cid == 26626 then -- Patch
timerGastric:Stop()
timerGastricSelf:Stop()
elseif cid == 26627 then -- Grobb
timerNextInjection:Stop()
timerSpray:Stop()
elseif cid == 26628 then -- Gluth
timerDecimate:Stop()
elseif cid == 26629 then -- Thadd
timerNextShift:Stop()
self:UnscheduleMethod("ShiftingPolarity")
elseif cid == 26630 then -- Sapph
timerNextBellowing:Stop()
if cid == 26614 then --Anub
timerLocust:Stop()
timerImpale:Stop()
elseif cid == 26615 then -- Faerlina
timerSadism:Stop()
elseif cid == 26617 then -- Noth
timerCurse:Stop()
elseif cid == 26619 then -- Loatheb
timerNextDeathbloom:Stop()
timerDeathblooming:Stop()
timerNecrotic:Stop()
elseif cid == 26620 then -- Raz
timerenrage:Stop()
timerKnife:Stop()
elseif (cid >= 26622 and cid <= 26625) then -- Horsemen
timerMark:Stop()
timerNextHolyWrath:Stop()
timerNextDeepChill:Stop()
timerNextMeteor:Stop()
timerNextFamine:Stop()
elseif cid == 26626 then -- Patch
timerGastric:Stop()
timerGastricSelf:Stop()
elseif cid == 26627 then -- Grobb
timerNextInjection:Stop()
timerSpray:Stop()
elseif cid == 26628 then -- Gluth
timerDecimate:Stop()
elseif cid == 26629 then -- Thadd
timerNextShift:Stop()
self:UnscheduleMethod("ShiftingPolarity")
elseif cid == 26630 then -- Sapph
timerNextBellowing:Stop()
end
end
end
function mod:OnCombatEnd()
self:UnscheduleMethod("DnD")
timerLocust:Stop()
timerImpale:Stop()
timerSadism:Stop()
timerCurse:Stop()
timerNextDeathbloom:Stop()
timerDeathblooming:Stop()
timerNecrotic:Stop()
timerenrage:Stop()
timerKnife:Stop()
timerMark:Stop()
timerNextHolyWrath:Stop()
timerNextDeepChill:Stop()
timerNextMeteor:Stop()
timerNextFamine:Stop()
timerGastric:Stop()
timerGastricSelf:Stop()
timerNextInjection:Stop()
timerSpray:Stop()
timerDecimate:Stop()
timerNextShift:Stop()
timerNextBellowing:Stop()
timerLocust:Stop()
timerImpale:Stop()
timerSadism:Stop()
timerCurse:Stop()
timerNextDeathbloom:Stop()
timerDeathblooming:Stop()
timerNecrotic:Stop()
timerenrage:Stop()
timerKnife:Stop()
timerMark:Stop()
timerNextHolyWrath:Stop()
timerNextDeepChill:Stop()
timerNextMeteor:Stop()
timerNextFamine:Stop()
timerGastric:Stop()
timerGastricSelf:Stop()
timerNextInjection:Stop()
timerSpray:Stop()
timerDecimate:Stop()
timerNextShift:Stop()
timerNextBellowing:Stop()
end
+9 -10
View File
@@ -88,17 +88,17 @@ end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(2124344) then
if args:IsPlayer() then
specWarnTombTarget:Show()
SendChatMessage("Ice Tomb incoming on "..UnitName("PLAYER").."!", "Say")
specWarnTombTarget:Show()
SendChatMessage("Ice Tomb incoming on "..UnitName("PLAYER").."!", "Say")
else
warnTombTarget:Show(args.destName)
warnTombTarget:Show(args.destName)
end
elseif args:IsSpellID(2124328) and args.IsPlayer() then
specWarningBlizzard:Show()
elseif args:IsSpellID(2124338) then
timerNextCurse:Start()
warnCurse:Show(args.destName)
elseif args:IsSpellID(2124332) then
elseif args:IsSpellID(2124332) and DBM:AntiSpam(2,7) then
timerTerrified:Start()
end
end
@@ -106,12 +106,11 @@ end
function mod:SPELL_CAST_START(args)
if args:IsSpellID(2124332) then
specWarnBellowing:Show()
timerBellowing:Start()
timerNextBellowing:Start()
timerTerrified:Schedule(4.5)
end
if args:IsSpellID(2124322) then
specWarnBellowing:Show()
timerBellowing:Start()
timerNextBellowing:Start()
timerTerrified:Schedule(4.5)
elseif args:IsSpellID(2124322) then
timerNextBreath:Start()
timerBreath:Start()
end
+3 -3
View File
@@ -76,9 +76,9 @@ end
function mod:UNIT_HEALTH(uId)
if self:GetUnitCreatureId(uId) == 16060 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.11 and phase ==1 then
self:UnscheduleMethod("HarvestSoul")
timerHarvest:Stop()
phase = 2
self:UnscheduleMethod("HarvestSoul")
timerHarvest:Stop()
phase = 2
end
end
+16 -22
View File
@@ -48,6 +48,7 @@ mod:SetBossHealthInfo(
16063, L.Zeliek
)
local markCounter = 0
local markSpam = 0
-----BOSS FUNCTIONS-----
function mod:OnCombatStart(delay)
@@ -101,18 +102,17 @@ end
function mod:Famine()
local famineTarget = mod:GetBossTarget(16065) or mod:GetBossTarget(26625) --Finds target of boss (if exsists) otherwise, find target of shade (if exists)
if famineTarget == UnitName("player") then --if target == player
specWarnFamineYou:Show()
SendChatMessage("Field of Famine on "..UnitName("PLAYER").."!", "Say")
else
warnFamine:Show(famineTarget)
end
timerFamine:Start(famineTarget) --we want timers to start even if player is the target, you had the timers only in the "if not player".
timerNextFamine:Start()
self:SetIcon(famineTarget, 3, 4)
if famineTarget == UnitName("player") then --if target == player
specWarnFamineYou:Show()
SendChatMessage("Field of Famine on "..UnitName("PLAYER").."!", "Say")
else
warnFamine:Show(famineTarget)
end
timerFamine:Start(famineTarget) --we want timers to start even if player is the target, you had the timers only in the "if not player".
timerNextFamine:Start()
self:SetIcon(famineTarget, 3, 4)
end
local markSpam = 0
function mod:SPELL_CAST_SUCCESS(args)
if args:IsSpellID(2124103,2124107,2124111,2124115) and (GetTime() - markSpam) > 5 then
markSpam = GetTime()
@@ -123,11 +123,9 @@ end
function mod:SPELL_CAST_START(args)
if args:IsSpellID(2124141) then
self:ScheduleMethod(0.25, "HolyWrath")
end
if args:IsSpellID(2124167) then
elseif args:IsSpellID(2124167) then
self:ScheduleMethod(0.25, "DeepChill")
end
if args:IsSpellID(2124166) then
elseif args:IsSpellID(2124166) then
self:ScheduleMethod(0.25, "Famine")
end
end
@@ -155,17 +153,13 @@ function mod:UNIT_DIED(args)
local cid = self:GetCIDFromGUID(args.destGUID)
if cid == 16063 or 26624 then
timerNextHolyWrath:Stop()
end
if cid == 16064 or 26623 then
elseif cid == 16064 or 26623 then
timerNextMeteor:Stop()
end
if cid == 16065 or 26625 then
elseif cid == 16065 or 26625 then
timerNextFamine:Stop()
end
if cid == 30549 or 26622 then
elseif cid == 30549 or 26622 then
timerNextDeepChill:Stop()
end
if cid >= 26622 and cid <= 26625 then
elseif cid >= 26622 and cid <= 26625 then
timerMark:Stop()
end
end
+8 -11
View File
@@ -98,8 +98,7 @@ function mod:SPELL_AURA_APPLIED(args)
SendChatMessage("Jagged Cold Steel Knife on "..UnitName("PLAYER").."!", "Say")
end
timerKnife:Start()
end
if args:IsSpellID(2123914) then
elseif args:IsSpellID(2123914) then
self:ScheduleMethod(0,"PhaseTwo")
end
end
@@ -107,18 +106,17 @@ 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)
specwarnDeathStrike:Show(args.amount)
end
end
end
function mod:SPELL_CAST_SUCCESS(args)
if args:IsSpellID(2123905) then
timerPlagueStrike:Start()
end
if args:IsSpellID(2123904) then
timerFrostStrike:Start()
end
if args:IsSpellID(2123905) then
timerPlagueStrike:Start()
elseif args:IsSpellID(2123904) then
timerFrostStrike:Start()
end
end
function mod:SPELL_DAMAGE(args)
@@ -138,8 +136,7 @@ end
function mod:SPELL_CAST_START(args)
if args:IsSpellID(2123928,2123929,2123930,2123931) then
self:ScheduleMethod(0,"BreakUnholyBlade")
end
if args:IsSpellID(2123919) then
elseif args:IsSpellID(2123919) then
self:ScheduleMethod(0, "DeathStrike")
end
end
+10 -9
View File
@@ -85,16 +85,16 @@ function mod:PositionTwo()
if dance == 1 then
timerPositionTwo:Start(4)
if forward == 1 then
self:ScheduleMethod(4, "PositionThree")
self:ScheduleMethod(4, "PositionThree")
else
self:ScheduleMethod(4, "PositionOne")
self:ScheduleMethod(4, "PositionOne")
end
else
timerPositionTwo:Start(10)
if forward == 1 then
self:ScheduleMethod(10, "PositionThree")
self:ScheduleMethod(10, "PositionThree")
else
self:ScheduleMethod(10, "PositionOne")
self:ScheduleMethod(10, "PositionOne")
end
end
end
@@ -103,19 +103,20 @@ function mod:PositionThree()
if dance == 1 then
timerPositionThree:Start(4)
if forward == 1 then
self:ScheduleMethod(4, "PositionFour")
self:ScheduleMethod(4, "PositionFour")
else
self:ScheduleMethod(4, "PositionTwo")
self:ScheduleMethod(4, "PositionTwo")
end
else
timerPositionThree:Start(10)
if forward == 1 then
self:ScheduleMethod(10, "PositionFour")
else
else
self:ScheduleMethod(10, "PositionTwo")
end
end
end
end
function mod:PositionFour()
forward = 0
if dance == 1 then
@@ -175,7 +176,7 @@ end
function mod:UNIT_DIED(args)
local cid = self:GetCIDFromGUID(args.destGUID)
if cid == 15936 or cid == 26618 then
self:ScheduleMethod(0,"KillPositions")
self:ScheduleMethod(0,"KillPositions")
end
end
+9 -10
View File
@@ -75,25 +75,25 @@ function mod:SPELL_AURA_APPLIED(args)
if args:IsPlayer() then
specWarnCloudOfBlight:Show();
end
end
if args:IsSpellID(2122623,2122624,2122625,2122626) and (GetTime() - doomSpam) > 5 then
elseif args:IsSpellID(2122623,2122624,2122625,2122626) and (GetTime() - doomSpam) > 5 then
doomSpam = GetTime() -- Inevitable Doom
doomCounter = doomCounter + 1
local timer = 30
if doomCounter >= 7 then
if doomCounter % 2 == 0 then timer = 17
else timer = 12 end
if doomCounter % 2 == 0 then
timer = 17
else
timer = 12
end
end
warnDoomNow:Show(doomCounter)
timerNextDoom:Start(timer, doomCounter + 1)
timerDoomDamage:Start()
end
if args:IsSpellID(2122601) and DBM:AntiSpam(5,2) then
elseif args:IsSpellID(2122601) and DBM:AntiSpam(5,2) then
timerNecrotic:Start()
warnHealNow:Schedule(16)
timerCastHeal:Schedule(16)
end
if args:IsSpellID(2122627) and DBM:AntiSpam(5,4) then
elseif args:IsSpellID(2122627) and DBM:AntiSpam(5,4) then
specWarnDeathblooming:Show()
timerDeathblooming:Start()
timerNextDeathbloom:Start()
@@ -105,8 +105,7 @@ function mod:SPELL_AURA_APPLIED_DOSE(args)
if args:IsPlayer() then
specWarnCloudOfBlight:Show();
end
end
if args:IsSpellID(2122631) then
elseif args:IsSpellID(2122631) then
if args:IsPlayer() and (args.amount == 5 or args.amount == 10 or args.amount == 15 or args.amount == 20) and (GetTime() - bloomSpam) > 5 then
bloomSpam = GetTime()
warnDeathbloomStack:Show(args.spellName, args.destName, args.amount or 1)
+6 -5
View File
@@ -96,27 +96,28 @@ function mod:UNIT_HEALTH(uId)
if self:GetUnitCreatureId(uId) == 15954 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.80 and prePhase ==0 then
warnIntermissionSoon:Show()
prePhase = 1
end
-- end
--if self:GetUnitCreatureId(uId) == 15954 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.753 and phase ==0 then
--self:ScheduleMethod(0,"Intermission")
--phase = 1
--end
if self:GetUnitCreatureId(uId) == 15954 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.55 and prePhase ==1 then
elseif self:GetUnitCreatureId(uId) == 15954 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.55 and prePhase ==1 then
warnIntermissionSoon:Show()
prePhase = 2
end
-- end
--if self:GetUnitCreatureId(uId) == 15954 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.503 and phase ==1 then
-- self:ScheduleMethod(0,"Intermission")
-- phase = 2
--end
if self:GetUnitCreatureId(uId) == 15954 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.30 and prePhase ==2 then
elseif self:GetUnitCreatureId(uId) == 15954 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.30 and prePhase ==2 then
warnIntermissionSoon:Show()
prePhase = 3
end
-- end
--if self:GetUnitCreatureId(uId) == 15954 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.253 and phase ==2 then
-- self:ScheduleMethod(0,"Intermission")
-- phase = 3
--end
end
end
function mod:CHAT_MSG_RAID_BOSS_EMOTE(msg)
+50 -23
View File
@@ -10,6 +10,7 @@ mod:RegisterEvents(
"CHAT_MSG_MONSTER_YELL",
"CHAT_MSG_RAID_BOSS_EMOTE",
"SPELL_CAST_START",
"UNIT_DIED",
"UNIT_HEALTH",
"PLAYER_ALIVE"
)
@@ -18,24 +19,29 @@ local warnPhase2 = mod:NewPhaseAnnounce(2)
local warnPhase3 = mod:NewPhaseAnnounce(3)
local warnPhase2Soon = mod:NewAnnounce("Phase 2 Soon", 1)
local warnPhase3Soon = mod:NewAnnounce("Phase 3 Soon", 1)
local warnFireball = mod:NewTargetAnnounce(2105160, 3)
local warnBlastNova = mod:NewCastAnnounce(2105147, 2)
local warnFireball = mod:NewTargetAnnounce(2108300, 3)
local warnBlastNova = mod:NewCastAnnounce(2108401, 2)
local WarnWhelpsSoon = mod:NewAnnounce("Onyxian Whelps soon", 1)
local WarnSpearTarget = mod:NewTimer(30, "%s", 2108415)
local specWarnDeepBreath = mod:NewSpecialWarningMove(18609, 2)
local specWarnFireballYou = mod:NewSpecialWarningYou(2105160, 2)
local specWarnFireballYou = mod:NewSpecialWarningYou(2108300, 2)
local timerFlameBreath = mod:NewCastTimer(2, 2108321)
local timerBreath = mod:NewCastTimer(8, 17086)
local timerBlastNova = mod:NewCastTimer(4, 2105147)
local timerBellowingRoar = mod:NewCastTimer(4, 18431)
local timerFireball = mod:NewCastTimer(4, 2105160)
local timerBlastNova = mod:NewCastTimer(4, 2108401)
local timerBellowingRoar = mod:NewCastTimer(5, 2108326)
local timerFireball = mod:NewTargetTimer(4, 2108300)
local timerIntBlastNova = mod:NewCDTimer(40, 2108401)-- Internal CD for a Guard to cast Blast Nova twice
local timerWhelps = mod:NewTimer(95, "Onyxian Whelps", "Interface\\Icons\\INV_Misc_Head_Dragon_Red")
local timerNextFlameBreath = mod:NewNextTimer(20, 2108321)
local timerNextDeepBreath = mod:NewCDTimer(75, 17086)--Range from 75-80 seconds in between based on where she moves to.
local timerNextBellowingRoar= mod:NewCDTimer(45, 18431)
local timerNextBlastNova = mod:NewCDTimer(32, 2105147)-- +/- a few seconds as it varies depending on Guard movement.
local timerIntBlastNova = mod:NewCDTimer(40, 2105147)-- Internal CD for a Guard to cast Blast Nova twice
-- local timerIntBlastNova2 = mod:NewCDTimer(40, 2105147)-- second one for secondary add
local timerNextBellowingRoar= mod:NewCDTimer(45, 2108326)
local timerNextBlastNova = mod:NewCDTimer(40, 2108401)
local timerNextSecondNova = mod:NewCDTimer(30, 2108401)
local timerNextTailSwipe = mod:NewNextTimer(22, 2108312)
-- local timerIntBlastNova2 = mod:NewCDTimer(40, 2108401)-- second one for secondary add
local lastBlastNova = 0
@@ -43,6 +49,7 @@ local prewarnP2
local warnP2
local prewarnP3
local warnP3
local lastTargetGUID
mod:AddBoolOption(L.FireballMark)
@@ -74,6 +81,9 @@ function mod:OnCombatStart(delay)
warnP2 = 0
prewarnP3 = 0
warnP3 = 0
lastTargetGUID = 0
timerFlameBreath:Start()
timerNextTailSwipe:Start()
end
function mod:CHAT_MSG_MONSTER_YELL(msg)
@@ -97,6 +107,10 @@ function mod:CHAT_MSG_RAID_BOSS_EMOTE(msg)
timerBreath:Start()
timerNextDeepBreath:Stop()
timerNextDeepBreath:Start()
elseif msg:find(L.EmoteSpear) then
name = string.match(msg, "is picked up by (.*)")
--"A scream releases as the spear is picked up by XXX!"
WarnSpearTarget:Show(name);
end
end
@@ -106,6 +120,7 @@ function mod:MassiveFireball()
local myName = UnitName("player")
if target == myName then
specWarnFireballYou:Show()
SendChatMessage("Fireball on "..UnitName("player"), "YELL")
else
warnFireball:Show(target)
end
@@ -116,29 +131,31 @@ function mod:MassiveFireball()
end
function mod:SPELL_CAST_START(args)
if args:IsSpellID(2105158, 2105159, 2105160, 2105161) then
if args:IsSpellID(2108300, 2108301, 2108302, 2108303) then
self:ScheduleMethod(0.4, "MassiveFireball")
end
if args:IsSpellID(2105145, 2105146, 2105147, 2105148) then
warnBlastNova:Show()
timerBlastNova:Start()
timerNextBlastNova:Start()
if GetTime() - lastBlastNova > 20 then --Trying it to only trigger from new Add Blast Nova.
timerIntBlastNova:Start()
elseif args:IsSpellID(2108401, 2108402, 2108403, 2108404) then
if args.sourceGUID ~= lastTargetGUID then
warnBlastNova:Show()
timerBlastNova:Start()
timerNextSecondNova:Start()
timerNextBlastNova:Start()
lastTargetGUID = args.sourceGUIDs
end
lastBlastNova = GetTime()
end
if args:IsSpellID(18431) then
-- if GetTime() - lastBlastNova > 20 then --Trying it to only trigger from new Add Blast Nova.
-- timerIntBlastNova:Start()
-- end
-- lastBlastNova = GetTime()
elseif args:IsSpellID(2108326) then --18431
timerBellowingRoar:Start()
timerNextBellowingRoar:Stop()
timerNextBellowingRoar:Start()
end
--if args:IsSpellID(17086, 18351, 18564, 18576) or args:IsSpellID(18584, 18596, 18609, 18617) then -- 1 ID for each direction
-- specWarnDeepBreath:Show() -- potentially deprecated because all new spell IDs
-- timerBreath:Start()
-- timerNextDeepBreath:Stop()
-- timerNextDeepBreath:Start()
--end
end
end
function mod:UNIT_HEALTH(uId)
@@ -156,3 +173,13 @@ function mod:UNIT_HEALTH(uId)
self:ScheduleMethod(0, "alertP3")
end
end
function mod:UNIT_DIED(args)
if args.destGUID == lastTargetGUID then
timerNextSecondNova:Cancel()
lastTargetGUID = 0
end
end
--429201 item of spear
+2 -1
View File
@@ -31,6 +31,7 @@ L:SetOptionLocalization{
L:SetMiscLocalization{
YellP2 = "This meaningless exertion bores me. I'll incinerate you all from above!",
YellP3 = "It seems you'll need another lesson, mortals!",
EmoteDeepBreath = "%s takes in a deep breath..."
EmoteDeepBreath = "%s takes in a deep breath...",
EmoteSpear = "A scream releases as the spear is picked up by"
}
+2 -2
View File
@@ -89,14 +89,14 @@ end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(21063) then
if args.destName == UnitName("player") then
if args:IsPlayer() then
WarnTwistedYou:Show()
end
WarnTwisted:Show(args.destName)
TimerTwisted:Start(args.destName)
elseif args:IsSpellID(32960) then
-- local target = tostring(args.destName)
if args.destName == UnitName("player") then
if args:IsPlayer() then
WarnMarkYou:Show()
else
if self.Options.KazzakWhisper and DBM:GetRaidRank() >= 1 then
+2 -2
View File
@@ -18,8 +18,8 @@ local warnBite = mod:NewAnnounce(L.ShirrakBite, 2, 85178)
function mod:SPELL_CAST_SUCCESS(args)
if args.spellId == 32265 then
timerAcid:Start()
wardAcid:Show(args.destName)
timerNextAttract:Start()
warnAttract:Show(args.destName)
end
end
@@ -65,9 +65,7 @@ function mod:CHAT_MSG_MONSTER_YELL(msg)
end
end
function mod:OnSync(msg, arg)
if msg == "Wipe" then
warnWavePortalSoon:Unschedule()
timerNextPortal:Cancel()
end
function mod:OnCombatEnd()
warnWavePortalSoon:Cancel()
timerNextPortal:Cancel()
end
+1 -1
View File
@@ -45,7 +45,7 @@ function mod:SPELL_AURA_APPLIED(args)
-- DBM:AddMsg("Fishing applied - Pull inc")
-- else
if args:IsSpellID(2137622) then
if args.destName == UnitName("player") then
if args:IsPlayer() then
warnFocusedYou:Show()
else
warnFocusedFire:Show(args.destName)
+10
View File
@@ -62,6 +62,7 @@ local timerSiren = mod:NewNextTimer(17, 2138025)
local timerPhoenix = mod:NewNextTimer(16, 2138015)
local warnParasite = mod:NewTargetAnnounce(2138027, 3)
local yellParasite = mod:NewFadesYell(2138027)
local warnSong = mod:NewTargetAnnounce(2138026, 3)
local specWarnSiren = mod:NewSpecialWarning("SpecWarnSiren")
@@ -74,6 +75,7 @@ mod:AddBoolOption(L.AimedIcon)
mod:AddBoolOption(L.ChargeYellOpt)
mod:AddBoolOption(L.AimedYellOpt)
mod:AddBoolOption(L.LootYellOpt)
mod:AddBoolOption(L.ParasiteYellOpt)
mod:AddBoolOption("AutoChangeLootToFFA", false)
mod.vb.phase = 1
@@ -208,6 +210,14 @@ function mod:SPELL_AURA_APPLIED(args)
elseif args:IsSpellID(2138027, 2138028, 2138029, 2138030) then
warnParasite:Show(args.destName)
timerParasite:Start()
if args:IsPlayer() and self.Options.ParasiteYellOpt then
yellParasite:Countdown(8,5)
end
elseif args:IsSpellID(2138031, 2138032, 2138033, 2138034) then
warnParasite:Show(args.destName)
if args:IsPlayer() and self.Options.ParasiteYellOpt then
yellParasite:Countdown(16,5)
end
elseif args.spellId == 2138026 then
warnSong:Show(args.destName)
specWarnSiren:Show()
+1
View File
@@ -230,6 +230,7 @@ L:SetOptionLocalization{
AimedYellOpt = "Yell when you are affected by $spell:351310",
LootIcon = "Set icon on the target carrying Tainted Core",
LootYellOpt = "Yell when you are carrying Tainted Core",
ParasiteYellOpt = "Coundown yell when you are infected by $spell:2138027",
AutoChangeLootToFFA = "Switch loot mode to Free for All in Phase 2",
SpecWarnSiren = "Show special warning for when Coilfang Siren spawns",
Discharge = "Show timer for when Shield Generator will deal its damage",
+1 -1
View File
@@ -62,7 +62,7 @@ function mod:SPELL_CAST_SUCCESS(args)
elseif args:IsSpellID(340040) and args:GetSrcCreatureID(14965) then
warnConcoc:Show(args.destName)
TimerConcoc:Show(args.destName)
if args.destName == UnitName("player") then
if args:IsPlayer() then
SendChatMessage("Unstable Concoction on me!", "YELL")
end
end
+47 -6
View File
@@ -23,7 +23,7 @@ local warnPatch = mod:NewSpellAnnounce(43429, 3)
local specWarnBolt = mod:NewSpecialWarningSpell(2136100)
local specWarnHeal = mod:NewSpecialWarning("Interrupt Heal!")--#NewInterruptAnnounce(43548)
local specWarnBlindingLight = mod:NewSpecialWarning("Look Away!")
-- local specWarnBlindingLight = mod:NewSpecialWarning("Look Away!") -- It's a LOS mechanic
-- local specWarnHeal2 = mod:NewSpecialWarning("Interrupt Heal!")--mod:NewInterruptAnnounce(43451)
-- local specWarnHeal3 = mod:NewSpecialWarning("Interrupt Heal!")--mod:NewInterruptAnnounce(43431)
-- local specWarnHeal4 = mod:NewSpecialWarning("Dispel!")--mod:NewSpecialWarningDispel(43421)
@@ -37,7 +37,9 @@ local timerPatch = mod:NewCastTimer(20, 43429)
local timerNextDrain = mod:NewNextTimer(60, 2136100)
local warnDruidSoul = mod:NewSpecialWarning("Druid Soul Absorbed")
local timerNextTranquility = mod:NewNextTimer(5, 2136126)
local timerNextUrsol = mod:NewNextTimer(5, 2136123)
local timerNextSolar = mod:NewNextTimer(15, 2136125)
local timerNextTranquility = mod:NewNextTimer(25, 2136126)
local timerCastTranquility = mod:NewCastTimer(10, 2136126)
local warnHunterSoul = mod:NewSpecialWarning("Hunter Soul Absorbed")
@@ -55,6 +57,7 @@ local timerRuneOfPowerduration = mod:NewTimer(10, "Rune of Power duration", 2136
local timerNextBlizzard = mod:NewNextTimer(15, 2136137) --2136137, 2136138, 2136139, 2136140
local timerNextLivingBomb = mod:NewNextTimer(25, 2136141) --Dot: 2136141, 2136142, 2136143, 2136144, Explosion damage: 2136145, 2136146, 2136147, 2136148
local timerLivingBomb = mod:NewTargetTimer(12, 2136141) --2136141
local warnYouLivingBomb = mod:NewSpecialWarningYou(2136141) --2136141
local warnPaladinSoul = mod:NewSpecialWarning("Paladin Soul Absorbed")
local timerNextBlindingLight = mod:NewNextTimer(5, 2136155)
@@ -87,8 +90,8 @@ local timerNextCurseOfDoom = mod:NewNextTimer(5, 2136177) --2136177, 2136178, 2
local timerCurseOfDoom = mod:NewTargetTimer(15, 2136177)
local timerNextRainofFire = mod:NewNextTimer(15, 2136186) --2136186, 2136187, 2136188, 2136189
local timerNextHellfire = mod:NewNextTimer(25, 2136181) --2136181, 2136182, 2136183, 2136184, 2136185
local specWarnRainofFire = mod:NewSpecialWarningRun(2136182)
local specWarnHellfire = mod:NewSpecialWarningRun(2136186)
local specWarnRainofFire = mod:NewSpecialWarningRun(2136186)
local specWarnHellfire = mod:NewSpecialWarningRun(2136182)
local warnWarriorSoul = mod:NewSpecialWarning("Warrior Soul Absorbed")
local timerNextSpellReflect = mod:NewNextTimer(5, 2136190) --2136190
@@ -97,6 +100,22 @@ local timerNextColossusSmash = mod:NewNextTimer(25, 2136193) --2136193
local timerColossusSmash = mod:NewTargetTimer(6, 2136193) --2136193
local timerSpellReflect = mod:NewTargetTimer(6, 2136190) --2136190
local warnDeathKnightSoul = mod:NewSpecialWarning("Death Knight Soul Absorbed")
local timerNextArmy = mod:NewNextTimer(5, 2136284)
local timerNextDnD = mod:NewNextTimer(15, 2136297)
local timerNextAbsolute = mod:NewNextTimer(25, 2136292)
local timerCastAbsolute = mod:NewCastTimer(5, 2136292)
-- local timerColossusSmash = mod:NewTargetTimer(6, 2136193) --2136193
-- local timerSpellReflect = mod:NewTargetTimer(6, 2136190) --2136190
-- Mythic/Ascended mechanics
local timerNextBloodScythe = mod:NewNextTimer(15, 2136280)
local warnBloodScythe = mod:NewSpecialWarningStack(2136280)
local timerNextSiphon = mod:NewNextTimer(85, 2136260) -- 2136260, 2136261, 2136262, 2136263
local timerNextWill = mod:NewNextTimer(15, 2107116) -- 2107116, 2107117, 2107118, 2107119
local timerNextCorrupted = mod:NewNextTimer(20, 2136242) -- 2136242, 2136243, 2136244, 2136245
function mod:OnCombatStart(delay)
timerNextBolt:Start(10)
warnBoltSoon:Schedule(5)
@@ -109,7 +128,9 @@ function mod:SPELL_AURA_APPLIED(args)
-- timerSiphon:Show(args.destName)
if args:IsSpellID(2136114) then
warnDruidSoul:Show()
timerNextTranquility:Start()
timerNextUrsol:Start() -- 2136123
timerNextSolar:Start() -- 2136125
timerNextTranquility:Start() -- 2136126
elseif args:IsSpellID(2136115) then
warnHunterSoul:Show()
timerNextMultiShot:Start()
@@ -128,6 +149,9 @@ function mod:SPELL_AURA_APPLIED(args)
timerRuneOfPowerduration:Start()
elseif args:IsSpellID(2136141) then
timerLivingBomb:Show(args.destName)
if args:IsPlayer() then
warnYouLivingBomb:Show()
end
elseif args:IsSpellID(2136137, 2136138, 2136139, 2136140) then
specWarnRainofFire:Show()
elseif args:IsSpellID(2136117) then
@@ -174,6 +198,19 @@ function mod:SPELL_AURA_APPLIED(args)
timerSpellReflect:Show(args.destName)
elseif args:IsSpellID(2136193) then
timerColossusSmash:Show(args.destName)
elseif args:IsSpellID(2136283) then
warnDeathKnightSoul:Show()
timerNextArmy:Start() -- 2136284
timerNextDnD:Start() -- 2136297
timerNextAbsolute:Start() -- 2136292
elseif args:IsSpellID(2136292, 2136293, 2136294, 2136295) then
timerCastAbsolute:Start()
elseif args:IsSpellID(2136280) and (args.amount and args.amount >= 5) then
warnBloodScythe:Show()
elseif args:IsSpellID(2107116) then
timerNextWill:Show()
elseif args:IsSpellID(2136242) then
timerNextCorrupted:Show()
end
end
@@ -192,7 +229,7 @@ function mod:SPELL_CAST_START(args)
specWarnHeal:Show()
elseif args:IsSpellID(2136155) then
timerCastBlindingLight:Start()
specWarnBlindingLight:Show()
-- specWarnBlindingLight:Show() -- It's a LOS mechanic
end
end
@@ -203,6 +240,10 @@ function mod:SPELL_CAST_SUCCESS(args)
timerBolt:Start()
timerNextBolt:Start()
timerNextDrain:Schedule(10)
elseif args:IsSpellID(2136280) then
timerNextBloodScythe:Start()
elseif args:IsSpellID(2136260, 2136261, 2136262, 2136263) then
timerNextSiphon:Start() -- 2136260, 2136261, 2136262, 2136263
end
end
+44 -4
View File
@@ -37,6 +37,8 @@ local specWarnTurbulentWinds = mod:NewSpecialWarningYou(2136342)
local warnTurbulentWindsTarget = mod:NewTargetAnnounce(2136342, 4)
local warnStorm = mod:NewTargetAnnounce(2135724, 4)
local specWarnStorm = mod:NewSpecialWarningSpell(2135724)
local timerNextBladestorm = mod:NewNextTimer(45, 2136315)
local timerBladestorm = mod:NewCastTimer(15, 2136315)
local warnPhaseBear = mod:NewSpecialWarningSpell(2136337) --2136337, Shape of the Eagle, ASC D0 T5
local timerNextDeafeningRoar = mod:NewNextTimer(15, 2135829) --2135829, 2135830, 2135831, 2135832
@@ -61,6 +63,10 @@ local specWarnSpiritLink = mod:NewSpecialWarningRun(2136414) --2136413, 2136414
local timerNextGrievous = mod:NewNextTimer(10, 2136300) --2136301, 2136302, 2136303
local timerNextWhirlwind = mod:NewNextTimer(45, 2136316) --2136316, Whirlwind
local timerNextImpale = mod:NewNextTimer(45, 2136304) --2136304, 2136305, 2136306, 2136307, 2136308, 2136309
local timerNextScentOfCorruption = mod:NewNextTimer(35, 2136464) -- 2136464, 2136465, Scent of Corruption
local specWarnBloodScythe = mod:NewSpecialWarningYou(2136461)
local warnBloodScythe = mod:NewTargetAnnounce(2136461, 4)
mod.vb.phase = 1
local eosSpam = 0
@@ -92,10 +98,22 @@ function mod:LightningStrike()
self:ScheduleMethod(10,"LightningStrike")
end
function mod:BloodScythe()
local target = nil
local myName = UnitName("player")
target = mod:GetBossTarget(14982)
if target == myName then
specWarnBloodScythe:Show()
SendChatMessage(L.DBM_BLOOD_SCYTHE, "YELL")
else
warnBloodScythe:Show(target)
end
end
function mod:TurbulentWinds()
local target = nil
local myName = UnitName("player")
target = mod:GetBossTarget(80468) -- need to confirm ID !
target = mod:GetBossTarget(23863) -- need to confirm ID !
if target == myName then
specWarnTurbulentWinds:Show(target)
SendChatMessage(L.DBM_TURBULENT_WINDS, "YELL")
@@ -149,6 +167,10 @@ function mod:SPELL_AURA_APPLIED(args)
self:PhaseIncrease()
warnPhaseLynx:Show()
end
elseif args:IsSpellID(2136315) then
timerBladestorm:Start()
timerNextImpale:Start(27)
timerNextBladestorm:Start()
end
end
@@ -158,30 +180,47 @@ function mod:SPELL_CAST_SUCCESS(args)
timerNextTurbulentWinds:Start()
self:ScheduleMethod(10, "WallMechanic", "Lightning")
self:PhaseIncrease()
timerNextImpale:Cancel()
timerNextWhirlwind:Cancel()
timerNextScentOfCorruption:Cancel()
elseif args:IsSpellID(2136337) then --Phase 2-3-4-5
warnPhaseBear:Show()
timerNextDeafeningRoar:Start(8)
timerNextStampede:Start()
self:ScheduleMethod(10, "WallMechanic", "Bear")
self:PhaseIncrease()
timerNextImpale:Cancel()
timerNextWhirlwind:Cancel()
timerNextScentOfCorruption:Cancel()
elseif args:IsSpellID(2136357) then --Phase 2-3-4-5
warnPhaseDragonhawk:Show()
timerNextScorchingBreath:Start()
timerNextArmageddon:Start()
timerNextFlameWhirl:Start(1.5)
self:PhaseIncrease()
timerNextImpale:Cancel()
timerNextWhirlwind:Cancel()
timerNextScentOfCorruption:Cancel()
elseif args:IsSpellID(2136376) then --Phase 2-3-4-5
warnPhaseLynx:Show()
self:PhaseIncrease()
timerNextLynxRush:Start()
elseif args:IsSpellID(2136316) then
timerNextWhirlwind:Start()
timerNextWhirlwind:Cancel()
timerNextScentOfCorruption:Cancel()
elseif args:IsSpellID(2136315) then
timerNextImpale:Cancel()
elseif args:IsSpellID(2136402) then
timerBombCast:Start()
specWarnBomb:Show()
elseif args:IsSpellID(2136363) then
timerFlameWhirlCast:Start()
timerNextFlameWhirl:Start() -- timer is probably wrong
elseif args:IsSpellID(2136304,2136305,2136306,2136307) then
timerNextImpale:Start(45)
timerNextWhirlwind:Start(18)
if mod:IsDifficulty("heroic10", "heroic25") then
timerNextScentOfCorruption:Start(20)
end
end
end
@@ -190,6 +229,8 @@ function mod:SPELL_CAST_START(args)
timerNextTurbulentWinds:Start()
timerCastTurbulentWinds:Start()
self:ScheduleMethod(0.2, "TurbulentWinds")
elseif args:IsSpellID(2136461) then
self:ScheduleMethod(0.2, "BloodScythe")
end
end
@@ -234,5 +275,4 @@ function mod:UNIT_DIED(args)
else
return
end
print("Should only appear if phase = 10, otherwise contact DBM developers.")
end
+11 -8
View File
@@ -53,7 +53,7 @@ L:SetOptionLocalization{
L:SetMiscLocalization{
DBM_ROD_PLAYER = "Lightnig rod on "..UnitName("PLAYER").."! I have to run!",
DBM_EOS_PLAYER = "Eye of storm on "..UnitName("PLAYER").."! Get under me!",
DBM_TURBULENT_WINDS = "Turbulent winds on "..UnitName("PLAYER")..", Position! Move!"
DBM_TURBULENT_WINDS = "Turbulent winds on "..UnitName("PLAYER")"!"
}
---------------
@@ -129,11 +129,14 @@ L:SetGeneralLocalization{
}
L:SetMiscLocalization{
YellPhase2 = "Got me some new tricks... like me brudda bear....",
YellPhase3 = "Dere be no hidin' from da eagle!",
YellPhase4 = "Let me introduce you to me new bruddas: fang and claw!",
YellPhase5 = "Ya don' have to look to da sky to see da dragonhawk!",
DBM_JANALAI_HATCHERS = "Where ma hatcha? Get to work on dem eggs!",
DBM_ROD_PLAYER = "Lightnig rod on "..UnitName("PLAYER").."! I have to run!",
DBM_EOS_PLAYER = "Eye of storm on "..UnitName("PLAYER").."! Get under me!"
YellPhase2 = "Got me some new tricks... like me brudda bear....",
YellPhase3 = "Dere be no hidin' from da eagle!",
YellPhase4 = "Let me introduce you to me new bruddas: fang and claw!",
YellPhase5 = "Ya don' have to look to da sky to see da dragonhawk!",
DBM_JANALAI_HATCHERS = "Where ma hatcha? Get to work on dem eggs!",
DBM_ROD_PLAYER = "Lightnig rod on "..UnitName("PLAYER").."! I have to run!",
DBM_EOS_PLAYER = "Eye of storm on "..UnitName("PLAYER").."! Get under me!",
DBM_TURBULENT_WINDS = "Turbulent winds on "..UnitName("PLAYER").."!",
DBM_BLOOD_SCYTHE = "Massive Blood Scythe on "..UnitName("PLAYER"),
DBM_BLOOD_ORBS = "Blood orbs on"..UnitName("PLAYER").."! "
}