annotate Turok/Modules/Timer/Presets.lua @ 11:0b1a2f3dbfc4 tip

aura duration override triggering activation twice when aura data still exists briefly after duration end
author Nenue
date Mon, 22 Feb 2016 03:11:54 -0500
parents 9400a0ff8540
children
rev   line source
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