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.

152 lines
5.3 KiB

local mod = DBM:NewMod(1653, "DBM-Party-Legion", 1, 740)
local L = mod:GetLocalizedStrings()
mod:SetRevision("20230907220903")
mod:SetCreatureID(98696)
mod:SetEncounterID(1833)
mod:SetUsedIcons(3, 2, 1)
mod.sendMainBossGUID = true
mod:RegisterCombat("combat")
mod:RegisterEventsInCombat(
"SPELL_CAST_START 197418 197546 197974 197797",
"SPELL_CAST_SUCCESS 197478 197687",
"SPELL_AURA_APPLIED 197478",
"SPELL_AURA_REMOVED 197478",
-- "SPELL_PERIODIC_DAMAGE",
-- "SPELL_PERIODIC_MISSED",
"UNIT_SPELLCAST_SUCCEEDED boss1"
)
--[[
"<3.42 23:50:12> [ENCOUNTER_START] ENCOUNTER_START#1833#Ilysanna Ravencrest#23#5", -- [7]
"<50.59 23:50:59> [UNIT_SPELLCAST_SUCCEEDED] Illysanna Ravencrest(??) boss1:Phase 2 Jump::3-3020-1501-31352-197622-00004A48A3:197622",
"<119.67 23:52:08> [UNIT_SPELLCAST_SUCCEEDED] Illysanna Ravencrest(??) boss1:Periodic Energize::3-3020-1501-31352-197394-0000CA48E8:197394",
"<213.28 23:53:41> [UNIT_SPELLCAST_SUCCEEDED] Illysanna Ravencrest(??) boss1:Phase 2 Jump::3-3020-1501-31352-197622-0003CA4945:197622",
--]]
--TODO, maybe GTFO for standing in fire left by dark rush and eye beams?
local warnBrutalGlaive = mod:NewTargetAnnounce(197546, 2)
local warnDarkRush = mod:NewTargetAnnounce(197478, 3)
local warnEyeBeam = mod:NewTargetAnnounce(197687, 2)
local specWarnBrutalGlaive = mod:NewSpecialWarningMoveAway(197546, nil, nil, nil, 1, 2)
local yellBrutalGlaive = mod:NewYell(197546)
local specWarnVengefulShear = mod:NewSpecialWarningDefensive(197418, "Tank", nil, nil, 3, 2)
local specWarnDarkRush = mod:NewSpecialWarningYou(197478, nil, nil, nil, 1, 2)
local specWarnEyeBeam = mod:NewSpecialWarningRun(197687, nil, nil, nil, 4, 2)
local yellEyeBeam = mod:NewYell(197687)
local specWarnBonebreakingStrike = mod:NewSpecialWarningDodge(197974, "Tank", nil, nil, 1, 2)
local specWarnArcaneBlitz = mod:NewSpecialWarningInterrupt(197797, "HasInterrupt", nil, nil, 1, 2)
local timerBrutalGlaiveCD = mod:NewCDTimer(15, 197546, nil, nil, nil, 3)
local timerVengefulShearCD = mod:NewCDTimer(11, 197418, nil, "Tank", nil, 5, nil, DBM_COMMON_L.TANK_ICON)--11-16, delayed by dark rush
local timerDarkRushCD = mod:NewCDTimer(30, 197478, nil, nil, nil, 3)
local timerEyeBeamCD = mod:NewNextTimer(15.5, 197687, nil, nil, nil, 3)
mod:AddSetIconOption("SetIconOnDarkRush", 197478, true, 6, {1, 2, 3})
--mod:AddRangeFrameOption(5, 197546)--Range not given for Brutal Glaive
function mod:BrutalGlaiveTarget(targetname, uId)
if not targetname then
warnBrutalGlaive:Show(DBM_COMMON_L.UNKNOWN)
return
end
if targetname == UnitName("player") then
specWarnBrutalGlaive:Show()
specWarnBrutalGlaive:Play("runout")
yellBrutalGlaive:Yell()
else
warnBrutalGlaive:Show(targetname)
end
end
function mod:OnCombatStart(delay)
timerBrutalGlaiveCD:Start(5.5-delay)
timerVengefulShearCD:Start(8-delay)
timerDarkRushCD:Start(12.1-delay)
end
function mod:OnCombatEnd()
-- if self.Options.RangeFrame then
-- DBM.RangeCheck:Hide()
-- end
end
function mod:SPELL_CAST_START(args)
local spellId = args.spellId
if spellId == 197418 then
specWarnVengefulShear:Show()
specWarnVengefulShear:Play("defensive")
timerVengefulShearCD:Start()
elseif spellId == 197546 then
timerBrutalGlaiveCD:Start()
self:BossTargetScanner(98696, "BrutalGlaiveTarget", 0.1, 10, true)
elseif spellId == 197974 then
specWarnBonebreakingStrike:Show()
specWarnBonebreakingStrike:Play("shockwave")
elseif spellId == 197797 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnArcaneBlitz:Show(args.sourceName)
specWarnArcaneBlitz:Play("kickcast")
end
end
function mod:SPELL_CAST_SUCCESS(args)
local spellId = args.spellId
if spellId == 197478 then
timerDarkRushCD:Start()
elseif spellId == 197687 then--No longer fires applied event, so success has to be used, even if it misses or gets dropped off target by some kind of feign
timerEyeBeamCD:Start()
if args:IsPlayer() then
specWarnEyeBeam:Show()
yellEyeBeam:Yell()
specWarnEyeBeam:Play("laserrun")
else
warnEyeBeam:Show(args.destName)
end
end
end
function mod:SPELL_AURA_APPLIED(args)
local spellId = args.spellId
if spellId == 197478 then
warnDarkRush:CombinedShow(0.3, args.destName)
if args:IsPlayer() then
specWarnDarkRush:Show()
specWarnDarkRush:Play("targetyou")
end
if self.Options.SetIconOnDarkRush then
self:SetAlphaIcon(0.5, args.destName, 3)
end
end
end
function mod:SPELL_AURA_REMOVED(args)
local spellId = args.spellId
if spellId == 197478 and self.Options.SetIconOnDarkRush then
self:SetIcon(args.destName, 0)
end
end
--[[
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId)
if spellId == 153616 and destGUID == UnitGUID("player") and self:AntiSpam(2, 1) then
end
end
mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE--]]
function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId)
if spellId == 197622 then--Phase 2 Jump
timerBrutalGlaiveCD:Stop()
timerVengefulShearCD:Stop()
timerDarkRushCD:Stop()
timerEyeBeamCD:Start(4)
elseif spellId == 197394 then--Periodic Energize
timerEyeBeamCD:Stop()
timerBrutalGlaiveCD:Start(6)
timerDarkRushCD:Start(12)
timerVengefulShearCD:Start(13)
end
end