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.

94 lines
3.0 KiB

local mod = DBM:NewMod(2158, "DBM-Party-BfA", 8, 1022)
local L = mod:GetLocalizedStrings()
mod:SetRevision("20240426175442")
mod:SetCreatureID(133007)
mod:SetEncounterID(2123)
mod.sendMainBossGUID = true
mod:SetHotfixNoticeRev(20230528000000)
mod:RegisterCombat("combat")
mod:RegisterEventsInCombat(
"SPELL_CAST_START 269843 269310",
"SPELL_PERIODIC_DAMAGE 269838",
"SPELL_PERIODIC_MISSED 269838",
"UNIT_DIED",
"UNIT_SPELLCAST_SUCCEEDED boss1 boss2 boss3"
)
--TODO, target scanning cleansing light?
--TODO, verify GTFO
--[[
(ability.id = 269843 or ability.id = 269310) and type = "begincast"
or type = "dungeonencounterstart" or type = "dungeonencounterend"
--]]
local warnVisage = mod:NewAddsLeftAnnounce(-18312, 2, 269692)
local specWarnBloodVisage = mod:NewSpecialWarningSwitch(-18312, "-Healer", nil, nil, 1, 2)
local specWarnVileExpulsion = mod:NewSpecialWarningDodge(269843, nil, nil, nil, 2, 2)
local specWarnCleansingLight = mod:NewSpecialWarningSpell(269310, nil, nil, nil, 1, 2)
local specWarnGTFO = mod:NewSpecialWarningGTFO(269838, nil, nil, nil, 1, 8)
local timerBloodVisageCD = mod:NewCDTimer(15.7, -18312, nil, nil, nil, 1, 269692)
local timerVileExpulsionCD = mod:NewNextTimer(15.7, 269843, nil, nil, nil, 3)
local timerCleansingLightCD = mod:NewCDTimer(15.7, 269310, nil, nil, nil, 5)--21.8-37 pre 10.1, 15.7-18 now
mod:AddInfoFrameOption(269301, "Healer")
mod.vb.remainingAdds = 6
function mod:OnCombatStart(delay)
self.vb.remainingAdds = 6
timerVileExpulsionCD:Start(8.2-delay)
timerCleansingLightCD:Start(18.2-delay)
timerBloodVisageCD:Start(22.3-delay)
if self.Options.InfoFrame then
DBM.InfoFrame:SetHeader(DBM:GetSpellName(269301))
DBM.InfoFrame:Show(5, "playerdebuffstacks", 269301, 1)
end
end
function mod:OnCombatEnd()
if self.Options.InfoFrame then
DBM.InfoFrame:Hide()
end
end
function mod:SPELL_CAST_START(args)
local spellId = args.spellId
if spellId == 269843 then
specWarnVileExpulsion:Show()
specWarnVileExpulsion:Play("watchwave")
timerVileExpulsionCD:Start()
elseif spellId == 269310 then
specWarnCleansingLight:Show()
specWarnCleansingLight:Play("gathershare")
timerCleansingLightCD:Start()
end
end
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName)
if spellId == 269838 and destGUID == UnitGUID("player") and self:AntiSpam(2, 2) then
specWarnGTFO:Show(spellName)
specWarnGTFO:Play("watchfeet")
end
end
mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE
function mod:UNIT_DIED(args)
local cid = self:GetCIDFromGUID(args.destGUID)
if cid == 137103 then--Visage
self.vb.remainingAdds = self.vb.remainingAdds - 1
warnVisage:Show(self.vb.remainingAdds)
end
end
function mod:UNIT_SPELLCAST_SUCCEEDED(_, _, spellId)
if spellId == 272663 and self:AntiSpam(2, 1) then--Blood Clone Cosmetic
specWarnBloodVisage:Show()
specWarnBloodVisage:Play("killmob")
timerBloodVisageCD:Start(31.5)
end
end