annotate BuffFrame/Constants.lua @ 59:07ef62fe201f

Re-write of BuffFrame module: - uses secure hooks on blizzard BuffFrame.lua functions to determine needed action - make use of built-in table behavior to reduce unnecessary frame updates
author Nenue
date Thu, 28 Jul 2016 18:27:56 -0400
parents 4586229986e6
children
rev   line source
Nenue@51 1 --- ${PACKAGE_NAME}
Nenue@51 2 -- @file-author@
Nenue@51 3 -- @project-revision@ @project-hash@
Nenue@51 4 -- @file-revision@ @file-hash@
Nenue@51 5 -- Created: 3/22/2016 3:14 PM
Nenue@51 6 local _, A = ...
Nenue@51 7 local B = A.frame
Nenue@51 8 local Aura = B:RegisterModule('BuffFrame')
Nenue@51 9 -----------------------
Nenue@51 10 -- Buff frames metadata
Nenue@51 11 -----------------------
Nenue@51 12 local legendAlpha = 0.5
Nenue@51 13 Aura.guides = {}
Nenue@51 14 Aura.decors = {}
Nenue@51 15 Aura.anchors = {}
Nenue@51 16 Aura.drawn = {}
Nenue@51 17 Aura.positioned = {}
Nenue@51 18
Nenue@51 19 Aura.displays = {}
Nenue@51 20 Aura.displays.BuffButton = {
Nenue@51 21 legendColor = {0, 1, 0, legendAlpha},
Nenue@51 22 maxIcons = BUFF_MAX_DISPLAY,
Nenue@51 23 actualIcons = function () return _G.BUFF_ACTUAL_DISPLAY end,
Nenue@51 24 buffName = 'BuffButton',
Nenue@51 25 drawCount = {},
Nenue@51 26 filters = 'HELPFUL',
Nenue@51 27 anchorTemplate = 'VeneerAnchorTemplate',
Nenue@51 28 }
Nenue@51 29 Aura.displays.DebuffButton = {
Nenue@51 30 legendColor = {1, 0, 0, legendAlpha},
Nenue@51 31 maxIcons = DEBUFF_MAX_DISPLAY,
Nenue@51 32 actualIcons = function () return _G.DEBUFF_ACTUAL_DISPLAY end,
Nenue@51 33 buffName = 'DebuffButton',
Nenue@51 34 drawCount = {},
Nenue@51 35 filters = 'HARMFUL',
Nenue@51 36 anchorTemplate = 'VeneerAnchorTemplate',
Nenue@51 37 }
Nenue@51 38 Aura.displays.TempEnchant = {
Nenue@51 39 legendColor = {1, 0, 0.5, legendAlpha},
Nenue@51 40 maxIcons = NUM_TEMP_ENCHANT_FRAMES,
Nenue@51 41 actualIcons = function () return BuffFrame.numEnchants end,
Nenue@51 42 buffName = 'TempEnchant',
Nenue@51 43 drawCount = {},
Nenue@51 44 anchorTemplate = 'VeneerAnchorTemplate',
Nenue@51 45 }
Nenue@51 46
Nenue@51 47 -----------------------
Nenue@51 48 -- RaidBuff visual args
Nenue@51 49 -----------------------
Nenue@51 50 Aura.BuffStyles = {
Nenue@51 51 ["active"] = {
Nenue@51 52 SetDesaturated = false,
Nenue@51 53 Color = {1, 1, 1, 1},
Nenue@51 54 SetBlendMode = 'BLEND',
Nenue@51 55 TextColor = {1,1,1,1},
Nenue@51 56 },
Nenue@51 57 ["missing"] = {
Nenue@51 58 SetDesaturated = false,
Nenue@51 59 Color = {1, 0, 0, 0.5},
Nenue@51 60 SetBlendMode = 'ADD',
Nenue@51 61 TextColor = {1,0,0,1},
Nenue@51 62 },
Nenue@51 63 ["available"] = {
Nenue@51 64 SetDesaturated = true,
Nenue@51 65 Color = {0.35, 1, 0.35, 0.5},
Nenue@51 66 SetBlendMode = 'ADD',
Nenue@51 67 TextColor = {1, 1, 0, 1},
Nenue@51 68 },
Nenue@51 69 }
Nenue@51 70
Nenue@51 71 --- RaidBuff availability criteria
Nenue@51 72 -- @field spellID - UnitAura() == true
Nenue@51 73 -- @field spec - test for spec choice
Nenue@51 74 -- @field auraType - UnitAura() == true, and no other tests of the same value have returned true prior
Nenue@51 75 -- @field talent - test for talent selection
Nenue@51 76 -- @field petFamily - test pet family
Nenue@51 77 -- @field [true] - passive group aura
Nenue@51 78 Aura.ClassRaidBuffs = {
Nenue@51 79 -- stats
Nenue@51 80 [1] = {
Nenue@51 81 ['HUNTER'] = {
Nenue@51 82 {talent = {155228}, spellID = 160206, spellName = 'Lone Wolf: Power of the Primates', auraType = 'lonewolf'},
Nenue@51 83 {petFamily = 'Dog'}, -- active pet family
Nenue@51 84 {petFamily = 'Gorilla'},
Nenue@51 85 {petFamily = 'Shale Spider'},
Nenue@51 86 {petFamily = 'Worm'},
Nenue@51 87 },
Nenue@51 88 ['DRUID'] = {
Nenue@51 89 {spellID = 1126, spellName = 'Mark of the Wild'},
Nenue@51 90 },
Nenue@51 91 ['MONK'] = {
Nenue@51 92 {spellID = 115921, spellName = 'Legacy of the Emperor'},
Nenue@51 93 {spellID = 116781, spellName = 'Legacy of the White Tiger'} -- windwalker, replaces emperor internally
Nenue@51 94 },
Nenue@51 95 ['PALADIN'] = {spellID = 20217, spellName = 'Blessing of Kings', auraType = 'blessing'},
Nenue@51 96 },
Nenue@51 97
Nenue@51 98 -- stamina
Nenue@51 99 [2] = {
Nenue@51 100 ['HUNTER'] = {
Nenue@51 101 {talent = {155228}, spellID = 160199, spellName = 'Lone Wolf: Fortitude of the Bear', auraType = 'lonewolf'},
Nenue@51 102 {petFamily = 'Bear'}, -- active pet family
Nenue@51 103 {petFamily = 'Goat'},
Nenue@51 104 {petFamily = 'Rylak'},
Nenue@51 105 {petFamily = 'Silithid'},
Nenue@51 106 },
Nenue@51 107 ['PRIEST'] = {
Nenue@51 108 {spellID = 21562, 'Power Word: Fortitude'}
Nenue@51 109 },
Nenue@51 110 ['WARRIOR'] = {
Nenue@51 111 {spellID = 469, spellName = 'Commanding Shout', auraType = 'shout'}
Nenue@51 112 },
Nenue@51 113 ['WARLOCK'] = {
Nenue@51 114 {true}
Nenue@51 115 }
Nenue@51 116 },
Nenue@51 117
Nenue@51 118 -- attack power
Nenue@51 119 [3] = {
Nenue@51 120 ['HUNTER'] = {
Nenue@51 121 {true},
Nenue@51 122 },
Nenue@51 123 ['DEATHKNIGHT'] = {
Nenue@51 124 {spec = 2},
Nenue@51 125 {spec = 3},
Nenue@51 126 },
Nenue@51 127 ['WARRIOR'] = {
Nenue@51 128 {spellName = 'Battle Shout', auraType = 'shout'}
Nenue@51 129 }
Nenue@51 130 },
Nenue@51 131
Nenue@51 132 -- HASTE
Nenue@51 133 [4] = {
Nenue@51 134 ['HUNTER'] = {
Nenue@51 135 {talent = {155228}, spellID = 160203, spellName = 'Lone Wolf: Haste of the Hyena', auraType = 'lonewolf'},
Nenue@51 136 {petFamily = 'Hyena'}, -- active pet family
Nenue@51 137 {petFamily = 'Sporebat'},
Nenue@51 138 {petFamily = 'Rylak'},
Nenue@51 139 {petFamily = 'Wasp'},
Nenue@51 140 },
Nenue@51 141 ['DEATHKNIGHT'] = {
Nenue@51 142 {spec = 2}, -- unholy aura
Nenue@51 143 {spec = 3},
Nenue@51 144 },
Nenue@51 145 ['PRIEST'] = {
Nenue@51 146 {spec = 3}, -- mind quickening
Nenue@51 147 },
Nenue@51 148 ['ROGUE'] = {
Nenue@51 149 true -- swiftblade's
Nenue@51 150 },
Nenue@51 151 ['SHAMAN'] = {
Nenue@51 152 true -- grace of air
Nenue@51 153 },
Nenue@51 154 },
Nenue@51 155
Nenue@51 156 -- SPELL POWER
Nenue@51 157 [5] = {
Nenue@51 158 ['HUNTER'] = {
Nenue@51 159 {talent = {155228}, spellID = 160205, spellName = 'Lone Wolf: Wisdom of the Serpent', auraType = 'lonewolf'},
Nenue@51 160 {petFamily = 'Waterstrider'}, -- active pet family
Nenue@51 161 {petFamily = 'Serpent'},
Nenue@51 162 {petFamily = 'Silithid'},
Nenue@51 163 },
Nenue@51 164 ['MAGE'] = {
Nenue@51 165 {spellID = 1459, spellName = 'Arcane Brilliance'}, -- arcane brilliance
Nenue@51 166 {spellID = 61316, spellName = 'Dalaran Brilliance'}, -- dalaran brilliance
Nenue@51 167 },
Nenue@51 168 ['WARLOCK'] = {
Nenue@51 169 {spellID = 109773,spellName = 'Dark Intent' }
Nenue@51 170 },
Nenue@51 171 },
Nenue@51 172
Nenue@51 173 -- CRITICAL STRIKE
Nenue@51 174 [6] = {
Nenue@51 175 ['HUNTER'] = {
Nenue@51 176 {talent = {155228}, spellID = 160200, spellName = 'Lone Wolf: Ferocity of the Raptor', auraType = 'lonewolf'},
Nenue@51 177 {petFamily = 'Devilsaur'}, -- active pet family
Nenue@51 178 {petFamily = 'Quilen'},
Nenue@51 179 {petFamily = 'Raptor'},
Nenue@51 180 {petFamily = 'Shale Spider'},
Nenue@51 181 {petFamily = 'Waterstrider'},
Nenue@51 182 {petFamily = 'Wolf'},
Nenue@51 183 },
Nenue@51 184 ['DRUID'] = {
Nenue@51 185 {spec = 2, spellID = 17007, auraType = 'druidform'}
Nenue@51 186 },
Nenue@51 187 ['MAGE'] = {
Nenue@51 188 {spellID = 1459, spellName = 'Arcane Brilliance'}, -- arcane brilliance
Nenue@51 189 {spellID = 61316, spellName = 'Dalaran Brilliance'}, -- dalaran brilliance
Nenue@51 190 },
Nenue@51 191 ['MONK'] = {
Nenue@51 192 {spellID = 116781, spellName = 'Legacy of the White Tiger', spec = 2} -- windwalker
Nenue@51 193 }
Nenue@51 194 },
Nenue@51 195
Nenue@51 196 -- MASTERY
Nenue@51 197 [7] = {
Nenue@51 198 ['HUNTER'] = {
Nenue@51 199 {talent = {155228}, spellID = 160198, spellName = 'Lone Wolf: Grace of the Cat', auraType = 'lonewolf'},
Nenue@51 200 {petFamily = 'Cat'}, -- active pet family
Nenue@51 201 {petFamily = 'Hydra'},
Nenue@51 202 {petFamily = 'Spirit Beast'},
Nenue@51 203 {petFamily = 'Tallstrider'},
Nenue@51 204 },
Nenue@51 205 ['DEATHKNIGHT'] = {
Nenue@51 206 {spec = 1}
Nenue@51 207 },
Nenue@51 208 ['DRUID'] = {
Nenue@51 209 {spec = 1, spellID = 24907, auraType = 'druidform'},
Nenue@51 210 },
Nenue@51 211 ['PALADIN'] = {
Nenue@51 212 {spec = 1, spellID = 19740, spellName = 'Blessing of Might', auraType = 'blessing'}
Nenue@51 213 },
Nenue@51 214 ['SHAMAN'] = {true},
Nenue@51 215 },
Nenue@51 216
Nenue@51 217 -- MULTISTRIKE
Nenue@51 218 [8] = {
Nenue@51 219 ['HUNTER'] = {
Nenue@51 220 {talent = {155228}, spellID = 172968, spellName = 'Lone Wolf: Quickness of the Dragonhawk', auraType = 'lonewolf'},
Nenue@51 221 {petFamily = 'Bat'}, -- active pet family
Nenue@51 222 {petFamily = 'Clefthoof'},
Nenue@51 223 {petFamily = 'Corehound'},
Nenue@51 224 {petFamily = 'Dragonhawk'},
Nenue@51 225 {petFamily = 'Wind Serpent'},
Nenue@51 226 },
Nenue@51 227 ['MONK'] = {
Nenue@51 228 {spec = 2 }
Nenue@51 229 }, -- Windflurry,
Nenue@51 230 ['PRIEST'] = {
Nenue@51 231 {spec = 3 }
Nenue@51 232 }, -- quickening,
Nenue@51 233 ['ROGUE'] = {true}, -- swiftblade's
Nenue@51 234 ['WARLOCK'] = {
Nenue@51 235 {spellID = 109773,spellName = 'Dark Intent' }
Nenue@51 236 },
Nenue@51 237 },
Nenue@51 238
Nenue@51 239 -- VERSATILITY
Nenue@51 240 [9] = {
Nenue@51 241 ['HUNTER'] = {
Nenue@51 242 {talent = {155228}, spellID = 172967, spellName = 'Lone Wolf: Versatility of the Ravager', auraType = 'lonewolf'},
Nenue@51 243 {petFamily = 'Ravager'}, -- active pet family
Nenue@51 244 {petFamily = 'Boar'},
Nenue@51 245 {petFamily = 'Porcupine'},
Nenue@51 246 {petFamily = 'Clefthoof'},
Nenue@51 247 {petFamily = 'Stag'},
Nenue@51 248 {petFamily = 'Worm'},
Nenue@51 249 {petFamily = 'Bird of Prey'},
Nenue@51 250 },
Nenue@51 251 ['DEATH KNIGHT'] = {
Nenue@51 252 {spec = 2}, -- unholy aura
Nenue@51 253 {spec = 3},
Nenue@51 254 },
Nenue@51 255 ['DRUID'] = {
Nenue@51 256 {spellID = 1126, spellName = 'Mark of the Wild'},
Nenue@51 257 },
Nenue@51 258 ['PALADIN'] = {
Nenue@51 259 {spec = 2}, -- retribution
Nenue@51 260 },
Nenue@51 261 ['WARRIOR'] = {
Nenue@51 262 {spec = 2}, -- arms or fury
Nenue@51 263 {spec = 3},
Nenue@51 264 },
Nenue@51 265 }
Nenue@51 266 }
Nenue@51 267
Nenue@51 268 -------------------------
Nenue@51 269 -- Default config values
Nenue@51 270 -------------------------
Nenue@51 271 Aura.defaults = {
Nenue@51 272 -- defaulted to on for first-time setup
Nenue@51 273 ConfigMode = true,
Nenue@51 274 GuidesMode = true,
Nenue@51 275
Nenue@51 276 BuffButtonAnchor = {'TOPRIGHT', 'UIParent', 'TOPRIGHT', -300, -5},
Nenue@51 277 BuffButtonMax = 24,
Nenue@51 278 BuffButtonPerRow = 10,
Nenue@51 279 BuffButtonSize = 50,
Nenue@51 280 BuffButtonSpacing = 4,
Nenue@51 281 BuffButtonZoom = 15,
Nenue@51 282 BuffButtonVertexColor = {},
Nenue@51 283 BuffButtonPoint = {'TOPRIGHT', 'TOPRIGHT'},
Nenue@51 284 BuffButtonDurationSize = 16,
Nenue@51 285 BuffButtonDurationPoint = {'BOTTOM', 'BOTTOM', 0, -1},
Nenue@51 286 BuffButtonCountSize = 18,
Nenue@51 287 BuffButtonCountPoint = {'TOPRIGHT', 'TOPRIGHT', -3, -3},
Nenue@51 288 BuffButtonRelativeX = -1,
Nenue@51 289 BuffButtonRelativeY = -1,
Nenue@51 290
Nenue@51 291 BuffButtonColor = {1, 1, 1, 1},
Nenue@51 292 BuffButtonPlayerColor = {1,1,1,1},
Nenue@51 293 BuffButtonRaidColor = {0.25,1,0.25,1},
Nenue@51 294 BuffButtonBossColor = {1,0.5,0,1},
Nenue@51 295 BuffButtonBorder = 1,
Nenue@51 296
Nenue@51 297 BuffButtonWarningFade = true,
Nenue@51 298 BuffButtonShowSelfCast = true,
Nenue@51 299
Nenue@51 300 DebuffButtonAnchor = {'TOPRIGHT', 'UIParent', 'TOPRIGHT', -300, -200},
Nenue@51 301 DebuffButtonMax = 12,
Nenue@51 302 DebuffButtonPerRow = 10,
Nenue@51 303 DebuffButtonSize = 50,
Nenue@51 304 DebuffButtonSpacing = 4,
Nenue@51 305 DebuffButtonDurationSize = 16,
Nenue@51 306 DebuffButtonZoom = 15,
Nenue@51 307 DebuffButtonVertexColor = {},
Nenue@51 308 DebuffButtonPoint = {'TOPRIGHT','TOPRIGHT'},
Nenue@51 309 DebuffButtonRelativeX = -1,
Nenue@51 310 DebuffButtonRelativeY = -1,
Nenue@51 311
Nenue@51 312
Nenue@51 313 TempEnchantAnchor = {'TOPRIGHT', 'UIParent', 'TOPRIGHT', -200, -300},
Nenue@51 314 TempEnchantMax = 2,
Nenue@51 315 TempEnchantPerRow = 10,
Nenue@51 316 TempEnchantSize = 50,
Nenue@51 317 TempEnchantSpacing = 4,
Nenue@51 318 TempEnchantDurationSize = 16,
Nenue@51 319 TempEnchantZoom = 15,
Nenue@51 320 TempEnchantVertexColor = {},
Nenue@51 321 TempEnchantPoint = {'TOPRIGHT', 'TOPRIGHT'},
Nenue@51 322 TempEnchantRelativeX = -1,
Nenue@51 323 TempEnchantRelativeY = -1,
Nenue@51 324 TempEnchantColor = {1,0,0.5,1},
Nenue@51 325
Nenue@51 326 ConsolidatedBuffAnchor = {'TOPRIGHT', 'UIParent', 'TOPRIGHT', 0, 0},
Nenue@51 327 ConsolidatedBuffIcon = false,
Nenue@51 328 ConsolidatedBuffMax = 9,
Nenue@51 329 ConsolidatedBuffSize = 16,
Nenue@51 330 ConsolidatedBuffParent = 'BuffButton',
Nenue@51 331 ConsolidatedBuffPosition = 1,
Nenue@51 332 ConsolidatedBuffSpacing = 1,
Nenue@51 333 ConsolidatedBuffBorder = 0,
Nenue@51 334 ConsolidatedBuffPerRow = 3,
Nenue@51 335 ConsolidatedBuffPoint = {'TOPRIGHT', 'TOPRIGHT'},
Nenue@51 336 ConsolidatedBuffRelativeX = -1,
Nenue@51 337 ConsolidatedBuffRelativeY = -1,
Nenue@51 338 ConsolidatedBuffDurationSize = 0,
Nenue@51 339 ConsolidatedBuffDurationPoint = {'BOTTOM', 'BOTTOM', 0, 0},
Nenue@51 340 ConsolidatedBuffCountPoint = {'BOTTOM', 'BOTTOM', 0, 0},
Nenue@51 341
Nenue@51 342 RaidShowMissing = true,
Nenue@51 343
Nenue@51 344 }