| 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 |