+1
-1
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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"
|
||||
@@ -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.
|
||||
@@ -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 = {}
|
||||
|
||||
@@ -174,6 +174,8 @@ function mod:OnCombatEnd()
|
||||
target1 = nil
|
||||
target2 = nil
|
||||
target3 = nil
|
||||
self:UnscheduleMethod("Nightmare")
|
||||
self:UnscheduleMethod("InfernalRain")
|
||||
end
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
+3
-6
@@ -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,22 +35,19 @@ 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
|
||||
end
|
||||
end
|
||||
|
||||
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
@@ -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
@@ -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
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,8 +85,7 @@ 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)
|
||||
elseif args:IsPlayer() == false and args.amount >= 4 and args.amount <=10 then
|
||||
|
||||
@@ -50,8 +50,7 @@ function mod:SPELL_AURA_APPLIED_DOSE(args)
|
||||
else
|
||||
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
|
||||
@@ -65,14 +64,11 @@ function mod:SPELL_AURA_APPLIED(args)
|
||||
else
|
||||
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
|
||||
|
||||
@@ -123,6 +123,7 @@ function mod:StitchedGiant()
|
||||
timerStitchedGiant:Start()
|
||||
self:ScheduleMethod(60,"StitchedGiant")
|
||||
end
|
||||
|
||||
--if args:IsSpellID(28240) then
|
||||
-- timer = 15
|
||||
-- timerCloud:Start(timer)
|
||||
|
||||
@@ -54,15 +54,13 @@ function mod:SPELL_AURA_APPLIED(args)
|
||||
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)
|
||||
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)
|
||||
@@ -73,8 +71,7 @@ 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
|
||||
elseif args:IsSpellID(2122505) and (args.destName == MT) then
|
||||
timerNotFavToy:Stop()
|
||||
timerNotFavToy:Start(MT)
|
||||
end
|
||||
|
||||
@@ -106,8 +106,7 @@ function mod:SPELL_AURA_APPLIED(args)
|
||||
timerMagnetic:Start()
|
||||
mod:SetIcon(args.destName, i, 15)
|
||||
i = i-1
|
||||
end
|
||||
if args:IsSpellID(2124222) then
|
||||
elseif args:IsSpellID(2124222) then
|
||||
local tanktarget = args.destName
|
||||
if args:IsPlayer() then
|
||||
specWarnTankOvercharged:Show()
|
||||
@@ -142,8 +141,7 @@ function mod:UNIT_AURA(unit)
|
||||
currentCharge = 2
|
||||
negativePolarity:Show()
|
||||
positivePolarity:Hide()
|
||||
end
|
||||
if UnitDebuff("Player","Polarity: Positive") then
|
||||
elseif UnitDebuff("Player","Polarity: Positive") then
|
||||
if currentCharge == 2 or currentCharge == 0 then
|
||||
specWarnPositive:Show()
|
||||
end
|
||||
|
||||
@@ -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
|
||||
@@ -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()
|
||||
end
|
||||
self:SetIcon(args.destName, mana)
|
||||
mana = mana - 1
|
||||
end
|
||||
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,7 +294,7 @@ 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()
|
||||
@@ -309,7 +309,7 @@ function mod:UNIT_DIED(args)
|
||||
elseif cid == 26620 then -- Raz
|
||||
timerenrage:Stop()
|
||||
timerKnife:Stop()
|
||||
elseif (cid >= 26622 and cid <= 2665) then -- Horsemen
|
||||
elseif (cid >= 26622 and cid <= 26625) then -- Horsemen
|
||||
timerMark:Stop()
|
||||
timerNextHolyWrath:Stop()
|
||||
timerNextDeepChill:Stop()
|
||||
@@ -330,6 +330,7 @@ function mod:UNIT_DIED(args)
|
||||
timerNextBellowing:Stop()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function mod:OnCombatEnd()
|
||||
self:UnscheduleMethod("DnD")
|
||||
|
||||
@@ -98,7 +98,7 @@ function mod:SPELL_AURA_APPLIED(args)
|
||||
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
|
||||
@@ -110,8 +110,7 @@ function mod:SPELL_CAST_START(args)
|
||||
timerBellowing:Start()
|
||||
timerNextBellowing:Start()
|
||||
timerTerrified:Schedule(4.5)
|
||||
end
|
||||
if args:IsSpellID(2124322) then
|
||||
elseif args:IsSpellID(2124322) then
|
||||
timerNextBreath:Start()
|
||||
timerBreath:Start()
|
||||
end
|
||||
|
||||
@@ -48,6 +48,7 @@ mod:SetBossHealthInfo(
|
||||
16063, L.Zeliek
|
||||
)
|
||||
local markCounter = 0
|
||||
local markSpam = 0
|
||||
|
||||
-----BOSS FUNCTIONS-----
|
||||
function mod:OnCombatStart(delay)
|
||||
@@ -112,7 +113,6 @@ function mod:Famine()
|
||||
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
|
||||
|
||||
@@ -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
|
||||
@@ -115,8 +114,7 @@ end
|
||||
function mod:SPELL_CAST_SUCCESS(args)
|
||||
if args:IsSpellID(2123905) then
|
||||
timerPlagueStrike:Start()
|
||||
end
|
||||
if args:IsSpellID(2123904) then
|
||||
elseif args:IsSpellID(2123904) then
|
||||
timerFrostStrike:Start()
|
||||
end
|
||||
end
|
||||
@@ -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
|
||||
|
||||
@@ -116,6 +116,7 @@ function mod:PositionThree()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function mod:PositionFour()
|
||||
forward = 0
|
||||
if dance == 1 then
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -96,28 +96,29 @@ 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)
|
||||
if msg == L.Teleport or msg:find(L.Teleport) then
|
||||
|
||||
+47
-20
@@ -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,23 +131,24 @@ 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
|
||||
elseif args:IsSpellID(2108401, 2108402, 2108403, 2108404) then
|
||||
if args.sourceGUID ~= lastTargetGUID then
|
||||
warnBlastNova:Show()
|
||||
timerBlastNova:Start()
|
||||
timerNextSecondNova:Start()
|
||||
timerNextBlastNova:Start()
|
||||
if GetTime() - lastBlastNova > 20 then --Trying it to only trigger from new Add Blast Nova.
|
||||
timerIntBlastNova: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()
|
||||
@@ -140,6 +156,7 @@ function mod:SPELL_CAST_START(args)
|
||||
-- timerNextDeepBreath:Start()
|
||||
--end
|
||||
end
|
||||
end
|
||||
|
||||
function mod:UNIT_HEALTH(uId)
|
||||
if self:GetUnitCreatureId(uId) == 10184 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.90 and prewarnP2 == 0 then
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
function mod:OnCombatEnd()
|
||||
warnWavePortalSoon:Cancel()
|
||||
timerNextPortal:Cancel()
|
||||
end
|
||||
end
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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")"!"
|
||||
}
|
||||
|
||||
---------------
|
||||
@@ -135,5 +135,8 @@ L:SetMiscLocalization{
|
||||
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_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").."! "
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user