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.

127 lines
3.4 KiB

local mod = DBM:NewMod("z2687", "DBM-Delves-WarWithin")
local L = mod:GetLocalizedStrings()
mod:SetRevision("20240825075851")
mod:SetHotfixNoticeRev(20240422000000)
mod:SetMinSyncRevision(20240422000000)
mod:RegisterCombat("scenario", 2687, 2767)--2767 likely not used player facing
mod:RegisterEventsInCombat(
"SPELL_CAST_START 446079 445860",
-- "SPELL_CAST_SUCCESS",
-- "SPELL_AURA_APPLIED",
-- "SPELL_AURA_REMOVED",
-- "SPELL_PERIODIC_DAMAGE",
-- "UNIT_DIED",
"ENCOUNTER_START",
"ENCOUNTER_END"
)
--NOTE: This one lacks encounter ID for easy win detection and boss timers
--NOTE, all of Leviathan Caller timers are fucked due to low dps. needs repulls. 446080 can be used to auto mark adds maybe?
local warnCalloftheAbyss = mod:NewSpellAnnounce(446080, 2)
local warnDrownedIllusions = mod:NewSpellAnnounce(445860, 2)
--local specWarnFearfulShriek = mod:NewSpecialWarningDodge(433410, nil, nil, nil, 2, 2)
--local timerShadowsofStrifeCD = mod:NewCDNPTimer(12.4, 449318, nil, nil, nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON)
local timerCalloftheAbyssCD = mod:NewCDTimer(31.5, 446080, nil, nil, nil, 1)
local timerDrownedIllusionsCD = mod:NewCDTimer(13.8, 445860, nil, nil, nil, 1)
--Antispam IDs for this mod: 1 run away, 2 dodge, 3 dispel, 4 incoming damage, 5 you/role, 6 misc, 7 off interrupt
function mod:SPELL_CAST_START(args)
if args.spellId == 446079 then
warnCalloftheAbyss:Show()
--timerCalloftheAbyssCD:Start()
elseif args.spellId == 445860 then
--"Drowned Illusions-445860-npc:219763-000049B174 = pull:7.8, 15.5, 13.8, 15.4, 14.6, 19.4, 19.5",
warnDrownedIllusions:Show()
timerDrownedIllusionsCD:Start()
end
end
--[[
function mod:SPELL_CAST_SUCCESS(args)
if args.spellId == 138680 then
end
end
--]]
--[[
function mod:SPELL_AURA_APPLIED(args)
if args.spellId == 1098 then
end
end
--]]
--[[
function mod:SPELL_AURA_REMOVED(args)
if args.spellId == 1098 then
end
end
--]]
--[[
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId)
if spellId == 138561 and destGUID == UnitGUID("player") and self:AntiSpam() then
end
end
--]]
--[[
function mod:UNIT_DIED(args)
--if args.destGUID == UnitGUID("player") then--Solo scenario, a player death is a wipe
--end
local cid = self:GetCIDFromGUID(args.destGUID)
if cid == 208242 then
end
end
--]]
function mod:ENCOUNTER_START(eID)
if eID == 2999 then--Mirror Master Murkna
timerDrownedIllusionsCD:Start(7.8)
elseif eID == 3000 then--Bloated Drowner
DBM:AddMsg("Boss alerts/timers not yet implemented for Bloated Drowner")
elseif eID == 3001 then--Cragpie
DBM:AddMsg("Boss alerts/timers not yet implemented for Cragpie")
elseif eID == 3002 then--Leviathan Caller
timerCalloftheAbyssCD:Start(6.1)
end
end
function mod:ENCOUNTER_END(eID, _, _, _, success)
if eID == 2999 then--Mirror Master Murkna
if success == 1 then
DBM:EndCombat(self)
else
--Stop Timers manually
timerDrownedIllusionsCD:Stop()
end
elseif eID == 3000 then--Bloated Drowner
if success == 1 then
DBM:EndCombat(self)
else
--Stop Timers manually
end
elseif eID == 3001 then--Cragpie
if success == 1 then
DBM:EndCombat(self)
else
--Stop Timers manually
end
elseif eID == 3002 then--Leviathan Caller
if success == 1 then
DBM:EndCombat(self)
else
timerCalloftheAbyssCD:Stop()
end
end
end