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