You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
3.2 KiB

local mod = DBM:NewMod(1981, "DBM-Party-Legion", 13, 945)
local L = mod:GetLocalizedStrings()
mod:SetRevision("20230708234551")
mod:SetCreatureID(124874)
mod:SetEncounterID(2067)
mod:RegisterCombat("combat")
mod:RegisterEventsInCombat(
"SPELL_CAST_START 244751 248736",
"SPELL_CAST_SUCCESS 246324",
"SPELL_AURA_APPLIED 248804",
"SPELL_AURA_REMOVED 248804",
"UNIT_SPELLCAST_SUCCEEDED boss1"
)
--TODO, power gain rate consistent?
--TODO, special warning to switch to tentacles once know for sure how to tell empowered apart from non empowered?
--TODO, More work on guard timers, with an english log that's actually captured properly (stared and stopped between pulls)
local warnEternalTwilight = mod:NewCastAnnounce(248736, 4)
local warnAddsLeft = mod:NewAddsLeftAnnounce(-16424, 2)
local warnTentacles = mod:NewSpellAnnounce(244769, 2)
local specWarnHowlingDark = mod:NewSpecialWarningInterrupt(244751, "HasInterrupt", nil, nil, 1, 2)
local specWarnEntropicForce = mod:NewSpecialWarningSpell(246324, nil, nil, nil, 1, 2)
local specWarnAdds = mod:NewSpecialWarningAdds(249336, "-Healer", nil, nil, 1, 2)
local timerUmbralTentaclesCD = mod:NewCDTimer(30.4, 244769, nil, nil, nil, 1)
local timerHowlingDarkCD = mod:NewCDTimer(28.0, 244751, nil, nil, nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON)
local timerEntropicForceCD = mod:NewCDTimer(28.0, 246324, nil, nil, nil, 2)--28-38
local timerEternalTwilight = mod:NewCastTimer(10, 248736, nil, nil, nil, 2, nil, DBM_COMMON_L.DEADLY_ICON, nil, 2, 4)
local timerAddsCD = mod:NewAddsTimer(61.9, 249336, nil, "-Healer")
mod.vb.guardsActive = 0
function mod:OnCombatStart(delay)
self.vb.guardsActive = 0
timerUmbralTentaclesCD:Start(11.8-delay)
timerHowlingDarkCD:Start(15.5-delay)
timerEntropicForceCD:Start(35-delay)
if self:IsHard() then
timerAddsCD:Start(53-delay)
end
end
function mod:SPELL_CAST_START(args)
local spellId = args.spellId
if spellId == 244751 then
timerHowlingDarkCD:Start()
specWarnHowlingDark:Show(args.sourceName)
specWarnHowlingDark:Play("kickcast")
elseif spellId == 248736 and self:AntiSpam(3, 1) then
warnEternalTwilight:Show()
timerEternalTwilight:Start()
end
end
function mod:SPELL_CAST_SUCCESS(args)
local spellId = args.spellId
if spellId == 246324 then
specWarnEntropicForce:Show()
specWarnEntropicForce:Play("keepmove")
timerEntropicForceCD:Start()
end
end
function mod:SPELL_AURA_APPLIED(args)
local spellId = args.spellId
if spellId == 248804 then
self.vb.guardsActive = self.vb.guardsActive + 1
end
end
function mod:SPELL_AURA_REMOVED(args)
local spellId = args.spellId
if spellId == 248804 then
self.vb.guardsActive = self.vb.guardsActive - 1
if self.vb.guardsActive >= 1 then
warnAddsLeft:Show(self.vb.guardsActive)
--else
--Start timer for next guard here if more accurate
end
end
end
function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId)
if spellId == 245038 then
warnTentacles:Show()
timerUmbralTentaclesCD:Start()
elseif spellId == 249336 then--or 249335
specWarnAdds:Show()
specWarnAdds:Play("killmob")
timerAddsCD:Start()
end
end