dc8afd6584
Co-authored-by: Szyler <Szyler@Szyler.com>
148 lines
5.4 KiB
Lua
148 lines
5.4 KiB
Lua
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
|