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.
132 lines
4.3 KiB
132 lines
4.3 KiB
local mod = DBM:NewMod(2114, "DBM-Party-BfA", 7, 1001)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20220209045257")
|
|
mod:SetCreatureID(129227)
|
|
mod:SetEncounterID(2106)
|
|
mod:DisableESCombatDetection()--ES fires for nearby trash even if boss isn't pulled
|
|
mod:SetMinSyncRevision(17732)
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_AURA_APPLIED 257582",
|
|
"SPELL_CAST_START 257593 258622 275907 258627",
|
|
"SPELL_CAST_SUCCESS 271698"
|
|
)
|
|
|
|
local warnRagingGaze = mod:NewTargetAnnounce(257582, 2)
|
|
local warnPulse = mod:NewCastAnnounce(258622, 3)
|
|
|
|
local specWarnCallEarthRager = mod:NewSpecialWarningCount(257593, nil, nil, nil, 1, 2)
|
|
local specWarnRagingGaze = mod:NewSpecialWarningRun(257582, nil, nil, nil, 4, 2)
|
|
local yellRagingGaze = mod:NewYell(257582)
|
|
local specWarnInfusion = mod:NewSpecialWarningSwitch(271698, "-Tank", nil, nil, 1, 2)
|
|
--local specWarnResonantPulse = mod:NewSpecialWarningDodge(258622, nil, nil, nil, 2, 2)
|
|
local specWarnTectonicSmash = mod:NewSpecialWarningDodge(275907, "Tank", nil, 2, 1, 2)
|
|
local specWarnQuake = mod:NewSpecialWarningDodge(258627, nil, nil, nil, 2, 2)
|
|
|
|
local timerCallEarthragerCD = mod:NewNextCountTimer(60.4, 257593, nil, nil, nil, 1)
|
|
--local timerInfusionCD = mod:NewCDTimer(13, 271698, nil, nil, nil, 3, nil, DBM_COMMON_L.DAMAGE_ICON)--Health based?
|
|
local timerResonantPulseCD = mod:NewCDTimer(32.2, 258622, nil, nil, nil, 2)
|
|
local timerTectonicSmashCD = mod:NewCDTimer(23.0, 275907, nil, nil, nil, 3)--23-28
|
|
|
|
mod:AddInfoFrameOption(257481, true)
|
|
|
|
mod.vb.addCount = 0
|
|
|
|
local updateInfoFrame
|
|
do
|
|
local ccList = {
|
|
[1] = DBM:GetSpellInfo(257481),--Trap included with fight
|
|
[2] = DBM:GetSpellInfo(6770),--Rogue Sap
|
|
[3] = DBM:GetSpellInfo(9484),--Priest Shackle
|
|
[4] = DBM:GetSpellInfo(20066),--Paladin Repentance
|
|
[5] = DBM:GetSpellInfo(118),--Mage Polymorph
|
|
[6] = DBM:GetSpellInfo(51514),--Shaman Hex
|
|
[7] = DBM:GetSpellInfo(3355),--Hunter Freezing Trap
|
|
}
|
|
local lines = {}
|
|
local floor = math.floor
|
|
updateInfoFrame = function()
|
|
table.wipe(lines)
|
|
for i = 1, 5 do
|
|
local uId = "boss"..i
|
|
if UnitExists(uId) then
|
|
for s = 1, #ccList do
|
|
local spellName = ccList[s]
|
|
local _, _, _, _, _, expires = DBM:UnitDebuff(uId, spellName)
|
|
if expires then
|
|
local debuffTime = expires - GetTime()
|
|
lines[UnitName(uId)] = floor(debuffTime)
|
|
break
|
|
end
|
|
end
|
|
end
|
|
end
|
|
return lines
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatStart(delay)
|
|
self.vb.addCount = 0
|
|
timerCallEarthragerCD:Start(60-delay, 1)
|
|
--timerInfusionCD:Start(1-delay)--19.6
|
|
timerResonantPulseCD:Start(8.6-delay)
|
|
if not self:IsNormal() then
|
|
timerTectonicSmashCD:Start(5-delay)
|
|
end
|
|
if self.Options.InfoFrame then
|
|
DBM.InfoFrame:SetHeader(DBM:GetSpellInfo(227909))
|
|
DBM.InfoFrame:Show(5, "function", updateInfoFrame, false, true)
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatEnd()
|
|
if self.Options.InfoFrame then
|
|
DBM.InfoFrame:Hide()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 257582 and self:AntiSpam(3.5, args.destName) then
|
|
warnRagingGaze:CombinedShow(0.5, args.destName)--In case two adds are up
|
|
if args:IsPlayer() and self:AntiSpam(3.5, 2) then
|
|
specWarnRagingGaze:Show()
|
|
specWarnRagingGaze:Play("justrun")
|
|
specWarnRagingGaze:ScheduleVoice(1.5, "keepmove")
|
|
yellRagingGaze:Yell()
|
|
end
|
|
end
|
|
end
|
|
--mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 257593 then
|
|
self.vb.addCount = self.vb.addCount + 1
|
|
specWarnCallEarthRager:Show(self.vb.addCount)
|
|
specWarnCallEarthRager:Play("bigmob")
|
|
timerCallEarthragerCD:Start(60, self.vb.addCount+1)--add self.vb.addCount+1
|
|
elseif spellId == 258622 then
|
|
warnPulse:Show()
|
|
timerResonantPulseCD:Start()
|
|
elseif spellId == 275907 then
|
|
specWarnTectonicSmash:Show()
|
|
specWarnTectonicSmash:Play("shockwave")
|
|
timerTectonicSmashCD:Start()
|
|
elseif spellId == 258627 and self:AntiSpam(3.5, 1) then
|
|
specWarnQuake:Show()
|
|
specWarnQuake:Play("watchstep")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
local spellId = args.spellId
|
|
if spellId == 271698 then
|
|
specWarnInfusion:Show()
|
|
specWarnInfusion:Play("killmob")
|
|
--timerInfusionCD:Start()--15.8, 36.4, 64.0
|
|
end
|
|
end
|
|
|