--<< ====================================================================== >>-- -- Setup Module -- --<< ====================================================================== >>-- AceTimerHunter = AceTimer:AddModule() function AceTimerHunter:Initialize() local _, eclass = UnitClass("player") if eclass ~= "HUNTER" then self:DelModule(self) AceTimerHunter = nil ACETIMER.HUNTER = nil end end function AceTimerHunter:Enable() self:Setup() self:RegisterEvent("CHAT_MSG_SPELL_PET_DAMAGE", "SPELL_PET_DAMAGE"); end function AceTimerHunter:Disable() self:UnregisterAllEvents(self) end --<< ====================================================================== >>-- -- Setup Timers -- --<< ====================================================================== >>-- function AceTimerHunter:Setup() local A = ACETIMER local C = A.HUNTER self:AddGroup(1, TRUE, "FUCHSIA") self:AddGroup(2, FALSE, "MAROON") self:AddTimer(A.SPELL, C.BESTIAL_WRATH, 15, 0,1,1) self:AddTimer(A.SPELL, C.CONCUSSIVE_SHOT, 4, 1,0,0, { ea={[C.IMPROVED_CONCUSSIVE_SHOT]=4} }) self:AddTimer(A.SPELL, C.COUNTERATTACK, 5, 1,0,0) self:AddTimer(A.SPELL, C.DETERRENCE, 10, 0,1,1) self:AddTimer(A.SPELL, C.EXPLOSIVE_TRAP, 60, 0,0,0, { gr=1, rc=TRUE, ea={[C.EXPLOSIVE_TRAP_EFFECT]=60} }) self:AddTimer(A.SPELL, C.FREEZING_TRAP, 60, 0,0,0, { gr=1, rc=TRUE, ea={[C.FREEZING_TRAP_EFFECT]=60} }) self:AddTimer(A.SPELL, C.FROST_TRAP, 60, 0,0,0, { gr=1, rc=TRUE, ea={[C.FROST_TRAP_EFFECT]=60} }) self:AddTimer(A.SPELL, C.FLARE, 30, 0,0,0, { rc=TRUE }) self:AddTimer(A.SPELL, C.HUNTER_S_MARK, 120, 1,0,0, { rc=TRUE }) self:AddTimer(A.SPELL, C.IMMOLATION_TRAP, 60, 0,0,0, { gr=1, ea={[C.IMMOLATION_TRAP_EFFECT]=60} }) self:AddTimer(A.SPELL, C.RAPID_FIRE, 10, 0,1,1) self:AddTimer(A.SPELL, C.SCARE_BEAST, 10, 1,0,0, { rc=TRUE, d={rs=5} }) self:AddTimer(A.SPELL, C.SCATTER_SHOT, 4, 1,0,0) self:AddTimer(A.SPELL, C.SCORPID_STING, 20, 1,0,0, { gr=2, rc=TRUE }) self:AddTimer(A.SPELL, C.SERPENT_STING, 15, 1,0,0, { gr=2, rc=TRUE }) self:AddTimer(A.SPELL, C.VIPER_STING, 8, 1,0,0, { gr=2, rc=TRUE }) self:AddTimer(A.SPELL, C.WING_CLIP, 10, 1,0,0, { rc=TRUE, ea={[C.IMPROVED_WING_CLIP]=10} }) self:AddTimer(A.SPELL, C.WYVERN_STING, 12, 1,0,0, { gr=2, rc=TRUE }) self:AddTimer(A.EVENT, C.EXPLOSIVE_TRAP_EFFECT, 20, 1,0,1, { gr=1, xn=C.EXPLOSIVE_TRAP }) self:AddTimer(A.EVENT, C.FREEZING_TRAP_EFFECT, 10, 1,0,1, { gr=1, d={rs=5, tn=C.CLEVER_TRAPS, tb=0.15, tp=1}, xn=C.FREEZING_TRAP }) self:AddTimer(A.EVENT, C.FROST_TRAP_EFFECT, 30, 0,0,0, { gr=1, d={tn=C.CLEVER_TRAPS, tb=0.15, tp=1}, xn=C.FROST_TRAP }) self:AddTimer(A.EVENT, C.IMMOLATION_TRAP_EFFECT, 20, 1,0,1, { gr=1, xn=C.IMMOLATION_TRAP }) self:AddTimer(A.EVENT, C.IMPROVED_CONCUSSIVE_SHOT, 3, 1,0,0, { cr="LIME", xn=C.CONCUSSIVE_SHOT }) self:AddTimer(A.EVENT, C.IMPROVED_WING_CLIP, 5, 1,0,0, { cr="LIME", xn=C.WING_CLIP } ) self:AddTimer(A.EVENT, C.QUICK_SHOTS, 12, 0,1,1, { a=1, cr="LIME", tx="Interface\\Icons\\Ability_Warrior_InnerRage" }) self:AddTimer(A.SKILL, C.COUNTERATTACK, 5, 0,1,0, { cr="YELLOW", rc=TRUE }) self:AddTimer(A.SKILL, C.MONGOOSE_BITE, 5, 0,1,0, { cr="YELLOW", rc=TRUE }) end --<< ====================================================================== >>-- -- Trap Specific -- --<< ====================================================================== >>-- function AceTimerHunter:SPELL_PET_DAMAGE() if self:FindGlobal(arg1, SPELLRESISTOTHEROTHER) -- "%s's %s was resisted by %s."; then local event = self.timers[ACETIMER.EVENT][self.gs_captured[2]] if event and event.x.gr and event.x.gr == 1 and event.v and event.v > GetTime() then if self.gs_captured[2] == ACETIMER.HUNTER.FROST_TRAP_EFFECT then self:StartTimer(ACETIMER.EVENT, self.gs_captured[2], "none") else self:CleanGroup(event.x.gr, self.gs_captured[3]) end event.v = nil end end end