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.
109 lines
3.5 KiB
109 lines
3.5 KiB
|
3 years ago
|
local mod = DBM:NewMod(1657, "DBM-Party-Legion", 2, 762)
|
||
|
|
local L = mod:GetLocalizedStrings()
|
||
|
|
|
||
|
|
mod:SetRevision("20220909231726")
|
||
|
|
mod:SetCreatureID(99192)
|
||
|
|
mod:SetEncounterID(1839)
|
||
|
|
mod:SetUsedIcons(2, 1)
|
||
|
|
|
||
|
|
mod:RegisterCombat("combat")
|
||
|
|
|
||
|
|
mod:RegisterEventsInCombat(
|
||
|
|
"SPELL_AURA_APPLIED 200182 200243 200289",
|
||
|
|
"SPELL_AURA_REFRESH 200243",
|
||
|
|
"SPELL_AURA_REMOVED 200243",
|
||
|
|
"SPELL_CAST_SUCCESS 200359 199837 200182",
|
||
|
|
"UNIT_SPELLCAST_SUCCEEDED boss1"
|
||
|
|
)
|
||
|
|
|
||
|
|
--TOOD, maybe play gathershare for ALL (except tank) for nightmare target.
|
||
|
|
--TODO, maybe add an arrow group up hud for nightmare target depending on number of players it takes to clear it.
|
||
|
|
--TODO, feed on the weak have any significance?
|
||
|
|
local warnNightmare = mod:NewTargetAnnounce(200243, 3)
|
||
|
|
local warnParanoia = mod:NewTargetAnnounce(200289, 3)
|
||
|
|
local warnApocNightmare = mod:NewSpellAnnounce(200050, 3)
|
||
|
|
|
||
|
|
local specWarnFesteringRip = mod:NewSpecialWarningDispel(200182, "RemoveMagic", nil, 2, 1, 2)
|
||
|
|
local specWarnNightmare = mod:NewSpecialWarningYou(200243, nil, nil, nil, 1, 2)
|
||
|
|
local yellNightmare = mod:NewYell(200243)
|
||
|
|
local specWarnParanoia = mod:NewSpecialWarningMoveAway(200289, nil, nil, nil, 1, 2)
|
||
|
|
local yellParanoia = mod:NewYell(200289)
|
||
|
|
|
||
|
|
local timerFesteringRipCD = mod:NewCDTimer(17, 200182, nil, "Tank|Healer", nil, 5, nil, DBM_COMMON_L.MAGIC_ICON)--17-21
|
||
|
|
local timerNightmareCD = mod:NewCDTimer(17, 200243, nil, nil, nil, 3)--17-25
|
||
|
|
local timerParanoiaCD = mod:NewCDTimer(18, 200359, nil, nil, nil, 3)--18-28
|
||
|
|
--local timerApocNightmareCD = mod:NewCDTimer(18, 200050, nil, nil, nil, 2)
|
||
|
|
|
||
|
|
mod:AddSetIconOption("SetIconOnNightmare", 200243, true, false, {1, 2})
|
||
|
|
|
||
|
|
mod.vb.nightmareIcon = 1
|
||
|
|
|
||
|
|
function mod:OnCombatStart(delay)
|
||
|
|
self.vb.nightmareIcon = 1
|
||
|
|
timerFesteringRipCD:Start(3.4-delay)
|
||
|
|
timerNightmareCD:Start(6-delay)
|
||
|
|
--Feed on weak, 15
|
||
|
|
timerParanoiaCD:Start(19-delay)
|
||
|
|
--timerApocNightmareCD:Start(37)--Still needs more data to determine if CD or health based
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
||
|
|
local spellId = args.spellId
|
||
|
|
if spellId == 200359 then
|
||
|
|
timerParanoiaCD:Start()
|
||
|
|
elseif spellId == 200182 then
|
||
|
|
timerFesteringRipCD:Start()
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:SPELL_AURA_APPLIED(args)
|
||
|
|
local spellId = args.spellId
|
||
|
|
if spellId == 200182 then
|
||
|
|
specWarnFesteringRip:Show(args.destName)
|
||
|
|
specWarnFesteringRip:Play("helpdispel")
|
||
|
|
elseif spellId == 200243 then
|
||
|
|
if args:IsPlayer() then
|
||
|
|
specWarnNightmare:Show()
|
||
|
|
specWarnNightmare:Play("gathershare")
|
||
|
|
yellNightmare:Yell()
|
||
|
|
else
|
||
|
|
warnNightmare:Show(args.destName)
|
||
|
|
end
|
||
|
|
if self.Options.SetIconOnNightmare then
|
||
|
|
self:SetIcon(args.destName, self.vb.nightmareIcon)
|
||
|
|
end
|
||
|
|
--Alternate Icons
|
||
|
|
if self.vb.nightmareIcon == 1 then
|
||
|
|
self.vb.nightmareIcon = 2
|
||
|
|
else
|
||
|
|
self.vb.nightmareIcon = 1
|
||
|
|
end
|
||
|
|
elseif spellId == 200289 then
|
||
|
|
if args:IsPlayer() then
|
||
|
|
specWarnParanoia:Show()
|
||
|
|
specWarnParanoia:Play("scatter")
|
||
|
|
yellParanoia:Yell()
|
||
|
|
else
|
||
|
|
warnParanoia:Show(args.destName)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
mod.SPELL_AURA_REFRESH = mod.SPELL_AURA_APPLIED
|
||
|
|
|
||
|
|
function mod:SPELL_AURA_REMOVED(args)
|
||
|
|
local spellId = args.spellId
|
||
|
|
if spellId == 200243 then
|
||
|
|
if self.Options.SetIconOnNightmare then
|
||
|
|
self:SetIcon(args.destName, 0)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId)
|
||
|
|
if spellId == 204808 then--Because cast is hidden from combat log, and debuff may miss (AMS or the like)
|
||
|
|
timerNightmareCD:Start()
|
||
|
|
elseif spellId == 200050 then--Apocalyptic Nightmare
|
||
|
|
warnApocNightmare:Show()
|
||
|
|
end
|
||
|
|
end
|