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.
138 lines
4.6 KiB
138 lines
4.6 KiB
local mod = DBM:NewMod(2451, "DBM-Party-Shadowlands", 9, 1194)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20210620030927")
|
|
mod:SetCreatureID(175806)
|
|
mod:SetEncounterID(2437)
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_CAST_START 347392 347249 347623",
|
|
-- "SPELL_CAST_SUCCESS",
|
|
"SPELL_AURA_APPLIED 347481",
|
|
"SPELL_AURA_REMOVED 357189 347152",
|
|
"SPELL_AURA_REMOVED_DOSE 357189 347152"
|
|
-- "SPELL_PERIODIC_DAMAGE",
|
|
-- "SPELL_PERIODIC_MISSED",
|
|
-- "UNIT_DIED"
|
|
-- "UNIT_SPELLCAST_SUCCEEDED boss1"
|
|
)
|
|
|
|
--TODO, room get divided more than once? on timer or health based? Currently just coding an announce and no timer
|
|
--TODO, assumed boss loses charge on cast start and not cast finish/interrupt. therefor boss will gain 2 stacks, then near instantly lose 1 of them based on assumption, like oregorger
|
|
--TODO, probably correct timers around divide
|
|
--TODO, detect hard mode on engage for timers
|
|
local warnDeployRelocator = mod:NewCountAnnounce(347392, 1)
|
|
local warnDivide = mod:NewSpellAnnounce(347249, 3)
|
|
local warnQuickblade = mod:NewSpellAnnounce(347623, 3)
|
|
|
|
local specWarnShurl = mod:NewSpecialWarningMoveTo(347481, nil, nil, nil, 4, 2)
|
|
local specWarnDoubleTechnique = mod:NewSpecialWarningInterruptCount(156877, "HasInterrupt", nil, nil, 1, 3)
|
|
local specWarnTripleTechnique = mod:NewSpecialWarningInterruptCount(347152, "HasInterrupt", nil, nil, 1, 3)
|
|
--local yellEmbalmingIchor = mod:NewYell(327664)
|
|
--local specWarnHealingBalm = mod:NewSpecialWarningInterrupt(257397, "HasInterrupt", nil, nil, 1, 2)
|
|
--local specWarnGTFO = mod:NewSpecialWarningGTFO(320366, nil, nil, nil, 1, 8)
|
|
|
|
local timerShurlCD = mod:NewAITimer(11, 347481, nil, nil, nil, 2, nil, DBM_CORE_L.DEADLY_ICON)
|
|
local timerDeployRelocatorsCD = mod:NewAITimer(15.8, 347392, nil, nil, nil, 3)
|
|
local timerDoubleTechniqueCD = mod:NewAITimer(18.5, 357189, nil, nil, nil, 4, nil, DBM_CORE_L.INTERRUPT_ICON)
|
|
local timerTripleTechniqueCD = mod:NewAITimer(18.5, 347152, nil, nil, nil, 4, nil, DBM_CORE_L.INTERRUPT_ICON)
|
|
local timerQuickbladeCD = mod:NewAITimer(15.8, 347623, nil, nil, nil, 3)
|
|
|
|
mod.vb.relocatorCount = 0
|
|
|
|
local relocator = DBM:GetSpellInfo(347426)
|
|
|
|
function mod:OnCombatStart(delay)
|
|
self.vb.relocatorCount = 0
|
|
timerShurlCD:Start(1-delay)
|
|
timerDeployRelocatorsCD:Start(1-delay)
|
|
timerDoubleTechniqueCD:Start(1-delay)
|
|
timerQuickbladeCD:Start(1-delay)
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 347392 then
|
|
self.vb.relocatorCount = self.vb.relocatorCount + 1
|
|
warnDeployRelocator:Show(self.vb.relocatorCount)
|
|
timerDeployRelocatorsCD:Start()
|
|
elseif spellId == 347249 then
|
|
warnDivide:Show()
|
|
elseif spellId == 347623 then
|
|
warnQuickblade:Show()
|
|
timerQuickbladeCD:Start()
|
|
end
|
|
end
|
|
|
|
--[[
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
local spellId = args.spellId
|
|
if spellId == 320359 then
|
|
|
|
end
|
|
end
|
|
--]]
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 347481 then
|
|
specWarnShurl:Show(relocator)
|
|
specWarnShurl:Play("justrun")
|
|
timerShurlCD:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 357189 then
|
|
local amount = args.amount or 0--amount reported for all (SPELL_AURA_APPLIED_DOSE) but 0 (SPELL_AURA_REMOVED)
|
|
if amount == 1 then
|
|
timerDoubleTechniqueCD:Start()
|
|
specWarnDoubleTechnique:Show(args.sourceName, 1)
|
|
specWarnDoubleTechnique:Play("kick1r")
|
|
elseif amount == 0 then
|
|
specWarnDoubleTechnique:Show(args.sourceName, 2)
|
|
specWarnDoubleTechnique:Play("kick2r")
|
|
end
|
|
elseif spellId == 347152 then--Hard Mode
|
|
local amount = args.amount or 0--amount reported for all (SPELL_AURA_APPLIED_DOSE) but 0 (SPELL_AURA_REMOVED)
|
|
if amount == 2 then
|
|
timerTripleTechniqueCD:Start()
|
|
specWarnTripleTechnique:Show(args.sourceName, 1)
|
|
specWarnTripleTechnique:Play("kick1r")
|
|
elseif amount == 1 then
|
|
specWarnTripleTechnique:Show(args.sourceName, 2)
|
|
specWarnTripleTechnique:Play("kick2r")
|
|
elseif amount == 0 then
|
|
specWarnTripleTechnique:Show(args.sourceName, 3)
|
|
specWarnTripleTechnique:Play("kick2r")
|
|
end
|
|
end
|
|
end
|
|
mod.SPELL_AURA_REMOVED_DOSE = mod.SPELL_AURA_REMOVED
|
|
|
|
--[[
|
|
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName)
|
|
if spellId == 320366 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 == 164578 then
|
|
|
|
end
|
|
end
|
|
|
|
|
|
function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId)
|
|
if spellId == 257453 then
|
|
|
|
end
|
|
end
|
|
--]]
|
|
|