view Turok/Modules/Timer/Presets.lua @ 9:9400a0ff8540

Ugh Timer: - container update directionality - talent update iterates over a non-volatile table to carry out updates - index management steps organized - talentRow status implemented, returns the spell associated with the talent chosen from that row CombatLog: - sort out font controls and unbork arguments
author Nenue
date Sun, 21 Feb 2016 13:08:30 -0500
parents a9b8b0866ece
children 0b1a2f3dbfc4
line wrap: on
line source
local ADDON, Tk = ...
local T = Tk.Addon
local mod, tinsert, ipairs, pairs = T.modules.TimerControl, tinsert, ipairs, pairs
local print = function(...)
  if not DEBUG then return end
  if _G.Devian and _G.DevianDB.workspace ~= 1 then
    _G.print('TimerPresets', ...)
  end
end


--- Timer config presets
mod.AddTimer = function(batch, container)
  if container then
    Turok.defaults.spirit.containers[container] = {}
  end

  for i, entry in ipairs(batch) do
    print(cPink('AddTimer(#=')..cWord(#batch)..cPink(', ')..cWord(container)..cPink(')'))
    if container then
      entry.container = container
      print('  container set to', container)
    end
    print('  unpacking', entry.name)
    tinsert(Turok.defaults.spirit.timers, entry)
  end
end
local tp = mod.index.preset

mod.LoadPresets = function()
  for setName, setFunc in pairs(tp) do
    setFunc()
  end
end

tp.Containers = function()
  local defs = {
    anchor = 'TOPLEFT', parent = 'TekplayerCastBar', anchorTo = 'BOTTOMLEFT', x = 0, y = -3, width = 700,
    height = 200,
    spacing = 3,
    padding = 0,
    ["default"] = {
      name = "Default",
      childAnchor = 'TOPLEFT',
      childAnchorTo = 'TOPLEFT',
    },
    ["DoTs"] = {
      anchor ='BOTTOM', anchorTo='TOP',
      parent='TkPowerBar',
      display = 'icon',
      size = 48,
      height = 48, width = 48,
      x = 0, y = 16,
      padding = 0,
      spacing = 0,
      childAnchor = 'BOTTOMLEFT',
      childAnchorTo = 'BOTTOMLEFT',
    }
  }
  for k,v in pairs(defs) do
    TurokData.spirit.containers[k] = v
  end
end

tp.Rogue = function()
  mod.AddTimer(
    {
      {
        name = "Vendetta",
        type = 'cooldown',
        display = 'icon',
        unit = 'player',
        spellID = 79140,
        playerClass = 'ROGUE',
        specPage = 1,
      },
      {
        name = "Burst of Speed",
        type = 'cooldown',
        display = 'icon',
        unit = 'player',
        spellID = 108212,
        playerClass = 'ROGUE'
      },
      {
        name = "Rupture",
        type = 'aura',
        display = 'icon',
        unit = 'target',
        spellID = 1943,
        filters = 'PLAYER|HARMFUL',
        playerClass = 'ROGUE',
        specPage = {1,3},
      },
      {
        name = "Slice and Dice",
        type = 'aura',
        display = 'icon',
        spellID = 5171,
        unit = 'player',
        filters = 'PLAYER|HELPFUL',
        playerClass = 'ROGUE',
        specPage = {2,3},
      },
      {
        name = "Deadly Missing",
        type = 'aura',
        spellID = 2823,
        display = 'icon',
        unit = 'player',
        playerClass = 'ROGUE',
        specPage = {1,3},
        inverse = true,
      },
      {
        name = "Stealth",
        type ='aura',
        spellID = 1784,
        display = 'icon',
        unit = 'player',
        playerClass = 'ROGUE',
      },
      {
        name = "Recuperate",
        type ='aura',
        spellID = 73651,
        display = 'icon',
        unit = 'player',
        playerClass = 'ROGUE',
      },
    })
end
tp.Mage = function()
  mod.AddTimer({
    {
      name = "Rune of Power",
      type = 'aura',
      spellID = 116014,
      unit = 'player',
      display = 'icon',
      playerClass = 'MAGE',
      talentID = 16032,
    },
    {
      name = "Mage Nova",
      spellID = {157980, 157981, 157997},
      talentOffset = {5, 3},
      unit = 'player',
      type='cooldown',
      display='icon',
      playerClass='MAGE',
      persist = true,
    },
    {
      name = "Mage Bomb",
      talentOffset = {5, 1},
      unit = 'target',
      type= 'aura',
      display='icon',
      filters = 'HARMFUL|PLAYER',
      playerClass='MAGE',
      persist = true,
    },
    {
      name = "Frozen Orb",
      spellID = 84714,
      threschold = 2,
      unit = 'player',
      type='cooldown',
      display='icon',
      playerClass='MAGE',
      specPage=3,
    },
    {
      name = 'Arcane Power',
      type = 'cooldown',
      display = 'icon',
      unit = 'player',
      spellID = 12042,
      playerClass = 'MAGE',
      specPage = 1,
    }
  })
end
tp.UseEffects = function()
  mod.AddTimer({

    {
      name = "Trinket 1",
      type ='cooldown', display = 'icon',
      unit = 'player',
      persist = true,
      inventoryID = 13,
    },
    {
      name = "Maalus Effect", -- Maalus
      playerClass = {'HUNTER', 'ROGUE'},
      type = 'aura', display = 'progressbar',
      unit = 'player', filters = 'HELPFUL',
      leftText = "%c", rightText=  "%p",
      duration = 15,
      spellID = 187615, itemID  = 124636, hideIcon = true,

      sound_active = [[Interface\Addons\Turok\Media\sound\FLASH.mp3]],

      absolute = true, x = 0, y = -10, width = 300, height = 10,
      anchor = 'BOTTOMLEFT', anchorTo = 'BOTTOMLEFT',
      parent = 'TkPowerBar', padding = 0, spacing = 0,

      foreground_inset = 0, foreground_color = {1,1,1,1}, foreground_blend = 'ADD',
      background_color = {0,0,0,0},
      icon = false,
    },

    {
      name = "Maalus CD",
      type = 'cooldown', display = 'icon',
      unit = 'player',
      spellID = 187615, itemID  = 124636,
      playerClass = 'HUNTER',
    },
  })
end

tp.Hunter = function()
  mod.AddTimer({
    ---- Icon templates
    { virtual = true, name = "Hunter",
      playerClass = 'HUNTER', unit = 'player', container = 'default', display= 'icon', },
    { virtual = true, name = "HunterSticky", inherits = "Hunter",
      overrideAura = true, persist = true, },
    { virtual = true, name = "HunterBar",
      playerClass = 'HUNTER', unit = 'player', },
    ---- Talents
    {
      inherits= "HunterSticky",
      name = "Heavy Artillery", type = 'cooldown',
      talentRow = 6,
      trace = true},
    {
      inherits= "HunterSticky",
      name = "Animal Power", type = 'cooldown',
      talentRow = 5,
      trace = true,
      args = {
        talentRow = {
          default = {overrideDuration = nil},
          [1] = {overrideDuration = 15},
          [3] = {overrideDuration = 40},
        },
      },
    },
    --- Spells
    {
      inherits = 'Hunter', name = "Camouflage",
      type = 'cooldown', display = 'icon',
      spellID = 51753, },
    {
      inherits = 'Hunter', name = "Ice Trap",
      type = 'cooldown', display = 'icon',
      spellID = 13809, },
    {
      inherits = 'Hunter', name = "Concussive Shot",
      type = 'cooldown', display = 'icon',
      spellID = 5116, },
    {
      inherits = 'Hunter', name = "Flare",
      type = 'cooldown', display = 'icon',
      spellID = 1543, },
    {
      inherits = 'Hunter', name = "Disengage",
      type = 'cooldown', display = 'icon',
      spellID = 781, },
    {
      inherits = "HunterSticky", name = "Rapid Fire",
      type = 'cooldown', display = 'icon',
      spellID = 3045, specPage = 2, },
    {
      inherits = 'HunterSticky', name = "Bestial Wrath",
      type = 'cooldown', display = 'icon',
      spellID = 19574, specPage = 1,
      trace = true
    },

    --- Progress Bars
    {
      inherits = 'HunterBar', name = "Chimaera Shot",
      type = 'cooldown', display = 'progressbar',
      spellID = 53209, specPage = 2, persist = true,

      hideIcon = true,
      leftText = "", rightText = "%p",
      width = 300, height = 8,padding = 0, spacing = 0,
      absolute = true, x = 0, y = 0, anchor = 'TOPLEFT', anchorTo = 'TOPLEFT', parent = 'TkPowerBar', strata='MEDIUM',
      foreground_color = {1,.125,0.43,1}, foreground_blend = 'ADD', foreground_inset = 0,
      background_color = {.5,.5,.5,0}, background_blend = 'BLEND',
    },
    {
      inherits = 'HunterBar', name = "Sniper Training (duration)",
      type = 'aura', display = 'progressbar',
      spellID = 168811, specPage = 2,

      hideIcon = true,
      leftText = "", rightText=  "",
      width= 330, height = 12, padding = 0,
      absolute = true, x = 0, y = 0, anchor = 'BOTTOMLEFT', anchorTo = 'BOTTOMLEFT', parent = 'TkPowerBar', level = 1,
      foreground_color = {1,0,0,1}, foreground_blend = 'BLEND',
      sound_active = '', sound_hidden = '', sound_passive = '',
    },
    {
      inherits = 'HunterBar', name = "Sniper Training: Recently Moved",
      type = 'aura', display = 'progressbar',
      spellID = 168809, specPage = 2,

      hideIcon = true,
      leftText = "", rightText=  "",
      height = 12, width= 160, padding = 0,
      absolute = true, x = 0, y = 0, anchor = 'BOTTOMLEFT', anchorTo = 'BOTTOMLEFT', parent = 'TkPowerBar', level = 2,
      foreground_color = {1,1,0,1}, foreground_blend = 'BLEND',
      sound_active = '', sound_hidden = '', sound_passive = '',
    },

    --- Static Warnings
    {
      inherits='Hunter', name = "Aspect of the Pack",
      type = 'aura', display = 'icon',
      spellID = 13159
    },
    {
      inherits = 'Hunter', name = "Trap Launcher",
      type = 'aura', display = 'icon',
      spellID = 77769, inverse = true,

      absolute = true, x = 0, y = 200,
      width = 100, height = 100,
      foreground_color = {1,1,1, 0.5}, foreground_blend = 'BLEND',
    },
  })
end
tp.SPriest = function()
  mod.AddTimer( {
    {
      virtual = true, name = "Caster Icon", container = 'DoTs',
      playerClass = 'PRIEST',

      combatFade = true,
      height = 48, width = 48,
      icon = { size = 48, },
      persist = true,
    },
    {
      inherits = "Caster Icon", name = "Shadowfiend",
      unit = "player", spellID = 132603,
      type = 'cooldown', display = 'icon',
      container ='DoTs',
    },
    {
      inherits = "Caster Icon", name = "Insanity",
      type = 'aura', display = 'icon',
      unit = 'player', filters = 'PLAYER|HELPFUL',
      spellID = 132573, playerClass = 'PRIEST',
      order = 3,
    },
    {
      name = "Shadow Word: Pain",
      type = 'aura', display = 'icon',
      unit = 'target', filters = 'PLAYER|HARMFUL',
      spellID = 589, playerClass = 'PRIEST', specPage = 3,

      container = 'DoTs',
      order = 1,
      sound_active = '',
    },
    {
      name = "Mental Fatigue",
      type = 'aura', display = 'icon',
      unit = 'target', filters = 'PLAYER|HARMFUL',
      spellID = 184915, playerClass = 'PRIEST', specPage = 3,

      parent = 'TkPowerBar',
      container = 'DoTs',
      order = 1,
      sound_active = '',
    },
    {
      name = "Vampiric Touch",
      container = 'DoTs',
      type = 'aura', display = 'icon',
      unit = 'target', filters = 'PLAYER|HARMFUL',
      spellID = 34914, playerClass = 'PRIEST', specPage = 3,
      order =2,
    },
    {
      name = "PW:Shield",
      type = 'cooldown', display = 'icon',
      unit = 'player',
      spellID = 17, playerClass = 'PRIEST',
    },
    {
      name = "Cascade",
      type = 'cooldown', display = 'icon',
      unit = 'player',
      spellID = 127632, talentID = 21718, playerClass = 'PRIEST',
    },
  })
end