Nenue@6: local ADDON, Tk = ... Nenue@6: local T = Tk.Addon Nenue@6: local mod, tinsert, ipairs, pairs = T.modules.TimerControl, tinsert, ipairs, pairs Nenue@9: local print = function(...) Nenue@9: if not DEBUG then return end Nenue@9: if _G.Devian and _G.DevianDB.workspace ~= 1 then Nenue@9: _G.print('TimerPresets', ...) Nenue@9: end Nenue@9: end Nenue@6: Nenue@6: Nenue@6: --- Timer config presets Nenue@6: mod.AddTimer = function(batch, container) Nenue@6: if container then Nenue@6: Turok.defaults.spirit.containers[container] = {} Nenue@6: end Nenue@6: Nenue@6: for i, entry in ipairs(batch) do Nenue@6: print(cPink('AddTimer(#=')..cWord(#batch)..cPink(', ')..cWord(container)..cPink(')')) Nenue@6: if container then Nenue@6: entry.container = container Nenue@6: print(' container set to', container) Nenue@6: end Nenue@6: print(' unpacking', entry.name) Nenue@6: tinsert(Turok.defaults.spirit.timers, entry) Nenue@6: end Nenue@6: end Nenue@6: local tp = mod.index.preset Nenue@6: Nenue@6: mod.LoadPresets = function() Nenue@6: for setName, setFunc in pairs(tp) do Nenue@6: setFunc() Nenue@6: end Nenue@6: end Nenue@6: Nenue@6: tp.Containers = function() Nenue@6: local defs = { Nenue@6: anchor = 'TOPLEFT', parent = 'TekplayerCastBar', anchorTo = 'BOTTOMLEFT', x = 0, y = -3, width = 700, Nenue@6: height = 200, Nenue@6: spacing = 3, Nenue@6: padding = 0, Nenue@6: ["default"] = { Nenue@6: name = "Default", Nenue@6: childAnchor = 'TOPLEFT', Nenue@6: childAnchorTo = 'TOPLEFT', Nenue@6: }, Nenue@6: ["DoTs"] = { Nenue@6: anchor ='BOTTOM', anchorTo='TOP', Nenue@9: parent='TkPowerBar', Nenue@6: display = 'icon', Nenue@6: size = 48, Nenue@6: height = 48, width = 48, Nenue@6: x = 0, y = 16, Nenue@6: padding = 0, Nenue@6: spacing = 0, Nenue@6: childAnchor = 'BOTTOMLEFT', Nenue@6: childAnchorTo = 'BOTTOMLEFT', Nenue@6: } Nenue@6: } Nenue@6: for k,v in pairs(defs) do Nenue@6: TurokData.spirit.containers[k] = v Nenue@6: end Nenue@6: end Nenue@6: Nenue@6: tp.Rogue = function() Nenue@6: mod.AddTimer( Nenue@6: { Nenue@6: { Nenue@6: name = "Vendetta", Nenue@6: type = 'cooldown', Nenue@6: display = 'icon', Nenue@6: unit = 'player', Nenue@6: spellID = 79140, Nenue@6: playerClass = 'ROGUE', Nenue@6: specPage = 1, Nenue@6: }, Nenue@6: { Nenue@6: name = "Burst of Speed", Nenue@6: type = 'cooldown', Nenue@6: display = 'icon', Nenue@6: unit = 'player', Nenue@6: spellID = 108212, Nenue@6: playerClass = 'ROGUE' Nenue@6: }, Nenue@6: { Nenue@6: name = "Rupture", Nenue@6: type = 'aura', Nenue@6: display = 'icon', Nenue@6: unit = 'target', Nenue@6: spellID = 1943, Nenue@6: filters = 'PLAYER|HARMFUL', Nenue@6: playerClass = 'ROGUE', Nenue@6: specPage = {1,3}, Nenue@6: }, Nenue@6: { Nenue@6: name = "Slice and Dice", Nenue@6: type = 'aura', Nenue@6: display = 'icon', Nenue@6: spellID = 5171, Nenue@6: unit = 'player', Nenue@6: filters = 'PLAYER|HELPFUL', Nenue@6: playerClass = 'ROGUE', Nenue@6: specPage = {2,3}, Nenue@6: }, Nenue@6: { Nenue@6: name = "Deadly Missing", Nenue@6: type = 'aura', Nenue@6: spellID = 2823, Nenue@6: display = 'icon', Nenue@6: unit = 'player', Nenue@6: playerClass = 'ROGUE', Nenue@6: specPage = {1,3}, Nenue@6: inverse = true, Nenue@6: }, Nenue@6: { Nenue@6: name = "Stealth", Nenue@6: type ='aura', Nenue@6: spellID = 1784, Nenue@6: display = 'icon', Nenue@6: unit = 'player', Nenue@6: playerClass = 'ROGUE', Nenue@6: }, Nenue@6: { Nenue@6: name = "Recuperate", Nenue@6: type ='aura', Nenue@6: spellID = 73651, Nenue@6: display = 'icon', Nenue@6: unit = 'player', Nenue@6: playerClass = 'ROGUE', Nenue@6: }, Nenue@6: }) Nenue@6: end Nenue@6: tp.Mage = function() Nenue@6: mod.AddTimer({ Nenue@6: { Nenue@6: name = "Rune of Power", Nenue@6: type = 'aura', Nenue@6: spellID = 116014, Nenue@6: unit = 'player', Nenue@6: display = 'icon', Nenue@6: playerClass = 'MAGE', Nenue@6: talentID = 16032, Nenue@6: }, Nenue@6: { Nenue@6: name = "Mage Nova", Nenue@6: spellID = {157980, 157981, 157997}, Nenue@6: talentOffset = {5, 3}, Nenue@6: unit = 'player', Nenue@6: type='cooldown', Nenue@6: display='icon', Nenue@6: playerClass='MAGE', Nenue@6: persist = true, Nenue@6: }, Nenue@6: { Nenue@6: name = "Mage Bomb", Nenue@6: talentOffset = {5, 1}, Nenue@6: unit = 'target', Nenue@6: type= 'aura', Nenue@6: display='icon', Nenue@6: filters = 'HARMFUL|PLAYER', Nenue@6: playerClass='MAGE', Nenue@6: persist = true, Nenue@6: }, Nenue@6: { Nenue@6: name = "Frozen Orb", Nenue@6: spellID = 84714, Nenue@6: threschold = 2, Nenue@6: unit = 'player', Nenue@6: type='cooldown', Nenue@6: display='icon', Nenue@6: playerClass='MAGE', Nenue@6: specPage=3, Nenue@6: }, Nenue@6: { Nenue@6: name = 'Arcane Power', Nenue@6: type = 'cooldown', Nenue@6: display = 'icon', Nenue@6: unit = 'player', Nenue@6: spellID = 12042, Nenue@6: playerClass = 'MAGE', Nenue@6: specPage = 1, Nenue@6: } Nenue@6: }) Nenue@6: end Nenue@6: tp.UseEffects = function() Nenue@6: mod.AddTimer({ Nenue@6: Nenue@6: { Nenue@6: name = "Trinket 1", Nenue@6: type ='cooldown', display = 'icon', Nenue@6: unit = 'player', Nenue@6: persist = true, Nenue@6: inventoryID = 13, Nenue@6: }, Nenue@6: { Nenue@6: name = "Maalus Effect", -- Maalus Nenue@6: playerClass = {'HUNTER', 'ROGUE'}, Nenue@6: type = 'aura', display = 'progressbar', Nenue@6: unit = 'player', filters = 'HELPFUL', Nenue@6: leftText = "%c", rightText= "%p", Nenue@6: duration = 15, Nenue@6: spellID = 187615, itemID = 124636, hideIcon = true, Nenue@6: Nenue@6: sound_active = [[Interface\Addons\Turok\Media\sound\FLASH.mp3]], Nenue@6: Nenue@6: absolute = true, x = 0, y = -10, width = 300, height = 10, Nenue@6: anchor = 'BOTTOMLEFT', anchorTo = 'BOTTOMLEFT', Nenue@9: parent = 'TkPowerBar', padding = 0, spacing = 0, Nenue@6: Nenue@6: foreground_inset = 0, foreground_color = {1,1,1,1}, foreground_blend = 'ADD', Nenue@6: background_color = {0,0,0,0}, Nenue@6: icon = false, Nenue@6: }, Nenue@6: Nenue@6: { Nenue@6: name = "Maalus CD", Nenue@6: type = 'cooldown', display = 'icon', Nenue@6: unit = 'player', Nenue@6: spellID = 187615, itemID = 124636, Nenue@6: playerClass = 'HUNTER', Nenue@6: }, Nenue@6: }) Nenue@6: end Nenue@6: Nenue@6: tp.Hunter = function() Nenue@6: mod.AddTimer({ Nenue@6: ---- Icon templates Nenue@6: { virtual = true, name = "Hunter", Nenue@6: playerClass = 'HUNTER', unit = 'player', container = 'default', display= 'icon', }, Nenue@6: { virtual = true, name = "HunterSticky", inherits = "Hunter", Nenue@9: overrideAura = true, persist = true, }, Nenue@6: { virtual = true, name = "HunterBar", Nenue@6: playerClass = 'HUNTER', unit = 'player', }, Nenue@6: ---- Talents Nenue@6: { Nenue@6: inherits= "HunterSticky", Nenue@6: name = "Heavy Artillery", type = 'cooldown', Nenue@6: talentRow = 6, Nenue@6: trace = true}, Nenue@6: { Nenue@6: inherits= "HunterSticky", Nenue@6: name = "Animal Power", type = 'cooldown', Nenue@6: talentRow = 5, Nenue@9: trace = true, Nenue@9: args = { Nenue@9: talentRow = { Nenue@9: default = {overrideDuration = nil}, Nenue@9: [1] = {overrideDuration = 15}, Nenue@9: [3] = {overrideDuration = 40}, Nenue@9: }, Nenue@9: }, Nenue@9: }, Nenue@6: --- Spells Nenue@6: { Nenue@6: inherits = 'Hunter', name = "Camouflage", Nenue@6: type = 'cooldown', display = 'icon', Nenue@6: spellID = 51753, }, Nenue@6: { Nenue@6: inherits = 'Hunter', name = "Ice Trap", Nenue@6: type = 'cooldown', display = 'icon', Nenue@6: spellID = 13809, }, Nenue@6: { Nenue@6: inherits = 'Hunter', name = "Concussive Shot", Nenue@6: type = 'cooldown', display = 'icon', Nenue@6: spellID = 5116, }, Nenue@6: { Nenue@6: inherits = 'Hunter', name = "Flare", Nenue@6: type = 'cooldown', display = 'icon', Nenue@6: spellID = 1543, }, Nenue@6: { Nenue@6: inherits = 'Hunter', name = "Disengage", Nenue@6: type = 'cooldown', display = 'icon', Nenue@6: spellID = 781, }, Nenue@6: { Nenue@6: inherits = "HunterSticky", name = "Rapid Fire", Nenue@6: type = 'cooldown', display = 'icon', Nenue@6: spellID = 3045, specPage = 2, }, Nenue@6: { Nenue@6: inherits = 'HunterSticky', name = "Bestial Wrath", Nenue@6: type = 'cooldown', display = 'icon', Nenue@6: spellID = 19574, specPage = 1, Nenue@6: trace = true Nenue@6: }, Nenue@6: Nenue@6: --- Progress Bars Nenue@6: { Nenue@6: inherits = 'HunterBar', name = "Chimaera Shot", Nenue@6: type = 'cooldown', display = 'progressbar', Nenue@6: spellID = 53209, specPage = 2, persist = true, Nenue@6: Nenue@6: hideIcon = true, Nenue@6: leftText = "", rightText = "%p", Nenue@6: width = 300, height = 8,padding = 0, spacing = 0, Nenue@9: absolute = true, x = 0, y = 0, anchor = 'TOPLEFT', anchorTo = 'TOPLEFT', parent = 'TkPowerBar', strata='MEDIUM', Nenue@6: foreground_color = {1,.125,0.43,1}, foreground_blend = 'ADD', foreground_inset = 0, Nenue@6: background_color = {.5,.5,.5,0}, background_blend = 'BLEND', Nenue@6: }, Nenue@6: { Nenue@6: inherits = 'HunterBar', name = "Sniper Training (duration)", Nenue@6: type = 'aura', display = 'progressbar', Nenue@6: spellID = 168811, specPage = 2, Nenue@6: Nenue@6: hideIcon = true, Nenue@6: leftText = "", rightText= "", Nenue@11: width= 330, height = 8, padding = 0, Nenue@9: absolute = true, x = 0, y = 0, anchor = 'BOTTOMLEFT', anchorTo = 'BOTTOMLEFT', parent = 'TkPowerBar', level = 1, Nenue@11: foreground_color = {1,0,0,1}, foreground_blend = 'ADD', Nenue@11: background_color = {0,0,0,0}, background_blend = 'BLEND', Nenue@6: sound_active = '', sound_hidden = '', sound_passive = '', Nenue@6: }, Nenue@6: { Nenue@6: inherits = 'HunterBar', name = "Sniper Training: Recently Moved", Nenue@6: type = 'aura', display = 'progressbar', Nenue@6: spellID = 168809, specPage = 2, Nenue@6: Nenue@6: hideIcon = true, Nenue@6: leftText = "", rightText= "", Nenue@11: height = 8, width= 160, padding = 0, Nenue@9: absolute = true, x = 0, y = 0, anchor = 'BOTTOMLEFT', anchorTo = 'BOTTOMLEFT', parent = 'TkPowerBar', level = 2, Nenue@11: foreground_color = {1,1,0,1}, foreground_blend = 'ADD', Nenue@11: background_color = {0,0,0,0}, background_blend = 'BLEND', Nenue@6: sound_active = '', sound_hidden = '', sound_passive = '', Nenue@6: }, Nenue@6: Nenue@6: --- Static Warnings Nenue@6: { Nenue@6: inherits='Hunter', name = "Aspect of the Pack", Nenue@6: type = 'aura', display = 'icon', Nenue@6: spellID = 13159 Nenue@6: }, Nenue@6: { Nenue@6: inherits = 'Hunter', name = "Trap Launcher", Nenue@6: type = 'aura', display = 'icon', Nenue@6: spellID = 77769, inverse = true, Nenue@6: Nenue@6: absolute = true, x = 0, y = 200, Nenue@6: width = 100, height = 100, Nenue@6: foreground_color = {1,1,1, 0.5}, foreground_blend = 'BLEND', Nenue@6: }, Nenue@6: }) Nenue@6: end Nenue@6: tp.SPriest = function() Nenue@6: mod.AddTimer( { Nenue@6: { Nenue@6: virtual = true, name = "Caster Icon", container = 'DoTs', Nenue@6: playerClass = 'PRIEST', Nenue@6: Nenue@6: combatFade = true, Nenue@6: height = 48, width = 48, Nenue@6: icon = { size = 48, }, Nenue@6: persist = true, Nenue@6: }, Nenue@6: { Nenue@6: inherits = "Caster Icon", name = "Shadowfiend", Nenue@6: unit = "player", spellID = 132603, Nenue@6: type = 'cooldown', display = 'icon', Nenue@6: container ='DoTs', Nenue@6: }, Nenue@6: { Nenue@6: inherits = "Caster Icon", name = "Insanity", Nenue@6: type = 'aura', display = 'icon', Nenue@6: unit = 'player', filters = 'PLAYER|HELPFUL', Nenue@6: spellID = 132573, playerClass = 'PRIEST', Nenue@6: order = 3, Nenue@6: }, Nenue@6: { Nenue@6: name = "Shadow Word: Pain", Nenue@6: type = 'aura', display = 'icon', Nenue@6: unit = 'target', filters = 'PLAYER|HARMFUL', Nenue@6: spellID = 589, playerClass = 'PRIEST', specPage = 3, Nenue@6: Nenue@6: container = 'DoTs', Nenue@6: order = 1, Nenue@6: sound_active = '', Nenue@6: }, Nenue@6: { Nenue@6: name = "Mental Fatigue", Nenue@6: type = 'aura', display = 'icon', Nenue@6: unit = 'target', filters = 'PLAYER|HARMFUL', Nenue@6: spellID = 184915, playerClass = 'PRIEST', specPage = 3, Nenue@6: Nenue@9: parent = 'TkPowerBar', Nenue@6: container = 'DoTs', Nenue@6: order = 1, Nenue@6: sound_active = '', Nenue@6: }, Nenue@6: { Nenue@6: name = "Vampiric Touch", Nenue@6: container = 'DoTs', Nenue@6: type = 'aura', display = 'icon', Nenue@6: unit = 'target', filters = 'PLAYER|HARMFUL', Nenue@6: spellID = 34914, playerClass = 'PRIEST', specPage = 3, Nenue@6: order =2, Nenue@6: }, Nenue@6: { Nenue@6: name = "PW:Shield", Nenue@6: type = 'cooldown', display = 'icon', Nenue@6: unit = 'player', Nenue@6: spellID = 17, playerClass = 'PRIEST', Nenue@6: }, Nenue@6: { Nenue@6: name = "Cascade", Nenue@6: type = 'cooldown', display = 'icon', Nenue@6: unit = 'player', Nenue@6: spellID = 127632, talentID = 21718, playerClass = 'PRIEST', Nenue@6: }, Nenue@6: }) Nenue@6: end