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 local LibStub = _G.LibStub
|
jcallahan@1
|
15
|
jcallahan@1
|
16
|
jcallahan@1
|
17 -----------------------------------------------------------------------
|
jcallahan@1
|
18 -- Constants.
|
jcallahan@1
|
19 -----------------------------------------------------------------------
|
jcallahan@18
|
20 private.wow_version, private.build_num = _G.GetBuildInfo()
|
jcallahan@18
|
21
|
jcallahan@1
|
22 private.UNIT_TYPES = {
|
jcallahan@1
|
23 PLAYER = 0,
|
jcallahan@1
|
24 OBJECT = 1,
|
jcallahan@10
|
25 UNKNOWN = 2,
|
jcallahan@1
|
26 NPC = 3,
|
jcallahan@1
|
27 PET = 4,
|
jcallahan@1
|
28 VEHICLE = 5,
|
jcallahan@1
|
29 }
|
jcallahan@1
|
30
|
jcallahan@1
|
31
|
jcallahan@10
|
32 private.UNIT_TYPE_NAMES = {
|
jcallahan@10
|
33 "PLAYER",
|
jcallahan@10
|
34 "OBJECT",
|
jcallahan@10
|
35 "UNKNOWN",
|
jcallahan@10
|
36 "NPC",
|
jcallahan@10
|
37 "PET",
|
jcallahan@10
|
38 "VEHICLE",
|
jcallahan@10
|
39 }
|
jcallahan@10
|
40
|
jcallahan@10
|
41
|
jcallahan@1
|
42 private.ACTION_TYPE_FLAGS = {
|
jcallahan@1
|
43 ITEM = 0x00000001,
|
jcallahan@1
|
44 NPC = 0x00000002,
|
jcallahan@1
|
45 OBJECT = 0x00000004,
|
jcallahan@1
|
46 ZONE = 0x00000008,
|
jcallahan@1
|
47 }
|
jcallahan@1
|
48
|
jcallahan@1
|
49
|
jcallahan@151
|
50 private.ACTION_TYPE_NAMES = {}
|
jcallahan@151
|
51
|
jcallahan@151
|
52 for name, bit in _G.pairs(private.ACTION_TYPE_FLAGS) do
|
jcallahan@151
|
53 private.ACTION_TYPE_NAMES[bit] = name
|
jcallahan@151
|
54 end
|
jcallahan@151
|
55
|
jcallahan@151
|
56
|
jcallahan@1
|
57 private.SPELL_LABELS_BY_NAME = {
|
jcallahan@1
|
58 [_G.GetSpellInfo(13262)] = "DISENCHANT",
|
jcallahan@1
|
59 [_G.GetSpellInfo(4036)] = "ENGINEERING",
|
jcallahan@48
|
60 [_G.GetSpellInfo(30427)] = "EXTRACT_GAS",
|
jcallahan@99
|
61 [_G.GetSpellInfo(131476)] = "FISHING",
|
jcallahan@1
|
62 [_G.GetSpellInfo(2366)] = "HERB_GATHERING",
|
jcallahan@1
|
63 [_G.GetSpellInfo(51005)] = "MILLING",
|
jcallahan@1
|
64 [_G.GetSpellInfo(605)] = "MIND_CONTROL",
|
jcallahan@1
|
65 [_G.GetSpellInfo(2575)] = "MINING",
|
jcallahan@1
|
66 [_G.GetSpellInfo(3365)] = "OPENING",
|
jcallahan@1
|
67 [_G.GetSpellInfo(921)] = "PICK_POCKET",
|
jcallahan@1
|
68 [_G.GetSpellInfo(31252)] = "PROSPECTING",
|
jcallahan@1
|
69 [_G.GetSpellInfo(73979)] = "SEARCHING_FOR_ARTIFACTS",
|
jcallahan@1
|
70 [_G.GetSpellInfo(8613)] = "SKINNING",
|
jcallahan@1
|
71 }
|
jcallahan@1
|
72
|
jcallahan@105
|
73 private.NON_LOOT_SPELL_LABELS = {
|
jcallahan@105
|
74 MIND_CONTROL = true,
|
jcallahan@105
|
75 }
|
jcallahan@105
|
76
|
jcallahan@1
|
77 local AF = private.ACTION_TYPE_FLAGS
|
jcallahan@1
|
78
|
jcallahan@1
|
79 private.SPELL_FLAGS_BY_LABEL = {
|
jcallahan@1
|
80 DISENCHANT = AF.ITEM,
|
jcallahan@1
|
81 ENGINEERING = AF.NPC,
|
jcallahan@48
|
82 EXTRACT_GAS = AF.ZONE,
|
jcallahan@151
|
83 FISHING = AF.ZONE,
|
jcallahan@23
|
84 HERB_GATHERING = bit.bor(AF.NPC, AF.OBJECT),
|
jcallahan@1
|
85 MILLING = AF.ITEM,
|
jcallahan@1
|
86 MIND_CONTROL = AF.NPC,
|
jcallahan@23
|
87 MINING = bit.bor(AF.NPC, AF.OBJECT),
|
jcallahan@1
|
88 OPENING = AF.OBJECT,
|
jcallahan@1
|
89 PICK_POCKET = AF.NPC,
|
jcallahan@1
|
90 PROSPECTING = AF.ITEM,
|
jcallahan@1
|
91 SEARCHING_FOR_ARTIFACTS = AF.OBJECT,
|
jcallahan@1
|
92 SKINNING = AF.NPC,
|
jcallahan@1
|
93 }
|
jcallahan@177
|
94
|
jcallahan@177
|
95 private.RAID_FINDER_BOSS_IDS = {
|
jcallahan@177
|
96 [59915] = true, -- Jasper Guardian
|
jcallahan@177
|
97 [60009] = true, -- Feng the Accursed
|
jcallahan@177
|
98 [60043] = true, -- Jade Guardian
|
jcallahan@177
|
99 [60047] = true, -- Amethyst Guardian
|
jcallahan@177
|
100 [60051] = true, -- Cobalt Guardian
|
jcallahan@177
|
101 [60583] = true, -- Protector Kaolan
|
jcallahan@177
|
102 [60585] = true, -- Elder Regail
|
jcallahan@177
|
103 [60586] = true, -- Elder Asani
|
jcallahan@177
|
104 [60999] = true, -- Sha of Fear
|
jcallahan@177
|
105 [60143] = true, -- Gara'jal the Spiritbinder
|
jcallahan@177
|
106 [60399] = true, -- Qin-xi
|
jcallahan@181
|
107 [60400] = true, -- Jan-xi
|
jcallahan@177
|
108 [60410] = true, -- Elegon
|
jcallahan@177
|
109 [60701] = true, -- Zian of the Endless Shadow
|
jcallahan@185
|
110 [60708] = true, -- Meng the Demented
|
jcallahan@185
|
111 [60709] = true, -- Qiang the Merciless
|
jcallahan@185
|
112 [60710] = true, -- Subetai the Swift
|
jcallahan@177
|
113 [62164] = true, -- Garalon
|
jcallahan@177
|
114 [62397] = true, -- Wind Lord Mel'jarak
|
jcallahan@177
|
115 [62442] = true, -- Tsulong
|
jcallahan@177
|
116 [62511] = true, -- Amber-Shaper Un'sok
|
jcallahan@177
|
117 [62543] = true, -- Blade Lord Ta'yak
|
jcallahan@177
|
118 [62837] = true, -- Grand Empress Shek'zeer
|
jcallahan@177
|
119 [62980] = true, -- Imperial Vizier Zor'lok
|
jcallahan@177
|
120 [62983] = true, -- Lei Shi
|
jcallahan@177
|
121 }
|
jcallahan@203
|
122
|
jcallahan@203
|
123 private.WORLD_BOSS_IDS = {
|
jcallahan@203
|
124 [60491] = true, -- Sha of Anger
|
jcallahan@203
|
125 [62346] = true, -- Galleon
|
jcallahan@203
|
126 }
|