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.

88 lines
3.0 KiB

local mod = DBM:NewMod(119, "DBM-Party-Cataclysm", 5, 69)
local L = mod:GetLocalizedStrings()
mod.statTypes = "normal,heroic,timewalker"
mod:SetRevision("20230117063410")
mod:SetCreatureID(43612)
mod:SetEncounterID(1053)
mod:RegisterCombat("combat")
mod:RegisterEventsInCombat(
"SPELL_AURA_APPLIED 82622 82506 82255 88814 82320",
"SPELL_AURA_REMOVED 82622 82506",
"SPELL_DAMAGE 81942",
"SPELL_MISSED 81942"
)
--TODO, verify how soul sever stuff works, i don't remember it completely
local warnPlagueAges = mod:NewTargetAnnounce(82622, 3, nil, "Healer", 2)
local warnLashings = mod:NewTargetAnnounce(82506, 3, nil, "Tank|Healer", 2)--I think it's tank debuff? review
local warnRepentance = mod:NewSpellAnnounce(82320, 2) -- kind of add phase
local warnSoulSever = mod:NewTargetAnnounce(82255, 4)
local specWarnHeavenFury = mod:NewSpecialWarningMove(81942, nil, nil, nil, 1, 2)
local specWarnHallowedGround = mod:NewSpecialWarningMove(88814, nil, nil, nil, 1, 2)
local specWarnSoulSever = mod:NewSpecialWarningYou(82255, nil, nil, nil, 3, 2)
local specWarnSoulSeverDps = mod:NewSpecialWarningSwitch(82255, "Dps", nil, nil, 1, 2)
local timerPlagueAges = mod:NewTargetTimer(9, 82622, nil, "Healer", 2, 5)
local timerLashings = mod:NewTargetTimer(20, 82506, nil, "Tank|Healer", 2, 5)
local timerSoulSever = mod:NewTargetTimer(4, 82255, nil, nil, nil, 1)
local timerSoulSeverCD = mod:NewCDTimer(11, 82255, nil, nil, nil, 3)
local spamSIS = 0--We use custom updating so don't use prototype
local BlazeHeavens = DBM:EJ_GetSectionInfo(2459)
local HarbringerDarkness = DBM:EJ_GetSectionInfo(2473)
function mod:OnCombatStart(delay)
spamSIS = 0
end
function mod:SPELL_AURA_APPLIED(args)
local spellId = args.spellId
if spellId == 82622 then
warnPlagueAges:Show(args.destName)
timerPlagueAges:Start(args.destName)
elseif spellId == 82506 then
warnLashings:Show(args.destName)
timerLashings:Start(args.destName)
elseif spellId == 82320 and args.destName == L.name then
warnRepentance:Show()
spamSIS = GetTime()
elseif spellId == 82255 then
if args:IsPlayer() then
specWarnSoulSever:Show()
specWarnSoulSever:Play("targetyou")
else
warnSoulSever:Show(args.destName)
end
specWarnSoulSeverDps:Schedule(4)
specWarnSoulSeverDps:ScheduleVoice(4, "killmob")
timerSoulSever:Start(args.destName)
timerSoulSeverCD:Start()
elseif spellId == 88814 and args:IsPlayer() and GetTime() - spamSIS > 5.5 then
spamSIS = GetTime()
specWarnHallowedGround:Show()
specWarnHallowedGround:Play("runaway")
end
end
function mod:SPELL_AURA_REMOVED(args)
local spellId = args.spellId
if spellId == 82622 then
timerPlagueAges:Cancel(args.destName)
elseif spellId == 82506 then
timerLashings:Cancel(args.destName)
end
end
function mod:SPELL_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId)
if spellId == 81942 and destGUID == UnitGUID("player") and GetTime() - spamSIS > 3 then
spamSIS = GetTime()
specWarnHeavenFury:Show()
specWarnHeavenFury:Play("runaway")
end
end