vanilla-wow-addons – Blame information for rev 1
?pathlinks?
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 |