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@336
|
16 -- Game Data Constants.
|
MMOSimca@336
|
17 -----------------------------------------------------------------------
|
MMOSimca@337
|
18 private.FACTION_NAMES = { -- Only used for private.REP_BUFFS
|
MMOSimca@337
|
19 CENARION_CIRCLE = _G.GetFactionInfoByID(609),
|
MMOSimca@337
|
20 HONOR_HOLD = _G.GetFactionInfoByID(946),
|
MMOSimca@337
|
21 THE_SHATAR = _G.GetFactionInfoByID(935),
|
MMOSimca@337
|
22 THRALLMAR = _G.GetFactionInfoByID(947),
|
MMOSimca@337
|
23 }
|
MMOSimca@337
|
24
|
MMOSimca@337
|
25 private.REP_BUFFS = {
|
MMOSimca@337
|
26 [_G.GetSpellInfo(30754)] = { -- CENARION FAVOR
|
MMOSimca@338
|
27 faction = private.FACTION_NAMES.CENARION_CIRCLE,
|
MMOSimca@337
|
28 modifier = 0.25,
|
MMOSimca@337
|
29 },
|
MMOSimca@337
|
30 [_G.GetSpellInfo(24705)] = { -- GRIM VISAGE
|
MMOSimca@337
|
31 modifier = 0.1,
|
MMOSimca@337
|
32 },
|
MMOSimca@337
|
33 [_G.GetSpellInfo(32098)] = { -- HONOR HOLD FAVOR
|
MMOSimca@338
|
34 faction = private.FACTION_NAMES.HONOR_HOLD,
|
MMOSimca@337
|
35 modifier = 0.25,
|
MMOSimca@337
|
36 },
|
MMOSimca@337
|
37 [_G.GetSpellInfo(39913)] = { -- NAZGRELS FERVOR
|
MMOSimca@338
|
38 faction = private.FACTION_NAMES.THRALLMAR,
|
MMOSimca@337
|
39 modifier = 0.1,
|
MMOSimca@337
|
40 },
|
MMOSimca@337
|
41 [_G.GetSpellInfo(39953)] = { -- SONG OF BATTLE
|
MMOSimca@338
|
42 faction = private.FACTION_NAMES.THE_SHATAR,
|
MMOSimca@337
|
43 modifier = 0.1,
|
MMOSimca@337
|
44 },
|
MMOSimca@337
|
45 [_G.GetSpellInfo(61849)] = { -- SPIRIT OF SHARING
|
MMOSimca@337
|
46 modifier = 0.1,
|
MMOSimca@337
|
47 },
|
MMOSimca@337
|
48 [_G.GetSpellInfo(32096)] = { -- THRALLMARS FAVOR
|
MMOSimca@338
|
49 faction = private.FACTION_NAMES.THRALLMAR,
|
MMOSimca@337
|
50 modifier = 0.25,
|
MMOSimca@337
|
51 },
|
MMOSimca@337
|
52 [_G.GetSpellInfo(39911)] = { -- TROLLBANES COMMAND
|
MMOSimca@338
|
53 faction = private.FACTION_NAMES.HONOR_HOLD,
|
MMOSimca@337
|
54 modifier = 0.1,
|
MMOSimca@337
|
55 },
|
MMOSimca@337
|
56 [_G.GetSpellInfo(95987)] = { -- UNBURDENED
|
MMOSimca@337
|
57 modifier = 0.1,
|
MMOSimca@337
|
58 },
|
MMOSimca@337
|
59 [_G.GetSpellInfo(100951)] = { -- WOW 8TH ANNIVERSARY
|
MMOSimca@337
|
60 modifier = 0.08,
|
MMOSimca@337
|
61 },
|
MMOSimca@337
|
62 [_G.GetSpellInfo(132700)] = { -- WOW 9TH ANNIVERSARY
|
MMOSimca@337
|
63 modifier = 0.09,
|
MMOSimca@337
|
64 },
|
MMOSimca@337
|
65 [_G.GetSpellInfo(150986)] = { -- WOW 10TH ANNIVERSARY
|
MMOSimca@337
|
66 modifier = 0.1,
|
MMOSimca@337
|
67 }
|
MMOSimca@337
|
68 }
|
MMOSimca@337
|
69
|
MMOSimca@336
|
70 private.LOOT_SPELL_ID_TO_ITEM_ID_MAP = {
|
MMOSimca@336
|
71 [142397] = 98134, -- Heroic Cache of Treasures
|
MMOSimca@336
|
72 [142901] = 98546, -- Bulging Heroic Cache of Treasures
|
MMOSimca@336
|
73 [143506] = 98095, -- Brawler's Pet Supplies
|
MMOSimca@336
|
74 [143507] = 94207, -- Fabled Pandaren Pet Supplies
|
MMOSimca@336
|
75 [143508] = 89125, -- Sack of Pet Supplies
|
MMOSimca@336
|
76 [143509] = 93146, -- Pandaren Spirit Pet Supplies
|
MMOSimca@336
|
77 [143510] = 93147, -- Pandaren Spirit Pet Supplies
|
MMOSimca@336
|
78 [143511] = 93149, -- Pandaren Spirit Pet Supplies
|
MMOSimca@336
|
79 [143512] = 93148, -- Pandaren Spirit Pet Supplies
|
MMOSimca@336
|
80 [146885] = 103535, -- Bulging Bag of Charms
|
MMOSimca@336
|
81 [147598] = 104014, -- Pouch of Timeless Coins
|
MMOSimca@336
|
82 [149222] = 105911, -- Pouch of Enduring Wisdom
|
MMOSimca@336
|
83 [149223] = 105912, -- Oversized Pouch of Enduring Wisdom
|
MMOSimca@336
|
84 [168178] = 114116, -- Bag of Salvaged Goods
|
MMOSimca@336
|
85 [168179] = 114119, -- Crate of Salvage
|
MMOSimca@336
|
86 [168180] = 114120, -- Big Crate of Salvage
|
MMOSimca@336
|
87 [171513] = 116414, -- Pet Supplies
|
MMOSimca@336
|
88 [175767] = 118697, -- Big Bag of Pet Supplies
|
MMOSimca@339
|
89 [178508] = 120321, -- Mystery Bag
|
MMOSimca@336
|
90 }
|
MMOSimca@336
|
91
|
MMOSimca@336
|
92 private.RAID_BOSS_BONUS_SPELL_ID_TO_NPC_ID_MAP = {
|
MMOSimca@336
|
93 -----------------------------------------------------------------------
|
MMOSimca@336
|
94 -- World Bosses
|
MMOSimca@336
|
95 -----------------------------------------------------------------------
|
MMOSimca@336
|
96 [132205] = 60491, -- Sha of Anger Bonus (Sha of Anger)
|
MMOSimca@336
|
97 [132206] = 62346, -- Galleon Bonus (Galleon)
|
MMOSimca@336
|
98 [136381] = 69099, -- Nalak Bonus (Nalak)
|
MMOSimca@336
|
99 [137554] = 69161, -- Oondasta Bonus (Oondasta)
|
MMOSimca@336
|
100 [148317] = 71952, -- Celestials Bonus (Chi-Ji)
|
MMOSimca@336
|
101 [148316] = 72057, -- Ordos Bonus (Ordos)
|
MMOSimca@336
|
102 --[????] = 81535, -- Tarlna the Ageless Bonus Loot (Tarlna the Ageless)
|
MMOSimca@336
|
103 --[????] = 87437, -- Drov the Ruiner Bonus Loot (Drov the Ruiner)
|
MMOSimca@336
|
104 --[????] = 87493, -- Rukhmar Bonus Loot (Rukhmar)
|
MMOSimca@336
|
105
|
MMOSimca@336
|
106 -----------------------------------------------------------------------
|
MMOSimca@336
|
107 -- Mogu'shan Vaults
|
MMOSimca@336
|
108 -----------------------------------------------------------------------
|
MMOSimca@336
|
109 [125144] = 59915, -- Stone Guard Bonus (Jasper Guardian)
|
MMOSimca@336
|
110 [132189] = 60009, -- Feng the Accursed Bonus (Feng the Accursed)
|
MMOSimca@336
|
111 [132190] = 60143, -- Gara'jal the Spiritbinder Bonus (Gara'jal the Spiritbinder)
|
MMOSimca@336
|
112 [132191] = 60709, -- Spirit Kings Bonus (Qiang the Merciless)
|
MMOSimca@336
|
113 [132192] = 60410, -- Elegon Bonus (Elegon)
|
MMOSimca@336
|
114 [132193] = 60399, -- Will of the Emperor Bonus (Qin-xi)
|
MMOSimca@336
|
115
|
MMOSimca@336
|
116 -----------------------------------------------------------------------
|
MMOSimca@336
|
117 -- Terrace of Endless Spring
|
MMOSimca@336
|
118 -----------------------------------------------------------------------
|
MMOSimca@336
|
119 [132200] = 60583, -- Protectors of the Endless Bonus (Protector Kaolan)
|
MMOSimca@336
|
120 [132204] = 60583, -- Protectors of the Endless (Elite) Bonus (Protector Kaolan)
|
MMOSimca@336
|
121 [132201] = 62442, -- Tsulong Bonus (Tsulong)
|
MMOSimca@336
|
122 [132202] = 62983, -- Lei Shi Bonus (Lei Shi)
|
MMOSimca@336
|
123 [132203] = 60999, -- Sha of Fear Bonus (Sha of Fear)
|
MMOSimca@336
|
124
|
MMOSimca@336
|
125 -----------------------------------------------------------------------
|
MMOSimca@336
|
126 -- Heart of Fear
|
MMOSimca@336
|
127 -----------------------------------------------------------------------
|
MMOSimca@336
|
128 [132194] = 62980, -- Imperial Vizier Zor'lok Bonus (Imperial Vizier Zor'lok)
|
MMOSimca@336
|
129 [132195] = 62543, -- Blade Lord Tay'ak Bonus (Blade Lord Ta'yak)
|
MMOSimca@336
|
130 [132196] = 62164, -- Garalon Bonus (Garalon)
|
MMOSimca@336
|
131 [132197] = 62397, -- Wind Lord Mel'jarak Bonus (Wind Lord Mel'jarak)
|
MMOSimca@336
|
132 [132198] = 62511, -- Amber-Shaper Un'sok Bonus (Amber-Shaper Un'sok)
|
MMOSimca@336
|
133 [132199] = 62837, -- Grand Empress Shek'zeer Bonus (Grand Empress Shek'zeer)
|
MMOSimca@336
|
134
|
MMOSimca@336
|
135 -----------------------------------------------------------------------
|
MMOSimca@336
|
136 -- Throne of Thunder
|
MMOSimca@336
|
137 -----------------------------------------------------------------------
|
MMOSimca@336
|
138 [139674] = 69465, -- Jin'rokh the Breaker Bonus (Jin'rokh the Breaker)
|
MMOSimca@336
|
139 [139677] = 68476, -- Horridon Bonus (Horridon)
|
MMOSimca@336
|
140 [139679] = 69078, -- Zandalari Troll Council Bonus (Sul the Sandcrawler)
|
MMOSimca@336
|
141 [139680] = 67977, -- Tortos Bonus (Tortos)
|
MMOSimca@336
|
142 [139682] = 68065, -- Magaera Bonus (Megaera)
|
MMOSimca@336
|
143 [139684] = 69712, -- Ji'kun, the Ancient Mother Bonus (Ji-Kun)
|
MMOSimca@336
|
144 [139686] = 68036, -- Durumu the Forgotten Bonus (Durumu the Forgotten)
|
MMOSimca@336
|
145 [139687] = 69017, -- Primordious Bonus (Primordius)
|
MMOSimca@336
|
146 [139688] = 69427, -- Dark Animus Bonus (Dark Animus)
|
MMOSimca@336
|
147 [139689] = 68078, -- Iron Qon Bonus (Iron Qon)
|
MMOSimca@336
|
148 [139690] = 68904, -- The Empyreal Queens Bonus (Suen)
|
MMOSimca@336
|
149 [139691] = 68397, -- Lei Shen, The Thunder King Bonus (Lei Shen)
|
MMOSimca@336
|
150 [139692] = 69473, -- Ra-den Bonus (Ra-den)
|
MMOSimca@336
|
151
|
MMOSimca@336
|
152 -----------------------------------------------------------------------
|
MMOSimca@336
|
153 -- Siege of Orgrimmar
|
MMOSimca@336
|
154 -----------------------------------------------------------------------
|
MMOSimca@336
|
155 [145909] = 71543, -- Immerseus Bonus (Immerseus)
|
MMOSimca@336
|
156 [145910] = 71475, -- Fallen Protectors Bonus (Rook Stonetoe)
|
MMOSimca@336
|
157 [145911] = 72276, -- Norushen Bonus (Amalgam of Corruption)
|
MMOSimca@336
|
158 [145912] = 71734, -- Sha of Pride Bonus (Sha of Pride)
|
MMOSimca@336
|
159 [145913] = 72249, -- Galakras Bonus (Galakras)
|
MMOSimca@336
|
160 [145914] = 71466, -- Iron Juggernaut Bonus (Iron Juggernaut)
|
MMOSimca@336
|
161 [145915] = 71859, -- Dark Shaman Bonus (Earthbreaker Haromm)
|
MMOSimca@336
|
162 [145916] = 71515, -- General Nazgrim Bonus (General Nazgrim)
|
MMOSimca@336
|
163 [145917] = 71454, -- Malkorok Bonus (Malkorok)
|
MMOSimca@336
|
164 [145919] = 71889, -- Spoils of Pandaria Bonus (Secured Stockpile of Pandaren Spoils)
|
MMOSimca@336
|
165 [145920] = 71529, -- Thok the Bloodthirsty Bonus (Thok the Bloodthirsty)
|
MMOSimca@336
|
166 [145918] = 71504, -- Siegecrafter Blackfuse Bonus (Siegecrafter Blackfuse)
|
MMOSimca@336
|
167 [145921] = 71161, -- Klaxxi Paragons Bonus (Kil'ruk the Wind-Reaver)
|
MMOSimca@336
|
168 [145922] = 71865, -- Garrosh Hellscream Bonus (Garrosh Hellscream)
|
MMOSimca@336
|
169
|
MMOSimca@336
|
170 -----------------------------------------------------------------------
|
MMOSimca@336
|
171 -- Blackrock Foundry
|
MMOSimca@336
|
172 -----------------------------------------------------------------------
|
MMOSimca@336
|
173 [177510] = 76877, -- Gruul Bonus Loot (Gruul)
|
MMOSimca@336
|
174 [177511] = 77182, -- Oregorger Bonus Loot (Oregorger)
|
MMOSimca@336
|
175 [177512] = 76809, -- Blast Furnace Loot (Foreman Feldspar)
|
MMOSimca@336
|
176 [177513] = 76973, -- Hans'gar & Franzok Bonus Loot (Hans'gar)
|
MMOSimca@336
|
177 [177515] = 76814, -- Flamebender Ka'graz Bonus Loot (Flamebender Ka'graz)
|
MMOSimca@336
|
178 [177516] = 77692, -- Kromog Bonus Loot (Kromog)
|
MMOSimca@336
|
179 [177517] = 76865, -- Beastlord Darmac Bonus Loot (Beastlord Darmac)
|
MMOSimca@336
|
180 [177518] = 76906, -- Operator Thogar Bonus Loot (Operator Thogar)
|
MMOSimca@336
|
181 [177519] = 77557, -- The Iron Maidens Bonus Loot (Admiral Gar'an)
|
MMOSimca@336
|
182 [177520] = 87420, -- Blackhand Bonus Loot (Blackhand)
|
MMOSimca@336
|
183
|
MMOSimca@336
|
184 -----------------------------------------------------------------------
|
MMOSimca@336
|
185 -- Highmaul
|
MMOSimca@336
|
186 -----------------------------------------------------------------------
|
MMOSimca@336
|
187 [177503] = 87444, -- Kargath Bladefist Bonus Loot (Kargath Bladefist)
|
MMOSimca@336
|
188 [177504] = 87447, -- Butcher Bonus Loot (The Butcher)
|
MMOSimca@336
|
189 [177505] = 87446, -- Tectus Bonus Loot (Tectus)
|
MMOSimca@336
|
190 [177506] = 87441, -- Brackenspore Bonus Loot (Brackenspore)
|
MMOSimca@336
|
191 [177507] = 87449, -- Twin Ogron Bonus Loot (Twin Ogron)
|
MMOSimca@336
|
192 [177508] = 87445, -- Ko'ragh Bonus Loot (Ko'ragh)
|
MMOSimca@336
|
193 [177509] = 87818, -- Imperator Mar'gok Bonus Loot (Imperator Mar'gok)
|
MMOSimca@336
|
194 }
|
MMOSimca@336
|
195
|
MMOSimca@336
|
196
|
MMOSimca@336
|
197 -----------------------------------------------------------------------
|
MMOSimca@336
|
198 -- Fundamental Constants.
|
jcallahan@1
|
199 -----------------------------------------------------------------------
|
jcallahan@18
|
200 private.wow_version, private.build_num = _G.GetBuildInfo()
|
MMOSimca@330
|
201 private.region = GetCVar("portal"):sub(0,2):upper()
|
MMOSimca@330
|
202 -- PTR/Beta return "public-test", but they are properly called "XX"
|
MMOSimca@330
|
203 if private.region == "PU" then private.region = "XX" end
|
jcallahan@18
|
204
|
jcallahan@1
|
205 private.UNIT_TYPES = {
|
MMOSimca@329
|
206 PLAYER = "Player",
|
MMOSimca@329
|
207 OBJECT = "GameObject",
|
MMOSimca@329
|
208 UNKNOWN = "Unknown",
|
MMOSimca@329
|
209 NPC = "Creature",
|
MMOSimca@329
|
210 PET = "Pet",
|
MMOSimca@329
|
211 VEHICLE = "Vehicle",
|
MMOSimca@329
|
212 ITEM = "Item",
|
jcallahan@1
|
213 }
|
jcallahan@1
|
214
|
jcallahan@10
|
215 private.UNIT_TYPE_NAMES = {
|
MMOSimca@329
|
216 ["Player"] = "PLAYER",
|
MMOSimca@329
|
217 ["GameObject"] = "OBJECT",
|
MMOSimca@329
|
218 ["Unknown"] = "UNKNOWN",
|
MMOSimca@329
|
219 ["Creature"] = "NPC",
|
MMOSimca@329
|
220 ["Pet"] = "PET",
|
MMOSimca@329
|
221 ["Vehicle"] = "VEHICLE",
|
MMOSimca@329
|
222 ["Item"] = "ITEM",
|
jcallahan@10
|
223 }
|
jcallahan@10
|
224
|
jcallahan@1
|
225 private.ACTION_TYPE_FLAGS = {
|
jcallahan@1
|
226 ITEM = 0x00000001,
|
jcallahan@1
|
227 NPC = 0x00000002,
|
jcallahan@1
|
228 OBJECT = 0x00000004,
|
jcallahan@1
|
229 ZONE = 0x00000008,
|
jcallahan@1
|
230 }
|
jcallahan@1
|
231
|
jcallahan@151
|
232 private.ACTION_TYPE_NAMES = {}
|
jcallahan@151
|
233
|
jcallahan@151
|
234 for name, bit in _G.pairs(private.ACTION_TYPE_FLAGS) do
|
jcallahan@151
|
235 private.ACTION_TYPE_NAMES[bit] = name
|
jcallahan@151
|
236 end
|
jcallahan@151
|
237
|
jcallahan@326
|
238 private.EXTRAPOLATION_BANNED_SPELL_IDS = {
|
jcallahan@326
|
239 [13262] = "DISENCHANT",
|
jcallahan@326
|
240 [4036] = "ENGINEERING",
|
jcallahan@326
|
241 [30427] = "EXTRACT_GAS",
|
jcallahan@326
|
242 [131476] = "FISHING",
|
jcallahan@326
|
243 [2366] = "HERB_GATHERING",
|
jcallahan@326
|
244 [51005] = "MILLING",
|
jcallahan@326
|
245 [605] = "MIND_CONTROL",
|
jcallahan@326
|
246 [2575] = "MINING",
|
jcallahan@326
|
247 [921] = "PICK_POCKET",
|
jcallahan@326
|
248 [31252] = "PROSPECTING",
|
jcallahan@326
|
249 [73979] = "SEARCHING_FOR_ARTIFACTS",
|
jcallahan@326
|
250 [8613] = "SKINNING",
|
jcallahan@326
|
251 }
|
jcallahan@326
|
252
|
jcallahan@1
|
253 private.SPELL_LABELS_BY_NAME = {
|
jcallahan@1
|
254 [_G.GetSpellInfo(13262)] = "DISENCHANT",
|
jcallahan@1
|
255 [_G.GetSpellInfo(4036)] = "ENGINEERING",
|
jcallahan@48
|
256 [_G.GetSpellInfo(30427)] = "EXTRACT_GAS",
|
jcallahan@99
|
257 [_G.GetSpellInfo(131476)] = "FISHING",
|
jcallahan@1
|
258 [_G.GetSpellInfo(2366)] = "HERB_GATHERING",
|
jcallahan@1
|
259 [_G.GetSpellInfo(51005)] = "MILLING",
|
jcallahan@1
|
260 [_G.GetSpellInfo(605)] = "MIND_CONTROL",
|
jcallahan@1
|
261 [_G.GetSpellInfo(2575)] = "MINING",
|
jcallahan@1
|
262 [_G.GetSpellInfo(3365)] = "OPENING",
|
jcallahan@1
|
263 [_G.GetSpellInfo(921)] = "PICK_POCKET",
|
jcallahan@1
|
264 [_G.GetSpellInfo(31252)] = "PROSPECTING",
|
jcallahan@1
|
265 [_G.GetSpellInfo(73979)] = "SEARCHING_FOR_ARTIFACTS",
|
jcallahan@1
|
266 [_G.GetSpellInfo(8613)] = "SKINNING",
|
jcallahan@1
|
267 }
|
jcallahan@1
|
268
|
jcallahan@105
|
269 private.NON_LOOT_SPELL_LABELS = {
|
jcallahan@105
|
270 MIND_CONTROL = true,
|
jcallahan@105
|
271 }
|
jcallahan@105
|
272
|
jcallahan@1
|
273 local AF = private.ACTION_TYPE_FLAGS
|
jcallahan@1
|
274
|
jcallahan@1
|
275 private.SPELL_FLAGS_BY_LABEL = {
|
jcallahan@1
|
276 DISENCHANT = AF.ITEM,
|
jcallahan@1
|
277 ENGINEERING = AF.NPC,
|
jcallahan@48
|
278 EXTRACT_GAS = AF.ZONE,
|
jcallahan@151
|
279 FISHING = AF.ZONE,
|
jcallahan@23
|
280 HERB_GATHERING = bit.bor(AF.NPC, AF.OBJECT),
|
jcallahan@1
|
281 MILLING = AF.ITEM,
|
jcallahan@1
|
282 MIND_CONTROL = AF.NPC,
|
jcallahan@23
|
283 MINING = bit.bor(AF.NPC, AF.OBJECT),
|
jcallahan@1
|
284 OPENING = AF.OBJECT,
|
jcallahan@1
|
285 PICK_POCKET = AF.NPC,
|
jcallahan@1
|
286 PROSPECTING = AF.ITEM,
|
jcallahan@1
|
287 SEARCHING_FOR_ARTIFACTS = AF.OBJECT,
|
jcallahan@1
|
288 SKINNING = AF.NPC,
|
jcallahan@1
|
289 }
|