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.
128 lines
4.5 KiB
128 lines
4.5 KiB
|
3 years ago
|
local mod = DBM:NewMod(2419, "DBM-Party-Shadowlands", 2, 1183)
|
||
|
|
local L = mod:GetLocalizedStrings()
|
||
|
|
|
||
|
|
mod:SetRevision("20220920232426")
|
||
|
|
mod:SetCreatureID(164255)
|
||
|
|
mod:SetEncounterID(2382)
|
||
|
|
|
||
|
|
mod:RegisterCombat("combat")
|
||
|
|
|
||
|
|
mod:RegisterEventsInCombat(
|
||
|
|
"SPELL_AURA_APPLIED 324652",
|
||
|
|
"SPELL_CAST_START 324527 324667",
|
||
|
|
"SPELL_CAST_SUCCESS 324459 324490"
|
||
|
|
-- "SPELL_PERIODIC_DAMAGE",
|
||
|
|
-- "SPELL_PERIODIC_MISSED",
|
||
|
|
-- "UNIT_DIED"
|
||
|
|
-- "UNIT_SPELLCAST_SUCCEEDED boss1"
|
||
|
|
)
|
||
|
|
|
||
|
|
--[[
|
||
|
|
(ability.id = 324527 or ability.id = 324667) and type = "begincast"
|
||
|
|
or (ability.id = 324459 or ability.id = 324490) and type = "cast"
|
||
|
|
or ability.id = 335514
|
||
|
|
--327598 is trash version of spell
|
||
|
|
--]]
|
||
|
|
local warnPlaguestomp = mod:NewCastAnnounce(324527, 2)
|
||
|
|
local warnSlimeWave = mod:NewCastAnnounce(324667, 2)
|
||
|
|
local warnBeckonSlime = mod:NewCastAnnounce(327608, 2, 9)
|
||
|
|
|
||
|
|
--local specWarnPlaguestomp = mod:NewSpecialWarningDodge(324527, nil, nil, nil, 2, 2)
|
||
|
|
local specWarnDebilitatingPlague = mod:NewSpecialWarningDispel(324652, "RemoveDisease", nil, nil, 1, 2)
|
||
|
|
local specWarnBeckonSlime = mod:NewSpecialWarningSwitch(327608, "-Healer", nil, nil, 1, 2)
|
||
|
|
--local yellBlackPowder = mod:NewYell(257314)
|
||
|
|
--local specWarnHealingBalm = mod:NewSpecialWarningInterrupt(257397, "HasInterrupt", nil, nil, 1, 2)
|
||
|
|
--local specWarnGTFO = mod:NewSpecialWarningGTFO(257274, nil, nil, nil, 1, 8)
|
||
|
|
|
||
|
|
local timerPlaguestompCD = mod:NewNextTimer(15.8, 324527, nil, nil, nil, 3)--38.8, 19.4
|
||
|
|
local timerBeckonSlimeCD = mod:NewCDTimer(49.8, 327608, nil, nil, nil, 1, nil, DBM_COMMON_L.DAMAGE_ICON)--50-55
|
||
|
|
local timerBeckonSlime = mod:NewCastTimer(7, 327608, nil, nil, nil, 5, nil, DBM_COMMON_L.DAMAGE_ICON)
|
||
|
|
local timerSlimeWaveCD = mod:NewNextTimer(10.5, 324667, nil, "Tank", nil, 5, nil, DBM_COMMON_L.TANK_ICON)
|
||
|
|
local timerSpecialCD = mod:NewNextSpecialTimer(40)
|
||
|
|
|
||
|
|
mod.vb.specialCast = 0
|
||
|
|
|
||
|
|
function mod:OnCombatStart(delay)
|
||
|
|
self.vb.specialCast = 0
|
||
|
|
timerSpecialCD:Start(8.3)--First spell can be either Plaguestomp or slime wave
|
||
|
|
timerBeckonSlimeCD:Start(25-delay)
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:SPELL_CAST_START(args)
|
||
|
|
local spellId = args.spellId
|
||
|
|
if spellId == 324527 then
|
||
|
|
self.vb.lastCast = self.vb.specialCast + 1
|
||
|
|
warnPlaguestomp:Show()
|
||
|
|
-- specWarnPlaguestomp:Show()
|
||
|
|
-- specWarnPlaguestomp:Play("shockwave")
|
||
|
|
if self.vb.specialCast == 1 or self.vb.specialCast == 2 then--First means opposite in 7 seconds
|
||
|
|
timerSlimeWaveCD:Start(7)
|
||
|
|
end
|
||
|
|
elseif spellId == 324667 then
|
||
|
|
self.vb.specialCast = self.vb.specialCast + 1
|
||
|
|
warnSlimeWave:Show()
|
||
|
|
if self.vb.specialCast == 1 or self.vb.specialCast == 3 then--First and third means opposite in 7 seconds
|
||
|
|
timerPlaguestompCD:Start(7)
|
||
|
|
elseif self.vb.specialCast == 2 then--Second being slime wave means next is another slime wave in 11
|
||
|
|
timerSlimeWaveCD:Start(11)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
--25.595 Globgrog casts Beckon Slime
|
||
|
|
--25.595 Globgrog begins casting Beckon Slime
|
||
|
|
--30.601 Globgrog casts Beckon Slime
|
||
|
|
--32.612 Living Slime Stalker 1 summons Slimy Morsel 1 with Beckon Slime
|
||
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
||
|
|
local spellId = args.spellId
|
||
|
|
if spellId == 324459 then--Precast event
|
||
|
|
warnBeckonSlime:Show()
|
||
|
|
timerBeckonSlime:Start(7)
|
||
|
|
timerBeckonSlimeCD:Start()
|
||
|
|
timerSpecialCD:Stop()
|
||
|
|
timerSlimeWaveCD:Stop()
|
||
|
|
timerPlaguestompCD:Stop()
|
||
|
|
elseif spellId == 324490 then--Summon finish event, which is still good 4 seconds before attackable
|
||
|
|
specWarnBeckonSlime:Show()
|
||
|
|
if self:IsTank() then
|
||
|
|
specWarnBeckonSlime:Play("moveboss")
|
||
|
|
else
|
||
|
|
specWarnBeckonSlime:Play("killmob")
|
||
|
|
end
|
||
|
|
--Resets the sequence for slime wave/plaguestomp
|
||
|
|
self.vb.specialCast = 0
|
||
|
|
timerSpecialCD:Start(18)--Which means one is cast (slime or plague seems to be toss up)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:SPELL_AURA_APPLIED(args)
|
||
|
|
local spellId = args.spellId
|
||
|
|
if spellId == 324652 and self:CheckDispelFilter("disease") then
|
||
|
|
specWarnDebilitatingPlague:CombinedShow(0.3, args.destName)
|
||
|
|
specWarnDebilitatingPlague:ScheduleVoice(0.3, args.destName)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
--[[
|
||
|
|
function mod:UNIT_DIED(args)
|
||
|
|
local cid = self:GetCIDFromGUID(args.destGUID)
|
||
|
|
if cid == 168128 then--Slimy Morsel
|
||
|
|
|
||
|
|
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 == 257453 then
|
||
|
|
|
||
|
|
end
|
||
|
|
end
|
||
|
|
--]]
|