vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 --<< ====================================================================== >>--
2 -- Setup Module --
3 --<< ====================================================================== >>--
4 AceTimerShaman = AceTimer:AddModule()
5  
6 function AceTimerShaman:Initialize()
7 local _, eclass = UnitClass("player")
8 if eclass ~= "SHAMAN" then
9 self:DelModule(self)
10 AceTimerShaman = nil
11 ACETIMER.SHAMAN = nil
12 end
13 end
14  
15 function AceTimerShaman:Enable()
16 self:Setup()
17 self:RegisterEvent("CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS", "CountTotemHits");
18 self:RegisterEvent("CHAT_MSG_COMBAT_HOSTILEPLAYER_HITS", "CountTotemHits");
19 end
20  
21 function AceTimerShaman:Disable()
22 self:UnregisterAllEvents(self)
23 end
24  
25 --<< ====================================================================== >>--
26 -- Setup Timers --
27 --<< ====================================================================== >>--
28 function AceTimerShaman:Setup()
29 local A = ACETIMER
30 local C = A.SHAMAN
31 self:AddGroup(1, "GREEN", FALSE)
32 self:AddGroup(2, "MAROON", FALSE)
33 self:AddGroup(3, "AQUA", FALSE)
34 self:AddGroup(4, "NAVY", FALSE)
35  
36 self:AddTimer(A.SPELL, C.EARTHBIND_TOTEM, 45, 0,1,0, { gr=1, rc=TRUE })
37 self:AddTimer(A.SPELL, C.STONECLAW_TOTEM, 15, 0,1,0, { gr=1, rc=TRUE, h={rt={50,150,220,280,390,480} }})
38 self:AddTimer(A.SPELL, C.STONESKIN_TOTEM, 120, 0,1,0, { gr=1, rc=TRUE, d={rt={45}} })
39 self:AddTimer(A.SPELL, C.STRENGTH_OF_EARTH_TOTEM, 120, 0,1,0, { gr=1, rc=TRUE })
40 self:AddTimer(A.SPELL, C.TREMOR_TOTEM, 90, 0,1,0, { gr=1, rc=TRUE })
41  
42 self:AddTimer(A.SPELL, C.FIRE_NOVA_TOTEM, 5, 0,1,0, { gr=2, rc=TRUE, d={tn=C.IMPROVED_FIRE_TOTEMS, tb=-1}})
43 self:AddTimer(A.SPELL, C.FLAMETONGUE_TOTEM, 120, 0,1,0, { gr=2, rc=TRUE })
44 self:AddTimer(A.SPELL, C.FROST_RESISTANCE_TOTEM, 120, 0,1,0, { gr=2, rc=TRUE })
45 self:AddTimer(A.SPELL, C.MAGMA_TOTEM, 20, 0,1,0, { gr=2, rc=TRUE })
46 self:AddTimer(A.SPELL, C.SEARING_TOTEM, 30, 0,1,0, { gr=2, rc=TRUE, d={rs=5} })
47  
48 self:AddTimer(A.SPELL, C.GRACE_OF_AIR_TOTEM, 120, 0,1,0, { gr=3, rc=TRUE })
49 self:AddTimer(A.SPELL, C.GROUNDING_TOTEM, 45, 0,1,0, { gr=3, rc=TRUE })
50 self:AddTimer(A.SPELL, C.NATURE_RESISTANCE_TOTEM, 120, 0,1,0, { gr=3, rc=TRUE })
51 self:AddTimer(A.SPELL, C.SENTRY_TOTEM, 300, 0,1,0, { gr=3, rc=TRUE })
52 self:AddTimer(A.SPELL, C.TRANQUIL_AIR_TOTEM, 90, 0,1,0, { gr=3, rc=TRUE })
53 self:AddTimer(A.SPELL, C.WINDFURY_TOTEM, 120, 0,1,0, { gr=3, rc=TRUE })
54 self:AddTimer(A.SPELL, C.WINDWALL_TOTEM, 120, 0,1,0, { gr=3, rc=TRUE })
55  
56 self:AddTimer(A.SPELL, C.DISEASE_CLEANSING_TOTEM, 120, 0,1,0, { gr=4, rc=TRUE })
57 -- self:AddTimer(A.SPELL, C.ENAMORED_WATER_SPIRIT, 24, 0,1,0, { gr=4, rc=TRUE, d={tn=C.EVENTIDE, tb=2} })
58 self:AddTimer(A.SPELL, C.ENAMORED_WATER_SPIRIT, 24, 0,1,0, { gr=4, rc=TRUE })
59 self:AddTimer(A.SPELL, C.FIRE_RESISTANCE_TOTEM, 120, 0,1,0, { gr=4, rc=TRUE })
60 -- self:AddTimer(A.SPELL, C.HEALING_STREAM_TOTEM, 60, 0,1,0, { gr=4, rc=TRUE, d={tn=C.EVENTIDE, tb=2} })
61 self:AddTimer(A.SPELL, C.HEALING_STREAM_TOTEM, 60, 0,1,0, { gr=4, rc=TRUE })
62 -- self:AddTimer(A.SPELL, C.MANA_SPRING_TOTEM, 60, 0,1,0, { gr=4, rc=TRUE, d={tn=C.EVENTIDE, tb=2} })
63 self:AddTimer(A.SPELL, C.MANA_SPRING_TOTEM, 60, 0,1,0, { gr=4, rc=TRUE })
64 self:AddTimer(A.SPELL, C.MANA_TIDE_TOTEM, 12, 0,1,0, { gr=4, rc=TRUE })
65 self:AddTimer(A.SPELL, C.POISON_CLEANSING_TOTEM, 120, 0,1,0, { gr=4, rc=TRUE })
66  
67 self:AddTimer(A.SPELL, C.EARTH_SHOCK, 2, 1,0,0)
68 self:AddTimer(A.SPELL, C.FLAME_SHOCK, 12, 1,0,0, { rc=true})
69 self:AddTimer(A.SPELL, C.FROST_SHOCK, 8, 1,0,0, { rc=true})
70 self:AddTimer(A.SPELL, C.STORMSTRIKE, 12, 0,1,1)
71  
72 self:AddTimer(A.EVENT, C.ANCESTRAL_FORTITUDE, 15, 1,1,0, { cr="LIME", a=1, xn=C.ANCESTRAL_HEALING })
73 self:AddTimer(A.EVENT, C.CLEARCASTING, 15, 0,1,1, { cr="LIME", a=1, tx="Interface\\Icons\\Spell_Shadow_ManaBurn" })
74 end
75  
76 --<< ====================================================================== >>--
77 -- Totem Specifics --
78 --<< ====================================================================== >>--
79 function AceTimerShaman:CountTotemHits()
80 if self:FindGlobal(arg1, COMBATHITOTHEROTHER) -- "%s hits %s for %d."
81 or self:FindGlobal(arg1, COMBATHITSCHOOLOTHEROTHER) -- "%s hits %s for %d %s damage."
82 or self:FindGlobal(arg1, COMBATHITCRITOTHEROTHER) -- "%s crits %s for %d."
83 or self:FindGlobal(arg1, COMBATHITCRITSCHOOLOTHEROTHER) -- "%s crits %s for %d %s damage."
84 then
85 totem = string.gsub(self.gs_captured[2], " [IVX]+$", "")
86 for i = 1, 20 do local bar = self.bars[i]
87 if bar.name == totem then
88 if not bar.hits then
89 bar.hits = bar.timer.x.h and self:GetDuration(50, bar.timer.x.h, bar.rank) or 5
90 end
91 bar.hits = bar.hits - self.gs_captured[3]
92 if bar.hits <= 0 then
93 TimexBar:StopBar(bar.id)
94 return self:StopBar(bar.id)
95 end
96 end
97 end
98 end
99 end