|
|
|
|
local mod = DBM:NewMod(2140, "DBM-Party-BfA", 5, 1023)
|
|
|
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
|
|
|
|
|
|
mod:SetRevision("20240625224640")
|
|
|
|
|
mod:SetCreatureID(120553)
|
|
|
|
|
mod:SetEncounterID(2100)
|
|
|
|
|
|
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
|
|
|
|
|
|
mod:RegisterEventsInCombat(
|
|
|
|
|
"SPELL_AURA_APPLIED 270624 275014",
|
|
|
|
|
"SPELL_CAST_START 270185 269266",
|
|
|
|
|
"SPELL_CAST_SUCCESS 274991",
|
|
|
|
|
"UNIT_DIED",
|
|
|
|
|
-- "INSTANCE_ENCOUNTER_ENGAGE_UNIT",
|
|
|
|
|
"UNIT_SPELLCAST_SUCCEEDED boss1 boss2 boss3 boss4 boss5"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
--TODO, just show initial terror timer and nothing more
|
|
|
|
|
local warnPutridWaters = mod:NewTargetAnnounce(275014, 2)
|
|
|
|
|
|
|
|
|
|
local specWarnCalloftheDeep = mod:NewSpecialWarningDodge(270185, nil, nil, nil, 2, 2)
|
|
|
|
|
local yellCrushingEmbrace = mod:NewYell(270624)
|
|
|
|
|
local specWarnPutridWaters = mod:NewSpecialWarningMoveAway(275014, nil, nil, nil, 1, 2)
|
|
|
|
|
local yellPutridWaters = mod:NewYell(275014)
|
|
|
|
|
local specWarnSlam = mod:NewSpecialWarningDodge(269266, "Tank", nil, 2, 2, 2)
|
|
|
|
|
|
|
|
|
|
local timerCalloftheDeepCD = mod:NewCDTimer(13, 270185, nil, nil, nil, 3)--6.4, 15.1, 19.0, 11.9, 12.1, 12.3, 15.6, 12.1, 12.9, 7.0, 8.6, 7.5, 7.2, 7.4, 7.0, 7.0, 7.3, 7.2
|
|
|
|
|
local timerPutridWatersCD = mod:NewCDCountTimer(19.9, 275014, nil, nil, nil, 5, nil, DBM_COMMON_L.MAGIC_ICON)
|
|
|
|
|
local timerSlamCD = mod:NewCDTimer(6, 269266, nil, "Tank", nil, 5, nil, DBM_COMMON_L.TANK_ICON)--6
|
|
|
|
|
--local timerDemolisherTerrorCD = mod:NewCDCountTimer(20, 270605, nil, nil, nil, 1, nil, DBM_COMMON_L.TANK_ICON..DBM_COMMON_L.DAMAGE_ICON)
|
|
|
|
|
|
|
|
|
|
mod:AddRangeFrameOption(5, 275014)
|
|
|
|
|
|
|
|
|
|
local seenAdds = {}
|
|
|
|
|
mod.vb.watersCount = 0
|
|
|
|
|
mod.vb.terrorCount = 0
|
|
|
|
|
|
|
|
|
|
function mod:OnCombatStart(delay)
|
|
|
|
|
table.wipe(seenAdds)
|
|
|
|
|
self:SetStage(1)
|
|
|
|
|
self.vb.watersCount = 0
|
|
|
|
|
self.vb.terrorCount = 0
|
|
|
|
|
timerPutridWatersCD:Start(3.4-delay, 1)
|
|
|
|
|
timerCalloftheDeepCD:Start(6.3-delay)
|
|
|
|
|
--timerDemolisherTerrorCD:Start(19.9-delay, 1)--Should be started by IEEU event
|
|
|
|
|
if self.Options.RangeFrame then
|
|
|
|
|
DBM.RangeCheck:Show(5)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:OnCombatEnd()
|
|
|
|
|
table.wipe(seenAdds)
|
|
|
|
|
if self.Options.RangeFrame then
|
|
|
|
|
DBM.RangeCheck:Hide()
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
|
|
|
local spellId = args.spellId
|
|
|
|
|
if spellId == 270624 and args:IsPlayer() then
|
|
|
|
|
yellCrushingEmbrace:Yell()
|
|
|
|
|
elseif spellId == 275014 then
|
|
|
|
|
if args:IsPlayer() then
|
|
|
|
|
specWarnPutridWaters:Show()
|
|
|
|
|
specWarnPutridWaters:Play("range5")
|
|
|
|
|
yellPutridWaters:Yell()
|
|
|
|
|
else
|
|
|
|
|
warnPutridWaters:CombinedShow(0.3, args.destName)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
|
|
|
|
|
|
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
|
|
|
local spellId = args.spellId
|
|
|
|
|
if spellId == 270185 then
|
|
|
|
|
specWarnCalloftheDeep:Show()
|
|
|
|
|
specWarnCalloftheDeep:Play("watchstep")
|
|
|
|
|
--timerCalloftheDeepCD:Start()
|
|
|
|
|
elseif spellId == 269266 then
|
|
|
|
|
if self:AntiSpam(2.5, 1) then
|
|
|
|
|
specWarnSlam:Show()
|
|
|
|
|
specWarnSlam:Play("carefly")
|
|
|
|
|
end
|
|
|
|
|
local timer = self:GetStage(1) and 18.2 or self:GetStage(2) and 10.9 or 6
|
|
|
|
|
timerSlamCD:Start(timer, args.sourceGUID)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
|
|
|
local spellId = args.spellId
|
|
|
|
|
if spellId == 274991 then
|
|
|
|
|
self.vb.watersCount = self.vb.watersCount + 1
|
|
|
|
|
timerPutridWatersCD:Start(nil, self.vb.watersCount+1)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:UNIT_DIED(args)
|
|
|
|
|
local cid = self:GetCIDFromGUID(args.destGUID)
|
|
|
|
|
if cid == 137614 or cid == 137625 or cid == 137626 or cid == 140447 then--Demolishing Terror
|
|
|
|
|
timerSlamCD:Stop(args.destGUID)
|
|
|
|
|
-- elseif cid == 137405 then--Gripping Terror
|
|
|
|
|
-- timerDemolisherTerrorCD:Stop()
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--[[
|
|
|
|
|
function mod:INSTANCE_ENCOUNTER_ENGAGE_UNIT()
|
|
|
|
|
for i = 1, 5 do
|
|
|
|
|
local unitID = "boss"..i
|
|
|
|
|
local GUID = UnitGUID(unitID)
|
|
|
|
|
if GUID and not seenAdds[GUID] then
|
|
|
|
|
seenAdds[GUID] = true
|
|
|
|
|
local cid = self:GetCIDFromGUID(GUID)
|
|
|
|
|
if cid == 137405 then--Gripping Terror
|
|
|
|
|
self.vb.terrorCount = 1--Set to 1 because first spawn comes with the terror spawn
|
|
|
|
|
timerDemolisherTerrorCD:Start(19.2, 2)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--]]
|
|
|
|
|
|
|
|
|
|
function mod:UNIT_SPELLCAST_SUCCEEDED(_, _, spellId)
|
|
|
|
|
if spellId == 270605 then--Summon Demolisher
|
|
|
|
|
self.vb.terrorCount = self.vb.terrorCount + 1
|
|
|
|
|
-- timerDemolisherTerrorCD:Start(20, self.vb.terrorCount+1)
|
|
|
|
|
elseif spellId == 269984 then--Damage Boss 35% (can use SPELL_CAST_START of 269456 alternatively)
|
|
|
|
|
--Might actually be at Repair event instead (269366)
|
|
|
|
|
if self:GetStage(3, 1) then
|
|
|
|
|
self:SetStage(0)
|
|
|
|
|
end
|
|
|
|
|
elseif spellId == 270183 then
|
|
|
|
|
--6.3, 15.1, 16.2, 17.0, 13.9, 12.0, 12.0, 12.1, 12.0, 15.0, 7.3, 7.0, 7.1, 7.2, 7.3, 7.2, 7.0, 7.0, 7.1, 7.0, 7.1, 7.4
|
|
|
|
|
--(ie stage one 15, stage 2 12, stage 3 7)
|
|
|
|
|
local timer = self:GetStage(1) and 15 or self:GetStage(2) and 12 or 7
|
|
|
|
|
timerCalloftheDeepCD:Start(timer)
|
|
|
|
|
end
|
|
|
|
|
end
|