Mercurial > wow > askmrrobot
comparison Constants.lua @ 81:0515882856f1 v38
updated for 7.0
| author | yellowfive |
|---|---|
| date | Tue, 19 Jul 2016 10:05:32 -0700 |
| parents | 69db1c3025ac |
| children | 6bbe64d587b4 |
comparison
equal
deleted
inserted
replaced
| 80:8f235b016212 | 81:0515882856f1 |
|---|---|
| 1 local Amr = LibStub("AceAddon-3.0"):GetAddon("AskMrRobot") | 1 local Amr = LibStub("AceAddon-3.0"):GetAddon("AskMrRobot") |
| 2 local L = LibStub("AceLocale-3.0"):GetLocale("AskMrRobot", true) | 2 local L = LibStub("AceLocale-3.0"):GetLocale("AskMrRobot", true) |
| 3 | 3 |
| 4 -- min import version that we will read from the website | 4 -- min import version that we will read from the website |
| 5 Amr.MIN_IMPORT_VERSION = 21 | 5 Amr.MIN_IMPORT_VERSION = 36 |
| 6 | 6 |
| 7 -- min addon version that we will support for inter-addon communication for e.g. the team optimizer | 7 -- min addon version that we will support for inter-addon communication for e.g. the team optimizer |
| 8 -- last update to version 24 when item link format changed | 8 -- last update to version 36 for Legion pre-patch |
| 9 Amr.MIN_ADDON_VERSION = 24 | 9 Amr.MIN_ADDON_VERSION = 36 |
| 10 | 10 |
| 11 -- import some constants from the serializer for convenience | 11 -- import some constants from the serializer for convenience |
| 12 Amr.ChatPrefix = Amr.Serializer.ChatPrefix | 12 Amr.ChatPrefix = Amr.Serializer.ChatPrefix |
| 13 Amr.RegionNames = Amr.Serializer.RegionNames | 13 Amr.RegionNames = Amr.Serializer.RegionNames |
| 14 Amr.SlotIds = Amr.Serializer.SlotIds | 14 Amr.SlotIds = Amr.Serializer.SlotIds |
| 21 Amr.SupportedInstanceIds = Amr.Serializer.SupportedInstanceIds | 21 Amr.SupportedInstanceIds = Amr.Serializer.SupportedInstanceIds |
| 22 Amr.ParseItemLink = Amr.Serializer.ParseItemLink | 22 Amr.ParseItemLink = Amr.Serializer.ParseItemLink |
| 23 Amr.IsSupportedInstanceId = Amr.Serializer.IsSupportedInstanceId | 23 Amr.IsSupportedInstanceId = Amr.Serializer.IsSupportedInstanceId |
| 24 Amr.IsSupportedInstance = Amr.Serializer.IsSupportedInstance | 24 Amr.IsSupportedInstance = Amr.Serializer.IsSupportedInstance |
| 25 Amr.SetTokenIds = Amr.Serializer.SetTokenIds | 25 Amr.SetTokenIds = Amr.Serializer.SetTokenIds |
| 26 Amr.GetItemTooltip = Amr.Serializer.GetItemTooltip | |
| 27 Amr.GetItemLevel = Amr.Serializer.GetItemLevel | |
| 28 Amr.GetItemUniqueId = Amr.Serializer.GetItemUniqueId | |
| 26 | 29 |
| 27 -- map of slot ID to display text | 30 -- map of slot ID to display text |
| 28 Amr.SlotDisplayText = { | 31 Amr.SlotDisplayText = { |
| 29 [1] = _G["HEADSLOT"], | 32 [1] = _G["HEADSLOT"], |
| 30 [2] = _G["NECKSLOT"], | 33 [2] = _G["NECKSLOT"], |
| 65 | 68 |
| 66 Amr.SpecIcons = { | 69 Amr.SpecIcons = { |
| 67 [1] = "spell_deathknight_bloodpresence", -- DeathKnightBlood | 70 [1] = "spell_deathknight_bloodpresence", -- DeathKnightBlood |
| 68 [2] = "spell_deathknight_frostpresence", -- DeathKnightFrost | 71 [2] = "spell_deathknight_frostpresence", -- DeathKnightFrost |
| 69 [3] = "spell_deathknight_unholypresence", -- DeathKnightUnholy | 72 [3] = "spell_deathknight_unholypresence", -- DeathKnightUnholy |
| 70 [4] = "spell_nature_starfall", -- DruidBalance | 73 [4] = "ability_demonhunter_specdps", -- DemonHunterHavoc |
| 71 [5] = "ability_druid_catform", -- DruidFeral | 74 [5] = "ability_demonhunter_spectank", -- DemonHunterVengeance |
| 72 [6] = "ability_racial_bearform", -- DruidGuardian | 75 [6] = "spell_nature_starfall", -- DruidBalance |
| 73 [7] = "spell_nature_healingtouch", -- DruidRestoration | 76 [7] = "ability_druid_catform", -- DruidFeral |
| 74 [8] = "ability_hunter_bestialdiscipline", -- HunterBeastMastery | 77 [8] = "ability_racial_bearform", -- DruidGuardian |
| 75 [9] = "ability_hunter_focusedaim", -- HunterMarksmanship | 78 [9] = "spell_nature_healingtouch", -- DruidRestoration |
| 76 [10] = "ability_hunter_camouflage", -- HunterSurvival | 79 [10] = "ability_hunter_bestialdiscipline", -- HunterBeastMastery |
| 77 [11] = "spell_holy_magicalsentry", -- MageArcane | 80 [11] = "ability_hunter_focusedaim", -- HunterMarksmanship |
| 78 [12] = "spell_fire_firebolt02", -- MageFire | 81 [12] = "ability_hunter_camouflage", -- HunterSurvival |
| 79 [13] = "spell_frost_frostbolt02", -- MageFrost | 82 [13] = "spell_holy_magicalsentry", -- MageArcane |
| 80 [14] = "spell_monk_brewmaster_spec", -- MonkBrewmaster | 83 [14] = "spell_fire_firebolt02", -- MageFire |
| 81 [15] = "spell_monk_mistweaver_spec", -- MonkMistweaver | 84 [15] = "spell_frost_frostbolt02", -- MageFrost |
| 82 [16] = "spell_monk_windwalker_spec", -- MonkWindwalker | 85 [16] = "spell_monk_brewmaster_spec", -- MonkBrewmaster |
| 83 [17] = "spell_holy_holybolt", -- PaladinHoly | 86 [17] = "spell_monk_mistweaver_spec", -- MonkMistweaver |
| 84 [18] = "ability_paladin_shieldofthetemplar", -- PaladinProtection | 87 [18] = "spell_monk_windwalker_spec", -- MonkWindwalker |
| 85 [19] = "spell_holy_auraoflight", -- PaladinRetribution | 88 [19] = "spell_holy_holybolt", -- PaladinHoly |
| 86 [20] = "spell_holy_powerwordshield", -- PriestDiscipline | 89 [20] = "ability_paladin_shieldofthetemplar", -- PaladinProtection |
| 87 [21] = "spell_holy_guardianspirit", -- PriestHoly | 90 [21] = "spell_holy_auraoflight", -- PaladinRetribution |
| 88 [22] = "spell_shadow_shadowwordpain", -- PriestShadow | 91 [22] = "spell_holy_powerwordshield", -- PriestDiscipline |
| 89 [23] = "ability_rogue_eviscerate", -- RogueAssassination | 92 [23] = "spell_holy_guardianspirit", -- PriestHoly |
| 90 [24] = "ability_backstab", -- RogueCombat | 93 [24] = "spell_shadow_shadowwordpain", -- PriestShadow |
| 91 [25] = "ability_stealth", -- RogueSubtlety | 94 [25] = "ability_rogue_eviscerate", -- RogueAssassination |
| 92 [26] = "spell_nature_lightning", -- ShamanElemental | 95 [26] = "inv_sword_30", -- RogueOutlaw |
| 93 [27] = "spell_nature_lightningshield", -- ShamanEnhancement | 96 [27] = "ability_stealth", -- RogueSubtlety |
| 94 [28] = "spell_nature_magicimmunity", -- ShamanRestoration | 97 [28] = "spell_nature_lightning", -- ShamanElemental |
| 95 [29] = "spell_shadow_deathcoil", -- WarlockAffliction | 98 [29] = "spell_nature_lightningshield", -- ShamanEnhancement |
| 96 [30] = "spell_shadow_metamorphosis", -- WarlockDemonology | 99 [30] = "spell_nature_magicimmunity", -- ShamanRestoration |
| 97 [31] = "spell_shadow_rainoffire", -- WarlockDestruction | 100 [31] = "spell_shadow_deathcoil", -- WarlockAffliction |
| 98 [32] = "ability_warrior_savageblow", -- WarriorArms | 101 [32] = "spell_shadow_metamorphosis", -- WarlockDemonology |
| 99 [33] = "ability_warrior_innerrage", -- WarriorFury | 102 [33] = "spell_shadow_rainoffire", -- WarlockDestruction |
| 100 [34] = "ability_warrior_defensivestance", -- WarriorProtection | 103 [34] = "ability_warrior_savageblow", -- WarriorArms |
| 101 [38] = "ability_warrior_defensivestance", -- WarriorProtection, used for special subspec handling | 104 [35] = "ability_warrior_innerrage", -- WarriorFury |
| 102 [39] = "spell_warrior_gladiatorstance" -- WarriorProtectionGlad, used for special subspec handling | 105 [36] = "ability_warrior_defensivestance", -- WarriorProtection |
| 103 } | 106 } |
| 104 | 107 |
| 105 -- instance IDs ordered in preferred display order | 108 -- instance IDs ordered in preferred display order |
| 106 Amr.InstanceIdsOrdered = { 1448, 1205, 1228 } | 109 Amr.InstanceIdsOrdered = { 1448, 1205, 1228 } |
| 107 | 110 |
| 146 table.insert(parts, -math.abs(itemObj.suffixId)) | 149 table.insert(parts, -math.abs(itemObj.suffixId)) |
| 147 end | 150 end |
| 148 | 151 |
| 149 table.insert(parts, 0) -- some unique id, doesn't seem to matter | 152 table.insert(parts, 0) -- some unique id, doesn't seem to matter |
| 150 table.insert(parts, UnitLevel("player")) | 153 table.insert(parts, UnitLevel("player")) |
| 151 table.insert(parts, 0) -- unknown | 154 |
| 152 table.insert(parts, 0) -- unknown | 155 local specId = GetSpecializationInfo(GetSpecialization()) |
| 156 table.insert(parts, specId) | |
| 157 | |
| 158 -- this indicates what kind of modifier appears after the bonus IDs | |
| 159 if itemObj.upgradeId and itemObj.upgradeId ~= 0 then | |
| 160 table.insert(parts, 4) | |
| 161 elseif itemObj.level and itemObj.level ~= 0 then | |
| 162 table.insert(parts, 512) | |
| 163 else | |
| 164 table.insert(parts, 0) | |
| 165 end | |
| 166 | |
| 153 table.insert(parts, 0) -- difficulty id, doesn't matter | 167 table.insert(parts, 0) -- difficulty id, doesn't matter |
| 154 | 168 |
| 155 if itemObj.bonusIds then | 169 if itemObj.bonusIds then |
| 156 table.insert(parts, #itemObj.bonusIds) | 170 table.insert(parts, #itemObj.bonusIds) |
| 157 for i,v in ipairs(itemObj.bonusIds) do | 171 for i,v in ipairs(itemObj.bonusIds) do |
| 159 end | 173 end |
| 160 else | 174 else |
| 161 table.insert(parts, 0) -- no bonus ids | 175 table.insert(parts, 0) -- no bonus ids |
| 162 end | 176 end |
| 163 | 177 |
| 164 -- upgrade id is tacked onto the end now it seems | 178 -- upgrade id or level comes after bonuses |
| 165 if (not itemObj.bonusIds or #itemObj.bonusIds == 0) and itemObj.upgradeId and itemObj.upgradeId ~= 0 then | 179 if itemObj.upgradeId and itemObj.upgradeId ~= 0 then |
| 166 table.insert(parts, itemObj.upgradeId) | 180 table.insert(parts, itemObj.upgradeId) |
| 167 end | 181 elseif itemObj.level and itemObj.level ~= 0 then |
| 182 table.insert(parts, itemObj.level) | |
| 183 else | |
| 184 table.insert(parts, 0) | |
| 185 end | |
| 186 | |
| 187 -- technically relic stuff comes after this... but we ignore it for now, too much of a pain | |
| 188 table.insert(parts, 0) | |
| 189 table.insert(parts, 0) | |
| 190 table.insert(parts, 0) | |
| 168 | 191 |
| 169 return table.concat(parts, ":") | 192 return table.concat(parts, ":") |
| 170 end | 193 end |
| 171 | 194 |
| 172 -- a unique ID useful for determining if a player has an item equipped or not | |
| 173 function Amr.GetItemUniqueId(item, noUpgrade) | |
| 174 if item == nil then return "" end | |
| 175 local ret = item.id .. "" | |
| 176 if item.bonusIds then | |
| 177 for i = 1, #item.bonusIds do | |
| 178 ret = ret .. "b" .. item.bonusIds[i] | |
| 179 end | |
| 180 end | |
| 181 if item.suffixId ~= 0 then | |
| 182 ret = ret .. "s" .. item.suffixId | |
| 183 end | |
| 184 if not noUpgrade and item.upgradeId ~= 0 then | |
| 185 ret = ret .. "u" .. item.upgradeId | |
| 186 end | |
| 187 return ret | |
| 188 end | |
| 189 | 195 |
| 190 -- the server event for getting item info does not specify which item it just fetched... have to track manually | 196 -- the server event for getting item info does not specify which item it just fetched... have to track manually |
| 191 local _pendingItemIds = {} | 197 local _pendingItemIds = {} |
| 192 | 198 |
| 193 -- helper for getting item information, which is not always guaranteed to be loaded into memory | 199 -- helper for getting item information, which is not always guaranteed to be loaded into memory |
