comparison Constants.lua @ 336:cba0e57a71b7 WoD

Many updated WoD constants, added new WoD english locales, and consolidated two similar variables.
author MMOSimca <MMOSimca@gmail.com>
date Fri, 05 Sep 2014 01:20:44 -0400
parents 267e7100407c
children 48f7f671fc77
comparison
equal deleted inserted replaced
335:2ca6db4e2296 336:cba0e57a71b7
11 ----------------------------------------------------------------------- 11 -----------------------------------------------------------------------
12 local ADDON_NAME, private = ... 12 local ADDON_NAME, private = ...
13 13
14 14
15 ----------------------------------------------------------------------- 15 -----------------------------------------------------------------------
16 -- Constants. 16 -- Game Data Constants.
17 ----------------------------------------------------------------------- 17 -----------------------------------------------------------------------
18 private.wow_version, private.build_num = _G.GetBuildInfo()
19 private.region = GetCVar("portal"):sub(0,2):upper()
20 -- PTR/Beta return "public-test", but they are properly called "XX"
21 if private.region == "PU" then private.region = "XX" end
22
23 private.UNIT_TYPES = {
24 PLAYER = "Player",
25 OBJECT = "GameObject",
26 UNKNOWN = "Unknown",
27 NPC = "Creature",
28 PET = "Pet",
29 VEHICLE = "Vehicle",
30 ITEM = "Item",
31 }
32
33 private.UNIT_TYPE_NAMES = {
34 ["Player"] = "PLAYER",
35 ["GameObject"] = "OBJECT",
36 ["Unknown"] = "UNKNOWN",
37 ["Creature"] = "NPC",
38 ["Pet"] = "PET",
39 ["Vehicle"] = "VEHICLE",
40 ["Item"] = "ITEM",
41 }
42
43 private.ACTION_TYPE_FLAGS = {
44 ITEM = 0x00000001,
45 NPC = 0x00000002,
46 OBJECT = 0x00000004,
47 ZONE = 0x00000008,
48 }
49
50 private.ACTION_TYPE_NAMES = {}
51
52 for name, bit in _G.pairs(private.ACTION_TYPE_FLAGS) do
53 private.ACTION_TYPE_NAMES[bit] = name
54 end
55
56 private.EXTRAPOLATION_BANNED_SPELL_IDS = {
57 [13262] = "DISENCHANT",
58 [4036] = "ENGINEERING",
59 [30427] = "EXTRACT_GAS",
60 [131476] = "FISHING",
61 [2366] = "HERB_GATHERING",
62 [51005] = "MILLING",
63 [605] = "MIND_CONTROL",
64 [2575] = "MINING",
65 [921] = "PICK_POCKET",
66 [31252] = "PROSPECTING",
67 [73979] = "SEARCHING_FOR_ARTIFACTS",
68 [8613] = "SKINNING",
69 }
70
71 private.SPELL_LABELS_BY_NAME = {
72 [_G.GetSpellInfo(13262)] = "DISENCHANT",
73 [_G.GetSpellInfo(4036)] = "ENGINEERING",
74 [_G.GetSpellInfo(30427)] = "EXTRACT_GAS",
75 [_G.GetSpellInfo(131476)] = "FISHING",
76 [_G.GetSpellInfo(2366)] = "HERB_GATHERING",
77 [_G.GetSpellInfo(51005)] = "MILLING",
78 [_G.GetSpellInfo(605)] = "MIND_CONTROL",
79 [_G.GetSpellInfo(2575)] = "MINING",
80 [_G.GetSpellInfo(3365)] = "OPENING",
81 [_G.GetSpellInfo(921)] = "PICK_POCKET",
82 [_G.GetSpellInfo(31252)] = "PROSPECTING",
83 [_G.GetSpellInfo(73979)] = "SEARCHING_FOR_ARTIFACTS",
84 [_G.GetSpellInfo(8613)] = "SKINNING",
85 }
86
87 private.NON_LOOT_SPELL_LABELS = {
88 MIND_CONTROL = true,
89 }
90
91 local AF = private.ACTION_TYPE_FLAGS
92
93 private.SPELL_FLAGS_BY_LABEL = {
94 DISENCHANT = AF.ITEM,
95 ENGINEERING = AF.NPC,
96 EXTRACT_GAS = AF.ZONE,
97 FISHING = AF.ZONE,
98 HERB_GATHERING = bit.bor(AF.NPC, AF.OBJECT),
99 MILLING = AF.ITEM,
100 MIND_CONTROL = AF.NPC,
101 MINING = bit.bor(AF.NPC, AF.OBJECT),
102 OPENING = AF.OBJECT,
103 PICK_POCKET = AF.NPC,
104 PROSPECTING = AF.ITEM,
105 SEARCHING_FOR_ARTIFACTS = AF.OBJECT,
106 SKINNING = AF.NPC,
107 }
108
109 private.LOOT_SPELL_ID_TO_ITEM_ID_MAP = { 18 private.LOOT_SPELL_ID_TO_ITEM_ID_MAP = {
110 [142397] = 98134, -- Heroic Cache of Treasures 19 [142397] = 98134, -- Heroic Cache of Treasures
111 [142901] = 98546, -- Bulging Heroic Cache of Treasures 20 [142901] = 98546, -- Bulging Heroic Cache of Treasures
112 [143506] = 98095, -- Brawler's Pet Supplies 21 [143506] = 98095, -- Brawler's Pet Supplies
113 [143507] = 94207, -- Fabled Pandaren Pet Supplies 22 [143507] = 94207, -- Fabled Pandaren Pet Supplies
119 [146885] = 103535, -- Bulging Bag of Charms 28 [146885] = 103535, -- Bulging Bag of Charms
120 [147598] = 104014, -- Pouch of Timeless Coins 29 [147598] = 104014, -- Pouch of Timeless Coins
121 [149222] = 105911, -- Pouch of Enduring Wisdom 30 [149222] = 105911, -- Pouch of Enduring Wisdom
122 [149223] = 105912, -- Oversized Pouch of Enduring Wisdom 31 [149223] = 105912, -- Oversized Pouch of Enduring Wisdom
123 [168178] = 114116, -- Bag of Salvaged Goods 32 [168178] = 114116, -- Bag of Salvaged Goods
124 [168179] = 114119, -- Heafty Salvaged Crate 33 [168179] = 114119, -- Crate of Salvage
125 [168180] = 114120, -- Lofty Salvaged Chest 34 [168180] = 114120, -- Big Crate of Salvage
126 [171513] = 116414, -- Pet Supplies 35 [171513] = 116414, -- Pet Supplies
127 [175767] = 118697, -- Big Bag of Pet Supplies 36 [175767] = 118697, -- Big Bag of Pet Supplies
128 } 37 }
129 38
130 private.RAID_FINDER_BOSS_IDS = {
131 -----------------------------------------------------------------------
132 -- Mogu'shan Vaults
133 -----------------------------------------------------------------------
134 [59915] = true, -- Jasper Guardian
135 [60009] = true, -- Feng the Accursed
136 [60043] = true, -- Jade Guardian
137 [60047] = true, -- Amethyst Guardian
138 [60051] = true, -- Cobalt Guardian
139 [60143] = true, -- Gara'jal the Spiritbinder
140 [60399] = true, -- Qin-xi
141 [60400] = true, -- Jan-xi
142 [60410] = true, -- Elegon
143 [60701] = true, -- Zian of the Endless Shadow
144 [60708] = true, -- Meng the Demented
145 [60709] = true, -- Qiang the Merciless
146 [60710] = true, -- Subetai the Swift
147
148 -----------------------------------------------------------------------
149 -- Terrace of Endless Spring
150 -----------------------------------------------------------------------
151 [60583] = true, -- Protector Kaolan
152 [60585] = true, -- Elder Regail
153 [60586] = true, -- Elder Asani
154 [60999] = true, -- Sha of Fear
155 [62442] = true, -- Tsulong
156 [62983] = true, -- Lei Shi
157
158 -----------------------------------------------------------------------
159 -- Heart of Fear
160 -----------------------------------------------------------------------
161 [62164] = true, -- Garalon
162 [62397] = true, -- Wind Lord Mel'jarak
163 [62511] = true, -- Amber-Shaper Un'sok
164 [62543] = true, -- Blade Lord Ta'yak
165 [62837] = true, -- Grand Empress Shek'zeer
166 [62980] = true, -- Imperial Vizier Zor'lok
167
168 -----------------------------------------------------------------------
169 -- Throne of Thunder
170 -----------------------------------------------------------------------
171 [69465] = true, -- Jin'rokh the Breaker
172 [68476] = true, -- Horridon
173 [69078] = true, -- Sul the Sandcrawler
174 [69131] = true, -- Frost King Malakk
175 [69132] = true, -- High Priestess Mar'li
176 [69134] = true, -- Kazra'jin
177 [67977] = true, -- Tortos
178 [70212] = true, -- Flaming Head (of Megaera)
179 [70235] = true, -- Frozen Head (of Megaera)
180 [70247] = true, -- Venomous Head (of Megaera)
181 [69712] = true, -- Ji-kun
182 [68036] = true, -- Durumu
183 [69017] = true, -- Primordius
184 [69427] = true, -- Dark Animus
185 [68078] = true, -- Iron Qon
186 [68904] = true, -- Suen
187 [68905] = true, -- Lu'lin
188 [68397] = true, -- Lei Shen
189
190 -----------------------------------------------------------------------
191 -- Siege of Orgrimmar
192 -----------------------------------------------------------------------
193 [71543] = true, -- Immerseus
194 [71475] = true, -- Rook Stonetoe (Fallen Protectors encounter)
195 [71479] = true, -- He Softfoot (Fallen Protectors encounter)
196 [71480] = true, -- Sun Tenderheart (Fallen Protectors encounter)
197 [71967] = true, -- Norushen (Norushen encounter)
198 [72276] = true, -- Amalgam of Corruption (Norushen encounter)
199 [71734] = true, -- Sha of Pride
200 [72249] = true, -- Galakras
201 [71466] = true, -- Iron Juggernaut
202 [71858] = true, -- Wavebinder Kardris (Kor'kron Dark Shaman encounter)
203 [71859] = true, -- Earthbreaker Haromm (Kor'kron Dark Shaman encounter)
204 [71515] = true, -- General Nazgrim
205 [71454] = true, -- Malkorok
206 [71889] = true, -- Secured Stockpile of Pandaren Spoils (Spoils of Pandaria encounter)
207 [71529] = true, -- Thok the Bloodthirsty
208 [71504] = true, -- Siegecrafter Blackfuse
209 [71152] = true, -- Skeer the Bloodseeker (Paragons of the Klaxxi encounter)
210 [71153] = true, -- Hisek the Swarmkeeper (Paragons of the Klaxxi encounter)
211 [71154] = true, -- Ka'roz the Locust (Paragons of the Klaxxi encounter)
212 [71155] = true, -- Korven the Prime (Paragons of the Klaxxi encounter)
213 [71156] = true, -- Kaz'tik the Manipulator (Paragons of the Klaxxi encounter)
214 [71157] = true, -- Xaril the Poisoned Mind (Paragons of the Klaxxi encounter)
215 [71158] = true, -- Rik'kal the Dissector (Paragons of the Klaxxi encounter)
216 [71160] = true, -- Iyyokuk the Lucid (Paragons of the Klaxxi encounter)
217 [71161] = true, -- Kil'ruk the Wind-Reaver (Paragons of the Klaxxi encounter)
218 [71865] = true, -- Garrosh Hellscream
219 }
220
221 private.WORLD_BOSS_IDS = {
222 [60491] = true, -- Sha of Anger
223 [62346] = true, -- Galleon
224 [69099] = true, -- Nalak
225 [69161] = true, -- Oondasta
226 [71952] = true, -- Chi-Ji
227 [71953] = true, -- Xuen
228 [71954] = true, -- Niuzao
229 [71955] = true, -- Yu'lon
230 [72057] = true, -- Ordos
231 }
232
233 private.RAID_BOSS_BONUS_SPELL_ID_TO_NPC_ID_MAP = { 39 private.RAID_BOSS_BONUS_SPELL_ID_TO_NPC_ID_MAP = {
40 -----------------------------------------------------------------------
41 -- World Bosses
42 -----------------------------------------------------------------------
43 [132205] = 60491, -- Sha of Anger Bonus (Sha of Anger)
44 [132206] = 62346, -- Galleon Bonus (Galleon)
45 [136381] = 69099, -- Nalak Bonus (Nalak)
46 [137554] = 69161, -- Oondasta Bonus (Oondasta)
47 [148317] = 71952, -- Celestials Bonus (Chi-Ji)
48 [148316] = 72057, -- Ordos Bonus (Ordos)
49 --[????] = 81535, -- Tarlna the Ageless Bonus Loot (Tarlna the Ageless)
50 --[????] = 87437, -- Drov the Ruiner Bonus Loot (Drov the Ruiner)
51 --[????] = 87493, -- Rukhmar Bonus Loot (Rukhmar)
52
234 ----------------------------------------------------------------------- 53 -----------------------------------------------------------------------
235 -- Mogu'shan Vaults 54 -- Mogu'shan Vaults
236 ----------------------------------------------------------------------- 55 -----------------------------------------------------------------------
237 [125144] = 59915, -- Stone Guard Bonus (Jasper Guardian) 56 [125144] = 59915, -- Stone Guard Bonus (Jasper Guardian)
238 [132189] = 60009, -- Feng the Accursed Bonus (Feng the Accursed) 57 [132189] = 60009, -- Feng the Accursed Bonus (Feng the Accursed)
292 [145919] = 71889, -- Spoils of Pandaria Bonus (Secured Stockpile of Pandaren Spoils) 111 [145919] = 71889, -- Spoils of Pandaria Bonus (Secured Stockpile of Pandaren Spoils)
293 [145920] = 71529, -- Thok the Bloodthirsty Bonus (Thok the Bloodthirsty) 112 [145920] = 71529, -- Thok the Bloodthirsty Bonus (Thok the Bloodthirsty)
294 [145918] = 71504, -- Siegecrafter Blackfuse Bonus (Siegecrafter Blackfuse) 113 [145918] = 71504, -- Siegecrafter Blackfuse Bonus (Siegecrafter Blackfuse)
295 [145921] = 71161, -- Klaxxi Paragons Bonus (Kil'ruk the Wind-Reaver) 114 [145921] = 71161, -- Klaxxi Paragons Bonus (Kil'ruk the Wind-Reaver)
296 [145922] = 71865, -- Garrosh Hellscream Bonus (Garrosh Hellscream) 115 [145922] = 71865, -- Garrosh Hellscream Bonus (Garrosh Hellscream)
297 } 116
298 117 -----------------------------------------------------------------------
299 private.WORLD_BOSS_BONUS_SPELL_ID_TO_NPC_ID_MAP = { 118 -- Blackrock Foundry
300 [132205] = 60491, -- Sha of Anger Bonus (Sha of Anger) 119 -----------------------------------------------------------------------
301 [132206] = 62346, -- Galleon Bonus (Galleon) 120 [177510] = 76877, -- Gruul Bonus Loot (Gruul)
302 [136381] = 69099, -- Nalak Bonus (Nalak) 121 [177511] = 77182, -- Oregorger Bonus Loot (Oregorger)
303 [137554] = 69161, -- Oondasta Bonus (Oondasta) 122 [177512] = 76809, -- Blast Furnace Loot (Foreman Feldspar)
304 [148317] = 71952, -- Celestials Bonus (Chi-Ji) 123 [177513] = 76973, -- Hans'gar & Franzok Bonus Loot (Hans'gar)
305 [148316] = 72057, -- Ordos Bonus (Ordos) 124 [177515] = 76814, -- Flamebender Ka'graz Bonus Loot (Flamebender Ka'graz)
306 } 125 [177516] = 77692, -- Kromog Bonus Loot (Kromog)
126 [177517] = 76865, -- Beastlord Darmac Bonus Loot (Beastlord Darmac)
127 [177518] = 76906, -- Operator Thogar Bonus Loot (Operator Thogar)
128 [177519] = 77557, -- The Iron Maidens Bonus Loot (Admiral Gar'an)
129 [177520] = 87420, -- Blackhand Bonus Loot (Blackhand)
130
131 -----------------------------------------------------------------------
132 -- Highmaul
133 -----------------------------------------------------------------------
134 [177503] = 87444, -- Kargath Bladefist Bonus Loot (Kargath Bladefist)
135 [177504] = 87447, -- Butcher Bonus Loot (The Butcher)
136 [177505] = 87446, -- Tectus Bonus Loot (Tectus)
137 [177506] = 87441, -- Brackenspore Bonus Loot (Brackenspore)
138 [177507] = 87449, -- Twin Ogron Bonus Loot (Twin Ogron)
139 [177508] = 87445, -- Ko'ragh Bonus Loot (Ko'ragh)
140 [177509] = 87818, -- Imperator Mar'gok Bonus Loot (Imperator Mar'gok)
141 }
142
143
144 -----------------------------------------------------------------------
145 -- Fundamental Constants.
146 -----------------------------------------------------------------------
147 private.wow_version, private.build_num = _G.GetBuildInfo()
148 private.region = GetCVar("portal"):sub(0,2):upper()
149 -- PTR/Beta return "public-test", but they are properly called "XX"
150 if private.region == "PU" then private.region = "XX" end
151
152 private.UNIT_TYPES = {
153 PLAYER = "Player",
154 OBJECT = "GameObject",
155 UNKNOWN = "Unknown",
156 NPC = "Creature",
157 PET = "Pet",
158 VEHICLE = "Vehicle",
159 ITEM = "Item",
160 }
161
162 private.UNIT_TYPE_NAMES = {
163 ["Player"] = "PLAYER",
164 ["GameObject"] = "OBJECT",
165 ["Unknown"] = "UNKNOWN",
166 ["Creature"] = "NPC",
167 ["Pet"] = "PET",
168 ["Vehicle"] = "VEHICLE",
169 ["Item"] = "ITEM",
170 }
171
172 private.ACTION_TYPE_FLAGS = {
173 ITEM = 0x00000001,
174 NPC = 0x00000002,
175 OBJECT = 0x00000004,
176 ZONE = 0x00000008,
177 }
178
179 private.ACTION_TYPE_NAMES = {}
180
181 for name, bit in _G.pairs(private.ACTION_TYPE_FLAGS) do
182 private.ACTION_TYPE_NAMES[bit] = name
183 end
184
185 private.EXTRAPOLATION_BANNED_SPELL_IDS = {
186 [13262] = "DISENCHANT",
187 [4036] = "ENGINEERING",
188 [30427] = "EXTRACT_GAS",
189 [131476] = "FISHING",
190 [2366] = "HERB_GATHERING",
191 [51005] = "MILLING",
192 [605] = "MIND_CONTROL",
193 [2575] = "MINING",
194 [921] = "PICK_POCKET",
195 [31252] = "PROSPECTING",
196 [73979] = "SEARCHING_FOR_ARTIFACTS",
197 [8613] = "SKINNING",
198 }
199
200 private.SPELL_LABELS_BY_NAME = {
201 [_G.GetSpellInfo(13262)] = "DISENCHANT",
202 [_G.GetSpellInfo(4036)] = "ENGINEERING",
203 [_G.GetSpellInfo(30427)] = "EXTRACT_GAS",
204 [_G.GetSpellInfo(131476)] = "FISHING",
205 [_G.GetSpellInfo(2366)] = "HERB_GATHERING",
206 [_G.GetSpellInfo(51005)] = "MILLING",
207 [_G.GetSpellInfo(605)] = "MIND_CONTROL",
208 [_G.GetSpellInfo(2575)] = "MINING",
209 [_G.GetSpellInfo(3365)] = "OPENING",
210 [_G.GetSpellInfo(921)] = "PICK_POCKET",
211 [_G.GetSpellInfo(31252)] = "PROSPECTING",
212 [_G.GetSpellInfo(73979)] = "SEARCHING_FOR_ARTIFACTS",
213 [_G.GetSpellInfo(8613)] = "SKINNING",
214 }
215
216 private.NON_LOOT_SPELL_LABELS = {
217 MIND_CONTROL = true,
218 }
219
220 local AF = private.ACTION_TYPE_FLAGS
221
222 private.SPELL_FLAGS_BY_LABEL = {
223 DISENCHANT = AF.ITEM,
224 ENGINEERING = AF.NPC,
225 EXTRACT_GAS = AF.ZONE,
226 FISHING = AF.ZONE,
227 HERB_GATHERING = bit.bor(AF.NPC, AF.OBJECT),
228 MILLING = AF.ITEM,
229 MIND_CONTROL = AF.NPC,
230 MINING = bit.bor(AF.NPC, AF.OBJECT),
231 OPENING = AF.OBJECT,
232 PICK_POCKET = AF.NPC,
233 PROSPECTING = AF.ITEM,
234 SEARCHING_FOR_ARTIFACTS = AF.OBJECT,
235 SKINNING = AF.NPC,
236 }