annotate Constants.lua @ 395:930da8078de7 6.0.3-1

Increased reliability of chat-based loot data and fixed two critical bugs with bonus ID parsing.
author MMOSimca <MMOSimca@gmail.com>
date Fri, 19 Dec 2014 15:54:50 -0500
parents a30c251ad382
children ad8323486561
rev   line source
jcallahan@1 1 -----------------------------------------------------------------------
jcallahan@1 2 -- Upvalued Lua API.
jcallahan@1 3 -----------------------------------------------------------------------
jcallahan@1 4 local _G = getfenv(0)
jcallahan@1 5
jcallahan@1 6 local bit = _G.bit
jcallahan@1 7
jcallahan@1 8
jcallahan@1 9 -----------------------------------------------------------------------
jcallahan@1 10 -- AddOn namespace.
jcallahan@1 11 -----------------------------------------------------------------------
jcallahan@1 12 local ADDON_NAME, private = ...
jcallahan@1 13
jcallahan@1 14
jcallahan@1 15 -----------------------------------------------------------------------
MMOSimca@381 16 -- Boss/Loot Data Constants.
MMOSimca@336 17 -----------------------------------------------------------------------
MMOSimca@345 18 -- Map of Alliance Logging NPC Summon spells to all possible Timber objectIDs of the proper tree size
MMOSimca@345 19 private.LOGGING_SPELL_ID_TO_OBJECT_ID_MAP = {
MMOSimca@381 20 [167902] = 234021,
MMOSimca@381 21 [167969] = 234022,
MMOSimca@381 22 [168201] = 234023,
MMOSimca@345 23 }
MMOSimca@345 24 -- Account for Horde spell IDs
MMOSimca@345 25 private.LOGGING_SPELL_ID_TO_OBJECT_ID_MAP[167961] = private.LOGGING_SPELL_ID_TO_OBJECT_ID_MAP[167902]
MMOSimca@345 26 private.LOGGING_SPELL_ID_TO_OBJECT_ID_MAP[168043] = private.LOGGING_SPELL_ID_TO_OBJECT_ID_MAP[167969]
MMOSimca@345 27 private.LOGGING_SPELL_ID_TO_OBJECT_ID_MAP[168200] = private.LOGGING_SPELL_ID_TO_OBJECT_ID_MAP[168201]
MMOSimca@345 28
MMOSimca@355 29 -- Map of Garrison Cache object names to Garrison Cache object IDs
MMOSimca@355 30 private.GARRISON_CACHE_OBJECT_NAME_TO_OBJECT_ID_MAP = {
MMOSimca@355 31 ["Garrison Cache"] = 236916,
MMOSimca@355 32 ["Full Garrison Cache"] = 237722,
MMOSimca@355 33 ["Hefty Garrison Cache"] = 237723,
MMOSimca@355 34 }
MMOSimca@355 35 private.GARRISON_CACHE_LOOT_SOURCE_ID = 10
MMOSimca@355 36
MMOSimca@381 37 -- Mapping of items that, when right-clicked, fire a spell (which can fail, so we have to check success).
MMOSimca@381 38 -- They reward loot via loot toast popups upon completion of that spell.
MMOSimca@381 39 -- SHOW_LOOT_TOAST can be used to track loot.
MMOSimca@381 40 private.LOOT_TOAST_CONTAINER_SPELL_ID_TO_ITEM_ID_MAP = {
MMOSimca@345 41 [142397] = 98134, -- Heroic Cache of Treasures
MMOSimca@345 42 [142901] = 98546, -- Bulging Heroic Cache of Treasures
MMOSimca@345 43 [143506] = 98095, -- Brawler's Pet Supplies
MMOSimca@345 44 [143507] = 94207, -- Fabled Pandaren Pet Supplies
MMOSimca@345 45 [143508] = 89125, -- Sack of Pet Supplies
MMOSimca@345 46 [143509] = 93146, -- Pandaren Spirit Pet Supplies
MMOSimca@345 47 [143510] = 93147, -- Pandaren Spirit Pet Supplies
MMOSimca@345 48 [143511] = 93149, -- Pandaren Spirit Pet Supplies
MMOSimca@345 49 [143512] = 93148, -- Pandaren Spirit Pet Supplies
MMOSimca@345 50 [146885] = 103535, -- Bulging Bag of Charms
MMOSimca@345 51 [147598] = 104014, -- Pouch of Timeless Coins
MMOSimca@345 52 [149222] = 105911, -- Pouch of Enduring Wisdom
MMOSimca@345 53 [149223] = 105912, -- Oversized Pouch of Enduring Wisdom
MMOSimca@345 54 [171513] = 116414, -- Pet Supplies
MMOSimca@345 55 [175767] = 118697, -- Big Bag of Pet Supplies
MMOSimca@345 56 [178508] = 120321, -- Mystery Bag
MMOSimca@345 57 }
MMOSimca@345 58
MMOSimca@381 59 -- Mapping of items that, when right-clicked, fire a spell (which can fail, so we have to check success).
MMOSimca@381 60 -- They reward loot upon completion of that spell.
MMOSimca@381 61 -- CHAT_MSG_LOOT -must- be used to track loot, which is definitely not ideal.
MMOSimca@381 62 private.DELAYED_CONTAINER_SPELL_ID_TO_ITEM_ID_MAP = {
MMOSimca@394 63 [57844] = 36781,
MMOSimca@394 64 [58160] = 24476,
MMOSimca@394 65 [58165] = 7973,
MMOSimca@394 66 [58168] = 5524,
MMOSimca@394 67 [58172] = 5523,
MMOSimca@394 68 [61898] = 15874,
MMOSimca@394 69 [64202] = 45909,
MMOSimca@394 70 [73500] = 52340,
MMOSimca@394 71 [80615] = 58856,
MMOSimca@394 72 [84193] = 60838,
MMOSimca@394 73 [85325] = 54218,
MMOSimca@394 74 [85435] = 50301,
MMOSimca@394 75 [99438] = 69956,
MMOSimca@394 76 [99500] = 69990,
MMOSimca@394 77 [109946] = 78890,
MMOSimca@394 78 [109948] = 78892,
MMOSimca@394 79 [109954] = 77952,
MMOSimca@394 80 [146236] = 102269,
MMOSimca@394 81 [146237] = 102264,
MMOSimca@394 82 [146238] = 102263,
MMOSimca@394 83 [146239] = 102265,
MMOSimca@394 84 [146240] = 102266,
MMOSimca@394 85 [146241] = 102267,
MMOSimca@394 86 [146242] = 102268,
MMOSimca@394 87 [146243] = 102320,
MMOSimca@394 88 [146244] = 102291,
MMOSimca@394 89 [146246] = 102318,
MMOSimca@394 90 [146259] = 102276,
MMOSimca@394 91 [146260] = 102271,
MMOSimca@394 92 [146261] = 102270,
MMOSimca@394 93 [146263] = 102272,
MMOSimca@394 94 [146264] = 102273,
MMOSimca@394 95 [146265] = 102274,
MMOSimca@394 96 [146266] = 102275,
MMOSimca@394 97 [146267] = 102327,
MMOSimca@394 98 [146268] = 102283,
MMOSimca@394 99 [146269] = 102278,
MMOSimca@394 100 [146270] = 102277,
MMOSimca@394 101 [146271] = 102279,
MMOSimca@394 102 [146272] = 102280,
MMOSimca@394 103 [146273] = 102281,
MMOSimca@394 104 [146274] = 102282,
MMOSimca@394 105 [146275] = 102334,
MMOSimca@394 106 [146276] = 102290,
MMOSimca@394 107 [146277] = 102285,
MMOSimca@394 108 [146278] = 102284,
MMOSimca@394 109 [146279] = 102286,
MMOSimca@394 110 [146280] = 102287,
MMOSimca@394 111 [146281] = 102288,
MMOSimca@394 112 [146282] = 102289,
MMOSimca@394 113 [146283] = 102341,
MMOSimca@394 114 [147433] = 102266,
MMOSimca@394 115 [147434] = 102266,
MMOSimca@394 116 [147435] = 102266,
MMOSimca@394 117 [147597] = 104009,
MMOSimca@394 118 [148099] = 104010,
MMOSimca@394 119 [148103] = 104012,
MMOSimca@394 120 [148104] = 104013,
MMOSimca@394 121 [148740] = 104345,
MMOSimca@394 122 [148746] = 104347,
MMOSimca@394 123 [155445] = 107649,
MMOSimca@394 124 [161131] = 111589,
MMOSimca@394 125 [161225] = 111595,
MMOSimca@394 126 [161226] = 111601,
MMOSimca@394 127 [161230] = 111650,
MMOSimca@394 128 [161231] = 111652,
MMOSimca@394 129 [161232] = 111651,
MMOSimca@394 130 [161234] = 111656,
MMOSimca@394 131 [161237] = 111658,
MMOSimca@394 132 [161241] = 111659,
MMOSimca@394 133 [161261] = 111662,
MMOSimca@394 134 [161266] = 111663,
MMOSimca@394 135 [161267] = 111664,
MMOSimca@394 136 [161269] = 111665,
MMOSimca@394 137 [161270] = 111666,
MMOSimca@394 138 [161272] = 111667,
MMOSimca@394 139 [161273] = 111668,
MMOSimca@394 140 [161274] = 111669,
MMOSimca@394 141 [161275] = 111670,
MMOSimca@394 142 [161276] = 111671,
MMOSimca@394 143 [161277] = 111672,
MMOSimca@394 144 [161279] = 111673,
MMOSimca@394 145 [161281] = 111674,
MMOSimca@394 146 [161283] = 111675,
MMOSimca@394 147 [161284] = 111676,
MMOSimca@394 148 [166030] = 113203,
MMOSimca@394 149 [166153] = 113244,
MMOSimca@394 150 [166156] = 113245,
MMOSimca@394 151 [166460] = 113295,
MMOSimca@394 152 [166481] = 113307,
MMOSimca@394 153 [166487] = 113310,
MMOSimca@394 154 [166507] = 113313,
MMOSimca@394 155 [166509] = 113316,
MMOSimca@394 156 [166513] = 113321,
MMOSimca@394 157 [166520] = 113324,
MMOSimca@394 158 [166526] = 113328,
MMOSimca@394 159 [166529] = 113332,
MMOSimca@394 160 [166531] = 113336,
MMOSimca@394 161 [166550] = 113355,
MMOSimca@394 162 [166574] = 113358,
MMOSimca@394 163 [166578] = 113361,
MMOSimca@394 164 [166582] = 113365,
MMOSimca@394 165 [166586] = 113367,
MMOSimca@394 166 [166589] = 113371,
MMOSimca@394 167 [166593] = 113376,
MMOSimca@394 168 [166599] = 113381,
MMOSimca@394 169 [166600] = 113384,
MMOSimca@394 170 [166606] = 113387,
MMOSimca@394 171 [166611] = 113391,
MMOSimca@394 172 [166619] = 113394,
MMOSimca@394 173 [166739] = 113327,
MMOSimca@394 174 [166744] = 113329,
MMOSimca@394 175 [166764] = 113411,
MMOSimca@394 176 [166770] = 113417,
MMOSimca@394 177 [166788] = 113420,
MMOSimca@394 178 [166796] = 113423,
MMOSimca@394 179 [166800] = 113426,
MMOSimca@394 180 [166801] = 113429,
MMOSimca@394 181 [166900] = 113452,
MMOSimca@394 182 [166905] = 113465,
MMOSimca@394 183 [166909] = 113468,
MMOSimca@394 184 [166915] = 113471,
MMOSimca@394 185 [166980] = 113478,
MMOSimca@394 186 [166985] = 113483,
MMOSimca@394 187 [167089] = 113495,
MMOSimca@394 188 [167096] = 113499,
MMOSimca@394 189 [167981] = 114002,
MMOSimca@394 190 [168084] = 114039,
MMOSimca@394 191 [168103] = 114052,
MMOSimca@394 192 [168115] = 114053,
MMOSimca@394 193 [168178] = 114116,
MMOSimca@394 194 [168179] = 114119,
MMOSimca@394 195 [168180] = 114120,
MMOSimca@394 196 [168677] = 114106,
MMOSimca@394 197 [168678] = 114051,
MMOSimca@394 198 [168679] = 114049,
MMOSimca@394 199 [168680] = 114048,
MMOSimca@394 200 [168681] = 114047,
MMOSimca@394 201 [168682] = 114046,
MMOSimca@394 202 [168683] = 114045,
MMOSimca@394 203 [168684] = 114044,
MMOSimca@394 204 [168685] = 114043,
MMOSimca@394 205 [168686] = 114042,
MMOSimca@394 206 [168687] = 114041,
MMOSimca@394 207 [168688] = 114040,
MMOSimca@394 208 [168700] = 114108,
MMOSimca@394 209 [168701] = 114105,
MMOSimca@394 210 [168702] = 114104,
MMOSimca@394 211 [168703] = 114103,
MMOSimca@394 212 [168704] = 114102,
MMOSimca@394 213 [168705] = 114101,
MMOSimca@394 214 [168706] = 114100,
MMOSimca@394 215 [168707] = 114099,
MMOSimca@394 216 [168708] = 114098,
MMOSimca@394 217 [168709] = 114097,
MMOSimca@394 218 [168710] = 114096,
MMOSimca@394 219 [168711] = 114095,
MMOSimca@394 220 [168712] = 114094,
MMOSimca@394 221 [168713] = 114109,
MMOSimca@394 222 [168714] = 114068,
MMOSimca@394 223 [168715] = 114067,
MMOSimca@394 224 [168716] = 114066,
MMOSimca@394 225 [168717] = 114065,
MMOSimca@394 226 [168718] = 114064,
MMOSimca@394 227 [168719] = 114063,
MMOSimca@394 228 [168720] = 114062,
MMOSimca@394 229 [168721] = 114061,
MMOSimca@394 230 [168722] = 114060,
MMOSimca@394 231 [168723] = 114059,
MMOSimca@394 232 [168724] = 114058,
MMOSimca@394 233 [168725] = 114057,
MMOSimca@394 234 [168726] = 114110,
MMOSimca@394 235 [168727] = 114080,
MMOSimca@394 236 [168728] = 114079,
MMOSimca@394 237 [168729] = 114078,
MMOSimca@394 238 [168730] = 114077,
MMOSimca@394 239 [168731] = 114076,
MMOSimca@394 240 [168732] = 114075,
MMOSimca@394 241 [168733] = 114074,
MMOSimca@394 242 [168734] = 114073,
MMOSimca@394 243 [168735] = 114072,
MMOSimca@394 244 [168736] = 114071,
MMOSimca@394 245 [168737] = 114070,
MMOSimca@394 246 [168738] = 114069,
MMOSimca@394 247 [168739] = 114112,
MMOSimca@394 248 [168740] = 114087,
MMOSimca@394 249 [168741] = 119124,
MMOSimca@394 250 [168742] = 114086,
MMOSimca@394 251 [168743] = 119122,
MMOSimca@394 252 [168744] = 119120,
MMOSimca@394 253 [168745] = 114085,
MMOSimca@394 254 [168746] = 119118,
MMOSimca@394 255 [168747] = 119116,
MMOSimca@394 256 [168748] = 119114,
MMOSimca@394 257 [168749] = 114084,
MMOSimca@394 258 [168750] = 114083,
MMOSimca@394 259 [168751] = 114082,
MMOSimca@394 260 [168752] = 114111,
MMOSimca@394 261 [168753] = 114093,
MMOSimca@394 262 [168754] = 119125,
MMOSimca@394 263 [168755] = 114092,
MMOSimca@394 264 [168756] = 119123,
MMOSimca@394 265 [168757] = 119121,
MMOSimca@394 266 [168758] = 114091,
MMOSimca@394 267 [168759] = 119119,
MMOSimca@394 268 [168760] = 119117,
MMOSimca@394 269 [168761] = 119115,
MMOSimca@394 270 [168762] = 114090,
MMOSimca@394 271 [168763] = 114089,
MMOSimca@394 272 [168764] = 114088,
MMOSimca@394 273 [169508] = 115018,
MMOSimca@394 274 [170566] = 115591,
MMOSimca@394 275 [175132] = 118564,
MMOSimca@394 276 [175135] = 118565,
MMOSimca@394 277 [175136] = 118566,
MMOSimca@394 278 [176482] = 118592,
MMOSimca@394 279 [176483] = 119094,
MMOSimca@394 280 [176484] = 119095,
MMOSimca@394 281 [176485] = 119096,
MMOSimca@394 282 [176486] = 119097,
MMOSimca@394 283 [176487] = 119098,
MMOSimca@394 284 [176488] = 119099,
MMOSimca@394 285 [176489] = 119100,
MMOSimca@394 286 [176490] = 119101,
MMOSimca@394 287 [176491] = 119102,
MMOSimca@394 288 [176791] = 119185,
MMOSimca@394 289 [176934] = 119095,
MMOSimca@394 290 [178444] = 120301,
MMOSimca@394 291 [178445] = 120302,
MMOSimca@381 292 }
MMOSimca@381 293
MMOSimca@387 294 -- List of items that, when right-clicked, reward loot (includes items from DELAYED_CONTAINER_SPELL_ID_TO_ITEM_ID_MAP).
MMOSimca@387 295 -- This means they -must- be tracked via CHAT_MSG_LOOT.
MMOSimca@387 296 -- It also means there is a high margin for bad data since multiple bags can be clicked within a small time frame.
MMOSimca@387 297 -- True = instant cast; false = cast time
MMOSimca@387 298 private.CONTAINER_ITEM_ID_LIST = {
MMOSimca@394 299 [105751] = true, -- Kor'kron Shaman's Treasure
MMOSimca@387 300 [116980] = true, -- Invader's Forgotten Treasure
MMOSimca@393 301 [118529] = true, -- Cache of Highmaul Treasures (Normal)
MMOSimca@393 302 [118530] = true, -- Cache of Highmaul Treasures (Heroic)
MMOSimca@393 303 [118531] = true, -- Cache of Highmaul Treasures (Mythic)
MMOSimca@393 304 [119036] = true, -- Box of Storied Treasures
MMOSimca@393 305 [119037] = true, -- Supply of Storied Rarities
MMOSimca@387 306 [120319] = true, -- Invader's Damaged Cache
MMOSimca@387 307 [120320] = true, -- Invader's Abandoned Sack
MMOSimca@387 308 }
MMOSimca@391 309 for key, value in next, private.DELAYED_CONTAINER_SPELL_ID_TO_ITEM_ID_MAP do
MMOSimca@391 310 private.CONTAINER_ITEM_ID_LIST[value] = false
MMOSimca@391 311 end
MMOSimca@387 312
MMOSimca@391 313 -- Mapping of Spell IDs for bonus roll confirmation prompts to raid bosses
MMOSimca@391 314 -- In some cases this records only bonus loot, and in other cases this is needed for all loot.
MMOSimca@381 315 private.RAID_BOSS_BONUS_SPELL_ID_TO_NPC_ID_MAP = {
MMOSimca@381 316 -----------------------------------------------------------------------
MMOSimca@381 317 -- World Bosses
MMOSimca@381 318 -----------------------------------------------------------------------
MMOSimca@381 319 [132205] = 60491, -- Sha of Anger Bonus (Sha of Anger)
MMOSimca@381 320 [132206] = 62346, -- Galleon Bonus (Galleon)
MMOSimca@381 321 [136381] = 69099, -- Nalak Bonus (Nalak)
MMOSimca@381 322 [137554] = 69161, -- Oondasta Bonus (Oondasta)
MMOSimca@381 323 [148317] = 71952, -- Celestials Bonus (Chi-Ji)
MMOSimca@381 324 [148316] = 72057, -- Ordos Bonus (Ordos)
MMOSimca@389 325 [178847] = 81252, -- Drov Bonus (Drov the Ruiner)
MMOSimca@389 326 [178849] = 81535, -- Tarlna Bonus (Tarlna the Ageless)
MMOSimca@389 327 [178851] = 83746, -- Rukhmar Bonus (Rukhmar)
MMOSimca@381 328
MMOSimca@381 329 -----------------------------------------------------------------------
MMOSimca@381 330 -- Blackrock Foundry
MMOSimca@381 331 -----------------------------------------------------------------------
MMOSimca@389 332 [177529] = 76877, -- Gruul Bonus (Gruul)
MMOSimca@389 333 [177530] = 77182, -- Oregorger Bonus (Oregorger)
MMOSimca@389 334 [177531] = 76809, -- Blast Furnace (Foreman Feldspar)
MMOSimca@389 335 [177533] = 76973, -- Hans'gar & Franzok Bonus (Hans'gar)
MMOSimca@389 336 [177534] = 76814, -- Flamebender Ka'graz Bonus (Flamebender Ka'graz)
MMOSimca@389 337 [177535] = 77692, -- Kromog Bonus (Kromog)
MMOSimca@389 338 [177536] = 76865, -- Beastlord Darmac Bonus (Beastlord Darmac)
MMOSimca@389 339 [177537] = 76906, -- Operator Thogar Bonus (Operator Thogar)
MMOSimca@389 340 [177538] = 77557, -- The Iron Maidens Bonus (Admiral Gar'an)
MMOSimca@389 341 [177539] = 77325, -- Blackhand Bonus (Blackhand)
MMOSimca@381 342
MMOSimca@381 343 -----------------------------------------------------------------------
MMOSimca@381 344 -- Highmaul
MMOSimca@381 345 -----------------------------------------------------------------------
MMOSimca@389 346 [177521] = 78714, -- Kargath Bladefist Bonus (Kargath Bladefist)
MMOSimca@389 347 [177522] = 77404, -- Butcher Bonus (The Butcher)
MMOSimca@389 348 [177523] = 78948, -- Tectus Bonus (Tectus)
MMOSimca@389 349 [177524] = 78491, -- Brackenspore Bonus (Brackenspore)
MMOSimca@389 350 [177525] = 78237, -- Twin Ogron Bonus (Phemos)
MMOSimca@389 351 [177526] = 79015, -- Ko'ragh Bonus (Ko'ragh)
MMOSimca@389 352 [177528] = 77428, -- Imperator Mar'gok Bonus (Imperator Mar'gok)
MMOSimca@381 353
MMOSimca@381 354 -----------------------------------------------------------------------
MMOSimca@381 355 -- Mists of Pandaria
MMOSimca@381 356 -----------------------------------------------------------------------
MMOSimca@381 357 [125144] = 59915, -- Stone Guard Bonus (Jasper Guardian)
MMOSimca@381 358 [132189] = 60009, -- Feng the Accursed Bonus (Feng the Accursed)
MMOSimca@381 359 [132190] = 60143, -- Gara'jal the Spiritbinder Bonus (Gara'jal the Spiritbinder)
MMOSimca@381 360 [132191] = 60709, -- Spirit Kings Bonus (Qiang the Merciless)
MMOSimca@381 361 [132192] = 60410, -- Elegon Bonus (Elegon)
MMOSimca@381 362 [132193] = 60399, -- Will of the Emperor Bonus (Qin-xi)
MMOSimca@381 363 [132200] = 60583, -- Protectors of the Endless Bonus (Protector Kaolan)
MMOSimca@381 364 [132204] = 60583, -- Protectors of the Endless (Elite) Bonus (Protector Kaolan)
MMOSimca@381 365 [132201] = 62442, -- Tsulong Bonus (Tsulong)
MMOSimca@381 366 [132202] = 62983, -- Lei Shi Bonus (Lei Shi)
MMOSimca@381 367 [132203] = 60999, -- Sha of Fear Bonus (Sha of Fear)
MMOSimca@381 368 [132194] = 62980, -- Imperial Vizier Zor'lok Bonus (Imperial Vizier Zor'lok)
MMOSimca@381 369 [132195] = 62543, -- Blade Lord Tay'ak Bonus (Blade Lord Ta'yak)
MMOSimca@381 370 [132196] = 62164, -- Garalon Bonus (Garalon)
MMOSimca@381 371 [132197] = 62397, -- Wind Lord Mel'jarak Bonus (Wind Lord Mel'jarak)
MMOSimca@381 372 [132198] = 62511, -- Amber-Shaper Un'sok Bonus (Amber-Shaper Un'sok)
MMOSimca@381 373 [132199] = 62837, -- Grand Empress Shek'zeer Bonus (Grand Empress Shek'zeer)
MMOSimca@381 374 [139674] = 69465, -- Jin'rokh the Breaker Bonus (Jin'rokh the Breaker)
MMOSimca@381 375 [139677] = 68476, -- Horridon Bonus (Horridon)
MMOSimca@381 376 [139679] = 69078, -- Zandalari Troll Council Bonus (Sul the Sandcrawler)
MMOSimca@381 377 [139680] = 67977, -- Tortos Bonus (Tortos)
MMOSimca@381 378 [139682] = 68065, -- Magaera Bonus (Megaera)
MMOSimca@381 379 [139684] = 69712, -- Ji'kun, the Ancient Mother Bonus (Ji-Kun)
MMOSimca@381 380 [139686] = 68036, -- Durumu the Forgotten Bonus (Durumu the Forgotten)
MMOSimca@381 381 [139687] = 69017, -- Primordious Bonus (Primordius)
MMOSimca@381 382 [139688] = 69427, -- Dark Animus Bonus (Dark Animus)
MMOSimca@381 383 [139689] = 68078, -- Iron Qon Bonus (Iron Qon)
MMOSimca@381 384 [139690] = 68904, -- The Empyreal Queens Bonus (Suen)
MMOSimca@381 385 [139691] = 68397, -- Lei Shen, The Thunder King Bonus (Lei Shen)
MMOSimca@381 386 [139692] = 69473, -- Ra-den Bonus (Ra-den)
MMOSimca@381 387 [145909] = 71543, -- Immerseus Bonus (Immerseus)
MMOSimca@381 388 [145910] = 71475, -- Fallen Protectors Bonus (Rook Stonetoe)
MMOSimca@381 389 [145911] = 72276, -- Norushen Bonus (Amalgam of Corruption)
MMOSimca@381 390 [145912] = 71734, -- Sha of Pride Bonus (Sha of Pride)
MMOSimca@381 391 [145913] = 72249, -- Galakras Bonus (Galakras)
MMOSimca@381 392 [145914] = 71466, -- Iron Juggernaut Bonus (Iron Juggernaut)
MMOSimca@381 393 [145915] = 71859, -- Dark Shaman Bonus (Earthbreaker Haromm)
MMOSimca@381 394 [145916] = 71515, -- General Nazgrim Bonus (General Nazgrim)
MMOSimca@381 395 [145917] = 71454, -- Malkorok Bonus (Malkorok)
MMOSimca@381 396 [145919] = 71889, -- Spoils of Pandaria Bonus (Secured Stockpile of Pandaren Spoils)
MMOSimca@381 397 [145920] = 71529, -- Thok the Bloodthirsty Bonus (Thok the Bloodthirsty)
MMOSimca@381 398 [145918] = 71504, -- Siegecrafter Blackfuse Bonus (Siegecrafter Blackfuse)
MMOSimca@381 399 [145921] = 71161, -- Klaxxi Paragons Bonus (Kil'ruk the Wind-Reaver)
MMOSimca@381 400 [145922] = 71865, -- Garrosh Hellscream Bonus (Garrosh Hellscream)
MMOSimca@381 401 }
MMOSimca@381 402
MMOSimca@381 403
MMOSimca@381 404 -----------------------------------------------------------------------
MMOSimca@381 405 -- Fundamental Constants.
MMOSimca@381 406 -----------------------------------------------------------------------
MMOSimca@381 407 private.wow_version, private.build_num = _G.GetBuildInfo()
MMOSimca@381 408 private.region = GetCVar("portal"):sub(0,2):upper()
MMOSimca@381 409 -- PTR/Beta return "public-test", but they are properly called "XX"
MMOSimca@381 410 if private.region == "PU" then private.region = "XX" end
MMOSimca@381 411
MMOSimca@381 412 private.UNIT_TYPES = {
MMOSimca@381 413 PLAYER = "Player",
MMOSimca@381 414 OBJECT = "GameObject",
MMOSimca@381 415 UNKNOWN = "Unknown",
MMOSimca@381 416 NPC = "Creature",
MMOSimca@381 417 PET = "Pet",
MMOSimca@381 418 VEHICLE = "Vehicle",
MMOSimca@381 419 ITEM = "Item",
MMOSimca@381 420 }
MMOSimca@381 421
MMOSimca@381 422 private.UNIT_TYPE_NAMES = {
MMOSimca@381 423 ["Player"] = "PLAYER",
MMOSimca@381 424 ["GameObject"] = "OBJECT",
MMOSimca@381 425 ["Unknown"] = "UNKNOWN",
MMOSimca@381 426 ["Creature"] = "NPC",
MMOSimca@381 427 ["Pet"] = "PET",
MMOSimca@381 428 ["Vehicle"] = "VEHICLE",
MMOSimca@381 429 ["Item"] = "ITEM",
MMOSimca@381 430 }
MMOSimca@381 431
MMOSimca@381 432 private.ACTION_TYPE_FLAGS = {
MMOSimca@381 433 ITEM = 0x00000001,
MMOSimca@381 434 NPC = 0x00000002,
MMOSimca@381 435 OBJECT = 0x00000004,
MMOSimca@381 436 ZONE = 0x00000008,
MMOSimca@381 437 }
MMOSimca@381 438
MMOSimca@381 439 private.ACTION_TYPE_NAMES = {}
MMOSimca@381 440
MMOSimca@381 441 for name, bit in _G.pairs(private.ACTION_TYPE_FLAGS) do
MMOSimca@381 442 private.ACTION_TYPE_NAMES[bit] = name
MMOSimca@381 443 end
MMOSimca@381 444
MMOSimca@381 445 private.SPELL_LABELS_BY_NAME = {
MMOSimca@381 446 [_G.GetSpellInfo(13262)] = "DISENCHANT",
MMOSimca@381 447 [_G.GetSpellInfo(4036)] = "ENGINEERING",
MMOSimca@381 448 [_G.GetSpellInfo(30427)] = "EXTRACT_GAS",
MMOSimca@381 449 [_G.GetSpellInfo(131476)] = "FISHING",
MMOSimca@381 450 [_G.GetSpellInfo(2366)] = "HERB_GATHERING",
MMOSimca@381 451 [_G.GetSpellInfo(51005)] = "MILLING",
MMOSimca@381 452 [_G.GetSpellInfo(605)] = "MIND_CONTROL",
MMOSimca@381 453 [_G.GetSpellInfo(2575)] = "MINING",
MMOSimca@381 454 [_G.GetSpellInfo(3365)] = "OPENING",
MMOSimca@381 455 [_G.GetSpellInfo(921)] = "PICK_POCKET",
MMOSimca@381 456 [_G.GetSpellInfo(31252)] = "PROSPECTING",
MMOSimca@381 457 [_G.GetSpellInfo(73979)] = "SEARCHING_FOR_ARTIFACTS",
MMOSimca@381 458 [_G.GetSpellInfo(8613)] = "SKINNING",
MMOSimca@381 459 }
MMOSimca@381 460
MMOSimca@381 461 private.NON_LOOT_SPELL_LABELS = {
MMOSimca@381 462 MIND_CONTROL = true,
MMOSimca@381 463 }
MMOSimca@381 464
MMOSimca@381 465 local AF = private.ACTION_TYPE_FLAGS
MMOSimca@381 466
MMOSimca@381 467 private.SPELL_FLAGS_BY_LABEL = {
MMOSimca@381 468 DISENCHANT = AF.ITEM,
MMOSimca@381 469 ENGINEERING = AF.NPC,
MMOSimca@381 470 EXTRACT_GAS = AF.ZONE,
MMOSimca@381 471 FISHING = AF.ZONE,
MMOSimca@381 472 HERB_GATHERING = bit.bor(AF.NPC, AF.OBJECT),
MMOSimca@381 473 MILLING = AF.ITEM,
MMOSimca@381 474 MIND_CONTROL = AF.NPC,
MMOSimca@381 475 MINING = bit.bor(AF.NPC, AF.OBJECT),
MMOSimca@381 476 OPENING = AF.OBJECT,
MMOSimca@381 477 PICK_POCKET = AF.NPC,
MMOSimca@381 478 PROSPECTING = AF.ITEM,
MMOSimca@381 479 SEARCHING_FOR_ARTIFACTS = AF.OBJECT,
MMOSimca@381 480 SKINNING = AF.NPC,
MMOSimca@381 481 }
MMOSimca@381 482
MMOSimca@381 483
MMOSimca@381 484 -----------------------------------------------------------------------
MMOSimca@381 485 -- Faction/Reputation Data Constants.
MMOSimca@381 486 -----------------------------------------------------------------------
MMOSimca@381 487
MMOSimca@340 488 private.FACTION_DATA = {
MMOSimca@340 489 -- Used only for private.REP_BUFFS
MMOSimca@340 490 ARGENT_CRUSADE = { 1106, _G.GetFactionInfoByID(1106) },
MMOSimca@340 491 BILGEWATER_CARTEL = { 1133, _G.GetFactionInfoByID(1133) },
MMOSimca@340 492 CENARION_CIRCLE = { 609, _G.GetFactionInfoByID(609) },
MMOSimca@340 493 DARKSPEAR = { 530, _G.GetFactionInfoByID(530) },
MMOSimca@340 494 DARNASSUS = { 69, _G.GetFactionInfoByID(69) },
MMOSimca@340 495 DRAGONMAW_CLAN = { 1172, _G.GetFactionInfoByID(1172) },
MMOSimca@340 496 EARTHEN_RING = { 1135, _G.GetFactionInfoByID(1135) },
MMOSimca@340 497 EBON_BLADE = { 1098, _G.GetFactionInfoByID(1098) },
MMOSimca@340 498 EXODAR = { 930, _G.GetFactionInfoByID(930) },
MMOSimca@340 499 GILNEAS = { 1134, _G.GetFactionInfoByID(1134) },
MMOSimca@340 500 GNOMEREGAN = { 54, _G.GetFactionInfoByID(54) },
MMOSimca@340 501 GUARDIANS_OF_HYJAL = { 1158, _G.GetFactionInfoByID(1158) },
MMOSimca@340 502 GUILD = { 1168, _G.GetFactionInfoByID(1168) },
MMOSimca@340 503 HONOR_HOLD = { 946, _G.GetFactionInfoByID(946) },
MMOSimca@340 504 HUOJIN = { 1352, _G.GetFactionInfoByID(1352) },
MMOSimca@340 505 IRONFORGE = { 47, _G.GetFactionInfoByID(47) },
MMOSimca@340 506 KIRIN_TOR = { 1090, _G.GetFactionInfoByID(1090) },
MMOSimca@340 507 ORGRIMMAR = { 76, _G.GetFactionInfoByID(76) },
MMOSimca@340 508 RAMKAHEN = { 1173, _G.GetFactionInfoByID(1173) },
MMOSimca@340 509 SHATAR = { 935, _G.GetFactionInfoByID(935) },
MMOSimca@340 510 SILVERMOON = { 911, _G.GetFactionInfoByID(911) },
MMOSimca@340 511 STORMWIND = { 72, _G.GetFactionInfoByID(72) },
MMOSimca@340 512 THERAZANE = { 1171, _G.GetFactionInfoByID(1171) },
MMOSimca@340 513 THRALLMAR = { 947, _G.GetFactionInfoByID(947) },
MMOSimca@340 514 THUNDER_BLUFF = { 81, _G.GetFactionInfoByID(81) },
MMOSimca@340 515 TUSHUI = { 1353, _G.GetFactionInfoByID(1353) },
MMOSimca@340 516 UNDERCITY = { 68, _G.GetFactionInfoByID(68) },
MMOSimca@340 517 WILDHAMMER_CLAN = { 1174, _G.GetFactionInfoByID(1174) },
MMOSimca@340 518 WYRMREST_ACCORD = { 1091, _G.GetFactionInfoByID(1091) },
MMOSimca@340 519 -- Commendation Factions
MMOSimca@340 520 ANGLERS = { 1302, _G.GetFactionInfoByID(1302) },
MMOSimca@340 521 AUGUST_CELESTIALS = { 1341, _G.GetFactionInfoByID(1341) },
MMOSimca@340 522 DOMINANCE_OFFENSIVE = { 1375, _G.GetFactionInfoByID(1375) },
MMOSimca@340 523 GOLDEN_LOTUS = { 1269, _G.GetFactionInfoByID(1269) },
MMOSimca@340 524 KIRIN_TOR_OFFENSIVE = { 1387, _G.GetFactionInfoByID(1387) },
MMOSimca@340 525 KLAXXI = { 1337, _G.GetFactionInfoByID(1337) },
MMOSimca@340 526 LOREWALKERS = { 1345, _G.GetFactionInfoByID(1345) },
MMOSimca@340 527 OPERATION_SHIELDWALL = { 1376, _G.GetFactionInfoByID(1376) },
MMOSimca@340 528 ORDER_OF_THE_CLOUD_SERPENTS = { 1271, _G.GetFactionInfoByID(1271) },
MMOSimca@340 529 SHADO_PAN = { 1270, _G.GetFactionInfoByID(1270) },
MMOSimca@340 530 SHADO_PAN_ASSAULT = { 1435, _G.GetFactionInfoByID(1435) },
MMOSimca@340 531 SUNREAVER_ONSLAUGHT = { 1388, _G.GetFactionInfoByID(1388) },
MMOSimca@340 532 TILLERS = { 1272, _G.GetFactionInfoByID(1272) },
MMOSimca@337 533 }
MMOSimca@337 534
MMOSimca@337 535 private.REP_BUFFS = {
MMOSimca@340 536 -- Tabard Buffs
MMOSimca@340 537 [_G.GetSpellInfo(93830)] = { -- BILGEWATER CARTEL TABARD
MMOSimca@340 538 faction = private.FACTION_DATA.BILGEWATER_CARTEL[2],
MMOSimca@340 539 ignore = true,
MMOSimca@340 540 },
MMOSimca@340 541 [_G.GetSpellInfo(93827)] = { -- DARKSPEAR TABARD
MMOSimca@340 542 faction = private.FACTION_DATA.DARKSPEAR[2],
MMOSimca@340 543 ignore = true,
MMOSimca@340 544 },
MMOSimca@340 545 [_G.GetSpellInfo(93806)] = { -- DARNASSUS TABARD
MMOSimca@340 546 faction = private.FACTION_DATA.DARNASSUS[2],
MMOSimca@340 547 ignore = true,
MMOSimca@340 548 },
MMOSimca@340 549 [_G.GetSpellInfo(93811)] = { -- EXODAR TABARD
MMOSimca@340 550 faction = private.FACTION_DATA.EXODAR[2],
MMOSimca@340 551 ignore = true,
MMOSimca@340 552 },
MMOSimca@340 553 [_G.GetSpellInfo(93816)] = { -- GILNEAS TABARD
MMOSimca@340 554 faction = private.FACTION_DATA.GILNEAS[2],
MMOSimca@340 555 ignore = true,
MMOSimca@340 556 },
MMOSimca@340 557 [_G.GetSpellInfo(93821)] = { -- GNOMEREGAN TABARD
MMOSimca@340 558 faction = private.FACTION_DATA.GNOMEREGAN[2],
MMOSimca@340 559 ignore = true,
MMOSimca@340 560 },
MMOSimca@340 561 [_G.GetSpellInfo(126436)] = { -- HUOJIN TABARD
MMOSimca@340 562 faction = private.FACTION_DATA.HUOJIN[2],
MMOSimca@340 563 ignore = true,
MMOSimca@340 564 },
MMOSimca@340 565 [_G.GetSpellInfo(97340)] = { -- ILLUSTRIOUS GUILD TABARD
MMOSimca@340 566 faction = private.FACTION_DATA.GUILD[2],
MMOSimca@340 567 modifier = 1,
MMOSimca@340 568 },
MMOSimca@340 569 [_G.GetSpellInfo(93805)] = { -- IRONFORGE TABARD
MMOSimca@340 570 faction = private.FACTION_DATA.IRONFORGE[2],
MMOSimca@340 571 ignore = true,
MMOSimca@340 572 },
MMOSimca@340 573 [_G.GetSpellInfo(93825)] = { -- ORGRIMMAR TABARD
MMOSimca@340 574 faction = private.FACTION_DATA.ORGRIMMAR[2],
MMOSimca@340 575 ignore = true,
MMOSimca@340 576 },
MMOSimca@340 577 [_G.GetSpellInfo(97341)] = { -- RENOWNED GUILD TABARD
MMOSimca@340 578 faction = private.FACTION_DATA.GUILD[2],
MMOSimca@340 579 modifier = 0.5,
MMOSimca@340 580 },
MMOSimca@340 581 [_G.GetSpellInfo(93828)] = { -- SILVERMOON CITY TABARD
MMOSimca@340 582 faction = private.FACTION_DATA.SILVERMOON[2],
MMOSimca@340 583 ignore = true,
MMOSimca@340 584 },
MMOSimca@340 585 [_G.GetSpellInfo(93795)] = { -- STORMWIND TABARD
MMOSimca@340 586 faction = private.FACTION_DATA.STORMWIND[2],
MMOSimca@340 587 ignore = true,
MMOSimca@340 588 },
MMOSimca@340 589 [_G.GetSpellInfo(93337)] = { -- TABARD OF RAMKAHEN
MMOSimca@340 590 faction = private.FACTION_DATA.RAMKAHEN[2],
MMOSimca@340 591 ignore = true,
MMOSimca@340 592 },
MMOSimca@340 593 [_G.GetSpellInfo(57819)] = { -- TABARD OF THE ARGENT CRUSADE
MMOSimca@340 594 faction = private.FACTION_DATA.ARGENT_CRUSADE[2],
MMOSimca@340 595 ignore = true,
MMOSimca@340 596 },
MMOSimca@340 597 [_G.GetSpellInfo(94158)] = { -- TABARD OF THE DRAGONMAW CLAN
MMOSimca@340 598 faction = private.FACTION_DATA.DRAGONMAW_CLAN[2],
MMOSimca@340 599 ignore = true,
MMOSimca@340 600 },
MMOSimca@340 601 [_G.GetSpellInfo(93339)] = { -- TABARD OF THE EARTHEN RING
MMOSimca@340 602 faction = private.FACTION_DATA.EARTHEN_RING[2],
MMOSimca@340 603 ignore = true,
MMOSimca@340 604 },
MMOSimca@340 605 [_G.GetSpellInfo(57820)] = { -- TABARD OF THE EBON BLADE
MMOSimca@340 606 faction = private.FACTION_DATA.EBON_BLADE[2],
MMOSimca@340 607 ignore = true,
MMOSimca@340 608 },
MMOSimca@340 609 [_G.GetSpellInfo(93341)] = { -- TABARD OF THE GUARDIANS OF HYJAL
MMOSimca@340 610 faction = private.FACTION_DATA.GUARDIANS_OF_HYJAL[2],
MMOSimca@340 611 ignore = true,
MMOSimca@340 612 },
MMOSimca@340 613 [_G.GetSpellInfo(57821)] = { -- TABARD OF THE KIRIN TOR
MMOSimca@340 614 faction = private.FACTION_DATA.KIRIN_TOR[2],
MMOSimca@340 615 ignore = true,
MMOSimca@340 616 },
MMOSimca@340 617 [_G.GetSpellInfo(93368)] = { -- TABARD OF THE WILDHAMMER CLAN
MMOSimca@340 618 faction = private.FACTION_DATA.WILDHAMMER_CLAN[2],
MMOSimca@340 619 ignore = true,
MMOSimca@340 620 },
MMOSimca@340 621 [_G.GetSpellInfo(57822)] = { -- TABARD OF THE WYRMREST ACCORD
MMOSimca@340 622 faction = private.FACTION_DATA.WYRMREST_ACCORD[2],
MMOSimca@340 623 ignore = true,
MMOSimca@340 624 },
MMOSimca@340 625 [_G.GetSpellInfo(93347)] = { -- TABARD OF THERAZANE
MMOSimca@340 626 faction = private.FACTION_DATA.THERAZANE[2],
MMOSimca@340 627 ignore = true,
MMOSimca@340 628 },
MMOSimca@340 629 [_G.GetSpellInfo(94463)] = { -- THUNDERBLUFF TABARD
MMOSimca@340 630 faction = private.FACTION_DATA.THUNDER_BLUFF[2],
MMOSimca@340 631 ignore = true,
MMOSimca@340 632 },
MMOSimca@340 633 [_G.GetSpellInfo(126434)] = { -- TUSHUI TABARD
MMOSimca@340 634 faction = private.FACTION_DATA.TUSHUI[2],
MMOSimca@340 635 ignore = true,
MMOSimca@340 636 },
MMOSimca@340 637 [_G.GetSpellInfo(94462)] = { -- UNDERCITY TABARD
MMOSimca@340 638 faction = private.FACTION_DATA.UNDERCITY[2],
MMOSimca@340 639 ignore = true,
MMOSimca@340 640 },
MMOSimca@340 641
MMOSimca@340 642 -- Banner Buffs
MMOSimca@340 643 [_G.GetSpellInfo(90216)] = { -- ALLIANCE GUILD STANDARD
MMOSimca@340 644 ignore = true,
MMOSimca@340 645 },
MMOSimca@340 646 [_G.GetSpellInfo(90708)] = { -- HORDE GUILD STANDARD
MMOSimca@340 647 ignore = true,
MMOSimca@340 648 },
MMOSimca@340 649
MMOSimca@340 650 -- Holiday Buffs
MMOSimca@340 651 [_G.GetSpellInfo(136583)] = { -- DARKMOON TOP HAT
MMOSimca@340 652 modifier = 0.1,
MMOSimca@337 653 },
MMOSimca@337 654 [_G.GetSpellInfo(24705)] = { -- GRIM VISAGE
MMOSimca@337 655 modifier = 0.1,
MMOSimca@337 656 },
MMOSimca@337 657 [_G.GetSpellInfo(61849)] = { -- SPIRIT OF SHARING
MMOSimca@337 658 modifier = 0.1,
MMOSimca@337 659 },
MMOSimca@340 660 [_G.GetSpellInfo(95987)] = { -- UNBURDENED
MMOSimca@337 661 modifier = 0.1,
MMOSimca@337 662 },
MMOSimca@340 663 [_G.GetSpellInfo(46668)] = { -- WHEE!
MMOSimca@337 664 modifier = 0.1,
MMOSimca@337 665 },
MMOSimca@337 666 [_G.GetSpellInfo(100951)] = { -- WOW 8TH ANNIVERSARY
MMOSimca@337 667 modifier = 0.08,
MMOSimca@337 668 },
MMOSimca@337 669 [_G.GetSpellInfo(132700)] = { -- WOW 9TH ANNIVERSARY
MMOSimca@337 670 modifier = 0.09,
MMOSimca@337 671 },
MMOSimca@337 672 [_G.GetSpellInfo(150986)] = { -- WOW 10TH ANNIVERSARY
MMOSimca@337 673 modifier = 0.1,
MMOSimca@341 674 },
MMOSimca@340 675
MMOSimca@340 676 -- Situational Buffs
MMOSimca@340 677 [_G.GetSpellInfo(39953)] = { -- ADALS SONG OF BATTLE
MMOSimca@340 678 faction = private.FACTION_DATA.SHATAR[2],
MMOSimca@340 679 modifier = 0.1,
MMOSimca@340 680 },
MMOSimca@340 681 [_G.GetSpellInfo(30754)] = { -- CENARION FAVOR
MMOSimca@340 682 faction = private.FACTION_DATA.CENARION_CIRCLE[2],
MMOSimca@340 683 modifier = 0.25,
MMOSimca@340 684 },
MMOSimca@340 685 [_G.GetSpellInfo(32098)] = { -- HONOR HOLD FAVOR
MMOSimca@340 686 faction = private.FACTION_DATA.HONOR_HOLD[2],
MMOSimca@340 687 modifier = 0.25,
MMOSimca@340 688 },
MMOSimca@340 689 [_G.GetSpellInfo(39913)] = { -- NAZGRELS FERVOR
MMOSimca@340 690 faction = private.FACTION_DATA.THRALLMAR[2],
MMOSimca@340 691 modifier = 0.1,
MMOSimca@340 692 },
MMOSimca@340 693 [_G.GetSpellInfo(32096)] = { -- THRALLMARS FAVOR
MMOSimca@340 694 faction = private.FACTION_DATA.THRALLMAR[2],
MMOSimca@340 695 modifier = 0.25,
MMOSimca@340 696 },
MMOSimca@340 697 [_G.GetSpellInfo(39911)] = { -- TROLLBANES COMMAND
MMOSimca@340 698 faction = private.FACTION_DATA.HONOR_HOLD[2],
MMOSimca@340 699 modifier = 0.1,
MMOSimca@340 700 },
MMOSimca@337 701 }