local mod = DBM:NewMod("Maiden", "DBM-Karazhan") local L = mod:GetLocalizedStrings() mod:SetRevision(("$Revision: 164 $"):sub(12, -3)) mod:SetCreatureID(16457) --mod:RegisterCombat("yell", L.DBM_MOV_YELL_PULL) mod:RegisterCombat("combat") mod:RegisterEvents( "SPELL_CAST_START", "SPELL_AURA_APPLIED", "SPELL_CAST_SUCCESS", "SPELL_AURA_REMOVED" ) local warningHolyFire = mod:NewTargetAnnounce(85122, 3) -- local timerRepentance = mod:NewBuffActiveTimer(6, 85177) local warningRepentance = mod:NewSpellAnnounce(85177, 3) local warningRepentanceSoon = mod:NewSoonAnnounce(85177, 2) local timerRepentance = mod:NewNextTimer(53, 85177) local timerRepentanceCast = mod:NewCastTimer(3, 85177) -- Ascension specific local warningSpecDespRun = mod:NewSpecialWarning(L.WarnPrayerRun) local warningDesperate = mod:NewSpellAnnounce(85108, 2) -- local timerDesperates = mod:NewBuffActiveTimer(3, 85120) local timerDesperateExplode = mod:NewBuffActiveTimer(14, 85103) local timerNextDesperate = mod:NewNextTimer(53, 85120) local timerDesperateCast = mod:NewCastTimer(4, 85120) -- local timerWrathSkipped = mod:NewCDTimer(12, 32445) local timerWrath = mod:NewNextTimer(12, 32445) local warnSoonWrath = mod:NewSoonAnnounce(32445, 2) mod:AddBoolOption("RangeFrame", true) function mod:OnCombatStart(delay) timerRepentance:Start(20-delay) timerNextDesperate:Start(40-delay) timerWrath:Start(7-delay) -- timerWrathSkipped:Schedule(26) if self.Options.RangeFrame then DBM.RangeCheck:Show(10) end end function mod:OnCombatEnd() if self.Options.RangeFrame then DBM.RangeCheck:Hide() end end function mod:SPELL_AURA_APPLIED(args) if args:IsSpellID(85122) then warningHolyFire:Show(args.destName) end end function mod:SPELL_CAST_SUCCESS(args) if args:IsSpellID(32445, 85228, 85229) then -- self:Unschedule(timerWrathSkipped); local elapsed, total = timerNextDesperate:GetTime() if total - elapsed < 12 then timerWrath:Start(29) warnSoonWrath:Schedule(27) else timerWrath:Start() warnSoonWrath:Schedule(10) end -- timerWrathSkipped:Schedule(20) end end function mod:SPELL_CAST_START(args) if args:IsSpellID(196718, 196754, 196719, 351009) then -- Cast start of Repentance (3s) --elseif args:IsSpellID(85177, 85307, 196743) then -- Actual spell of Repentance warningRepentanceSoon:Cancel() timerRepentanceCast:Start() timerRepentance:Start() warningRepentanceSoon:Schedule(48) elseif args:IsSpellID(85120) then warningDesperate:Show() timerDesperateCast:Start() timerNextDesperate:Start() timerDesperateExplode:Start() warningSpecDespRun:Schedule(10) end end function mod:SPELL_AURA_REMOVED(args) if args:IsSpellID(29522) then timerHolyFire:Cancel() end end