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.
147 lines
5.4 KiB
147 lines
5.4 KiB
local mod = DBM:NewMod(2390, "DBM-Party-Shadowlands", 6, 1187)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20240106080507")
|
|
mod:SetCreatureID(162329)
|
|
mod:SetEncounterID(2366)
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_CAST_START 320644 317231 320729 339415",
|
|
"SPELL_CAST_SUCCESS 320050 320114 331618",
|
|
"SPELL_AURA_APPLIED 320102"
|
|
-- "SPELL_PERIODIC_DAMAGE",
|
|
-- "SPELL_PERIODIC_MISSED",
|
|
-- "UNIT_SPELLCAST_SUCCEEDED boss1"
|
|
)
|
|
|
|
--[[
|
|
ability.id = 320644 and type = "begincast"
|
|
or (ability.id = 320050 or ability.id = 320114 or ability.id = 331618) and type = "cast"
|
|
or (ability.id = 317231 or ability.id = 320729 or ability.id = 339415) and type = "begincast"
|
|
--]]
|
|
local warnCrushingSlam = mod:NewCountAnnounce(317231, 4)
|
|
local warnMassiveCleave = mod:NewCountAnnounce(320729, 4)
|
|
local warnDeafeningCrash = mod:NewCountAnnounce(339415, 4)
|
|
local warnBloodandGlory = mod:NewTargetNoFilterAnnounce(320102, 2)
|
|
|
|
local specWarnBrutalCombo = mod:NewSpecialWarningDefensive(320644, nil, nil, nil, 2, 2)
|
|
local specWarnMightofMaldraxxus = mod:NewSpecialWarningDodge(320050, nil, nil, nil, 3, 2)
|
|
local specWarnDeafeningCrash = mod:NewSpecialWarningCast(339415, false, nil, nil, 1, 2, 4)
|
|
local specWarnBloodandGlory = mod:NewSpecialWarningYou(320102, nil, nil, nil, 1, 2)
|
|
local specWarnOppressiveBanner = mod:NewSpecialWarningSwitch(331618, nil, nil, nil, 1, 2)
|
|
--local specWarnGTFO = mod:NewSpecialWarningGTFO(257274, nil, nil, nil, 1, 8)
|
|
|
|
local timerBrutalComboCD = mod:NewCDCountTimer(15.8, 320644, nil, nil, nil, 5, nil, DBM_COMMON_L.TANK_ICON)--Sequenced timer
|
|
local timerMightofMaldraxxusCD = mod:NewCDCountTimer(15.8, 320050, nil, nil, nil, 6, nil, DBM_COMMON_L.DEADLY_ICON)
|
|
local timerBloodandGloryCD = mod:NewCDCountTimer(70.5, 320102, nil, nil, nil, 3, nil, DBM_COMMON_L.DAMAGE_ICON)
|
|
local timerOppressiveBannerCD = mod:NewCDCountTimer(30.3, 331618, nil, nil, nil, 1, nil, DBM_COMMON_L.DAMAGE_ICON)
|
|
|
|
mod.vb.MightCount = 0
|
|
mod.vb.MightCastCount = 0
|
|
mod.vb.brutalComboCount = 0
|
|
mod.vb.bloodCount = 0
|
|
mod.vb.bannerCount = 0
|
|
|
|
local allTimers = {
|
|
--Combo
|
|
[320644] = {6.0, 30.4, 15.8, 26.8}, -- Then 30.4, 35.2, repeating...
|
|
--Might
|
|
[320050] = {16.9, 40.1, 30.4, 35.2}, -- Then 30.4, 35.2, repeating...
|
|
--Blood
|
|
-- [320102] = {34.0, 70.5},
|
|
--Banner
|
|
-- [331618] = {10.8, 30.3, 35.3, 30.4, 35.1},
|
|
}
|
|
|
|
function mod:OnCombatStart(delay)
|
|
self.vb.MightCount = 0
|
|
self.vb.MightCastCount = 0
|
|
self.vb.brutalComboCount = 0
|
|
self.vb.bloodCount = 0
|
|
self.vb.bannerCount = 0
|
|
timerBrutalComboCD:Start(5.8-delay, 1)
|
|
timerOppressiveBannerCD:Start(10.7-delay, 1)
|
|
timerMightofMaldraxxusCD:Start(17.1-delay, 1)
|
|
timerBloodandGloryCD:Start(33.9-delay, 1)--SUCCESS
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 320644 then
|
|
self.vb.brutalComboCount = self.vb.brutalComboCount + 1
|
|
if self:IsTanking("player", "boss1", nil, true) then
|
|
specWarnBrutalCombo:Show()
|
|
specWarnBrutalCombo:Play("defensive")
|
|
end
|
|
timerBrutalComboCD:Start(allTimers[spellId][self.vb.brutalComboCount+1] or (self.vb.brutalComboCount % 2 == 1 and 30.4 or 35.2), self.vb.brutalComboCount+1)
|
|
elseif spellId == 317231 then
|
|
self.vb.MightCount = self.vb.MightCount + 1
|
|
warnCrushingSlam:Show(self.vb.MightCount)
|
|
elseif spellId == 320729 then
|
|
self.vb.MightCount = self.vb.MightCount + 1
|
|
warnMassiveCleave:Show(self.vb.MightCount)
|
|
elseif spellId == 339415 then
|
|
self.vb.MightCount = self.vb.MightCount + 1
|
|
if self.Options.SpecWarn339415cast then
|
|
specWarnDeafeningCrash:Show()
|
|
specWarnDeafeningCrash:Play("stopcast")
|
|
else
|
|
warnDeafeningCrash:Show(self.vb.MightCount)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
local spellId = args.spellId
|
|
if spellId == 320050 then
|
|
self.vb.MightCount = 0
|
|
self.vb.MightCastCount = self.vb.MightCastCount + 1
|
|
specWarnMightofMaldraxxus:Show()
|
|
specWarnMightofMaldraxxus:Play("watchstep")
|
|
local timer = allTimers[spellId][self.vb.MightCastCount+1]
|
|
if timer then
|
|
timerMightofMaldraxxusCD:Start(allTimers[spellId][self.vb.MightCastCount+1] or (self.vb.MightCastCount % 2 == 1 and 30.4 or 35.2), self.vb.MightCastCount+1)
|
|
end
|
|
elseif spellId == 320114 and self:AntiSpam(5, 1) then
|
|
self.vb.bloodCount = self.vb.bloodCount + 1
|
|
timerBloodandGloryCD:Start(70.5, self.vb.bloodCount+1)
|
|
elseif spellId == 331618 then
|
|
self.vb.bannerCount = self.vb.bannerCount + 1
|
|
specWarnOppressiveBanner:Show()
|
|
specWarnOppressiveBanner:Play("attacktotem")--Technically banner, but better than "kill mob"
|
|
if self.vb.bannerCount % 2 == 0 then
|
|
timerOppressiveBannerCD:Start(35, self.vb.bannerCount+1)
|
|
else
|
|
timerOppressiveBannerCD:Start(30, self.vb.bannerCount+1)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 320102 then
|
|
warnBloodandGlory:CombinedShow(0.3, args.destName)
|
|
if args:IsPlayer() then
|
|
specWarnBloodandGlory:Show()
|
|
specWarnBloodandGlory:Play("targetyou")
|
|
end
|
|
end
|
|
end
|
|
|
|
--[[
|
|
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName)
|
|
if spellId == 309991 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_SPELLCAST_SUCCEEDED(uId, _, spellId)
|
|
if spellId == 325863 and self:AntiSpam(10, 1) then--Might of Maldraxxus
|
|
|
|
end
|
|
end
|
|
--]]
|
|
|