diff --git a/DBM-Party-WarWithin/OperationFloodgate/OperationFloodgateTrash.lua b/DBM-Party-WarWithin/OperationFloodgate/OperationFloodgateTrash.lua index 73f2f1f3..4538f491 100644 --- a/DBM-Party-WarWithin/OperationFloodgate/OperationFloodgateTrash.lua +++ b/DBM-Party-WarWithin/OperationFloodgate/OperationFloodgateTrash.lua @@ -10,31 +10,63 @@ mod:SetZone(2773) mod:RegisterZoneCombat(2773) mod:RegisterEvents( --- "SPELL_CAST_START", --- "SPELL_CAST_SUCCESS", --- "SPELL_INTERRUPT", --- "SPELL_AURA_APPLIED", + "SPELL_CAST_START 465754 474337 1216039 465682 462771 469818 1217496 469721 465827 463058 1214468 465666 465408 471733", + "SPELL_CAST_SUCCESS 462771 463058 1214468 469799 471733 471736", + "SPELL_INTERRUPT", + "SPELL_AURA_APPLIED 462771 463061 469799", -- "SPELL_AURA_APPLIED_DOSE", -- "SPELL_AURA_REMOVED", --- "UNIT_DIED" + "UNIT_DIED", + "RAID_BOSS_WHISPER" ) +--TODO, FINISH bubbles timers +--TODO, review ALL timers much closer to live +--TODO, Darkfuse Soldier Black Blood Wound stack counter? +--TODO, EZ-Thro Dynamite III general announce? (Venture Co Surveyor) --[[ or type = "dungeonencounterstart" or type = "dungeonencounterend" or (source.type = "NPC" and source.firstSeen = timestamp and source.id = 217531) or (target.type = "NPC" and target.firstSeen = timestamp and target.id = 217531) --]] --local warnHorrifyingshrill = mod:NewCastAnnounce(434802, 4)--High Prio Off interrupt ---local warnPoisonousCloud = mod:NewSpellAnnounce(438826, 3) +local warnWarpBlood = mod:NewSpellAnnounce(465827, 3) +local warnRapidReconstruction = mod:NewSpellAnnounce(465408, 2)--Cast by Venture Co Architect when construction platform is destoryed +local warnJettisonkelp = mod:NewSpellAnnounce(471736, 4, nil, nil, nil, nil, nil, 2) ---local specWarnMassiveSlam = mod:NewSpecialWarningSpell(434252, nil, nil, nil, 2, 2) ---local specWarnWebSpray = mod:NewSpecialWarningDodge(434824, nil, nil, nil, 2, 15) +local specWarnZepBarrage = mod:NewSpecialWarningDodge(1213704, nil, nil, nil, 2, 2) +local specWarnFlamethrower = mod:NewSpecialWarningDodge(465754, nil, nil, nil, 2, 15) +local specWarnShreddation = mod:NewSpecialWarningDodge(474337, nil, nil, nil, 2, 2) +local specWarnRPGG = mod:NewSpecialWarningDodge(1216039, nil, nil, nil, 2, 2) +local specWarnSurpriseInspection = mod:NewSpecialWarningDodge(465682, nil, nil, nil, 2, 15) +local specWarnBubbleBurp = mod:NewSpecialWarningDodge(469818, nil, nil, nil, 2, 2) +local specWarnSplishSplash = mod:NewSpecialWarningDodge(1217496, nil, nil, nil, 2, 15) +local specWarnSparkslam = mod:NewSpecialWarningDodge(465666, nil, nil, nil, 2, 2) +local specWarnBackwash = mod:NewSpecialWarningSpell(469721, nil, nil, nil, 2, 2) +local specWarnSurveyingBeamFailure = mod:NewSpecialWarningRun(462771, nil, nil, nil, 4, 2) --local yellChainLightning = mod:NewYell(387127) ---local specWarnStormshield = mod:NewSpecialWarningDispel(386223, "MagicDispeller", nil, nil, 1, 2) ---local specWarnHorrifyingShrill = mod:NewSpecialWarningInterrupt(434802, "HasInterrupt", nil, nil, 1, 2) +local specWarnOverchargeDispel = mod:NewSpecialWarningDispel(469799, "RemoveMagic", nil, nil, 1, 2) +local specWarnBloodthirstyCackle = mod:NewSpecialWarningDispel(463058, "RemoveEnrage", nil, nil, 1, 2) +local specWarnBloodthirstyCackleKick = mod:NewSpecialWarningInterrupt(463058, "HasInterrupt", nil, nil, 1, 2) +local specWarnSurveyingBeam = mod:NewSpecialWarningInterrupt(462771, "HasInterrupt", nil, nil, 1, 2) +local specWarnTrickShot = mod:NewSpecialWarningInterrupt(1214468, "HasInterrupt", nil, nil, 1, 2) +local specWarnRestorativeAlgae = mod:NewSpecialWarningInterrupt(471733, "HasInterrupt", nil, nil, 1, 2) ---local timerMassiveSlamCD = mod:NewCDNPTimer(15.4, 434252, nil, nil, nil, 2) ---local timerWebSprayCD = mod:NewCDPNPTimer(7, 434824, nil, nil, nil, 3) +local timerFlamethrowerCD = mod:NewCDNPTimer(25.5, 465754, nil, nil, nil, 3) +local timerShreddationCD = mod:NewCDNPTimer(9.7, 474337, nil, nil, nil, 3)--9.7-15 (delayed by flamethrower most likely +local timerRPGGCD = mod:NewCDNPTimer(14.5, 1216039, nil, nil, nil, 3) +local timerSurpriseInspectionCD = mod:NewCDNPTimer(9.7, 465682, nil, nil, nil, 3) +local timerBubbleBurpCD = mod:NewCDNPTimer(100, 469818, nil, nil, nil, 3)--TODO, add recast +local timerSplishSplashCD = mod:NewCDNPTimer(100, 1217496, nil, nil, nil, 3)--TODO, add recast +local timerBackwashCD = mod:NewCDNPTimer(100, 469721, nil, nil, nil, 2)--TODO, add recast +local timerWarpBloodCD = mod:NewCDNPTimer(20.6, 465827, nil, nil, nil, 2) +local timerSparkslamCD = mod:NewCDNPTimer(10.9, 465666, nil, nil, nil, 3) +local timerJettisonkelpCD = mod:NewCDNPTimer(60, 471736, nil, nil, nil, 5) +local timerOverchargeCD = mod:NewCDNPTimer(10.7, 469799, nil, nil, nil, 5, nil, DBM_COMMON_L.MAGIC_ICON)--10-15 +local timerSurveyingBeamCD = mod:NewCDNPTimer(20.6, 462771, nil, nil, nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON) +local timerBloodthirstyCackleCD = mod:NewCDNPTimer(100, 463058, nil, nil, nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON)--TODO, add recast +local timerTrickShotCD = mod:NewCDNPTimer(12.1, 1214468, nil, nil, nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON)--12-14 +local timerRestorativeAlgaeCD = mod:NewCDNPTimer(18.1, 471733, nil, nil, nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON) --local playerName = UnitName("player") @@ -53,70 +85,203 @@ function mod:CLTarget(targetname) end --]] ---[[ function mod:SPELL_CAST_START(args) if not self.Options.Enabled then return end local spellId = args.spellId if not self:IsValidWarning(args.sourceGUID) then return end - if spellId == 434824 then - + if spellId == 465754 then + timerFlamethrowerCD:Start(nil, args.sourceGUID) + if self:AntiSpam(3, 2) then + specWarnFlamethrower:Show() + specWarnFlamethrower:Play("frontal") + end + elseif spellId == 474337 then + timerShreddationCD:Start(nil, args.sourceGUID) + if self:AntiSpam(3, 2) then + specWarnShreddation:Show() + specWarnShreddation:Play("watchstep") + end + elseif spellId == 1216039 then + timerRPGGCD:Start(nil, args.sourceGUID) + if self:AntiSpam(3, 2) then + specWarnRPGG:Show() + specWarnRPGG:Play("watchstep") + end + elseif spellId == 465682 then + timerSurpriseInspectionCD:Start(nil, args.sourceGUID) + if self:AntiSpam(3, 2) then + specWarnSurpriseInspection:Show() + specWarnSurpriseInspection:Play("frontal") + end + elseif spellId == 462771 then + if self:CheckInterruptFilter(args.sourceGUID, false, true) then + specWarnSurveyingBeam:Show(args.sourceName) + specWarnSurveyingBeam:Play("kickcast") + end + elseif spellId == 463058 then + if self:CheckInterruptFilter(args.sourceGUID, false, true) then + specWarnBloodthirstyCackleKick:Show(args.sourceName) + specWarnBloodthirstyCackleKick:Play("kickcast") + end + elseif spellId == 1214468 then + if self:CheckInterruptFilter(args.sourceGUID, false, true) then + specWarnTrickShot:Show(args.sourceName) + specWarnTrickShot:Play("kickcast") + end + elseif spellId == 471733 then + if self:CheckInterruptFilter(args.sourceGUID, false, true) then + specWarnRestorativeAlgae:Show(args.sourceName) + specWarnRestorativeAlgae:Play("kickcast") + end + elseif spellId == 469818 then + --timerBubbleBurpCD:Start(nil, args.sourceGUID) + if self:AntiSpam(3, 2) then + specWarnBubbleBurp:Show() + specWarnBubbleBurp:Play("watchstep") + end + elseif spellId == 1217496 then + --timerSplishSplashCD:Start(nil, args.sourceGUID) + if self:AntiSpam(3, 2) then + specWarnSplishSplash:Show() + specWarnSplishSplash:Play("frontal") + end + elseif spellId == 469721 then + --timerBackwashCD:Start(nil, args.sourceGUID) + if self:AntiSpam(3, 4) then + specWarnBackwash:Show() + specWarnBackwash:Play("aesoon") + end + elseif spellId == 465827 then + timerWarpBloodCD:Start(nil, args.sourceGUID) + if self:AntiSpam(3, 5) then + warnWarpBlood:Show() + end + elseif spellId == 465666 then + timerSparkslamCD:Start(nil, args.sourceGUID) + if self:AntiSpam(3, 2) then + specWarnSparkslam:Show() + specWarnSparkslam:Play("watchstep") + end + elseif spellId == 465408 then + if self:AntiSpam(3, 6) then + warnRapidReconstruction:Show() + end end end ---]] ---[[ function mod:SPELL_CAST_SUCCESS(args) if not self.Options.Enabled then return end local spellId = args.spellId if not self:IsValidWarning(args.sourceGUID) then return end - if spellId == 434802 then - - --elseif spellId == 434793 then - -- if self.Options.SpecWarn434793interrupt and self:CheckInterruptFilter(args.sourceGUID, false, true) then - -- specWarnRadiantBarrage:Show(args.sourceName) - -- specWarnRadiantBarrage:Play("kickcast") - -- elseif self:AntiSpam(3, 7) then - -- warnRadiantBarrage:Show() - -- end - -- timerRadiantBarrageCD:Start(16.8, args.sourceGUID) + if spellId == 462771 then + timerSurveyingBeamCD:Start(19.1, args.sourceGUID)--20.6-1.5 + elseif spellId == 463058 then +-- timerBloodthirstyCackleCD:Start(19.1, args.sourceGUID) + elseif spellId == 1214468 then + timerTrickShotCD:Start(8.6, args.sourceGUID)--12.1-3.5 + elseif spellId == 469799 then + timerOverchargeCD:Start(nil, args.sourceGUID) + elseif spellId == 471733 then + timerRestorativeAlgaeCD:Start(16.1, args.sourceGUID)--18.1-2 + elseif spellId == 471736 then + if self:AntiSpam(5, 6) then + warnJettisonkelp:Show() + end + timerJettisonkelpCD:Start(nil, args.sourceGUID) end end ---]] ---[[ function mod:SPELL_INTERRUPT(args) if not self.Options.Enabled then return end - if args.extraSpellId == 434802 then - timerHorrifyingShrillCD:Start(13.3, args.destGUID) + if args.extraSpellId == 462771 then + timerSurveyingBeamCD:Start(19.1, args.destGUID)--20.6-1.5 + elseif args.extraSpellId == 463058 then +-- timerBloodthirstyCackleCD:Start(19.1, args.destGUID) + elseif args.extraSpellId == 1214468 then + timerTrickShotCD:Start(8.6, args.sourceGUID)--12.1-3.5 + elseif args.extraSpellId == 471733 then + timerRestorativeAlgaeCD:Start(16.1, args.destGUID)--18.1-2 end end ---]] ---[[ function mod:SPELL_AURA_APPLIED(args) if not self.Options.Enabled then return end local spellId = args.spellId - if spellId == 395035 then - + if spellId == 462771 then + if args:IsPlayer() then + specWarnSurveyingBeamFailure:Show() + specWarnSurveyingBeamFailure:Play("laserrun") + end + elseif spellId == 463061 and self:AntiSpam(3, 5) then + specWarnBloodthirstyCackle:Show(args.destName) + specWarnBloodthirstyCackle:Play("enrage") + elseif spellId == 469799 and self:CheckDispelFilter("magic") then + specWarnOverchargeDispel:Show(args.destName) + specWarnOverchargeDispel:Play("helpdispel") end end --mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED ---]] ---[[ function mod:UNIT_DIED(args) if not self.Options.Enabled then return end local cid = self:GetCIDFromGUID(args.destGUID) - if cid == 217531 then - + if cid == 230740 then--Shredinator 3000 + timerFlamethrowerCD:Stop(args.destGUID) + timerShreddationCD:Stop(args.destGUID) + elseif cid == 229212 then--Darkfuse Demolitionist + timerRPGGCD:Stop(args.destGUID) + elseif cid == 231385 then--Darkfuse Inspector + timerSurpriseInspectionCD:Stop(args.destGUID) + elseif cid == 229686 then--Venture Co. Surveyor + timerSurveyingBeamCD:Stop(args.destGUID) + elseif cid == 231197 then--Bubbles + timerBubbleBurpCD:Stop(args.destGUID) + timerSplishSplashCD:Stop(args.destGUID) + timerBackwashCD:Stop(args.destGUID) + elseif cid == 230748 then--Darkfuse Bloodwarper + timerWarpBloodCD:Stop(args.destGUID) + elseif cid == 229252 then--Darkfuse Hyena + timerBloodthirstyCackleCD:Stop(args.destGUID) + elseif cid == 229069 then--Mechadrone Sniper + timerTrickShotCD:Stop(args.destGUID) + elseif cid == 231325 then--darkfuse jumpstarter + timerSparkslamCD:Stop(args.destGUID) + elseif cid == 231312 then--Venture Co. Electrician + timerOverchargeCD:Stop(args.destGUID) + elseif cid == 231223 then--Disturbed Kelp + timerRestorativeAlgaeCD:Stop(args.destGUID) + timerJettisonkelpCD:Stop(args.destGUID) end end ---]] ---All timers subject to a ~0.5 second clipping due to ScanEngagedUnits +--All timers subject to a ~0.1-1 second clipping due to ScanEngagedUnits function mod:StartEngageTimers(guid, cid, delay) - if cid == 217531 then - + if cid == 230740 then--Shredinator 3000 + timerShreddationCD:Start(3.5-delay, guid) + timerFlamethrowerCD:Start(7-delay, guid) + elseif cid == 229212 then--Darkfuse Demolitionist + timerRPGGCD:Start(2-delay, guid) + elseif cid == 231385 then--Darkfuse Inspector + timerSurpriseInspectionCD:Start(8-delay, guid) + elseif cid == 229686 then--Venture Co. Surveyor + timerSurveyingBeamCD:Start(7-delay, guid) + elseif cid == 231197 then--Bubbles + timerBubbleBurpCD:Start(4.5-delay, guid) + timerSplishSplashCD:Start(9-delay, guid) + timerBackwashCD:Start(15-delay, guid) + elseif cid == 230748 then--Darkfuse Bloodwarper + timerWarpBloodCD:Start(6-delay, guid) + elseif cid == 229252 then--Darkfuse Hyena + timerBloodthirstyCackleCD:Start(5-delay, guid) + elseif cid == 229069 then--Mechadrone Sniper + timerTrickShotCD:Start(5.5-delay, guid) + elseif cid == 231325 then--darkfuse jumpstarter + timerSparkslamCD:Start(6-delay, guid) + elseif cid == 231312 then--Venture Co. Electrician + timerOverchargeCD:Start(7-delay, guid) + elseif cid == 231223 then--Disturbed Kelp + timerJettisonkelpCD:Start(7-delay, guid) +-- timerRestorativeAlgaeCD:Start(13-delay, guid)--Probably health based for first cast end end @@ -125,3 +290,10 @@ end function mod:LeavingZoneCombat() self:Stop(true) end + +function mod:RAID_BOSS_WHISPER(msg) + if msg:find("spell:1213704") then + specWarnZepBarrage:Show() + specWarnZepBarrage:Play("watchstep") + end +end