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.
107 lines
3.4 KiB
107 lines
3.4 KiB
local mod = DBM:NewMod(2126, "DBM-Party-BfA", 10, 1021)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20240426175442")
|
|
mod:SetCreatureID(260551)
|
|
mod:SetEncounterID(2114)
|
|
mod:SetHotfixNoticeRev(20231025000000)
|
|
mod:SetMinSyncRevision(20231025000000)
|
|
mod.respawnTime = 29
|
|
mod.sendMainBossGUID = true
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_CAST_START 260508",
|
|
"SPELL_CAST_SUCCESS 260551 260508",
|
|
"SPELL_AURA_APPLIED 267907 260541 260569",
|
|
"SPELL_SUMMON 267907",
|
|
"RAID_BOSS_WHISPER"
|
|
)
|
|
|
|
--[[
|
|
ability.id = 260508 and type = "begincast"
|
|
or ability.id = 260551 and type = "cast"
|
|
or ability.id = 260541
|
|
or type = "dungeonencounterstart" or type = "dungeonencounterend"
|
|
--]]
|
|
--TODO, maybe readd stack counting instead of relying on blizzards emote for moving boss into fire
|
|
local warnBurningBush = mod:NewSpellAnnounce(260541, 4)
|
|
|
|
local specWarnCrush = mod:NewSpecialWarningDefensive(260508, nil, nil, nil, 1, 2)
|
|
local specWarnThorns = mod:NewSpecialWarningSwitchCount(267907, "Dps", nil, nil, 1, 2)
|
|
local yellThorns = mod:NewYell(267907)
|
|
local specWarnSoulHarvest = mod:NewSpecialWarningMoveTo(260512, "Tank", nil, nil, 3, 2)
|
|
local specWarnGTFO = mod:NewSpecialWarningGTFO(260569, nil, nil, nil, 1, 8)
|
|
|
|
--Timers subject to delays if boss gets stunned by fire
|
|
local timerCrushCD = mod:NewCDCountTimer(15, 260508, nil, "Tank", nil, 5, nil, DBM_COMMON_L.TANK_ICON)--15 after last cast FINISHES
|
|
local timerThornsCD = mod:NewCDCountTimer(21.8, 267907, nil, nil, nil, 3, nil, DBM_COMMON_L.DAMAGE_ICON)
|
|
|
|
mod:AddSetIconOption("SetIconOnThorns", 267907, true, 5, {8})
|
|
|
|
mod.vb.crushCount = 0
|
|
mod.vb.thornsCount = 0
|
|
|
|
local wildfire = DBM:GetSpellName(260569)
|
|
|
|
function mod:OnCombatStart(delay)
|
|
self.vb.crushCount = 0
|
|
self.vb.thornsCount = 0
|
|
timerCrushCD:Start(5.7-delay, 1)
|
|
timerThornsCD:Start(8.1-delay, 1)
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 260508 then
|
|
if self:IsTanking("player", "boss1", nil, true) then
|
|
specWarnCrush:Show()
|
|
specWarnCrush:Play("defensive")
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
local spellId = args.spellId
|
|
if spellId == 260551 then
|
|
self.vb.thornsCount = self.vb.thornsCount + 1
|
|
timerThornsCD:Start(nil, self.vb.thornsCount+1)
|
|
elseif spellId == 260508 then--Can stutter cast, so we only want to increment count and start timer on a successful one
|
|
self.vb.crushCount = self.vb.crushCount + 1
|
|
timerCrushCD:Start(15, self.vb.crushCount+1)
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_SUMMON(args)
|
|
local spellId = args.spellId
|
|
if spellId == 267907 then
|
|
if self.Options.SetIconOnThorns then
|
|
self:ScanForMobs(args.destGUID, 2, 8, 1, nil, 12, "SetIconOnThorns")
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 267907 then
|
|
if args:IsPlayer() then
|
|
yellThorns:Yell()
|
|
else
|
|
specWarnThorns:Show(self.vb.thornsCount+1)--+1 because event is lagged behind timer event
|
|
specWarnThorns:Play("targetchange")
|
|
end
|
|
elseif spellId == 260541 then
|
|
warnBurningBush:Show()
|
|
elseif spellId == 260569 and args:IsPlayer() and self:AntiSpam(3, 1) then
|
|
specWarnGTFO:Show(args.spellName)
|
|
specWarnGTFO:Play("watchfeet")
|
|
end
|
|
end
|
|
|
|
function mod:RAID_BOSS_WHISPER(msg)
|
|
if msg:find("260512") then
|
|
specWarnSoulHarvest:Show(wildfire)
|
|
specWarnSoulHarvest:Play("moveboss")
|
|
end
|
|
end
|
|
|