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: local LibStub = _G.LibStub 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@105: private.NON_LOOT_SPELL_LABELS = { jcallahan@105: MIND_CONTROL = true, jcallahan@105: } jcallahan@105: 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@177: private.RAID_FINDER_BOSS_IDS = { 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: [60583] = true, -- Protector Kaolan jcallahan@177: [60585] = true, -- Elder Regail jcallahan@177: [60586] = true, -- Elder Asani jcallahan@177: [60999] = true, -- Sha of Fear 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@177: [62164] = true, -- Garalon jcallahan@177: [62397] = true, -- Wind Lord Mel'jarak jcallahan@177: [62442] = true, -- Tsulong 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@177: [62983] = true, -- Lei Shi jcallahan@177: }