local mod = DBM:NewMod(968, "DBM-Party-WoD", 7, 476) local L = mod:GetLocalizedStrings() mod.statTypes = "normal,heroic,mythic,challenge,timewalker" mod:SetRevision("20240428124541") mod:SetCreatureID(76266) mod:SetEncounterID(1701) mod:SetUsedIcons(1) mod:RegisterCombat("combat") mod:RegisterEventsInCombat( "SPELL_AURA_APPLIED 154055", "SPELL_CAST_START 154055", "SPELL_PERIODIC_DAMAGE 154043", "SPELL_ABSORBED 154043", "UNIT_DIED", "UNIT_SPELLCAST_SUCCEEDED boss1 boss2 boss3 boss4 boss5"--On a bad pull you can very much have 3-4 adds. ) --TODO, had bugged transcriptor so no IEEU events. See if IEEU is better for adds joining fight. local warnCastDown = mod:NewTargetNoFilterAnnounce(153954, 4) local warnShielding = mod:NewTargetNoFilterAnnounce(154055, 2) local specWarnCastDownSoon = mod:NewSpecialWarningSoon(153954, nil, nil, nil, 1, 2)--Everyone, becaus it can grab healer too, which affects healer/tank local specWarnCastDown = mod:NewSpecialWarningSwitch(153954, "Dps", nil, nil, 3, 2)--Only dps, because it's their job to stop it. local specWarnLensFlareCast = mod:NewSpecialWarningSpell(154043, nil, nil, nil, 2, 2)--If there is any way to find actual target, like maybe target scanning, this will be changed. local specWarnLensFlare = mod:NewSpecialWarningGTFO(154043, nil, nil, nil, 1, 8) local specWarnAdd = mod:NewSpecialWarning("specWarnAdd", "Dps", nil, nil, 1, 2) local specWarnShielding = mod:NewSpecialWarningInterrupt(154055, "HasInterrupt", nil, 2, 1, 2) local timerLenseFlareCD = mod:NewCDTimer(38, 154043, nil, nil, nil, 3) local timerCastDownCD = mod:NewCDTimer(28, 153954, nil, nil, nil, 1, nil, DBM_COMMON_L.DAMAGE_ICON) mod:AddSetIconOption("SetIconOnCastDown", 153954, true, 0, {1}) mod.vb.lastGrab = nil local skyTrashMod = DBM:GetModByName("SkyreachTrash") function mod:CastDownTarget(targetname, uId) if not targetname then return end self.vb.lastGrab = targetname warnCastDown:Show(self.vb.lastGrab) if self.Options.SetIconOnCastDown then self:SetIcon(self.vb.lastGrab, 1) end end function mod:OnCombatStart(delay) self.vb.lastGrab = nil timerCastDownCD:Start(15-delay) timerLenseFlareCD:Start(27.3-delay) if skyTrashMod.Options.RangeFrame and skyTrashMod.vb.debuffCount ~= 0 then--In case of bug where range frame gets stuck open from trash pulls before this boss. skyTrashMod.vb.debuffCount = 0--Fix variable DBM.RangeCheck:Hide()--Close range frame. end end function mod:SPELL_AURA_APPLIED(args) if args.spellId == 154055 then warnShielding:Show(args.destName) end end function mod:SPELL_CAST_START(args) if args.spellId == 154055 and self:CheckInterruptFilter(args.sourceGUID, false, true) then specWarnShielding:Show(args.sourceName) specWarnShielding:Play("kickcast") end end function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName) if spellId == 154043 and destGUID == UnitGUID("player") and self:AntiSpam(2) then specWarnLensFlare:Show(spellName) specWarnLensFlare:Play("watchfeet") end end mod.SPELL_ABSORBED = mod.SPELL_PERIODIC_DAMAGE function mod:UNIT_DIED(args) local cid = self:GetCIDFromGUID(args.destGUID) if cid == 76267 then--Solar Zealot if self.Options.SetIconOnCastDown and self.vb.lastGrab then self:SetIcon(self.vb.lastGrab, 0) self.vb.lastGrab = nil end end end function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) if spellId == 153954 then--Cast Down (4-5 sec before pre warning) specWarnCastDownSoon:Show() self:BossTargetScanner(76266, "CastDownTarget", 0.05, 15) specWarnCastDownSoon:Play("mobsoon") elseif spellId == 165834 then--Force Demon Creator to Ride Me --TODO, see if victom detectable here instead timerCastDownCD:Start() if self.vb.lastGrab and self.vb.lastGrab ~= UnitName("player") then specWarnCastDown:Show() specWarnCastDown:Play("helpme") specWarnCastDown:ScheduleVoice(2, "helpme2") end elseif spellId == 154049 then-- Call Adds specWarnAdd:Show() specWarnAdd:Play("killmob") elseif spellId == 154032 then--Actual Lens Flare cast. 154043 is not cast, despite SUCCESS event. It only fires if beam makes contact with a player. Then SPELL_CAST_SUCCESS and SPELL_AURA_APPLIED fire specWarnLensFlareCast:Show() specWarnLensFlareCast:Play("watchstep") timerLenseFlareCD:Start() end end