Nenue@6
|
1 local ADDON, Tk = ...
|
Nenue@6
|
2 local T = Tk.Addon
|
Nenue@6
|
3 local mod, tinsert, ipairs, pairs = T.modules.TimerControl, tinsert, ipairs, pairs
|
Nenue@9
|
4 local print = function(...)
|
Nenue@9
|
5 if not DEBUG then return end
|
Nenue@9
|
6 if _G.Devian and _G.DevianDB.workspace ~= 1 then
|
Nenue@9
|
7 _G.print('TimerPresets', ...)
|
Nenue@9
|
8 end
|
Nenue@9
|
9 end
|
Nenue@6
|
10
|
Nenue@6
|
11
|
Nenue@6
|
12 --- Timer config presets
|
Nenue@6
|
13 mod.AddTimer = function(batch, container)
|
Nenue@6
|
14 if container then
|
Nenue@6
|
15 Turok.defaults.spirit.containers[container] = {}
|
Nenue@6
|
16 end
|
Nenue@6
|
17
|
Nenue@6
|
18 for i, entry in ipairs(batch) do
|
Nenue@6
|
19 print(cPink('AddTimer(#=')..cWord(#batch)..cPink(', ')..cWord(container)..cPink(')'))
|
Nenue@6
|
20 if container then
|
Nenue@6
|
21 entry.container = container
|
Nenue@6
|
22 print(' container set to', container)
|
Nenue@6
|
23 end
|
Nenue@6
|
24 print(' unpacking', entry.name)
|
Nenue@6
|
25 tinsert(Turok.defaults.spirit.timers, entry)
|
Nenue@6
|
26 end
|
Nenue@6
|
27 end
|
Nenue@6
|
28 local tp = mod.index.preset
|
Nenue@6
|
29
|
Nenue@6
|
30 mod.LoadPresets = function()
|
Nenue@6
|
31 for setName, setFunc in pairs(tp) do
|
Nenue@6
|
32 setFunc()
|
Nenue@6
|
33 end
|
Nenue@6
|
34 end
|
Nenue@6
|
35
|
Nenue@6
|
36 tp.Containers = function()
|
Nenue@6
|
37 local defs = {
|
Nenue@6
|
38 anchor = 'TOPLEFT', parent = 'TekplayerCastBar', anchorTo = 'BOTTOMLEFT', x = 0, y = -3, width = 700,
|
Nenue@6
|
39 height = 200,
|
Nenue@6
|
40 spacing = 3,
|
Nenue@6
|
41 padding = 0,
|
Nenue@6
|
42 ["default"] = {
|
Nenue@6
|
43 name = "Default",
|
Nenue@6
|
44 childAnchor = 'TOPLEFT',
|
Nenue@6
|
45 childAnchorTo = 'TOPLEFT',
|
Nenue@6
|
46 },
|
Nenue@6
|
47 ["DoTs"] = {
|
Nenue@6
|
48 anchor ='BOTTOM', anchorTo='TOP',
|
Nenue@9
|
49 parent='TkPowerBar',
|
Nenue@6
|
50 display = 'icon',
|
Nenue@6
|
51 size = 48,
|
Nenue@6
|
52 height = 48, width = 48,
|
Nenue@6
|
53 x = 0, y = 16,
|
Nenue@6
|
54 padding = 0,
|
Nenue@6
|
55 spacing = 0,
|
Nenue@6
|
56 childAnchor = 'BOTTOMLEFT',
|
Nenue@6
|
57 childAnchorTo = 'BOTTOMLEFT',
|
Nenue@6
|
58 }
|
Nenue@6
|
59 }
|
Nenue@6
|
60 for k,v in pairs(defs) do
|
Nenue@6
|
61 TurokData.spirit.containers[k] = v
|
Nenue@6
|
62 end
|
Nenue@6
|
63 end
|
Nenue@6
|
64
|
Nenue@6
|
65 tp.Rogue = function()
|
Nenue@6
|
66 mod.AddTimer(
|
Nenue@6
|
67 {
|
Nenue@6
|
68 {
|
Nenue@6
|
69 name = "Vendetta",
|
Nenue@6
|
70 type = 'cooldown',
|
Nenue@6
|
71 display = 'icon',
|
Nenue@6
|
72 unit = 'player',
|
Nenue@6
|
73 spellID = 79140,
|
Nenue@6
|
74 playerClass = 'ROGUE',
|
Nenue@6
|
75 specPage = 1,
|
Nenue@6
|
76 },
|
Nenue@6
|
77 {
|
Nenue@6
|
78 name = "Burst of Speed",
|
Nenue@6
|
79 type = 'cooldown',
|
Nenue@6
|
80 display = 'icon',
|
Nenue@6
|
81 unit = 'player',
|
Nenue@6
|
82 spellID = 108212,
|
Nenue@6
|
83 playerClass = 'ROGUE'
|
Nenue@6
|
84 },
|
Nenue@6
|
85 {
|
Nenue@6
|
86 name = "Rupture",
|
Nenue@6
|
87 type = 'aura',
|
Nenue@6
|
88 display = 'icon',
|
Nenue@6
|
89 unit = 'target',
|
Nenue@6
|
90 spellID = 1943,
|
Nenue@6
|
91 filters = 'PLAYER|HARMFUL',
|
Nenue@6
|
92 playerClass = 'ROGUE',
|
Nenue@6
|
93 specPage = {1,3},
|
Nenue@6
|
94 },
|
Nenue@6
|
95 {
|
Nenue@6
|
96 name = "Slice and Dice",
|
Nenue@6
|
97 type = 'aura',
|
Nenue@6
|
98 display = 'icon',
|
Nenue@6
|
99 spellID = 5171,
|
Nenue@6
|
100 unit = 'player',
|
Nenue@6
|
101 filters = 'PLAYER|HELPFUL',
|
Nenue@6
|
102 playerClass = 'ROGUE',
|
Nenue@6
|
103 specPage = {2,3},
|
Nenue@6
|
104 },
|
Nenue@6
|
105 {
|
Nenue@6
|
106 name = "Deadly Missing",
|
Nenue@6
|
107 type = 'aura',
|
Nenue@6
|
108 spellID = 2823,
|
Nenue@6
|
109 display = 'icon',
|
Nenue@6
|
110 unit = 'player',
|
Nenue@6
|
111 playerClass = 'ROGUE',
|
Nenue@6
|
112 specPage = {1,3},
|
Nenue@6
|
113 inverse = true,
|
Nenue@6
|
114 },
|
Nenue@6
|
115 {
|
Nenue@6
|
116 name = "Stealth",
|
Nenue@6
|
117 type ='aura',
|
Nenue@6
|
118 spellID = 1784,
|
Nenue@6
|
119 display = 'icon',
|
Nenue@6
|
120 unit = 'player',
|
Nenue@6
|
121 playerClass = 'ROGUE',
|
Nenue@6
|
122 },
|
Nenue@6
|
123 {
|
Nenue@6
|
124 name = "Recuperate",
|
Nenue@6
|
125 type ='aura',
|
Nenue@6
|
126 spellID = 73651,
|
Nenue@6
|
127 display = 'icon',
|
Nenue@6
|
128 unit = 'player',
|
Nenue@6
|
129 playerClass = 'ROGUE',
|
Nenue@6
|
130 },
|
Nenue@6
|
131 })
|
Nenue@6
|
132 end
|
Nenue@6
|
133 tp.Mage = function()
|
Nenue@6
|
134 mod.AddTimer({
|
Nenue@6
|
135 {
|
Nenue@6
|
136 name = "Rune of Power",
|
Nenue@6
|
137 type = 'aura',
|
Nenue@6
|
138 spellID = 116014,
|
Nenue@6
|
139 unit = 'player',
|
Nenue@6
|
140 display = 'icon',
|
Nenue@6
|
141 playerClass = 'MAGE',
|
Nenue@6
|
142 talentID = 16032,
|
Nenue@6
|
143 },
|
Nenue@6
|
144 {
|
Nenue@6
|
145 name = "Mage Nova",
|
Nenue@6
|
146 spellID = {157980, 157981, 157997},
|
Nenue@6
|
147 talentOffset = {5, 3},
|
Nenue@6
|
148 unit = 'player',
|
Nenue@6
|
149 type='cooldown',
|
Nenue@6
|
150 display='icon',
|
Nenue@6
|
151 playerClass='MAGE',
|
Nenue@6
|
152 persist = true,
|
Nenue@6
|
153 },
|
Nenue@6
|
154 {
|
Nenue@6
|
155 name = "Mage Bomb",
|
Nenue@6
|
156 talentOffset = {5, 1},
|
Nenue@6
|
157 unit = 'target',
|
Nenue@6
|
158 type= 'aura',
|
Nenue@6
|
159 display='icon',
|
Nenue@6
|
160 filters = 'HARMFUL|PLAYER',
|
Nenue@6
|
161 playerClass='MAGE',
|
Nenue@6
|
162 persist = true,
|
Nenue@6
|
163 },
|
Nenue@6
|
164 {
|
Nenue@6
|
165 name = "Frozen Orb",
|
Nenue@6
|
166 spellID = 84714,
|
Nenue@6
|
167 threschold = 2,
|
Nenue@6
|
168 unit = 'player',
|
Nenue@6
|
169 type='cooldown',
|
Nenue@6
|
170 display='icon',
|
Nenue@6
|
171 playerClass='MAGE',
|
Nenue@6
|
172 specPage=3,
|
Nenue@6
|
173 },
|
Nenue@6
|
174 {
|
Nenue@6
|
175 name = 'Arcane Power',
|
Nenue@6
|
176 type = 'cooldown',
|
Nenue@6
|
177 display = 'icon',
|
Nenue@6
|
178 unit = 'player',
|
Nenue@6
|
179 spellID = 12042,
|
Nenue@6
|
180 playerClass = 'MAGE',
|
Nenue@6
|
181 specPage = 1,
|
Nenue@6
|
182 }
|
Nenue@6
|
183 })
|
Nenue@6
|
184 end
|
Nenue@6
|
185 tp.UseEffects = function()
|
Nenue@6
|
186 mod.AddTimer({
|
Nenue@6
|
187
|
Nenue@6
|
188 {
|
Nenue@6
|
189 name = "Trinket 1",
|
Nenue@6
|
190 type ='cooldown', display = 'icon',
|
Nenue@6
|
191 unit = 'player',
|
Nenue@6
|
192 persist = true,
|
Nenue@6
|
193 inventoryID = 13,
|
Nenue@6
|
194 },
|
Nenue@6
|
195 {
|
Nenue@6
|
196 name = "Maalus Effect", -- Maalus
|
Nenue@6
|
197 playerClass = {'HUNTER', 'ROGUE'},
|
Nenue@6
|
198 type = 'aura', display = 'progressbar',
|
Nenue@6
|
199 unit = 'player', filters = 'HELPFUL',
|
Nenue@6
|
200 leftText = "%c", rightText= "%p",
|
Nenue@6
|
201 duration = 15,
|
Nenue@6
|
202 spellID = 187615, itemID = 124636, hideIcon = true,
|
Nenue@6
|
203
|
Nenue@6
|
204 sound_active = [[Interface\Addons\Turok\Media\sound\FLASH.mp3]],
|
Nenue@6
|
205
|
Nenue@6
|
206 absolute = true, x = 0, y = -10, width = 300, height = 10,
|
Nenue@6
|
207 anchor = 'BOTTOMLEFT', anchorTo = 'BOTTOMLEFT',
|
Nenue@9
|
208 parent = 'TkPowerBar', padding = 0, spacing = 0,
|
Nenue@6
|
209
|
Nenue@6
|
210 foreground_inset = 0, foreground_color = {1,1,1,1}, foreground_blend = 'ADD',
|
Nenue@6
|
211 background_color = {0,0,0,0},
|
Nenue@6
|
212 icon = false,
|
Nenue@6
|
213 },
|
Nenue@6
|
214
|
Nenue@6
|
215 {
|
Nenue@6
|
216 name = "Maalus CD",
|
Nenue@6
|
217 type = 'cooldown', display = 'icon',
|
Nenue@6
|
218 unit = 'player',
|
Nenue@6
|
219 spellID = 187615, itemID = 124636,
|
Nenue@6
|
220 playerClass = 'HUNTER',
|
Nenue@6
|
221 },
|
Nenue@6
|
222 })
|
Nenue@6
|
223 end
|
Nenue@6
|
224
|
Nenue@6
|
225 tp.Hunter = function()
|
Nenue@6
|
226 mod.AddTimer({
|
Nenue@6
|
227 ---- Icon templates
|
Nenue@6
|
228 { virtual = true, name = "Hunter",
|
Nenue@6
|
229 playerClass = 'HUNTER', unit = 'player', container = 'default', display= 'icon', },
|
Nenue@6
|
230 { virtual = true, name = "HunterSticky", inherits = "Hunter",
|
Nenue@9
|
231 overrideAura = true, persist = true, },
|
Nenue@6
|
232 { virtual = true, name = "HunterBar",
|
Nenue@6
|
233 playerClass = 'HUNTER', unit = 'player', },
|
Nenue@6
|
234 ---- Talents
|
Nenue@6
|
235 {
|
Nenue@6
|
236 inherits= "HunterSticky",
|
Nenue@6
|
237 name = "Heavy Artillery", type = 'cooldown',
|
Nenue@6
|
238 talentRow = 6,
|
Nenue@6
|
239 trace = true},
|
Nenue@6
|
240 {
|
Nenue@6
|
241 inherits= "HunterSticky",
|
Nenue@6
|
242 name = "Animal Power", type = 'cooldown',
|
Nenue@6
|
243 talentRow = 5,
|
Nenue@9
|
244 trace = true,
|
Nenue@9
|
245 args = {
|
Nenue@9
|
246 talentRow = {
|
Nenue@9
|
247 default = {overrideDuration = nil},
|
Nenue@9
|
248 [1] = {overrideDuration = 15},
|
Nenue@9
|
249 [3] = {overrideDuration = 40},
|
Nenue@9
|
250 },
|
Nenue@9
|
251 },
|
Nenue@9
|
252 },
|
Nenue@6
|
253 --- Spells
|
Nenue@6
|
254 {
|
Nenue@6
|
255 inherits = 'Hunter', name = "Camouflage",
|
Nenue@6
|
256 type = 'cooldown', display = 'icon',
|
Nenue@6
|
257 spellID = 51753, },
|
Nenue@6
|
258 {
|
Nenue@6
|
259 inherits = 'Hunter', name = "Ice Trap",
|
Nenue@6
|
260 type = 'cooldown', display = 'icon',
|
Nenue@6
|
261 spellID = 13809, },
|
Nenue@6
|
262 {
|
Nenue@6
|
263 inherits = 'Hunter', name = "Concussive Shot",
|
Nenue@6
|
264 type = 'cooldown', display = 'icon',
|
Nenue@6
|
265 spellID = 5116, },
|
Nenue@6
|
266 {
|
Nenue@6
|
267 inherits = 'Hunter', name = "Flare",
|
Nenue@6
|
268 type = 'cooldown', display = 'icon',
|
Nenue@6
|
269 spellID = 1543, },
|
Nenue@6
|
270 {
|
Nenue@6
|
271 inherits = 'Hunter', name = "Disengage",
|
Nenue@6
|
272 type = 'cooldown', display = 'icon',
|
Nenue@6
|
273 spellID = 781, },
|
Nenue@6
|
274 {
|
Nenue@6
|
275 inherits = "HunterSticky", name = "Rapid Fire",
|
Nenue@6
|
276 type = 'cooldown', display = 'icon',
|
Nenue@6
|
277 spellID = 3045, specPage = 2, },
|
Nenue@6
|
278 {
|
Nenue@6
|
279 inherits = 'HunterSticky', name = "Bestial Wrath",
|
Nenue@6
|
280 type = 'cooldown', display = 'icon',
|
Nenue@6
|
281 spellID = 19574, specPage = 1,
|
Nenue@6
|
282 trace = true
|
Nenue@6
|
283 },
|
Nenue@6
|
284
|
Nenue@6
|
285 --- Progress Bars
|
Nenue@6
|
286 {
|
Nenue@6
|
287 inherits = 'HunterBar', name = "Chimaera Shot",
|
Nenue@6
|
288 type = 'cooldown', display = 'progressbar',
|
Nenue@6
|
289 spellID = 53209, specPage = 2, persist = true,
|
Nenue@6
|
290
|
Nenue@6
|
291 hideIcon = true,
|
Nenue@6
|
292 leftText = "", rightText = "%p",
|
Nenue@6
|
293 width = 300, height = 8,padding = 0, spacing = 0,
|
Nenue@9
|
294 absolute = true, x = 0, y = 0, anchor = 'TOPLEFT', anchorTo = 'TOPLEFT', parent = 'TkPowerBar', strata='MEDIUM',
|
Nenue@6
|
295 foreground_color = {1,.125,0.43,1}, foreground_blend = 'ADD', foreground_inset = 0,
|
Nenue@6
|
296 background_color = {.5,.5,.5,0}, background_blend = 'BLEND',
|
Nenue@6
|
297 },
|
Nenue@6
|
298 {
|
Nenue@6
|
299 inherits = 'HunterBar', name = "Sniper Training (duration)",
|
Nenue@6
|
300 type = 'aura', display = 'progressbar',
|
Nenue@6
|
301 spellID = 168811, specPage = 2,
|
Nenue@6
|
302
|
Nenue@6
|
303 hideIcon = true,
|
Nenue@6
|
304 leftText = "", rightText= "",
|
Nenue@11
|
305 width= 330, height = 8, padding = 0,
|
Nenue@9
|
306 absolute = true, x = 0, y = 0, anchor = 'BOTTOMLEFT', anchorTo = 'BOTTOMLEFT', parent = 'TkPowerBar', level = 1,
|
Nenue@11
|
307 foreground_color = {1,0,0,1}, foreground_blend = 'ADD',
|
Nenue@11
|
308 background_color = {0,0,0,0}, background_blend = 'BLEND',
|
Nenue@6
|
309 sound_active = '', sound_hidden = '', sound_passive = '',
|
Nenue@6
|
310 },
|
Nenue@6
|
311 {
|
Nenue@6
|
312 inherits = 'HunterBar', name = "Sniper Training: Recently Moved",
|
Nenue@6
|
313 type = 'aura', display = 'progressbar',
|
Nenue@6
|
314 spellID = 168809, specPage = 2,
|
Nenue@6
|
315
|
Nenue@6
|
316 hideIcon = true,
|
Nenue@6
|
317 leftText = "", rightText= "",
|
Nenue@11
|
318 height = 8, width= 160, padding = 0,
|
Nenue@9
|
319 absolute = true, x = 0, y = 0, anchor = 'BOTTOMLEFT', anchorTo = 'BOTTOMLEFT', parent = 'TkPowerBar', level = 2,
|
Nenue@11
|
320 foreground_color = {1,1,0,1}, foreground_blend = 'ADD',
|
Nenue@11
|
321 background_color = {0,0,0,0}, background_blend = 'BLEND',
|
Nenue@6
|
322 sound_active = '', sound_hidden = '', sound_passive = '',
|
Nenue@6
|
323 },
|
Nenue@6
|
324
|
Nenue@6
|
325 --- Static Warnings
|
Nenue@6
|
326 {
|
Nenue@6
|
327 inherits='Hunter', name = "Aspect of the Pack",
|
Nenue@6
|
328 type = 'aura', display = 'icon',
|
Nenue@6
|
329 spellID = 13159
|
Nenue@6
|
330 },
|
Nenue@6
|
331 {
|
Nenue@6
|
332 inherits = 'Hunter', name = "Trap Launcher",
|
Nenue@6
|
333 type = 'aura', display = 'icon',
|
Nenue@6
|
334 spellID = 77769, inverse = true,
|
Nenue@6
|
335
|
Nenue@6
|
336 absolute = true, x = 0, y = 200,
|
Nenue@6
|
337 width = 100, height = 100,
|
Nenue@6
|
338 foreground_color = {1,1,1, 0.5}, foreground_blend = 'BLEND',
|
Nenue@6
|
339 },
|
Nenue@6
|
340 })
|
Nenue@6
|
341 end
|
Nenue@6
|
342 tp.SPriest = function()
|
Nenue@6
|
343 mod.AddTimer( {
|
Nenue@6
|
344 {
|
Nenue@6
|
345 virtual = true, name = "Caster Icon", container = 'DoTs',
|
Nenue@6
|
346 playerClass = 'PRIEST',
|
Nenue@6
|
347
|
Nenue@6
|
348 combatFade = true,
|
Nenue@6
|
349 height = 48, width = 48,
|
Nenue@6
|
350 icon = { size = 48, },
|
Nenue@6
|
351 persist = true,
|
Nenue@6
|
352 },
|
Nenue@6
|
353 {
|
Nenue@6
|
354 inherits = "Caster Icon", name = "Shadowfiend",
|
Nenue@6
|
355 unit = "player", spellID = 132603,
|
Nenue@6
|
356 type = 'cooldown', display = 'icon',
|
Nenue@6
|
357 container ='DoTs',
|
Nenue@6
|
358 },
|
Nenue@6
|
359 {
|
Nenue@6
|
360 inherits = "Caster Icon", name = "Insanity",
|
Nenue@6
|
361 type = 'aura', display = 'icon',
|
Nenue@6
|
362 unit = 'player', filters = 'PLAYER|HELPFUL',
|
Nenue@6
|
363 spellID = 132573, playerClass = 'PRIEST',
|
Nenue@6
|
364 order = 3,
|
Nenue@6
|
365 },
|
Nenue@6
|
366 {
|
Nenue@6
|
367 name = "Shadow Word: Pain",
|
Nenue@6
|
368 type = 'aura', display = 'icon',
|
Nenue@6
|
369 unit = 'target', filters = 'PLAYER|HARMFUL',
|
Nenue@6
|
370 spellID = 589, playerClass = 'PRIEST', specPage = 3,
|
Nenue@6
|
371
|
Nenue@6
|
372 container = 'DoTs',
|
Nenue@6
|
373 order = 1,
|
Nenue@6
|
374 sound_active = '',
|
Nenue@6
|
375 },
|
Nenue@6
|
376 {
|
Nenue@6
|
377 name = "Mental Fatigue",
|
Nenue@6
|
378 type = 'aura', display = 'icon',
|
Nenue@6
|
379 unit = 'target', filters = 'PLAYER|HARMFUL',
|
Nenue@6
|
380 spellID = 184915, playerClass = 'PRIEST', specPage = 3,
|
Nenue@6
|
381
|
Nenue@9
|
382 parent = 'TkPowerBar',
|
Nenue@6
|
383 container = 'DoTs',
|
Nenue@6
|
384 order = 1,
|
Nenue@6
|
385 sound_active = '',
|
Nenue@6
|
386 },
|
Nenue@6
|
387 {
|
Nenue@6
|
388 name = "Vampiric Touch",
|
Nenue@6
|
389 container = 'DoTs',
|
Nenue@6
|
390 type = 'aura', display = 'icon',
|
Nenue@6
|
391 unit = 'target', filters = 'PLAYER|HARMFUL',
|
Nenue@6
|
392 spellID = 34914, playerClass = 'PRIEST', specPage = 3,
|
Nenue@6
|
393 order =2,
|
Nenue@6
|
394 },
|
Nenue@6
|
395 {
|
Nenue@6
|
396 name = "PW:Shield",
|
Nenue@6
|
397 type = 'cooldown', display = 'icon',
|
Nenue@6
|
398 unit = 'player',
|
Nenue@6
|
399 spellID = 17, playerClass = 'PRIEST',
|
Nenue@6
|
400 },
|
Nenue@6
|
401 {
|
Nenue@6
|
402 name = "Cascade",
|
Nenue@6
|
403 type = 'cooldown', display = 'icon',
|
Nenue@6
|
404 unit = 'player',
|
Nenue@6
|
405 spellID = 127632, talentID = 21718, playerClass = 'PRIEST',
|
Nenue@6
|
406 },
|
Nenue@6
|
407 })
|
Nenue@6
|
408 end |