local mod = DBM:NewMod("Council", "DBM-BlackTemple") local L = mod:GetLocalizedStrings() mod:SetRevision(("$Revision: 5019 $"):sub(12, -3)) mod:SetCreatureID(22949, 22950, 22951, 22952) mod:RegisterCombat("combat", 22949, 22950, 22951, 22952) mod:RegisterEvents( "SPELL_CAST_START", "SPELL_HEAL", "SPELL_INTERRUPT", "SPELL_AURA_APPLIED", "SPELL_AURA_REMOVED", "UNIT_DIED" ) --Lady Malande local warnPaintoPleasure = mod:NewSpellAnnounce(2144463, 3) local timerNextPaintoPleasure = mod:NewNextTimer(15, 2144463) local timerPaintoPleasure = mod:NewCastTimer(1.5, 2144463) local warnSadism = mod:NewSpellAnnounce(2144464, 3) local timerNextSadism = mod:NewNextTimer(45, 2144464) local timerSadism = mod:NewCastTimer(3.5, 2144464) --- Mythic/Ascended local specWarnEmpoweredSadism = mod:NewSpecialWarning("Empowered Sadism", 2144514, 3) local timerCastEmpoweredSadism = mod:NewCastTimer(3.5, 2144514) --Veras Darkshadow local warnSmokeBomb = mod:NewSpellAnnounce(2144560, 3) local timerNextSmokeBomb = mod:NewNextTimer(60, 2144560) --Gathios the Shatterer local warnDeathSentence = mod:NewAnnounce("Death Sentence on %s", 3, 2144260) local warnEmpoweredDeathSentence = mod:NewAnnounce("Empowered Death Sentence on %s", 3, 214431) local specWarnDeathSentence = mod:NewSpecialWarningYou(2144260) local specWarnEmpoweredDeathSentence= mod:NewSpecialWarning("Empowered Death Sentence on you", 3, 214431) local timerNextDeathSentence = mod:NewNextTimer(60, 2144260) local timerDeathSentence = mod:NewTargetTimer(10, 2144260) local timerNextConsecrate = mod:NewNextTimer(15, 2144256, nil, false) --High Nethermancer Zerevor local timerNextRuneofPower = mod:NewNextTimer(60, 2144368) local warnNetherprotection = mod:NewSpellAnnounce(2144351, 3) local timerNextNetherProtection = mod:NewNextTimer(30, 2144351) --Authority local timerCrownofCommand = mod:NewTimer(18, "Crown of Command on %s", 2144201) local warnCrownofCommand = mod:NewAnnounce("Crown of Command on %s", 3, 2144201) local councilDeath = 0 function mod:OnCombatStart(delay) councilDeath = 0 timerNextPaintoPleasure:Start(25-delay) timerNextSmokeBomb:Start(33-delay) timerNextDeathSentence:Start(15-delay) timerNextConsecrate:Start(10-delay) timerNextRuneofPower:Start(45-delay) timerNextSadism:Start(60-delay) self:ScheduleMethod(33-delay,"SmokeBomb") end function mod:SmokeBomb() warnSmokeBomb:Show() timerNextSmokeBomb:cancel() if councilDeath == 0 then timerNextSmokeBomb:start(60) elseif councilDeath == 1 then timerNextSmokeBomb:start(45) elseif councilDeath == 2 then timerNextSmokeBomb:start(30) elseif councilDeath == 3 then timerNextSmokeBomb:start(15) end end function mod:SPELL_AURA_APPLIED(args) if args:IsSpellID(2144560, 2144610) and DBM:AntiSpam(16, 1) then warnSmokeBomb:Show() if councilDeath == 0 then timerNextSmokeBomb:Start(60) elseif councilDeath == 1 then timerNextSmokeBomb:Start(45) elseif councilDeath == 2 then timerNextSmokeBomb:Start(30) elseif councilDeath == 3 then timerNextSmokeBomb:Start(15) end elseif args:IsSpellID(2144260) then if args:IsPlayer() then specWarnDeathSentence:Show(); else warnDeathSentence:Show(args.destName) end timerDeathSentence:Start(args.destName) self:SetIcon(args.destName, 8, 15) if DBM:AntiSpam(2,5) then if councilDeath == 0 then timerNextDeathSentence:Start(60) elseif councilDeath == 1 then timerNextDeathSentence:Start(45) elseif councilDeath == 2 then timerNextDeathSentence:Start(30) elseif councilDeath == 3 then timerNextDeathSentence:Start(15) end end elseif args:IsSpellID(2144310) then if args:IsPlayer() then specWarnEmpoweredDeathSentence:Show(); else warnEmpoweredDeathSentence:Show(args.destName) end timerDeathSentence:Start(args.destName) self:SetIcon(args.destName, 8, 15) if DBM:AntiSpam(2,4) then if councilDeath == 0 then timerNextDeathSentence:Start(60) elseif councilDeath == 1 then timerNextDeathSentence:Start(45) elseif councilDeath == 2 then timerNextDeathSentence:Start(30) elseif councilDeath == 3 then timerNextDeathSentence:Start(15) end end elseif args:IsSpellID(2144256) then timerNextConsecrate:Start() elseif args:IsSpellID(2144368, 2144418) and DBM:AntiSpam(20, 2) then timerNextRuneofPower:Start() elseif args:IsSpellID(2144351, 2144401) then warnNetherprotection:Show() end if args:IsSpellID(2144201) then timerCrownofCommand:Start(args.destName) warnCrownofCommand:Show(args.destName) end if args:IsSpellID(2144559) and args.sourceName == "Veras DarkShadow" and DBM:AntiSpam(14,3) then self:ScheduleMethod(2,"SmokeBomb") end end function mod:SPELL_AURA_REMOVED(args) if args:IsSpellID(2144351, 2144401) then timerNextNetherProtection:Start() end end function mod:SPELL_CAST_START(args) if args:IsSpellID(2144462, 2144463, 2144512, 2144513) then warnPaintoPleasure:Show() timerNextPaintoPleasure:Start() timerPaintoPleasure:Start() --when rogue splits, 22951 is fake 22952 is real. elseif args:IsSpellID(2144464, 2144465, 2144466, 2144467) then warnSadism:Show() timerSadism:Start() if councilDeath == 0 then timerNextSadism:Start(60) elseif councilDeath == 1 then timerNextSadism:Start(45) elseif councilDeath == 2 then timerNextSadism:Start(30) elseif councilDeath == 3 then timerNextSadism:Start(15) end elseif args:IsSpellID(2144514, 2144515, 2144516, 2144517) then specWarnEmpoweredSadism:Show() timerCastEmpoweredSadism:Start() if councilDeath == 0 then timerNextSadism:Start(60) elseif councilDeath == 1 then timerNextSadism:Start(45) elseif councilDeath == 2 then timerNextSadism:Start(30) elseif councilDeath == 3 then timerNextSadism:Start(15) end end end function mod:SPELL_INTERRUPT(args) if args:IsSpellID(2144462, 2144463, 2144512, 2144513) then timerPaintoPleasure:Cancel() end end function mod:UNIT_DIED(args) local cid = self:GetCIDFromGUID(args.destGUID) if cid == 22952 and DBM:AntiSpam(2,8) then self:UnscheduleMethod("SmokeBomb") councilDeath = councilDeath + 1 end if args.destName =="Lady Malande" and DBM:AntiSpam(2,5) then councilDeath = councilDeath + 1 timerNextSadism:Cancel() end if args.destName =="High Nethermancer Zerevor" and DBM:AntiSpam(2,6) then councilDeath = councilDeath + 1 timerNextRuneofPower:Cancel() end if args.destName =="Gathios the Shatterer" and DBM:AntiSpam(2,7) then councilDeath = councilDeath + 1 timerNextDeathSentence:Cancel() end end