jcallahan@1: ----------------------------------------------------------------------- jcallahan@1: -- Upvalued Lua API. jcallahan@1: ----------------------------------------------------------------------- jcallahan@1: local _G = getfenv(0) jcallahan@1: jcallahan@1: local bit = _G.bit jcallahan@1: jcallahan@1: jcallahan@1: ----------------------------------------------------------------------- jcallahan@1: -- AddOn namespace. jcallahan@1: ----------------------------------------------------------------------- jcallahan@1: local ADDON_NAME, private = ... jcallahan@1: jcallahan@1: jcallahan@1: ----------------------------------------------------------------------- jcallahan@1: -- Constants. jcallahan@1: ----------------------------------------------------------------------- jcallahan@18: private.wow_version, private.build_num = _G.GetBuildInfo() jcallahan@18: jcallahan@1: private.UNIT_TYPES = { jcallahan@1: PLAYER = 0, jcallahan@1: OBJECT = 1, jcallahan@10: UNKNOWN = 2, jcallahan@1: NPC = 3, jcallahan@1: PET = 4, jcallahan@1: VEHICLE = 5, jcallahan@1: } jcallahan@1: jcallahan@1: jcallahan@10: private.UNIT_TYPE_NAMES = { jcallahan@10: "PLAYER", jcallahan@10: "OBJECT", jcallahan@10: "UNKNOWN", jcallahan@10: "NPC", jcallahan@10: "PET", jcallahan@10: "VEHICLE", jcallahan@10: } jcallahan@10: jcallahan@10: jcallahan@1: private.ACTION_TYPE_FLAGS = { jcallahan@1: ITEM = 0x00000001, jcallahan@1: NPC = 0x00000002, jcallahan@1: OBJECT = 0x00000004, jcallahan@1: ZONE = 0x00000008, jcallahan@1: } jcallahan@1: jcallahan@1: jcallahan@151: private.ACTION_TYPE_NAMES = {} jcallahan@151: jcallahan@151: for name, bit in _G.pairs(private.ACTION_TYPE_FLAGS) do jcallahan@151: private.ACTION_TYPE_NAMES[bit] = name jcallahan@151: end jcallahan@151: jcallahan@151: jcallahan@1: private.SPELL_LABELS_BY_NAME = { jcallahan@1: [_G.GetSpellInfo(13262)] = "DISENCHANT", jcallahan@1: [_G.GetSpellInfo(4036)] = "ENGINEERING", jcallahan@48: [_G.GetSpellInfo(30427)] = "EXTRACT_GAS", jcallahan@99: [_G.GetSpellInfo(131476)] = "FISHING", jcallahan@1: [_G.GetSpellInfo(2366)] = "HERB_GATHERING", jcallahan@1: [_G.GetSpellInfo(51005)] = "MILLING", jcallahan@1: [_G.GetSpellInfo(605)] = "MIND_CONTROL", jcallahan@1: [_G.GetSpellInfo(2575)] = "MINING", jcallahan@1: [_G.GetSpellInfo(3365)] = "OPENING", jcallahan@1: [_G.GetSpellInfo(921)] = "PICK_POCKET", jcallahan@1: [_G.GetSpellInfo(31252)] = "PROSPECTING", jcallahan@1: [_G.GetSpellInfo(73979)] = "SEARCHING_FOR_ARTIFACTS", jcallahan@1: [_G.GetSpellInfo(8613)] = "SKINNING", jcallahan@1: } jcallahan@1: jcallahan@306: jcallahan@105: private.NON_LOOT_SPELL_LABELS = { jcallahan@105: MIND_CONTROL = true, jcallahan@105: } jcallahan@105: jcallahan@306: jcallahan@1: local AF = private.ACTION_TYPE_FLAGS jcallahan@1: jcallahan@1: private.SPELL_FLAGS_BY_LABEL = { jcallahan@1: DISENCHANT = AF.ITEM, jcallahan@1: ENGINEERING = AF.NPC, jcallahan@48: EXTRACT_GAS = AF.ZONE, jcallahan@151: FISHING = AF.ZONE, jcallahan@23: HERB_GATHERING = bit.bor(AF.NPC, AF.OBJECT), jcallahan@1: MILLING = AF.ITEM, jcallahan@1: MIND_CONTROL = AF.NPC, jcallahan@23: MINING = bit.bor(AF.NPC, AF.OBJECT), jcallahan@1: OPENING = AF.OBJECT, jcallahan@1: PICK_POCKET = AF.NPC, jcallahan@1: PROSPECTING = AF.ITEM, jcallahan@1: SEARCHING_FOR_ARTIFACTS = AF.OBJECT, jcallahan@1: SKINNING = AF.NPC, jcallahan@1: } jcallahan@177: jcallahan@306: jcallahan@306: private.LOOT_SPELL_ID_TO_ITEM_ID_MAP = { jcallahan@306: [142397] = 98134, -- Heroic Cache of Treasures jcallahan@306: [143506] = 98095, -- Brawler's Pet Supplies jcallahan@306: [143507] = 94207, -- Fabled Pandaren Pet Supplies jcallahan@306: [143512] = 93148, -- Pandaren Spirit Pet Supplies jcallahan@306: [143511] = 93149, -- Pandaren Spirit Pet Supplies jcallahan@306: [143510] = 93147, -- Pandaren Spirit Pet Supplies jcallahan@306: [143509] = 93146, -- Pandaren Spirit Pet Supplies jcallahan@306: [143508] = 89125, -- Sack of Pet Supplies jcallahan@306: --[??????] = 104014, -- Pouch of Timeless Coins jcallahan@306: } jcallahan@306: jcallahan@306: jcallahan@177: private.RAID_FINDER_BOSS_IDS = { jcallahan@244: ----------------------------------------------------------------------- jcallahan@244: -- Mogu'shan Vaults jcallahan@244: ----------------------------------------------------------------------- jcallahan@177: [59915] = true, -- Jasper Guardian jcallahan@177: [60009] = true, -- Feng the Accursed jcallahan@177: [60043] = true, -- Jade Guardian jcallahan@177: [60047] = true, -- Amethyst Guardian jcallahan@177: [60051] = true, -- Cobalt Guardian jcallahan@177: [60143] = true, -- Gara'jal the Spiritbinder jcallahan@177: [60399] = true, -- Qin-xi jcallahan@181: [60400] = true, -- Jan-xi jcallahan@177: [60410] = true, -- Elegon jcallahan@177: [60701] = true, -- Zian of the Endless Shadow jcallahan@185: [60708] = true, -- Meng the Demented jcallahan@185: [60709] = true, -- Qiang the Merciless jcallahan@185: [60710] = true, -- Subetai the Swift jcallahan@244: jcallahan@244: ----------------------------------------------------------------------- jcallahan@244: -- Terrace of Endless Spring jcallahan@244: ----------------------------------------------------------------------- jcallahan@244: [60583] = true, -- Protector Kaolan jcallahan@244: [60585] = true, -- Elder Regail jcallahan@244: [60586] = true, -- Elder Asani jcallahan@244: [60999] = true, -- Sha of Fear jcallahan@244: [62442] = true, -- Tsulong jcallahan@244: [62983] = true, -- Lei Shi jcallahan@244: jcallahan@244: ----------------------------------------------------------------------- jcallahan@244: -- Heart of Fear jcallahan@244: ----------------------------------------------------------------------- jcallahan@177: [62164] = true, -- Garalon jcallahan@177: [62397] = true, -- Wind Lord Mel'jarak jcallahan@177: [62511] = true, -- Amber-Shaper Un'sok jcallahan@177: [62543] = true, -- Blade Lord Ta'yak jcallahan@177: [62837] = true, -- Grand Empress Shek'zeer jcallahan@177: [62980] = true, -- Imperial Vizier Zor'lok jcallahan@244: jcallahan@244: ----------------------------------------------------------------------- jcallahan@244: -- Throne of Thunder jcallahan@244: ----------------------------------------------------------------------- jcallahan@244: [69465] = true, -- Jin'rokh the Breaker jcallahan@244: [68476] = true, -- Horridon jcallahan@244: [69078] = true, -- Sul the Sandcrawler jcallahan@244: [69131] = true, -- Frost King Malakk jcallahan@244: [69132] = true, -- High Priestess Mar'li jcallahan@244: [69134] = true, -- Kazra'jin jcallahan@244: [67977] = true, -- Tortos jcallahan@244: [70212] = true, -- Flaming Head (of Megaera) jcallahan@244: [70235] = true, -- Frozen Head (of Megaera) jcallahan@244: [70247] = true, -- Venomous Head (of Megaera) jcallahan@244: [69712] = true, -- Ji-kun jcallahan@244: [68036] = true, -- Durumu jcallahan@244: [69017] = true, -- Primordius jcallahan@244: [69427] = true, -- Dark Animus jcallahan@244: [68078] = true, -- Iron Qon jcallahan@244: [68904] = true, -- Suen jcallahan@244: [68905] = true, -- Lu'lin jcallahan@244: [68397] = true, -- Lei Shen jcallahan@306: jcallahan@306: ----------------------------------------------------------------------- jcallahan@306: -- Siege of Orgrimmar jcallahan@306: ----------------------------------------------------------------------- jcallahan@306: [71543] = true, -- Immerseus jcallahan@306: [71475] = true, -- Rook Stonetoe (Fallen Protectors encounter) jcallahan@306: [71479] = true, -- He Softfoot (Fallen Protectors encounter) jcallahan@306: [71480] = true, -- Sun Tenderheart (Fallen Protectors encounter) jcallahan@306: [71967] = true, -- Norushen (Norushen encounter) jcallahan@306: [72276] = true, -- Amalgam of Corruption (Norushen encounter) jcallahan@306: [71734] = true, -- Sha of Pride jcallahan@306: [72249] = true, -- Galakras jcallahan@306: [71466] = true, -- Iron Juggernaut jcallahan@306: [71858] = true, -- Wavebinder Kardris (Kor'kron Dark Shaman encounter) jcallahan@306: [71859] = true, -- Earthbreaker Haromm (Kor'kron Dark Shaman encounter) jcallahan@306: [71515] = true, -- General Nazgrim jcallahan@306: [71454] = true, -- Malkorok jcallahan@306: [71889] = true, -- Secured Stockpile of Pandaren Spoils (Spoils of Pandaria encounter) jcallahan@306: [71529] = true, -- Thok the Bloodthirsty jcallahan@306: [71504] = true, -- Siegecrafter Blackfuse jcallahan@306: [71152] = true, -- Skeer the Bloodseeker (Paragons of the Klaxxi encounter) jcallahan@306: [71153] = true, -- Hisek the Swarmkeeper (Paragons of the Klaxxi encounter) jcallahan@306: [71154] = true, -- Ka'roz the Locust (Paragons of the Klaxxi encounter) jcallahan@306: [71155] = true, -- Korven the Prime (Paragons of the Klaxxi encounter) jcallahan@306: [71156] = true, -- Kaz'tik the Manipulator (Paragons of the Klaxxi encounter) jcallahan@306: [71157] = true, -- Xaril the Poisoned Mind (Paragons of the Klaxxi encounter) jcallahan@306: [71158] = true, -- Rik'kal the Dissector (Paragons of the Klaxxi encounter) jcallahan@306: [71160] = true, -- Iyyokuk the Lucid (Paragons of the Klaxxi encounter) jcallahan@306: [71161] = true, -- Kil'ruk the Wind-Reaver (Paragons of the Klaxxi encounter) jcallahan@306: [71865] = true, -- Garrosh Hellscream jcallahan@177: } jcallahan@203: jcallahan@244: jcallahan@203: private.WORLD_BOSS_IDS = { jcallahan@203: [60491] = true, -- Sha of Anger jcallahan@203: [62346] = true, -- Galleon jcallahan@244: [69099] = true, -- Nalak jcallahan@244: [69161] = true, -- Oondasta jcallahan@306: [71952] = true, -- Chi-Ji jcallahan@306: [71953] = true, -- Xuen jcallahan@306: [71954] = true, -- Niuzao jcallahan@306: [71955] = true, -- Yu'lon jcallahan@306: [72057] = true, -- Ordos jcallahan@203: } jcallahan@306: jcallahan@306: jcallahan@306: private.RAID_BOSS_BONUS_SPELL_ID_TO_NPC_ID_MAP = { jcallahan@306: ----------------------------------------------------------------------- jcallahan@306: -- Mogu'shan Vaults jcallahan@306: ----------------------------------------------------------------------- jcallahan@306: [125144] = 59915, -- Stone Guard Bonus (Jasper Guardian) jcallahan@306: [132189] = 60009, -- Feng the Accursed Bonus (Feng the Accursed) jcallahan@306: [132190] = 60143, -- Gara'jal the Spiritbinder Bonus (Gara'jal the Spiritbinder) jcallahan@306: [132191] = 60709, -- Spirit Kings Bonus (Qiang the Merciless) jcallahan@306: [132192] = 60410, -- Elegon Bonus (Elegon) jcallahan@306: [132193] = 60399, -- Will of the Emperor Bonus (Qin-xi) jcallahan@306: jcallahan@306: ----------------------------------------------------------------------- jcallahan@306: -- Terrace of Endless Spring jcallahan@306: ----------------------------------------------------------------------- jcallahan@306: [132200] = 60583, -- Protectors of the Endless Bonus (Protector Kaolan) jcallahan@306: [132204] = 60583, -- Protectors of the Endless (Elite) Bonus (Protector Kaolan) jcallahan@306: [132201] = 62442, -- Tsulong Bonus (Tsulong) jcallahan@306: [132202] = 62983, -- Lei Shi Bonus (Lei Shi) jcallahan@306: [132203] = 60999, -- Sha of Fear Bonus (Sha of Fear) jcallahan@306: jcallahan@306: ----------------------------------------------------------------------- jcallahan@306: -- Heart of Fear jcallahan@306: ----------------------------------------------------------------------- jcallahan@306: [132194] = 62980, -- Imperial Vizier Zor'lok Bonus (Imperial Vizier Zor'lok) jcallahan@306: [132195] = 62543, -- Blade Lord Tay'ak Bonus (Blade Lord Ta'yak) jcallahan@306: [132196] = 62164, -- Garalon Bonus (Garalon) jcallahan@306: [132197] = 62397, -- Wind Lord Mel'jarak Bonus (Wind Lord Mel'jarak) jcallahan@306: [132198] = 62511, -- Amber-Shaper Un'sok Bonus (Amber-Shaper Un'sok) jcallahan@306: [132199] = 62837, -- Grand Empress Shek'zeer Bonus (Grand Empress Shek'zeer) jcallahan@306: jcallahan@306: ----------------------------------------------------------------------- jcallahan@306: -- Throne of Thunder jcallahan@306: ----------------------------------------------------------------------- jcallahan@306: [139674] = 69465, -- Jin'rokh the Breaker Bonus (Jin'rokh the Breaker) jcallahan@306: [139677] = 68476, -- Horridon Bonus (Horridon) jcallahan@306: [139679] = 69078, -- Zandalari Troll Council Bonus (Sul the Sandcrawler) jcallahan@306: [139680] = 67977, -- Tortos Bonus (Tortos) jcallahan@306: [139682] = 68065, -- Magaera Bonus (Megaera) jcallahan@306: [139684] = 69712, -- Ji'kun, the Ancient Mother Bonus (Ji-Kun) jcallahan@306: [139686] = 68036, -- Durumu the Forgotten Bonus (Durumu the Forgotten) jcallahan@306: [139687] = 69017, -- Primordious Bonus (Primordius) jcallahan@306: [139688] = 69427, -- Dark Animus Bonus (Dark Animus) jcallahan@306: [139689] = 68078, -- Iron Qon Bonus (Iron Qon) jcallahan@306: [139690] = 68904, -- The Empyreal Queens Bonus (Suen) jcallahan@306: [139691] = 68397, -- Lei Shen, The Thunder King Bonus (Lei Shen) jcallahan@306: [139692] = 69473, -- Ra-den Bonus (Ra-den) jcallahan@306: jcallahan@306: ----------------------------------------------------------------------- jcallahan@306: -- Siege of Orgrimmar jcallahan@306: ----------------------------------------------------------------------- jcallahan@306: [145909] = 71543, -- Immerseus Bonus (Immerseus) jcallahan@306: [145910] = 71475, -- Fallen Protectors Bonus (Rook Stonetoe) jcallahan@306: [145911] = 72276, -- Norushen Bonus (Amalgam of Corruption) jcallahan@306: [145912] = 71734, -- Sha of Pride Bonus (Sha of Pride) jcallahan@306: [145913] = 72249, -- Galakras Bonus (Galakras) jcallahan@306: [145914] = 71466, -- Iron Juggernaut Bonus (Iron Juggernaut) jcallahan@306: [145915] = 71859, -- Dark Shaman Bonus (Earthbreaker Haromm) jcallahan@306: [145916] = 71515, -- General Nazgrim Bonus (General Nazgrim) jcallahan@306: [145917] = 71454, -- Malkorok Bonus (Malkorok) jcallahan@306: [145919] = 71889, -- Spoils of Pandaria Bonus (Secured Stockpile of Pandaren Spoils) jcallahan@306: [145920] = 71529, -- Thok the Bloodthirsty Bonus (Thok the Bloodthirsty) jcallahan@306: [145918] = 71504, -- Siegecrafter Blackfuse Bonus (Siegecrafter Blackfuse) jcallahan@306: [145921] = 71161, -- Klaxxi Paragons Bonus (Kil'ruk the Wind-Reaver) jcallahan@306: [145922] = 71865, -- Garrosh Hellscream Bonus (Garrosh Hellscream) jcallahan@306: } jcallahan@306: jcallahan@306: jcallahan@306: private.WORLD_BOSS_BONUS_SPELL_ID_TO_NPC_ID_MAP = { jcallahan@306: [132205] = 60491, -- Sha of Anger Bonus (Sha of Anger) jcallahan@306: [132206] = 62346, -- Galleon Bonus (Galleon) jcallahan@306: [136381] = 69099, -- Nalak Bonus (Nalak) jcallahan@306: [137554] = 69161, -- Oondasta Bonus (Oondasta) jcallahan@306: --[NYI] = 71952, -- Chi-Ji jcallahan@306: --[NYI] = 71953, -- Xuen jcallahan@306: --[NYI] = 71954, -- Niuzao jcallahan@306: --[NYI] = 71955, -- Yu'lon jcallahan@306: --[NYI] = 72057, -- Ordos jcallahan@306: }