82a9ac0937
* 5.20 * Update to 5.21 --------- Co-authored-by: Szyler <Szyler@Szyler.com>
122 lines
3.5 KiB
Lua
122 lines
3.5 KiB
Lua
local DBM = require("DBM") -- assuming DBM is a module you have in your project
|
|
local mod = DBM:NewMod("Chromaggus", "DBM-BWL", 1)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision(("$Revision: 188 $"):sub(12, -3))
|
|
mod:SetCreatureID(14020)
|
|
mod:RegisterCombat("combat",14020)
|
|
|
|
mod:RegisterEvents(
|
|
"SPELL_CAST_START",
|
|
"SPELL_CAST_SUCCESS",
|
|
"SPELL_AURA_APPLIED"
|
|
)
|
|
|
|
--ORDER FOR PHASES IS BELOW
|
|
--FROST, FIRE, SHADOW, NATURE, ARCANE
|
|
|
|
--breath 15 sec cd
|
|
--intermission 30 sec
|
|
--Phase transmission 3 sec
|
|
--enrage 6:48~6:50
|
|
--Flame, Frost, Arcane, Acidic, Shadow Breath
|
|
|
|
--Brood Affliction: Blue 197228
|
|
--Frost Burn 197232
|
|
--Frost Breath 197233
|
|
|
|
--Brood Affliction: Red 197223
|
|
--Incinerate 197201
|
|
--Flame Breath 197205
|
|
|
|
--Brood Affliction: Black 197203
|
|
--Engulfing Shadow 197208
|
|
--2111309
|
|
--Shadow Breath 197212
|
|
|
|
--Brood Affliction: Green 197210
|
|
--Corrosive Acid 197215
|
|
--Acidic Breath 197220
|
|
|
|
--Brood Affliction: Bronze 197216
|
|
--Time Lapse 197222
|
|
--Arcane Breath 197224
|
|
|
|
|
|
|
|
|
|
--local specWarnRed = mod:NewSpecialWarningYou(197223, 3)
|
|
--local specWarnGreen = mod:NewSpecialWarningYou(197210, 3)
|
|
--local warnBreathSoon = mod:NewAnnounce("WarnBreathSoon", 1, 23316)
|
|
--local warnBreath = mod:NewAnnounce("WarnBreath", 2, 23316)
|
|
|
|
local enrageTimer = mod:NewBerserkTimer(408)
|
|
--Phases
|
|
local timerBlueNext = mod:NewNextTimer(34, 2111286)
|
|
local timerRedNext = mod:NewNextTimer(34, 2111263)
|
|
local timerBlackNext = mod:NewNextTimer(34, 2111309)
|
|
local timerGreenNext = mod:NewNextTimer(34, 2111273)
|
|
local timerBronzeNext = mod:NewNextTimer(34, 2111296)
|
|
--Debuffs
|
|
local specWarnBlue = mod:NewSpecialAnnounceYou(197228, 3)
|
|
local specWarnBlack = mod:NewSpecialAnnounceYou(197203, 3)
|
|
local specWarnBronze = mod:NewSpecialAnnounceYou(197216, 3)
|
|
--Breaths
|
|
local timerFrostBreath = mod:NewNextTimer(6, 2111240)
|
|
local timerFlameBreath = mod:NewNextTimer(6, 2111230)
|
|
local timerShadowBreath = mod:NewNextTimer(6, 2111235)
|
|
local timerAcidicBreath = mod:NewNextTimer(6, 197220)
|
|
local timerArcaneBreath = mod:NewNextTimer(6, 197224)
|
|
local timerBreathCD = mod:NewTimer(15, 197212)
|
|
|
|
|
|
--functions
|
|
|
|
function mod:FirstPhase()
|
|
timerBlueNext:Start(10)
|
|
timerBreathCD:Start(16)
|
|
end
|
|
|
|
function mod:onCombatStart(delay)
|
|
enrageTimer:Start(-delay)
|
|
self:ScheduleMethod(0,"FirstPhase")
|
|
end
|
|
|
|
function mod:secondBreath(delay)
|
|
timerBreathCD:Start(15)
|
|
end
|
|
|
|
--Combat Log reading
|
|
function mod:SPELL_CAST_START(args)
|
|
if args:IsSpellID(2111286) then
|
|
self:ScheduleMethod(6, "secondBreath")
|
|
timerFrostBreath:Start(6)
|
|
timerRedNext:Start(34)
|
|
elseif args:IsSpellID(2111263) then
|
|
self:ScheduleMethod(6, "secondBreath")
|
|
timerFlameBreath:Start(6)
|
|
timerBlackNext:Start(34)
|
|
elseif args:IsSpellID(2111309) then
|
|
self:ScheduleMethod(6, "secondBreath")
|
|
timerShadowBreath:Start(6)
|
|
timerGreenNext:Start(34)
|
|
elseif args:IsSpellID(2111273) then
|
|
self:ScheduleMethod(6, "secondBreath")
|
|
timerAcidicBreath:Start(6)
|
|
timerBronzeNext:Start(34)
|
|
elseif args:IsSpellID(2111296) then
|
|
self:ScheduleMethod(6, "secondBreath")
|
|
timerArcaneBreath:Start(6)
|
|
timerBlueNext:Start(34)
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if args.IsSpellID(197228) and args:IsPlayer() then
|
|
specWarnBlue:Show()
|
|
elseif args.isSpellID(197216) and args:IsPlayer() then
|
|
specWarnBronze:Show()
|
|
elseif args.IsSpellID(197203) and args:IsPlayer() then
|
|
specWarnBlack:Show()
|
|
end
|
|
end |