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.
143 lines
4.6 KiB
143 lines
4.6 KiB
local mod = DBM:NewMod(2096, "DBM-Party-BfA", 9, 1002)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20240428124541")
|
|
mod:SetCreatureID(127503)
|
|
mod:SetEncounterID(2104)
|
|
mod:SetUsedIcons(1)
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_AURA_APPLIED 256038 256105",
|
|
"SPELL_AURA_REMOVED 256038 256105",
|
|
"SPELL_CAST_START 256083 256198 256199 263345",
|
|
"SPELL_CAST_SUCCESS 256038 256101"
|
|
)
|
|
|
|
local warnAZBlast = mod:NewSpellAnnounce(256199, 2)
|
|
local warnAZIncendiary = mod:NewSpellAnnounce(256198, 2)
|
|
local warnDeadeye = mod:NewTargetNoFilterAnnounce(256038, 4)
|
|
local warnExplosiveBurst = mod:NewTargetAnnounce(256105, 2)
|
|
|
|
local specWarnCrossIgnition = mod:NewSpecialWarningSpell(256083, nil, nil, nil, 2, 2)--If the lines have better visuals later maybe i'll say farfromline/dodge, but for now, treating as unavoidable aoe
|
|
local specWarnDeadeye = mod:NewSpecialWarningDefensive(256038, nil, nil, nil, 1, 2)
|
|
local yellDeadeye = mod:NewYell(256038)
|
|
local specWarnExplosiveBurst = mod:NewSpecialWarningMoveAway(256105, nil, nil, nil, 1, 2)
|
|
local yellExplosiveBurst = mod:NewYell(256105)
|
|
local specWarnMassiveBlast = mod:NewSpecialWarningDodge(263345, nil, nil, nil, 2, 2)
|
|
|
|
local timerARBlastCD = mod:NewCDTimer(44.8, 256199, nil, nil, nil, 3)
|
|
local timerARICD = mod:NewCDTimer(44.8, 256198, nil, nil, nil, 3)
|
|
local timerCrossIgnitionCD = mod:NewCDTimer(44.8, 256083, nil, nil, nil, 2)
|
|
local timerDeadeyeCD = mod:NewCDTimer(23, 256038, nil, nil, nil, 3)
|
|
local timerExplosiveBurstCD = mod:NewCDTimer(44.8, 256105, nil, nil, nil, 3)
|
|
local timerMassiveBlastCD = mod:NewCDTimer(21.8, 263345, nil, nil, nil, 3)
|
|
|
|
mod:AddSetIconOption("SetIconOnDeadeye", 256038, true, 0, {1})
|
|
mod:AddInfoFrameOption(256038)
|
|
mod:AddRangeFrameOption(5, 256105)
|
|
|
|
mod.vb.crossCount = 0
|
|
mod.vb.burstCount = 0
|
|
|
|
function mod:OnCombatStart(delay)
|
|
self.vb.crossCount = 0
|
|
self.vb.burstCount = 0
|
|
timerARICD:Start(5.1-delay)
|
|
timerExplosiveBurstCD:Start(11.5-delay)
|
|
timerCrossIgnitionCD:Start(16-delay)
|
|
timerMassiveBlastCD:Start(17-delay)
|
|
timerDeadeyeCD:Start(23.1-delay)
|
|
if self.Options.InfoFrame then
|
|
DBM.InfoFrame:SetHeader(DBM:GetSpellName(256044))
|
|
DBM.InfoFrame:Show(5, "reverseplayerbaddebuffbyspellid", 256044)--Must match spellID to filter other debuffs out
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatEnd()
|
|
if self.Options.RangeFrame then
|
|
DBM.RangeCheck:Hide()
|
|
end
|
|
if self.Options.InfoFrame then
|
|
DBM.InfoFrame:Hide()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 256038 then--Targetting deadeye
|
|
if args:IsPlayer() then
|
|
specWarnDeadeye:Show()
|
|
specWarnDeadeye:Play("targetyou")
|
|
yellDeadeye:Yell()
|
|
else
|
|
warnDeadeye:Show(args.destName)
|
|
end
|
|
if self.Options.SetIconOnDeadeye then
|
|
self:SetIcon(args.destName, 1)
|
|
end
|
|
elseif spellId == 256105 then
|
|
warnExplosiveBurst:CombinedShow(0.3, args.destName)
|
|
if args:IsPlayer() then
|
|
specWarnExplosiveBurst:Show()
|
|
specWarnExplosiveBurst:Play("runout")
|
|
yellExplosiveBurst:Yell()
|
|
if self.Options.RangeFrame then
|
|
DBM.RangeCheck:Show(5)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 256038 and self.Options.SetIconOnDeadeye then
|
|
self:SetIcon(args.destName, 0)
|
|
elseif spellId == 256105 and args:IsPlayer() and self.Options.RangeFrame then
|
|
DBM.RangeCheck:Hide()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 256083 then
|
|
self.vb.crossCount = self.vb.crossCount + 1
|
|
specWarnCrossIgnition:Show()
|
|
specWarnCrossIgnition:Play("aesoon")
|
|
--16.0, 27.5, 17.0, 27.9
|
|
if self.vb.crossCount % 2 == 0 then
|
|
timerCrossIgnitionCD:Start(17)--20?
|
|
else
|
|
timerCrossIgnitionCD:Start(27.5)
|
|
end
|
|
elseif spellId == 256198 then
|
|
warnAZIncendiary:Show()
|
|
--Blast next
|
|
timerARBlastCD:Start(22.2)
|
|
elseif spellId == 256199 then
|
|
warnAZBlast:Show()
|
|
--Incendiary next
|
|
timerARICD:Start(22.2)
|
|
elseif spellId == 263345 then
|
|
specWarnMassiveBlast:Show()
|
|
specWarnMassiveBlast:Play("shockwave")--Shockwave, but from cannon not boss
|
|
timerMassiveBlastCD:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
local spellId = args.spellId
|
|
if spellId == 256038 then
|
|
timerDeadeyeCD:Start()
|
|
elseif spellId == 256101 then
|
|
self.vb.burstCount = self.vb.burstCount + 1
|
|
--12.9, 15.8, 7.3, 25.5 /// 12.6, 15.8, 7.3, 15.0, 7.3, 15.8, 7.3
|
|
--12.1, 15.8, 7.3, 25.5
|
|
if self.vb.burstCount % 2 == 0 then
|
|
timerExplosiveBurstCD:Start(7.3)
|
|
else
|
|
timerExplosiveBurstCD:Start(15)
|
|
end
|
|
end
|
|
end
|
|
|