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.
96 lines
3.1 KiB
96 lines
3.1 KiB
local mod = DBM:NewMod(1720, "DBM-Party-Legion", 7, 800)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod.statTypes = "heroic,mythic,challenge"
|
|
|
|
mod:SetRevision("20230101033858")
|
|
mod:SetCreatureID(104218)
|
|
mod:SetEncounterID(1870)
|
|
mod:SetHotfixNoticeRev(20221127000000)
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_CAST_START 209602 209676 209628"
|
|
)
|
|
mod:RegisterEvents(
|
|
"CHAT_MSG_MONSTER_SAY"
|
|
)
|
|
|
|
--[[
|
|
(ability.id = 209602 or ability.id = 209676 or ability.id = 209628) and type = "begincast"
|
|
or type = "dungeonencounterstart" or type = "dungeonencounterend"
|
|
--]]
|
|
local warnSurge = mod:NewTargetAnnounce(209602, 4)
|
|
|
|
local specWarnSurge = mod:NewSpecialWarningYou(209602, nil, nil, nil, 1, 2)
|
|
local yellSurge = mod:NewYell(209602)
|
|
local specWarnSlicingMaelstrom = mod:NewSpecialWarningSpell(209676, nil, nil, nil, 2, 2)
|
|
local specWarnGale = mod:NewSpecialWarningDodge(209628, nil, nil, nil, 2, 2)
|
|
|
|
local timerRP = mod:NewRPTimer(32.9)
|
|
local timerSurgeCD = mod:NewCDTimer(12.1, 209602, nil, nil, nil, 3)
|
|
local timerMaelstromCD = mod:NewCDCountTimer(24.2, 209676, nil, nil, nil, 3)
|
|
local timerGaleCD = mod:NewCDTimer(23.8, 209628, nil, nil, nil, 2)
|
|
|
|
local trashmod = DBM:GetModByName("CoSTrash")
|
|
mod.vb.slicingMaelstromCount = 0
|
|
|
|
function mod:SurgeTarget(targetname, uId)
|
|
if not targetname then
|
|
warnSurge:Show(DBM_COMMON_L.UNKNOWN)
|
|
return
|
|
end
|
|
if targetname == UnitName("player") then
|
|
specWarnSurge:Show()
|
|
specWarnSurge:Play("targetyou")
|
|
yellSurge:Yell()
|
|
else
|
|
warnSurge:Show(targetname)
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatStart(delay)
|
|
self.vb.slicingMaelstromCount = 0
|
|
timerSurgeCD:Start(5-delay)
|
|
timerGaleCD:Start(10-delay)--10
|
|
timerMaelstromCD:Start(22-delay, 1)
|
|
--Not ideal to do every pull, but cleanest way to ensure it's done
|
|
if not trashmod then
|
|
trashmod = DBM:GetModByName("CoSTrash")
|
|
end
|
|
if trashmod and trashmod.Options.SpyHelper then
|
|
trashmod:ResetGossipState()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 209602 then
|
|
timerSurgeCD:Start()
|
|
self:BossTargetScanner(104218, "SurgeTarget", 0.1, 16, true, nil, nil, nil, true)
|
|
elseif spellId == 209676 then
|
|
self.vb.slicingMaelstromCount = self.vb.slicingMaelstromCount + 1
|
|
specWarnSlicingMaelstrom:Show()
|
|
specWarnSlicingMaelstrom:Play("aesoon")
|
|
timerMaelstromCD:Start(24.2, self.vb.slicingMaelstromCount+1)
|
|
elseif spellId == 209628 and self:AntiSpam(5, 1) then
|
|
specWarnGale:Show()
|
|
specWarnGale:Play("watchstep")
|
|
timerGaleCD:Start()
|
|
end
|
|
end
|
|
|
|
--"<13.69 20:34:35> [CHAT_MSG_MONSTER_SAY] Must you leave so soon, Grand Magistrix?#Advisor Melandrus###Omegal##0#0##0#343#nil#0#false#false#false#false", -- [4]
|
|
--"<46.59 20:35:08> [ENCOUNTER_START] 1870#Advisor Melandrus#23#5", -- [18]
|
|
function mod:CHAT_MSG_MONSTER_SAY(msg)
|
|
if (msg == L.MelRP or msg:find(L.MelRP)) then
|
|
self:SendSync("MelRP")--Syncing to help unlocalized clients
|
|
end
|
|
end
|
|
|
|
function mod:OnSync(msg)
|
|
if msg == "MelRP" and self:AntiSpam(10, 2) then
|
|
timerRP:Start()
|
|
end
|
|
end
|
|
|