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 -----------------------------------------------------------------------
|
jcallahan@1
|
16 -- Constants.
|
jcallahan@1
|
17 -----------------------------------------------------------------------
|
jcallahan@18
|
18 private.wow_version, private.build_num = _G.GetBuildInfo()
|
jcallahan@18
|
19
|
jcallahan@1
|
20 private.UNIT_TYPES = {
|
jcallahan@1
|
21 PLAYER = 0,
|
jcallahan@1
|
22 OBJECT = 1,
|
jcallahan@10
|
23 UNKNOWN = 2,
|
jcallahan@1
|
24 NPC = 3,
|
jcallahan@1
|
25 PET = 4,
|
jcallahan@1
|
26 VEHICLE = 5,
|
jcallahan@1
|
27 }
|
jcallahan@1
|
28
|
jcallahan@1
|
29
|
jcallahan@10
|
30 private.UNIT_TYPE_NAMES = {
|
jcallahan@10
|
31 "PLAYER",
|
jcallahan@10
|
32 "OBJECT",
|
jcallahan@10
|
33 "UNKNOWN",
|
jcallahan@10
|
34 "NPC",
|
jcallahan@10
|
35 "PET",
|
jcallahan@10
|
36 "VEHICLE",
|
jcallahan@10
|
37 }
|
jcallahan@10
|
38
|
jcallahan@10
|
39
|
jcallahan@1
|
40 private.ACTION_TYPE_FLAGS = {
|
jcallahan@1
|
41 ITEM = 0x00000001,
|
jcallahan@1
|
42 NPC = 0x00000002,
|
jcallahan@1
|
43 OBJECT = 0x00000004,
|
jcallahan@1
|
44 ZONE = 0x00000008,
|
jcallahan@1
|
45 }
|
jcallahan@1
|
46
|
jcallahan@1
|
47
|
jcallahan@151
|
48 private.ACTION_TYPE_NAMES = {}
|
jcallahan@151
|
49
|
jcallahan@151
|
50 for name, bit in _G.pairs(private.ACTION_TYPE_FLAGS) do
|
jcallahan@151
|
51 private.ACTION_TYPE_NAMES[bit] = name
|
jcallahan@151
|
52 end
|
jcallahan@151
|
53
|
jcallahan@151
|
54
|
jcallahan@326
|
55 private.EXTRAPOLATION_BANNED_SPELL_IDS = {
|
jcallahan@326
|
56 [13262] = "DISENCHANT",
|
jcallahan@326
|
57 [4036] = "ENGINEERING",
|
jcallahan@326
|
58 [30427] = "EXTRACT_GAS",
|
jcallahan@326
|
59 [131476] = "FISHING",
|
jcallahan@326
|
60 [2366] = "HERB_GATHERING",
|
jcallahan@326
|
61 [51005] = "MILLING",
|
jcallahan@326
|
62 [605] = "MIND_CONTROL",
|
jcallahan@326
|
63 [2575] = "MINING",
|
jcallahan@326
|
64 [921] = "PICK_POCKET",
|
jcallahan@326
|
65 [31252] = "PROSPECTING",
|
jcallahan@326
|
66 [73979] = "SEARCHING_FOR_ARTIFACTS",
|
jcallahan@326
|
67 [8613] = "SKINNING",
|
jcallahan@326
|
68 }
|
jcallahan@326
|
69
|
jcallahan@326
|
70
|
jcallahan@1
|
71 private.SPELL_LABELS_BY_NAME = {
|
jcallahan@1
|
72 [_G.GetSpellInfo(13262)] = "DISENCHANT",
|
jcallahan@1
|
73 [_G.GetSpellInfo(4036)] = "ENGINEERING",
|
jcallahan@48
|
74 [_G.GetSpellInfo(30427)] = "EXTRACT_GAS",
|
jcallahan@99
|
75 [_G.GetSpellInfo(131476)] = "FISHING",
|
jcallahan@1
|
76 [_G.GetSpellInfo(2366)] = "HERB_GATHERING",
|
jcallahan@1
|
77 [_G.GetSpellInfo(51005)] = "MILLING",
|
jcallahan@1
|
78 [_G.GetSpellInfo(605)] = "MIND_CONTROL",
|
jcallahan@1
|
79 [_G.GetSpellInfo(2575)] = "MINING",
|
jcallahan@1
|
80 [_G.GetSpellInfo(3365)] = "OPENING",
|
jcallahan@1
|
81 [_G.GetSpellInfo(921)] = "PICK_POCKET",
|
jcallahan@1
|
82 [_G.GetSpellInfo(31252)] = "PROSPECTING",
|
jcallahan@1
|
83 [_G.GetSpellInfo(73979)] = "SEARCHING_FOR_ARTIFACTS",
|
jcallahan@1
|
84 [_G.GetSpellInfo(8613)] = "SKINNING",
|
jcallahan@1
|
85 }
|
jcallahan@1
|
86
|
jcallahan@306
|
87
|
jcallahan@105
|
88 private.NON_LOOT_SPELL_LABELS = {
|
jcallahan@105
|
89 MIND_CONTROL = true,
|
jcallahan@105
|
90 }
|
jcallahan@105
|
91
|
jcallahan@306
|
92
|
jcallahan@1
|
93 local AF = private.ACTION_TYPE_FLAGS
|
jcallahan@1
|
94
|
jcallahan@1
|
95 private.SPELL_FLAGS_BY_LABEL = {
|
jcallahan@1
|
96 DISENCHANT = AF.ITEM,
|
jcallahan@1
|
97 ENGINEERING = AF.NPC,
|
jcallahan@48
|
98 EXTRACT_GAS = AF.ZONE,
|
jcallahan@151
|
99 FISHING = AF.ZONE,
|
jcallahan@23
|
100 HERB_GATHERING = bit.bor(AF.NPC, AF.OBJECT),
|
jcallahan@1
|
101 MILLING = AF.ITEM,
|
jcallahan@1
|
102 MIND_CONTROL = AF.NPC,
|
jcallahan@23
|
103 MINING = bit.bor(AF.NPC, AF.OBJECT),
|
jcallahan@1
|
104 OPENING = AF.OBJECT,
|
jcallahan@1
|
105 PICK_POCKET = AF.NPC,
|
jcallahan@1
|
106 PROSPECTING = AF.ITEM,
|
jcallahan@1
|
107 SEARCHING_FOR_ARTIFACTS = AF.OBJECT,
|
jcallahan@1
|
108 SKINNING = AF.NPC,
|
jcallahan@1
|
109 }
|
jcallahan@177
|
110
|
jcallahan@306
|
111
|
jcallahan@306
|
112 private.LOOT_SPELL_ID_TO_ITEM_ID_MAP = {
|
jcallahan@306
|
113 [142397] = 98134, -- Heroic Cache of Treasures
|
jcallahan@306
|
114 [143506] = 98095, -- Brawler's Pet Supplies
|
jcallahan@306
|
115 [143507] = 94207, -- Fabled Pandaren Pet Supplies
|
jcallahan@311
|
116 [143508] = 89125, -- Sack of Pet Supplies
|
jcallahan@311
|
117 [143509] = 93146, -- Pandaren Spirit Pet Supplies
|
jcallahan@311
|
118 [143510] = 93147, -- Pandaren Spirit Pet Supplies
|
jcallahan@311
|
119 [143511] = 93149, -- Pandaren Spirit Pet Supplies
|
jcallahan@306
|
120 [143512] = 93148, -- Pandaren Spirit Pet Supplies
|
jcallahan@311
|
121 [146885] = 103535, -- Bulging Bag of Charms
|
jcallahan@311
|
122 [147598] = 104014, -- Pouch of Timeless Coins
|
jcallahan@311
|
123 [149222] = 105911, -- Pouch of Enduring Wisdom
|
jcallahan@311
|
124 [149223] = 105912, -- Oversized Pouch of Enduring Wisdom
|
jcallahan@306
|
125 }
|
jcallahan@306
|
126
|
jcallahan@306
|
127
|
jcallahan@177
|
128 private.RAID_FINDER_BOSS_IDS = {
|
jcallahan@244
|
129 -----------------------------------------------------------------------
|
jcallahan@244
|
130 -- Mogu'shan Vaults
|
jcallahan@244
|
131 -----------------------------------------------------------------------
|
jcallahan@177
|
132 [59915] = true, -- Jasper Guardian
|
jcallahan@177
|
133 [60009] = true, -- Feng the Accursed
|
jcallahan@177
|
134 [60043] = true, -- Jade Guardian
|
jcallahan@177
|
135 [60047] = true, -- Amethyst Guardian
|
jcallahan@177
|
136 [60051] = true, -- Cobalt Guardian
|
jcallahan@177
|
137 [60143] = true, -- Gara'jal the Spiritbinder
|
jcallahan@177
|
138 [60399] = true, -- Qin-xi
|
jcallahan@181
|
139 [60400] = true, -- Jan-xi
|
jcallahan@177
|
140 [60410] = true, -- Elegon
|
jcallahan@177
|
141 [60701] = true, -- Zian of the Endless Shadow
|
jcallahan@185
|
142 [60708] = true, -- Meng the Demented
|
jcallahan@185
|
143 [60709] = true, -- Qiang the Merciless
|
jcallahan@185
|
144 [60710] = true, -- Subetai the Swift
|
jcallahan@244
|
145
|
jcallahan@244
|
146 -----------------------------------------------------------------------
|
jcallahan@244
|
147 -- Terrace of Endless Spring
|
jcallahan@244
|
148 -----------------------------------------------------------------------
|
jcallahan@244
|
149 [60583] = true, -- Protector Kaolan
|
jcallahan@244
|
150 [60585] = true, -- Elder Regail
|
jcallahan@244
|
151 [60586] = true, -- Elder Asani
|
jcallahan@244
|
152 [60999] = true, -- Sha of Fear
|
jcallahan@244
|
153 [62442] = true, -- Tsulong
|
jcallahan@244
|
154 [62983] = true, -- Lei Shi
|
jcallahan@244
|
155
|
jcallahan@244
|
156 -----------------------------------------------------------------------
|
jcallahan@244
|
157 -- Heart of Fear
|
jcallahan@244
|
158 -----------------------------------------------------------------------
|
jcallahan@177
|
159 [62164] = true, -- Garalon
|
jcallahan@177
|
160 [62397] = true, -- Wind Lord Mel'jarak
|
jcallahan@177
|
161 [62511] = true, -- Amber-Shaper Un'sok
|
jcallahan@177
|
162 [62543] = true, -- Blade Lord Ta'yak
|
jcallahan@177
|
163 [62837] = true, -- Grand Empress Shek'zeer
|
jcallahan@177
|
164 [62980] = true, -- Imperial Vizier Zor'lok
|
jcallahan@244
|
165
|
jcallahan@244
|
166 -----------------------------------------------------------------------
|
jcallahan@244
|
167 -- Throne of Thunder
|
jcallahan@244
|
168 -----------------------------------------------------------------------
|
jcallahan@244
|
169 [69465] = true, -- Jin'rokh the Breaker
|
jcallahan@244
|
170 [68476] = true, -- Horridon
|
jcallahan@244
|
171 [69078] = true, -- Sul the Sandcrawler
|
jcallahan@244
|
172 [69131] = true, -- Frost King Malakk
|
jcallahan@244
|
173 [69132] = true, -- High Priestess Mar'li
|
jcallahan@244
|
174 [69134] = true, -- Kazra'jin
|
jcallahan@244
|
175 [67977] = true, -- Tortos
|
jcallahan@244
|
176 [70212] = true, -- Flaming Head (of Megaera)
|
jcallahan@244
|
177 [70235] = true, -- Frozen Head (of Megaera)
|
jcallahan@244
|
178 [70247] = true, -- Venomous Head (of Megaera)
|
jcallahan@244
|
179 [69712] = true, -- Ji-kun
|
jcallahan@244
|
180 [68036] = true, -- Durumu
|
jcallahan@244
|
181 [69017] = true, -- Primordius
|
jcallahan@244
|
182 [69427] = true, -- Dark Animus
|
jcallahan@244
|
183 [68078] = true, -- Iron Qon
|
jcallahan@244
|
184 [68904] = true, -- Suen
|
jcallahan@244
|
185 [68905] = true, -- Lu'lin
|
jcallahan@244
|
186 [68397] = true, -- Lei Shen
|
jcallahan@306
|
187
|
jcallahan@306
|
188 -----------------------------------------------------------------------
|
jcallahan@306
|
189 -- Siege of Orgrimmar
|
jcallahan@306
|
190 -----------------------------------------------------------------------
|
jcallahan@306
|
191 [71543] = true, -- Immerseus
|
jcallahan@306
|
192 [71475] = true, -- Rook Stonetoe (Fallen Protectors encounter)
|
jcallahan@306
|
193 [71479] = true, -- He Softfoot (Fallen Protectors encounter)
|
jcallahan@306
|
194 [71480] = true, -- Sun Tenderheart (Fallen Protectors encounter)
|
jcallahan@306
|
195 [71967] = true, -- Norushen (Norushen encounter)
|
jcallahan@306
|
196 [72276] = true, -- Amalgam of Corruption (Norushen encounter)
|
jcallahan@306
|
197 [71734] = true, -- Sha of Pride
|
jcallahan@306
|
198 [72249] = true, -- Galakras
|
jcallahan@306
|
199 [71466] = true, -- Iron Juggernaut
|
jcallahan@306
|
200 [71858] = true, -- Wavebinder Kardris (Kor'kron Dark Shaman encounter)
|
jcallahan@306
|
201 [71859] = true, -- Earthbreaker Haromm (Kor'kron Dark Shaman encounter)
|
jcallahan@306
|
202 [71515] = true, -- General Nazgrim
|
jcallahan@306
|
203 [71454] = true, -- Malkorok
|
jcallahan@306
|
204 [71889] = true, -- Secured Stockpile of Pandaren Spoils (Spoils of Pandaria encounter)
|
jcallahan@306
|
205 [71529] = true, -- Thok the Bloodthirsty
|
jcallahan@306
|
206 [71504] = true, -- Siegecrafter Blackfuse
|
jcallahan@306
|
207 [71152] = true, -- Skeer the Bloodseeker (Paragons of the Klaxxi encounter)
|
jcallahan@306
|
208 [71153] = true, -- Hisek the Swarmkeeper (Paragons of the Klaxxi encounter)
|
jcallahan@306
|
209 [71154] = true, -- Ka'roz the Locust (Paragons of the Klaxxi encounter)
|
jcallahan@306
|
210 [71155] = true, -- Korven the Prime (Paragons of the Klaxxi encounter)
|
jcallahan@306
|
211 [71156] = true, -- Kaz'tik the Manipulator (Paragons of the Klaxxi encounter)
|
jcallahan@306
|
212 [71157] = true, -- Xaril the Poisoned Mind (Paragons of the Klaxxi encounter)
|
jcallahan@306
|
213 [71158] = true, -- Rik'kal the Dissector (Paragons of the Klaxxi encounter)
|
jcallahan@306
|
214 [71160] = true, -- Iyyokuk the Lucid (Paragons of the Klaxxi encounter)
|
jcallahan@306
|
215 [71161] = true, -- Kil'ruk the Wind-Reaver (Paragons of the Klaxxi encounter)
|
jcallahan@306
|
216 [71865] = true, -- Garrosh Hellscream
|
jcallahan@177
|
217 }
|
jcallahan@203
|
218
|
jcallahan@244
|
219
|
jcallahan@203
|
220 private.WORLD_BOSS_IDS = {
|
jcallahan@203
|
221 [60491] = true, -- Sha of Anger
|
jcallahan@203
|
222 [62346] = true, -- Galleon
|
jcallahan@244
|
223 [69099] = true, -- Nalak
|
jcallahan@244
|
224 [69161] = true, -- Oondasta
|
jcallahan@306
|
225 [71952] = true, -- Chi-Ji
|
jcallahan@306
|
226 [71953] = true, -- Xuen
|
jcallahan@306
|
227 [71954] = true, -- Niuzao
|
jcallahan@306
|
228 [71955] = true, -- Yu'lon
|
jcallahan@306
|
229 [72057] = true, -- Ordos
|
jcallahan@203
|
230 }
|
jcallahan@306
|
231
|
jcallahan@306
|
232
|
jcallahan@306
|
233 private.RAID_BOSS_BONUS_SPELL_ID_TO_NPC_ID_MAP = {
|
jcallahan@306
|
234 -----------------------------------------------------------------------
|
jcallahan@306
|
235 -- Mogu'shan Vaults
|
jcallahan@306
|
236 -----------------------------------------------------------------------
|
jcallahan@306
|
237 [125144] = 59915, -- Stone Guard Bonus (Jasper Guardian)
|
jcallahan@306
|
238 [132189] = 60009, -- Feng the Accursed Bonus (Feng the Accursed)
|
jcallahan@306
|
239 [132190] = 60143, -- Gara'jal the Spiritbinder Bonus (Gara'jal the Spiritbinder)
|
jcallahan@306
|
240 [132191] = 60709, -- Spirit Kings Bonus (Qiang the Merciless)
|
jcallahan@306
|
241 [132192] = 60410, -- Elegon Bonus (Elegon)
|
jcallahan@306
|
242 [132193] = 60399, -- Will of the Emperor Bonus (Qin-xi)
|
jcallahan@306
|
243
|
jcallahan@306
|
244 -----------------------------------------------------------------------
|
jcallahan@306
|
245 -- Terrace of Endless Spring
|
jcallahan@306
|
246 -----------------------------------------------------------------------
|
jcallahan@306
|
247 [132200] = 60583, -- Protectors of the Endless Bonus (Protector Kaolan)
|
jcallahan@306
|
248 [132204] = 60583, -- Protectors of the Endless (Elite) Bonus (Protector Kaolan)
|
jcallahan@306
|
249 [132201] = 62442, -- Tsulong Bonus (Tsulong)
|
jcallahan@306
|
250 [132202] = 62983, -- Lei Shi Bonus (Lei Shi)
|
jcallahan@306
|
251 [132203] = 60999, -- Sha of Fear Bonus (Sha of Fear)
|
jcallahan@306
|
252
|
jcallahan@306
|
253 -----------------------------------------------------------------------
|
jcallahan@306
|
254 -- Heart of Fear
|
jcallahan@306
|
255 -----------------------------------------------------------------------
|
jcallahan@306
|
256 [132194] = 62980, -- Imperial Vizier Zor'lok Bonus (Imperial Vizier Zor'lok)
|
jcallahan@306
|
257 [132195] = 62543, -- Blade Lord Tay'ak Bonus (Blade Lord Ta'yak)
|
jcallahan@306
|
258 [132196] = 62164, -- Garalon Bonus (Garalon)
|
jcallahan@306
|
259 [132197] = 62397, -- Wind Lord Mel'jarak Bonus (Wind Lord Mel'jarak)
|
jcallahan@306
|
260 [132198] = 62511, -- Amber-Shaper Un'sok Bonus (Amber-Shaper Un'sok)
|
jcallahan@306
|
261 [132199] = 62837, -- Grand Empress Shek'zeer Bonus (Grand Empress Shek'zeer)
|
jcallahan@306
|
262
|
jcallahan@306
|
263 -----------------------------------------------------------------------
|
jcallahan@306
|
264 -- Throne of Thunder
|
jcallahan@306
|
265 -----------------------------------------------------------------------
|
jcallahan@306
|
266 [139674] = 69465, -- Jin'rokh the Breaker Bonus (Jin'rokh the Breaker)
|
jcallahan@306
|
267 [139677] = 68476, -- Horridon Bonus (Horridon)
|
jcallahan@306
|
268 [139679] = 69078, -- Zandalari Troll Council Bonus (Sul the Sandcrawler)
|
jcallahan@306
|
269 [139680] = 67977, -- Tortos Bonus (Tortos)
|
jcallahan@306
|
270 [139682] = 68065, -- Magaera Bonus (Megaera)
|
jcallahan@306
|
271 [139684] = 69712, -- Ji'kun, the Ancient Mother Bonus (Ji-Kun)
|
jcallahan@306
|
272 [139686] = 68036, -- Durumu the Forgotten Bonus (Durumu the Forgotten)
|
jcallahan@306
|
273 [139687] = 69017, -- Primordious Bonus (Primordius)
|
jcallahan@306
|
274 [139688] = 69427, -- Dark Animus Bonus (Dark Animus)
|
jcallahan@306
|
275 [139689] = 68078, -- Iron Qon Bonus (Iron Qon)
|
jcallahan@306
|
276 [139690] = 68904, -- The Empyreal Queens Bonus (Suen)
|
jcallahan@306
|
277 [139691] = 68397, -- Lei Shen, The Thunder King Bonus (Lei Shen)
|
jcallahan@306
|
278 [139692] = 69473, -- Ra-den Bonus (Ra-den)
|
jcallahan@306
|
279
|
jcallahan@306
|
280 -----------------------------------------------------------------------
|
jcallahan@306
|
281 -- Siege of Orgrimmar
|
jcallahan@306
|
282 -----------------------------------------------------------------------
|
jcallahan@306
|
283 [145909] = 71543, -- Immerseus Bonus (Immerseus)
|
jcallahan@306
|
284 [145910] = 71475, -- Fallen Protectors Bonus (Rook Stonetoe)
|
jcallahan@306
|
285 [145911] = 72276, -- Norushen Bonus (Amalgam of Corruption)
|
jcallahan@306
|
286 [145912] = 71734, -- Sha of Pride Bonus (Sha of Pride)
|
jcallahan@306
|
287 [145913] = 72249, -- Galakras Bonus (Galakras)
|
jcallahan@306
|
288 [145914] = 71466, -- Iron Juggernaut Bonus (Iron Juggernaut)
|
jcallahan@306
|
289 [145915] = 71859, -- Dark Shaman Bonus (Earthbreaker Haromm)
|
jcallahan@306
|
290 [145916] = 71515, -- General Nazgrim Bonus (General Nazgrim)
|
jcallahan@306
|
291 [145917] = 71454, -- Malkorok Bonus (Malkorok)
|
jcallahan@306
|
292 [145919] = 71889, -- Spoils of Pandaria Bonus (Secured Stockpile of Pandaren Spoils)
|
jcallahan@306
|
293 [145920] = 71529, -- Thok the Bloodthirsty Bonus (Thok the Bloodthirsty)
|
jcallahan@306
|
294 [145918] = 71504, -- Siegecrafter Blackfuse Bonus (Siegecrafter Blackfuse)
|
jcallahan@306
|
295 [145921] = 71161, -- Klaxxi Paragons Bonus (Kil'ruk the Wind-Reaver)
|
jcallahan@306
|
296 [145922] = 71865, -- Garrosh Hellscream Bonus (Garrosh Hellscream)
|
jcallahan@306
|
297 }
|
jcallahan@306
|
298
|
jcallahan@306
|
299 private.WORLD_BOSS_BONUS_SPELL_ID_TO_NPC_ID_MAP = {
|
jcallahan@306
|
300 [132205] = 60491, -- Sha of Anger Bonus (Sha of Anger)
|
jcallahan@306
|
301 [132206] = 62346, -- Galleon Bonus (Galleon)
|
jcallahan@306
|
302 [136381] = 69099, -- Nalak Bonus (Nalak)
|
jcallahan@306
|
303 [137554] = 69161, -- Oondasta Bonus (Oondasta)
|
jcallahan@307
|
304 [148317] = 71952, -- Celestials Bonus (Chi-Ji)
|
jcallahan@307
|
305 [148316] = 72057, -- Ordos Bonus (Ordos)
|
jcallahan@306
|
306 }
|