You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
13624 lines
384 KiB
13624 lines
384 KiB
--[[
|
|
Name: LibTourist-3.0
|
|
Revision: $Rev: 309 $
|
|
Author(s): Odica (owner), originally created by ckknight and Arrowmaster
|
|
Documentation: https://www.wowace.com/projects/libtourist-3-0/pages/api-reference
|
|
SVN: svn://svn.wowace.com/wow/libtourist-3-0/mainline/trunk
|
|
Description: A library to provide information about zones and instances.
|
|
License: MIT
|
|
]]
|
|
|
|
local MAJOR_VERSION = "LibTourist-3.0"
|
|
local MINOR_VERSION = 90000 + tonumber(("$Revision: 310 $"):match("(%d+)"))
|
|
|
|
if not LibStub then error(MAJOR_VERSION .. " requires LibStub") end
|
|
local C_Map = C_Map
|
|
local Tourist, oldLib = LibStub:NewLibrary(MAJOR_VERSION, MINOR_VERSION)
|
|
if not Tourist then
|
|
return
|
|
end
|
|
if oldLib then
|
|
oldLib = {}
|
|
for k, v in pairs(Tourist) do
|
|
Tourist[k] = nil
|
|
oldLib[k] = v
|
|
end
|
|
end
|
|
|
|
local MAX_PLAYER_LEVEL = MAX_PLAYER_LEVEL or GetMaxLevelForPlayerExpansion()
|
|
|
|
local HBD = LibStub("HereBeDragons-2.0")
|
|
function Tourist:GetHBD() return HBD end
|
|
|
|
--local Logger = LibStub("Logger")
|
|
local function trace(msg)
|
|
-- DEFAULT_CHAT_FRAME:AddMessage("[LT] "..tostring(msg))
|
|
-- Logger:LogLine("[LT] "..tostring(msg))
|
|
end
|
|
|
|
--trace("|r|cffff4422! -- Tourist:|r Warning: This is an alpha version with limited functionality." )
|
|
|
|
-- Localization tables
|
|
local BZ = {}
|
|
local BZR = {}
|
|
|
|
local playerLevel = UnitLevel("player")
|
|
|
|
local isAlliance, isHorde, isNeutral
|
|
do
|
|
local faction = UnitFactionGroup("player")
|
|
isAlliance = faction == "Alliance"
|
|
isHorde = faction == "Horde"
|
|
isNeutral = not isAlliance and not isHorde
|
|
end
|
|
|
|
local isWestern = GetLocale() == "enUS" or GetLocale() == "deDE" or GetLocale() == "frFR" or GetLocale() == "esES"
|
|
|
|
-- Continents
|
|
local Azeroth = "Azeroth"
|
|
local Kalimdor = "Kalimdor"
|
|
local Eastern_Kingdoms = "Eastern Kingdoms"
|
|
local Outland = "Outland"
|
|
local Northrend = "Northrend"
|
|
local The_Maelstrom = "The Maelstrom"
|
|
local Pandaria = "Pandaria"
|
|
local Draenor = "Draenor"
|
|
local Broken_Isles = "Broken Isles"
|
|
local Argus = "Argus"
|
|
local Zandalar = "Zandalar"
|
|
local Kul_Tiras = "Kul Tiras"
|
|
local The_Shadowlands = "The Shadowlands"
|
|
local Dragon_Isles = "Dragon Isles"
|
|
|
|
|
|
|
|
-- Expansions: use localized names provided by the game
|
|
local Classic = EXPANSION_NAME0
|
|
local The_Burning_Crusade = EXPANSION_NAME1
|
|
local Wrath_of_the_Lich_King = EXPANSION_NAME2
|
|
local Cataclysm = EXPANSION_NAME3
|
|
local Mists_of_Pandaria = EXPANSION_NAME4
|
|
local Warlords_of_Draenor = EXPANSION_NAME5
|
|
local Legion = EXPANSION_NAME6
|
|
local Battle_for_Azeroth = EXPANSION_NAME7
|
|
local Shadowlands = EXPANSION_NAME8
|
|
local DragonFlight = EXPANSION_NAME9
|
|
|
|
local expansionToIndex = {
|
|
[Classic] = 1,
|
|
[The_Burning_Crusade] = 2,
|
|
[Wrath_of_the_Lich_King] = 3,
|
|
[Cataclysm] = 4,
|
|
[Mists_of_Pandaria] = 5,
|
|
[Warlords_of_Draenor] = 6,
|
|
[Legion] = 7,
|
|
[Battle_for_Azeroth] = 8,
|
|
[Shadowlands] = 9,
|
|
[DragonFlight] = 10,
|
|
}
|
|
|
|
local chromieTimeToExpansion = {
|
|
[5] = Cataclysm,
|
|
[6] = The_Burning_Crusade,
|
|
[7] = Wrath_of_the_Lich_King,
|
|
[8] = Mists_of_Pandaria,
|
|
[9] = Warlords_of_Draenor,
|
|
[10] = Legion,
|
|
}
|
|
|
|
local X_Y_ZEPPELIN = "%s - %s Zeppelin"
|
|
local X_Y_BOAT = "%s - %s Boat"
|
|
local X_Y_PORTAL = "%s - %s Portal"
|
|
local X_Y_TELEPORT = "%s - %s Teleport"
|
|
local X_Y_WAYSTONE = "%s - %s Waystone"
|
|
local X_Y_FLIGHTPATH = "%s - %s Flight path" -- used for path connections between zones that can only be reached using the taxi service
|
|
|
|
if GetLocale() == "zhCN" then
|
|
X_Y_ZEPPELIN = "%s - %s 飞艇"
|
|
X_Y_BOAT = "%s - %s 船"
|
|
X_Y_PORTAL = "%s - %s 传送门"
|
|
X_Y_TELEPORT = "%s - %s 传送门"
|
|
X_Y_WAYSTONE = "%s - %s 路石"
|
|
X_Y_FLIGHTPATH = "%s - %s 飞行路径"
|
|
elseif GetLocale() == "zhTW" then
|
|
X_Y_ZEPPELIN = "%s - %s 飛艇"
|
|
X_Y_BOAT = "%s - %s 船"
|
|
X_Y_PORTAL = "%s - %s 傳送門"
|
|
X_Y_TELEPORT = "%s - %s 傳送門"
|
|
X_Y_WAYSTONE = "%s - %s 路石"
|
|
X_Y_FLIGHTPATH = "%s - %s 飛行路徑"
|
|
elseif GetLocale() == "frFR" then
|
|
X_Y_ZEPPELIN = "Zeppelin %s - %s"
|
|
X_Y_BOAT = "Bateau %s - %s"
|
|
X_Y_PORTAL = "Portail %s - %s"
|
|
X_Y_TELEPORT = "Téléport %s - %s"
|
|
X_Y_WAYSTONE = "Pierre de chemin %s - %s"
|
|
X_Y_FLIGHTPATH = "Trajectoire de vol %s - %s"
|
|
elseif GetLocale() == "koKR" then
|
|
X_Y_ZEPPELIN = "%s - %s 비행선"
|
|
X_Y_BOAT = "%s - %s 배"
|
|
X_Y_PORTAL = "%s - %s 차원문"
|
|
X_Y_TELEPORT = "%s - %s 차원문"
|
|
X_Y_WAYSTONE = "%s - %s 웨이 스톤"
|
|
X_Y_FLIGHTPATH = "%s - %s 비행 경로"
|
|
elseif GetLocale() == "deDE" then
|
|
X_Y_ZEPPELIN = "%s - %s Zeppelin"
|
|
X_Y_BOAT = "%s - %s Schiff"
|
|
X_Y_PORTAL = "%s - %s Portal"
|
|
X_Y_TELEPORT = "%s - %s Teleport"
|
|
X_Y_WAYSTONE = "%s - %s Wegstein"
|
|
X_Y_FLIGHTPATH = "%s - %s Flugbahn"
|
|
elseif GetLocale() == "esES" then
|
|
X_Y_ZEPPELIN = "%s - %s Zepelín"
|
|
X_Y_BOAT = "%s - %s Barco"
|
|
X_Y_PORTAL = "%s - %s Portal"
|
|
X_Y_TELEPORT = "%s - %s Teletransportador"
|
|
X_Y_WAYSTONE = "%s - %s Piedra de camino"
|
|
X_Y_FLIGHTPATH = "%s - %s Trayectoria de vuelo"
|
|
elseif GetLocale() == "esMX" then
|
|
X_Y_ZEPPELIN = "%s - %s Zepelín"
|
|
X_Y_BOAT = "%s - %s Barco"
|
|
X_Y_PORTAL = "%s - %s Portal"
|
|
X_Y_TELEPORT = "%s - %s Teletransportador"
|
|
X_Y_WAYSTONE = "%s - %s Piedra de camino"
|
|
X_Y_FLIGHTPATH = "%s - %s Trayectoria de vuelo"
|
|
elseif GetLocale() == "itIT" then
|
|
X_Y_ZEPPELIN = "%s - %s Zeppelin"
|
|
X_Y_BOAT = "%s - %s Barca"
|
|
X_Y_PORTAL = "%s - %s Portale"
|
|
X_Y_TELEPORT = "%s - %s Teletrasporto"
|
|
X_Y_WAYSTONE = "%s - %s Pietra del cammino"
|
|
X_Y_FLIGHTPATH = "%s - %s Percorso di volo"
|
|
elseif GetLocale() == "ptBR" then
|
|
X_Y_ZEPPELIN = "%s - %s Zepelim"
|
|
X_Y_BOAT = "%s - %s Barco"
|
|
X_Y_PORTAL = "%s - %s Portal"
|
|
X_Y_TELEPORT = "%s - %s Teleporte"
|
|
X_Y_WAYSTONE = "%s - %s Pedra caminho"
|
|
X_Y_FLIGHTPATH = "%s - %s Rota de Vôo"
|
|
end
|
|
|
|
local recZones = {}
|
|
local recInstances = {}
|
|
local lows = setmetatable({}, {__index = function() return 0 end})
|
|
local highs = setmetatable({}, getmetatable(lows))
|
|
local ct_lows = setmetatable({}, {__index = function() return 0 end}) -- Chromie Time lows (high is always 50)
|
|
local expansions = {}
|
|
local continents = {}
|
|
local instances = {}
|
|
local paths = {}
|
|
local flightnodes = {}
|
|
local types = {}
|
|
local groupSizes = {}
|
|
local groupMinSizes = {}
|
|
local groupMaxSizes = {}
|
|
local groupAltSizes = {}
|
|
local factions = {}
|
|
local yardWidths = {}
|
|
local yardHeights = {}
|
|
local yardXOffsets = {}
|
|
local yardYOffsets = {}
|
|
local continentScales = {}
|
|
local battlepet_lows = {}
|
|
local battlepet_highs = {}
|
|
local cost = {}
|
|
local textures = {}
|
|
local textures_rev = {}
|
|
local complexOfInstance = {}
|
|
local zoneComplexes = {}
|
|
local entrancePortals_zone = {}
|
|
local entrancePortals_x = {}
|
|
local entrancePortals_y = {}
|
|
|
|
local zoneMapIDtoContinentMapID = {}
|
|
--local zoneMapIDtoExpansionIndex = {}
|
|
local zoneMapIDs = {}
|
|
local mapZonesByContinentID = {}
|
|
|
|
local FlightnodeLookupTable = {}
|
|
local gatheringFlightnodes = false
|
|
local flightnodeDataGathered = false
|
|
|
|
local COSMIC_MAP_ID = 946
|
|
local THE_MAELSTROM_MAP_ID = 948
|
|
local DRAENOR_MAP_ID = 572
|
|
local BROKEN_ISLES_MAP_ID = 619
|
|
|
|
|
|
--------------------------------------------------------------------------------------------------------
|
|
-- Localization --
|
|
--------------------------------------------------------------------------------------------------------
|
|
|
|
local MapIdLookupTable = {
|
|
[1] = "Durotar",
|
|
[2] = "Burning Blade Coven",
|
|
[3] = "Tiragarde Keep",
|
|
[4] = "Tiragarde Keep",
|
|
[5] = "Skull Rock",
|
|
[6] = "Dustwind Cave",
|
|
[7] = "Mulgore",
|
|
[8] = "Palemane Rock",
|
|
[9] = "The Venture Co. Mine",
|
|
[10] = "Northern Barrens",
|
|
[11] = "Wailing Caverns",
|
|
[12] = "Kalimdor",
|
|
[13] = "Eastern Kingdoms",
|
|
[14] = "Arathi Highlands",
|
|
[15] = "Badlands",
|
|
[16] = "Uldaman",
|
|
[17] = "Blasted Lands",
|
|
[18] = "Tirisfal Glades",
|
|
[19] = "Scarlet Monastery Entrance",
|
|
[20] = "Keeper's Rest",
|
|
[21] = "Silverpine Forest",
|
|
[22] = "Western Plaguelands",
|
|
[23] = "Eastern Plaguelands",
|
|
[24] = "Light's Hope Chapel",
|
|
[25] = "Hillsbrad Foothills",
|
|
[26] = "The Hinterlands",
|
|
[27] = "Dun Morogh",
|
|
[28] = "Coldridge Pass",
|
|
[29] = "The Grizzled Den",
|
|
[30] = "New Tinkertown",
|
|
[31] = "Gol'Bolar Quarry",
|
|
[32] = "Searing Gorge",
|
|
[33] = "Blackrock Mountain",
|
|
[34] = "Blackrock Mountain",
|
|
[35] = "Blackrock Mountain",
|
|
[36] = "Burning Steppes",
|
|
[37] = "Elwynn Forest",
|
|
[38] = "Fargodeep Mine",
|
|
[39] = "Fargodeep Mine",
|
|
[40] = "Jasperlode Mine",
|
|
[41] = "Dalaran",
|
|
[42] = "Deadwind Pass",
|
|
[43] = "The Master's Cellar",
|
|
[44] = "The Master's Cellar",
|
|
[45] = "The Master's Cellar",
|
|
[46] = "Karazhan Catacombs",
|
|
[47] = "Duskwood",
|
|
[48] = "Loch Modan",
|
|
[49] = "Redridge Mountains",
|
|
[50] = "Northern Stranglethorn",
|
|
[51] = "Swamp of Sorrows",
|
|
[52] = "Westfall",
|
|
[53] = "Gold Coast Quarry",
|
|
[54] = "Jangolode Mine",
|
|
[55] = "The Deadmines",
|
|
[56] = "Wetlands",
|
|
[57] = "Teldrassil",
|
|
[58] = "Shadowthread Cave",
|
|
[59] = "Fel Rock",
|
|
[60] = "Ban'ethil Barrow Den",
|
|
[61] = "Ban'ethil Barrow Den",
|
|
[62] = "Darkshore",
|
|
[63] = "Ashenvale",
|
|
[64] = "Thousand Needles",
|
|
[65] = "Stonetalon Mountains",
|
|
[66] = "Desolace",
|
|
[67] = "Maraudon",
|
|
[68] = "Maraudon",
|
|
[69] = "Feralas",
|
|
[70] = "Dustwallow Marsh",
|
|
[71] = "Tanaris",
|
|
[72] = "The Noxious Lair",
|
|
[73] = "The Gaping Chasm",
|
|
[74] = "Caverns of Time",
|
|
[75] = "Caverns of Time",
|
|
[76] = "Azshara",
|
|
[77] = "Felwood",
|
|
[78] = "Un'Goro Crater",
|
|
[79] = "The Slithering Scar",
|
|
[80] = "Moonglade",
|
|
[81] = "Silithus",
|
|
[82] = "Twilight's Run",
|
|
[83] = "Winterspring",
|
|
[84] = "Stormwind City",
|
|
[85] = "Orgrimmar",
|
|
[86] = "Orgrimmar",
|
|
[87] = "Ironforge",
|
|
[88] = "Thunder Bluff",
|
|
[89] = "Darnassus",
|
|
[90] = "Undercity",
|
|
[91] = "Alterac Valley",
|
|
[92] = "Warsong Gulch",
|
|
[93] = "Arathi Basin",
|
|
[94] = "Eversong Woods",
|
|
[95] = "Ghostlands",
|
|
[96] = "Amani Catacombs",
|
|
[97] = "Azuremyst Isle",
|
|
[98] = "Tides' Hollow",
|
|
[99] = "Stillpine Hold",
|
|
[100] = "Hellfire Peninsula",
|
|
[101] = "Outland",
|
|
[102] = "Zangarmarsh",
|
|
[103] = "The Exodar",
|
|
[104] = "Shadowmoon Valley",
|
|
[105] = "Blade's Edge Mountains",
|
|
[106] = "Bloodmyst Isle",
|
|
[107] = "Nagrand",
|
|
[108] = "Terokkar Forest",
|
|
[109] = "Netherstorm",
|
|
[110] = "Silvermoon City",
|
|
[111] = "Shattrath City",
|
|
[112] = "Eye of the Storm",
|
|
[113] = "Northrend",
|
|
[114] = "Borean Tundra",
|
|
[115] = "Dragonblight",
|
|
[116] = "Grizzly Hills",
|
|
[117] = "Howling Fjord",
|
|
[118] = "Icecrown",
|
|
[119] = "Sholazar Basin",
|
|
[120] = "The Storm Peaks",
|
|
[121] = "Zul'Drak",
|
|
[122] = "Isle of Quel'Danas",
|
|
[123] = "Wintergrasp",
|
|
[124] = "Plaguelands: The Scarlet Enclave",
|
|
[125] = "Dalaran",
|
|
[126] = "Dalaran",
|
|
[127] = "Crystalsong Forest",
|
|
[128] = "Strand of the Ancients",
|
|
[129] = "The Nexus",
|
|
[130] = "The Culling of Stratholme",
|
|
[131] = "The Culling of Stratholme",
|
|
[132] = "Ahn'kahet: The Old Kingdom",
|
|
[133] = "Utgarde Keep",
|
|
[134] = "Utgarde Keep",
|
|
[135] = "Utgarde Keep",
|
|
[136] = "Utgarde Pinnacle",
|
|
[137] = "Utgarde Pinnacle",
|
|
[138] = "Halls of Lightning",
|
|
[139] = "Halls of Lightning",
|
|
[140] = "Halls of Stone",
|
|
[141] = "The Eye of Eternity",
|
|
[142] = "The Oculus",
|
|
[143] = "The Oculus",
|
|
[144] = "The Oculus",
|
|
[145] = "The Oculus",
|
|
[146] = "The Oculus",
|
|
[147] = "Ulduar",
|
|
[148] = "Ulduar",
|
|
[149] = "Ulduar",
|
|
[150] = "Ulduar",
|
|
[151] = "Ulduar",
|
|
[152] = "Ulduar",
|
|
[153] = "Gundrak",
|
|
[154] = "Gundrak",
|
|
[155] = "The Obsidian Sanctum",
|
|
[156] = "Vault of Archavon",
|
|
[157] = "Azjol-Nerub",
|
|
[158] = "Azjol-Nerub",
|
|
[159] = "Azjol-Nerub",
|
|
[160] = "Drak'Tharon Keep",
|
|
[161] = "Drak'Tharon Keep",
|
|
[162] = "Naxxramas",
|
|
[163] = "Naxxramas",
|
|
[164] = "Naxxramas",
|
|
[165] = "Naxxramas",
|
|
[166] = "Naxxramas",
|
|
[167] = "Naxxramas",
|
|
[168] = "The Violet Hold",
|
|
[169] = "Isle of Conquest",
|
|
[170] = "Hrothgar's Landing",
|
|
[171] = "Trial of the Champion",
|
|
[172] = "Trial of the Crusader",
|
|
[173] = "Trial of the Crusader",
|
|
[174] = "The Lost Isles",
|
|
[175] = "Kaja'mite Cavern",
|
|
[176] = "Volcanoth's Lair",
|
|
[177] = "Gallywix Labor Mine",
|
|
[178] = "Gallywix Labor Mine",
|
|
[179] = "Gilneas",
|
|
[180] = "Emberstone Mine",
|
|
[181] = "Greymane Manor",
|
|
[182] = "Greymane Manor",
|
|
[183] = "The Forge of Souls",
|
|
[184] = "Pit of Saron",
|
|
[185] = "Halls of Reflection",
|
|
[186] = "Icecrown Citadel",
|
|
[187] = "Icecrown Citadel",
|
|
[188] = "Icecrown Citadel",
|
|
[189] = "Icecrown Citadel",
|
|
[190] = "Icecrown Citadel",
|
|
[191] = "Icecrown Citadel",
|
|
[192] = "Icecrown Citadel",
|
|
[193] = "Icecrown Citadel",
|
|
[194] = "Kezan",
|
|
[195] = "Kaja'mine",
|
|
[196] = "Kaja'mine",
|
|
[197] = "Kaja'mine",
|
|
[198] = "Mount Hyjal",
|
|
[199] = "Southern Barrens",
|
|
[200] = "The Ruby Sanctum",
|
|
[201] = "Kelp'thar Forest",
|
|
[202] = "Gilneas City",
|
|
[203] = "Vashj'ir",
|
|
[204] = "Abyssal Depths",
|
|
[205] = "Shimmering Expanse",
|
|
[206] = "Twin Peaks",
|
|
[207] = "Deepholm",
|
|
[208] = "Twilight Depths",
|
|
[209] = "Twilight Depths",
|
|
[210] = "The Cape of Stranglethorn",
|
|
[213] = "Ragefire Chasm",
|
|
[217] = "Ruins of Gilneas",
|
|
[218] = "Ruins of Gilneas City",
|
|
[219] = "Zul'Farrak",
|
|
[220] = "The Temple of Atal'Hakkar",
|
|
[221] = "Blackfathom Deeps",
|
|
[222] = "Blackfathom Deeps",
|
|
[223] = "Blackfathom Deeps",
|
|
[224] = "Stranglethorn Vale",
|
|
[225] = "The Stockade",
|
|
[226] = "Gnomeregan",
|
|
[227] = "Gnomeregan",
|
|
[228] = "Gnomeregan",
|
|
[229] = "Gnomeregan",
|
|
[230] = "Uldaman",
|
|
[231] = "Uldaman",
|
|
[232] = "Molten Core",
|
|
[233] = "Zul'Gurub",
|
|
[234] = "Dire Maul",
|
|
[235] = "Dire Maul",
|
|
[236] = "Dire Maul",
|
|
[237] = "Dire Maul",
|
|
[238] = "Dire Maul",
|
|
[239] = "Dire Maul",
|
|
[240] = "Dire Maul",
|
|
[241] = "Twilight Highlands",
|
|
[242] = "Blackrock Depths",
|
|
[243] = "Blackrock Depths",
|
|
[244] = "Tol Barad",
|
|
[245] = "Tol Barad Peninsula",
|
|
[246] = "The Shattered Halls",
|
|
[247] = "Ruins of Ahn'Qiraj",
|
|
[248] = "Onyxia's Lair",
|
|
[249] = "Uldum",
|
|
[250] = "Blackrock Spire",
|
|
[251] = "Blackrock Spire",
|
|
[252] = "Blackrock Spire",
|
|
[253] = "Blackrock Spire",
|
|
[254] = "Blackrock Spire",
|
|
[255] = "Blackrock Spire",
|
|
[256] = "Auchenai Crypts",
|
|
[257] = "Auchenai Crypts",
|
|
[258] = "Sethekk Halls",
|
|
[259] = "Sethekk Halls",
|
|
[260] = "Shadow Labyrinth",
|
|
[261] = "The Blood Furnace",
|
|
[262] = "The Underbog",
|
|
[263] = "The Steamvault",
|
|
[264] = "The Steamvault",
|
|
[265] = "The Slave Pens",
|
|
[266] = "The Botanica",
|
|
[267] = "The Mechanar",
|
|
[268] = "The Mechanar",
|
|
[269] = "The Arcatraz",
|
|
[270] = "The Arcatraz",
|
|
[271] = "The Arcatraz",
|
|
[272] = "Mana-Tombs",
|
|
[273] = "The Black Morass",
|
|
[274] = "Old Hillsbrad Foothills",
|
|
[275] = "The Battle for Gilneas",
|
|
[276] = "The Maelstrom",
|
|
[277] = "Lost City of the Tol'vir",
|
|
[279] = "Wailing Caverns",
|
|
[280] = "Maraudon",
|
|
[281] = "Maraudon",
|
|
[282] = "Baradin Hold",
|
|
[283] = "Blackrock Caverns",
|
|
[284] = "Blackrock Caverns",
|
|
[285] = "Blackwing Descent",
|
|
[286] = "Blackwing Descent",
|
|
[287] = "Blackwing Lair",
|
|
[288] = "Blackwing Lair",
|
|
[289] = "Blackwing Lair",
|
|
[290] = "Blackwing Lair",
|
|
[291] = "The Deadmines",
|
|
[292] = "The Deadmines",
|
|
[293] = "Grim Batol",
|
|
[294] = "The Bastion of Twilight",
|
|
[295] = "The Bastion of Twilight",
|
|
[296] = "The Bastion of Twilight",
|
|
[297] = "Halls of Origination",
|
|
[298] = "Halls of Origination",
|
|
[299] = "Halls of Origination",
|
|
[300] = "Razorfen Downs",
|
|
[301] = "Razorfen Kraul",
|
|
[302] = "Scarlet Monastery",
|
|
[303] = "Scarlet Monastery",
|
|
[304] = "Scarlet Monastery",
|
|
[305] = "Scarlet Monastery",
|
|
[306] = "Legacy of Scholomance",
|
|
[307] = "Legacy of Scholomance",
|
|
[308] = "Legacy of Scholomance",
|
|
[309] = "Legacy of Scholomance",
|
|
[310] = "Shadowfang Keep",
|
|
[311] = "Shadowfang Keep",
|
|
[312] = "Shadowfang Keep",
|
|
[313] = "Shadowfang Keep",
|
|
[314] = "Shadowfang Keep",
|
|
[315] = "Shadowfang Keep",
|
|
[316] = "Shadowfang Keep",
|
|
[317] = "Stratholme",
|
|
[318] = "Stratholme",
|
|
[319] = "Ahn'Qiraj",
|
|
[320] = "Ahn'Qiraj",
|
|
[321] = "Ahn'Qiraj",
|
|
[322] = "Throne of the Tides",
|
|
[323] = "Throne of the Tides",
|
|
[324] = "The Stonecore",
|
|
[325] = "The Vortex Pinnacle",
|
|
[327] = "Ahn'Qiraj: The Fallen Kingdom",
|
|
[328] = "Throne of the Four Winds",
|
|
[329] = "Hyjal Summit",
|
|
[330] = "Gruul's Lair",
|
|
[331] = "Magtheridon's Lair",
|
|
[332] = "Serpentshrine Cavern",
|
|
[333] = "Zul'Aman",
|
|
[334] = "Tempest Keep",
|
|
[335] = "Sunwell Plateau",
|
|
[336] = "Sunwell Plateau",
|
|
[337] = "Zul'Gurub",
|
|
[338] = "Molten Front",
|
|
[339] = "Black Temple",
|
|
[340] = "Black Temple",
|
|
[341] = "Black Temple",
|
|
[342] = "Black Temple",
|
|
[343] = "Black Temple",
|
|
[344] = "Black Temple",
|
|
[345] = "Black Temple",
|
|
[346] = "Black Temple",
|
|
[347] = "Hellfire Ramparts",
|
|
[348] = "Magisters' Terrace",
|
|
[349] = "Magisters' Terrace",
|
|
[350] = "Karazhan",
|
|
[351] = "Karazhan",
|
|
[352] = "Karazhan",
|
|
[353] = "Karazhan",
|
|
[354] = "Karazhan",
|
|
[355] = "Karazhan",
|
|
[356] = "Karazhan",
|
|
[357] = "Karazhan",
|
|
[358] = "Karazhan",
|
|
[359] = "Karazhan",
|
|
[360] = "Karazhan",
|
|
[361] = "Karazhan",
|
|
[362] = "Karazhan",
|
|
[363] = "Karazhan",
|
|
[364] = "Karazhan",
|
|
[365] = "Karazhan",
|
|
[366] = "Karazhan",
|
|
[367] = "Firelands",
|
|
[368] = "Firelands",
|
|
[369] = "Firelands",
|
|
[370] = "The Nexus",
|
|
[371] = "The Jade Forest",
|
|
[372] = "Greenstone Quarry",
|
|
[373] = "Greenstone Quarry",
|
|
[374] = "The Widow's Wail",
|
|
[375] = "Oona Kagu",
|
|
[376] = "Valley of the Four Winds",
|
|
[377] = "Cavern of Endless Echoes",
|
|
[378] = "The Wandering Isle",
|
|
[379] = "Kun-Lai Summit",
|
|
[380] = "Howlingwind Cavern",
|
|
[381] = "Pranksters' Hollow",
|
|
[382] = "Knucklethump Hole",
|
|
[383] = "The Deeper",
|
|
[384] = "The Deeper",
|
|
[385] = "Tomb of Conquerors",
|
|
[386] = "Ruins of Korune",
|
|
[387] = "Ruins of Korune",
|
|
[388] = "Townlong Steppes",
|
|
[389] = "Niuzao Temple",
|
|
[390] = "Vale of Eternal Blossoms",
|
|
[391] = "Shrine of Two Moons",
|
|
[392] = "Shrine of Two Moons",
|
|
[393] = "Shrine of Seven Stars",
|
|
[394] = "Shrine of Seven Stars",
|
|
[395] = "Guo-Lai Halls",
|
|
[396] = "Guo-Lai Halls",
|
|
[397] = "Eye of the Storm",
|
|
[398] = "Well of Eternity",
|
|
[399] = "Hour of Twilight",
|
|
[400] = "Hour of Twilight",
|
|
[401] = "End Time",
|
|
[402] = "End Time",
|
|
[403] = "End Time",
|
|
[404] = "End Time",
|
|
[405] = "End Time",
|
|
[406] = "End Time",
|
|
[407] = "Darkmoon Island",
|
|
[408] = "Darkmoon Island",
|
|
[409] = "Dragon Soul",
|
|
[410] = "Dragon Soul",
|
|
[411] = "Dragon Soul",
|
|
[412] = "Dragon Soul",
|
|
[413] = "Dragon Soul",
|
|
[414] = "Dragon Soul",
|
|
[415] = "Dragon Soul",
|
|
[416] = "Dustwallow Marsh",
|
|
[417] = "Temple of Kotmogu",
|
|
[418] = "Krasarang Wilds",
|
|
[419] = "Ruins of Ogudei",
|
|
[420] = "Ruins of Ogudei",
|
|
[421] = "Ruins of Ogudei",
|
|
[422] = "Dread Wastes",
|
|
[423] = "Silvershard Mines",
|
|
[424] = "Pandaria",
|
|
[425] = "Northshire",
|
|
[426] = "Echo Ridge Mine",
|
|
[427] = "Coldridge Valley",
|
|
[428] = "Frostmane Hovel",
|
|
[429] = "Temple of the Jade Serpent",
|
|
[430] = "Temple of the Jade Serpent",
|
|
[431] = "Scarlet Halls",
|
|
[432] = "Scarlet Halls",
|
|
[433] = "The Veiled Stair",
|
|
[434] = "The Ancient Passage",
|
|
[435] = "Scarlet Monastery",
|
|
[436] = "Scarlet Monastery",
|
|
[437] = "Gate of the Setting Sun",
|
|
[438] = "Gate of the Setting Sun",
|
|
[439] = "Stormstout Brewery",
|
|
[440] = "Stormstout Brewery",
|
|
[441] = "Stormstout Brewery",
|
|
[442] = "Stormstout Brewery",
|
|
[443] = "Shado-Pan Monastery",
|
|
[444] = "Shado-Pan Monastery",
|
|
[445] = "Shado-Pan Monastery",
|
|
[446] = "Shado-Pan Monastery",
|
|
[447] = "A Brewing Storm",
|
|
[448] = "The Jade Forest",
|
|
[449] = "Temple of Kotmogu",
|
|
[450] = "Unga Ingoo",
|
|
[451] = "Assault on Zan'vess",
|
|
[452] = "Brewmoon Festival",
|
|
[453] = "Mogu'shan Palace",
|
|
[454] = "Mogu'shan Palace",
|
|
[455] = "Mogu'shan Palace",
|
|
[456] = "Terrace of Endless Spring",
|
|
[457] = "Siege of Niuzao Temple",
|
|
[458] = "Siege of Niuzao Temple",
|
|
[459] = "Siege of Niuzao Temple",
|
|
[460] = "Shadowglen",
|
|
[461] = "Valley of Trials",
|
|
[462] = "Camp Narache",
|
|
[463] = "Echo Isles",
|
|
[464] = "Spitescale Cavern",
|
|
[465] = "Deathknell",
|
|
[466] = "Night Web's Hollow",
|
|
[467] = "Sunstrider Isle",
|
|
[468] = "Ammen Vale",
|
|
[469] = "New Tinkertown",
|
|
[470] = "Frostmane Hold",
|
|
[471] = "Mogu'shan Vaults",
|
|
[472] = "Mogu'shan Vaults",
|
|
[473] = "Mogu'shan Vaults",
|
|
[474] = "Heart of Fear",
|
|
[475] = "Heart of Fear",
|
|
[476] = "Scholomance",
|
|
[477] = "Scholomance",
|
|
[478] = "Scholomance",
|
|
[479] = "Scholomance",
|
|
[480] = "Proving Grounds",
|
|
[481] = "Crypt of Forgotten Kings",
|
|
[482] = "Crypt of Forgotten Kings",
|
|
[483] = "Dustwallow Marsh",
|
|
[486] = "Krasarang Wilds",
|
|
[487] = "A Little Patience",
|
|
[488] = "Dagger in the Dark",
|
|
[489] = "Dagger in the Dark",
|
|
[490] = "Black Temple",
|
|
[491] = "Black Temple",
|
|
[492] = "Black Temple",
|
|
[493] = "Black Temple",
|
|
[494] = "Black Temple",
|
|
[495] = "Black Temple",
|
|
[496] = "Black Temple",
|
|
[497] = "Black Temple",
|
|
[498] = "Krasarang Wilds",
|
|
[499] = "Deeprun Tram",
|
|
[500] = "Deeprun Tram",
|
|
[501] = "Dalaran",
|
|
[502] = "Dalaran",
|
|
[503] = "Brawl'gar Arena",
|
|
[504] = "Isle of Thunder",
|
|
[505] = "Lightning Vein Mine",
|
|
[506] = "The Swollen Vault",
|
|
[507] = "Isle of Giants",
|
|
[508] = "Throne of Thunder",
|
|
[509] = "Throne of Thunder",
|
|
[510] = "Throne of Thunder",
|
|
[511] = "Throne of Thunder",
|
|
[512] = "Throne of Thunder",
|
|
[513] = "Throne of Thunder",
|
|
[514] = "Throne of Thunder",
|
|
[515] = "Throne of Thunder",
|
|
[516] = "Isle of Thunder",
|
|
[517] = "Lightning Vein Mine",
|
|
[518] = "Thunder King's Citadel",
|
|
[519] = "Deepwind Gorge",
|
|
[520] = "Vale of Eternal Blossoms",
|
|
[521] = "Vale of Eternal Blossoms",
|
|
[522] = "The Secrets of Ragefire",
|
|
[523] = "Dun Morogh",
|
|
[524] = "Battle on the High Seas",
|
|
[525] = "Frostfire Ridge",
|
|
[526] = "Turgall's Den",
|
|
[527] = "Turgall's Den",
|
|
[528] = "Turgall's Den",
|
|
[529] = "Turgall's Den",
|
|
[530] = "Grom'gar",
|
|
[531] = "Grulloc's Grotto",
|
|
[532] = "Grulloc's Grotto",
|
|
[533] = "Snowfall Alcove",
|
|
[534] = "Tanaan Jungle",
|
|
[535] = "Talador",
|
|
[536] = "Tomb of Lights",
|
|
[537] = "Tomb of Souls",
|
|
[538] = "The Breached Ossuary",
|
|
[539] = "Shadowmoon Valley",
|
|
[540] = "Bloodthorn Cave",
|
|
[541] = "Den of Secrets",
|
|
[542] = "Spires of Arak",
|
|
[543] = "Gorgrond",
|
|
[544] = "Moira's Reach",
|
|
[545] = "Moira's Reach",
|
|
[546] = "Fissure of Fury",
|
|
[547] = "Fissure of Fury",
|
|
[548] = "Cragplume Cauldron",
|
|
[549] = "Cragplume Cauldron",
|
|
[550] = "Nagrand",
|
|
[551] = "The Masters' Cavern",
|
|
[552] = "Stonecrag Gorge",
|
|
[553] = "Oshu'gun",
|
|
[554] = "Timeless Isle",
|
|
[555] = "Cavern of Lost Spirits",
|
|
[556] = "Siege of Orgrimmar",
|
|
[557] = "Siege of Orgrimmar",
|
|
[558] = "Siege of Orgrimmar",
|
|
[559] = "Siege of Orgrimmar",
|
|
[560] = "Siege of Orgrimmar",
|
|
[561] = "Siege of Orgrimmar",
|
|
[562] = "Siege of Orgrimmar",
|
|
[563] = "Siege of Orgrimmar",
|
|
[564] = "Siege of Orgrimmar",
|
|
[565] = "Siege of Orgrimmar",
|
|
[566] = "Siege of Orgrimmar",
|
|
[567] = "Siege of Orgrimmar",
|
|
[568] = "Siege of Orgrimmar",
|
|
[569] = "Siege of Orgrimmar",
|
|
[570] = "Siege of Orgrimmar",
|
|
[571] = "Celestial Tournament",
|
|
[572] = "Draenor",
|
|
[573] = "Bloodmaul Slag Mines",
|
|
[574] = "Shadowmoon Burial Grounds",
|
|
[575] = "Shadowmoon Burial Grounds",
|
|
[576] = "Shadowmoon Burial Grounds",
|
|
[577] = "Tanaan Jungle",
|
|
[578] = "Umbral Halls",
|
|
[579] = "Lunarfall Excavation",
|
|
[580] = "Lunarfall Excavation",
|
|
[581] = "Lunarfall Excavation",
|
|
[582] = "Lunarfall",
|
|
[585] = "Frostwall Mine",
|
|
[586] = "Frostwall Mine",
|
|
[587] = "Frostwall Mine",
|
|
[588] = "Ashran",
|
|
[589] = "Ashran Mine",
|
|
[590] = "Frostwall",
|
|
[593] = "Auchindoun",
|
|
[594] = "Shattrath City",
|
|
[595] = "Iron Docks",
|
|
[596] = "Blackrock Foundry",
|
|
[597] = "Blackrock Foundry",
|
|
[598] = "Blackrock Foundry",
|
|
[599] = "Blackrock Foundry",
|
|
[600] = "Blackrock Foundry",
|
|
[601] = "Skyreach",
|
|
[602] = "Skyreach",
|
|
[606] = "Grimrail Depot",
|
|
[607] = "Grimrail Depot",
|
|
[608] = "Grimrail Depot",
|
|
[609] = "Grimrail Depot",
|
|
[610] = "Highmaul",
|
|
[611] = "Highmaul",
|
|
[612] = "Highmaul",
|
|
[613] = "Highmaul",
|
|
[614] = "Highmaul",
|
|
[615] = "Highmaul",
|
|
[616] = "Upper Blackrock Spire",
|
|
[617] = "Upper Blackrock Spire",
|
|
[618] = "Upper Blackrock Spire",
|
|
[619] = "Broken Isles",
|
|
[620] = "The Everbloom",
|
|
[621] = "The Everbloom",
|
|
[622] = "Stormshield",
|
|
[623] = "Hillsbrad Foothills (Southshore vs. Tarren Mill)",
|
|
[624] = "Warspear",
|
|
[626] = "Dalaran",
|
|
[627] = "Dalaran",
|
|
[628] = "Dalaran",
|
|
[629] = "Dalaran",
|
|
[630] = "Azsuna",
|
|
[631] = "Nar'thalas Academy",
|
|
[632] = "Oceanus Cove",
|
|
[633] = "Temple of a Thousand Lights",
|
|
[634] = "Stormheim",
|
|
[635] = "Shield's Rest",
|
|
[636] = "Stormscale Cavern",
|
|
[637] = "Thorignir Refuge",
|
|
[638] = "Thorignir Refuge",
|
|
[639] = "Aggramar's Vault",
|
|
[640] = "Vault of Eyir",
|
|
[641] = "Val'sharah",
|
|
[642] = "Darkpens",
|
|
[643] = "Sleeper's Barrow",
|
|
[644] = "Sleeper's Barrow",
|
|
[645] = "Twisting Nether",
|
|
[646] = "Broken Shore",
|
|
[647] = "Acherus: The Ebon Hold",
|
|
[648] = "Acherus: The Ebon Hold",
|
|
[649] = "Helheim",
|
|
[650] = "Highmountain",
|
|
[651] = "Bitestone Enclave",
|
|
[652] = "Thunder Totem",
|
|
[653] = "Cave of the Blood Trial",
|
|
[654] = "Mucksnout Den",
|
|
[655] = "Lifespring Cavern",
|
|
[656] = "Lifespring Cavern",
|
|
[657] = "Path of Huln",
|
|
[658] = "Path of Huln",
|
|
[659] = "Stonedark Grotto",
|
|
[660] = "Feltotem Caverns",
|
|
[661] = "Hellfire Citadel",
|
|
[662] = "Hellfire Citadel",
|
|
[663] = "Hellfire Citadel",
|
|
[664] = "Hellfire Citadel",
|
|
[665] = "Hellfire Citadel",
|
|
[666] = "Hellfire Citadel",
|
|
[667] = "Hellfire Citadel",
|
|
[668] = "Hellfire Citadel",
|
|
[669] = "Hellfire Citadel",
|
|
[670] = "Hellfire Citadel",
|
|
[671] = "The Cove of Nashal",
|
|
[672] = "Mardum, the Shattered Abyss",
|
|
[673] = "Cryptic Hollow",
|
|
[674] = "Soul Engine",
|
|
[675] = "Soul Engine",
|
|
[676] = "Broken Shore",
|
|
[677] = "Vault of the Wardens",
|
|
[678] = "Vault of the Wardens",
|
|
[679] = "Vault of the Wardens",
|
|
[680] = "Suramar",
|
|
[681] = "The Arcway Vaults",
|
|
[682] = "Felsoul Hold",
|
|
[683] = "The Arcway Vaults",
|
|
[684] = "Shattered Locus",
|
|
[685] = "Shattered Locus",
|
|
[686] = "Elor'shan",
|
|
[687] = "Kel'balor",
|
|
[688] = "Ley Station Anora",
|
|
[689] = "Ley Station Moonfall",
|
|
[690] = "Ley Station Aethenar",
|
|
[691] = "Nyell's Workshop",
|
|
[692] = "Falanaar Arcway",
|
|
[693] = "Falanaar Arcway",
|
|
[694] = "Helmouth Shallows",
|
|
[695] = "Skyhold",
|
|
[696] = "Stormheim",
|
|
[697] = "Azshara",
|
|
[698] = "Icecrown Citadel",
|
|
[699] = "Icecrown Citadel",
|
|
[700] = "Icecrown Citadel",
|
|
[701] = "Icecrown Citadel",
|
|
[702] = "Netherlight Temple",
|
|
[703] = "Halls of Valor",
|
|
[704] = "Halls of Valor",
|
|
[705] = "Halls of Valor",
|
|
[706] = "Helmouth Cliffs",
|
|
[707] = "Helmouth Cliffs",
|
|
[708] = "Helmouth Cliffs",
|
|
[709] = "The Wandering Isle",
|
|
[710] = "Vault of the Wardens",
|
|
[711] = "Vault of the Wardens",
|
|
[712] = "Vault of the Wardens",
|
|
[713] = "Eye of Azshara",
|
|
[714] = "Niskara",
|
|
[715] = "Emerald Dreamway",
|
|
[716] = "Skywall",
|
|
[717] = "Dreadscar Rift",
|
|
[718] = "Dreadscar Rift",
|
|
[719] = "Mardum, the Shattered Abyss",
|
|
[720] = "Mardum, the Shattered Abyss",
|
|
[721] = "Mardum, the Shattered Abyss",
|
|
[723] = "The Violet Hold",
|
|
[725] = "The Maelstrom",
|
|
[726] = "The Maelstrom",
|
|
[728] = "Terrace of Endless Spring",
|
|
[729] = "Crumbling Depths",
|
|
[731] = "Neltharion's Lair",
|
|
[732] = "Violet Hold",
|
|
[733] = "Darkheart Thicket",
|
|
[734] = "Hall of the Guardian",
|
|
[735] = "Hall of the Guardian",
|
|
[736] = "The Beyond",
|
|
[737] = "The Vortex Pinnacle",
|
|
[738] = "Firelands",
|
|
[739] = "Trueshot Lodge",
|
|
[740] = "Shadowgore Citadel",
|
|
[741] = "Shadowgore Citadel",
|
|
[742] = "Abyssal Maw",
|
|
[743] = "Abyssal Maw",
|
|
[744] = "Ulduar",
|
|
[745] = "Ulduar",
|
|
[746] = "Ulduar",
|
|
[747] = "The Dreamgrove",
|
|
[748] = "Niskara",
|
|
[749] = "The Arcway",
|
|
[750] = "Thunder Totem",
|
|
[751] = "Black Rook Hold",
|
|
[752] = "Black Rook Hold",
|
|
[753] = "Black Rook Hold",
|
|
[754] = "Black Rook Hold",
|
|
[755] = "Black Rook Hold",
|
|
[756] = "Black Rook Hold",
|
|
[757] = "Ursoc's Lair",
|
|
[758] = "Gloaming Reef",
|
|
[759] = "Black Temple",
|
|
[760] = "Malorne's Nightmare",
|
|
[761] = "Court of Stars",
|
|
[762] = "Court of Stars",
|
|
[763] = "Court of Stars",
|
|
[764] = "The Nighthold",
|
|
[765] = "The Nighthold",
|
|
[766] = "The Nighthold",
|
|
[767] = "The Nighthold",
|
|
[768] = "The Nighthold",
|
|
[769] = "The Nighthold",
|
|
[770] = "The Nighthold",
|
|
[771] = "The Nighthold",
|
|
[772] = "The Nighthold",
|
|
[773] = "Tol Barad",
|
|
[774] = "Tol Barad",
|
|
[775] = "The Exodar",
|
|
[776] = "Azuremyst Isle",
|
|
[777] = "The Emerald Nightmare",
|
|
[778] = "The Emerald Nightmare",
|
|
[779] = "The Emerald Nightmare",
|
|
[780] = "The Emerald Nightmare",
|
|
[781] = "The Emerald Nightmare",
|
|
[782] = "The Emerald Nightmare",
|
|
[783] = "The Emerald Nightmare",
|
|
[784] = "The Emerald Nightmare",
|
|
[785] = "The Emerald Nightmare",
|
|
[786] = "The Emerald Nightmare",
|
|
[787] = "The Emerald Nightmare",
|
|
[788] = "The Emerald Nightmare",
|
|
[789] = "The Emerald Nightmare",
|
|
[790] = "Eye of Azshara",
|
|
[791] = "Temple of the Jade Serpent",
|
|
[792] = "Temple of the Jade Serpent",
|
|
[793] = "Black Rook Hold",
|
|
[794] = "Karazhan",
|
|
[795] = "Karazhan",
|
|
[796] = "Karazhan",
|
|
[797] = "Karazhan",
|
|
[798] = "The Arcway",
|
|
[799] = "The Oculus",
|
|
[800] = "The Oculus",
|
|
[801] = "The Oculus",
|
|
[802] = "The Oculus",
|
|
[803] = "The Oculus",
|
|
[804] = "Scarlet Monastery",
|
|
[805] = "Scarlet Monastery",
|
|
[806] = "Trial of Valor",
|
|
[807] = "Trial of Valor",
|
|
[808] = "Trial of Valor",
|
|
[809] = "Karazhan",
|
|
[810] = "Karazhan",
|
|
[811] = "Karazhan",
|
|
[812] = "Karazhan",
|
|
[813] = "Karazhan",
|
|
[814] = "Karazhan",
|
|
[815] = "Karazhan",
|
|
[816] = "Karazhan",
|
|
[817] = "Karazhan",
|
|
[818] = "Karazhan",
|
|
[819] = "Karazhan",
|
|
[820] = "Karazhan",
|
|
[821] = "Karazhan",
|
|
[822] = "Karazhan",
|
|
[823] = "Pit of Saron",
|
|
[824] = "Islands",
|
|
[825] = "Wailing Caverns",
|
|
[826] = "Cave of the Bloodtotem",
|
|
[827] = "Stratholme",
|
|
[828] = "The Eye of Eternity",
|
|
[829] = "Halls of Valor",
|
|
[830] = "Krokuun",
|
|
[831] = "The Vindicaar",
|
|
[832] = "The Vindicaar",
|
|
[833] = "Nath'raxas Spire",
|
|
[834] = "Coldridge Valley",
|
|
[835] = "The Deadmines",
|
|
[836] = "The Deadmines",
|
|
[837] = "Arathi Basin",
|
|
[838] = "Battle for Blackrock Mountain",
|
|
[839] = "The Maelstrom",
|
|
[840] = "Gnomeregan",
|
|
[841] = "Gnomeregan",
|
|
[842] = "Gnomeregan",
|
|
[843] = "Shado-Pan Showdown",
|
|
[844] = "Arathi Basin",
|
|
[845] = "Cathedral of Eternal Night",
|
|
[846] = "Cathedral of Eternal Night",
|
|
[847] = "Cathedral of Eternal Night",
|
|
[848] = "Cathedral of Eternal Night",
|
|
[849] = "Cathedral of Eternal Night",
|
|
[850] = "Tomb of Sargeras",
|
|
[851] = "Tomb of Sargeras",
|
|
[852] = "Tomb of Sargeras",
|
|
[853] = "Tomb of Sargeras",
|
|
[854] = "Tomb of Sargeras",
|
|
[855] = "Tomb of Sargeras",
|
|
[856] = "Tomb of Sargeras",
|
|
[857] = "Throne of the Four Winds",
|
|
[858] = "Assault on Broken Shore",
|
|
[859] = "Warsong Gulch",
|
|
[860] = "The Ruby Sanctum",
|
|
[861] = "Mardum, the Shattered Abyss",
|
|
[862] = "Zuldazar",
|
|
[863] = "Nazmir",
|
|
[864] = "Vol'dun",
|
|
[865] = "Stormheim",
|
|
[866] = "Stormheim",
|
|
[867] = "Azsuna",
|
|
[868] = "Val'sharah",
|
|
[869] = "Highmountain",
|
|
[870] = "Highmountain",
|
|
[871] = "The Lost Glacier",
|
|
[872] = "Stormstout Brewery",
|
|
[873] = "Stormstout Brewery",
|
|
[874] = "Stormstout Brewery",
|
|
[875] = "Zandalar",
|
|
[876] = "Kul Tiras",
|
|
[877] = "Fields of the Eternal Hunt",
|
|
[879] = "Mardum, the Shattered Abyss",
|
|
[880] = "Mardum, the Shattered Abyss",
|
|
[881] = "The Eye of Eternity",
|
|
[882] = "Eredath",
|
|
[883] = "The Vindicaar",
|
|
[884] = "The Vindicaar",
|
|
[885] = "Antoran Wastes",
|
|
[886] = "The Vindicaar",
|
|
[887] = "The Vindicaar",
|
|
[888] = "Hall of Communion",
|
|
[889] = "Arcatraz",
|
|
[890] = "Arcatraz",
|
|
[891] = "Azuremyst Isle",
|
|
[892] = "Azuremyst Isle",
|
|
[893] = "Azuremyst Isle",
|
|
[894] = "Azuremyst Isle",
|
|
[895] = "Tiragarde Sound",
|
|
[896] = "Drustvar",
|
|
[897] = "The Deaths of Chromie",
|
|
[898] = "The Deaths of Chromie",
|
|
[899] = "The Deaths of Chromie",
|
|
[900] = "The Deaths of Chromie",
|
|
[901] = "The Deaths of Chromie",
|
|
[902] = "The Deaths of Chromie",
|
|
[903] = "The Seat of the Triumvirate",
|
|
[904] = "Silithus Brawl",
|
|
[905] = "Argus",
|
|
[906] = "Arathi Highlands",
|
|
[907] = "Seething Shore",
|
|
[908] = "Ruins of Lordaeron",
|
|
[909] = "Antorus, the Burning Throne",
|
|
[910] = "Antorus, the Burning Throne",
|
|
[911] = "Antorus, the Burning Throne",
|
|
[912] = "Antorus, the Burning Throne",
|
|
[913] = "Antorus, the Burning Throne",
|
|
[914] = "Antorus, the Burning Throne",
|
|
[915] = "Antorus, the Burning Throne",
|
|
[916] = "Antorus, the Burning Throne",
|
|
[917] = "Antorus, the Burning Throne",
|
|
[918] = "Antorus, the Burning Throne",
|
|
[919] = "Antorus, the Burning Throne",
|
|
[920] = "Antorus, the Burning Throne",
|
|
[921] = "Invasion Point: Aurinor",
|
|
[922] = "Invasion Point: Bonich",
|
|
[923] = "Invasion Point: Cen'gar",
|
|
[924] = "Invasion Point: Naigtal",
|
|
[925] = "Invasion Point: Sangua",
|
|
[926] = "Invasion Point: Val",
|
|
[927] = "Greater Invasion Point: Pit Lord Vilemus",
|
|
[928] = "Greater Invasion Point: Mistress Alluradel",
|
|
[929] = "Greater Invasion Point: Matron Folnuna",
|
|
[930] = "Greater Invasion Point: Inquisitor Meto",
|
|
[931] = "Greater Invasion Point: Sotanathor",
|
|
[932] = "Greater Invasion Point: Occularus",
|
|
[933] = "Forge of Aeons",
|
|
[934] = "Atal'Dazar",
|
|
[935] = "Atal'Dazar",
|
|
[936] = "Freehold",
|
|
[938] = "Gilneas Island",
|
|
[939] = "Tropical Isle 8.0",
|
|
[940] = "The Vindicaar",
|
|
[941] = "The Vindicaar",
|
|
[942] = "Stormsong Valley",
|
|
[943] = "Arathi Highlands",
|
|
[946] = "Cosmic",
|
|
[947] = "Azeroth",
|
|
[948] = "The Maelstrom",
|
|
[971] = "Telogrus Rift",
|
|
[972] = "Telogrus Rift",
|
|
[973] = "The Sunwell",
|
|
[974] = "Tol Dagor",
|
|
[975] = "Tol Dagor",
|
|
[976] = "Tol Dagor",
|
|
[977] = "Tol Dagor",
|
|
[978] = "Tol Dagor",
|
|
[979] = "Tol Dagor",
|
|
[980] = "Tol Dagor",
|
|
[981] = "Un'gol Ruins",
|
|
[985] = "Eastern Kingdoms",
|
|
[986] = "Kalimdor",
|
|
[987] = "Outland",
|
|
[988] = "Northrend",
|
|
[989] = "Pandaria",
|
|
[990] = "Draenor",
|
|
[991] = "Zandalar",
|
|
[992] = "Kul Tiras",
|
|
[993] = "Broken Isles",
|
|
[994] = "Argus",
|
|
[997] = "Tirisfal Glades",
|
|
[998] = "Undercity",
|
|
[1004] = "Kings' Rest",
|
|
[1009] = "Atul'Aman",
|
|
[1010] = "The MOTHERLODE!!",
|
|
[1011] = "Zandalar",
|
|
[1012] = "Stormwind City",
|
|
[1013] = "The Stockade",
|
|
[1014] = "Kul Tiras",
|
|
[1015] = "Waycrest Manor",
|
|
[1016] = "Waycrest Manor",
|
|
[1017] = "Waycrest Manor",
|
|
[1018] = "Waycrest Manor",
|
|
[1021] = "Chamber of Heart",
|
|
[1022] = "Uncharted Island",
|
|
[1029] = "Waycrest Manor",
|
|
[1030] = "Greymane Manor",
|
|
[1031] = "Greymane Manor",
|
|
[1032] = "Skittering Hollow",
|
|
[1033] = "The Rotting Mire",
|
|
[1034] = "Verdant Wilds",
|
|
[1035] = "Molten Cay",
|
|
[1036] = "The Dread Chain",
|
|
[1037] = "Whispering Reef",
|
|
[1038] = "Temple of Sethraliss",
|
|
[1039] = "Shrine of the Storm",
|
|
[1040] = "Shrine of the Storm",
|
|
[1041] = "The Underrot",
|
|
[1042] = "The Underrot",
|
|
[1043] = "Temple of Sethraliss",
|
|
[1044] = "Arathi Highlands",
|
|
[1045] = "Thros, The Blighted Lands",
|
|
[1148] = "Uldir",
|
|
[1149] = "Uldir",
|
|
[1150] = "Uldir",
|
|
[1151] = "Uldir",
|
|
[1152] = "Uldir",
|
|
[1153] = "Uldir",
|
|
[1154] = "Uldir",
|
|
[1155] = "Uldir",
|
|
[1156] = "The Great Sea",
|
|
[1157] = "The Great Sea",
|
|
[1158] = "Arathi Highlands",
|
|
[1159] = "Blackrock Depths",
|
|
[1160] = "Blackrock Depths",
|
|
[1161] = "Boralus",
|
|
[1162] = "Siege of Boralus",
|
|
[1163] = "Dazar'alor",
|
|
[1164] = "Dazar'alor",
|
|
[1165] = "Dazar'alor",
|
|
[1166] = "Zanchul",
|
|
[1167] = "Zanchul",
|
|
[1169] = "Tol Dagor",
|
|
[1170] = "Gorgrond - Mag'har Scenario",
|
|
[1171] = "Gol Thovas",
|
|
[1172] = "Gol Thovas",
|
|
[1173] = "Rastakhan's Might",
|
|
[1174] = "Rastakhan's Might",
|
|
[1176] = "Breath Of Pa'ku",
|
|
[1177] = "Breath Of Pa'ku",
|
|
[1179] = "Abyssal Melody",
|
|
[1180] = "Abyssal Melody",
|
|
[1181] = "Zuldazar",
|
|
[1182] = "Saltstone Mine",
|
|
[1183] = "Thornheart",
|
|
[1184] = "Winterchill Mine",
|
|
[1185] = "Winterchill Mine",
|
|
[1186] = "Blackrock Depths",
|
|
[1187] = "Azsuna",
|
|
[1188] = "Val'sharah",
|
|
[1189] = "Highmountain",
|
|
[1190] = "Stormheim",
|
|
[1191] = "Suramar",
|
|
[1192] = "Broken Shore",
|
|
[1193] = "Zuldazar",
|
|
[1194] = "Nazmir",
|
|
[1195] = "Vol'dun",
|
|
[1196] = "Tiragarde Sound",
|
|
[1197] = "Drustvar",
|
|
[1198] = "Stormsong Valley",
|
|
[1203] = "Darkshore",
|
|
[1208] = "Eastern Kingdoms",
|
|
[1209] = "Kalimdor",
|
|
[1244] = "Arathi Highlands",
|
|
[1245] = "Badlands",
|
|
[1246] = "Blasted Lands",
|
|
[1247] = "Tirisfal Glades",
|
|
[1248] = "Silverpine Forest",
|
|
[1249] = "Western Plaguelands",
|
|
[1250] = "Eastern Plaguelands",
|
|
[1251] = "Hillsbrad Foothills",
|
|
[1252] = "The Hinterlands",
|
|
[1253] = "Dun Morogh",
|
|
[1254] = "Searing Gorge",
|
|
[1255] = "Burning Steppes",
|
|
[1256] = "Elwynn Forest",
|
|
[1257] = "Deadwind Pass",
|
|
[1258] = "Duskwood",
|
|
[1259] = "Loch Modan",
|
|
[1260] = "Redridge Mountains",
|
|
[1261] = "Swamp of Sorrows",
|
|
[1262] = "Westfall",
|
|
[1263] = "Wetlands",
|
|
[1264] = "Stormwind City",
|
|
[1265] = "Ironforge",
|
|
[1266] = "Undercity",
|
|
[1267] = "Eversong Woods",
|
|
[1268] = "Ghostlands",
|
|
[1269] = "Silvermoon City",
|
|
[1270] = "Isle of Quel'Danas",
|
|
[1271] = "Gilneas",
|
|
[1272] = "Vashj'ir",
|
|
[1273] = "Ruins of Gilneas",
|
|
[1274] = "Stranglethorn Vale",
|
|
[1275] = "Twilight Highlands",
|
|
[1276] = "Tol Barad",
|
|
[1277] = "Tol Barad Peninsula",
|
|
[1305] = "Durotar",
|
|
[1306] = "Mulgore",
|
|
[1307] = "Northern Barrens",
|
|
[1308] = "Teldrassil",
|
|
[1309] = "Darkshore",
|
|
[1310] = "Ashenvale",
|
|
[1311] = "Thousand Needles",
|
|
[1312] = "Stonetalon Mountains",
|
|
[1313] = "Desolace",
|
|
[1314] = "Feralas",
|
|
[1315] = "Dustwallow Marsh",
|
|
[1316] = "Tanaris",
|
|
[1317] = "Azshara",
|
|
[1318] = "Felwood",
|
|
[1319] = "Un'Goro Crater",
|
|
[1320] = "Moonglade",
|
|
[1321] = "Silithus",
|
|
[1322] = "Winterspring",
|
|
[1323] = "Thunder Bluff",
|
|
[1324] = "Darnassus",
|
|
[1325] = "Azuremyst Isle",
|
|
[1326] = "The Exodar",
|
|
[1327] = "Bloodmyst Isle",
|
|
[1328] = "Mount Hyjal",
|
|
[1329] = "Southern Barrens",
|
|
[1330] = "Uldum",
|
|
[1331] = "The Exodar",
|
|
[1332] = "Darkshore",
|
|
[1333] = "Darkshore",
|
|
[1334] = "Wintergrasp",
|
|
[1335] = "Cooking: Impossible",
|
|
[1336] = "Havenswood",
|
|
[1337] = "Jorundall",
|
|
[1338] = "Darkshore",
|
|
[1339] = "Warsong Gulch",
|
|
[1343] = "8.1 Darkshore Outdoor Final Phase",
|
|
[1345] = "Crucible of Storms",
|
|
[1346] = "Crucible of Storms",
|
|
[1347] = "Zandalari Treasury",
|
|
[1348] = "Zandalari Treasury",
|
|
[1349] = "Tol Dagor",
|
|
[1350] = "Tol Dagor",
|
|
[1351] = "Tol Dagor",
|
|
[1352] = "Battle of Dazar'alor",
|
|
[1353] = "Battle of Dazar'alor",
|
|
[1354] = "Battle of Dazar'alor",
|
|
[1355] = "Nazjatar",
|
|
[1356] = "Battle of Dazar'alor",
|
|
[1357] = "Battle of Dazar'alor",
|
|
[1358] = "Battle of Dazar'alor",
|
|
[1359] = "Icecrown Citadel",
|
|
[1360] = "Icecrown Citadel",
|
|
[1361] = "OldIronforge",
|
|
[1362] = "Shrine of the Storm",
|
|
[1363] = "Crucible of Storms",
|
|
[1364] = "Battle of Dazar'alor",
|
|
[1366] = "Arathi Basin",
|
|
[1367] = "Battle of Dazar'alor",
|
|
[1371] = "GnomereganA",
|
|
[1372] = "GnomereganB",
|
|
[1374] = "GnomereganD",
|
|
[1375] = "Halls of Stone",
|
|
[1379] = "8.3 Visions of N'Zoth - Prototype",
|
|
[1380] = "GnomereganC",
|
|
[1381] = "Uldir",
|
|
[1382] = "Uldir",
|
|
[1383] = "Arathi Basin",
|
|
[1384] = "Northrend",
|
|
[1396] = "Borean Tundra",
|
|
[1397] = "Dragonblight",
|
|
[1398] = "Grizzly Hills",
|
|
[1399] = "Howling Fjord",
|
|
[1400] = "Icecrown",
|
|
[1401] = "Sholazar Basin",
|
|
[1402] = "The Storm Peaks",
|
|
[1403] = "Zul'Drak",
|
|
[1404] = "Wintergrasp",
|
|
[1405] = "Crystalsong Forest",
|
|
[1406] = "Hrothgar's Landing",
|
|
[1407] = "Prison of Ink",
|
|
[1408] = "Ashran",
|
|
[1409] = "Exile's Reach",
|
|
[1462] = "Mechagon Island",
|
|
[1465] = "Scarlet Halls",
|
|
[1467] = "Outland",
|
|
[1468] = "The Dreamgrove",
|
|
[1469] = "Vision of Orgrimmar",
|
|
[1470] = "Vision of Stormwind",
|
|
[1471] = "Emerald Dreamway",
|
|
[1472] = "The Dragon's Spine",
|
|
[1473] = "Chamber of Heart",
|
|
[1474] = "The Maelstrom - Heart of Azeroth",
|
|
[1475] = "The Emerald Dream",
|
|
[1476] = "Twilight Highlands",
|
|
[1478] = "Ashran",
|
|
[1479] = "Baine Rescue",
|
|
[1490] = "Mechagon",
|
|
[1491] = "Mechagon",
|
|
[1493] = "Mechagon",
|
|
[1494] = "Mechagon",
|
|
[1497] = "Mechagon",
|
|
[1499] = "",
|
|
[1500] = "",
|
|
[1501] = "Crestfall",
|
|
[1502] = "Snowblossom Village",
|
|
[1504] = "Nazjatar",
|
|
[1505] = "Stratholme",
|
|
[1512] = "The Eternal Palace",
|
|
[1513] = "The Eternal Palace",
|
|
[1514] = "The Eternal Palace",
|
|
[1515] = "The Eternal Palace",
|
|
[1516] = "The Eternal Palace",
|
|
[1517] = "The Eternal Palace",
|
|
[1518] = "The Eternal Palace",
|
|
[1519] = "The Eternal Palace",
|
|
[1520] = "The Eternal Palace",
|
|
[1521] = "Karazhan Catacombs",
|
|
[1522] = "Crumbling Cavern",
|
|
[1523] = "Solesa Naksu [DNT]",
|
|
[1524] = "",
|
|
[1525] = "Revendreth",
|
|
[1527] = "Uldum",
|
|
[1528] = "Nazjatar",
|
|
[1530] = "Vale of Eternal Blossoms",
|
|
[1531] = "Crapopolis",
|
|
[1532] = "Crapopolis",
|
|
[1533] = "Bastion",
|
|
[1534] = "Orgrimmar",
|
|
[1535] = "Durotar",
|
|
[1536] = "Maldraxxus",
|
|
[1537] = "Alterac Valley",
|
|
[1538] = "Blackwing Descent",
|
|
[1539] = "Blackwing Descent",
|
|
[1540] = "Halls of Origination",
|
|
[1541] = "Halls of Origination",
|
|
[1542] = "Halls of Origination",
|
|
[1543] = "The Maw",
|
|
[1544] = "Mogu'shan Palace",
|
|
[1545] = "Mogu'shan Palace",
|
|
[1546] = "Mogu'shan Palace",
|
|
[1547] = "Mogu'shan Vaults",
|
|
[1548] = "Mogu'shan Vaults",
|
|
[1549] = "Mogu'shan Vaults",
|
|
[1550] = "The Shadowlands",
|
|
[1552] = "Caverns of Time",
|
|
[1553] = "Caverns of Time",
|
|
[1554] = "Serpentshrine Cavern",
|
|
[1555] = "Tempest Keep",
|
|
[1556] = "Hyjal Summit",
|
|
[1557] = "Naxxramas",
|
|
[1558] = "Icecrown Citadel",
|
|
[1559] = "The Bastion of Twilight",
|
|
[1560] = "Blackwing Lair",
|
|
[1561] = "Firelands",
|
|
[1563] = "Trial of the Crusader",
|
|
[1565] = "Ardenweald",
|
|
[1569] = "Bastion",
|
|
[1570] = "Vale of Eternal Blossoms",
|
|
[1571] = "Uldum",
|
|
[1573] = "Mechagon City",
|
|
[1574] = "Mechagon City",
|
|
[1576] = "Deepwind Gorge",
|
|
[1577] = "Gilneas City",
|
|
[1578] = "Blackrock Depths",
|
|
[1579] = "Pools Of Power",
|
|
[1580] = "Ny'alotha",
|
|
[1581] = "Ny'alotha",
|
|
[1582] = "Ny'alotha",
|
|
[1590] = "Ny'alotha",
|
|
[1591] = "Ny'alotha",
|
|
[1592] = "Ny'alotha",
|
|
[1593] = "Ny'alotha",
|
|
[1594] = "Ny'alotha",
|
|
[1595] = "Ny'alotha",
|
|
[1596] = "Ny'alotha",
|
|
[1597] = "Ny'alotha",
|
|
[1600] = "Vault of Y'Shaarj",
|
|
[1602] = "Icecrown Citadel",
|
|
[1603] = "Ardenweald",
|
|
[1604] = "Chamber Of Heart",
|
|
[1609] = "Darkmaul Citadel",
|
|
[1610] = "Darkmaul Citadel",
|
|
[1611] = "Dark Citadel",
|
|
[1614] = "JT_New_A",
|
|
[1615] = "TG10_Floor [Deprecated]",
|
|
[1616] = "TG11_Floor [Deprecated]",
|
|
[1617] = "TG12_Floor [Deprecated]",
|
|
[1618] = "Torghast",
|
|
[1619] = "Torghast",
|
|
[1620] = "Torghast",
|
|
[1621] = "Torghast",
|
|
[1623] = "Torghast",
|
|
[1624] = "Torghast",
|
|
[1627] = "Torghast",
|
|
[1628] = "Torghast",
|
|
[1629] = "Torghast",
|
|
[1630] = "Torghast",
|
|
[1631] = "Torghast",
|
|
[1632] = "Torghast",
|
|
[1635] = "Torghast",
|
|
[1636] = "Torghast",
|
|
[1641] = "Torghast",
|
|
[1642] = "Val'sharah",
|
|
[1643] = "Ardenweald",
|
|
[1644] = "Ember Court",
|
|
[1645] = "Torghast",
|
|
[1647] = "The Shadowlands",
|
|
[1648] = "The Maw",
|
|
[1649] = "Etheric Vault", -- "MAL_Micro_A",
|
|
[1650] = "Sightless Hold", -- "MAL_Micro_B",
|
|
[1651] = "Molten Forge", -- "MAL_Micro_C",
|
|
[1652] = "Vault of Souls", -- "MAL_Micro_D",
|
|
[1656] = "Torghast - Map Floor 10 [Deprecated]",
|
|
[1658] = "Alpha_TG_R02",
|
|
[1659] = "Alpha_TG_R03",
|
|
[1660] = "Alpha_TG_R04",
|
|
[1661] = "Alpha_TG_R05",
|
|
[1662] = "Queen's Conservatory",
|
|
[1663] = "Halls of Atonement",
|
|
[1664] = "Halls of Atonement",
|
|
[1665] = "Halls of Atonement",
|
|
[1666] = "The Necrotic Wake",
|
|
[1667] = "The Necrotic Wake",
|
|
[1668] = "The Necrotic Wake",
|
|
[1669] = "Mists of Tirna Scithe",
|
|
[1670] = "Oribos",
|
|
[1671] = "Oribos",
|
|
[1672] = "Oribos",
|
|
[1673] = "Oribos",
|
|
[1674] = "Plaguefall",
|
|
[1675] = "Sanguine Depths",
|
|
[1676] = "Sanguine Depths",
|
|
[1677] = "De Other Side",
|
|
[1678] = "De Other Side",
|
|
[1679] = "De Other Side",
|
|
[1680] = "De Other Side",
|
|
[1681] = "Icecrown Citadel",
|
|
[1682] = "Icecrown Citadel",
|
|
[1683] = "Theater of Pain",
|
|
[1684] = "Theater of Pain",
|
|
[1685] = "Theater of Pain",
|
|
[1686] = "Theater of Pain",
|
|
[1687] = "Theater of Pain",
|
|
[1688] = "Revendreth",
|
|
[1689] = "Maldraxxus",
|
|
[1690] = "Aspirant's Quarters", -- "Bastion_Micro_A",
|
|
[1691] = "Shattered Grove",
|
|
[1692] = "Spires Of Ascension",
|
|
[1693] = "Spires Of Ascension",
|
|
[1694] = "Spires Of Ascension",
|
|
[1695] = "Spires Of Ascension",
|
|
[1697] = "Plaguefall",
|
|
[1698] = "Seat of the Primus",
|
|
[1699] = "Sinfall",
|
|
[1700] = "Sinfall",
|
|
[1701] = "Heart of the Forest",
|
|
[1702] = "Heart of the Forest",
|
|
[1703] = "Heart of the Forest",
|
|
[1705] = "Torghast - Entrance",
|
|
[1707] = "Elysian Hold",
|
|
[1708] = "Elysian Hold",
|
|
[1709] = "Ardenweald",
|
|
[1711] = "Ascension Coliseum",
|
|
[1712] = "Torghast",
|
|
[1713] = "Path of Wisdom", -- "Bastion_Micro_C",
|
|
[1714] = "Third Chamber of Kalliope", -- "Bastion_Micro_B",
|
|
[1715] = "Vestibule Of Eternity",
|
|
[1716] = "Torghast - Map Floor 22",
|
|
[1717] = "Chill's Reach",
|
|
[1720] = "Covenant_Ard_Torghast",
|
|
[1721] = "Torghast",
|
|
[1724] = "Vortrexxis", -- "Necropolis_Vortrexxis",
|
|
[1725] = "Necropolis_Zerekriss",
|
|
[1726] = "The North Sea",
|
|
[1727] = "The North Sea",
|
|
[1728] = "The Runecarver",
|
|
[1734] = "Revendreth",
|
|
[1735] = "Castle Nathria",
|
|
[1736] = "Torghast",
|
|
[1738] = "Revendreth",
|
|
[1739] = "Ardenweald",
|
|
[1740] = "Ardenweald",
|
|
[1741] = "Maldraxxus",
|
|
[1742] = "Revendreth",
|
|
[1744] = "Castle Nathria",
|
|
[1745] = "Castle Nathria",
|
|
[1746] = "Castle Nathria",
|
|
[1747] = "Castle Nathria",
|
|
[1748] = "Castle Nathria",
|
|
[1749] = "Torghast",
|
|
[1750] = "Castle Nathria",
|
|
[1751] = "Torghast",
|
|
[1752] = "Torghast",
|
|
[1753] = "Torghast",
|
|
[1754] = "Torghast",
|
|
[1755] = "Castle Nathria",
|
|
[1756] = "Torghast",
|
|
[1757] = "Torghast",
|
|
[1758] = "Torghast",
|
|
[1759] = "Torghast",
|
|
[1760] = "Torghast",
|
|
[1761] = "Torghast",
|
|
[1762] = "Torghast, Tower of the Damned",
|
|
[1763] = "Torghast",
|
|
[1764] = "Torghast",
|
|
[1765] = "Torghast",
|
|
[1766] = "Torghast",
|
|
[1767] = "Torghast",
|
|
[1768] = "Torghast",
|
|
[1769] = "Torghast",
|
|
[1770] = "Torghast",
|
|
[1771] = "Torghast",
|
|
[1772] = "Torghast",
|
|
[1773] = "Torghast",
|
|
[1774] = "Torghast",
|
|
[1775] = "Torghast",
|
|
[1776] = "Torghast",
|
|
[1777] = "Torghast",
|
|
[1778] = "Torghast",
|
|
[1779] = "Torghast",
|
|
[1780] = "Torghast",
|
|
[1781] = "Torghast",
|
|
[1782] = "Torghast",
|
|
[1783] = "Torghast",
|
|
[1784] = "Torghast",
|
|
[1785] = "Torghast",
|
|
[1786] = "Torghast",
|
|
[1787] = "Torghast",
|
|
[1788] = "Torghast",
|
|
[1789] = "Torghast",
|
|
[1791] = "Torghast",
|
|
[1792] = "Torghast",
|
|
[1793] = "Torghast",
|
|
[1794] = "Torghast",
|
|
[1795] = "Torghast",
|
|
[1796] = "Torghast",
|
|
[1797] = "Torghast",
|
|
[1798] = "Torghast",
|
|
[1799] = "Torghast",
|
|
[1800] = "Torghast",
|
|
[1801] = "Torghast",
|
|
[1802] = "Torghast",
|
|
[1803] = "Torghast",
|
|
[1804] = "Torghast",
|
|
[1805] = "Torghast",
|
|
[1806] = "Torghast",
|
|
[1807] = "Torghast",
|
|
[1808] = "Torghast",
|
|
[1809] = "Torghast",
|
|
[1810] = "Torghast",
|
|
[1811] = "Torghast",
|
|
[1812] = "Torghast",
|
|
[1813] = "Bastion",
|
|
[1814] = "Maldraxxus",
|
|
[1816] = "Claw's Edge", -- "Ardenweald_Micro_A",
|
|
[1818] = "Tirna Vaal", -- "Ardenweald_Micro_C",
|
|
[1819] = "Fungal Terminus", -- "Ardenweald_Mushroom_A",
|
|
[1820] = "Pit of Anguish", -- "Maw_Micro_PitOfAnguish_A",
|
|
[1821] = "Pit of Anguish", -- "Maw_Micro_PitOfAnguish_B",
|
|
[1822] = "Extractor's Sanatorium", -- "Maw_Micro_Tremaculum",
|
|
[1823] = "Altar of Domination", -- "Maw_Micro_Domination",
|
|
[1824] = "Matriarch's Den", -- "Ardenweald_Micro_D",
|
|
[1825] = "The Root Cellar", -- "Ardenweald_Mushroom_B",
|
|
[1826] = "The Root Cellar", -- "Ardenweald_Mushroom_C",
|
|
[1827] = "The Root Cellar", -- "Ardenweald_Mushroom_D",
|
|
[1828] = "Ardenweald_Mushroom_E",
|
|
[1829] = "Ardenweald_Micro_B",
|
|
[1833] = "Torghast",
|
|
[1834] = "Torghast - Map Floor 24",
|
|
[1835] = "Torghast - Map Floor 25",
|
|
[1836] = "Torghast - Map Floor 26",
|
|
[1837] = "Torghast - Map Floor 27",
|
|
[1838] = "Torghast - Map Floor 41",
|
|
[1839] = "Torghast - Map Floor 28",
|
|
[1840] = "Torghast - Map Floor 40",
|
|
[1841] = "Torghast - Map Floor 39",
|
|
[1842] = "Torghast - Map Floor 29",
|
|
[1843] = "Torghast - Map Floor 38",
|
|
[1844] = "Torghast - Map Floor 32",
|
|
[1845] = "Torghast - Map Floor 31",
|
|
[1846] = "Torghast - Map Floor 33",
|
|
[1847] = "Torghast - Map Floor 34",
|
|
[1848] = "Torghast - Map Floor 14",
|
|
[1849] = "Torghast - Map Floor 16",
|
|
[1850] = "Torghast - Map Floor 18",
|
|
[1851] = "Torghast - Map Floor 42",
|
|
[1852] = "Torghast - Map Floor 44",
|
|
[1853] = "Torghast - Map Floor 46",
|
|
[1854] = "Torghast - Map Floor 48",
|
|
[1855] = "Torghast - Map Floor 49",
|
|
[1856] = "Torghast - Map Floor 50",
|
|
[1857] = "Torghast - Map Floor 51",
|
|
[1858] = "Torghast - Map Floor 52",
|
|
[1859] = "Torghast - Map Floor 53",
|
|
[1860] = "Torghast - Map Floor 54",
|
|
[1861] = "Torghast - Map Floor 57",
|
|
[1862] = "Torghast - Map Floor 59",
|
|
[1863] = "Torghast - Map Floor 61",
|
|
[1864] = "Torghast - Map Floor 63",
|
|
[1865] = "Torghast - Map Floor 64",
|
|
[1866] = "Torghast - Map Floor 65",
|
|
[1867] = "Torghast - Map Floor 66",
|
|
[1868] = "Torghast - Map Floor 67",
|
|
[1869] = "Torghast - Map Floor 68",
|
|
[1870] = "Torghast - Map Floor 69",
|
|
[1871] = "Torghast - Map Floor 70",
|
|
[1872] = "Torghast - Map Floor 71",
|
|
[1873] = "Torghast - Map Floor 74",
|
|
[1874] = "Torghast - Map Floor 75",
|
|
[1875] = "Torghast - Map Floor 76",
|
|
[1876] = "Torghast - Map Floor 77",
|
|
[1877] = "Torghast - Map Floor 78",
|
|
[1878] = "Torghast - Map Floor 80",
|
|
[1879] = "Torghast - Map Floor 81",
|
|
[1880] = "Torghast - Map Floor 83",
|
|
[1881] = "Torghast - Map Floor 84",
|
|
[1882] = "Torghast - Map Floor 86",
|
|
[1883] = "Torghast - Map Floor 87",
|
|
[1884] = "Torghast - Map Floor 88",
|
|
[1885] = "Torghast - Map Floor 89",
|
|
[1886] = "Torghast - Map Floor 92",
|
|
[1887] = "Torghast - Map Floor 93",
|
|
[1888] = "Torghast - Map Floor 94",
|
|
[1889] = "Torghast - Map Floor 95",
|
|
[1890] = "Torghast - Map Floor 97",
|
|
[1891] = "Torghast - Map Floor 98",
|
|
[1892] = "Torghast - Map Floor 99",
|
|
[1893] = "Torghast - Map Floor 100",
|
|
[1894] = "Torghast - Map Floor 23",
|
|
[1895] = "Torghast - Map Floor 35",
|
|
[1896] = "Torghast - Map Floor 56",
|
|
[1897] = "Torghast - Map Floor 62",
|
|
[1898] = "Torghast - Map Floor 82",
|
|
[1899] = "Torghast - Map Floor 101",
|
|
[1900] = "Torghast - Map Floor 58",
|
|
[1901] = "Torghast - Map Floor 73",
|
|
[1902] = "Torghast - Map Floor 79",
|
|
[1903] = "Torghast - Map Floor 85",
|
|
[1904] = "Torghast - Map Floor 90",
|
|
[1905] = "Torghast - Map Floor 96",
|
|
[1907] = "Torghast - Map Floor 102",
|
|
[1908] = "Torghast - Map Floor 60",
|
|
[1909] = "Torghast - Map Floor 21",
|
|
[1910] = "Torghast - Map Floor 91",
|
|
[1911] = "Torghast - Entrance",
|
|
[1912] = "The Runecarver",
|
|
[1913] = "Torghast",
|
|
[1914] = "Torghast",
|
|
[1917] = "De Other Side",
|
|
[1920] = "Torghast",
|
|
[1921] = "Torghast",
|
|
[1922] = "Draenor",
|
|
[1923] = "Pandaria",
|
|
[1958] = "Firelands",
|
|
[1959] = "Firelands",
|
|
[1960] = "The Maw",
|
|
[1961] = "Korthia",
|
|
[1962] = "Torghast",
|
|
[1963] = "Torghast",
|
|
[1964] = "Torghast",
|
|
[1965] = "Torghast",
|
|
[1966] = "Torghast",
|
|
[1967] = "Torghast",
|
|
[1968] = "Torghast",
|
|
[1969] = "Torghast",
|
|
[1970] = "Zereth Mortis",
|
|
[1971] = "Skyhold",
|
|
[1974] = "Torghast",
|
|
[1975] = "Torghast",
|
|
[1976] = "Torghast",
|
|
[1977] = "Torghast",
|
|
[1978] = "Dragon Isles",
|
|
[1979] = "Torghast",
|
|
[1980] = "Torghast",
|
|
[1981] = "Torghast",
|
|
[1982] = "Torghast",
|
|
[1983] = "Torghast",
|
|
[1984] = "Torghast",
|
|
[1985] = "Torghast",
|
|
[1986] = "Torghast",
|
|
[1987] = "Torghast",
|
|
[1988] = "Torghast",
|
|
[1989] = "Tazavesh, the Veiled Market",
|
|
[1990] = "Tazavesh, the Veiled Market",
|
|
[1991] = "Tazavesh, the Veiled Market",
|
|
[1992] = "Tazavesh, the Veiled Market",
|
|
[1993] = "Tazavesh, the Veiled Market",
|
|
[1995] = "Tazavesh, the Veiled Market",
|
|
[1996] = "Tazavesh, the Veiled Market",
|
|
[1997] = "Tazavesh, the Veiled Market",
|
|
[1998] = "Sanctum of Domination",
|
|
[1999] = "Sanctum of Domination",
|
|
[2000] = "Sanctum of Domination",
|
|
[2001] = "Sanctum of Domination",
|
|
[2002] = "Sanctum of Domination",
|
|
[2003] = "Sanctum of Domination",
|
|
[2004] = "Sanctum of Domination",
|
|
[2005] = "Ardenweald",
|
|
[2006] = "Cavern of Contemplation",
|
|
[2007] = "Gromit Hollow",
|
|
[2008] = "Chamber of the Sigil",
|
|
[2009] = "TG106_Floor_MM",
|
|
[2010] = "Torghast",
|
|
[2011] = "Torghast",
|
|
[2012] = "Torghast",
|
|
[2016] = "Tazavesh, the Veiled Market",
|
|
[2017] = "Spires of Ascension",
|
|
[2018] = "Spires of Ascension",
|
|
[2019] = "Torghast",
|
|
[2022] = "The Waking Shores",
|
|
[2023] = "Ohn'ahran Plains",
|
|
[2024] = "The Azure Span",
|
|
[2025] = "Thaldraszus",
|
|
[2026] = "The Forbidden Reach",
|
|
[2027] = "Blooming Foundry",
|
|
[2028] = "Locrian Esper",
|
|
[2029] = "Gravid Repose",
|
|
[2030] = "Nexus of Actualization",
|
|
[2031] = "Crypts of the Eternal",
|
|
[2042] = "The Crucible",
|
|
[2046] = "Zereth Mortis",
|
|
[2047] = "Sepulcher of the First Ones",
|
|
[2048] = "Sepulcher of the First Ones",
|
|
[2049] = "Sepulcher of the First Ones",
|
|
[2050] = "Sepulcher of the First Ones",
|
|
[2051] = "Sepulcher of the First Ones",
|
|
[2052] = "Sepulcher of the First Ones",
|
|
[2055] = "Sepulcher of the First Ones",
|
|
[2057] = "Dragon Isles",
|
|
[2059] = "Resonant Peaks",
|
|
[2061] = "Sepulcher of the First Ones",
|
|
[2063] = "Dragon Isles",
|
|
[2066] = "Catalyst Wards",
|
|
[2070] = "Tirisfal Glades",
|
|
[2071] = "Uldaman: Legacy of Tyr",
|
|
[2072] = "Uldaman: Legacy of Tyr",
|
|
[2073] = "The Azure Vault", -- "ArcaneNaxus_A" yes, with typo
|
|
[2074] = "The Azure Vault", -- "ArcaneNexus_B"
|
|
[2075] = "The Azure Vault", -- "ArcaneNexus_C"
|
|
[2076] = "The Azure Vault", -- "ArcaneNexus_D"
|
|
[2077] = "The Azure Vault", -- "ArcaneNexus_E"
|
|
[2080] = "Neltharus", -- "Neltharus_A"
|
|
[2081] = "Neltharus", -- "Neltharus_B"
|
|
[2082] = "Halls Of Infusion", -- "HallsOfInfusion_A"
|
|
[2083] = "Halls Of Infusion", -- "HallsOfInfusion_B"
|
|
[2084] = "The Emerald Dreamway",
|
|
[2085] = "The Primalist Future",
|
|
[2088] = "Pandaren Revolution",
|
|
[2089] = "The Black Empire",
|
|
[2090] = "The Gnoll War",
|
|
[2091] = "War of the Shifting Sands",
|
|
[2092] = "Azmerloth",
|
|
[2093] = "The Nokhud Offensive",
|
|
[2094] = "Ruby Life Pools",
|
|
[2095] = "Ruby Life Pools",
|
|
[2096] = "Brackenhide Hollow",
|
|
[2097] = "Algeth'ar Academy",
|
|
[2098] = "Algeth'ar Academy",
|
|
[2099] = "Algeth'ar Academy",
|
|
[2100] = "The Siege Creche",
|
|
[2101] = "The Support Creche",
|
|
[2102] = "The War Creche",
|
|
[2106] = "Brackenhide Hollow",
|
|
[2107] = "The Forbidden Reach",
|
|
[2109] = "The War Creche",
|
|
[2110] = "The Support Creche",
|
|
[2111] = "The Siege Creche",
|
|
[2112] = "Valdrakken",
|
|
[2118] = "The Forbidden Reach",
|
|
[2119] = "Vault of the Incarnates", -- "PrimalistRaid_A"
|
|
[2120] = "Vault of the Incarnates", -- "PrimalistRaid_B"
|
|
[2121] = "Vault of the Incarnates", -- "PrimalistRaid_C"
|
|
[2122] = "Vault of the Incarnates", -- "PrimalistRaid_D"
|
|
[2123] = "Vault of the Incarnates", -- "PrimalistRaid_E"
|
|
[2124] = "Vault of the Incarnates", -- "PrimalistRaid_G"
|
|
[2125] = "Vault of the Incarnates", -- "PrimalistRaid_H"
|
|
[2126] = "Vault of the Incarnates", -- "PrimalistRaid_F"
|
|
[2127] = "The Waking Shores",
|
|
[2128] = "The Azure Span",
|
|
[2129] = "Ohn'ahran Plains",
|
|
[2130] = "Thaldraszus",
|
|
[2131] = "The Forbidden Reach",
|
|
[2132] = "The Azure Span",
|
|
[2133] = "Zaralek Cavern",
|
|
[2134] = "Valdrakken",
|
|
[2135] = "Valdrakken",
|
|
[2146] = "The Eastern Glades",
|
|
[2147] = "Azeroth",
|
|
[2149] = "Ohn'ahran Plains",
|
|
[2150] = "Dragonskull Island",
|
|
[2151] = "The Forbidden Reach",
|
|
[2154] = "Froststone Vault",
|
|
[2162] = "Alterac Valley",
|
|
[2165] = "The Throughway",
|
|
[2166] = "Aberrus, the Shadowed Crucible",
|
|
[2167] = "Aberrus, the Shadowed Crucible",
|
|
[2168] = "Aberrus, the Shadowed Crucible",
|
|
[2169] = "Aberrus, the Shadowed Crucible",
|
|
[2170] = "Aberrus, the Shadowed Crucible",
|
|
[2171] = "Aberrus, the Shadowed Crucible",
|
|
[2172] = "Aberrus, the Shadowed Crucible",
|
|
[2173] = "Aberrus, the Shadowed Crucible",
|
|
[2174] = "Aberrus, the Shadowed Crucible",
|
|
[2175] = "Zaralek Cavern",
|
|
[2176] = "The Maelstrom",
|
|
[2183] = "The Azure Vault",
|
|
[2184] = "Zaralek Cavern",
|
|
[2190] = "Sanctum of Chronology",
|
|
[2191] = "Millennia's Threshold",
|
|
[2192] = "Locus of Eternity",
|
|
[2193] = "Spoke of Endless Winter",
|
|
[2194] = "Crossroads of Fate",
|
|
[2195] = "Infinite Conflux",
|
|
[2196] = "Twisting Approach",
|
|
[2197] = "Immemorial Battlefield",
|
|
[2198] = "Dawn of the Infinite",
|
|
[2199] = "Tyrhold Reservoir",
|
|
[2200] = "Emerald Dream",
|
|
[2201] = "Azq'roth",
|
|
[2202] = "Azewrath",
|
|
[2203] = "Azmourne",
|
|
[2204] = "Azmerloth",
|
|
[2205] = "Ulderoth",
|
|
[2206] = "A.Z.E.R.O.T.H.",
|
|
[2207] = "The Warlands",
|
|
[2211] = "Aberrus, the Shadowed Crucible",
|
|
[2220] = "The Nighthold",
|
|
[2221] = "The Nighthold",
|
|
[2228] = "The Black Empire",
|
|
[2230] = "Halls Of Valor",
|
|
[2231] = "Halls Of Valor",
|
|
[2232] = "Amirdrassil",
|
|
[2233] = "Amirdrassil",
|
|
[2234] = "Amirdrassil",
|
|
[2235] = "Amirdrassil",
|
|
[2236] = "Amirdrassil",
|
|
[2237] = "Amirdrassil",
|
|
[2238] = "Amirdrassil",
|
|
[2239] = "Amirdrassil",
|
|
[2240] = "Amirdrassil",
|
|
[2241] = "Emerald Dream",
|
|
[2244] = "Amirdrassil",
|
|
[2252] = "Dragon Isles",
|
|
[2253] = "Sor'theril Barrow Den",
|
|
[2254] = "Barrows of Reverie",
|
|
[2257] = "Arathi Highlands",
|
|
[2262] = "Traitor's Rest",
|
|
[2266] = "Millenia's Threshold",
|
|
[2268] = "Amirdrassil",
|
|
}
|
|
|
|
|
|
|
|
|
|
-- These zones are known in LibTourist's zones collection but are not returned by C_Map.GetMapInfo.
|
|
-- The IDs are the areaIDs as used by C_Map.GetAreaInfo. Technically, these IDs are only used to
|
|
-- map different non-English translations to the English ones, within this table.
|
|
local zoneTranslation = {
|
|
enUS = {
|
|
-- Complexes
|
|
[4406] = "The Ring of Valor",
|
|
[3905] = "Coilfang Reservoir",
|
|
[3893] = "Ring of Observance",
|
|
[4024] = "Coldarra",
|
|
|
|
-- Transports
|
|
[72] = "The Dark Portal",
|
|
|
|
-- Dungeons
|
|
[5914] = "Dire Maul - East",
|
|
[5913] = "Dire Maul - North",
|
|
[5915] = "Dire Maul - West",
|
|
[8443] = "Return to Karazhan",
|
|
[12837] = "Spires of Ascension",
|
|
|
|
-- Raids
|
|
[14643] = "Amirdrassil, the Dream's Hope",
|
|
|
|
-- Arenas
|
|
[3698] = "Nagrand Arena", -- was 559
|
|
[3702] = "Blade's Edge Arena", -- was 562
|
|
[4378] = "Dalaran Arena",
|
|
[6732] = "The Tiger's Peak",
|
|
[9279] = "Hook Point",
|
|
[9992] = "Mugambala",
|
|
[10497] = "The Robodrome",
|
|
[14083] = "Enigma Crucible",
|
|
|
|
-- Other
|
|
[3508] = "Amani Pass",
|
|
[3979] = "The Frozen Sea",
|
|
},
|
|
deDE = {
|
|
-- Complexes
|
|
[4406] = "Der Ring der Ehre",
|
|
[3905] = "Der Echsenkessel",
|
|
[3893] = "Ring der Beobachtung",
|
|
[4024] = "Kaltarra",
|
|
|
|
-- Transports
|
|
[72] = "Das Dunkle Portal",
|
|
|
|
-- Dungeons
|
|
[5914] = "Düsterbruch - Ost",
|
|
[5913] = "Düsterbruch - Nord",
|
|
[5915] = "Düsterbruch - West",
|
|
[8443] = "Rückkehr nach Karazhan",
|
|
[12837] = "Spitzen des Aufstiegs",
|
|
|
|
-- Raids
|
|
[14643] = "Amirdrassil, Hoffnung des Traums",
|
|
|
|
-- Arenas
|
|
[3698] = "Arena von Nagrand",
|
|
[3702] = "Arena des Schergrats",
|
|
[4378] = "Arena von Dalaran",
|
|
[6732] = "Der Tigergipfel",
|
|
[9279] = "Das Hakenkap",
|
|
[9992] = "Mugambala",
|
|
[10497] = "Das Robodrom",
|
|
[14083] = "Enigmatiegel",
|
|
|
|
-- Other
|
|
[3508] = "Amanipass",
|
|
[3979] = "Die Gefrorene See",
|
|
},
|
|
esES = {
|
|
-- Complexes
|
|
[4406] = "El Círculo del Valor",
|
|
[3905] = "Reserva Colmillo Torcido",
|
|
[3893] = "Círculo de la Observancia",
|
|
[4024] = "Gelidar",
|
|
|
|
-- Transports
|
|
[72] = "El Portal Oscuro",
|
|
|
|
-- Dungeons
|
|
[5914] = "La Masacre: Este",
|
|
[5913] = "La Masacre: Norte",
|
|
[5915] = "La Masacre: Oeste",
|
|
[8443] = "Regreso a Karazhan",
|
|
[12837] = "Agujas de Ascensión",
|
|
|
|
-- Raids
|
|
[14643] = "Amirdrassil, la Esperanza del Sueño",
|
|
|
|
-- Arenas
|
|
[3698] = "Arena de Nagrand",
|
|
[3702] = "Arena Filospada",
|
|
[4378] = "Arena de Dalaran",
|
|
[6732] = "La Cima del Tigre",
|
|
[9279] = "Puntagarfio",
|
|
[9992] = "Mugambala",
|
|
[10497] = "Robotódromo",
|
|
[14083] = "Crisol Enigma",
|
|
|
|
-- Other
|
|
[3508] = "Paso de Amani",
|
|
[3979] = "El Mar Gélido",
|
|
},
|
|
esMX = {
|
|
-- Complexes
|
|
[4406] = "El Círculo del Valor",
|
|
[3905] = "Reserva Colmillo Torcido",
|
|
[3893] = "Círculo de la Observancia",
|
|
[4024] = "Gelidar",
|
|
|
|
-- Transports
|
|
[72] = "El Portal Oscuro",
|
|
|
|
-- Dungeons
|
|
[5914] = "La Masacre: Este",
|
|
[5913] = "La Masacre: Norte",
|
|
[5915] = "La Masacre: Oeste",
|
|
[8443] = "Regreso a Karazhan",
|
|
[12837] = "Torres de Ascensión",
|
|
|
|
-- Raids
|
|
[14643] = "Amirdrassil, la Esperanza del Sueño",
|
|
|
|
-- Arenas
|
|
[3698] = "Arena de Nagrand",
|
|
[3702] = "Arena Filospada",
|
|
[4378] = "Arena de Dalaran",
|
|
[6732] = "La Cima del Tigre",
|
|
[9279] = "Punta Garfio",
|
|
[9992] = "Mugambala",
|
|
[10497] = "El Robódromo",
|
|
[14083] = "Crisol Enigmático",
|
|
|
|
-- Other
|
|
[3508] = "Paso de Amani",
|
|
[3979] = "El Mar Gélido",
|
|
},
|
|
frFR = {
|
|
-- Complexes
|
|
[4406] = "L’arène des Valeureux",
|
|
[3905] = "Réservoir de Glissecroc",
|
|
[3893] = "Cercle d’observance",
|
|
[4024] = "Frimarra",
|
|
|
|
-- Transports
|
|
[72] = "La porte des Ténèbres",
|
|
|
|
-- Dungeons
|
|
[5914] = "Haches-Tripes - Est",
|
|
[5913] = "Haches-Tripes - Nord",
|
|
[5915] = "Haches-Tripes - Ouest",
|
|
[8443] = "Retour à Karazhan",
|
|
[12837] = "Flèches de l’Ascension",
|
|
|
|
-- Raids
|
|
[14643] = "Amirdrassil, l’Espoir du Rêve",
|
|
|
|
-- Arenas
|
|
[3698] = "Arène de Nagrand",
|
|
[3702] = "Arène des Tranchantes",
|
|
[4378] = "Arène de Dalaran",
|
|
[6732] = "Le croc du Tigre",
|
|
[9279] = "Pointe du Crochet",
|
|
[9992] = "Mugambala",
|
|
[10497] = "Le Robodrome",
|
|
[14083] = "Creuset des Énigmes",
|
|
|
|
-- Other
|
|
[3508] = "Passage des Amani",
|
|
[3979] = "La mer Gelée",
|
|
},
|
|
itIT = {
|
|
-- Complexes
|
|
[4406] = "Arena del Valore",
|
|
[3905] = "Bacino degli Spiraguzza",
|
|
[3893] = "Anello dell'Osservanza",
|
|
[4024] = "Ibernia",
|
|
|
|
-- Transports
|
|
[72] = "Portale Oscuro",
|
|
|
|
-- Dungeons
|
|
[5914] = "Maglio Infausto - Est",
|
|
[5913] = "Maglio Infausto - Nord",
|
|
[5915] = "Maglio Infausto - Ovest",
|
|
[8443] = "Ritorno a Karazhan",
|
|
[12837] = "Guglie dell'Ascensione",
|
|
|
|
-- Raids
|
|
[14643] = "Amirdrassil, Speranza del Sogno",
|
|
|
|
-- Arenas
|
|
[3698] = "Arena di Nagrand",
|
|
[3702] = "Arena di Spinaguzza",
|
|
[4378] = "Arena di Dalaran",
|
|
[6732] = "Picco della Tigre",
|
|
[9279] = "Presidio della Pesca",
|
|
[9992] = "Mugambala",
|
|
[10497] = "Robodromo",
|
|
[14083] = "Crogiolo dell'Enigma",
|
|
|
|
-- Other
|
|
[3508] = "Passo degli Amani",
|
|
[3979] = "Mare Ghiacciato",
|
|
},
|
|
koKR = {
|
|
-- Complexes
|
|
[4406] = "용맹의 투기장",
|
|
[3905] = "갈퀴송곳니 저수지",
|
|
[3893] = "규율의 광장",
|
|
[4024] = "콜다라",
|
|
|
|
-- Transports
|
|
[72] = "어둠의 문",
|
|
|
|
-- Dungeons
|
|
[5914] = "혈투의 전장 - 동쪽",
|
|
[5913] = "혈투의 전장 - 북쪽",
|
|
[5915] = "혈투의 전장 - 서쪽",
|
|
[8443] = "다시 찾은 카라잔",
|
|
[12837] = "승천의 첨탑",
|
|
|
|
-- Raids
|
|
[14643] = "꿈의 희망 아미드랏실",
|
|
|
|
-- Arenas
|
|
[3698] = "나그란드 투기장",
|
|
[3702] = "칼날 산맥 투기장",
|
|
[4378] = "달라란 투기장",
|
|
[6732] = "범의 봉우리",
|
|
[9279] = "갈고리 시장",
|
|
[9992] = "무감발라",
|
|
[10497] = "로봇 전투장",
|
|
[14083] = "수수께끼 도가니",
|
|
|
|
-- Other
|
|
[3508] = "아마니 고개",
|
|
[3979] = "얼어붙은 바다",
|
|
},
|
|
ptBR = {
|
|
-- Complexes
|
|
[4406] = "Ringue dos Valorosos",
|
|
[3905] = "Reservatório Presacurva",
|
|
[3893] = "Círculo da Obediência",
|
|
[4024] = "Gelarra",
|
|
|
|
-- Transports
|
|
[72] = "Portal Negro",
|
|
|
|
-- Dungeons
|
|
[5914] = "Gládio Cruel – Leste",
|
|
[5913] = "Gládio Cruel – Norte",
|
|
[5915] = "Gládio Cruel – Oeste",
|
|
[8443] = "Retorno a Karazhan",
|
|
[12837] = "Torres da Ascensão",
|
|
|
|
-- Raids
|
|
[14643] = "Amirdrassil, a Esperança Onírica", -- TODO: Translate
|
|
|
|
-- Arenas
|
|
[3698] = "Arena de Nagrand",
|
|
[3702] = "Arena da Lâmina Afiada",
|
|
[4378] = "Arena de Dalaran",
|
|
[6732] = "O Pico do Tigre",
|
|
[9279] = "Ponta do Gancho",
|
|
[9992] = "Mugambala",
|
|
[10497] = "Robódromo",
|
|
[14083] = "Crisol do Enigma",
|
|
|
|
-- Other
|
|
[3508] = "Desfiladeiro Amani",
|
|
[3979] = "Mar Congelado",
|
|
},
|
|
zhCN = {
|
|
-- Complexes
|
|
[4406] = "勇气竞技场",
|
|
[3905] = "盘牙水库",
|
|
[3893] = "仪式广场",
|
|
[4024] = "考达拉",
|
|
|
|
-- Transports
|
|
[72] = "黑暗之门",
|
|
|
|
-- Dungeons
|
|
[5914] = "厄运之槌 - 东",
|
|
[5913] = "厄运之槌 - 北",
|
|
[5915] = "厄运之槌 - 西",
|
|
[8443] = "重返卡拉赞",
|
|
[12837] = "晋升高塔",
|
|
|
|
-- Raids
|
|
[14643] = "阿梅达希尔,梦境之愿",
|
|
|
|
-- Arenas
|
|
[3698] = "纳格兰竞技场",
|
|
[3702] = "刀锋山竞技场",
|
|
[4378] = "达拉然竞技场",
|
|
[6732] = "虎踞峰",
|
|
[9279] = "锚角港",
|
|
[9992] = "穆贾巴拉",
|
|
[10497] = "机械天穹",
|
|
[14083] = "迷阵竞技场",
|
|
|
|
-- Other
|
|
[3508] = "阿曼尼小径",
|
|
[3979] = "冰冻之海",
|
|
},
|
|
zhTW = {
|
|
-- Complexes
|
|
[4406] = "勇武競技場",
|
|
[3905] = "盤牙蓄湖",
|
|
[3893] = "儀式競技場",
|
|
[4024] = "凜懼島",
|
|
|
|
-- Transports
|
|
[72] = "黑暗之門",
|
|
|
|
-- Dungeons
|
|
[5914] = "厄運之槌 - 東方",
|
|
[5913] = "厄運之槌 - 北方",
|
|
[5915] = "厄運之槌 - 西方",
|
|
[8443] = "重返卡拉贊",
|
|
[12837] = "晉升之巔",
|
|
|
|
-- Raids
|
|
[14643] = "『夢境希望』埃達希爾",
|
|
|
|
-- Arenas
|
|
[3698] = "納葛蘭競技場",
|
|
[3702] = "劍刃競技場",
|
|
[4378] = "達拉然競技場",
|
|
[6732] = "猛虎峰",
|
|
[9279] = "勾角地",
|
|
[9992] = "穆干巴拉",
|
|
[10497] = "超爆機械鬥場",
|
|
[14083] = "神秘之爐",
|
|
|
|
-- Other
|
|
[3508] = "阿曼尼小徑",
|
|
[3979] = "冰凍之海",
|
|
},
|
|
}
|
|
|
|
-- WoW 10.0.0:
|
|
-- For some instance maps, C_Map.GetMapInfo does not return a localized name but some kind of tag which is the same
|
|
-- for all languages. So, we need to supply our own localizations, taken from the 'AreaTable' table.
|
|
local mapInfoLocalizedNameErrata = {
|
|
enUS = {
|
|
["ArcaneNaxus_A"] = "The Azure Vault", -- mind the typo in the tag name
|
|
["ArcaneNexus_B"] = "The Azure Vault",
|
|
["ArcaneNexus_C"] = "The Azure Vault",
|
|
["ArcaneNexus_D"] = "The Azure Vault",
|
|
["ArcaneNexus_E"] = "The Azure Vault",
|
|
["Neltharus_A"] = "Neltharus",
|
|
["Neltharus_B"] = "Neltharus",
|
|
["HallsOfInfusion_A"] = "Halls Of Infusion",
|
|
["HallsOfInfusion_B"] = "Halls Of Infusion",
|
|
["PrimalistRaid_A"] = "Vault of the Incarnates",
|
|
["PrimalistRaid_B"] = "Vault of the Incarnates",
|
|
["PrimalistRaid_C"] = "Vault of the Incarnates",
|
|
["PrimalistRaid_D"] = "Vault of the Incarnates",
|
|
["PrimalistRaid_E"] = "Vault of the Incarnates",
|
|
["PrimalistRaid_F"] = "Vault of the Incarnates",
|
|
["PrimalistRaid_G"] = "Vault of the Incarnates",
|
|
["PrimalistRaid_H"] = "Vault of the Incarnates",
|
|
},
|
|
deDE = {
|
|
["ArcaneNaxus_A"] = "Das Azurblaue Gewölbe", -- mind the typo in the tag name
|
|
["ArcaneNexus_B"] = "Das Azurblaue Gewölbe",
|
|
["ArcaneNexus_C"] = "Das Azurblaue Gewölbe",
|
|
["ArcaneNexus_D"] = "Das Azurblaue Gewölbe",
|
|
["ArcaneNexus_E"] = "Das Azurblaue Gewölbe",
|
|
["Neltharus_A"] = "Neltharus",
|
|
["Neltharus_B"] = "Neltharus",
|
|
["HallsOfInfusion_A"] = "Hallen der Infusion",
|
|
["HallsOfInfusion_B"] = "Hallen der Infusion",
|
|
["PrimalistRaid_A"] = "Gewölbe der Inkarnationen",
|
|
["PrimalistRaid_B"] = "Gewölbe der Inkarnationen",
|
|
["PrimalistRaid_C"] = "Gewölbe der Inkarnationen",
|
|
["PrimalistRaid_D"] = "Gewölbe der Inkarnationen",
|
|
["PrimalistRaid_E"] = "Gewölbe der Inkarnationen",
|
|
["PrimalistRaid_F"] = "Gewölbe der Inkarnationen",
|
|
["PrimalistRaid_G"] = "Gewölbe der Inkarnationen",
|
|
["PrimalistRaid_H"] = "Gewölbe der Inkarnationen",
|
|
},
|
|
esES = {
|
|
["ArcaneNaxus_A"] = "Cámara Azur", -- mind the typo in the tag name
|
|
["ArcaneNexus_B"] = "Cámara Azur",
|
|
["ArcaneNexus_C"] = "Cámara Azur",
|
|
["ArcaneNexus_D"] = "Cámara Azur",
|
|
["ArcaneNexus_E"] = "Cámara Azur",
|
|
["Neltharus_A"] = "Neltharus",
|
|
["Neltharus_B"] = "Neltharus",
|
|
["HallsOfInfusion_A"] = "Salas de Infusión",
|
|
["HallsOfInfusion_B"] = "Salas de Infusión",
|
|
["PrimalistRaid_A"] = "Cámara de las Encarnaciones",
|
|
["PrimalistRaid_B"] = "Cámara de las Encarnaciones",
|
|
["PrimalistRaid_C"] = "Cámara de las Encarnaciones",
|
|
["PrimalistRaid_D"] = "Cámara de las Encarnaciones",
|
|
["PrimalistRaid_E"] = "Cámara de las Encarnaciones",
|
|
["PrimalistRaid_F"] = "Cámara de las Encarnaciones",
|
|
["PrimalistRaid_G"] = "Cámara de las Encarnaciones",
|
|
["PrimalistRaid_H"] = "Cámara de las Encarnaciones",
|
|
},
|
|
esMX = {
|
|
["ArcaneNaxus_A"] = "La Bóveda Azur", -- mind the typo in the tag name
|
|
["ArcaneNexus_B"] = "La Bóveda Azur",
|
|
["ArcaneNexus_C"] = "La Bóveda Azur",
|
|
["ArcaneNexus_D"] = "La Bóveda Azur",
|
|
["ArcaneNexus_E"] = "La Bóveda Azur",
|
|
["Neltharus_A"] = "Neltharus",
|
|
["Neltharus_B"] = "Neltharus",
|
|
["HallsOfInfusion_A"] = "Salas de Infusión",
|
|
["HallsOfInfusion_B"] = "Salas de Infusión",
|
|
["PrimalistRaid_A"] = "Bóveda de las Encarnaciones",
|
|
["PrimalistRaid_B"] = "Bóveda de las Encarnaciones",
|
|
["PrimalistRaid_C"] = "Bóveda de las Encarnaciones",
|
|
["PrimalistRaid_D"] = "Bóveda de las Encarnaciones",
|
|
["PrimalistRaid_E"] = "Bóveda de las Encarnaciones",
|
|
["PrimalistRaid_F"] = "Bóveda de las Encarnaciones",
|
|
["PrimalistRaid_G"] = "Bóveda de las Encarnaciones",
|
|
["PrimalistRaid_H"] = "Bóveda de las Encarnaciones",
|
|
},
|
|
frFR = {
|
|
["ArcaneNaxus_A"] = "Caveau d’Azur", -- mind the typo in the tag name
|
|
["ArcaneNexus_B"] = "Caveau d’Azur",
|
|
["ArcaneNexus_C"] = "Caveau d’Azur",
|
|
["ArcaneNexus_D"] = "Caveau d’Azur",
|
|
["ArcaneNexus_E"] = "Caveau d’Azur",
|
|
["Neltharus_A"] = "Neltharus",
|
|
["Neltharus_B"] = "Neltharus",
|
|
["HallsOfInfusion_A"] = "Salles de l’Imprégnation",
|
|
["HallsOfInfusion_B"] = "Salles de l’Imprégnation",
|
|
["PrimalistRaid_A"] = "Caveau des Incarnations",
|
|
["PrimalistRaid_B"] = "Caveau des Incarnations",
|
|
["PrimalistRaid_C"] = "Caveau des Incarnations",
|
|
["PrimalistRaid_D"] = "Caveau des Incarnations",
|
|
["PrimalistRaid_E"] = "Caveau des Incarnations",
|
|
["PrimalistRaid_F"] = "Caveau des Incarnations",
|
|
["PrimalistRaid_G"] = "Caveau des Incarnations",
|
|
["PrimalistRaid_H"] = "Caveau des Incarnations",
|
|
},
|
|
itIT = {
|
|
["ArcaneNaxus_A"] = "Cripta Azzurra", -- mind the typo in the tag name
|
|
["ArcaneNexus_B"] = "Cripta Azzurra",
|
|
["ArcaneNexus_C"] = "Cripta Azzurra",
|
|
["ArcaneNexus_D"] = "Cripta Azzurra",
|
|
["ArcaneNexus_E"] = "Cripta Azzurra",
|
|
["Neltharus_A"] = "Neltharus",
|
|
["Neltharus_B"] = "Neltharus",
|
|
["HallsOfInfusion_A"] = "Sale dell'Infusione",
|
|
["HallsOfInfusion_B"] = "Sale dell'Infusione",
|
|
["PrimalistRaid_A"] = "Segrete delle Incarnazioni",
|
|
["PrimalistRaid_B"] = "Segrete delle Incarnazioni",
|
|
["PrimalistRaid_C"] = "Segrete delle Incarnazioni",
|
|
["PrimalistRaid_D"] = "Segrete delle Incarnazioni",
|
|
["PrimalistRaid_E"] = "Segrete delle Incarnazioni",
|
|
["PrimalistRaid_F"] = "Segrete delle Incarnazioni",
|
|
["PrimalistRaid_G"] = "Segrete delle Incarnazioni",
|
|
["PrimalistRaid_H"] = "Segrete delle Incarnazioni",
|
|
},
|
|
koKR = {
|
|
["ArcaneNaxus_A"] = "하늘빛 보관소", -- mind the typo in the tag name
|
|
["ArcaneNexus_B"] = "하늘빛 보관소",
|
|
["ArcaneNexus_C"] = "하늘빛 보관소",
|
|
["ArcaneNexus_D"] = "하늘빛 보관소",
|
|
["ArcaneNexus_E"] = "하늘빛 보관소",
|
|
["Neltharus_A"] = "넬타루스",
|
|
["Neltharus_B"] = "넬타루스",
|
|
["HallsOfInfusion_A"] = "주입의 전당",
|
|
["HallsOfInfusion_B"] = "주입의 전당",
|
|
["PrimalistRaid_A"] = "현신의 금고",
|
|
["PrimalistRaid_B"] = "현신의 금고",
|
|
["PrimalistRaid_C"] = "현신의 금고",
|
|
["PrimalistRaid_D"] = "현신의 금고",
|
|
["PrimalistRaid_E"] = "현신의 금고",
|
|
["PrimalistRaid_F"] = "현신의 금고",
|
|
["PrimalistRaid_G"] = "현신의 금고",
|
|
["PrimalistRaid_H"] = "현신의 금고",
|
|
},
|
|
ptBR = {
|
|
["ArcaneNaxus_A"] = "Câmara Lazúli", -- mind the typo in the tag name
|
|
["ArcaneNexus_B"] = "Câmara Lazúli",
|
|
["ArcaneNexus_C"] = "Câmara Lazúli",
|
|
["ArcaneNexus_D"] = "Câmara Lazúli",
|
|
["ArcaneNexus_E"] = "Câmara Lazúli",
|
|
["Neltharus_A"] = "Neltharus",
|
|
["Neltharus_B"] = "Neltharus",
|
|
["HallsOfInfusion_A"] = "Salões da Infusão",
|
|
["HallsOfInfusion_B"] = "Salões da Infusão",
|
|
["PrimalistRaid_A"] = "Câmara dos Encarnados",
|
|
["PrimalistRaid_B"] = "Câmara dos Encarnados",
|
|
["PrimalistRaid_C"] = "Câmara dos Encarnados",
|
|
["PrimalistRaid_D"] = "Câmara dos Encarnados",
|
|
["PrimalistRaid_E"] = "Câmara dos Encarnados",
|
|
["PrimalistRaid_F"] = "Câmara dos Encarnados",
|
|
["PrimalistRaid_G"] = "Câmara dos Encarnados",
|
|
["PrimalistRaid_H"] = "Câmara dos Encarnados",
|
|
},
|
|
zhCN = {
|
|
["ArcaneNaxus_A"] = "碧蓝魔馆", -- mind the typo in the tag name
|
|
["ArcaneNexus_B"] = "碧蓝魔馆",
|
|
["ArcaneNexus_C"] = "碧蓝魔馆",
|
|
["ArcaneNexus_D"] = "碧蓝魔馆",
|
|
["ArcaneNexus_E"] = "碧蓝魔馆",
|
|
["Neltharus_A"] = "奈萨鲁斯",
|
|
["Neltharus_B"] = "奈萨鲁斯",
|
|
["HallsOfInfusion_A"] = "注能大厅",
|
|
["HallsOfInfusion_B"] = "注能大厅",
|
|
["PrimalistRaid_A"] = "化身巨龙牢窟",
|
|
["PrimalistRaid_B"] = "化身巨龙牢窟",
|
|
["PrimalistRaid_C"] = "化身巨龙牢窟",
|
|
["PrimalistRaid_D"] = "化身巨龙牢窟",
|
|
["PrimalistRaid_E"] = "化身巨龙牢窟",
|
|
["PrimalistRaid_F"] = "化身巨龙牢窟",
|
|
["PrimalistRaid_G"] = "化身巨龙牢窟",
|
|
["PrimalistRaid_H"] = "化身巨龙牢窟",
|
|
},
|
|
zhTW = {
|
|
["ArcaneNaxus_A"] = "蒼藍密庫", -- mind the typo in the tag name
|
|
["ArcaneNexus_B"] = "蒼藍密庫",
|
|
["ArcaneNexus_C"] = "蒼藍密庫",
|
|
["ArcaneNexus_D"] = "蒼藍密庫",
|
|
["ArcaneNexus_E"] = "蒼藍密庫",
|
|
["Neltharus_A"] = "奈薩魯斯堡",
|
|
["Neltharus_B"] = "奈薩魯斯堡",
|
|
["HallsOfInfusion_A"] = "灌注迴廊",
|
|
["HallsOfInfusion_B"] = "灌注迴廊",
|
|
["PrimalistRaid_A"] = "洪荒化身牢獄",
|
|
["PrimalistRaid_B"] = "洪荒化身牢獄",
|
|
["PrimalistRaid_C"] = "洪荒化身牢獄",
|
|
["PrimalistRaid_D"] = "洪荒化身牢獄",
|
|
["PrimalistRaid_E"] = "洪荒化身牢獄",
|
|
["PrimalistRaid_F"] = "洪荒化身牢獄",
|
|
["PrimalistRaid_G"] = "洪荒化身牢獄",
|
|
["PrimalistRaid_H"] = "洪荒化身牢獄",
|
|
},
|
|
}
|
|
|
|
|
|
|
|
|
|
-- =========================================================================
|
|
-- Skill info, by expansion.
|
|
|
|
-- Base skill IDs
|
|
local FISHING_SKILL = 356
|
|
local HERBALISM_SKILL = 182
|
|
local MINING_SKILL = 186
|
|
local SKINNING_SKILL = 393
|
|
|
|
-- Variant Skill IDs, by expansion
|
|
local expansionSkillLineIDs = {
|
|
[1] = { -- Classic (Kalimdor and Eastern Kingdoms)
|
|
[FISHING_SKILL] = 2592,
|
|
[HERBALISM_SKILL] = 2556,
|
|
[MINING_SKILL] = 2572,
|
|
[SKINNING_SKILL] = 2564,
|
|
},
|
|
[2] = { -- Burning Crusade (Outland)
|
|
[FISHING_SKILL] = 2591,
|
|
[HERBALISM_SKILL] = 2555,
|
|
[MINING_SKILL] = 2571,
|
|
[SKINNING_SKILL] = 2563,
|
|
},
|
|
[3] = { -- Wrath of the Lich King (Northrend)
|
|
[FISHING_SKILL] = 2590,
|
|
[HERBALISM_SKILL] = 2554,
|
|
[MINING_SKILL] = 2570,
|
|
[SKINNING_SKILL] = 2562,
|
|
},
|
|
[4] = { -- Cataclysm
|
|
[FISHING_SKILL] = 2589,
|
|
[HERBALISM_SKILL] = 2553,
|
|
[MINING_SKILL] = 2569,
|
|
[SKINNING_SKILL] = 2561,
|
|
},
|
|
[5] = { -- Mists of Pandaria (Pandaria)
|
|
[FISHING_SKILL] = 2588,
|
|
[HERBALISM_SKILL] = 2552,
|
|
[MINING_SKILL] = 2568,
|
|
[SKINNING_SKILL] = 2560,
|
|
},
|
|
[6] = { -- Warlords of Draenor (Draenor)
|
|
[FISHING_SKILL] = 2587,
|
|
[HERBALISM_SKILL] = 2551,
|
|
[MINING_SKILL] = 2567,
|
|
[SKINNING_SKILL] = 2559,
|
|
},
|
|
[7] = { -- Legion (Broken Isles)
|
|
[FISHING_SKILL] = 2586,
|
|
[HERBALISM_SKILL] = 2550,
|
|
[MINING_SKILL] = 2566,
|
|
[SKINNING_SKILL] = 2558,
|
|
},
|
|
[8] = { -- Battle for Azeroth (Kul Tiras and Zandalar)
|
|
[FISHING_SKILL] = 2585,
|
|
[HERBALISM_SKILL] = 2549,
|
|
[MINING_SKILL] = 2565,
|
|
[SKINNING_SKILL] = 2557,
|
|
},
|
|
[9] = { -- Shadowlands
|
|
[FISHING_SKILL] = 2754,
|
|
[HERBALISM_SKILL] = 2760,
|
|
[MINING_SKILL] = 2761,
|
|
[SKINNING_SKILL] = 2762,
|
|
},
|
|
[10] = { -- DragonFlight (Dragon Isles)
|
|
[FISHING_SKILL] = 2826,
|
|
[HERBALISM_SKILL] = 2832,
|
|
[MINING_SKILL] = 2833,
|
|
[SKINNING_SKILL] = 2834,
|
|
},
|
|
}
|
|
|
|
-- 9.0.1: New function using new expansion lookup
|
|
local function GetExpansionIndex(zone)
|
|
local expansionIndex = nil
|
|
if zone then
|
|
local zoneName = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
if zoneName then
|
|
local expansion = expansions[zoneName]
|
|
if expansion then
|
|
expansionIndex = expansionToIndex[expansion]
|
|
end
|
|
end
|
|
end
|
|
return expansionIndex
|
|
end
|
|
|
|
local function GetSkillInfo(skillID, zone)
|
|
local professionName, skillLevel, maxSkillLevel, skillModifier, parentProfessionID
|
|
local mapId = Tourist:GetZoneMapID(zone) or zone
|
|
local expansionIndex = GetExpansionIndex(mapId)
|
|
if expansionIndex then
|
|
local continentSkills = expansionSkillLineIDs[expansionIndex]
|
|
if continentSkills then
|
|
local skillLineID = continentSkills[skillID]
|
|
local professionInfo = C_TradeSkillUI.GetProfessionInfoBySkillLineID(skillLineID)
|
|
if professionInfo then
|
|
professionName = professionInfo.professionName
|
|
skillLevel = professionInfo.skillLevel
|
|
maxSkillLevel = professionInfo.maxSkillLevel
|
|
skillModifier = professionInfo.skillModifier
|
|
parentProfessionID = professionInfo.parentProfessionID
|
|
-- trace("professionName = "..tostring(professionName))
|
|
-- trace("skillLevel = "..tostring(skillLevel))
|
|
-- trace("maxSkillLevel = "..tostring(maxSkillLevel))
|
|
-- trace("skillModifier = "..tostring(skillModifier))
|
|
-- trace("parentProfessionID = "..tostring(parentProfessionID))
|
|
else
|
|
-- trace("No info for skillLineID "..tostring(skillLineID).." (skill "..tostring(skillID)..")")
|
|
end
|
|
end
|
|
end
|
|
return professionName or "", skillLevel or 0, maxSkillLevel or 0, skillModifier or 0, parentProfessionID
|
|
end
|
|
|
|
function Tourist:GetFishingSkillInfo(zone)
|
|
return GetSkillInfo(FISHING_SKILL, zone)
|
|
end
|
|
|
|
function Tourist:GetHerbalismSkillInfo(zone)
|
|
return GetSkillInfo(HERBALISM_SKILL, zone)
|
|
end
|
|
|
|
function Tourist:GetMiningSkillInfo(zone)
|
|
return GetSkillInfo(MINING_SKILL, zone)
|
|
end
|
|
|
|
function Tourist:GetSkinningSkillInfo(zone)
|
|
return GetSkillInfo(SKINNING_SKILL, zone)
|
|
end
|
|
|
|
|
|
|
|
-- ---- Profession Skill API initialization -------
|
|
|
|
local function ProfessionSkillLevelIsMissing(index)
|
|
if not index then return false end -- Not learned
|
|
local name, icon, skillLevel, maxSkillLevel, numAbilities, spelloffset, skillLineID = GetProfessionInfo(index)
|
|
local professionInfo = C_TradeSkillUI.GetProfessionInfoBySkillLineID(skillLineID)
|
|
return (skillLevel > 0 and professionInfo.skillLevel == 0) or not professionInfo
|
|
end
|
|
|
|
local function ProfessionPanelShouldBeOpened()
|
|
local prof1, prof2, archaeology, fishing, cooking = GetProfessions()
|
|
local openPanel = true
|
|
local useProfessionButton
|
|
|
|
trace("p1 = "..tostring(prof1)..", p2 = "..tostring(prof2)..", co = "..tostring(cooking)..", fi = "..tostring(fishing)..", ar = "..tostring(archaeology))
|
|
|
|
-- Look for proof of missing skill levels
|
|
if ProfessionSkillLevelIsMissing(prof1) == false then
|
|
if ProfessionSkillLevelIsMissing(prof2) == false then
|
|
if ProfessionSkillLevelIsMissing(cooking) == false then
|
|
if ProfessionSkillLevelIsMissing(fishing) == false then
|
|
if ProfessionSkillLevelIsMissing(archaeology) == false then
|
|
-- All OK -or- no professions learned
|
|
openPanel = false
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
local buttonName
|
|
-- Always test for button name. Button name being nil means no professions were found,
|
|
-- which can be one of two reasons for openPanel to be false.
|
|
if prof1 then
|
|
buttonName = "PrimaryProfession1SpellButtonBottom"
|
|
elseif prof2 then
|
|
buttonName = "PrimaryProfession2SpellButtonBottom"
|
|
elseif archaeology then
|
|
buttonName = "SecondaryProfession3SpellButtonRight"
|
|
elseif fishing then
|
|
buttonName = "SecondaryProfession2SpellButtonRight"
|
|
elseif cooking then
|
|
buttonName = "SecondaryProfession1SpellButtonRight"
|
|
else
|
|
buttonName = nil
|
|
end
|
|
|
|
return openPanel, buttonName
|
|
end
|
|
|
|
-- parameters
|
|
local psiInterval = .15
|
|
local psiDelay = 10 -- cycles
|
|
local psiMaxCycles = psiDelay + 20
|
|
local psiRetryMax = 3
|
|
-- variables
|
|
local psiTicker
|
|
local psiPhase = 0
|
|
local psiElapsed = 0
|
|
local psiCycle = 0
|
|
local psiButtonName
|
|
local psiRetryCount = 0
|
|
local function ProfessionSkillInit()
|
|
-- Thanks to billtopia for his contribution
|
|
psiElapsed = psiElapsed + psiInterval
|
|
psiCycle = psiCycle + 1
|
|
if psiCycle < psiDelay then
|
|
-- Wait...
|
|
return
|
|
end
|
|
if psiCycle == psiMaxCycles - 1 then
|
|
-- Timeout -> go to 5
|
|
trace(tostring(psiElapsed).." sec: ProfessionSkillInit TIMEOUT at phase "..tostring(psiPhase))
|
|
psiPhase = 5
|
|
else
|
|
trace(tostring(psiElapsed).." sec: ProfessionSkillInit Phase "..tostring(psiPhase))
|
|
end
|
|
|
|
if psiPhase == 0 then
|
|
-- Check if the panel should be opened
|
|
local openPanel, buttonName = ProfessionPanelShouldBeOpened()
|
|
if openPanel == true then
|
|
-- Reason found to open the panel -> continue
|
|
psiButtonName = buttonName
|
|
psiPhase = 1
|
|
else
|
|
if buttonName then
|
|
-- At least one profession found, data present -> exit
|
|
psiPhase = 6
|
|
else
|
|
-- No professions or no data returned by GetProfessionInfo? -> try again to be sure
|
|
psiRetryCount = psiRetryCount + 1
|
|
if psiRetryCount > psiRetryMax then
|
|
-- Probably no professions -> exit
|
|
psiPhase = 6
|
|
end
|
|
end
|
|
end
|
|
trace("openPanel = "..tostring(openPanel)..", button = "..tostring(buttonName))
|
|
elseif psiPhase == 1 then
|
|
-- Mute sounds
|
|
MuteSoundFile(567440) -- sound/interface/iabilitiesopena.ogg
|
|
MuteSoundFile(567496) -- sound/interface/iabilitiesclosea.ogg
|
|
MuteSoundFile(567507) -- sound/interface/ucharactersheetopen.ogg
|
|
MuteSoundFile(567433) -- sound/interface/ucharactersheetclose.ogg
|
|
psiPhase = 2
|
|
elseif psiPhase == 2 then
|
|
-- Open Spellbook
|
|
ToggleSpellBook("professions")
|
|
psiPhase = 3
|
|
elseif psiPhase == 3 then
|
|
-- Open a profession panel, use button selected in phase 0
|
|
local professionButton = _G[psiButtonName]
|
|
if professionButton then
|
|
professionButton:Click()
|
|
end
|
|
SpellBookFrameCloseButton:Click()
|
|
psiPhase = 4
|
|
elseif psiPhase == 4 then
|
|
-- Close profession panel or spellbook
|
|
if SkilletFrameCloseButton then
|
|
SkilletFrameCloseButton:Click()
|
|
psiPhase = 5
|
|
elseif ProfessionsFrame then
|
|
ProfessionsFrame.CloseButton:Click()
|
|
psiPhase = 5
|
|
end
|
|
elseif psiPhase == 5 then
|
|
-- Unmute sounds
|
|
UnmuteSoundFile(567440)
|
|
UnmuteSoundFile(567496)
|
|
UnmuteSoundFile(567507)
|
|
UnmuteSoundFile(567433)
|
|
psiPhase = 6
|
|
elseif psiPhase == 6 then
|
|
-- Exit
|
|
psiTicker:Cancel()
|
|
-- Reset
|
|
psiPhase = 0 -- This allows restarting this procedure. Change to -1 if restarting should be prohibited.
|
|
psiRetryCount = 0
|
|
psiElapsed = 0
|
|
psiCycle = 0
|
|
psiButtonName = nil
|
|
end
|
|
end
|
|
|
|
local function InitializeProfessionSkills()
|
|
psiTicker = C_Timer.NewTicker(psiInterval, ProfessionSkillInit, psiMaxCycles)
|
|
end
|
|
|
|
function Tourist:InitializeProfessionSkills()
|
|
trace("Initializing profession skills...")
|
|
InitializeProfessionSkills()
|
|
end
|
|
|
|
|
|
-- =========================================================================
|
|
|
|
local function CreateLocalizedZoneNameLookups()
|
|
local uiMapID
|
|
local mapInfo
|
|
local localizedZoneName
|
|
local englishZoneName
|
|
|
|
local localizedErrata = mapInfoLocalizedNameErrata[GAME_LOCALE]
|
|
if not localizedErrata then
|
|
localizedErrata = mapInfoLocalizedNameErrata["enUS"]
|
|
end
|
|
|
|
local skip = {
|
|
[2026] = true, -- The Forbidden Reach Deprecated
|
|
}
|
|
|
|
-- 8.0: Use the C_Map API
|
|
-- Note: the loop below is not very sexy but makes sure missing entries in MapIdLookupTable are reported.
|
|
-- It is executed only once, upon initialization.
|
|
for uiMapID = 1, 10000, 1 do
|
|
if not skip[uiMapID] then
|
|
mapInfo = C_Map.GetMapInfo(uiMapID)
|
|
if mapInfo then
|
|
localizedZoneName = mapInfo.name
|
|
if uiMapID == 2026 or uiMapID == 2107 or uiMapID == 2118 or uiMapID == 2131 or uiMapID == 2151 then
|
|
trace(tostring(uiMapID).." = '"..tostring(localizedZoneName).."'")
|
|
end
|
|
if localizedErrata[localizedZoneName] then
|
|
localizedZoneName = localizedErrata[localizedZoneName]
|
|
end
|
|
|
|
englishZoneName = MapIdLookupTable[uiMapID]
|
|
if englishZoneName then
|
|
-- Add combination of English and localized name to lookup tables
|
|
if not BZ[englishZoneName] then
|
|
BZ[englishZoneName] = localizedZoneName
|
|
end
|
|
if not BZR[localizedZoneName] then
|
|
BZR[localizedZoneName] = englishZoneName
|
|
end
|
|
else
|
|
-- Not in lookup
|
|
trace("|r|cffff4422! -- Tourist:|r English name not found in lookup for uiMapID "..tostring(uiMapID).." ("..tostring(localizedZoneName)..")" )
|
|
end
|
|
end
|
|
else
|
|
trace("CreateLocalizedZoneNameLookups skipped uiMapID "..tostring(uiMapID))
|
|
end
|
|
end
|
|
|
|
-- Load from zoneTranslation
|
|
local GAME_LOCALE = GetLocale()
|
|
local translations = zoneTranslation[GAME_LOCALE]
|
|
if not translations then
|
|
translations = zoneTranslation["enUS"]
|
|
end
|
|
for key, localizedZoneName in pairs(translations) do
|
|
local englishName = zoneTranslation["enUS"][key]
|
|
if not BZ[englishName] then
|
|
BZ[englishName] = localizedZoneName
|
|
end
|
|
if not BZR[localizedZoneName] then
|
|
BZR[localizedZoneName] = englishName
|
|
end
|
|
end
|
|
end
|
|
|
|
local function AddDuplicatesToLocalizedLookup()
|
|
BZ[Tourist:GetUniqueEnglishZoneNameForLookup("The Maelstrom", THE_MAELSTROM_MAP_ID)] = Tourist:GetUniqueZoneNameForLookup("The Maelstrom", THE_MAELSTROM_MAP_ID)
|
|
BZR[Tourist:GetUniqueZoneNameForLookup("The Maelstrom", THE_MAELSTROM_MAP_ID)] = Tourist:GetUniqueEnglishZoneNameForLookup("The Maelstrom", THE_MAELSTROM_MAP_ID)
|
|
|
|
BZ[Tourist:GetUniqueEnglishZoneNameForLookup("Nagrand", DRAENOR_MAP_ID)] = Tourist:GetUniqueZoneNameForLookup("Nagrand", DRAENOR_MAP_ID)
|
|
BZR[Tourist:GetUniqueZoneNameForLookup("Nagrand", DRAENOR_MAP_ID)] = Tourist:GetUniqueEnglishZoneNameForLookup("Nagrand", DRAENOR_MAP_ID)
|
|
|
|
BZ[Tourist:GetUniqueEnglishZoneNameForLookup("Shadowmoon Valley", DRAENOR_MAP_ID)] = Tourist:GetUniqueZoneNameForLookup("Shadowmoon Valley", DRAENOR_MAP_ID)
|
|
BZR[Tourist:GetUniqueZoneNameForLookup("Shadowmoon Valley", DRAENOR_MAP_ID)] = Tourist:GetUniqueEnglishZoneNameForLookup("Shadowmoon Valley", DRAENOR_MAP_ID)
|
|
|
|
BZ[Tourist:GetUniqueEnglishZoneNameForLookup("Hellfire Citadel", DRAENOR_MAP_ID)] = Tourist:GetUniqueZoneNameForLookup("Hellfire Citadel", DRAENOR_MAP_ID)
|
|
BZR[Tourist:GetUniqueZoneNameForLookup("Hellfire Citadel", DRAENOR_MAP_ID)] = Tourist:GetUniqueEnglishZoneNameForLookup("Hellfire Citadel", DRAENOR_MAP_ID)
|
|
|
|
BZ[Tourist:GetUniqueEnglishZoneNameForLookup("Dalaran", BROKEN_ISLES_MAP_ID)] = Tourist:GetUniqueZoneNameForLookup("Dalaran", BROKEN_ISLES_MAP_ID)
|
|
BZR[Tourist:GetUniqueZoneNameForLookup("Dalaran", BROKEN_ISLES_MAP_ID)] = Tourist:GetUniqueEnglishZoneNameForLookup("Dalaran", BROKEN_ISLES_MAP_ID)
|
|
end
|
|
|
|
local function tablelength(T)
|
|
local count = 0
|
|
for _ in pairs(T) do count = count + 1 end
|
|
return count
|
|
end
|
|
|
|
local function GetFlightnodeFaction(faction)
|
|
if faction == 0 then
|
|
return "Neutral"
|
|
end
|
|
if faction == 1 then
|
|
return "Horde"
|
|
end
|
|
if faction == 2 then
|
|
return "Alliance"
|
|
else
|
|
return tostring(faction)
|
|
end
|
|
end
|
|
|
|
--[[
|
|
GatherFlightnodeData is called just in time, right before first use, because when LibTourist is being loaded at player logon,
|
|
not all flightpoints are available yet through the C_TaxiMap interface.
|
|
|
|
The FlightnodeLookupTable, which is built during initialization using the hardcoded relationships between zones and nodes,
|
|
contains the flightnode IDs but no values yet. GatherFlightnodeData fills the lookup as much as possible with MapTaxiNodeInfo
|
|
structures retrieved from the C_TaxiMap interface.
|
|
|
|
structure TaxiMap.MapTaxiNodeInfo
|
|
number nodeID -- unique node ID
|
|
table position -- position of the node on the Flight Master's map
|
|
string name -- node name as displayed in game, includes zone name (mostly)
|
|
string atlasName -- atlas object type, includes faction
|
|
Enum.FlightPathFaction faction -- 0 = Neutral, 1 = Horde, 2 = Alliance
|
|
(optional) string textureKitPrefix -- no clue what this is for
|
|
string factionName -- added by LibTourist
|
|
]]--
|
|
|
|
local flightNodeIgnoreList = {
|
|
[2712] = "Immortal Hearth",
|
|
[2714] = "Genesis Cradle Beta",
|
|
[2713] = "Genesis Cradle Alpha",
|
|
[2757] = "Genesis Cradle Omega",
|
|
[2731] = "Domination's Grasp",
|
|
[2715] = "Ephemeral Plains Alpha",
|
|
[2716] = "Ephemeral Plains Omega",
|
|
[2860] = "Aberrus Upper Platform" -- 10.1 UG - Campaign - Ch6 - Aberrus Upper Platform (SMART) (Neutral)
|
|
}
|
|
|
|
local function GatherFlightnodeData()
|
|
local zMapID, zName, nodes, numNodes
|
|
local count = 0
|
|
local errCount = 0
|
|
if gatheringFlightnodes == true then return end
|
|
gatheringFlightnodes = true
|
|
|
|
local missingNodes = {}
|
|
|
|
trace("GatherFlightnodeData...")
|
|
|
|
-- Add node objects from the C_TaxiMap interface to the lookup
|
|
for zMapID = 1, 10000, 1 do
|
|
nodes = C_TaxiMap.GetTaxiNodesForMap(zMapID)
|
|
|
|
if nodes ~= nil then
|
|
numNodes = tablelength(nodes)
|
|
if numNodes > 0 then
|
|
for i, node in ipairs(nodes) do
|
|
if not FlightnodeLookupTable[node.nodeID] then
|
|
if not missingNodes[node.nodeID] and not flightNodeIgnoreList[node.nodeID] then
|
|
trace("|r|cffff4422! -- Tourist: Missing flightnode: ["..tostring(node.nodeID).."] = true, -- "..tostring(node.name).." ("..tostring(GetFlightnodeFaction(node.faction))..")")
|
|
errCount = errCount + 1
|
|
missingNodes[node.nodeID] = node.name
|
|
end
|
|
else
|
|
if FlightnodeLookupTable[node.nodeID] == true then
|
|
count = count + 1
|
|
-- Add faction name
|
|
node["factionName"] = GetFlightnodeFaction(node.faction)
|
|
-- Store node object in lookup
|
|
FlightnodeLookupTable[node.nodeID] = node
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
-- Add hardcoded node-to-zone relations to FlightnodeLookupTable
|
|
local nodesToUpdate = {}
|
|
for zone in Tourist:IterateZones() do
|
|
for node in Tourist:IterateZoneFlightnodes(zone) do
|
|
if FlightnodeLookupTable[node.nodeID] then
|
|
if not nodesToUpdate[node.nodeID] then
|
|
nodesToUpdate[node.nodeID] = {}
|
|
end
|
|
nodesToUpdate[node.nodeID][zone] = true
|
|
else
|
|
trace("|r|cffff4422! -- Tourist: Missing flightnode in lookup: "..tostring(node.nodeID).." = "..tostring(node.name))
|
|
errCount = errCount + 1
|
|
end
|
|
end
|
|
end
|
|
for k, v in pairs(nodesToUpdate) do
|
|
FlightnodeLookupTable[k]["zones"] = v
|
|
end
|
|
|
|
trace("Tourist: Found "..tostring(count).." of "..tostring(tablelength(FlightnodeLookupTable)).." known flight nodes; "..tostring(errCount).." unknown nodes.")
|
|
|
|
flightnodeDataGathered = true
|
|
gatheringFlightnodes = false
|
|
end
|
|
|
|
-- Refreshes the values of the FlightnodeLookupTable
|
|
function Tourist:RefreshFlightNodeData()
|
|
-- Reset lookup
|
|
for k, v in pairs(FlightnodeLookupTable) do
|
|
FlightnodeLookupTable[k] = true
|
|
end
|
|
-- Re-gather data
|
|
GatherFlightnodeData()
|
|
end
|
|
|
|
-- Returns the lookup table with all flightnodes. Key = node ID.
|
|
-- Value is a node struct(see C_Taximap.MapTaxiNodeInfo) if the node could be found by GatherFlightnodeData.
|
|
-- If the node was not returned by C_Taximap, value is true.
|
|
function Tourist:GetFlightnodeLookupTable()
|
|
if flightnodeDataGathered == false then
|
|
GatherFlightnodeData()
|
|
end
|
|
return FlightnodeLookupTable
|
|
end
|
|
|
|
-- Returns a C_Taximap.MapTaxiNodeInfo (with some extra attributes) for the specified nodeID, if available
|
|
function Tourist:GetFlightnode(nodeID)
|
|
local node = Tourist:GetFlightnodeLookupTable()[nodeID]
|
|
if node == true then
|
|
return nil
|
|
else
|
|
return node
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
-- This function replaces the abandoned LibBabble-Zone library and returns a lookup table
|
|
-- containing all zone names (including continents, instances etcetera) where the English
|
|
-- zone name is the key and the localized zone name is the value.
|
|
function Tourist:GetLookupTable()
|
|
return BZ
|
|
end
|
|
|
|
-- This function replaces the abandoned LibBabble-Zone library and returns a lookup table
|
|
-- containing all zone names (including continents, instances etcetera) where the localized
|
|
-- zone name is the key and the English zone name is the value.
|
|
function Tourist:GetReverseLookupTable()
|
|
return BZR
|
|
end
|
|
|
|
-- Returns the lookup table with all uiMapIDs as key and the English zone name as value.
|
|
function Tourist:GetMapIDLookupTable()
|
|
return MapIdLookupTable
|
|
end
|
|
|
|
|
|
|
|
|
|
-- HELPER AND LOOKUP FUNCTIONS -------------------------------------------------------------
|
|
|
|
local function PLAYER_LEVEL_UP(self, level)
|
|
playerLevel = UnitLevel("player")
|
|
|
|
for k in pairs(recZones) do
|
|
recZones[k] = nil
|
|
end
|
|
for k in pairs(recInstances) do
|
|
recInstances[k] = nil
|
|
end
|
|
for k in pairs(cost) do
|
|
cost[k] = nil
|
|
end
|
|
|
|
for zone in pairs(lows) do
|
|
if not self:IsHostile(zone) then
|
|
local low, high, scaled = self:GetLevel(zone)
|
|
if scaled then
|
|
low = scaled
|
|
high = scaled
|
|
end
|
|
|
|
local zoneType = self:GetType(zone)
|
|
if zoneType == "Zone" or zoneType == "PvP Zone" and low and high then
|
|
if low <= playerLevel and playerLevel <= high then
|
|
recZones[zone] = true
|
|
end
|
|
elseif zoneType == "Battleground" and low and high then
|
|
local playerLevel = playerLevel
|
|
if low <= playerLevel and playerLevel <= high then
|
|
recInstances[zone] = true
|
|
end
|
|
elseif zoneType == "Instance" and low and high then
|
|
if low <= playerLevel and playerLevel <= high then
|
|
recInstances[zone] = true
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
-- Public alternative for GetMapContinents, removes the map IDs that were added to its output in WoW 6.0
|
|
-- Note: GetMapContinents has been removed entirely in 8.0
|
|
-- 8.0.1: returns uiMapID as key
|
|
function Tourist:GetMapContinentsAlt()
|
|
local continents = C_Map.GetMapChildrenInfo(COSMIC_MAP_ID, Enum.UIMapType.Continent, true)
|
|
local retValue = {}
|
|
for i, continentInfo in ipairs(continents) do
|
|
--trace("Continent "..tostring(i)..": "..continentInfo.mapID..": ".. continentInfo.name)
|
|
retValue[continentInfo.mapID] = continentInfo.name
|
|
end
|
|
return retValue
|
|
end
|
|
|
|
-- Public Alternative for GetMapZones because GetMapZones does NOT return all zones (as of 6.0.2),
|
|
-- making its output useless as input for SetMapZoom.
|
|
-- Note: GetMapZones has been removed entirely in 8.0, just as SetMapZoom
|
|
-- NOTE: This method does not convert duplicate zone names for lookup in LibTourist,
|
|
-- use GetUniqueZoneNameForLookup for that.
|
|
-- 8.0.1: returns uiMapID as key
|
|
function Tourist:GetMapZonesAlt(continentID)
|
|
if mapZonesByContinentID[continentID] then
|
|
-- Get from cache
|
|
return mapZonesByContinentID[continentID]
|
|
else
|
|
local mapZones = {}
|
|
local recursive = (continentID ~= 947) -- 947 = Azeroth, parent for Nazjatar zone -> get Nazjatar only and not all zones of the Azeroth continents
|
|
local mapChildrenInfo = { C_Map.GetMapChildrenInfo(continentID, Enum.UIMapType.Zone, recursive) }
|
|
for key, zones in pairs(mapChildrenInfo) do -- don't know what this extra table is for
|
|
for zoneIndex, zone in pairs(zones) do
|
|
-- Get the localized zone name
|
|
mapZones[zone.mapID] = zone.name
|
|
end
|
|
end
|
|
|
|
-- Add to cache
|
|
mapZonesByContinentID[continentID] = mapZones
|
|
|
|
return mapZones
|
|
end
|
|
end
|
|
|
|
-- Public alternative for GetMapNameByID (which was removed in 8.0.1),
|
|
-- returns a unique localized zone name to be used to lookup data in LibTourist
|
|
function Tourist:GetMapNameByIDAlt(uiMapID)
|
|
if tonumber(uiMapID) == nil then
|
|
return nil
|
|
end
|
|
|
|
local mapInfo = C_Map.GetMapInfo(uiMapID)
|
|
if mapInfo then
|
|
local zoneName = mapInfo.name
|
|
local continentMapID = Tourist:GetContinentMapID(uiMapID)
|
|
--trace("ContinentMap ID for "..tostring(zoneName).." ("..tostring(uiMapID)..") is "..tostring(continentMapID))
|
|
if uiMapID == THE_MAELSTROM_MAP_ID then
|
|
-- Exception for The Maelstrom continent because GetUniqueZoneNameForLookup excpects the zone name and not the continent name
|
|
return zoneName
|
|
else
|
|
return Tourist:GetUniqueZoneNameForLookup(zoneName, continentMapID)
|
|
end
|
|
else
|
|
return nil
|
|
end
|
|
end
|
|
|
|
-- Returns the uiMapID of the Continent for the given uiMapID
|
|
function Tourist:GetContinentMapID(uiMapID)
|
|
-- First, check the cache, built during initialisation based on the zones returned by GetMapZonesAlt
|
|
local continentMapID = zoneMapIDtoContinentMapID[uiMapID]
|
|
if continentMapID then
|
|
-- Done
|
|
return continentMapID
|
|
end
|
|
|
|
-- Not in cache, look for the continent, searching up through the map hierarchy.
|
|
-- Add the results to the cache to speed up future queries.
|
|
local mapInfo = C_Map.GetMapInfo(uiMapID)
|
|
if not mapInfo or mapInfo.mapType == 0 or mapInfo.mapType == 1 then
|
|
-- No data or Cosmic map or World map
|
|
zoneMapIDtoContinentMapID[uiMapID] = nil
|
|
return nil
|
|
end
|
|
|
|
if mapInfo.mapType == 2 then
|
|
-- Map is a Continent map
|
|
zoneMapIDtoContinentMapID[uiMapID] = mapInfo.mapID
|
|
return mapInfo.mapID
|
|
end
|
|
|
|
local parentMapInfo = C_Map.GetMapInfo(mapInfo.parentMapID)
|
|
if not parentMapInfo then
|
|
-- No parent -> no continent ID
|
|
zoneMapIDtoContinentMapID[uiMapID] = nil
|
|
return nil
|
|
else
|
|
if parentMapInfo.mapType == 2 then
|
|
-- Found the continent
|
|
zoneMapIDtoContinentMapID[uiMapID] = parentMapInfo.mapID
|
|
return parentMapInfo.mapID
|
|
else
|
|
-- Parent is not the Continent -> Search up one level
|
|
return Tourist:GetContinentMapID(parentMapInfo.mapID)
|
|
end
|
|
end
|
|
end
|
|
|
|
-- Returns a unique localized zone name to be used to lookup data in LibTourist,
|
|
-- based on a localized or English zone name
|
|
function Tourist:GetUniqueZoneNameForLookup(zoneName, continentMapID)
|
|
if continentMapID == THE_MAELSTROM_MAP_ID then -- The Maelstrom
|
|
if zoneName == BZ["The Maelstrom"] or zoneName == "The Maelstrom" then
|
|
zoneName = BZ["The Maelstrom"].." ("..ZONE..")"
|
|
end
|
|
end
|
|
if continentMapID == DRAENOR_MAP_ID then -- Draenor
|
|
if zoneName == BZ["Nagrand"] or zoneName == "Nagrand" then
|
|
zoneName = BZ["Nagrand"].." ("..BZ["Draenor"]..")"
|
|
end
|
|
if zoneName == BZ["Shadowmoon Valley"] or zoneName == "Shadowmoon Valley" then
|
|
zoneName = BZ["Shadowmoon Valley"].." ("..BZ["Draenor"]..")"
|
|
end
|
|
if zoneName == BZ["Hellfire Citadel"] or zoneName == "Hellfire Citadel" then
|
|
zoneName = BZ["Hellfire Citadel"].." ("..BZ["Draenor"]..")"
|
|
end
|
|
end
|
|
if continentMapID == BROKEN_ISLES_MAP_ID then -- Broken Isles
|
|
if zoneName == BZ["Dalaran"] or zoneName == "Dalaran" then
|
|
zoneName = BZ["Dalaran"].." ("..BZ["Broken Isles"]..")"
|
|
end
|
|
end
|
|
return zoneName
|
|
end
|
|
|
|
-- Returns a unique English zone name to be used to lookup data in LibTourist,
|
|
-- based on a localized or English zone name
|
|
function Tourist:GetUniqueEnglishZoneNameForLookup(zoneName, continentMapID)
|
|
if continentMapID == THE_MAELSTROM_MAP_ID then -- The Maelstrom
|
|
if zoneName == BZ["The Maelstrom"] or zoneName == "The Maelstrom" then
|
|
zoneName = "The Maelstrom (Zone)"
|
|
end
|
|
end
|
|
if continentMapID == DRAENOR_MAP_ID then -- Draenor
|
|
if zoneName == BZ["Nagrand"] or zoneName == "Nagrand" then
|
|
zoneName = "Nagrand (Draenor)"
|
|
end
|
|
if zoneName == BZ["Shadowmoon Valley"] or zoneName == "Shadowmoon Valley" then
|
|
zoneName = "Shadowmoon Valley (Draenor)"
|
|
end
|
|
if zoneName == BZ["Hellfire Citadel"] or zoneName == "Hellfire Citadel" then
|
|
zoneName = "Hellfire Citadel (Draenor)"
|
|
end
|
|
end
|
|
if continentMapID == BROKEN_ISLES_MAP_ID then -- Broken Isles
|
|
if zoneName == BZ["Dalaran"] or zoneName == "Dalaran" then
|
|
zoneName = "Dalaran (Broken Isles)"
|
|
end
|
|
end
|
|
return zoneName
|
|
end
|
|
|
|
-- Returns the minimum and maximum battle pet levels for the given zone, if the zone is known
|
|
-- and contains battle pets (otherwise returns nil)
|
|
function Tourist:GetBattlePetLevel(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return battlepet_lows[zone], battlepet_highs[zone]
|
|
end
|
|
|
|
-- WoW patch 7.3.5: most zones now scale - within their level range - to the player's level
|
|
function Tourist:GetScaledZoneLevel(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
local playerLvl = playerLevel
|
|
|
|
if playerLvl <= lows[zone] then
|
|
return lows[zone]
|
|
elseif playerLvl >= highs[zone] then
|
|
return highs[zone]
|
|
else
|
|
return playerLvl
|
|
end
|
|
end
|
|
|
|
|
|
-- Formats the minimum and maximum player level for the given zone as "[min]-[max]".
|
|
-- Returns one number if min and max are equal.
|
|
-- Returns an empty string if no player levels are applicable (like in Cities).
|
|
-- If zone is a zone or an instance, the string will be formatted like "[scaled] ([min]-[max])", i.e. "47 (40-60)".
|
|
function Tourist:GetLevelString(zone)
|
|
local lo, hi, scaled = Tourist:GetLevel(zone)
|
|
|
|
if lo and hi then
|
|
if scaled then
|
|
if lo == hi then
|
|
return tostring(scaled).." ("..tostring(lo)..")"
|
|
else
|
|
return tostring(scaled).." ("..tostring(lo).."-"..tostring(hi)..")"
|
|
end
|
|
else
|
|
if lo == hi then
|
|
return tostring(lo)
|
|
else
|
|
return tostring(lo).."-"..tostring(hi)
|
|
end
|
|
end
|
|
else
|
|
return tostring(lo or hi or "")
|
|
end
|
|
end
|
|
|
|
|
|
-- Formats the minimum and maximum battle pet level for the given zone as "min-max".
|
|
-- Returns one number if min and max are equal. Returns an empty string if no battle pet levels are available.
|
|
function Tourist:GetBattlePetLevelString(zone)
|
|
local lo, hi = Tourist:GetBattlePetLevel(zone)
|
|
if lo and hi then
|
|
if lo == hi then
|
|
return tostring(lo)
|
|
else
|
|
return tostring(lo).."-"..tostring(hi)
|
|
end
|
|
else
|
|
return tostring(lo or hi or "")
|
|
end
|
|
end
|
|
|
|
function Tourist:GetChomieTimeActiveExpansion()
|
|
-- ChromieTimeExpansionInfo
|
|
-- id number
|
|
-- name string
|
|
-- description string
|
|
-- mapAtlas string
|
|
-- previewAtlas string
|
|
-- completed boolean
|
|
-- alreadyOn boolean
|
|
|
|
local expansion = nil
|
|
local info = nil
|
|
local ct_expansions = C_ChromieTime.GetChromieTimeExpansionOptions()
|
|
for i, ct_expansionInfo in ipairs(ct_expansions) do
|
|
--trace("CT Expansion "..tostring(ct_expansionInfo.id)..": "..tostring(ct_expansionInfo.name)..": "..tostring(ct_expansionInfo.alreadyOn))
|
|
if ct_expansionInfo.alreadyOn == true then
|
|
info = ct_expansionInfo
|
|
break
|
|
end
|
|
end
|
|
|
|
if info ~= nil then
|
|
expansion = chromieTimeToExpansion[info.id] or UNKNOWN
|
|
end
|
|
|
|
return expansion, info
|
|
end
|
|
|
|
|
|
|
|
|
|
-- Returns the minimum and maximum level for the given zone, instance or battleground.
|
|
-- If zone is a zone or an instance, a third value is returned: the scaled zone level.
|
|
-- This is the level 'presented' to the player when inside the zone. It's calculated by GetScaledZoneLevel.
|
|
function Tourist:GetLevel(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
|
|
if types[zone] == "Battleground" then
|
|
-- Note: Not all BG's start at level 5, but all BG's support players up to MAX_PLAYER_LEVEL.
|
|
|
|
local playerLvl = playerLevel
|
|
if playerLvl <= lows[zone] then
|
|
-- Player is too low level to enter the BG -> return the lowest available bracket
|
|
-- by assuming the player is at the min level required for the BG.
|
|
playerLvl = lows[zone]
|
|
end
|
|
|
|
-- Find the most suitable bracket. Shadowlands assumption: still 5-level brackets
|
|
if playerLvl >= MAX_PLAYER_LEVEL then
|
|
return MAX_PLAYER_LEVEL, MAX_PLAYER_LEVEL, nil
|
|
elseif playerLvl >= 65 then
|
|
return 65, 69, nil
|
|
elseif playerLvl >= 60 then
|
|
return 60, 65, nil
|
|
elseif playerLvl >= 55 then
|
|
return 55, 59, nil
|
|
elseif playerLvl >= 50 then
|
|
return 50, 54, nil
|
|
elseif playerLvl >= 45 then
|
|
return 45, 49, nil
|
|
elseif playerLvl >= 40 then
|
|
return 40, 44, nil
|
|
elseif playerLvl >= 35 then
|
|
return 35, 39, nil
|
|
elseif playerLvl >= 30 then
|
|
return 30, 34, nil
|
|
elseif playerLvl >= 25 then
|
|
return 25, 29, nil
|
|
elseif playerLvl >= 20 then
|
|
return 20, 24, nil
|
|
elseif playerLvl >= 15 then
|
|
return 15, 19, nil
|
|
else
|
|
return 10, 14, nil
|
|
end
|
|
else
|
|
if types[zone] ~= "Arena" and types[zone] ~= "Complex" and types[zone] ~= "City" and types[zone] ~= "Continent" then
|
|
-- Zones and Instances (scaling):
|
|
local low = lows[zone]
|
|
local high = highs[zone]
|
|
|
|
-- Check for active Chromie Time for the zone's expansion
|
|
local expansion = Tourist:GetChomieTimeActiveExpansion()
|
|
if( expansion ~= nil) then
|
|
trace("Active Chromie Time Expansion = '"..tostring(expansion).."'")
|
|
if expansion == expansions[zone] then
|
|
high = 50
|
|
end
|
|
end
|
|
|
|
-- Get effective scaled zone level
|
|
local playerLvl = playerLevel
|
|
local scaled = 0
|
|
if playerLvl <= low then
|
|
scaled = low
|
|
elseif playerLvl >= high then
|
|
scaled = high
|
|
else
|
|
scaled = playerLvl
|
|
end
|
|
if scaled == low and scaled == high then scaled = nil end -- nothing to scale in a one-level bracket (like Suramar)
|
|
return low, high, scaled
|
|
else
|
|
-- Other zones
|
|
return lows[zone], highs[zone], nil
|
|
end
|
|
end
|
|
end
|
|
|
|
-- Returns an r, g and b value representing a color ranging from grey (too low) via
|
|
-- green, yellow and orange to red (too high), depending on the player's battle pet level
|
|
-- within the battle pet level range of the given zone.
|
|
function Tourist:GetBattlePetLevelColor(zone, petLevel)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
local low, high = self:GetBattlePetLevel(zone)
|
|
|
|
return Tourist:CalculateLevelColor(low, high, petLevel)
|
|
end
|
|
|
|
-- Returns an r, g and b value representing a color ranging from grey (too low) via
|
|
-- green, yellow and orange to red (too high), by calling CalculateLevelColor with
|
|
-- the min and max level of the given zone and the current player level.
|
|
-- Note: if zone is a zone or an instance, the zone's scaled level (calculated
|
|
-- by GetScaledZoneLevel) is used instead of it's minimum and maximum level.
|
|
function Tourist:GetLevelColor(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
local low, high, scaled = self:GetLevel(zone)
|
|
|
|
if types[zone] == "Battleground" then
|
|
if playerLevel < low then
|
|
-- player cannot enter the lowest bracket of the BG -> red
|
|
return 1, 0, 0
|
|
end
|
|
end
|
|
|
|
if scaled then
|
|
return Tourist:CalculateLevelColor(scaled, scaled, playerLevel)
|
|
else
|
|
return Tourist:CalculateLevelColor(low, high, playerLevel)
|
|
end
|
|
end
|
|
|
|
-- Returns an r, g and b value representing a color ranging from grey (too low) via
|
|
-- green, yellow and orange to red (too high) depending on the player level within
|
|
-- the given range. Returns white if no level is applicable, like in cities.
|
|
function Tourist:CalculateLevelColor(low, high, currentLevel)
|
|
local midBracket = (low + high) / 2
|
|
|
|
if low <= 0 and high <= 0 then
|
|
-- City or level unknown -> White
|
|
return 1, 1, 1
|
|
elseif currentLevel == low and currentLevel == high then
|
|
-- Exact match, one-level bracket -> Yellow
|
|
return 1, 1, 0
|
|
elseif currentLevel <= low - 3 then
|
|
-- Player is three or more levels short of Low -> Red
|
|
return 1, 0, 0
|
|
elseif currentLevel < low then
|
|
-- Player is two or less levels short of Low -> sliding scale between Red and Orange
|
|
-- Green component goes from 0 to 0.5
|
|
local greenComponent = (currentLevel - low + 3) / 6
|
|
return 1, greenComponent, 0
|
|
elseif currentLevel == low then
|
|
-- Player is at low, at least two-level bracket -> Orange
|
|
return 1, 0.5, 0
|
|
elseif currentLevel < midBracket then
|
|
-- Player is between low and the middle of the bracket -> sliding scale between Orange and Yellow
|
|
-- Green component goes from 0.5 to 1
|
|
local halfBracketSize = (high - low) / 2
|
|
local posInBracketHalf = currentLevel - low
|
|
local greenComponent = 0.5 + (posInBracketHalf / halfBracketSize) * 0.5
|
|
return 1, greenComponent, 0
|
|
elseif currentLevel == midBracket then
|
|
-- Player is at the middle of the bracket -> Yellow
|
|
return 1, 1, 0
|
|
elseif currentLevel < high then
|
|
-- Player is between the middle of the bracket and High -> sliding scale between Yellow and Green
|
|
-- Red component goes from 1 to 0
|
|
local halfBracketSize = (high - low) / 2
|
|
local posInBracketHalf = currentLevel - midBracket
|
|
local redComponent = 1 - (posInBracketHalf / halfBracketSize)
|
|
return redComponent, 1, 0
|
|
elseif currentLevel == high then
|
|
-- Player is at High, at least two-level bracket -> Green
|
|
return 0, 1, 0
|
|
elseif currentLevel < high + 3 then
|
|
-- Player is up to three levels above High -> sliding scale between Green and Gray
|
|
-- Red and Blue components go from 0 to 0.5
|
|
-- Green component goes from 1 to 0.5
|
|
local pos = (currentLevel - high) / 3
|
|
local redAndBlueComponent = pos * 0.5
|
|
local greenComponent = 1 - redAndBlueComponent
|
|
return redAndBlueComponent, greenComponent, redAndBlueComponent
|
|
else
|
|
-- Player is at High + 3 or above -> Gray
|
|
return 0.5, 0.5, 0.5
|
|
end
|
|
end
|
|
|
|
-- Returns an r, g and b value representing a color, depending on the given zone and the current character's faction.
|
|
function Tourist:GetFactionColor(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
|
|
if factions[zone] == "Sanctuary" then
|
|
-- Blue
|
|
return 0.41, 0.8, 0.94
|
|
elseif self:IsPvPZone(zone) then
|
|
-- Orange
|
|
return 1, 0.7, 0
|
|
elseif factions[zone] == (isHorde and "Alliance" or "Horde") then
|
|
-- Red
|
|
return 1, 0, 0
|
|
elseif factions[zone] == (isHorde and "Horde" or "Alliance") then
|
|
-- Green
|
|
return 0, 1, 0
|
|
else
|
|
-- Yellow
|
|
return 1, 1, 0
|
|
end
|
|
end
|
|
|
|
-- Returns an r, g and b value representing a color, depending on the given flight node faction and the current character's faction.
|
|
-- faction can be 0, 1, 2, "Neutral", "Horde" or "Alliance".
|
|
function Tourist:GetFlightnodeFactionColor(faction)
|
|
faction = GetFlightnodeFaction(faction)
|
|
if faction == (isHorde and "Alliance" or "Horde") then
|
|
-- Red (hostile)
|
|
return 1, 0, 0
|
|
elseif faction == (isHorde and "Horde" or "Alliance") then
|
|
-- Green (friendly)
|
|
return 0, 1, 0
|
|
else
|
|
-- Yellow (neutral or unknown)
|
|
return 1, 1, 0
|
|
end
|
|
end
|
|
|
|
-- Returns the width and height of a zone map in game yards. The height is always 2/3 of the width.
|
|
function Tourist:GetZoneYardSize(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return yardWidths[zone], yardHeights[zone]
|
|
end
|
|
|
|
-- Calculates a distance in game yards between point A and point B.
|
|
-- Points A and B can be in different zones but must be on the same continent.
|
|
function Tourist:GetYardDistance(zone1, x1, y1, zone2, x2, y2)
|
|
if tonumber(zone1) == nil then
|
|
-- Not a uiMapID, translate zone name to map ID
|
|
zone1 = Tourist:GetZoneMapID(zone1)
|
|
end
|
|
if tonumber(zone2) == nil then
|
|
-- Not a uiMapID, translate zone name to map ID
|
|
zone2 = Tourist:GetZoneMapID(zone2)
|
|
end
|
|
if zone1 and zone2 then
|
|
return HBD:GetZoneDistance(zone1, x1, y1, zone2, x2, y2)
|
|
else
|
|
return nil, nil, nil
|
|
end
|
|
end
|
|
|
|
-- This function is used to calculate the coordinates of a location in zone1, on the map of zone2.
|
|
-- The zones can be continents (including Azeroth).
|
|
-- The return value can be outside the 0 to 1 range.
|
|
function Tourist:TransposeZoneCoordinate(x, y, zone1, zone2)
|
|
if tonumber(zone1) == nil then
|
|
-- Not a uiMapID, translate zone name to map ID
|
|
zone1 = Tourist:GetZoneMapID(zone1)
|
|
end
|
|
if tonumber(zone2) == nil then
|
|
-- Not a uiMapID, translate zone name to map ID
|
|
zone2 = Tourist:GetZoneMapID(zone2)
|
|
end
|
|
|
|
return HBD:TranslateZoneCoordinates(x, y, zone1, zone2, true) -- True: allow < 0 and > 1
|
|
end
|
|
|
|
-- This function is used to find the actual zone a player is in, including coordinates for that zone, if the current map
|
|
-- is a map that contains the player position, but is not the map of the zone where the player really is.
|
|
-- Return values:
|
|
-- x, y = player position on the most suitable map
|
|
-- zone = the unique localized zone name of the most suitable map
|
|
-- uiMapID = ID of the most suitable map
|
|
function Tourist:GetBestZoneCoordinate()
|
|
local uiMapID = C_Map.GetBestMapForUnit("player")
|
|
|
|
if uiMapID then
|
|
local zone = Tourist:GetMapNameByIDAlt(uiMapID)
|
|
local pos = C_Map.GetPlayerMapPosition(uiMapID, "player")
|
|
if pos then
|
|
return pos.x, pos.y, zone, uiMapID
|
|
else
|
|
return nil, nil, zone, uiMapID
|
|
end
|
|
end
|
|
return nil, nil, nil, nil
|
|
end
|
|
|
|
|
|
local function GetBFAInstanceLow(instanceLow, instanceFaction)
|
|
if (isHorde and instanceFaction == "Horde") or (isHorde == false and instanceFaction == "Alliance") then
|
|
return instanceLow
|
|
else
|
|
-- 'Hostile' instances can be accessed at max BfA level (50)
|
|
return 50
|
|
end
|
|
end
|
|
|
|
local function GetSiegeOfBoralusEntrance()
|
|
if isHorde then
|
|
return { BZ["Tiragarde Sound"], 88.3, 51.0 }
|
|
else
|
|
return { BZ["Tiragarde Sound"], 72.5, 23.6 }
|
|
end
|
|
end
|
|
|
|
local function GetTheMotherlodeEntrance()
|
|
if isHorde then
|
|
return { BZ["Zuldazar"], 56.1, 59.9 }
|
|
else
|
|
return { BZ["Zuldazar"], 39.3, 71.4 }
|
|
end
|
|
end
|
|
|
|
local function retNil()
|
|
return nil
|
|
end
|
|
|
|
local function retOne(object, state)
|
|
if state == object then
|
|
return nil
|
|
else
|
|
return object
|
|
end
|
|
end
|
|
|
|
local function retNormal(t, position)
|
|
return (next(t, position))
|
|
end
|
|
|
|
local function round(num, digits)
|
|
-- banker's rounding
|
|
local mantissa = 10^digits
|
|
local norm = num*mantissa
|
|
norm = norm + 0.5
|
|
local norm_f = math.floor(norm)
|
|
if norm == norm_f and (norm_f % 2) ~= 0 then
|
|
return (norm_f-1)/mantissa
|
|
end
|
|
return norm_f/mantissa
|
|
end
|
|
|
|
local function mysort(a,b)
|
|
if not lows[a] then
|
|
return false
|
|
elseif not lows[b] then
|
|
return true
|
|
else
|
|
local aval, bval = groupSizes[a] or groupMaxSizes[a], groupSizes[b] or groupMaxSizes[b]
|
|
if aval and bval then
|
|
if aval ~= bval then
|
|
return aval < bval
|
|
end
|
|
end
|
|
aval, bval = lows[a], lows[b]
|
|
if aval ~= bval then
|
|
return aval < bval
|
|
end
|
|
aval, bval = highs[a], highs[b]
|
|
if aval ~= bval then
|
|
return aval < bval
|
|
end
|
|
return a < b
|
|
end
|
|
end
|
|
local t = {}
|
|
local function myiter(t)
|
|
local n = t.n
|
|
n = n + 1
|
|
local v = t[n]
|
|
if v then
|
|
t[n] = nil
|
|
t.n = n
|
|
return v
|
|
else
|
|
t.n = nil
|
|
end
|
|
end
|
|
local function flightnodesort(a, b)
|
|
return a.name < b.name
|
|
end
|
|
|
|
function Tourist:IterateZoneInstances(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
local inst = instances[zone]
|
|
|
|
if not inst then
|
|
return retNil
|
|
elseif type(inst) == "table" then
|
|
for k in pairs(t) do
|
|
t[k] = nil
|
|
end
|
|
for k in pairs(inst) do
|
|
t[#t+1] = k
|
|
end
|
|
table.sort(t, mysort)
|
|
t.n = 0
|
|
return myiter, t, nil
|
|
else
|
|
return retOne, inst, nil
|
|
end
|
|
end
|
|
|
|
function Tourist:IterateZoneFlightnodes(zone)
|
|
if flightnodeDataGathered == false then
|
|
GatherFlightnodeData()
|
|
end
|
|
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
local nodes = flightnodes[zone]
|
|
|
|
if not nodes then
|
|
-- No nodes
|
|
return retNil
|
|
elseif type(nodes) == "table" then
|
|
-- Table of node IDs. Check if they have been found by GatherFlightnodeData
|
|
-- If so, the value is a node object, otherwise the value is true
|
|
local foundNodes = {}
|
|
for id, _ in pairs(nodes) do
|
|
if FlightnodeLookupTable[id] ~= true then
|
|
-- FlightnodeLookupTable[id] is an object, use it as key for the iter code below
|
|
foundNodes[FlightnodeLookupTable[id]] = true
|
|
-- else
|
|
--trace("Skipped: "..tostring(id))
|
|
end
|
|
end
|
|
|
|
for k in pairs(t) do
|
|
t[k] = nil
|
|
end
|
|
for k in pairs(foundNodes) do
|
|
t[#t+1] = k
|
|
end
|
|
table.sort(t, flightnodesort)
|
|
t.n = 0
|
|
return myiter, t, nil
|
|
else
|
|
-- Single node ID. Check if it has been found by GatherFlightnodeData
|
|
if FlightnodeLookupTable[nodes] ~= true then
|
|
return retOne, FlightnodeLookupTable[nodes], nil
|
|
else
|
|
-- No data
|
|
return retNil
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
function Tourist:IterateZoneComplexes(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
local compl = zoneComplexes[zone]
|
|
|
|
if not compl then
|
|
return retNil
|
|
elseif type(compl) == "table" then
|
|
for k in pairs(t) do
|
|
t[k] = nil
|
|
end
|
|
for k in pairs(compl) do
|
|
t[#t+1] = k
|
|
end
|
|
table.sort(t, mysort)
|
|
t.n = 0
|
|
return myiter, t, nil
|
|
else
|
|
return retOne, compl, nil
|
|
end
|
|
end
|
|
|
|
function Tourist:GetInstanceZone(instance)
|
|
instance = Tourist:GetMapNameByIDAlt(instance) or instance
|
|
for k, v in pairs(instances) do
|
|
if v then
|
|
if type(v) == "string" then
|
|
if v == instance then
|
|
return k
|
|
end
|
|
else -- table
|
|
for l in pairs(v) do
|
|
if l == instance then
|
|
return k
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function Tourist:GetComplexZone(complex)
|
|
complex = Tourist:GetMapNameByIDAlt(complex) or complex
|
|
for k, v in pairs(zoneComplexes) do
|
|
if v then
|
|
if type(v) == "string" then
|
|
if v == complex then
|
|
return k
|
|
end
|
|
else -- table
|
|
for l in pairs(v) do
|
|
if l == complex then
|
|
return k
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function Tourist:DoesZoneHaveInstances(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return not not instances[zone]
|
|
end
|
|
|
|
function Tourist:DoesZoneHaveFlightnodes(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return not not flightnodes[zone]
|
|
end
|
|
|
|
function Tourist:DoesZoneHaveComplexes(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return not not zoneComplexes[zone]
|
|
end
|
|
|
|
|
|
local zonesInstances
|
|
local function initZonesInstances()
|
|
if not zonesInstances then
|
|
zonesInstances = {}
|
|
for zone, v in pairs(lows) do
|
|
if types[zone] ~= "Transport" and types[zone] ~= "Portal" and types[zone] ~= "Flightpath" and types[zone] ~= "Continent" then
|
|
zonesInstances[zone] = true
|
|
end
|
|
end
|
|
end
|
|
initZonesInstances = nil -- Set function to nil so initialisation is done only once (and just in time)
|
|
end
|
|
|
|
function Tourist:IterateZonesAndInstances()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return retNormal, zonesInstances, nil
|
|
end
|
|
|
|
local function zoneIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and (types[k] == "Instance" or types[k] == "Battleground" or types[k] == "Arena" or types[k] == "Complex") do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateZones()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return zoneIter, nil, nil
|
|
end
|
|
|
|
local function instanceIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and (types[k] ~= "Instance" and types[k] ~= "Battleground" and types[k] ~= "Arena") do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateInstances()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return instanceIter, nil, nil
|
|
end
|
|
|
|
local function bgIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and types[k] ~= "Battleground" do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateBattlegrounds()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return bgIter, nil, nil
|
|
end
|
|
|
|
local function arIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and types[k] ~= "Arena" do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateArenas()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return arIter, nil, nil
|
|
end
|
|
|
|
local function compIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and types[k] ~= "Complex" do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateComplexes()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return compIter, nil, nil
|
|
end
|
|
|
|
local function pvpIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and types[k] ~= "PvP Zone" do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IteratePvPZones()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return pvpIter, nil, nil
|
|
end
|
|
|
|
local function allianceIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and factions[k] ~= "Alliance" do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateAlliance()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return allianceIter, nil, nil
|
|
end
|
|
|
|
local function hordeIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and factions[k] ~= "Horde" do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateHorde()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return hordeIter, nil, nil
|
|
end
|
|
|
|
if isHorde then
|
|
Tourist.IterateFriendly = Tourist.IterateHorde
|
|
Tourist.IterateHostile = Tourist.IterateAlliance
|
|
else
|
|
Tourist.IterateFriendly = Tourist.IterateAlliance
|
|
Tourist.IterateHostile = Tourist.IterateHorde
|
|
end
|
|
|
|
local function sanctIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and factions[k] ~= "Sanctuary" do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateSanctuaries()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return sanctIter, nil, nil
|
|
end
|
|
|
|
local function contestedIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and factions[k] do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateContested()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return contestedIter, nil, nil
|
|
end
|
|
|
|
local function kalimdorIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and continents[k] ~= Kalimdor do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateKalimdor()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return kalimdorIter, nil, nil
|
|
end
|
|
|
|
local function easternKingdomsIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and continents[k] ~= Eastern_Kingdoms do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateEasternKingdoms()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return easternKingdomsIter, nil, nil
|
|
end
|
|
|
|
local function outlandIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and continents[k] ~= Outland do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateOutland()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return outlandIter, nil, nil
|
|
end
|
|
|
|
local function northrendIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and continents[k] ~= Northrend do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateNorthrend()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return northrendIter, nil, nil
|
|
end
|
|
|
|
local function theMaelstromIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and continents[k] ~= The_Maelstrom do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateTheMaelstrom()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return theMaelstromIter, nil, nil
|
|
end
|
|
|
|
local function pandariaIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and continents[k] ~= Pandaria do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IteratePandaria()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return pandariaIter, nil, nil
|
|
end
|
|
|
|
|
|
local function draenorIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and continents[k] ~= Draenor do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateDraenor()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return draenorIter, nil, nil
|
|
end
|
|
|
|
|
|
local function brokenislesIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and continents[k] ~= Broken_Isles do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateBrokenIsles()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return brokenislesIter, nil, nil
|
|
end
|
|
|
|
|
|
local function argusIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and continents[k] ~= Argus do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateArgus()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return argusIter, nil, nil
|
|
end
|
|
|
|
local function zandalarIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and continents[k] ~= Zandalar do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateZandalar()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return zandalarIter, nil, nil
|
|
end
|
|
|
|
local function kultirasIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and continents[k] ~= Kul_Tiras do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateKulTiras()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return kultirasIter, nil, nil
|
|
end
|
|
|
|
local function theShadowlandsIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and continents[k] ~= The_Shadowlands do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateTheShadowlands()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return theShadowlandsIter, nil, nil
|
|
end
|
|
|
|
local function dragonIslesIter(_, position)
|
|
local k = next(zonesInstances, position)
|
|
while k ~= nil and continents[k] ~= Dragon_Isles do
|
|
k = next(zonesInstances, k)
|
|
end
|
|
return k
|
|
end
|
|
function Tourist:IterateDragonIsles()
|
|
if initZonesInstances then
|
|
initZonesInstances()
|
|
end
|
|
return dragonIslesIter, nil, nil
|
|
end
|
|
|
|
|
|
function Tourist:IterateRecommendedZones()
|
|
return retNormal, recZones, nil
|
|
end
|
|
|
|
function Tourist:IterateRecommendedInstances()
|
|
return retNormal, recInstances, nil
|
|
end
|
|
|
|
function Tourist:HasRecommendedInstances()
|
|
return next(recInstances) ~= nil
|
|
end
|
|
|
|
function Tourist:IsInstance(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
local t = types[zone]
|
|
return t == "Instance" or t == "Battleground" or t == "Arena"
|
|
end
|
|
|
|
function Tourist:IsZone(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
local t = types[zone]
|
|
return t and t ~= "Instance" and t ~= "Battleground" and t ~= "Transport" and t ~= "Portal" and t ~= "Flightpath" and t ~= "Arena" and t ~= "Complex"
|
|
end
|
|
|
|
function Tourist:IsContinent(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
local t = types[zone]
|
|
return t == "Continent"
|
|
end
|
|
|
|
function Tourist:GetComplex(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return complexOfInstance[zone]
|
|
end
|
|
|
|
function Tourist:GetExpansion(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return GetExpansionIndex(zone), expansions[zone] or UNKNOWN
|
|
end
|
|
|
|
function Tourist:GetType(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return types[zone] or "Zone"
|
|
end
|
|
|
|
function Tourist:IsZoneOrInstance(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
local t = types[zone]
|
|
return t and t ~= "Transport" and t ~= "Portal" and t~= "Flightpath"
|
|
end
|
|
|
|
function Tourist:IsTransport(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
local t = types[zone]
|
|
return t == "Transport" or t == "Portal" or t == "Flightpath"
|
|
end
|
|
|
|
function Tourist:IsComplex(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
local t = types[zone]
|
|
return t == "Complex"
|
|
end
|
|
|
|
function Tourist:IsBattleground(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
local t = types[zone]
|
|
return t == "Battleground"
|
|
end
|
|
|
|
function Tourist:IsArena(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
local t = types[zone]
|
|
return t == "Arena"
|
|
end
|
|
|
|
function Tourist:IsPvPZone(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
local t = types[zone]
|
|
return t == "PvP Zone"
|
|
end
|
|
|
|
function Tourist:IsCity(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
local t = types[zone]
|
|
return t == "City"
|
|
end
|
|
|
|
function Tourist:IsAlliance(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return factions[zone] == "Alliance"
|
|
end
|
|
|
|
function Tourist:IsHorde(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return factions[zone] == "Horde"
|
|
end
|
|
|
|
if isHorde then
|
|
Tourist.IsFriendly = Tourist.IsHorde
|
|
Tourist.IsHostile = Tourist.IsAlliance
|
|
else
|
|
Tourist.IsFriendly = Tourist.IsAlliance
|
|
Tourist.IsHostile = Tourist.IsHorde
|
|
end
|
|
|
|
function Tourist:IsSanctuary(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return factions[zone] == "Sanctuary"
|
|
end
|
|
|
|
function Tourist:IsContested(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return not factions[zone]
|
|
end
|
|
|
|
function Tourist:GetContinent(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return BZ[continents[zone]] or UNKNOWN
|
|
end
|
|
|
|
function Tourist:IsInKalimdor(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return continents[zone] == Kalimdor
|
|
end
|
|
|
|
function Tourist:IsInEasternKingdoms(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return continents[zone] == Eastern_Kingdoms
|
|
end
|
|
|
|
function Tourist:IsInOutland(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return continents[zone] == Outland
|
|
end
|
|
|
|
function Tourist:IsInNorthrend(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return continents[zone] == Northrend
|
|
end
|
|
|
|
function Tourist:IsInTheMaelstrom(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return continents[zone] == The_Maelstrom
|
|
end
|
|
|
|
function Tourist:IsInPandaria(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return continents[zone] == Pandaria
|
|
end
|
|
|
|
function Tourist:IsInDraenor(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return continents[zone] == Draenor
|
|
end
|
|
|
|
function Tourist:IsInBrokenIsles(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return continents[zone] == Broken_Isles
|
|
end
|
|
|
|
function Tourist:IsInArgus(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return continents[zone] == Argus
|
|
end
|
|
|
|
function Tourist:IsInZandalar(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return continents[zone] == Zandalar
|
|
end
|
|
|
|
function Tourist:IsInKulTiras(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return continents[zone] == Kul_Tiras
|
|
end
|
|
|
|
function Tourist:IsInTheShadowlands(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return continents[zone] == The_Shadowlands
|
|
end
|
|
|
|
function Tourist:IsInDragonIsles(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return continents[zone] == Dragon_Isles
|
|
end
|
|
|
|
function Tourist:GetInstanceGroupSize(instance)
|
|
instance = Tourist:GetMapNameByIDAlt(instance) or instance
|
|
return groupSizes[instance] or groupMaxSizes[instance] or 0
|
|
end
|
|
|
|
function Tourist:GetInstanceGroupMinSize(instance)
|
|
instance = Tourist:GetMapNameByIDAlt(instance) or instance
|
|
return groupMinSizes[instance] or groupSizes[instance] or 0
|
|
end
|
|
|
|
function Tourist:GetInstanceGroupMaxSize(instance)
|
|
instance = Tourist:GetMapNameByIDAlt(instance) or instance
|
|
return groupMaxSizes[instance] or groupSizes[instance] or 0
|
|
end
|
|
|
|
function Tourist:GetInstanceGroupSizeString(instance, includeAltSize)
|
|
instance = Tourist:GetMapNameByIDAlt(instance) or instance
|
|
local retValue
|
|
if groupSizes[instance] then
|
|
-- Fixed size
|
|
retValue = tostring(groupSizes[instance])
|
|
elseif groupMinSizes[instance] and groupMaxSizes[instance] then
|
|
-- Variable size
|
|
if groupMinSizes[instance] == groupMaxSizes[instance] then
|
|
-- ...but equal
|
|
retValue = tostring(groupMinSizes[instance])
|
|
else
|
|
retValue = tostring(groupMinSizes[instance]).."-"..tostring(groupMaxSizes[instance])
|
|
end
|
|
else
|
|
-- No size known
|
|
return ""
|
|
end
|
|
if includeAltSize and groupAltSizes[instance] then
|
|
-- Add second size
|
|
retValue = retValue.." or "..tostring(groupAltSizes[instance])
|
|
end
|
|
return retValue
|
|
end
|
|
|
|
function Tourist:GetInstanceAltGroupSize(instance)
|
|
instance = Tourist:GetMapNameByIDAlt(instance) or instance
|
|
return groupAltSizes[instance] or 0
|
|
end
|
|
|
|
function Tourist:GetTexture(zone)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
return textures[zone]
|
|
end
|
|
|
|
|
|
function Tourist:GetZoneMapID(zone)
|
|
return zoneMapIDs[zone]
|
|
end
|
|
|
|
function Tourist:GetEntrancePortalLocation(instance)
|
|
instance = Tourist:GetMapNameByIDAlt(instance) or instance
|
|
local x, y = entrancePortals_x[instance], entrancePortals_y[instance]
|
|
if x then x = x/100 end
|
|
if y then y = y/100 end
|
|
return entrancePortals_zone[instance], x, y
|
|
end
|
|
|
|
local inf = math.huge
|
|
local stack = setmetatable({}, {__mode='k'})
|
|
local function iterator(S)
|
|
local position = S['#'] - 1
|
|
S['#'] = position
|
|
local x = S[position]
|
|
if not x then
|
|
for k in pairs(S) do
|
|
S[k] = nil
|
|
end
|
|
stack[S] = true
|
|
return nil
|
|
end
|
|
return x
|
|
end
|
|
|
|
setmetatable(cost, {
|
|
__index = function(self, vertex)
|
|
local price = 1
|
|
local allowInaccesible = false -- allow inacessible content (due to player level) and hostile portals, flightpaths (for testing)
|
|
|
|
-- Take player level into account, compared to zone minimum level
|
|
if lows[vertex] > playerLevel then
|
|
price = price * (1 + math.ceil((lows[vertex] - playerLevel) / 6))
|
|
end
|
|
|
|
if factions[vertex] == (isHorde and "Horde" or "Alliance") then
|
|
-- Friendly: 50% off
|
|
price = price / 2
|
|
if types[vertex] == "Flightpath" then
|
|
-- Flightpaths are preferably only to be used when there is no other connection available
|
|
price = price * 10
|
|
end
|
|
elseif factions[vertex] == (isHorde and "Alliance" or "Horde") then
|
|
-- Hostile
|
|
if types[vertex] == "Portal" or types[vertex] == "Flightpath" then
|
|
-- No go
|
|
if allowInaccesible then price = price * 1000 else price = inf end
|
|
else
|
|
if types[vertex] == "City" then
|
|
-- Very dangerous
|
|
price = price * 10
|
|
else
|
|
-- Less dangerous
|
|
price = price * 3
|
|
end
|
|
end
|
|
end
|
|
|
|
if types[vertex] == "Transport" then
|
|
-- Not sure why transports should be more expensive than road connections (to be tuned?)
|
|
price = price * 2
|
|
end
|
|
|
|
-- Avoid using connections to inaccessible continents
|
|
if (continents[vertex] == Outland
|
|
or continents[vertex] == Northrend
|
|
or continents[vertex] == Pandaria
|
|
or continents[vertex] == Draenor
|
|
or continents[vertex] == Broken_Isles
|
|
or continents[vertex] == Zandalar
|
|
or continents[vertex] == Kul_Tiras)
|
|
and playerLevel < 10 then
|
|
if allowInaccesible then price = price * 1000 else price = inf end
|
|
end
|
|
if continents[vertex] == The_Maelstrom and playerLevel < 30 then
|
|
if allowInaccesible then price = price * 1000 else price = inf end
|
|
end
|
|
if continents[vertex] == Argus and playerLevel < 45 then
|
|
if allowInaccesible then price = price * 1000 else price = inf end
|
|
end
|
|
if continents[vertex] == The_Shadowlands and playerLevel < 50 then
|
|
if allowInaccesible then price = price * 1000 else price = inf end
|
|
end
|
|
if continents[vertex] == Dragon_Isles and playerLevel < 60 then
|
|
if allowInaccesible then price = price * 1000 else price = inf end
|
|
end
|
|
|
|
self[vertex] = price
|
|
return price
|
|
end
|
|
})
|
|
|
|
-- This function tries to calculate the most optimal path between alpha and bravo
|
|
-- by foot or ground mount, that is, without using a flying mount or a taxi service (with a few exceptions).
|
|
-- The return value is an iteration that gives a travel advice in the form of a list
|
|
-- of zones, transports and portals to follow in order to get from alpha to bravo.
|
|
-- The function tries to avoid hostile zones by calculating a "price" for each possible
|
|
-- route. The price calculation takes zone level, faction and type into account.
|
|
-- See metatable above for the 'pricing' mechanism.
|
|
function Tourist:IteratePath(alpha, bravo)
|
|
alpha = Tourist:GetMapNameByIDAlt(alpha) or alpha -- departure zone
|
|
bravo = Tourist:GetMapNameByIDAlt(bravo) or bravo -- destination zone
|
|
|
|
if paths[alpha] == nil or paths[bravo] == nil then
|
|
-- departure zone and destination zone must both have at least one path
|
|
return retNil
|
|
end
|
|
|
|
local d = next(stack) or {}
|
|
stack[d] = nil
|
|
local Q = next(stack) or {}
|
|
stack[Q] = nil
|
|
local S = next(stack) or {}
|
|
stack[S] = nil
|
|
local pi = next(stack) or {}
|
|
stack[pi] = nil
|
|
|
|
local inStack = 0
|
|
for vertex, v in pairs(paths) do -- for each zone with at least one path
|
|
d[vertex] = inf -- add to price stack: d[<zone>] = price of the route to get to that zone from alpha, initially infinite
|
|
Q[vertex] = v -- add to zone stack: Q[<zone>] = <path collection>, contains all zones that have one or more paths
|
|
inStack = inStack + 1
|
|
end
|
|
d[alpha] = 0 -- price for departure zone = 0 (no costs to get there)
|
|
|
|
--trace("In stack: "..tostring(inStack).." zones.")
|
|
|
|
local count = 0
|
|
local inCollection = 0
|
|
|
|
while next(Q) do -- do this for each zone as long as there are zones present in the zone stack
|
|
count = count + 1
|
|
|
|
local u -- this will hold the zone name with the lowest price
|
|
local min = inf -- this will hold the lowest price that has been found while searching; initially infinite
|
|
for z in pairs(Q) do -- for each zone currently present in the zone stack
|
|
local value = d[z] -- get price for the route to get to that zone (see note below)
|
|
if value < min then -- compare to find the zone with the lowest price. If a lower price is found:
|
|
min = value -- remember lowest route price so far
|
|
u = z -- remember the zone with the lowest route price so far
|
|
end
|
|
end
|
|
|
|
--trace(tostring(count)..": u = "..tostring(u).." ("..tostring(min)..")")
|
|
|
|
if min == inf then
|
|
--trace("No path - EXIT")
|
|
return retNil -- no zone found for which a price has been determined -> exit and return nil (no path possible between alpha and bravo)
|
|
end
|
|
Q[u] = nil -- remove the zone that came up as cheapest from the stack so it won't be used twice
|
|
if u == bravo then
|
|
--trace("Destination found")
|
|
break -- we have reached our destination zone; stop searching by exiting the 'while next(Q)' loop
|
|
end
|
|
|
|
|
|
-- The very first cycle will result in the departure zone being the cheapest to go to. This zone has price 0, while all other zones are still
|
|
-- priced 'infinite' at this point. The departure zone will then be picked up for processing of its connections (paths).
|
|
--
|
|
-- Each zone that has been processed will be removed from the stack. The departure zone will therefore be the first zone to be removed.
|
|
-- Because every cycle the a zone with the lowest available price is processed, the remaining zones in the stack will always have an equal or
|
|
-- higher price (if not inifinite).
|
|
--
|
|
-- In subsequent cycles, prices will be calculated and set for other zones, causing them to be picked up for processing eventually in later cycles.
|
|
-- The price reflects the costs to reach that zone, originating from the departure zone.
|
|
--
|
|
-- Only zones will be priced, that have a connection with the zone that is being processed (starting with the departure zone).
|
|
-- Prices are only registered when they are lower than the registered price. When this happens the registered price is always 'infinite'.
|
|
-- Because the price of the route keeps increasing, prices are never updated once set. This ensures that the search always moves away from the
|
|
-- departure zone, like an oil stain.
|
|
--
|
|
-- At some point the destination zone will be priced too, if it comes up during the search.
|
|
--
|
|
-- When eventually the destination zone is picked as cheapest one left in the stack, this means that:
|
|
-- a) there is a route between departure and destination, because the destination zone has been priced
|
|
-- b) this route is made up out of the cheapest connections available
|
|
-- As a result, there is no need to continue the search because every other option would be more expensive.
|
|
|
|
|
|
-- process the path connections of the found zone
|
|
local adj = paths[u] -- get the path connections of the zone being processed (adj = adjecent?)
|
|
if type(adj) == "table" then -- multiple paths go from here
|
|
local d_u = d[u] -- current route price: the price of the route to get to the zone being processed
|
|
for v in pairs(adj) do -- for each path that goes from here
|
|
local c = d_u + cost[v] -- add the price of that path to the route price
|
|
|
|
--trace(" d["..tostring(u).."] + cost["..tostring(v).."]: "..tostring(d[u]).." + "..tostring(cost[v]).." = "..tostring(c))
|
|
|
|
-- to debug path errors in data
|
|
-- if v == nil or d[v] == nil or c == nil then
|
|
-- trace("v = "..tostring(v)..", d["..tostring(v).."] = "..tostring(d[v])..", c = "..tostring(c))
|
|
-- end
|
|
|
|
if d[v] > c then -- if the currently known price of this path (initialized at infinite at the beginning) is greater than the calculated price...
|
|
|
|
--trace(" * path to "..tostring(v)..": "..tostring(u).." -> "..tostring(v).." ("..tostring(c).." < "..tostring(d[v])..")")
|
|
|
|
d[v] = c -- - update the price of the path to that zone in the collection of prices
|
|
pi[v] = u -- - store or update how to get there: pi[<path zone name>] = <current zone name>
|
|
|
|
inCollection = inCollection + 1
|
|
else
|
|
--trace(" rejected: "..tostring(u).." -> "..tostring(v).." (because "..tostring(c).." >= "..tostring(d[v]).." (= price of "..tostring(v).."))")
|
|
end
|
|
end
|
|
elseif adj ~= false then -- one path goes from here
|
|
local c = d[u] + cost[adj] -- add the price of that path to the route price
|
|
|
|
--trace(" d["..tostring(u).."] + cost["..tostring(adj).."]: "..tostring(d[u]).." + "..tostring(cost[adj]).." = "..tostring(c))
|
|
|
|
|
|
if d[adj] > c then -- if the the calculated route price for this path is less than the currently known price (initialized at inf at the beginning) is greater than ...
|
|
|
|
--trace(" * path to "..tostring(adj)..": "..tostring(u).." -> "..tostring(adj).." ("..tostring(c).." < "..tostring(d[adj])..")")
|
|
|
|
d[adj] = c -- - update the price of the path to that zone in the collection of prices
|
|
pi[adj] = u -- - store or update how to get there: pi[<path zone name>] = <current zone name>
|
|
|
|
inCollection = inCollection + 1
|
|
else
|
|
--trace(" rejected: "..tostring(u).." -> "..tostring(adj).." (because "..tostring(c).." >= "..tostring(d[adj]).." (= price of "..tostring(adj).."))")
|
|
end
|
|
end
|
|
end
|
|
|
|
--trace("In collection: "..tostring(inCollection))
|
|
|
|
-- At this point, pi will contain a collection of all connections that have been priced, stored as: pi[<you should go here>] = <from here>
|
|
-- Amongst these are the connections that have to be used to create the cheapest route between departure and destination.
|
|
-- Next, the route will be extracted from the data in pi.
|
|
--
|
|
-- The loop below starts at the destination zone and works it way back to the departure zone, asking
|
|
-- "from which direction should I be coming when I arrive here?"
|
|
-- until there is no answer to that question, which will be the case for the departure zone. Technically, the departure zone
|
|
-- has not been priced and is therefore not present in the collection.
|
|
--
|
|
-- The resulting sequence is stored in S[<index>] = <zone name>
|
|
-- The sequence appears to be reversed, starting at the destination zone (not sure why that is)
|
|
|
|
local i = 1
|
|
local last = bravo
|
|
while last do
|
|
S[i] = last
|
|
--trace("S["..tostring(i).."] = "..tostring(S[i]))
|
|
i = i + 1
|
|
last = pi[last]
|
|
end
|
|
|
|
-- reset the helper stacks
|
|
for k in pairs(pi) do
|
|
pi[k] = nil
|
|
end
|
|
for k in pairs(Q) do
|
|
Q[k] = nil
|
|
end
|
|
for k in pairs(d) do
|
|
d[k] = nil
|
|
end
|
|
stack[pi] = true
|
|
stack[Q] = true
|
|
stack[d] = true
|
|
|
|
S['#'] = i -- set the stack size of S
|
|
|
|
return iterator, S -- return result
|
|
end
|
|
|
|
|
|
local function retIsZone(t, key)
|
|
while true do
|
|
key = next(t, key)
|
|
if not key then
|
|
return nil
|
|
end
|
|
if Tourist:IsZone(key) then
|
|
return key
|
|
end
|
|
end
|
|
end
|
|
|
|
-- This returns an iteration of zone connections (paths).
|
|
-- The second parameter determines whether other connections like transports and portals should be included
|
|
function Tourist:IterateBorderZones(zone, zonesOnly)
|
|
zone = Tourist:GetMapNameByIDAlt(zone) or zone
|
|
local path = paths[zone]
|
|
|
|
if not path then
|
|
return retNil
|
|
elseif type(path) == "table" then
|
|
return zonesOnly and retIsZone or retNormal, path
|
|
else
|
|
if zonesOnly and not Tourist:IsZone(path) then
|
|
return retNil
|
|
end
|
|
return retOne, path
|
|
end
|
|
end
|
|
|
|
|
|
--------------------------------------------------------------------------------------------------------
|
|
-- Main code --
|
|
--------------------------------------------------------------------------------------------------------
|
|
|
|
do
|
|
Tourist.frame = oldLib and oldLib.frame or CreateFrame("Frame", MAJOR_VERSION .. "Frame", UIParent)
|
|
Tourist.frame:UnregisterAllEvents()
|
|
Tourist.frame:RegisterEvent("PLAYER_LEVEL_UP")
|
|
Tourist.frame:RegisterEvent("PLAYER_ENTERING_WORLD")
|
|
Tourist.frame:SetScript("OnEvent", function(frame, event, ...)
|
|
PLAYER_LEVEL_UP(Tourist, ...)
|
|
end)
|
|
|
|
trace("Tourist: Initializing localized zone name lookups...")
|
|
CreateLocalizedZoneNameLookups()
|
|
AddDuplicatesToLocalizedLookup()
|
|
|
|
|
|
-- TRANSPORT DEFINITIONS ----------------------------------------------------------------
|
|
|
|
local transports = {}
|
|
|
|
-- Boats
|
|
transports["BOOTYBAY_RATCHET_BOAT"] = string.format(X_Y_BOAT, BZ["The Cape of Stranglethorn"], BZ["Northern Barrens"])
|
|
transports["RATCHET_BOOTYBAY_BOAT"] = string.format(X_Y_BOAT, BZ["Northern Barrens"], BZ["The Cape of Stranglethorn"])
|
|
|
|
transports["MENETHIL_HOWLINGFJORD_BOAT"] = string.format(X_Y_BOAT, BZ["Wetlands"], BZ["Howling Fjord"])
|
|
transports["HOWLINGFJORD_MENETHIL_BOAT"] = string.format(X_Y_BOAT, BZ["Howling Fjord"], BZ["Wetlands"])
|
|
|
|
transports["MENETHIL_THERAMORE_BOAT"] = string.format(X_Y_BOAT, BZ["Wetlands"], BZ["Dustwallow Marsh"])
|
|
transports["THERAMORE_MENETHIL_BOAT"] = string.format(X_Y_BOAT, BZ["Dustwallow Marsh"], BZ["Wetlands"])
|
|
|
|
transports["DRAGONBLIGHT_HOWLINGFJORD_BOAT"] = string.format(X_Y_BOAT, BZ["Dragonblight"], BZ["Howling Fjord"])
|
|
transports["HOWLINGFJORD_DRAGONBLIGHT_BOAT"] = string.format(X_Y_BOAT, BZ["Howling Fjord"], BZ["Dragonblight"])
|
|
|
|
transports["DRAGONBLIGHT_BOREANTUNDRA_BOAT"] = string.format(X_Y_BOAT, BZ["Dragonblight"], BZ["Borean Tundra"])
|
|
transports["BOREANTUNDRA_DRAGONBLIGHT_BOAT"] = string.format(X_Y_BOAT, BZ["Borean Tundra"], BZ["Dragonblight"])
|
|
|
|
transports["STORMWIND_BOREANTUNDRA_BOAT"] = string.format(X_Y_BOAT, BZ["Stormwind City"], BZ["Borean Tundra"])
|
|
transports["BOREANTUNDRA_STORMWIND_BOAT"] = string.format(X_Y_BOAT, BZ["Borean Tundra"], BZ["Stormwind City"])
|
|
|
|
-- transports["TELDRASSIL_AZUREMYST_BOAT"] = string.format(X_Y_BOAT, BZ["Teldrassil"], BZ["Azuremyst Isle"]) -- 8.0: portal
|
|
-- transports["TELDRASSIL_STORMWIND_BOAT"] = string.format(X_Y_BOAT, BZ["Teldrassil"], BZ["Stormwind City"]) -- 8.0: portal
|
|
|
|
transports["STORMWIND_TIRAGARDESOUND_BOAT"] = string.format(X_Y_BOAT, BZ["Stormwind City"], BZ["Tiragarde Sound"])
|
|
transports["TIRAGARDESOUND_STORMWIND_BOAT"] = string.format(X_Y_BOAT, BZ["Tiragarde Sound"], BZ["Stormwind City"])
|
|
|
|
transports["ECHOISLES_ZULDAZAR_BOAT"] = string.format(X_Y_BOAT, BZ["Echo Isles"], BZ["Zuldazar"])
|
|
transports["ZULDAZAR_ECHOISLES_BOAT"] = string.format(X_Y_BOAT, BZ["Zuldazar"], BZ["Echo Isles"])
|
|
|
|
transports["STORMWIND_WAKINGSHORES_BOAT"] = string.format(X_Y_BOAT, BZ["Stormwind City"], BZ["The Waking Shores"])
|
|
transports["WAKINGSHORES_STORMWIND_BOAT"] = string.format(X_Y_BOAT, BZ["The Waking Shores"], BZ["Stormwind City"])
|
|
|
|
|
|
-- Zeppelins
|
|
|
|
transports["ORGRIMMAR_STRANGLETHORN_ZEPPELIN"] = string.format(X_Y_ZEPPELIN, BZ["Orgrimmar"], BZ["Northern Stranglethorn"])
|
|
transports["STRANGLETHORN_ORGRIMMAR_ZEPPELIN"] = string.format(X_Y_ZEPPELIN, BZ["Northern Stranglethorn"], BZ["Orgrimmar"])
|
|
|
|
transports["ORGRIMMAR_THUNDERBLUFF_ZEPPELIN"] = string.format(X_Y_ZEPPELIN, BZ["Orgrimmar"], BZ["Thunder Bluff"])
|
|
transports["THUNDERBLUFF_ORGRIMMAR_ZEPPELIN"] = string.format(X_Y_ZEPPELIN, BZ["Thunder Bluff"], BZ["Orgrimmar"])
|
|
|
|
-- transports["ORGRIMMAR_UNDERCITY_ZEPPELIN"] = string.format(X_Y_ZEPPELIN, BZ["Orgrimmar"], BZ["Undercity"]) -- 8.0: portal
|
|
-- transports["UNDERCITY_GROMGOL_ZEPPELIN"] = string.format(X_Y_ZEPPELIN, BZ["Undercity"], BZ["Northern Stranglethorn"]) -- 8.0: portal
|
|
-- transports["UNDERCITY_HOWLINGFJORD_ZEPPELIN"] = string.format(X_Y_ZEPPELIN, BZ["Undercity"], BZ["Howling Fjord"]) -- 8.0: portal
|
|
|
|
transports["ORGRIMMAR_BOREANTUNDRA_ZEPPELIN"] = string.format(X_Y_ZEPPELIN, BZ["Orgrimmar"], BZ["Borean Tundra"])
|
|
transports["BOREANTUNDRA_ORGRIMMAR_ZEPPELIN"] = string.format(X_Y_ZEPPELIN, BZ["Borean Tundra"], BZ["Orgrimmar"])
|
|
|
|
transports["ORGRIMMAR_WAKINGSHORES_ZEPPELIN"] = string.format(X_Y_ZEPPELIN, BZ["Orgrimmar"], BZ["The Waking Shores"])
|
|
transports["WAKINGSHORES_ORGRIMMAR_ZEPPELIN"] = string.format(X_Y_ZEPPELIN, BZ["The Waking Shores"], BZ["Orgrimmar"])
|
|
|
|
|
|
-- Teleports
|
|
transports["SILVERMOON_UNDERCITY_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["Silvermoon City"], BZ["Undercity"])
|
|
transports["UNDERCITY_SILVERMOON_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["Undercity"], BZ["Silvermoon City"])
|
|
|
|
transports["DALARAN_CRYSTALSONG_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["Dalaran"], BZ["Crystalsong Forest"])
|
|
transports["CRYSTALSONG_DALARAN_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["Crystalsong Forest"], BZ["Dalaran"])
|
|
|
|
-- Portals
|
|
transports["AZSUNA_DALARANBROKENISLES_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Azsuna"], BZ["Dalaran"].." ("..BZ["Broken Isles"]..")")
|
|
transports["AZSUNA_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Azsuna"], BZ["Orgrimmar"])
|
|
transports["AZSUNA_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Azsuna"], BZ["Stormwind City"])
|
|
transports["AZUREMYST_TELDRASSIL_PORTAL"] = string.format(X_Y_PORTAL, BZ["Azuremyst Isle"], BZ["Teldrassil"]) -- 8.0: former boat
|
|
transports["BROKENSHORE_DALARANBROKENISLES_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Broken Shore"], BZ["Dalaran"].." ("..BZ["Broken Isles"]..")")
|
|
transports["COT_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Caverns of Time"], BZ["Orgrimmar"])
|
|
transports["COT_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Caverns of Time"], BZ["Stormwind City"])
|
|
transports["DALARAN_ICECROWN_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Dalaran"], BZ["Icecrown"])
|
|
transports["DALARAN_WINTERGRASP_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Dalaran"], BZ["Wintergrasp"])
|
|
transports["DALARAN_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Dalaran"], BZ["Orgrimmar"])
|
|
transports["DALARAN_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Dalaran"], BZ["Stormwind City"])
|
|
transports["DALARANBROKENISLES_AZSUNA_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Dalaran"].." ("..BZ["Broken Isles"]..")", BZ["Azsuna"])
|
|
transports["DALARANBROKENISLES_BROKENSHORE_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Dalaran"].." ("..BZ["Broken Isles"]..")", BZ["Broken Shore"])
|
|
transports["DALARANBROKENISLES_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Dalaran"].." ("..BZ["Broken Isles"]..")", BZ["Orgrimmar"])
|
|
transports["DALARANBROKENISLES_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Dalaran"].." ("..BZ["Broken Isles"]..")", BZ["Stormwind City"])
|
|
transports["DALARANBROKENISLES_VINDICAAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Dalaran"].." ("..BZ["Broken Isles"]..")", BZ["The Vindicaar"])
|
|
transports["DARKMOON_ELWYNNFOREST_PORTAL"] = string.format(X_Y_PORTAL, BZ["Darkmoon Island"], BZ["Elwynn Forest"])
|
|
transports["DARKMOON_MULGORE_PORTAL"] = string.format(X_Y_PORTAL, BZ["Darkmoon Island"], BZ["Mulgore"])
|
|
transports["DARNASSUS_TELDRASSIL_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["Darnassus"], BZ["Teldrassil"])
|
|
transports["DARNASSUS_HELLFIRE_PORTAL"] = string.format(X_Y_PORTAL, BZ["Darnassus"], BZ["Hellfire Peninsula"])
|
|
transports["DARNASSUS_EXODAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Darnassus"], BZ["The Exodar"])
|
|
transports["DEEPHOLM_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Deepholm"], BZ["Orgrimmar"])
|
|
transports["DEEPHOLM_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Deepholm"], BZ["Stormwind City"])
|
|
transports["EASTERNPLAGUE_QUELDANAS_FLIGHTPATH"] = string.format(X_Y_PORTAL, BZ["Eastern Plaguelands"], BZ["Isle of Quel'Danas"])
|
|
transports["ELWYNNFOREST_DARKMOON_PORTAL"] = string.format(X_Y_PORTAL, BZ["Elwynn Forest"], BZ["Darkmoon Island"])
|
|
transports["EXODAR_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["The Exodar"], BZ["Stormwind City"])
|
|
transports["FROSTWALL_WARSPEAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Frostwall"], BZ["Warspear"])
|
|
transports["HELLFIRE_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Hellfire Peninsula"], BZ["Orgrimmar"])
|
|
transports["HELLFIRE_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Hellfire Peninsula"], BZ["Stormwind City"])
|
|
transports["HOWLINGFJORD_TIRISFAL_PORTAL"] = string.format(X_Y_PORTAL, BZ["Howling Fjord"], BZ["Tirisfal Glades"]) -- 8.0: former zeppelin
|
|
transports["ICECROWN_DALARAN_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Icecrown"], BZ["Dalaran"])
|
|
transports["ISLEOFGIANTS_KUNLAISUMMIT_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Isle of Giants"], BZ["Kun-Lai Summit"])
|
|
transports["ISLEOFTHUNDER_TOWNLONGSTEPPES_PORTAL"] = string.format(X_Y_PORTAL, BZ["Isle of Thunder"], BZ["Townlong Steppes"])
|
|
transports["JADEFOREST_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["The Jade Forest"], BZ["Orgrimmar"])
|
|
transports["JADEFOREST_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["The Jade Forest"], BZ["Stormwind City"])
|
|
transports["JADEFOREST_TIMELESSISLE_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["The Jade Forest"], BZ["Timeless Isle"])
|
|
transports["KUNLAISUMMIT_ISLEOFGIANTS_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Kun-Lai Summit"], BZ["Isle of Giants"])
|
|
transports["LUNARFALL_STORMSHIELD_PORTAL"] = string.format(X_Y_PORTAL, BZ["Lunarfall"], BZ["Stormshield"])
|
|
transports["MECHAGON_TIRAGARDESOUND_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Mechagon Island"], BZ["Boralus"])
|
|
transports["MECHAGON_ZULDAZAR_BOAT"] = string.format(X_Y_BOAT, BZ["Mechagon Island"], BZ["Dazar'alor"])
|
|
transports["MOLTENFRONT_MOUNTHYJAL_PORTAL"] = string.format(X_Y_PORTAL, BZ["Molten Front"], BZ["Mount Hyjal"])
|
|
transports["MOUNTHYJAL_MOLTENFRONT_PORTAL"] = string.format(X_Y_PORTAL, BZ["Mount Hyjal"], BZ["Molten Front"])
|
|
transports["MOUNTHYJAL_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Mount Hyjal"], BZ["Orgrimmar"])
|
|
transports["MOUNTHYJAL_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Mount Hyjal"], BZ["Stormwind City"])
|
|
transports["MULGORE_DARKMOON_PORTAL"] = string.format(X_Y_PORTAL, BZ["Mulgore"], BZ["Darkmoon Island"])
|
|
transports["NAZJATAR_TIRAGARDESOUND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Nazjatar"], BZ["Boralus"])
|
|
transports["NAZJATAR_ZULDAZAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Nazjatar"], BZ["Dazar'alor"])
|
|
transports["ORGRIMMAR_AZSUNA_PORTAL"] = string.format(X_Y_PORTAL, BZ["Orgrimmar"], BZ["Azsuna"])
|
|
transports["ORGRIMMAR_COT_PORTAL"] = string.format(X_Y_PORTAL, BZ["Orgrimmar"], BZ["Caverns of Time"])
|
|
transports["ORGRIMMAR_DALARAN_PORTAL"] = string.format(X_Y_PORTAL, BZ["Orgrimmar"], BZ["Dalaran"])
|
|
transports["ORGRIMMAR_DEEPHOLM_PORTAL"] = string.format(X_Y_PORTAL, BZ["Orgrimmar"], BZ["Deepholm"])
|
|
transports["ORGRIMMAR_JADEFOREST_PORTAL"] = string.format(X_Y_PORTAL, BZ["Orgrimmar"], BZ["The Jade Forest"])
|
|
transports["ORGRIMMAR_MOUNTHYJAL_PORTAL"] = string.format(X_Y_PORTAL, BZ["Orgrimmar"], BZ["Mount Hyjal"])
|
|
transports["ORGRIMMAR_SHATTRATH_PORTAL"] = string.format(X_Y_PORTAL, BZ["Orgrimmar"], BZ["Shattrath City"])
|
|
transports["ORGRIMMAR_SILVERMOON_PORTAL"] = string.format(X_Y_PORTAL, BZ["Orgrimmar"], BZ["Silvermoon City"])
|
|
transports["ORGRIMMAR_TOLBARAD_PORTAL"] = string.format(X_Y_PORTAL, BZ["Orgrimmar"], BZ["Tol Barad Peninsula"])
|
|
transports["ORGRIMMAR_TWILIGHTHIGHLANDS_PORTAL"] = string.format(X_Y_PORTAL, BZ["Orgrimmar"], BZ["Twilight Highlands"])
|
|
transports["ORGRIMMAR_ULDUM_PORTAL"] = string.format(X_Y_PORTAL, BZ["Orgrimmar"], BZ["Uldum"])
|
|
transports["ORGRIMMAR_TIRISFAL_PORTAL"] = string.format(X_Y_PORTAL, BZ["Orgrimmar"], BZ["Tirisfal Glades"]) -- 8.0: former zeppelin
|
|
transports["ORGRIMMAR_VASHJIR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Orgrimmar"], BZ["Abyssal Depths"])
|
|
transports["ORGRIMMAR_WARSPEAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Orgrimmar"], BZ["Warspear"])
|
|
transports["ORGRIMMAR_ZULDAZAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Orgrimmar"], BZ["Dazar'alor"])
|
|
transports["QUELDANAS_EASTERNPLAGUE_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Isle of Quel'Danas"], BZ["Eastern Plaguelands"])
|
|
transports["QUELDANAS_SILVERMOON_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Isle of Quel'Danas"], BZ["Silvermoon City"])
|
|
transports["SEVENSTARS_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Shrine of Seven Stars"], BZ["Stormwind City"])
|
|
transports["SHATTRATH_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Shattrath City"], BZ["Orgrimmar"])
|
|
transports["SHATTRATH_QUELDANAS_PORTAL"] = string.format(X_Y_PORTAL, BZ["Shattrath City"], BZ["Isle of Quel'Danas"])
|
|
transports["SHATTRATH_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Shattrath City"], BZ["Stormwind City"])
|
|
transports["SILITHUS_TIRAGARDESOUND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Silithus"], BZ["Boralus"])
|
|
transports["SILITHUS_ZULDAZAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Silithus"], BZ["Dazar'alor"])
|
|
transports["SILVERMOON_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Silvermoon City"], BZ["Orgrimmar"])
|
|
transports["SILVERMOON_QUELDANAS_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Silvermoon City"], BZ["Isle of Quel'Danas"])
|
|
transports["STORMSHIELD_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormshield"], BZ["Stormwind City"])
|
|
transports["STORMSHIELD_TANAANJUNGLE_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormshield"], BZ["Tanaan Jungle"])
|
|
transports["STORMWIND_AZSUNA_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["Azsuna"])
|
|
transports["STORMWIND_COT_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["Caverns of Time"])
|
|
transports["STORMWIND_DALARAN_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["Dalaran"])
|
|
transports["STORMWIND_DEEPHOLM_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["Deepholm"])
|
|
transports["STORMWIND_EXODAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["The Exodar"])
|
|
transports["STORMWIND_JADEFOREST_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["The Jade Forest"])
|
|
transports["STORMWIND_MOUNTHYJAL_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["Mount Hyjal"])
|
|
transports["STORMWIND_SHATTRATH_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["Shattrath City"])
|
|
transports["STORMWIND_STORMSHIELD_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["Stormshield"])
|
|
transports["STORMWIND_TELDRASSIL_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["Teldrassil"]) -- 8.0: former boat
|
|
transports["STORMWIND_TIRAGARDESOUND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["Boralus"])
|
|
transports["STORMWIND_TOLBARAD_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["Tol Barad Peninsula"])
|
|
transports["STORMWIND_TWILIGHTHIGHLANDS_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["Twilight Highlands"])
|
|
transports["STORMWIND_ULDUM_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["Uldum"])
|
|
transports["STORMWIND_VASHJIR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["Abyssal Depths"])
|
|
transports["STRANGLETHORN_TIRISFAL_PORTAL"] = string.format(X_Y_PORTAL, BZ["Northern Stranglethorn"], BZ["Tirisfal Glades"]) -- 8.0: former zeppelin
|
|
transports["TANAANJUNGLE_STORMSHIELD_PORTAL"] = string.format(X_Y_PORTAL, BZ["Tanaan Jungle"], BZ["Stormshield"])
|
|
transports["TANAANJUNGLE_WARSPEAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Tanaan Jungle"], BZ["Warspear"])
|
|
transports["TELDRASSIL_AZUREMYST_PORTAL"] = string.format(X_Y_PORTAL, BZ["Teldrassil"], BZ["Azuremyst Isle"]) -- 8.0: former boat
|
|
transports["TELDRASSIL_DARNASSUS_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["Teldrassil"], BZ["Darnassus"])
|
|
transports["TELDRASSIL_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Teldrassil"], BZ["Stormwind City"]) -- 8.0: former boat
|
|
transports["TIMELESSISLE_JADEFOREST_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Timeless Isle"], BZ["The Jade Forest"])
|
|
transports["TIRAGARDESOUND_EXODAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Boralus"], BZ["The Exodar"])
|
|
transports["TIRAGARDESOUND_IRONFORGE_PORTAL"] = string.format(X_Y_PORTAL, BZ["Boralus"], BZ["Ironforge"])
|
|
transports["TIRAGARDESOUND_NAZJATAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Boralus"], BZ["Nazjatar"])
|
|
transports["TIRAGARDESOUND_SILITHUS_PORTAL"] = string.format(X_Y_PORTAL, BZ["Boralus"], BZ["Silithus"])
|
|
transports["TIRAGARDESOUND_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Boralus"], BZ["Stormwind City"])
|
|
transports["TIRAGARDESOUND_MECHAGON_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Boralus"], BZ["Mechagon Island"])
|
|
transports["TIRISFAL_HOWLINGFJORD_PORTAL"] = string.format(X_Y_PORTAL, BZ["Tirisfal Glades"], BZ["Howling Fjord"]) -- 8.0: former zeppelin
|
|
transports["TIRISFAL_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Tirisfal Glades"], BZ["Orgrimmar"]) -- 8.0: former zeppelin
|
|
transports["TIRISFAL_STRANGLETHORN_PORTAL"] = string.format(X_Y_PORTAL, BZ["Tirisfal Glades"], BZ["Northern Stranglethorn"]) -- 8.0: former zeppelin
|
|
transports["TOLBARAD_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Tol Barad Peninsula"], BZ["Orgrimmar"])
|
|
transports["TOLBARAD_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Tol Barad Peninsula"], BZ["Stormwind City"])
|
|
transports["TOWNLONGSTEPPES_ISLEOFTHUNDER_PORTAL"] = string.format(X_Y_PORTAL, BZ["Townlong Steppes"], BZ["Isle of Thunder"])
|
|
transports["TWILIGHTHIGHLANDS_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Twilight Highlands"], BZ["Orgrimmar"])
|
|
transports["TWILIGHTHIGHLANDS_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Twilight Highlands"], BZ["Stormwind City"])
|
|
transports["TWOMOONS_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Shrine of Two Moons"], BZ["Orgrimmar"])
|
|
transports["UNDERCITY_HELLFIRE_PORTAL"] = string.format(X_Y_PORTAL, BZ["Undercity"], BZ["Hellfire Peninsula"])
|
|
transports["VINDICAAR_DALARANBROKENISLES_PORTAL"] = string.format(X_Y_PORTAL, BZ["The Vindicaar"], BZ["Dalaran"].." ("..BZ["Broken Isles"]..")")
|
|
transports["WARSPEAR_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Warspear"], BZ["Orgrimmar"])
|
|
transports["WARSPEAR_TANAANJUNGLE_PORTAL"] = string.format(X_Y_PORTAL, BZ["Warspear"], BZ["Tanaan Jungle"])
|
|
transports["WINTERGRASP_DALARAN_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Wintergrasp"], BZ["Dalaran"])
|
|
transports["ZULDAZAR_NAZJATAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Dazar'alor"], BZ["Nazjatar"])
|
|
transports["ZULDAZAR_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Dazar'alor"], BZ["Orgrimmar"])
|
|
transports["ZULDAZAR_SILVERMOON_PORTAL"] = string.format(X_Y_PORTAL, BZ["Dazar'alor"], BZ["Silvermoon City"])
|
|
transports["ZULDAZAR_THUNDERBLUFF_PORTAL"] = string.format(X_Y_PORTAL, BZ["Dazar'alor"], BZ["Thunder Bluff"])
|
|
transports["ZULDAZAR_SILITHUS_PORTAL"] = string.format(X_Y_PORTAL, BZ["Dazar'alor"], BZ["Silithus"])
|
|
transports["ZULDAZAR_MECHAGON_BOAT"] = string.format(X_Y_BOAT, BZ["Dazar'alor"], BZ["Mechagon Island"])
|
|
|
|
-- Vashj'ir
|
|
transports["IRONFORGE_KELPTHAR_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Ironforge"], BZ["Kelp'thar Forest"])
|
|
transports["KELPTHAR_IRONFORGE_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Kelp'thar Forest"], BZ["Ironforge"])
|
|
transports["UNDERCITY_KELPTHAR_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Undercity"], BZ["Kelp'thar Forest"])
|
|
transports["KELPTHAR_UNDERCITY_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Kelp'thar Forest"], BZ["Undercity"])
|
|
transports["SEARINGGORGE_KELPTHAR_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Searing Gorge"], BZ["Kelp'thar Forest"])
|
|
transports["KELPTHAR_SEARINGGORGE_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Kelp'thar Forest"], BZ["Searing Gorge"])
|
|
|
|
-- Shadowlands
|
|
transports["ORGRIMMAR_ORIBOS_PORTAL"] = string.format(X_Y_PORTAL, BZ["Orgrimmar"], BZ["Oribos"])
|
|
transports["ORIBOS_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Oribos"], BZ["Orgrimmar"])
|
|
transports["STORMWIND_ORIBOS_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["Oribos"])
|
|
transports["ORIBOS_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Oribos"], BZ["Stormwind City"])
|
|
transports["ORIBOS_MAW_PORTAL"] = string.format(X_Y_PORTAL, BZ["Oribos"], BZ["The Maw"])
|
|
transports["MAW_ORIBOS_WAYSTONE"] = string.format(X_Y_WAYSTONE, BZ["The Maw"], BZ["Oribos"])
|
|
transports["ORIBOS_KORTHIA_WAYSTONE"] = string.format(X_Y_WAYSTONE, BZ["Oribos"], BZ["Korthia"])
|
|
transports["KORTHIA_ORIBOS_WAYSTONE"] = string.format(X_Y_WAYSTONE, BZ["Korthia"], BZ["Oribos"])
|
|
transports["ORIBOS_BASTION_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Oribos"], BZ["Bastion"])
|
|
transports["BASTION_ORIBOS_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Bastion"], BZ["Oribos"])
|
|
transports["ORIBOS_MALDRAXXUS_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Oribos"], BZ["Maldraxxus"])
|
|
transports["MALDRAXXUS_ORIBOS_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Maldraxxus"], BZ["Oribos"])
|
|
transports["ORIBOS_ARDENWEALD_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Oribos"], BZ["Ardenweald"])
|
|
transports["ARDENWEALD_ORIBOS_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Ardenweald"], BZ["Oribos"])
|
|
transports["ORIBOS_REVENDRETH_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Oribos"], BZ["Revendreth"])
|
|
transports["REVENDRETH_ORIBOS_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Revendreth"], BZ["Oribos"])
|
|
transports["BASTION_ELYSIANHOLD_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Bastion"], BZ["Elysian Hold"])
|
|
transports["ELYSIANHOLD_BASTION_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Elysian Hold"], BZ["Bastion"])
|
|
transports["ORIBOS_TAZAVESH_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Oribos"], BZ["Tazavesh, the Veiled Market"])
|
|
transports["TAZAVESH_ORIBOS_FLIGHTPATH"] = string.format(X_Y_FLIGHTPATH, BZ["Tazavesh, the Veiled Market"], BZ["Oribos"])
|
|
transports["ORIBOS_ZERETHMORTIS_WAYSTONE"] = string.format(X_Y_WAYSTONE, BZ["Oribos"], BZ["Zereth Mortis"])
|
|
transports["ZERETHMORTIS_ORIBOS_WAYSTONE"] = string.format(X_Y_WAYSTONE, BZ["Zereth Mortis"], BZ["Oribos"])
|
|
-- Oribos 'Exotic Portals'
|
|
transports["ORIBOS_MECHANGON_PORTAL"] = string.format(X_Y_PORTAL, BZ["Oribos"], BZ["Mechagon Island"])
|
|
transports["ORIBOS_KARAZHAN_PORTAL"] = string.format(X_Y_PORTAL, BZ["Oribos"], BZ["Karazhan"]) -- Deadwind Pass
|
|
transports["ORIBOS_GORGROND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Oribos"], BZ["Gorgrond"]) -- Dreanor
|
|
|
|
-- Argus teleport connections
|
|
transports["VINDICAAR_KROKUUN_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["The Vindicaar"], BZ["Krokuun"])
|
|
transports["KROKUUN_VINDICAAR_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["Krokuun"], BZ["The Vindicaar"])
|
|
transports["VINDICAAR_EREDATH_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["The Vindicaar"], BZ["Eredath"])
|
|
transports["EREDATH_VINDICAAR_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["Eredath"], BZ["The Vindicaar"])
|
|
transports["VINDICAAR_ANTORANWASTES_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["The Vindicaar"], BZ["Antoran Wastes"])
|
|
transports["ANTORANWASTES_VINDICAAR_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["Antoran Wastes"], BZ["The Vindicaar"])
|
|
transports["KROKUUN_EREDATH_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["Krokuun"], BZ["Eredath"])
|
|
transports["EREDATH_KROKUUN_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["Eredath"], BZ["Krokuun"])
|
|
transports["KROKUUN_ANTORANWASTES_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["Krokuun"], BZ["Antoran Wastes"])
|
|
transports["ANTORANWASTES_KROKUUN_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["Antoran Wastes"], BZ["Krokuun"])
|
|
transports["EREDATH_ANTORANWASTES_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["Eredath"], BZ["Antoran Wastes"])
|
|
transports["ANTORANWASTES_EREDATH_TELEPORT"] = string.format(X_Y_TELEPORT, BZ["Antoran Wastes"], BZ["Eredath"])
|
|
|
|
-- Dragon Flight portals
|
|
transports["VALDRAKKEN_ORGRIMMAR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Valdrakken"], BZ["Orgrimmar"])
|
|
transports["ORGRIMMAR_VALDRAKKEN_PORTAL"] = string.format(X_Y_PORTAL, BZ["Orgrimmar"], BZ["Valdrakken"])
|
|
transports["VALDRAKKEN_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Valdrakken"], BZ["Stormwind City"])
|
|
transports["STORMWIND_VALDRAKKEN_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["Valdrakken"])
|
|
|
|
transports["VALDRAKKEN_SHADOWMOONDRAENOR_PORTAL"] = string.format(X_Y_PORTAL, BZ["Valdrakken"], BZ["Shadowmoon Valley"].." ("..BZ["Draenor"]..")")
|
|
transports["VALDRAKKEN_DALARANBROKENISLES_PORTAL"] = string.format(X_Y_PORTAL, BZ["Valdrakken"], BZ["Dalaran"].." ("..BZ["Broken Isles"]..")")
|
|
transports["VALDRAKKEN_JADEFOREST_PORTAL"] = string.format(X_Y_PORTAL, BZ["Valdrakken"], BZ["The Jade Forest"])
|
|
|
|
transports["OHNAHRANPLAINS_EMERALDDREAM_PORTAL"] = string.format(X_Y_PORTAL, BZ["Ohn'ahran Plains"], BZ["Emerald Dream"])
|
|
transports["EMERALDDREAM_OHNAHRANPLAINS_PORTAL"] = string.format(X_Y_PORTAL, BZ["Emerald Dream"], BZ["Ohn'ahran Plains"])
|
|
|
|
-- Amirdrassil (10.2.5)
|
|
transports["STORMWIND_AMIRDRASSIL_PORTAL"] = string.format(X_Y_PORTAL, BZ["Stormwind City"], BZ["Amirdrassil"])
|
|
transports["AMIRDRASSIL_STORMWIND_PORTAL"] = string.format(X_Y_PORTAL, BZ["Amirdrassil"], BZ["Stormwind City"])
|
|
|
|
transports["DARKSHORE_AMIRDRASSIL_PORTAL"] = string.format(X_Y_PORTAL, BZ["Darkshore"], BZ["Amirdrassil"])
|
|
transports["AMIRDRASSIL_DARKSHORE_PORTAL"] = string.format(X_Y_PORTAL, BZ["Amirdrassil"], BZ["Darkshore"])
|
|
|
|
transports["MOUNTHYJAL_AMIRDRASSIL_PORTAL"] = string.format(X_Y_PORTAL, BZ["Mount Hyjal"], BZ["Amirdrassil"])
|
|
transports["AMIRDRASSIL_MOUNTHYJAL_PORTAL"] = string.format(X_Y_PORTAL, BZ["Amirdrassil"], BZ["Mount Hyjal"])
|
|
|
|
transports["VALSHARAH_AMIRDRASSIL_PORTAL"] = string.format(X_Y_PORTAL, BZ["Val'sharah"], BZ["Amirdrassil"])
|
|
transports["AMIRDRASSIL_VALSHARAH_PORTAL"] = string.format(X_Y_PORTAL, BZ["Amirdrassil"], BZ["Val'sharah"])
|
|
|
|
transports["FERALAS_AMIRDRASSIL_PORTAL"] = string.format(X_Y_PORTAL, BZ["Feralas"], BZ["Amirdrassil"])
|
|
transports["AMIRDRASSIL_FERALAS_PORTAL"] = string.format(X_Y_PORTAL, BZ["Amirdrassil"], BZ["Feralas"])
|
|
|
|
|
|
|
|
|
|
|
|
local zones = {}
|
|
|
|
-- CONTINENTS ---------------------------------------------------------------
|
|
|
|
zones[BZ["Azeroth"]] = {
|
|
type = "Continent",
|
|
-- yards = 44531.82907938571,
|
|
yards = 33400.121,
|
|
x_offset = 0,
|
|
y_offset = 0,
|
|
continent = Azeroth,
|
|
}
|
|
|
|
zones[BZ["Eastern Kingdoms"]] = {
|
|
type = "Continent",
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
}
|
|
|
|
zones[BZ["Kalimdor"]] = {
|
|
type = "Continent",
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
}
|
|
|
|
zones[BZ["Outland"]] = {
|
|
type = "Continent",
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
}
|
|
|
|
zones[BZ["Northrend"]] = {
|
|
type = "Continent",
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
}
|
|
|
|
zones[BZ["The Maelstrom"]] = {
|
|
type = "Continent",
|
|
continent = The_Maelstrom,
|
|
expansion = Cataclysm,
|
|
}
|
|
|
|
zones[BZ["Pandaria"]] = {
|
|
type = "Continent",
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
}
|
|
|
|
zones[BZ["Draenor"]] = {
|
|
type = "Continent",
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
}
|
|
|
|
zones[BZ["Broken Isles"]] = {
|
|
type = "Continent",
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
}
|
|
|
|
zones[BZ["Argus"]] = {
|
|
type = "Continent",
|
|
continent = Argus,
|
|
expansion = Legion,
|
|
}
|
|
|
|
zones[BZ["Zandalar"]] = {
|
|
type = "Continent",
|
|
continent = Zandalar,
|
|
faction = "Horde",
|
|
expansion = Battle_for_Azeroth,
|
|
}
|
|
|
|
zones[BZ["Kul Tiras"]] = {
|
|
type = "Continent",
|
|
continent = Kul_Tiras,
|
|
faction = "Alliance",
|
|
expansion = Battle_for_Azeroth,
|
|
}
|
|
|
|
zones[BZ["The Shadowlands"]] = {
|
|
type = "Continent",
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
}
|
|
|
|
zones[BZ["Dragon Isles"]] = {
|
|
type = "Continent",
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
}
|
|
|
|
|
|
-- TRANSPORTS ---------------------------------------------------------------
|
|
|
|
zones[transports["STORMWIND_BOREANTUNDRA_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Borean Tundra"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["BOREANTUNDRA_STORMWIND_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Transport",
|
|
}
|
|
|
|
|
|
zones[transports["ORGRIMMAR_BOREANTUNDRA_ZEPPELIN"]] = {
|
|
paths = {
|
|
[BZ["Borean Tundra"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["BOREANTUNDRA_ORGRIMMAR_ZEPPELIN"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["STORMWIND_WAKINGSHORES_BOAT"]] = {
|
|
paths = {
|
|
[BZ["The Waking Shores"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["WAKINGSHORES_STORMWIND_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_WAKINGSHORES_ZEPPELIN"]] = {
|
|
paths = {
|
|
[BZ["The Waking Shores"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["WAKINGSHORES_ORGRIMMAR_ZEPPELIN"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Transport",
|
|
}
|
|
|
|
|
|
|
|
zones[transports["TIRISFAL_HOWLINGFJORD_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Howling Fjord"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["HOWLINGFJORD_TIRISFAL_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Tirisfal Glades"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_SILVERMOON_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Silvermoon City"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_SHATTRATH_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Silvermoon City"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_DALARAN_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Dalaran"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_COT_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Caverns of Time"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["COT_ORGRIMMAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_AZSUNA_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Azsuna"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["AZSUNA_ORGRIMMAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_ZULDAZAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Dazar'alor"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["HELLFIRE_ORGRIMMAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["UNDERCITY_HELLFIRE_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Hellfire Peninsula"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMWIND_EXODAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["The Exodar"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMWIND_SHATTRATH_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Shattrath City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMWIND_DALARAN_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Dalaran"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMWIND_COT_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Caverns of Time"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["COT_STORMWIND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMWIND_AZSUNA_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Azsuna"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["AZSUNA_STORMWIND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["HELLFIRE_STORMWIND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["DALARAN_STORMWIND_PORTAL"]] = {
|
|
paths = BZ["Stormwind City"],
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["DALARAN_ICECROWN_FLIGHTPATH"]] = {
|
|
paths = BZ["Icecrown"],
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["ICECROWN_DALARAN_FLIGHTPATH"]] = {
|
|
paths = BZ["Dalaran"],
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["DALARAN_WINTERGRASP_FLIGHTPATH"]] = {
|
|
paths = BZ["Wintergrasp"],
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["WINTERGRASP_DALARAN_FLIGHTPATH"]] = {
|
|
paths = BZ["Dalaran"],
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["DALARAN_ORGRIMMAR_PORTAL"]] = {
|
|
paths = BZ["Orgrimmar"],
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["DARNASSUS_EXODAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["The Exodar"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["DARNASSUS_HELLFIRE_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Hellfire Peninsula"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["EXODAR_STORMWIND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["MULGORE_DARKMOON_PORTAL"]] = {
|
|
paths = BZ["Darkmoon Island"],
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["DARKMOON_MULGORE_PORTAL"]] = {
|
|
paths = BZ["Mulgore"],
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
|
|
zones[transports["ELWYNNFOREST_DARKMOON_PORTAL"]] = {
|
|
paths = BZ["Darkmoon Island"],
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["DARKMOON_ELWYNNFOREST_PORTAL"]] = {
|
|
paths = BZ["Elwynn Forest"],
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMWIND_TELDRASSIL_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Teldrassil"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["TELDRASSIL_STORMWIND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["DARNASSUS_TELDRASSIL_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["Teldrassil"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["TELDRASSIL_DARNASSUS_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["Darnassus"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["TELDRASSIL_AZUREMYST_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Azuremyst Isle"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["AZUREMYST_TELDRASSIL_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Teldrassil"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["BOOTYBAY_RATCHET_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Northern Barrens"]] = true,
|
|
},
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["RATCHET_BOOTYBAY_BOAT"]] = {
|
|
paths = {
|
|
[BZ["The Cape of Stranglethorn"]] = true,
|
|
},
|
|
type = "Transport",
|
|
}
|
|
|
|
|
|
zones[transports["MENETHIL_HOWLINGFJORD_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Howling Fjord"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["HOWLINGFJORD_MENETHIL_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Wetlands"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["MENETHIL_THERAMORE_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Dustwallow Marsh"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["THERAMORE_MENETHIL_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Wetlands"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_STRANGLETHORN_ZEPPELIN"]] = {
|
|
paths = {
|
|
[BZ["Northern Stranglethorn"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["STRANGLETHORN_ORGRIMMAR_ZEPPELIN"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_TIRISFAL_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Tirisfal Glades"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["TIRISFAL_ORGRIMMAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_THUNDERBLUFF_ZEPPELIN"]] = {
|
|
paths = {
|
|
[BZ["Thunder Bluff"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["THUNDERBLUFF_ORGRIMMAR_ZEPPELIN"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Transport",
|
|
}
|
|
|
|
|
|
zones[transports["EASTERNPLAGUE_QUELDANAS_FLIGHTPATH"]] = {
|
|
paths = BZ["Isle of Quel'Danas"],
|
|
faction = "Alliance",
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["QUELDANAS_EASTERNPLAGUE_FLIGHTPATH"]] = {
|
|
paths = BZ["Eastern Plaguelands"],
|
|
faction = "Alliance",
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["SILVERMOON_QUELDANAS_FLIGHTPATH"]] = {
|
|
paths = BZ["Isle of Quel'Danas"],
|
|
faction = "Horde",
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["QUELDANAS_SILVERMOON_FLIGHTPATH"]] = {
|
|
paths = BZ["Silvermoon City"],
|
|
faction = "Horde",
|
|
type = "Flightpath",
|
|
}
|
|
|
|
|
|
|
|
zones[transports["SHATTRATH_QUELDANAS_PORTAL"]] = {
|
|
paths = BZ["Isle of Quel'Danas"],
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["SHATTRATH_ORGRIMMAR_PORTAL"]] = {
|
|
paths = BZ["Orgrimmar"],
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["SHATTRATH_STORMWIND_PORTAL"]] = {
|
|
paths = BZ["Stormwind City"],
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["DRAGONBLIGHT_BOREANTUNDRA_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Borean Tundra"]] = true,
|
|
},
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["BOREANTUNDRA_DRAGONBLIGHT_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Dragonblight"]] = true,
|
|
},
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["DRAGONBLIGHT_HOWLINGFJORD_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Howling Fjord"]] = true,
|
|
},
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["HOWLINGFJORD_DRAGONBLIGHT_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Dragonblight"]] = true,
|
|
},
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[BZ["The Dark Portal"]] = {
|
|
paths = {
|
|
--[BZ["Blasted Lands"]] = true, -- closed
|
|
[BZ["Hellfire Peninsula"]] = true, -- past time (Zidormi)
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[BZ["Deeprun Tram"]] = {
|
|
continent = Eastern_Kingdoms,
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
[BZ["Ironforge"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["TIRISFAL_STRANGLETHORN_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Northern Stranglethorn"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STRANGLETHORN_TIRISFAL_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Tirisfal Glades"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["SILVERMOON_UNDERCITY_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["Undercity"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["UNDERCITY_SILVERMOON_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["Silvermoon City"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["DALARAN_CRYSTALSONG_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["Crystalsong Forest"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["CRYSTALSONG_DALARAN_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["Dalaran"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMWIND_TWILIGHTHIGHLANDS_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Twilight Highlands"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["TWILIGHTHIGHLANDS_STORMWIND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMWIND_MOUNTHYJAL_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Mount Hyjal"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["MOUNTHYJAL_STORMWIND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMWIND_DEEPHOLM_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Deepholm"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["DEEPHOLM_STORMWIND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["TOLBARAD_STORMWIND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMWIND_ULDUM_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Uldum"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMWIND_VASHJIR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Abyssal Depths"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMWIND_TOLBARAD_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Tol Barad Peninsula"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_TWILIGHTHIGHLANDS_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Twilight Highlands"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["TWILIGHTHIGHLANDS_ORGRIMMAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_MOUNTHYJAL_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Mount Hyjal"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["MOUNTHYJAL_ORGRIMMAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_DEEPHOLM_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Deepholm"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["DEEPHOLM_ORGRIMMAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["TOLBARAD_ORGRIMMAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_ULDUM_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Uldum"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_VASHJIR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Abyssal Depths"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_TOLBARAD_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Tol Barad Peninsula"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_JADEFOREST_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["The Jade Forest"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["JADEFOREST_ORGRIMMAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMWIND_JADEFOREST_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["The Jade Forest"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["JADEFOREST_STORMWIND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["JADEFOREST_TIMELESSISLE_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Timeless Isle"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["TIMELESSISLE_JADEFOREST_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["The Jade Forest"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
|
|
zones[transports["KUNLAISUMMIT_ISLEOFGIANTS_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Isle of Giants"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["ISLEOFGIANTS_KUNLAISUMMIT_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Kun-Lai Summit"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
|
|
|
|
|
|
zones[transports["TOWNLONGSTEPPES_ISLEOFTHUNDER_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Isle of Thunder"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ISLEOFTHUNDER_TOWNLONGSTEPPES_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Townlong Steppes"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORGRIMMAR_WARSPEAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Warspear"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["WARSPEAR_ORGRIMMAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["WARSPEAR_TANAANJUNGLE_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Tanaan Jungle"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["TANAANJUNGLE_WARSPEAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Warspear"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMWIND_STORMSHIELD_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormshield"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMSHIELD_STORMWIND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMSHIELD_TANAANJUNGLE_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Tanaan Jungle"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["TANAANJUNGLE_STORMSHIELD_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormshield"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["LUNARFALL_STORMSHIELD_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormshield"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["FROSTWALL_WARSPEAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Warspear"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["TWOMOONS_ORGRIMMAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["SEVENSTARS_STORMWIND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["DALARANBROKENISLES_STORMWIND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["DALARANBROKENISLES_ORGRIMMAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["DALARANBROKENISLES_VINDICAAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["The Vindicaar"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["VINDICAAR_DALARANBROKENISLES_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Dalaran"].." ("..BZ["Broken Isles"]..")"] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
|
|
|
|
zones[transports["VINDICAAR_KROKUUN_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["Krokuun"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["KROKUUN_VINDICAAR_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["The Vindicaar"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["VINDICAAR_EREDATH_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["Eredath"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["EREDATH_VINDICAAR_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["The Vindicaar"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["VINDICAAR_ANTORANWASTES_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["Antoran Wastes"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ANTORANWASTES_VINDICAAR_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["The Vindicaar"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["KROKUUN_EREDATH_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["Eredath"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["EREDATH_KROKUUN_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["Krokuun"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["KROKUUN_ANTORANWASTES_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["Antoran Wastes"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ANTORANWASTES_KROKUUN_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["Krokuun"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["EREDATH_ANTORANWASTES_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["Antoran Wastes"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ANTORANWASTES_EREDATH_TELEPORT"]] = {
|
|
paths = {
|
|
[BZ["Eredath"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
|
|
zones[transports["DALARANBROKENISLES_BROKENSHORE_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Broken Shore"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["BROKENSHORE_DALARANBROKENISLES_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Dalaran"].." ("..BZ["Broken Isles"]..")"] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
|
|
|
|
zones[transports["DALARANBROKENISLES_AZSUNA_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Azsuna"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["AZSUNA_DALARANBROKENISLES_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Dalaran"].." ("..BZ["Broken Isles"]..")"] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["ECHOISLES_ZULDAZAR_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Zuldazar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["ZULDAZAR_ECHOISLES_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Echo Isles"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["STORMWIND_TIRAGARDESOUND_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Tiragarde Sound"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["TIRAGARDESOUND_STORMWIND_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Transport",
|
|
}
|
|
|
|
zones[transports["STORMWIND_TIRAGARDESOUND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Boralus"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["TIRAGARDESOUND_STORMWIND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["TIRAGARDESOUND_EXODAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["The Exodar"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["TIRAGARDESOUND_IRONFORGE_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Ironforge"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["TIRAGARDESOUND_SILITHUS_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Silithus"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["SILITHUS_TIRAGARDESOUND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Boralus"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["TIRAGARDESOUND_NAZJATAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Nazjatar"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["NAZJATAR_TIRAGARDESOUND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Boralus"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
|
|
zones[transports["SILVERMOON_ORGRIMMAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ZULDAZAR_SILVERMOON_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Silvermoon City"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ZULDAZAR_ORGRIMMAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ZULDAZAR_THUNDERBLUFF_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Thunder Bluff"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ZULDAZAR_SILITHUS_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Silithus"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["SILITHUS_ZULDAZAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Dazar'alor"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ZULDAZAR_MECHAGON_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Mechagon Island"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal", -- is a boat, works like a portal
|
|
}
|
|
|
|
zones[transports["MECHAGON_ZULDAZAR_BOAT"]] = {
|
|
paths = {
|
|
[BZ["Dazar'alor"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal", -- is a boat, works like a portal
|
|
}
|
|
|
|
zones[transports["MECHAGON_TIRAGARDESOUND_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Boralus"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["TIRAGARDESOUND_MECHAGON_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Mechagon Island"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["MOUNTHYJAL_MOLTENFRONT_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Molten Front"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["MOLTENFRONT_MOUNTHYJAL_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Mount Hyjal"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
|
|
-- Patch 8.2.0
|
|
|
|
zones[transports["ZULDAZAR_NAZJATAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Nazjatar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["NAZJATAR_ZULDAZAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Dazar'alor"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
|
|
-- Shadowlands
|
|
|
|
zones[transports["ORGRIMMAR_ORIBOS_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Oribos"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORIBOS_ORGRIMMAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMWIND_ORIBOS_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Oribos"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORIBOS_STORMWIND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORIBOS_MECHANGON_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Mechagon Island"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORIBOS_KARAZHAN_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Karazhan"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORIBOS_GORGROND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Gorgrond"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORIBOS_MAW_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["The Maw"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["MAW_ORIBOS_WAYSTONE"]] = {
|
|
paths = {
|
|
[BZ["Oribos"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORIBOS_KORTHIA_WAYSTONE"]] = {
|
|
paths = {
|
|
[BZ["Korthia"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["KORTHIA_ORIBOS_WAYSTONE"]] = {
|
|
paths = {
|
|
[BZ["Oribos"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ORIBOS_BASTION_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Bastion"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["BASTION_ORIBOS_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Oribos"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["BASTION_ELYSIANHOLD_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Elysian Hold"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["ELYSIANHOLD_BASTION_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Bastion"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["ORIBOS_MALDRAXXUS_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Maldraxxus"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["MALDRAXXUS_ORIBOS_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Oribos"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["ORIBOS_ARDENWEALD_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Ardenweald"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["ARDENWEALD_ORIBOS_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Oribos"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["ORIBOS_REVENDRETH_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Revendreth"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["REVENDRETH_ORIBOS_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Oribos"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["ORIBOS_TAZAVESH_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Tazavesh, the Veiled Market"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["TAZAVESH_ORIBOS_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Oribos"]] = true,
|
|
},
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["ORIBOS_ZERETHMORTIS_WAYSTONE"]] = {
|
|
paths = {
|
|
[BZ["Zereth Mortis"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["ZERETHMORTIS_ORIBOS_WAYSTONE"]] = {
|
|
paths = {
|
|
[BZ["Oribos"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["IRONFORGE_KELPTHAR_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Kelp'thar Forest"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["KELPTHAR_IRONFORGE_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Ironforge"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Flightpath",
|
|
}
|
|
|
|
|
|
zones[transports["UNDERCITY_KELPTHAR_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Kelp'thar Forest"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["KELPTHAR_UNDERCITY_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Undercity"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["SEARINGGORGE_KELPTHAR_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Kelp'thar Forest"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Flightpath",
|
|
}
|
|
|
|
zones[transports["KELPTHAR_SEARINGGORGE_FLIGHTPATH"]] = {
|
|
paths = {
|
|
[BZ["Searing Gorge"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Flightpath",
|
|
}
|
|
|
|
|
|
-- Dragon Isles
|
|
|
|
zones[transports["ORGRIMMAR_VALDRAKKEN_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Valdrakken"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["VALDRAKKEN_ORGRIMMAR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["STORMWIND_VALDRAKKEN_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Valdrakken"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["VALDRAKKEN_STORMWIND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
|
|
zones[transports["VALDRAKKEN_SHADOWMOONDRAENOR_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Shadowmoon Valley"].." ("..BZ["Draenor"]..")"] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["VALDRAKKEN_DALARANBROKENISLES_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Dalaran"].." ("..BZ["Broken Isles"]..")"] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["VALDRAKKEN_JADEFOREST_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["The Jade Forest"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
|
|
|
|
zones[transports["OHNAHRANPLAINS_EMERALDDREAM_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Emerald Dream"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["EMERALDDREAM_OHNAHRANPLAINS_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Ohn'ahran Plains"]] = true,
|
|
},
|
|
type = "Portal",
|
|
}
|
|
|
|
|
|
|
|
zones[transports["STORMWIND_AMIRDRASSIL_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Amirdrassil"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["AMIRDRASSIL_STORMWIND_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Stormwind City"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["DARKSHORE_AMIRDRASSIL_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Amirdrassil"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["AMIRDRASSIL_DARKSHORE_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Darkshore"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
|
|
zones[transports["MOUNTHYJAL_AMIRDRASSIL_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Amirdrassil"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["AMIRDRASSIL_MOUNTHYJAL_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Mount Hyjal"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["VALSHARAH_AMIRDRASSIL_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Amirdrassil"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["AMIRDRASSIL_VALSHARAH_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Val'sharah"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
|
|
zones[transports["FERALAS_AMIRDRASSIL_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Amirdrassil"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
zones[transports["AMIRDRASSIL_FERALAS_PORTAL"]] = {
|
|
paths = {
|
|
[BZ["Feralas"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "Portal",
|
|
}
|
|
|
|
|
|
-- ZONES, INSTANCES AND COMPLEXES ---------------------------------------------------------
|
|
|
|
-- ===============ZONES=================
|
|
|
|
-- Eastern Kingdoms cities and zones --
|
|
|
|
zones[BZ["Stormwind City"]] = {
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = {
|
|
[BZ["The Stockade"]] = true,
|
|
-- [BZ["Bizmo's Brawlpub"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Deeprun Tram"]] = true,
|
|
[BZ["The Stockade"]] = true,
|
|
[BZ["Elwynn Forest"]] = true,
|
|
[transports["STORMWIND_TELDRASSIL_PORTAL"]] = true,
|
|
[transports["STORMWIND_BOREANTUNDRA_BOAT"]] = true,
|
|
[transports["STORMWIND_TWILIGHTHIGHLANDS_PORTAL"]] = true,
|
|
[transports["STORMWIND_MOUNTHYJAL_PORTAL"]] = true,
|
|
[transports["STORMWIND_DEEPHOLM_PORTAL"]] = true,
|
|
[transports["STORMWIND_ULDUM_PORTAL"]] = true,
|
|
[transports["STORMWIND_VASHJIR_PORTAL"]] = true,
|
|
[transports["STORMWIND_TOLBARAD_PORTAL"]] = true,
|
|
[transports["STORMWIND_JADEFOREST_PORTAL"]] = true,
|
|
[transports["STORMWIND_TIRAGARDESOUND_BOAT"]] = true,
|
|
[transports["STORMWIND_TIRAGARDESOUND_PORTAL"]] = true,
|
|
[transports["STORMWIND_STORMSHIELD_PORTAL"]] = true,
|
|
[transports["STORMWIND_EXODAR_PORTAL"]] = true,
|
|
[transports["STORMWIND_SHATTRATH_PORTAL"]] = true,
|
|
[transports["STORMWIND_DALARAN_PORTAL"]] = true,
|
|
[transports["STORMWIND_COT_PORTAL"]] = true,
|
|
[transports["STORMWIND_AZSUNA_PORTAL"]] = true,
|
|
[transports["STORMWIND_ORIBOS_PORTAL"]] = true,
|
|
[transports["STORMWIND_VALDRAKKEN_PORTAL"]] = true,
|
|
[transports["STORMWIND_WAKINGSHORES_BOAT"]] = true,
|
|
[transports["STORMWIND_AMIRDRASSIL_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2] = true, -- Stormwind, Elwynn (A)
|
|
},
|
|
faction = "Alliance",
|
|
type = "City",
|
|
}
|
|
|
|
zones[BZ["Undercity"]] = {
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = BZ["Ruins of Lordaeron"],
|
|
paths = {
|
|
[BZ["Tirisfal Glades"]] = true,
|
|
[transports["UNDERCITY_SILVERMOON_TELEPORT"]] = true,
|
|
[transports["UNDERCITY_HELLFIRE_PORTAL"]] = true,
|
|
[transports["UNDERCITY_KELPTHAR_FLIGHTPATH"]] = true,
|
|
[BZ["Ruins of Lordaeron"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[11] = true, -- Undercity, Tirisfal (H)
|
|
},
|
|
faction = "Horde",
|
|
type = "City",
|
|
}
|
|
|
|
zones[BZ["Ironforge"]] = {
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = BZ["Gnomeregan"],
|
|
paths = {
|
|
[BZ["Dun Morogh"]] = true,
|
|
[BZ["Deeprun Tram"]] = true,
|
|
[transports["IRONFORGE_KELPTHAR_FLIGHTPATH"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[6] = true, -- Ironforge, Dun Morogh (A)
|
|
},
|
|
faction = "Alliance",
|
|
type = "City",
|
|
}
|
|
|
|
zones[BZ["Silvermoon City"]] = {
|
|
continent = Eastern_Kingdoms,
|
|
expansion = The_Burning_Crusade,
|
|
paths = {
|
|
[BZ["Eversong Woods"]] = true,
|
|
[transports["SILVERMOON_UNDERCITY_TELEPORT"]] = true,
|
|
[transports["SILVERMOON_ORGRIMMAR_PORTAL"]] = true,
|
|
[transports["SILVERMOON_QUELDANAS_FLIGHTPATH"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[82] = true, -- Silvermoon City (H)
|
|
},
|
|
faction = "Horde",
|
|
type = "City",
|
|
}
|
|
|
|
-- Human starting zone
|
|
zones[BZ["Northshire"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Elwynn Forest"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
}
|
|
|
|
-- Blood Elf starting zone
|
|
zones[BZ["Sunstrider Isle"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = The_Burning_Crusade,
|
|
paths = {
|
|
[BZ["Eversong Woods"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
}
|
|
|
|
-- Undead starting zone
|
|
zones[BZ["Deathknell"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Tirisfal Glades"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
}
|
|
|
|
-- Dwarven starting zone
|
|
zones[BZ["Coldridge Valley"]] = {
|
|
low = 1,
|
|
high = 10,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Dun Morogh"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
}
|
|
|
|
-- Gnome starting zone
|
|
zones[BZ["New Tinkertown"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Dun Morogh"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
}
|
|
|
|
zones[BZ["Dun Morogh"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
ct_low = 1,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = BZ["Gnomeregan"],
|
|
paths = {
|
|
[BZ["Wetlands"]] = true,
|
|
[BZ["Gnomeregan"]] = true,
|
|
[BZ["Ironforge"]] = true,
|
|
[BZ["Loch Modan"]] = true,
|
|
[BZ["Coldridge Valley"]] = true,
|
|
[BZ["New Tinkertown"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[620] = true, -- Gol'Bolar Quarry, Dun Morogh (A)
|
|
[619] = true, -- Kharanos, Dun Morogh (A)
|
|
[6] = true, -- Ironforge, Dun Morogh (A)
|
|
},
|
|
faction = "Alliance",
|
|
}
|
|
|
|
zones[BZ["Elwynn Forest"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
ct_low = 1,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Northshire"]] = true,
|
|
[BZ["Westfall"]] = true,
|
|
[BZ["Redridge Mountains"]] = true,
|
|
[BZ["Stormwind City"]] = true,
|
|
[BZ["Duskwood"]] = true,
|
|
[BZ["Burning Steppes"]] = true,
|
|
[transports["ELWYNNFOREST_DARKMOON_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2] = true, -- Stormwind, Elwynn (A)
|
|
[582] = true, -- Goldshire, Elwynn (A)
|
|
[589] = true, -- Eastvale Logging Camp, Elwynn (A)
|
|
},
|
|
faction = "Alliance",
|
|
}
|
|
|
|
zones[BZ["Eversong Woods"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
ct_low = 1,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = The_Burning_Crusade,
|
|
paths = {
|
|
[BZ["Silvermoon City"]] = true,
|
|
[BZ["Ghostlands"]] = true,
|
|
[BZ["Sunstrider Isle"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[82] = true, -- Silvermoon City (H)
|
|
[631] = true, -- Falconwing Square, Eversong Woods (H)
|
|
[625] = true, -- Fairbreeze Village, Eversong Woods (H)
|
|
},
|
|
faction = "Horde",
|
|
}
|
|
|
|
-- Worgen starting zone
|
|
zones[BZ["Gilneas"]] = {
|
|
low = 1,
|
|
high = 20,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
paths = {}, -- phased instance
|
|
faction = "Alliance",
|
|
}
|
|
|
|
zones[BZ["Gilneas City"]] = {
|
|
low = 1,
|
|
high = 20,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
paths = {}, -- phased instance
|
|
faction = "Alliance",
|
|
}
|
|
|
|
zones[BZ["Ruins of Gilneas"]] = {
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
paths = {
|
|
[BZ["Silverpine Forest"]] = true,
|
|
[BZ["Ruins of Gilneas City"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[646] = true, -- Forsaken Forward Command, Gilneas (H)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Ruins of Gilneas City"]] = {
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
paths = {
|
|
[BZ["Silverpine Forest"]] = true,
|
|
[BZ["Ruins of Gilneas"]] = true,
|
|
},
|
|
}
|
|
|
|
zones[BZ["Tirisfal Glades"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
ct_low = 1,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = {
|
|
[BZ["Scarlet Monastery"]] = true,
|
|
[BZ["Scarlet Halls"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Western Plaguelands"]] = true,
|
|
[BZ["Undercity"]] = true,
|
|
[BZ["Scarlet Monastery"]] = true,
|
|
[BZ["Scarlet Halls"]] = true,
|
|
[transports["TIRISFAL_STRANGLETHORN_PORTAL"]] = true,
|
|
[transports["TIRISFAL_ORGRIMMAR_PORTAL"]] = true,
|
|
[transports["TIRISFAL_HOWLINGFJORD_PORTAL"]] = true,
|
|
[BZ["Silverpine Forest"]] = true,
|
|
[BZ["Deathknell"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[11] = true, -- Undercity, Tirisfal (H)
|
|
[384] = true, -- The Bulwark, Tirisfal (H)
|
|
[460] = true, -- Brill, Tirisfal Glades (H)
|
|
},
|
|
-- complexes = {
|
|
-- [BZ["Scarlet Monastery"]] = true, -- Duplicate name with instance (thanks, Blizz)
|
|
-- },
|
|
faction = "Horde",
|
|
}
|
|
|
|
zones[BZ["Westfall"]] = {
|
|
low = 5,
|
|
high = 30,
|
|
ct_low = 5,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = BZ["The Deadmines"],
|
|
paths = {
|
|
[BZ["Duskwood"]] = true,
|
|
[BZ["Elwynn Forest"]] = true,
|
|
[BZ["The Deadmines"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[584] = true, -- Furlbrow's Pumpkin Farm, Westfall (A)
|
|
[583] = true, -- Moonbrook, Westfall (A)
|
|
[4] = true, -- Sentinel Hill, Westfall (A)
|
|
},
|
|
faction = "Alliance",
|
|
}
|
|
|
|
zones[BZ["Ghostlands"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
ct_low = 1,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = The_Burning_Crusade,
|
|
instances = BZ["Zul'Aman"],
|
|
paths = {
|
|
[BZ["Eastern Plaguelands"]] = true,
|
|
[BZ["Zul'Aman"]] = true,
|
|
[BZ["Eversong Woods"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[83] = true, -- Tranquillien, Ghostlands (H)
|
|
[205] = true, -- Zul'Aman, Ghostlands (N)
|
|
},
|
|
faction = "Horde",
|
|
}
|
|
|
|
zones[BZ["Loch Modan"]] = {
|
|
low = 5,
|
|
high = 30,
|
|
ct_low = 5,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Wetlands"]] = true,
|
|
[BZ["Badlands"]] = true,
|
|
[BZ["Dun Morogh"]] = true,
|
|
[BZ["Searing Gorge"]] = not isHorde and true or nil,
|
|
},
|
|
flightnodes = {
|
|
[555] = true, -- Farstrider Lodge, Loch Modan (A)
|
|
[8] = true, -- Thelsamar, Loch Modan (A)
|
|
},
|
|
faction = "Alliance",
|
|
}
|
|
|
|
zones[BZ["Silverpine Forest"]] = {
|
|
low = 5,
|
|
high = 30,
|
|
ct_low = 5,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = BZ["Shadowfang Keep"],
|
|
paths = {
|
|
[BZ["Tirisfal Glades"]] = true,
|
|
[BZ["Hillsbrad Foothills"]] = true,
|
|
[BZ["Shadowfang Keep"]] = true,
|
|
[BZ["Ruins of Gilneas"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[654] = true, -- The Forsaken Front, Silverpine Forest (H)
|
|
[10] = true, -- The Sepulcher, Silverpine Forest (H)
|
|
[645] = true, -- Forsaken High Command, Silverpine Forest (H)
|
|
[681] = true, -- Forsaken Rear Guard, Silverpine Forest (H)
|
|
},
|
|
faction = "Horde",
|
|
}
|
|
|
|
zones[BZ["Redridge Mountains"]] = {
|
|
low = 7,
|
|
high = 30,
|
|
ct_low = 7,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Burning Steppes"]] = true,
|
|
[BZ["Elwynn Forest"]] = true,
|
|
[BZ["Duskwood"]] = true,
|
|
[BZ["Swamp of Sorrows"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[596] = true, -- Shalewind Canyon, Redridge (A)
|
|
[615] = true, -- Camp Everstill, Redridge (A)
|
|
[5] = true, -- Lakeshire, Redridge (A)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Duskwood"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Redridge Mountains"]] = true,
|
|
[BZ["Northern Stranglethorn"]] = true,
|
|
[BZ["Westfall"]] = true,
|
|
[BZ["Deadwind Pass"]] = true,
|
|
[BZ["Elwynn Forest"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[622] = true, -- Raven Hill, Duskwood (A)
|
|
[12] = true, -- Darkshire, Duskwood (A)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Hillsbrad Foothills"]] = {
|
|
low = 7,
|
|
high = 30,
|
|
ct_low = 7,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = BZ["Alterac Valley"],
|
|
paths = {
|
|
[BZ["Alterac Valley"]] = true,
|
|
[BZ["The Hinterlands"]] = true,
|
|
[BZ["Arathi Highlands"]] = true,
|
|
[BZ["Silverpine Forest"]] = true,
|
|
[BZ["Western Plaguelands"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[670] = true, -- Strahnbrad, Alterac Mountains (H)
|
|
[13] = true, -- Tarren Mill, Hillsbrad (H)
|
|
[667] = true, -- Ruins of Southshore, Hillsbrad (H)
|
|
[669] = true, -- Eastpoint Tower, Hillsbrad (H)
|
|
[668] = true, -- Southpoint Gate, Hillsbrad (H)
|
|
},
|
|
faction = "Horde",
|
|
}
|
|
|
|
zones[BZ["Wetlands"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Arathi Highlands"]] = true,
|
|
[transports["MENETHIL_THERAMORE_BOAT"]] = true,
|
|
[transports["MENETHIL_HOWLINGFJORD_BOAT"]] = true,
|
|
[BZ["Dun Morogh"]] = true,
|
|
[BZ["Loch Modan"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[551] = true, -- Whelgar's Retreat, Wetlands (A)
|
|
[553] = true, -- Dun Modr, Wetlands (A)
|
|
[552] = true, -- Greenwarden's Grove, Wetlands (A)
|
|
[554] = true, -- Slabchisel's Survey, Wetlands (A)
|
|
[7] = true, -- Menethil Harbor, Wetlands (A)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Arathi Highlands"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = BZ["Arathi Basin"],
|
|
paths = {
|
|
[BZ["Wetlands"]] = true,
|
|
[BZ["Hillsbrad Foothills"]] = true,
|
|
[BZ["Arathi Basin"]] = true,
|
|
[BZ["The Hinterlands"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[601] = true, -- Galen's Fall, Arathi (H)
|
|
[17] = true, -- Hammerfall, Arathi (H)
|
|
[16] = true, -- Refuge Pointe, Arathi (A)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Stranglethorn Vale"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = BZ["Zul'Gurub"],
|
|
paths = {
|
|
[BZ["Duskwood"]] = true,
|
|
[BZ["Zul'Gurub"]] = true,
|
|
[transports["STRANGLETHORN_ORGRIMMAR_ZEPPELIN"]] = true,
|
|
[transports["STRANGLETHORN_TIRISFAL_PORTAL"]] = true,
|
|
[transports["BOOTYBAY_RATCHET_BOAT"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[593] = true, -- Bambala, Stranglethorn (H)
|
|
[18] = true, -- Booty Bay, Stranglethorn (H)
|
|
[19] = true, -- Booty Bay, Stranglethorn (A)
|
|
[590] = true, -- Fort Livingston, Stranglethorn (A)
|
|
[592] = true, -- Hardwrench Hideaway, Stranglethorn (H)
|
|
[195] = true, -- Rebel Camp, Stranglethorn Vale (A)
|
|
[591] = true, -- Explorers' League Digsite, Stranglethorn (A)
|
|
[20] = true, -- Grom'gol, Stranglethorn (H)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Northern Stranglethorn"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = BZ["Zul'Gurub"],
|
|
paths = {
|
|
[BZ["The Cape of Stranglethorn"]] = true,
|
|
[BZ["Duskwood"]] = true,
|
|
[BZ["Zul'Gurub"]] = true,
|
|
[transports["STRANGLETHORN_ORGRIMMAR_ZEPPELIN"]] = true,
|
|
[transports["TIRISFAL_STRANGLETHORN_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[593] = true, -- Bambala, Stranglethorn (H)
|
|
[590] = true, -- Fort Livingston, Stranglethorn (A)
|
|
[195] = true, -- Rebel Camp, Stranglethorn Vale (A)
|
|
[20] = true, -- Grom'gol, Stranglethorn (H)
|
|
},
|
|
}
|
|
|
|
zones[BZ["The Cape of Stranglethorn"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = {
|
|
[transports["BOOTYBAY_RATCHET_BOAT"]] = true,
|
|
[BZ["Northern Stranglethorn"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[18] = true, -- Booty Bay, Stranglethorn (H)
|
|
[19] = true, -- Booty Bay, Stranglethorn (A)
|
|
[592] = true, -- Hardwrench Hideaway, Stranglethorn (H)
|
|
[591] = true, -- Explorers' League Digsite, Stranglethorn (A)
|
|
},
|
|
}
|
|
|
|
zones[BZ["The Hinterlands"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Hillsbrad Foothills"]] = true,
|
|
[BZ["Western Plaguelands"]] = true,
|
|
[BZ["Arathi Highlands"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[617] = true, -- Hiri'watha Research Station, The Hinterlands (H)
|
|
[43] = true, -- Aerie Peak, The Hinterlands (A)
|
|
[618] = true, -- Stormfeather Outpost, The Hinterlands (A)
|
|
[76] = true, -- Revantusk Village, The Hinterlands (H)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Western Plaguelands"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = BZ["Scholomance"],
|
|
paths = {
|
|
[BZ["The Hinterlands"]] = true,
|
|
[BZ["Eastern Plaguelands"]] = true,
|
|
[BZ["Tirisfal Glades"]] = true,
|
|
[BZ["Scholomance"]] = true,
|
|
[BZ["Hillsbrad Foothills"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[649] = true, -- Andorhal, Western Plaguelands (H)
|
|
[651] = true, -- The Menders' Stead, Western Plaguelands (N)
|
|
[650] = true, -- Andorhal, Western Plaguelands (A)
|
|
[66] = true, -- Chillwind Camp, Western Plaguelands (A)
|
|
[672] = true, -- Hearthglen, Western Plaguelands (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Eastern Plaguelands"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = BZ["Stratholme"],
|
|
paths = {
|
|
[BZ["Western Plaguelands"]] = true,
|
|
[BZ["Stratholme"]] = true,
|
|
[BZ["Ghostlands"]] = true,
|
|
[transports["EASTERNPLAGUE_QUELDANAS_FLIGHTPATH"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[383] = true, -- Thondroril River, Eastern Plaguelands (N)
|
|
[1862] = true, -- Acherus: The Ebon Hold (N)
|
|
[67] = true, -- Light's Hope Chapel, Eastern Plaguelands (A)
|
|
[86] = true, -- Eastwall Tower, Eastern Plaguelands (N)
|
|
[68] = true, -- Light's Hope Chapel, Eastern Plaguelands (H)
|
|
[630] = true, -- Light's Shield Tower, Eastern Plaguelands (N)
|
|
[85] = true, -- Northpass Tower, Eastern Plaguelands (N)
|
|
[87] = true, -- Crown Guard Tower, Eastern Plaguelands (N)
|
|
[84] = true, -- Plaguewood Tower, Eastern Plaguelands (N)
|
|
[315] = true, -- Acherus: The Ebon Hold (N)
|
|
},
|
|
type = "PvP Zone",
|
|
}
|
|
|
|
zones[BZ["Badlands"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = {
|
|
[BZ["Uldaman"]] = true,
|
|
[BZ["Uldaman: Legacy of Tyr"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Uldaman"]] = true,
|
|
[BZ["Uldaman: Legacy of Tyr"]] = true,
|
|
[BZ["Searing Gorge"]] = true,
|
|
[BZ["Loch Modan"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[635] = true, -- Fuselight, Badlands (N)
|
|
[632] = true, -- Bloodwatcher Point, Badlands (H)
|
|
[634] = true, -- Dragon's Mouth, Badlands (A)
|
|
[633] = true, -- Dustwind Dig, Badlands (A)
|
|
[21] = true, -- New Kargath, Badlands (H)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Searing Gorge"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = {
|
|
[BZ["Blackrock Depths"]] = true,
|
|
[BZ["Blackrock Caverns"]] = true,
|
|
[BZ["Blackwing Lair"]] = true,
|
|
[BZ["Blackwing Descent"]] = true,
|
|
[BZ["Molten Core"]] = true,
|
|
[BZ["Blackrock Spire"]] = true,
|
|
[BZ["Upper Blackrock Spire"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Blackrock Mountain"]] = true,
|
|
[BZ["Badlands"]] = true,
|
|
[BZ["Loch Modan"]] = not isHorde and true or nil,
|
|
[transports["SEARINGGORGE_KELPTHAR_FLIGHTPATH"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[673] = true, -- Iron Summit, Searing Gorge (N)
|
|
[75] = true, -- Thorium Point, Searing Gorge (H)
|
|
[74] = true, -- Thorium Point, Searing Gorge (A)
|
|
},
|
|
complexes = {
|
|
[BZ["Blackrock Mountain"]] = true,
|
|
},
|
|
}
|
|
|
|
zones[BZ["Burning Steppes"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = {
|
|
[BZ["Blackrock Depths"]] = true,
|
|
[BZ["Blackrock Caverns"]] = true,
|
|
[BZ["Blackwing Lair"]] = true,
|
|
[BZ["Blackwing Descent"]] = true,
|
|
[BZ["Molten Core"]] = true,
|
|
[BZ["Blackrock Spire"]] = true,
|
|
[BZ["Upper Blackrock Spire"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Blackrock Mountain"]] = true,
|
|
[BZ["Redridge Mountains"]] = true,
|
|
[BZ["Elwynn Forest"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[70] = true, -- Flame Crest, Burning Steppes (H)
|
|
[676] = true, -- Chiselgrip, Burning Steppes (N)
|
|
[675] = true, -- Flamestar Post, Burning Steppes (N)
|
|
[71] = true, -- Morgan's Vigil, Burning Steppes (A)
|
|
},
|
|
complexes = {
|
|
[BZ["Blackrock Mountain"]] = true,
|
|
},
|
|
}
|
|
|
|
zones[BZ["Swamp of Sorrows"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Eastern_Kingdoms,
|
|
instances = BZ["The Temple of Atal'Hakkar"],
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Blasted Lands"]] = true,
|
|
[BZ["Deadwind Pass"]] = true,
|
|
[BZ["The Temple of Atal'Hakkar"]] = true,
|
|
[BZ["Redridge Mountains"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[599] = true, -- Bogpaddle, Swamp of Sorrows (N)
|
|
[598] = true, -- Marshtide Watch, Swamp of Sorrows (A)
|
|
[600] = true, -- The Harborage, Swamp of Sorrows (A)
|
|
[56] = true, -- Stonard, Swamp of Sorrows (H)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Blasted Lands"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["The Dark Portal"]] = true,
|
|
[BZ["Swamp of Sorrows"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[602] = true, -- Surwich, Blasted Lands (A)
|
|
[603] = true, -- Sunveil Excursion, Blasted Lands (H)
|
|
[604] = true, -- Dreadmaul Hold, Blasted Lands (H)
|
|
[45] = true, -- Nethergarde Keep, Blasted Lands (A)
|
|
[1537] = true, -- Shattered Landing, Blasted Lands (H)
|
|
[1538] = true, -- Shattered Beachhead, Blasted Lands (A)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Deadwind Pass"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = {
|
|
[BZ["Karazhan"]] = true, -- BC raid
|
|
[BZ["Return to Karazhan"]] = true, -- Legion dungeon
|
|
},
|
|
paths = {
|
|
[BZ["Duskwood"]] = true,
|
|
[BZ["Swamp of Sorrows"]] = true,
|
|
[BZ["Karazhan"]] = true,
|
|
[BZ["Return to Karazhan"]] = true, -- Legion dungeon
|
|
},
|
|
}
|
|
|
|
-- DK starting zone
|
|
zones[BZ["Plaguelands: The Scarlet Enclave"]] = {
|
|
low = 8,
|
|
high = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
yards = 3162.5,
|
|
x_offset = 0,
|
|
y_offset = 0,
|
|
texture = "ScarletEnclave",
|
|
}
|
|
|
|
zones[BZ["Isle of Quel'Danas"]] = {
|
|
continent = Eastern_Kingdoms,
|
|
expansion = The_Burning_Crusade,
|
|
low = 25,
|
|
high = 30,
|
|
ct_low = 30,
|
|
paths = {
|
|
[BZ["Magisters' Terrace"]] = true,
|
|
[BZ["Sunwell Plateau"]] = true,
|
|
[transports["QUELDANAS_SILVERMOON_FLIGHTPATH"]] = true,
|
|
[transports["QUELDANAS_EASTERNPLAGUE_FLIGHTPATH"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[213] = true, -- Shattered Sun Staging Area (N)
|
|
},
|
|
instances = {
|
|
[BZ["Magisters' Terrace"]] = true,
|
|
[BZ["Sunwell Plateau"]] = true,
|
|
},
|
|
}
|
|
|
|
zones[BZ["Vashj'ir"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
ct_low = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
instances = {
|
|
[BZ["Throne of the Tides"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[522] = true, -- Silver Tide Hollow, Vashj'ir (N) S seahorse
|
|
[524] = true, -- Darkbreak Cove, Vashj'ir (A) A seahorse
|
|
[526] = true, -- Tenebrous Cavern, Vashj'ir (H) A seahorse
|
|
[605] = true, -- Voldrin's Hold, Vashj'ir (A) S seahorse
|
|
[611] = true, -- Voldrin's Hold, Vashj'ir (A) S
|
|
[606] = true, -- Sandy Beach, Vashj'ir (A) S
|
|
[607] = true, -- Sandy Beach, Vashj'ir (A) S seahorse
|
|
[608] = true, -- Sandy Beach, Vashj'ir (H) S
|
|
[609] = true, -- Sandy Beach, Vashj'ir (H) S seahorse
|
|
[610] = true, -- Stygian Bounty, Vashj'ir (H) S
|
|
[612] = true, -- Stygian Bounty, Vashj'ir (H) S seahorse
|
|
[521] = true, -- Smuggler's Scar, Vashj'ir (N) K seahorse
|
|
[523] = true, -- Tranquil Wash, Vashj'ir (A) S seahorse
|
|
[525] = true, -- Legion's Rest, Vashj'ir (H) S seahorse
|
|
},
|
|
}
|
|
|
|
zones[BZ["Kelp'thar Forest"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
ct_low = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
paths = {
|
|
[transports["KELPTHAR_IRONFORGE_FLIGHTPATH"]] = true,
|
|
[transports["KELPTHAR_UNDERCITY_FLIGHTPATH"]] = true,
|
|
[transports["KELPTHAR_SEARINGGORGE_FLIGHTPATH"]] = true,
|
|
[BZ["Shimmering Expanse"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[521] = true, -- Smuggler's Scar, Vashj'ir (N) seahorse
|
|
},
|
|
}
|
|
|
|
zones[BZ["Shimmering Expanse"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
ct_low = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
paths = {
|
|
[BZ["Kelp'thar Forest"]] = true,
|
|
[BZ["Abyssal Depths"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[522] = true, -- Silver Tide Hollow, Vashj'ir (N) seahorse
|
|
[605] = true, -- Voldrin's Hold, Vashj'ir (A) seahorse
|
|
[611] = true, -- Voldrin's Hold, Vashj'ir (A)
|
|
[606] = true, -- Sandy Beach, Vashj'ir (A)
|
|
[607] = true, -- Sandy Beach, Vashj'ir (A) seahorse
|
|
[608] = true, -- Sandy Beach, Vashj'ir (H)
|
|
[609] = true, -- Sandy Beach, Vashj'ir (H) seahorse
|
|
[610] = true, -- Stygian Bounty, Vashj'ir (H)
|
|
[612] = true, -- Stygian Bounty, Vashj'ir (H) seahorse
|
|
[523] = true, -- Tranquil Wash, Vashj'ir (A) seahorse
|
|
[525] = true, -- Legion's Rest, Vashj'ir (H) seahorse
|
|
},
|
|
}
|
|
|
|
zones[BZ["Abyssal Depths"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
ct_low = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
instances = {
|
|
[BZ["Throne of the Tides"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Shimmering Expanse"]] = true,
|
|
[BZ["Throne of the Tides"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[524] = true, -- Darkbreak Cove, Vashj'ir (A) seahorse
|
|
[526] = true, -- Tenebrous Cavern, Vashj'ir (H) seahorse
|
|
},
|
|
}
|
|
|
|
zones[BZ["Twilight Highlands"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
ct_low = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
instances = {
|
|
[BZ["Grim Batol"]] = true,
|
|
[BZ["The Bastion of Twilight"]] = true,
|
|
[BZ["Twin Peaks"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Wetlands"]] = true,
|
|
[BZ["Grim Batol"]] = true,
|
|
[BZ["The Bastion of Twilight"]] = true,
|
|
[BZ["Twin Peaks"]] = true,
|
|
[transports["TWILIGHTHIGHLANDS_STORMWIND_PORTAL"]] = true,
|
|
[transports["TWILIGHTHIGHLANDS_ORGRIMMAR_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[657] = true, -- The Gullet, Twilight Highlands (H)
|
|
[659] = true, -- Bloodgulch, Twilight Highlands (H)
|
|
[661] = true, -- Dragonmaw Port, Twilight Highlands (H)
|
|
[663] = true, -- Victor's Point, Twilight Highlands (A)
|
|
[665] = true, -- Thundermar, Twilight Highlands (A)
|
|
[656] = true, -- Crushblow, Twilight Highlands (H)
|
|
[658] = true, -- Vermillion Redoubt, Twilight Highlands (N)
|
|
[660] = true, -- The Krazzworks, Twilight Highlands (H)
|
|
[662] = true, -- Highbank, Twilight Highlands (A)
|
|
[664] = true, -- Firebeard's Patrol, Twilight Highlands (A)
|
|
[666] = true, -- Kirthaven, Twilight Highlands (A)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Tol Barad"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
instances = {
|
|
[BZ["Baradin Hold"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Tol Barad Peninsula"]] = true,
|
|
[BZ["Baradin Hold"]] = true,
|
|
},
|
|
type = "PvP Zone",
|
|
}
|
|
|
|
zones[BZ["Tol Barad Peninsula"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
paths = {
|
|
[BZ["Tol Barad"]] = true,
|
|
[transports["TOLBARAD_ORGRIMMAR_PORTAL"]] = true,
|
|
[transports["TOLBARAD_STORMWIND_PORTAL"]] = true,
|
|
},
|
|
}
|
|
|
|
-- zones[BZ["Amani Pass"]] = {
|
|
-- continent = Eastern_Kingdoms,
|
|
-- }
|
|
|
|
|
|
|
|
-- Kalimdor cities and zones --
|
|
|
|
zones[BZ["Orgrimmar"]] = {
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
instances = {
|
|
[BZ["Ragefire Chasm"]] = true,
|
|
[BZ["Brawl'gar Arena"]] = true,
|
|
-- [BZ["The Ring of Valor"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Durotar"]] = true,
|
|
[BZ["Ragefire Chasm"]] = true,
|
|
[BZ["Brawl'gar Arena"]] = true,
|
|
[BZ["Azshara"]] = true,
|
|
[transports["ORGRIMMAR_TIRISFAL_PORTAL"]] = true,
|
|
[transports["ORGRIMMAR_STRANGLETHORN_ZEPPELIN"]] = true,
|
|
[transports["ORGRIMMAR_BOREANTUNDRA_ZEPPELIN"]] = true,
|
|
[transports["ORGRIMMAR_THUNDERBLUFF_ZEPPELIN"]] = true,
|
|
[transports["ORGRIMMAR_TWILIGHTHIGHLANDS_PORTAL"]] = true,
|
|
[transports["ORGRIMMAR_MOUNTHYJAL_PORTAL"]] = true,
|
|
[transports["ORGRIMMAR_DEEPHOLM_PORTAL"]] = true,
|
|
[transports["ORGRIMMAR_ULDUM_PORTAL"]] = true,
|
|
[transports["ORGRIMMAR_VASHJIR_PORTAL"]] = true,
|
|
[transports["ORGRIMMAR_TOLBARAD_PORTAL"]] = true,
|
|
[transports["ORGRIMMAR_JADEFOREST_PORTAL"]] = true,
|
|
[transports["ORGRIMMAR_ZULDAZAR_PORTAL"]] = true,
|
|
[transports["ORGRIMMAR_WARSPEAR_PORTAL"]] = true,
|
|
[transports["ORGRIMMAR_SILVERMOON_PORTAL"]] = true,
|
|
[transports["ORGRIMMAR_SHATTRATH_PORTAL"]] = true,
|
|
[transports["ORGRIMMAR_DALARAN_PORTAL"]] = true,
|
|
[transports["ORGRIMMAR_AZSUNA_PORTAL"]] = true,
|
|
[transports["ORGRIMMAR_ORIBOS_PORTAL"]] = true,
|
|
[transports["ORGRIMMAR_COT_PORTAL"]] = true,
|
|
[transports["ORGRIMMAR_VALDRAKKEN_PORTAL"]] = true,
|
|
[transports["ORGRIMMAR_WAKINGSHORES_ZEPPELIN"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[23] = true, -- Orgrimmar, Durotar (H)
|
|
},
|
|
faction = "Horde",
|
|
type = "City",
|
|
}
|
|
|
|
zones[BZ["Thunder Bluff"]] = {
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Mulgore"]] = true,
|
|
[transports["THUNDERBLUFF_ORGRIMMAR_ZEPPELIN"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[22] = true, -- Thunder Bluff, Mulgore (H)
|
|
},
|
|
faction = "Horde",
|
|
type = "City",
|
|
}
|
|
|
|
zones[BZ["The Exodar"]] = {
|
|
continent = Kalimdor,
|
|
expansion = The_Burning_Crusade,
|
|
paths = {
|
|
[BZ["Azuremyst Isle"]] = true,
|
|
[transports["EXODAR_STORMWIND_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[94] = true, -- The Exodar (A)
|
|
},
|
|
faction = "Alliance",
|
|
type = "City",
|
|
}
|
|
|
|
zones[BZ["Darnassus"]] = {
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = {
|
|
[transports["DARNASSUS_TELDRASSIL_TELEPORT"]] = true,
|
|
[transports["DARNASSUS_HELLFIRE_PORTAL"]] = true,
|
|
[transports["DARNASSUS_EXODAR_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[457] = true, -- Darnassus, Teldrassil (A)
|
|
},
|
|
faction = "Alliance",
|
|
type = "City",
|
|
}
|
|
|
|
|
|
-- Draenei starting zone
|
|
zones[BZ["Ammen Vale"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
continent = Kalimdor,
|
|
expansion = The_Burning_Crusade,
|
|
paths = {
|
|
[BZ["Azuremyst Isle"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
}
|
|
|
|
-- Troll starting zone
|
|
zones[BZ["Valley of Trials"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Durotar"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
}
|
|
|
|
zones[BZ["Echo Isles"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Durotar"]] = true,
|
|
[transports["ECHOISLES_ZULDAZAR_BOAT"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
}
|
|
|
|
-- Tauren starting zone
|
|
zones[BZ["Camp Narache"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Mulgore"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
}
|
|
|
|
-- Night Elf starting zone
|
|
zones[BZ["Shadowglen"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Teldrassil"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
}
|
|
|
|
|
|
zones[BZ["Azuremyst Isle"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
ct_low = 1,
|
|
continent = Kalimdor,
|
|
expansion = The_Burning_Crusade,
|
|
paths = {
|
|
[BZ["The Exodar"]] = true,
|
|
[BZ["Ammen Vale"]] = true,
|
|
[BZ["Bloodmyst Isle"]] = true,
|
|
[transports["AZUREMYST_TELDRASSIL_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[94] = true, -- The Exodar (A)
|
|
[624] = true, -- Azure Watch, Azuremyst Isle (A)
|
|
},
|
|
faction = "Alliance",
|
|
}
|
|
|
|
zones[BZ["Durotar"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
ct_low = 1,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
instances = BZ["Ragefire Chasm"],
|
|
paths = {
|
|
[BZ["Northern Barrens"]] = true,
|
|
[BZ["Orgrimmar"]] = true,
|
|
[BZ["Valley of Trials"]] = true,
|
|
[BZ["Echo Isles"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[536] = true, -- Sen'jin Village, Durotar (H)
|
|
[537] = true, -- Razor Hill, Durotar (H)
|
|
[23] = true, -- Orgrimmar, Durotar (H)
|
|
},
|
|
faction = "Horde",
|
|
}
|
|
|
|
zones[BZ["Mulgore"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
ct_low = 1,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Camp Narache"]] = true,
|
|
[BZ["Thunder Bluff"]] = true,
|
|
[BZ["Southern Barrens"]] = true,
|
|
[transports["MULGORE_DARKMOON_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[402] = true, -- Bloodhoof Village, Mulgore (H)
|
|
[22] = true, -- Thunder Bluff, Mulgore (H)
|
|
},
|
|
faction = "Horde",
|
|
}
|
|
|
|
zones[BZ["Teldrassil"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
ct_low = 1,
|
|
continent = Kalimdor,
|
|
expansion = The_Burning_Crusade,
|
|
paths = {
|
|
[BZ["Shadowglen"]] = true,
|
|
[transports["TELDRASSIL_AZUREMYST_PORTAL"]] = true,
|
|
[transports["TELDRASSIL_STORMWIND_PORTAL"]] = true,
|
|
[transports["TELDRASSIL_DARNASSUS_TELEPORT"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[27] = true, -- Rut'theran Village, Teldrassil (A)
|
|
[456] = true, -- Dolanaar, Teldrassil (A)
|
|
[457] = true, -- Darnassus, Teldrassil (A)
|
|
},
|
|
faction = "Alliance",
|
|
}
|
|
|
|
zones[BZ["Azshara"]] = {
|
|
low = 5,
|
|
high = 30,
|
|
ct_low = 5,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Ashenvale"]] = true,
|
|
[BZ["Orgrimmar"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[683] = true, -- Valormok, Azshara (H)
|
|
[613] = true, -- Southern Rocketway, Azshara (H)
|
|
[44] = true, -- Bilgewater Harbor, Azshara (H)
|
|
[614] = true, -- Northern Rocketway, Azshara (H)
|
|
},
|
|
faction = "Horde",
|
|
}
|
|
|
|
zones[BZ["Bloodmyst Isle"]] = {
|
|
low = 1,
|
|
high = 30,
|
|
ct_low = 1,
|
|
continent = Kalimdor,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Azuremyst Isle"],
|
|
flightnodes = {
|
|
[93] = true, -- Blood Watch, Bloodmyst Isle (A)
|
|
},
|
|
faction = "Alliance",
|
|
}
|
|
|
|
zones[BZ["Darkshore"]] = {
|
|
low = 5,
|
|
high = 30,
|
|
ct_low = 5,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Ashenvale"]] = true,
|
|
[transports["DARKSHORE_AMIRDRASSIL_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[339] = true, -- Grove of the Ancients, Darkshore (A)
|
|
[26] = true, -- Lor'danel, Darkshore (A)
|
|
},
|
|
faction = "Alliance",
|
|
}
|
|
|
|
zones[BZ["Northern Barrens"]] = {
|
|
low = 5,
|
|
high = 30,
|
|
ct_low = 5,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
instances = {
|
|
[BZ["Wailing Caverns"]] = true,
|
|
[BZ["Warsong Gulch"]] = isHorde and true or nil,
|
|
},
|
|
paths = {
|
|
[BZ["Southern Barrens"]] = true,
|
|
[BZ["Ashenvale"]] = true,
|
|
[BZ["Durotar"]] = true,
|
|
[BZ["Wailing Caverns"]] = true,
|
|
[transports["RATCHET_BOOTYBAY_BOAT"]] = true,
|
|
[BZ["Warsong Gulch"]] = isHorde and true or nil,
|
|
[BZ["Stonetalon Mountains"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[458] = true, -- Nozzlepot's Outpost, Northern Barrens (H)
|
|
[80] = true, -- Ratchet, Northern Barrens (N)
|
|
[25] = true, -- The Crossroads, Northern Barrens (H)
|
|
},
|
|
faction = "Horde",
|
|
}
|
|
|
|
zones[BZ["Ashenvale"]] = {
|
|
low = 7,
|
|
high = 30,
|
|
ct_low = 7,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
instances = {
|
|
[BZ["Blackfathom Deeps"]] = true,
|
|
[BZ["Warsong Gulch"]] = not isHorde and true or nil,
|
|
},
|
|
paths = {
|
|
[BZ["Azshara"]] = true,
|
|
[BZ["Northern Barrens"]] = true,
|
|
[BZ["Blackfathom Deeps"]] = true,
|
|
[BZ["Warsong Gulch"]] = not isHorde and true or nil,
|
|
[BZ["Felwood"]] = true,
|
|
[BZ["Darkshore"]] = true,
|
|
[BZ["Stonetalon Mountains"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[61] = true, -- Splintertree Post, Ashenvale (H)
|
|
[351] = true, -- Stardust Spire, Ashenvale (A)
|
|
[338] = true, -- Blackfathom Camp, Ashenvale (A)
|
|
[28] = true, -- Astranaar, Ashenvale (A)
|
|
[356] = true, -- Silverwind Refuge, Ashenvale (H)
|
|
[58] = true, -- Zoram'gar Outpost, Ashenvale (H)
|
|
[167] = true, -- Forest Song, Ashenvale (A)
|
|
[354] = true, -- The Mor'Shan Ramparts, Ashenvale (H)
|
|
[350] = true, -- Hellscream's Watch, Ashenvale (H)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Stonetalon Mountains"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Desolace"]] = true,
|
|
[BZ["Northern Barrens"]] = true,
|
|
[BZ["Southern Barrens"]] = true,
|
|
[BZ["Ashenvale"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[365] = true, -- Farwatcher's Glen, Stonetalon Mountains (A)
|
|
[33] = true, -- Thal'darah Overlook, Stonetalon Mountains (A)
|
|
[541] = true, -- Mirkfallon Post, Stonetalon Mountains (A)
|
|
[29] = true, -- Sun Rock Retreat, Stonetalon Mountains (H)
|
|
[360] = true, -- Cliffwalker Post, Stonetalon Mountains (H)
|
|
[540] = true, -- The Sludgewerks, Stonetalon Mountains (H)
|
|
[362] = true, -- Krom'gar Fortress, Stonetalon Mountains (H)
|
|
[363] = true, -- Malaka'jin, Stonetalon Mountains (H)
|
|
[364] = true, -- Northwatch Expedition Base Camp, Stonetalon Mountains (A)
|
|
[361] = true, -- Windshear Hold, Stonetalon Mountains (A)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Desolace"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
instances = BZ["Maraudon"],
|
|
paths = {
|
|
[BZ["Feralas"]] = true,
|
|
[BZ["Stonetalon Mountains"]] = true,
|
|
[BZ["Maraudon"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[367] = true, -- Thargad's Camp, Desolace (A)
|
|
[368] = true, -- Karnum's Glade, Desolace (N)
|
|
[369] = true, -- Thunk's Abode, Desolace (N)
|
|
[370] = true, -- Ethel Rethor, Desolace (N)
|
|
[38] = true, -- Shadowprey Village, Desolace (H)
|
|
[366] = true, -- Furien's Post, Desolace (H)
|
|
[37] = true, -- Nijel's Point, Desolace (A)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Southern Barrens"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
instances = {
|
|
[BZ["Razorfen Kraul"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Northern Barrens"]] = true,
|
|
[BZ["Thousand Needles"]] = true,
|
|
[BZ["Razorfen Kraul"]] = true,
|
|
[BZ["Dustwallow Marsh"]] = true,
|
|
[BZ["Stonetalon Mountains"]] = true,
|
|
[BZ["Mulgore"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[388] = true, -- Northwatch Hold, Southern Barrens (A)
|
|
[389] = true, -- Fort Triumph, Southern Barrens (A)
|
|
[390] = true, -- Hunter's Hill, Southern Barrens (H)
|
|
[77] = true, -- Vendetta Point, Southern Barrens (H)
|
|
[387] = true, -- Honor's Stand, Southern Barrens (A)
|
|
[391] = true, -- Desolation Hold, Southern Barrens (H)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Dustwallow Marsh"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
instances = BZ["Onyxia's Lair"],
|
|
paths = {
|
|
[BZ["Onyxia's Lair"]] = true,
|
|
[BZ["Southern Barrens"]] = true,
|
|
[BZ["Thousand Needles"]] = true,
|
|
[transports["THERAMORE_MENETHIL_BOAT"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[55] = true, -- Brackenwall Village, Dustwallow Marsh (H)
|
|
[179] = true, -- Mudsprocket, Dustwallow Marsh (N)
|
|
[32] = true, -- Theramore, Dustwallow Marsh (A)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Feralas"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
instances = {
|
|
[BZ["Dire Maul - East"]] = true,
|
|
[BZ["Dire Maul - North"]] = true,
|
|
[BZ["Dire Maul - West"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Thousand Needles"]] = true,
|
|
[BZ["Desolace"]] = true,
|
|
[BZ["Dire Maul"]] = true,
|
|
[transports["FERALAS_AMIRDRASSIL_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[565] = true, -- Dreamer's Rest, Feralas (A)
|
|
[567] = true, -- Tower of Estulan, Feralas (A)
|
|
[569] = true, -- Stonemaul Hold, Feralas (H)
|
|
[41] = true, -- Feathermoon, Feralas (A)
|
|
[568] = true, -- Camp Ataya, Feralas (H)
|
|
[42] = true, -- Camp Mojache, Feralas (H)
|
|
[31] = true, -- Shadebough, Feralas (A)
|
|
},
|
|
complexes = {
|
|
[BZ["Dire Maul"]] = true,
|
|
},
|
|
}
|
|
|
|
zones[BZ["Thousand Needles"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
instances = {
|
|
[BZ["Razorfen Downs"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Feralas"]] = true,
|
|
[BZ["Southern Barrens"]] = true,
|
|
[BZ["Tanaris"]] = true,
|
|
[BZ["Dustwallow Marsh"]] = true,
|
|
[BZ["Razorfen Downs"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[513] = true, -- Fizzle & Pozzik's Speedbarge, Thousand Needles (N)
|
|
[30] = true, -- Westreach Summit, Thousand Needles (H)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Felwood"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Winterspring"]] = true,
|
|
[BZ["Moonglade"]] = true,
|
|
[BZ["Ashenvale"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[595] = true, -- Wildheart Point, Felwood (N)
|
|
[597] = true, -- Irontree Clearing, Felwood (H)
|
|
[166] = true, -- Emerald Sanctuary, Felwood (N)
|
|
[594] = true, -- Whisperwind Grove, Felwood (N)
|
|
[65] = true, -- Talonbranch Glade, Felwood (A)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Tanaris"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
instances = {
|
|
[BZ["Zul'Farrak"]] = true,
|
|
[BZ["Old Hillsbrad Foothills"]] = true,
|
|
[BZ["The Black Morass"]] = true,
|
|
[BZ["Hyjal Summit"]] = true,
|
|
[BZ["The Culling of Stratholme"]] = true,
|
|
[BZ["End Time"]] = true,
|
|
[BZ["Hour of Twilight"]] = true,
|
|
[BZ["Well of Eternity"]] = true,
|
|
[BZ["Dragon Soul"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Thousand Needles"]] = true,
|
|
[BZ["Un'Goro Crater"]] = true,
|
|
[BZ["Zul'Farrak"]] = true,
|
|
[BZ["Caverns of Time"]] = true,
|
|
[BZ["Uldum"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[532] = true, -- Gunstan's Dig, Tanaris (A)
|
|
[39] = true, -- Gadgetzan, Tanaris (A)
|
|
[531] = true, -- Dawnrise Expedition, Tanaris (H)
|
|
[40] = true, -- Gadgetzan, Tanaris (H)
|
|
[539] = true, -- Bootlegger Outpost, Tanaris (N)
|
|
},
|
|
complexes = {
|
|
[BZ["Caverns of Time"]] = true,
|
|
},
|
|
}
|
|
|
|
zones[BZ["Un'Goro Crater"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Silithus"]] = true,
|
|
[BZ["Tanaris"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[79] = true, -- Marshal's Stand, Un'Goro Crater (N)
|
|
[386] = true, -- Mossy Pile, Un'Goro Crater (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Winterspring"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Felwood"]] = true,
|
|
[BZ["Moonglade"]] = true,
|
|
[BZ["Mount Hyjal"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[53] = true, -- Everlook, Winterspring (H)
|
|
[52] = true, -- Everlook, Winterspring (A)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Silithus"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Un'Goro Crater"]] = true,
|
|
[BZ["Ahn'Qiraj: The Fallen Kingdom"]] = true,
|
|
[transports["SILITHUS_ZULDAZAR_PORTAL"]] = true,
|
|
[transports["SILITHUS_TIRAGARDESOUND_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[73] = true, -- Cenarion Hold, Silithus (A)
|
|
[72] = true, -- Cenarion Hold, Silithus (H)
|
|
[2059] = true, -- Southwind Village, Silithus
|
|
},
|
|
instances = {
|
|
[BZ["Ahn'Qiraj"]] = true,
|
|
[BZ["Ruins of Ahn'Qiraj"]] = true,
|
|
},
|
|
complexes = {
|
|
[BZ["Ahn'Qiraj: The Fallen Kingdom"]] = true,
|
|
},
|
|
type = "PvP Zone",
|
|
}
|
|
|
|
zones[BZ["Moonglade"]] = {
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
low = 1,
|
|
high = 30,
|
|
ct_low = 1,
|
|
paths = {
|
|
[BZ["Felwood"]] = true,
|
|
[BZ["Winterspring"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[49] = true, -- Moonglade (A)
|
|
[69] = true, -- Moonglade (H)
|
|
[62] = true, -- Nighthaven, Moonglade (A)
|
|
[63] = true, -- Nighthaven, Moonglade (H)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Mount Hyjal"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
ct_low = 30,
|
|
continent = Kalimdor,
|
|
expansion = Cataclysm,
|
|
paths = {
|
|
[BZ["Winterspring"]] = true,
|
|
[transports["MOUNTHYJAL_ORGRIMMAR_PORTAL"]] = true,
|
|
[transports["MOUNTHYJAL_STORMWIND_PORTAL"]] = true,
|
|
[transports["MOUNTHYJAL_MOLTENFRONT_PORTAL"]] = true,
|
|
[transports["MOUNTHYJAL_AMIRDRASSIL_PORTAL"]] = true,
|
|
[BZ["Firelands"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[558] = true, -- Grove of Aessina, Hyjal (N)
|
|
[616] = true, -- Gates of Sothann, Hyjal (N)
|
|
[781] = true, -- Sanctuary of Malorne, Hyjal (N)
|
|
[559] = true, -- Nordrassil, Hyjal (N)
|
|
[557] = true, -- Shrine of Aviana, Hyjal (N)
|
|
},
|
|
instances = {
|
|
[BZ["Firelands"]] = true,
|
|
},
|
|
}
|
|
|
|
local function GetUldumMinLevel()
|
|
if playerLevel < 50 then return 30 else return 50 end
|
|
end
|
|
|
|
local function GetUldumMaxLevel()
|
|
if playerLevel < 50 then return 35 else return 50 end
|
|
end
|
|
|
|
local function GetUldumExpansion()
|
|
if playerLevel < 50 then return Cataclysm else return Battle_for_Azeroth end
|
|
end
|
|
|
|
local function GetUldumInstances()
|
|
if playerLevel < 50 then
|
|
return {
|
|
[BZ["Halls of Origination"]] = true,
|
|
[BZ["Lost City of the Tol'vir"]] = true,
|
|
[BZ["The Vortex Pinnacle"]] = true,
|
|
[BZ["Throne of the Four Winds"]] = true,
|
|
-- [BZ["Tol'Viron"]] = true, -- Arena
|
|
}
|
|
else
|
|
return {
|
|
[BZ["Halls of Origination"]] = true,
|
|
[BZ["Lost City of the Tol'vir"]] = true,
|
|
[BZ["The Vortex Pinnacle"]] = true,
|
|
[BZ["Throne of the Four Winds"]] = true,
|
|
[BZ["Ny'alotha"]] = true, -- Entrance can be either here or in Vale of Eternal Blossoms
|
|
-- [BZ["Tol'Viron"]] = true, -- Arena
|
|
}
|
|
end
|
|
end
|
|
|
|
-- UIMapID 249, AreaID 5034 (Cataclysm)
|
|
-- UIMapID 1527, AreaID 10833 (BfA, N'Zoth assault)
|
|
zones[BZ["Uldum"]] = {
|
|
low = GetUldumMinLevel(),
|
|
high = GetUldumMaxLevel(),
|
|
ct_low = 30,
|
|
continent = Kalimdor,
|
|
expansion = GetUldumExpansion(),
|
|
paths = {
|
|
[BZ["Tanaris"]] = true,
|
|
[BZ["Halls of Origination"]] = true,
|
|
[BZ["Lost City of the Tol'vir"]] = true,
|
|
[BZ["The Vortex Pinnacle"]] = true,
|
|
[BZ["Throne of the Four Winds"]] = true,
|
|
[BZ["Ny'alotha"]] = true, -- Entrance can be either here or in Vale of Eternal Blossoms
|
|
},
|
|
flightnodes = {
|
|
[653] = true, -- Oasis of Vir'sar, Uldum (N)
|
|
[652] = true, -- Ramkahen, Uldum (N)
|
|
[674] = true, -- Schnottz's Landing, Uldum (N)
|
|
},
|
|
instances = GetUldumInstances(),
|
|
}
|
|
|
|
-- UIMapID 1527, AreaID 10833 (BfA, N'Zoth assault)
|
|
-- zones[BZ["Uldum"]] = {
|
|
-- low = 50,
|
|
-- high = 50,
|
|
-- continent = Kalimdor,
|
|
-- expansion = Battle_for_Azeroth,
|
|
-- paths = {
|
|
-- [BZ["Tanaris"]] = true,
|
|
-- },
|
|
-- flightnodes = {
|
|
-- [653] = true, -- Oasis of Vir'sar, Uldum (N)
|
|
-- [652] = true, -- Ramkahen, Uldum (N)
|
|
-- [674] = true, -- Schnottz's Landing, Uldum (N)
|
|
-- },
|
|
-- instances = {
|
|
-- [BZ["Halls of Origination"]] = true,
|
|
-- [BZ["Lost City of the Tol'vir"]] = true,
|
|
-- [BZ["The Vortex Pinnacle"]] = true,
|
|
-- [BZ["Throne of the Four Winds"]] = true,
|
|
-- [BZ["Ny'alotha"]] = true, -- Entrance can be either here or in Vale of Eternal Blossoms
|
|
-- -- [BZ["Tol'Viron"]] = true, -- Arena
|
|
-- },
|
|
-- }
|
|
|
|
|
|
-- Daily quest zone
|
|
zones[BZ["Molten Front"]] = {
|
|
low = 32,
|
|
high = 35,
|
|
paths = {
|
|
[transports["MOLTENFRONT_MOUNTHYJAL_PORTAL"]] = true,
|
|
},
|
|
continent = Kalimdor,
|
|
expansion = Cataclysm,
|
|
}
|
|
|
|
|
|
|
|
|
|
-- Outland city and zones --
|
|
|
|
zones[BZ["Shattrath City"]] = {
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
paths = {
|
|
[BZ["Terokkar Forest"]] = true,
|
|
[BZ["Nagrand"]] = true,
|
|
[transports["SHATTRATH_QUELDANAS_PORTAL"]] = true,
|
|
[transports["SHATTRATH_STORMWIND_PORTAL"]] = true,
|
|
[transports["SHATTRATH_ORGRIMMAR_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[128] = true, -- Shattrath, Terokkar Forest (N)
|
|
},
|
|
faction = "Sanctuary",
|
|
type = "City",
|
|
}
|
|
|
|
|
|
|
|
zones[BZ["Hellfire Peninsula"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
instances = {
|
|
[BZ["The Blood Furnace"]] = true,
|
|
[BZ["Hellfire Ramparts"]] = true,
|
|
[BZ["Magtheridon's Lair"]] = true,
|
|
[BZ["The Shattered Halls"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Zangarmarsh"]] = true,
|
|
-- [BZ["The Dark Portal"]] = true, -- closed
|
|
[BZ["Terokkar Forest"]] = true,
|
|
[BZ["Hellfire Citadel"]] = true,
|
|
[transports["HELLFIRE_ORGRIMMAR_PORTAL"]] = true,
|
|
[transports["HELLFIRE_STORMWIND_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[99] = true, -- Thrallmar, Hellfire Peninsula (H)
|
|
[101] = true, -- Temple of Telhamat, Hellfire Peninsula (A)
|
|
[141] = true, -- Spinebreaker Ridge, Hellfire Peninsula (H)
|
|
[100] = true, -- Honor Hold, Hellfire Peninsula (A)
|
|
[102] = true, -- Falcon Watch, Hellfire Peninsula (H)
|
|
[129] = true, -- Hellfire Peninsula, The Dark Portal (A)
|
|
[130] = true, -- Hellfire Peninsula, The Dark Portal (H)
|
|
},
|
|
complexes = {
|
|
[BZ["Hellfire Citadel"]] = true,
|
|
},
|
|
type = "PvP Zone",
|
|
}
|
|
|
|
zones[BZ["Zangarmarsh"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
instances = {
|
|
[BZ["The Underbog"]] = true,
|
|
[BZ["Serpentshrine Cavern"]] = true,
|
|
[BZ["The Steamvault"]] = true,
|
|
[BZ["The Slave Pens"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Coilfang Reservoir"]] = true,
|
|
[BZ["Blade's Edge Mountains"]] = true,
|
|
[BZ["Terokkar Forest"]] = true,
|
|
[BZ["Nagrand"]] = true,
|
|
[BZ["Hellfire Peninsula"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[118] = true, -- Zabra'jin, Zangarmarsh (H)
|
|
[164] = true, -- Orebor Harborage, Zangarmarsh (A)
|
|
[117] = true, -- Telredor, Zangarmarsh (A)
|
|
[151] = true, -- Swamprat Post, Zangarmarsh (H)
|
|
},
|
|
complexes = {
|
|
[BZ["Coilfang Reservoir"]] = true,
|
|
},
|
|
type = "PvP Zone",
|
|
}
|
|
|
|
zones[BZ["Terokkar Forest"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
instances = {
|
|
[BZ["Mana-Tombs"]] = true,
|
|
[BZ["Sethekk Halls"]] = true,
|
|
[BZ["Shadow Labyrinth"]] = true,
|
|
[BZ["Auchenai Crypts"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Ring of Observance"]] = true,
|
|
[BZ["Shadowmoon Valley"]] = true,
|
|
[BZ["Zangarmarsh"]] = true,
|
|
[BZ["Shattrath City"]] = true,
|
|
[BZ["Hellfire Peninsula"]] = true,
|
|
[BZ["Nagrand"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[127] = true, -- Stonebreaker Hold, Terokkar Forest (H)
|
|
[128] = true, -- Shattrath, Terokkar Forest (N)
|
|
[121] = true, -- Allerian Stronghold, Terokkar Forest (A)
|
|
},
|
|
complexes = {
|
|
[BZ["Ring of Observance"]] = true,
|
|
},
|
|
type = "PvP Zone",
|
|
}
|
|
|
|
zones[BZ["Nagrand"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
instances = {
|
|
[BZ["Nagrand Arena"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Zangarmarsh"]] = true,
|
|
[BZ["Shattrath City"]] = true,
|
|
[BZ["Terokkar Forest"]] = true,
|
|
[BZ["Nagrand Arena"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[120] = true, -- Garadar, Nagrand (H)
|
|
[119] = true, -- Telaar, Nagrand (A)
|
|
},
|
|
type = "PvP Zone",
|
|
}
|
|
|
|
zones[BZ["Blade's Edge Mountains"]] = {
|
|
low = 20,
|
|
high = 30,
|
|
ct_low = 20,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
instances =
|
|
{
|
|
[BZ["Gruul's Lair"]] = true,
|
|
[BZ["Blade's Edge Arena"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Netherstorm"]] = true,
|
|
[BZ["Zangarmarsh"]] = true,
|
|
[BZ["Gruul's Lair"]] = true,
|
|
[BZ["Blade's Edge Arena"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[126] = true, -- Thunderlord Stronghold, Blade's Edge Mountains (H)
|
|
[163] = true, -- Mok'Nathal Village, Blade's Edge Mountains (H)
|
|
[160] = true, -- Evergrove, Blade's Edge Mountains (N)
|
|
[125] = true, -- Sylvanaar, Blade's Edge Mountains (A)
|
|
[156] = true, -- Toshley's Station, Blade's Edge Mountains (A)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Netherstorm"]] = {
|
|
low = 25,
|
|
high = 30,
|
|
ct_low = 25,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
instances = {
|
|
[BZ["The Mechanar"]] = true,
|
|
[BZ["The Botanica"]] = true,
|
|
[BZ["The Arcatraz"]] = true,
|
|
[BZ["Tempest Keep"]] = true, -- previously "The Eye"
|
|
[BZ["Eye of the Storm"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["The Mechanar"]] = true,
|
|
[BZ["The Botanica"]] = true,
|
|
[BZ["The Arcatraz"]] = true,
|
|
[BZ["Tempest Keep"]] = true, -- previously "The Eye"
|
|
[BZ["Eye of the Storm"]] = true,
|
|
[BZ["Blade's Edge Mountains"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[150] = true, -- Cosmowrench, Netherstorm (N)
|
|
[122] = true, -- Area 52, Netherstorm (N)
|
|
[139] = true, -- The Stormspire, Netherstorm (N)
|
|
},
|
|
-- complexes = {
|
|
-- [BZ["Tempest Keep"]] = true,
|
|
-- },
|
|
}
|
|
|
|
zones[BZ["Shadowmoon Valley"]] = {
|
|
low = 25,
|
|
high = 30,
|
|
ct_low = 25,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
instances = BZ["Black Temple"],
|
|
paths = {
|
|
[BZ["Terokkar Forest"]] = true,
|
|
[BZ["Black Temple"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[124] = true, -- Wildhammer Stronghold, Shadowmoon Valley (A)
|
|
[140] = true, -- Altar of Sha'tar, Shadowmoon Valley (N)
|
|
[123] = true, -- Shadowmoon Village, Shadowmoon Valley (H)
|
|
[159] = true, -- Sanctum of the Stars, Shadowmoon Valley (N)
|
|
},
|
|
}
|
|
|
|
|
|
|
|
|
|
-- Northrend city and zones --
|
|
|
|
zones[BZ["Dalaran"]] = {
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = {
|
|
[transports["DALARAN_CRYSTALSONG_TELEPORT"]] = true,
|
|
[transports["DALARAN_STORMWIND_PORTAL"]] = true,
|
|
[transports["DALARAN_ORGRIMMAR_PORTAL"]] = true,
|
|
[transports["DALARAN_ICECROWN_FLIGHTPATH"]] = true,
|
|
[transports["DALARAN_WINTERGRASP_FLIGHTPATH"]] = true,
|
|
[BZ["The Violet Hold"]] = true,
|
|
[BZ["Dalaran Arena"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[310] = true, -- Dalaran (N)
|
|
},
|
|
instances = {
|
|
[BZ["The Violet Hold"]] = true,
|
|
[BZ["Dalaran Arena"]] = true,
|
|
},
|
|
type = "City",
|
|
texture = "Dalaran",
|
|
faction = "Sanctuary",
|
|
}
|
|
|
|
|
|
zones[BZ["Borean Tundra"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = {
|
|
[BZ["Coldarra"]] = true,
|
|
[BZ["Dragonblight"]] = true,
|
|
[BZ["Sholazar Basin"]] = true,
|
|
[transports["BOREANTUNDRA_STORMWIND_BOAT"]] = true,
|
|
[transports["BOREANTUNDRA_ORGRIMMAR_ZEPPELIN"]] = true,
|
|
[transports["BOREANTUNDRA_DRAGONBLIGHT_BOAT"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[245] = true, -- Valiance Keep, Borean Tundra (A)
|
|
[259] = true, -- Bor'gorok Outpost, Borean Tundra (H)
|
|
[246] = true, -- Fizzcrank Airstrip, Borean Tundra (A)
|
|
[258] = true, -- Taunka'le Village, Borean Tundra (H)
|
|
[226] = true, -- Transitus Shield, Coldarra (N)
|
|
[257] = true, -- Warsong Hold, Borean Tundra (H)
|
|
[289] = true, -- Amber Ledge, Borean Tundra (N)
|
|
[296] = true, -- Unu'pe, Borean Tundra (N)
|
|
},
|
|
instances = {
|
|
[BZ["The Nexus"]] = true,
|
|
[BZ["The Oculus"]] = true,
|
|
[BZ["The Eye of Eternity"]] = true,
|
|
},
|
|
complexes = {
|
|
[BZ["Coldarra"]] = true,
|
|
},
|
|
}
|
|
|
|
zones[BZ["Howling Fjord"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = {
|
|
[BZ["Grizzly Hills"]] = true,
|
|
[transports["HOWLINGFJORD_MENETHIL_BOAT"]] = true,
|
|
[transports["HOWLINGFJORD_TIRISFAL_PORTAL"]] = true,
|
|
[transports["HOWLINGFJORD_DRAGONBLIGHT_BOAT"]] = true,
|
|
[BZ["Utgarde Keep"]] = true,
|
|
[BZ["Utgarde Pinnacle"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[248] = true, -- Apothecary Camp, Howling Fjord (H)
|
|
[191] = true, -- Vengeance Landing, Howling Fjord (H)
|
|
[190] = true, -- New Agamand, Howling Fjord (H)
|
|
[192] = true, -- Camp Winterhoof, Howling Fjord (H)
|
|
[184] = true, -- Fort Wildervar, Howling Fjord (A)
|
|
[295] = true, -- Kamagua, Howling Fjord (N)
|
|
[185] = true, -- Westguard Keep, Howling Fjord (A)
|
|
[183] = true, -- Valgarde Port, Howling Fjord (A)
|
|
},
|
|
instances = {
|
|
[BZ["Utgarde Keep"]] = true,
|
|
[BZ["Utgarde Pinnacle"]] = true,
|
|
},
|
|
}
|
|
|
|
zones[BZ["Dragonblight"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = {
|
|
[BZ["Borean Tundra"]] = true,
|
|
[BZ["Grizzly Hills"]] = true,
|
|
[BZ["Zul'Drak"]] = true,
|
|
[BZ["Crystalsong Forest"]] = true,
|
|
[transports["DRAGONBLIGHT_BOREANTUNDRA_BOAT"]] = true,
|
|
[transports["DRAGONBLIGHT_HOWLINGFJORD_BOAT"]] = true,
|
|
[BZ["Azjol-Nerub"]] = true,
|
|
[BZ["Ahn'kahet: The Old Kingdom"]] = true,
|
|
[BZ["Naxxramas"]] = true,
|
|
[BZ["The Obsidian Sanctum"]] = true,
|
|
[BZ["Strand of the Ancients"]] = true,
|
|
[BZ["The Ruby Sanctum"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[252] = true, -- Wyrmrest Temple, Dragonblight (N)
|
|
[256] = true, -- Agmar's Hammer, Dragonblight (H)
|
|
[260] = true, -- Kor'kron Vanguard, Dragonblight (H)
|
|
[254] = true, -- Venomspite, Dragonblight (H)
|
|
[247] = true, -- Stars' Rest, Dragonblight (A)
|
|
[244] = true, -- Wintergarde Keep, Dragonblight (A)
|
|
[251] = true, -- Fordragon Hold, Dragonblight (A)
|
|
[294] = true, -- Moa'ki, Dragonblight (N)
|
|
},
|
|
instances = {
|
|
[BZ["Azjol-Nerub"]] = true,
|
|
[BZ["Ahn'kahet: The Old Kingdom"]] = true,
|
|
[BZ["Naxxramas"]] = true,
|
|
[BZ["The Obsidian Sanctum"]] = true,
|
|
[BZ["Strand of the Ancients"]] = true,
|
|
[BZ["The Ruby Sanctum"]] = true,
|
|
},
|
|
}
|
|
|
|
zones[BZ["Grizzly Hills"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = {
|
|
[BZ["Howling Fjord"]] = true,
|
|
[BZ["Dragonblight"]] = true,
|
|
[BZ["Zul'Drak"]] = true,
|
|
[BZ["Drak'Tharon Keep"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[249] = true, -- Camp Oneqwah, Grizzly Hills (H)
|
|
[255] = true, -- Westfall Brigade, Grizzly Hills (A)
|
|
[250] = true, -- Conquest Hold, Grizzly Hills (H)
|
|
[253] = true, -- Amberpine Lodge, Grizzly Hills (A)
|
|
},
|
|
instances = BZ["Drak'Tharon Keep"],
|
|
}
|
|
|
|
zones[BZ["Zul'Drak"]] = {
|
|
low = 20,
|
|
high = 30,
|
|
ct_low = 20,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = {
|
|
[BZ["Dragonblight"]] = true,
|
|
[BZ["Grizzly Hills"]] = true,
|
|
[BZ["Crystalsong Forest"]] = true,
|
|
[BZ["Gundrak"]] = true,
|
|
[BZ["Drak'Tharon Keep"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[304] = true, -- The Argent Stand, Zul'Drak (N)
|
|
[305] = true, -- Ebon Watch, Zul'Drak (N)
|
|
[306] = true, -- Light's Breach, Zul'Drak (N)
|
|
[307] = true, -- Zim'Torga, Zul'Drak (N)
|
|
[331] = true, -- Gundrak, Zul'Drak (N)
|
|
},
|
|
instances = {
|
|
[BZ["Gundrak"]] = true,
|
|
[BZ["Drak'Tharon Keep"]] = true,
|
|
},
|
|
}
|
|
|
|
zones[BZ["Sholazar Basin"]] = {
|
|
low = 20,
|
|
high = 30,
|
|
ct_low = 20,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Borean Tundra"],
|
|
flightnodes = {
|
|
[308] = true, -- River's Heart, Sholazar Basin (N)
|
|
[309] = true, -- Nesingwary Base Camp, Sholazar Basin (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Icecrown"]] = {
|
|
low = 25,
|
|
high = 30,
|
|
ct_low = 25,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = {
|
|
[BZ["Trial of the Champion"]] = true,
|
|
[BZ["Trial of the Crusader"]] = true,
|
|
[BZ["The Forge of Souls"]] = true,
|
|
[BZ["Pit of Saron"]] = true,
|
|
[BZ["Halls of Reflection"]] = true,
|
|
[BZ["Icecrown Citadel"]] = true,
|
|
[BZ["Hrothgar's Landing"]] = true,
|
|
[transports["ICECROWN_DALARAN_FLIGHTPATH"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[325] = true, -- Death's Rise, Icecrown (N)
|
|
[333] = true, -- The Shadow Vault, Icecrown (N)
|
|
[334] = true, -- The Argent Vanguard, Icecrown (N)
|
|
[335] = true, -- Crusaders' Pinnacle, Icecrown (N)
|
|
[340] = true, -- Argent Tournament Grounds, Icecrown (N)
|
|
},
|
|
instances = {
|
|
[BZ["Trial of the Champion"]] = true,
|
|
[BZ["Trial of the Crusader"]] = true,
|
|
[BZ["The Forge of Souls"]] = true,
|
|
[BZ["Pit of Saron"]] = true,
|
|
[BZ["Halls of Reflection"]] = true,
|
|
[BZ["Icecrown Citadel"]] = true,
|
|
[BZ["Isle of Conquest"]] = true,
|
|
},
|
|
}
|
|
|
|
zones[BZ["The Storm Peaks"]] = {
|
|
low = 25,
|
|
high = 30,
|
|
ct_low = 25,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = {
|
|
[BZ["Crystalsong Forest"]] = true,
|
|
[BZ["Halls of Stone"]] = true,
|
|
[BZ["Halls of Lightning"]] = true,
|
|
[BZ["Ulduar"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[326] = true, -- Ulduar, The Storm Peaks (N)
|
|
[320] = true, -- K3, The Storm Peaks (N)
|
|
[321] = true, -- Frosthold, The Storm Peaks (A)
|
|
[322] = true, -- Dun Niffelem, The Storm Peaks (N)
|
|
[323] = true, -- Grom'arsh Crash-Site, The Storm Peaks (H)
|
|
[324] = true, -- Camp Tunka'lo, The Storm Peaks (H)
|
|
[327] = true, -- Bouldercrag's Refuge, The Storm Peaks (N)
|
|
},
|
|
instances = {
|
|
[BZ["Halls of Stone"]] = true,
|
|
[BZ["Halls of Lightning"]] = true,
|
|
[BZ["Ulduar"]] = true,
|
|
},
|
|
}
|
|
|
|
zones[BZ["Crystalsong Forest"]] = {
|
|
low = 25,
|
|
high = 30,
|
|
ct_low = 25,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = {
|
|
[transports["CRYSTALSONG_DALARAN_TELEPORT"]] = true,
|
|
[BZ["Dragonblight"]] = true,
|
|
[BZ["Zul'Drak"]] = true,
|
|
[BZ["The Storm Peaks"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[336] = true, -- Windrunner's Overlook, Crystalsong Forest (A)
|
|
[310] = true, -- Dalaran (N)
|
|
[337] = true, -- Sunreaver's Command, Crystalsong Forest (H)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Hrothgar's Landing"]] = {
|
|
low = 25,
|
|
high = 30,
|
|
paths = BZ["Icecrown"],
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
}
|
|
|
|
zones[BZ["Wintergrasp"]] = {
|
|
low = 25,
|
|
high = 30,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = {
|
|
[BZ["Vault of Archavon"]] = true,
|
|
[transports["WINTERGRASP_DALARAN_FLIGHTPATH"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[303] = true, -- Valiance Landing Camp, Wintergrasp (A)
|
|
[332] = true, -- Warsong Camp, Wintergrasp (H)
|
|
},
|
|
instances = BZ["Vault of Archavon"],
|
|
type = "PvP Zone",
|
|
}
|
|
|
|
zones[BZ["The Frozen Sea"]] = {
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
}
|
|
|
|
-- The Maelstrom zones --
|
|
|
|
-- Goblin start zone
|
|
zones[BZ["Kezan"]] = {
|
|
low = 1,
|
|
high = 20,
|
|
continent = The_Maelstrom,
|
|
expansion = Cataclysm,
|
|
faction = "Horde",
|
|
}
|
|
|
|
-- Goblin start zone
|
|
zones[BZ["The Lost Isles"]] = {
|
|
low = 1,
|
|
high = 20,
|
|
continent = The_Maelstrom,
|
|
expansion = Cataclysm,
|
|
faction = "Horde",
|
|
}
|
|
|
|
zones[BZ["The Maelstrom"].." (zone)"] = {
|
|
low = 30,
|
|
high = 35,
|
|
continent = The_Maelstrom,
|
|
expansion = Cataclysm,
|
|
paths = {
|
|
},
|
|
faction = "Sanctuary",
|
|
}
|
|
|
|
zones[BZ["Deepholm"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
continent = The_Maelstrom,
|
|
expansion = Cataclysm,
|
|
instances = {
|
|
[BZ["The Stonecore"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["The Stonecore"]] = true,
|
|
[transports["DEEPHOLM_ORGRIMMAR_PORTAL"]] = true,
|
|
[transports["DEEPHOLM_STORMWIND_PORTAL"]] = true,
|
|
},
|
|
}
|
|
|
|
zones[BZ["Darkmoon Island"]] = {
|
|
continent = The_Maelstrom,
|
|
expansion = Cataclysm,
|
|
paths = {
|
|
[transports["DARKMOON_MULGORE_PORTAL"]] = true,
|
|
[transports["DARKMOON_ELWYNNFOREST_PORTAL"]] = true,
|
|
},
|
|
}
|
|
|
|
|
|
|
|
-- Pandaria cities and zones --
|
|
|
|
zones[BZ["Shrine of Seven Stars"]] = {
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = {
|
|
[BZ["Vale of Eternal Blossoms"]] = true,
|
|
[transports["SEVENSTARS_STORMWIND_PORTAL"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "City",
|
|
}
|
|
|
|
zones[BZ["Shrine of Two Moons"]] = {
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = {
|
|
[BZ["Vale of Eternal Blossoms"]] = true,
|
|
[transports["TWOMOONS_ORGRIMMAR_PORTAL"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "City",
|
|
}
|
|
|
|
-- Pandaren starting zone
|
|
zones[BZ["The Wandering Isle"]] = {
|
|
low = 1,
|
|
high = 20,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
-- faction = "Sanctuary", -- Not contested and not Alliance nor Horde -> no PvP -> sanctuary
|
|
}
|
|
|
|
zones[BZ["The Jade Forest"]] = {
|
|
low = 10,
|
|
high = 35,
|
|
ct_low = 10,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
instances = {
|
|
[BZ["Temple of the Jade Serpent"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Temple of the Jade Serpent"]] = true,
|
|
[BZ["Valley of the Four Winds"]] = true,
|
|
[transports["JADEFOREST_TIMELESSISLE_FLIGHTPATH"]] = true,
|
|
[transports["JADEFOREST_ORGRIMMAR_PORTAL"]] = true,
|
|
[transports["JADEFOREST_STORMWIND_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[968] = true, -- Jade Temple Grounds, Jade Forest (N)
|
|
[895] = true, -- Dawn's Blossom, Jade Forest (N)
|
|
[972] = true, -- Pearlfin Village, Jade Forest (A)
|
|
[967] = true, -- The Arboretum, Jade Forest (N)
|
|
[969] = true, -- Sri-La Village, Jade Forest (N)
|
|
[971] = true, -- Tian Monastery, Jade Forest (N)
|
|
[973] = true, -- Honeydew Village, Jade Forest (H)
|
|
[1080] = true, -- Serpent's Overlook, Jade Forest (N)
|
|
[894] = true, -- Grookin Hill, Jade Forest (H)
|
|
[966] = true, -- Paw'Don Village, Jade Forest (A)
|
|
[970] = true, -- Emperor's Omen, Jade Forest (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Valley of the Four Winds"]] = {
|
|
low = 15,
|
|
high = 35,
|
|
ct_low = 15,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
instances = {
|
|
[BZ["Stormstout Brewery"]] = true,
|
|
[BZ["Deepwind Gorge"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Stormstout Brewery"]] = true,
|
|
[BZ["The Jade Forest"]] = true,
|
|
[BZ["Krasarang Wilds"]] = true,
|
|
[BZ["The Veiled Stair"]] = true,
|
|
[BZ["Deepwind Gorge"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[989] = true, -- Stoneplow, Valley of the Four Winds (N)
|
|
[985] = true, -- Halfhill, Valley of the Four Winds (N)
|
|
[984] = true, -- Pang's Stead, Valley of the Four Winds (N)
|
|
[1052] = true, -- Grassy Cline, Valley of the Four Winds (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Krasarang Wilds"]] = {
|
|
low = 15,
|
|
high = 35,
|
|
ct_low = 15,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = {
|
|
[BZ["Valley of the Four Winds"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1190] = true, -- Lion's Landing, Krasarang Wilds (A)
|
|
[991] = true, -- Sentinel Basecamp, Krasarang Wilds (A)
|
|
[993] = true, -- Marista, Krasarang Wilds (N)
|
|
[1195] = true, -- Domination Point, Krasarang Wilds (H)
|
|
[986] = true, -- Zhu's Watch, Krasarang Wilds (N)
|
|
[988] = true, -- The Incursion, Krasarang Wilds (A)
|
|
[990] = true, -- Dawnchaser Retreat, Krasarang Wilds (H)
|
|
[992] = true, -- Cradle of Chi-Ji, Krasarang Wilds (N)
|
|
[987] = true, -- Thunder Cleft, Krasarang Wilds (H)
|
|
},
|
|
}
|
|
|
|
zones[BZ["The Veiled Stair"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
instances = {
|
|
[BZ["Terrace of Endless Spring"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Terrace of Endless Spring"]] = true,
|
|
[BZ["Valley of the Four Winds"]] = true,
|
|
[BZ["Kun-Lai Summit"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1029] = true, -- Tavern in the Mists, The Veiled Stair (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Kun-Lai Summit"]] = {
|
|
low = 20,
|
|
high = 35,
|
|
ct_low = 20,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
instances = {
|
|
[BZ["Shado-Pan Monastery"]] = true,
|
|
[BZ["Mogu'shan Vaults"]] = true,
|
|
[BZ["The Tiger's Peak"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Shado-Pan Monastery"]] = true,
|
|
[BZ["Mogu'shan Vaults"]] = true,
|
|
[BZ["The Tiger's Peak"]] = true,
|
|
[BZ["Vale of Eternal Blossoms"]] = true,
|
|
[BZ["The Veiled Stair"]] = true,
|
|
[BZ["Townlong Steppes"]] = true,
|
|
[transports["KUNLAISUMMIT_ISLEOFGIANTS_FLIGHTPATH"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1025] = true, -- Winter's Blossom, Kun-Lai Summit (N)
|
|
[1019] = true, -- Eastwind Rest, Kun-Lai Summit (H)
|
|
[1021] = true, -- Zouchin Village, Kun-Lai Summit (N)
|
|
[1023] = true, -- Kota Basecamp, Kun-Lai Summit (N)
|
|
[1117] = true, -- Serpent's Spine, Kun-Lai Summit (H)
|
|
[1020] = true, -- Westwind Rest, Kun-Lai Summit (A)
|
|
[1022] = true, -- One Keg, Kun-Lai Summit (N)
|
|
[1024] = true, -- Shado-Pan Fallback, Kun-Lai Summit (N)
|
|
[1017] = true, -- Binan Village, Kun-Lai Summit (N)
|
|
[1018] = true, -- Temple of the White Tiger, Kun-Lai Summit (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Townlong Steppes"]] = {
|
|
low = 25,
|
|
high = 35,
|
|
ct_low = 25,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
instances = {
|
|
[BZ["Siege of Niuzao Temple"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Siege of Niuzao Temple"]] = true,
|
|
[BZ["Dread Wastes"]] = true,
|
|
[BZ["Kun-Lai Summit"]] = true,
|
|
[transports["TOWNLONGSTEPPES_ISLEOFTHUNDER_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1053] = true, -- Longying Outpost, Townlong Steppes (N)
|
|
[1054] = true, -- Gao-Ran Battlefront, Townlong Steppes (N)
|
|
[1055] = true, -- Rensai's Watchpost, Townlong Steppes (N)
|
|
[1056] = true, -- Shado-Pan Garrison, Townlong Steppes (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Dread Wastes"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
ct_low = 30,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
instances = {
|
|
[BZ["Gate of the Setting Sun"]] = true,
|
|
[BZ["Heart of Fear"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Gate of the Setting Sun"]] = true,
|
|
[BZ["Heart of Fear"]] = true,
|
|
[BZ["Townlong Steppes"]] = true
|
|
},
|
|
flightnodes = {
|
|
[1072] = true, -- The Sunset Brewgarden, Dread Wastes (N)
|
|
[1090] = true, -- The Briny Muck, Dread Wastes (N)
|
|
[1115] = true, -- The Lion's Redoubt, Dread Wastes (A)
|
|
[1070] = true, -- Klaxxi'vess, Dread Wastes (N)
|
|
[1071] = true, -- Soggy's Gamble, Dread Wastes (N)
|
|
},
|
|
}
|
|
|
|
|
|
local function GetValeOfEternalBlossomsMinLevel()
|
|
if playerLevel < 50 then return 30 else return 50 end
|
|
end
|
|
|
|
local function GetValeOfEternalBlossomsMaxLevel()
|
|
if playerLevel < 50 then return 35 else return 50 end
|
|
end
|
|
|
|
local function GetValeOfEternalBlossomsExpansion()
|
|
if playerLevel < 50 then return Mists_of_Pandaria else return Battle_for_Azeroth end
|
|
end
|
|
|
|
local function GetValeOfEternalBlossomsInstances()
|
|
if playerLevel < 50 then
|
|
return {
|
|
[BZ["Mogu'shan Palace"]] = true,
|
|
[BZ["Siege of Orgrimmar"]] = true,
|
|
}
|
|
else
|
|
return {
|
|
[BZ["Mogu'shan Palace"]] = true,
|
|
[BZ["Siege of Orgrimmar"]] = true,
|
|
[BZ["Ny'alotha"]] = true, -- Entrance can be either here or in Uldum
|
|
}
|
|
end
|
|
end
|
|
|
|
zones[BZ["Vale of Eternal Blossoms"]] = {
|
|
low = GetValeOfEternalBlossomsMinLevel(),
|
|
high = GetValeOfEternalBlossomsMaxLevel(),
|
|
ct_low = 30,
|
|
continent = Pandaria,
|
|
expansion = GetValeOfEternalBlossomsExpansion(),
|
|
instances = GetValeOfEternalBlossomsInstances(),
|
|
paths = {
|
|
[BZ["Mogu'shan Palace"]] = true,
|
|
[BZ["Kun-Lai Summit"]] = true,
|
|
[BZ["Siege of Orgrimmar"]] = true,
|
|
[BZ["Shrine of Two Moons"]] = true,
|
|
[BZ["Shrine of Seven Stars"]] = true,
|
|
[BZ["Ny'alotha"]] = true, -- Entrance can be either here or in Uldum
|
|
},
|
|
flightnodes = {
|
|
[1057] = true, -- Shrine of Seven Stars, Vale of Eternal Blossoms (A)
|
|
[1058] = true, -- Shrine of Two Moons, Vale of Eternal Blossoms (H)
|
|
[1073] = true, -- Serpent's Spine, Vale of Eternal Blossoms (N)
|
|
[2544] = true, -- Mistfall Village, Vale of Eternal Blossoms (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Isle of Giants"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
paths = {
|
|
[transports["ISLEOFGIANTS_KUNLAISUMMIT_FLIGHTPATH"]] = true,
|
|
},
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
flightnodes = {
|
|
[1221] = true, -- Beeble's Wreck, Isle Of Giants (A)
|
|
[1222] = true, -- Bozzle's Wreck, Isle Of Giants (H)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Isle of Thunder"]] = {
|
|
low = 32,
|
|
high = 35,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
instances = {
|
|
[BZ["Throne of Thunder"]] = true,
|
|
},
|
|
paths = {
|
|
[transports["ISLEOFTHUNDER_TOWNLONGSTEPPES_PORTAL"]] = true,
|
|
[BZ["Throne of Thunder"]] = true,
|
|
},
|
|
}
|
|
|
|
zones[BZ["Timeless Isle"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
ct_low = 30,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = {
|
|
[transports["TIMELESSISLE_JADEFOREST_FLIGHTPATH"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1293] = true, -- Tushui Landing, Timeless Isle (A)
|
|
[1294] = true, -- Huojin Landing, Timeless Isle (H)
|
|
},
|
|
}
|
|
|
|
|
|
-- Draenor cities, garrisons and zones --
|
|
|
|
zones[BZ["Warspear"]] = {
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
paths = {
|
|
[BZ["Ashran"]] = true,
|
|
[transports["WARSPEAR_ORGRIMMAR_PORTAL"]] = true,
|
|
[transports["WARSPEAR_TANAANJUNGLE_PORTAL"]] = true,
|
|
},
|
|
faction = "Horde",
|
|
type = "City",
|
|
}
|
|
|
|
zones[BZ["Stormshield"]] = {
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
paths = {
|
|
[BZ["Ashran"]] = true,
|
|
[transports["STORMSHIELD_STORMWIND_PORTAL"]] = true,
|
|
[transports["STORMSHIELD_TANAANJUNGLE_PORTAL"]] = true,
|
|
},
|
|
faction = "Alliance",
|
|
type = "City",
|
|
}
|
|
|
|
-- Alliance garrison
|
|
zones[BZ["Lunarfall"]] = {
|
|
low = 10,
|
|
high = 40,
|
|
ct_low = 10,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
paths = {
|
|
[BZ["Shadowmoon Valley"].." ("..BZ["Draenor"]..")"] = true,
|
|
[transports["LUNARFALL_STORMSHIELD_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1476] = true, -- Lunarfall (Alliance), Shadowmoon Valley (A)
|
|
},
|
|
faction = "Alliance",
|
|
yards = 683.334,
|
|
x_offset = 11696.5098,
|
|
y_offset = 9101.3333,
|
|
texture = "garrisonsmvalliance"
|
|
}
|
|
|
|
-- Horde garrison
|
|
zones[BZ["Frostwall"]] = {
|
|
low = 10,
|
|
high = 40,
|
|
ct_low = 10,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
paths = {
|
|
[BZ["Frostfire Ridge"]] = true,
|
|
[transports["FROSTWALL_WARSPEAR_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1432] = true, -- Frostwall Garrison, Frostfire Ridge (H)
|
|
},
|
|
faction = "Horde",
|
|
yards = 702.08,
|
|
x_offset = 7356.9277,
|
|
y_offset = 5378.4173,
|
|
texture = "garrisonffhorde"
|
|
}
|
|
|
|
|
|
|
|
zones[BZ["Frostfire Ridge"]] = {
|
|
low = 10,
|
|
high = 40,
|
|
ct_low = 10,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
instances = {
|
|
[BZ["Bloodmaul Slag Mines"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Gorgrond"]] = true,
|
|
[BZ["Frostwall"]] = true,
|
|
[BZ["Bloodmaul Slag Mines"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1396] = true, -- Darkspear's Edge, Frostfire Ridge (H)
|
|
[1389] = true, -- Bloodmaul Slag Mines, Frostfire Ridge (N)
|
|
[1528] = true, -- Iron Siegeworks, Frostfire Ridge (A)
|
|
[1386] = true, -- Wor'gol, Frostfire Ridge (H)
|
|
[1390] = true, -- Stonefang Outpost, Frostfire Ridge (H)
|
|
[1559] = true, -- Wolf's Stand, Frostfire Ridge (H)
|
|
[1432] = true, -- Frostwall Garrison, Frostfire Ridge (H)
|
|
[1395] = true, -- Thunder Pass, Frostfire Ridge (H)
|
|
[1388] = true, -- Throm'Var, Frostfire Ridge (H)
|
|
[1387] = true, -- Bladespire Citadel, Frostfire Ridge (H)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Shadowmoon Valley"].." ("..BZ["Draenor"]..")"] = {
|
|
low = 10,
|
|
high = 40,
|
|
ct_low = 10,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
instances = {
|
|
[BZ["Shadowmoon Burial Grounds"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Talador"]] = true,
|
|
[BZ["Spires of Arak"]] = true,
|
|
[BZ["Tanaan Jungle"]] = true,
|
|
[BZ["Lunarfall"]] = true,
|
|
[BZ["Shadowmoon Burial Grounds"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1467] = true, -- The Draakorium, Shadowmoon Valley (A)
|
|
[1381] = true, -- Embaari Village, Shadowmoon Valley (A)
|
|
[1475] = true, -- Socrethar's Rise, Shadowmoon Valley (N)
|
|
[1569] = true, -- Akeeta's Hovel, Shadowmoon Valley (N)
|
|
[1468] = true, -- Elodor (Alliance), Shadowmoon Valley (A)
|
|
[1382] = true, -- Twilight Glade, Shadowmoon Valley (A)
|
|
[1476] = true, -- Lunarfall (Alliance), Shadowmoon Valley (A)
|
|
[1529] = true, -- Darktide Roost, Shadowmoon Valley (N)
|
|
[1383] = true, -- Path of the Light, Shadowmoon Valley (A)
|
|
[1567] = true, -- Temple of Karabor, Shadowmoon Valley (A)
|
|
[1556] = true, -- Tranquil Court, Shadowmoon Valley (A)
|
|
[1384] = true, -- Exile's Rise, Shadowmoon Valley (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Gorgrond"]] = {
|
|
low = 15,
|
|
high = 40,
|
|
ct_low = 15,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
instances = {
|
|
[BZ["Iron Docks"]] = true,
|
|
[BZ["Grimrail Depot"]] = true,
|
|
[BZ["The Everbloom"]] = true,
|
|
[BZ["Blackrock Foundry"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Frostfire Ridge"]] = true,
|
|
[BZ["Talador"]] = true,
|
|
[BZ["Tanaan Jungle"]] = true,
|
|
[BZ["Iron Docks"]] = true,
|
|
[BZ["Grimrail Depot"]] = true,
|
|
[BZ["The Everbloom"]] = true,
|
|
[BZ["Blackrock Foundry"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1512] = true, -- Bastion Rise, Gorgrond (H)
|
|
[1580] = true, -- Everbloom Overlook, Gorgrond (N)
|
|
[1539] = true, -- Skysea Ridge, Gorgrond (N)
|
|
[1442] = true, -- Beastwatch, Gorgrond (H)
|
|
[1514] = true, -- Evermorn Springs, Gorgrond (H)
|
|
[1518] = true, -- Wildwood Wash, Gorgrond (A)
|
|
[1520] = true, -- Breaker's Crown, Gorgrond (N)
|
|
[1511] = true, -- Bastion Rise, Gorgrond (A)
|
|
[1524] = true, -- Iron Docks, Gorgrond (N)
|
|
[1519] = true, -- Highpass, Gorgrond (A)
|
|
[1523] = true, -- Deeproot, Gorgrond (A)
|
|
[1568] = true, -- Everbloom Wilds, Gorgrond (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Talador"]] = {
|
|
low = 20,
|
|
high = 40,
|
|
ct_low = 20,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
instances = {
|
|
[BZ["Auchindoun"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Shadowmoon Valley"].." ("..BZ["Draenor"]..")"] = true,
|
|
[BZ["Gorgrond"]] = true,
|
|
[BZ["Tanaan Jungle"]] = true,
|
|
[BZ["Spires of Arak"]] = true,
|
|
[BZ["Nagrand"].." ("..BZ["Draenor"]..")"] = true,
|
|
[BZ["Auchindoun"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1452] = true, -- Retribution Point, Talador (N)
|
|
[1441] = true, -- Frostwolf Overlook, Talador (H)
|
|
[1445] = true, -- Durotan's Grasp, Talador (H)
|
|
[1453] = true, -- Exarch's Refuge, Talador (A)
|
|
[1450] = true, -- Shattrath City, Talador (N)
|
|
[1454] = true, -- Exarch's Refuge, Talador (H)
|
|
[1443] = true, -- Vol'jin's Pride, Talador (H)
|
|
[1447] = true, -- Fort Wrynn (Alliance), Talador (A)
|
|
[1451] = true, -- Anchorite's Sojourn, Talador (A)
|
|
[1440] = true, -- Zangarra, Talador (N)
|
|
[1448] = true, -- Redemption Rise, Talador (A)
|
|
[1462] = true, -- Terokkar Refuge, Talador (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Spires of Arak"]] = {
|
|
low = 30,
|
|
high = 40,
|
|
ct_low = 30,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
instances = {
|
|
[BZ["Skyreach"]] = true,
|
|
[BZ["Blackrock Foundry"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Shadowmoon Valley"].." ("..BZ["Draenor"]..")"] = true,
|
|
[BZ["Talador"]] = true,
|
|
[BZ["Skyreach"]] = true,
|
|
[BZ["Blackrock Foundry"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1513] = true, -- Apexis Excavation, Spires of Arak (N)
|
|
[1510] = true, -- Pinchwhistle Gearworks, Spires of Arak (N)
|
|
[1493] = true, -- Southport, Spires of Arak (A)
|
|
[1515] = true, -- Crow's Crook, Spires of Arak (N)
|
|
[1487] = true, -- Axefall, Spires of Arak (H)
|
|
[1509] = true, -- Talon Watch, Spires of Arak (N)
|
|
[1508] = true, -- Veil Terokk, Spires of Arak (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Nagrand"].." ("..BZ["Draenor"]..")"] = {
|
|
low = 35,
|
|
high = 40,
|
|
ct_low = 35,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
instances = {
|
|
[BZ["Highmaul"]] = true,
|
|
[BZ["Blackrock Foundry"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Talador"]] = true,
|
|
[BZ["Highmaul"]] = true,
|
|
[BZ["Blackrock Foundry"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1572] = true, -- Rilzit's Holdfast, Nagrand (N)
|
|
[1505] = true, -- Riverside Post, Nagrand (H)
|
|
[1573] = true, -- Nivek's Overlook, Nagrand (N)
|
|
[1502] = true, -- The Ring of Trials, Nagrand (N)
|
|
[1506] = true, -- Telaari Station, Nagrand (A)
|
|
[1574] = true, -- Joz's Rylaks, Nagrand (N)
|
|
[1503] = true, -- Throne of the Elements, Nagrand (N)
|
|
[1507] = true, -- Yrel's Watch, Nagrand (A)
|
|
[1504] = true, -- Wor'var, Nagrand (H)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Tanaan Jungle"]] = {
|
|
low = 40,
|
|
high = 40,
|
|
ct_low = 40,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
instances = {
|
|
[BZ["Hellfire Citadel"].." ("..BZ["Draenor"]..")"] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Talador"]] = true,
|
|
[BZ["Shadowmoon Valley"].." ("..BZ["Draenor"]..")"] = true,
|
|
[BZ["Gorgrond"]] = true,
|
|
[transports["TANAANJUNGLE_STORMSHIELD_PORTAL"]] = true,
|
|
[transports["TANAANJUNGLE_WARSPEAR_PORTAL"]] = true,
|
|
[BZ["Hellfire Citadel"].." ("..BZ["Draenor"]..")"] = true,
|
|
},
|
|
flightnodes = {
|
|
[1646] = true, -- Vault of the Earth, Tanaan Jungle (N)
|
|
[1643] = true, -- Aktar's Post, Tanaan Jungle (N)
|
|
[1647] = true, -- Malo's Lookout, Tanaan Jungle (N)
|
|
[1644] = true, -- The Iron Front, Tanaan Jungle (H)
|
|
[1620] = true, -- Lion's Watch, Tanaan Jungle (A)
|
|
[1645] = true, -- The Iron Front, Tanaan Jungle (A)
|
|
[1621] = true, -- Vol'mar, Tanaan Jungle (H)
|
|
[1648] = true, -- Sha'naari Refuge, Tanaan Jungle (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Ashran"]] = {
|
|
low = 10,
|
|
high = 40,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
type = "PvP Zone",
|
|
paths = {
|
|
[BZ["Warspear"]] = true,
|
|
[BZ["Stormshield"]] = true,
|
|
[transports["WARSPEAR_ORGRIMMAR_PORTAL"]] = true,
|
|
[transports["STORMSHIELD_STORMWIND_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1420] = true, -- Stormshield (Alliance), Ashran (A)
|
|
[1408] = true, -- Warspear, Ashran (H)
|
|
},
|
|
}
|
|
|
|
|
|
|
|
-- The Broken Isles cities and zones (Legion)
|
|
|
|
zones[BZ["Dalaran"].." ("..BZ["Broken Isles"]..")"] = {
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
paths = {
|
|
[BZ["Violet Hold"]] = true,
|
|
[transports["DALARANBROKENISLES_STORMWIND_PORTAL"]] = true,
|
|
[transports["DALARANBROKENISLES_ORGRIMMAR_PORTAL"]] = true,
|
|
[transports["DALARANBROKENISLES_VINDICAAR_PORTAL"]] = true,
|
|
[transports["DALARANBROKENISLES_AZSUNA_FLIGHTPATH"]] = true,
|
|
[transports["DALARANBROKENISLES_BROKENSHORE_FLIGHTPATH"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1774] = true, -- Dalaran (N)
|
|
},
|
|
instances = {
|
|
[BZ["Violet Hold"]] = true,
|
|
},
|
|
faction = "Sanctuary",
|
|
type = "City",
|
|
}
|
|
|
|
zones[BZ["Thunder Totem"]] = {
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
paths = {
|
|
[BZ["Highmountain"]] = true,
|
|
[BZ["Stormheim"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1719] = true, -- Thunder Totem, Highmountain (N)
|
|
},
|
|
faction = "Sanctuary",
|
|
type = "City",
|
|
}
|
|
|
|
|
|
zones[BZ["Azsuna"]] = {
|
|
low = 10,
|
|
high = 45,
|
|
ct_low = 10,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
instances = {
|
|
[BZ["Vault of the Wardens"]] = true,
|
|
[BZ["Eye of Azshara"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Suramar"]] = true,
|
|
[BZ["Val'sharah"]] = true,
|
|
[transports["AZSUNA_STORMWIND_PORTAL"]] = true,
|
|
[transports["AZSUNA_ORGRIMMAR_PORTAL"]] = true,
|
|
[transports["AZSUNA_DALARANBROKENISLES_FLIGHTPATH"]] = true,
|
|
[BZ["Vault of the Wardens"]] = true,
|
|
[BZ["Eye of Azshara"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1861] = true, -- Illidari Perch, Azsuna (N)
|
|
[1633] = true, -- Shackle's Den, Azsuna (N)
|
|
[1622] = true, -- Illidari Stand, Azsuna (N)
|
|
[1615] = true, -- Challiane's Terrace, Azsuna (N)
|
|
[1859] = true, -- Felblaze Ingress, Azsuna (N)
|
|
[1837] = true, -- Wardens' Redoubt, Azsuna (N)
|
|
[1860] = true, -- Watchers' Aerie, Azsuna (N)
|
|
[1613] = true, -- Azurewing Repose, Azsuna (N)
|
|
[1870] = true, -- Eye of Azshara, Azsuna (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Val'sharah"]] = {
|
|
low = 10,
|
|
high = 45,
|
|
ct_low = 10,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
instances = {
|
|
[BZ["Black Rook Hold"]] = true,
|
|
[BZ["Darkheart Thicket"]] = true,
|
|
[BZ["The Emerald Nightmare"]] = true,
|
|
-- [BZ["Ashamane's Fall"]] = true, -- Arena
|
|
-- [BZ["Black Rook Hold Arena"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Suramar"]] = true,
|
|
[BZ["Azsuna"]] = true,
|
|
[BZ["Highmountain"]] = true,
|
|
[BZ["Black Rook Hold"]] = true,
|
|
[BZ["Darkheart Thicket"]] = true,
|
|
[BZ["The Emerald Nightmare"]] = true,
|
|
[transports["VALSHARAH_AMIRDRASSIL_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1713] = true, -- Bradensbrook, Val'sharah (N)
|
|
[1885] = true, -- Gloaming Reef, Val'sharah (N)
|
|
[1764] = true, -- Starsong Refuge, Val'sharah (N)
|
|
[1766] = true, -- Garden of the Moon, Val'sharah (N)
|
|
[1673] = true, -- Lorlathil, Val'sharah (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Highmountain"]] = {
|
|
low = 10,
|
|
high = 45,
|
|
ct_low = 10,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
instances = {
|
|
[BZ["Neltharion's Lair"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Suramar"]] = true,
|
|
[BZ["Stormheim"]] = true,
|
|
[BZ["Val'sharah"]] = true,
|
|
[BZ["Trueshot Lodge"]] = true,
|
|
[BZ["Thunder Totem"]] = true,
|
|
[BZ["Neltharion's Lair"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1767] = true, -- Nesingwary, Highmountain (N)
|
|
[1756] = true, -- Shipwreck Cove, Highmountain (N)
|
|
[1719] = true, -- Thunder Totem, Highmountain (N)
|
|
[1753] = true, -- Skyhorn, Highmountain (N)
|
|
[1761] = true, -- Prepfoot, Highmountain (N)
|
|
[1754] = true, -- The Witchwood, Highmountain (N)
|
|
[1758] = true, -- Obsidian Overlook, Highmountain (N)
|
|
[1777] = true, -- Sylvan Falls, Highmountain (N)
|
|
[1755] = true, -- Felbane Camp, Highmountain (N)
|
|
[1759] = true, -- Ironhorn Enclave, Highmountain (N)
|
|
[1778] = true, -- Stonehoof Watch, Highmountain (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Stormheim"]] = {
|
|
low = 10,
|
|
high = 45,
|
|
ct_low = 10,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
instances = {
|
|
[BZ["Halls of Valor"]] = true,
|
|
[BZ["Helmouth Cliffs"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Halls of Valor"]] = true,
|
|
[BZ["Helmouth Cliffs"]] = true,
|
|
[BZ["Suramar"]] = true,
|
|
[BZ["Highmountain"]] = true,
|
|
[BZ["Thunder Totem"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1857] = true, -- Stormtorn Foothills, Stormheim (N)
|
|
[1741] = true, -- Forsaken Foothold, Stormheim (H)
|
|
[1745] = true, -- Lorna's Watch, Stormheim (A)
|
|
[1738] = true, -- Cullen's Post, Stormheim (H)
|
|
[1742] = true, -- Valdisdall, Stormheim (N)
|
|
[1855] = true, -- Shield's Rest, Stormheim (N)
|
|
[1739] = true, -- Dreadwake's Landing, Stormheim (H)
|
|
[1863] = true, -- Hafr Fjall, Stormheim (N)
|
|
[1747] = true, -- Skyfire Triage Camp, Stormheim (A)
|
|
[1744] = true, -- Greywatch, Stormheim (A)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Broken Shore"]] = {
|
|
low = 45,
|
|
high = 45,
|
|
ct_low = 45, -- ?
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
paths = {
|
|
[BZ["Cathedral of Eternal Night"]] = true,
|
|
[transports["BROKENSHORE_DALARANBROKENISLES_FLIGHTPATH"]] = true,
|
|
},
|
|
instances = {
|
|
[BZ["Cathedral of Eternal Night"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1941] = true, -- Deliverance Point, Broken Shore (N)
|
|
[1942] = true, -- Aalgen Point, Broken Shore (N)
|
|
[1856] = true, -- Vengeance Point, Broken Shore (N)
|
|
[1906] = true, -- The Fel Hammer, Broken Shore (N), Demon Hunter Class Order Hall
|
|
},
|
|
}
|
|
|
|
zones[BZ["Suramar"]] = {
|
|
low = 45,
|
|
high = 45,
|
|
ct_low = 45,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
instances = {
|
|
[BZ["Court of Stars"]] = true,
|
|
[BZ["The Arcway"]] = true,
|
|
[BZ["The Nighthold"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Azsuna"]] = true,
|
|
[BZ["Val'sharah"]] = true,
|
|
[BZ["Highmountain"]] = true,
|
|
[BZ["Stormheim"]] = true,
|
|
[BZ["Court of Stars"]] = true,
|
|
[BZ["The Arcway"]] = true,
|
|
[BZ["The Nighthold"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1879] = true, -- Crimson Thicket, Suramar (N)
|
|
[1880] = true, -- Irongrove Retreat, Suramar (N)
|
|
[1858] = true, -- Meredil, Suramar (N)
|
|
},
|
|
}
|
|
|
|
-- Hunter class hall. This map is reported by C_Map as a zone, unclear why
|
|
zones[BZ["Trueshot Lodge"]] = {
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
paths = {
|
|
[BZ["Highmountain"]] = true,
|
|
},
|
|
faction = "Sanctuary",
|
|
}
|
|
|
|
-- Demon hunter starting zone, located in The Twisting Nether (between worlds)
|
|
zones[BZ["Mardum, the Shattered Abyss"]] = {
|
|
low = 8,
|
|
high = 45,
|
|
faction = "Sanctuary",
|
|
expansion = Legion,
|
|
}
|
|
|
|
-- Argus zones --
|
|
|
|
-- Ship, can be located in each of the Argus zones
|
|
zones[BZ["The Vindicaar"]] = {
|
|
low = 45,
|
|
high = 45,
|
|
ct_low = 45,
|
|
continent = Argus,
|
|
expansion = Legion,
|
|
paths = {
|
|
[transports["VINDICAAR_DALARANBROKENISLES_PORTAL"]] = true,
|
|
[transports["VINDICAAR_KROKUUN_TELEPORT"]] = true,
|
|
[transports["VINDICAAR_EREDATH_TELEPORT"]] = true,
|
|
[transports["VINDICAAR_ANTORANWASTES_TELEPORT"]] = true,
|
|
},
|
|
faction = "Sanctuary",
|
|
}
|
|
|
|
zones[BZ["Krokuun"]] = {
|
|
low = 45,
|
|
high = 45,
|
|
ct_low = 45,
|
|
continent = Argus,
|
|
expansion = Legion,
|
|
paths = {
|
|
[transports["KROKUUN_VINDICAAR_TELEPORT"]] = true,
|
|
[transports["KROKUUN_EREDATH_TELEPORT"]] = true,
|
|
[transports["KROKUUN_ANTORANWASTES_TELEPORT"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1976] = true, -- Destiny Point, Krokuun (N)
|
|
[1967] = true, -- Shattered Fields, Krokuun (N)
|
|
[1928] = true, -- Krokul Hovel, Krokuun (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Antoran Wastes"]] = {
|
|
low = 45,
|
|
high = 45,
|
|
ct_low = 45,
|
|
continent = Argus,
|
|
expansion = Legion,
|
|
instances = {
|
|
[BZ["Antorus, the Burning Throne"]] = true,
|
|
},
|
|
paths = {
|
|
[transports["ANTORANWASTES_VINDICAAR_TELEPORT"]] = true,
|
|
[transports["ANTORANWASTES_KROKUUN_TELEPORT"]] = true,
|
|
[transports["ANTORANWASTES_EREDATH_TELEPORT"]] = true,
|
|
[BZ["Antorus, the Burning Throne"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[1993] = true, -- The Veiled Den, Antoran Wastes (N)
|
|
[1988] = true, -- Hope's Landing, Antoran Wastes (N)
|
|
[1992] = true, -- Light's Purchase, Antoran Wastes (N)
|
|
},
|
|
}
|
|
|
|
zones[BZ["Eredath"]] = {
|
|
low = 45,
|
|
high = 45,
|
|
ct_low = 45,
|
|
continent = Argus,
|
|
expansion = Legion,
|
|
instances = {
|
|
[BZ["The Seat of the Triumvirate"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["The Seat of the Triumvirate"]] = true,
|
|
[transports["EREDATH_VINDICAAR_TELEPORT"]] = true,
|
|
[transports["EREDATH_KROKUUN_TELEPORT"]] = true,
|
|
[transports["EREDATH_ANTORANWASTES_TELEPORT"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2003] = true, -- City Center, Eredath (N)
|
|
[1991] = true, -- Prophet's Reflection, Eredath (N)
|
|
[1981] = true, -- Shadowguard Incursion, Eredath (N)
|
|
[1978] = true, -- Conservatory of the Arcane, Eredath (N)
|
|
[1982] = true, -- Triumvirate's End, Eredath (N)
|
|
},
|
|
}
|
|
|
|
-- WoW BFA zones
|
|
|
|
-- Zandalar cities and zones (Horde)
|
|
|
|
zones[BZ["Dazar'alor"]] = {
|
|
instances = {
|
|
[BZ["The MOTHERLODE!!"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Zuldazar"]] = true,
|
|
[BZ["The MOTHERLODE!!"]] = true,
|
|
[transports["ZULDAZAR_ECHOISLES_BOAT"]] = true,
|
|
[transports["ZULDAZAR_ORGRIMMAR_PORTAL"]] = true,
|
|
[transports["ZULDAZAR_THUNDERBLUFF_PORTAL"]] = true,
|
|
[transports["ZULDAZAR_SILVERMOON_PORTAL"]] = true,
|
|
[transports["ZULDAZAR_SILITHUS_PORTAL"]] = true,
|
|
[transports["ZULDAZAR_NAZJATAR_PORTAL"]] = true,
|
|
[transports["ZULDAZAR_MECHAGON_BOAT"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2061] = true, -- The Sliver, Zuldazar (H)
|
|
[1959] = true, -- The Great Seal (H)
|
|
[1957] = true, -- Port of Zandalar, Zuldazar (H)
|
|
[2381] = true, -- The Mugambala, Zuldazar (H)
|
|
},
|
|
faction = "Horde",
|
|
continent = Zandalar,
|
|
expansion = Battle_for_Azeroth,
|
|
type = "City",
|
|
}
|
|
|
|
zones[BZ["Nazmir"]] = {
|
|
low = 25,
|
|
high = 50,
|
|
ct_low = 25,
|
|
instances = {
|
|
[BZ["The Underrot"]] = true,
|
|
[BZ["Uldir"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Vol'dun"]] = true,
|
|
[BZ["Zuldazar"]] = true,
|
|
[BZ["The Underrot"]] = true,
|
|
[BZ["Uldir"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2161] = true, -- Redfield's Watch, Nazmir (A)
|
|
[2078] = true, -- Fort Victory, Nazmir (A)
|
|
[1955] = true, -- Gloom Hollow, Nazmir (H)
|
|
[2080] = true, -- Grimwatt's Crash, Nazmir (A)
|
|
[1956] = true, -- Forlorn Ruins, Nazmir (H)
|
|
[1953] = true, -- Zul'jan, Nazmir (H)
|
|
[1954] = true, -- Zo'bal Ruins, Nazmir (H)
|
|
},
|
|
faction = "Horde",
|
|
continent = Zandalar,
|
|
expansion = Battle_for_Azeroth,
|
|
}
|
|
|
|
zones[BZ["Vol'dun"]] = {
|
|
low = 35,
|
|
high = 50,
|
|
ct_low = 35,
|
|
instances = {
|
|
[BZ["Temple of Sethraliss"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Nazmir"]] = true,
|
|
[BZ["Zuldazar"]] = true,
|
|
[BZ["Temple of Sethraliss"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2112] = true, -- Vulture's Nest, Vol'dun (A)
|
|
[2120] = true, -- Tortaka Refuge, Vol'dun (N)
|
|
[2162] = true, -- Devoted Sanctuary, Vol'dun (N)
|
|
[2143] = true, -- Scorched Sands Outpost, Vol'dun (H)
|
|
[2119] = true, -- Sanctuary of the Devoted, Vol'dun (N)
|
|
[2117] = true, -- Vulpera Hideaway, Vol'dun (H)
|
|
[2111] = true, -- Vorrik's Sanctum, Vol'dun (H)
|
|
[2118] = true, -- Temple of Akunda, Vol'dun (H)
|
|
[2144] = true, -- Goldtusk Inn, Vol'dun (H)
|
|
[2110] = true, -- Shatterstone Harbour, Vol'dun
|
|
},
|
|
faction = "Horde",
|
|
continent = Zandalar,
|
|
expansion = Battle_for_Azeroth,
|
|
}
|
|
|
|
zones[BZ["Zuldazar"]] = {
|
|
low = 10,
|
|
high = 50,
|
|
ct_low = 10,
|
|
instances = {
|
|
[BZ["The MOTHERLODE!!"]] = true,
|
|
[BZ["Atal'Dazar"]] = true,
|
|
[BZ["Kings' Rest"]] = true,
|
|
[BZ["Battle of Dazar'alor"]] = true,
|
|
[BZ["Mugambala"]] = true, -- Arena
|
|
},
|
|
paths = {
|
|
[BZ["Dazar'alor"]] = true,
|
|
[BZ["Nazmir"]] = true,
|
|
[BZ["Vol'dun"]] = true,
|
|
[BZ["Atal'Dazar"]] = true,
|
|
[BZ["Kings' Rest"]] = true,
|
|
[BZ["Battle of Dazar'alor"]] = true,
|
|
[BZ["Mugambala"]] = true, -- Arena
|
|
},
|
|
flightnodes = {
|
|
[1975] = true, -- Zeb'ahari, Zuldazar (H)
|
|
[2061] = true, -- The Sliver, Zuldazar (H)
|
|
[2009] = true, -- Warport Rastari, Zuldazar (H)
|
|
[2012] = true, -- Xibala, Zuldazar (A)
|
|
[2164] = true, -- Isle of Fangs, Zuldazar (H)
|
|
[2045] = true, -- Garden of the Loa, Zuldazar (H)
|
|
[2075] = true, -- Seeker's Outpost, Zuldazar (N)
|
|
[2145] = true, -- Verdant Hollow, Zuldazar (A)
|
|
[2147] = true, -- Castaway Encampment, Zuldazar (A)
|
|
[1959] = true, -- The Great Seal (H)
|
|
[2153] = true, -- Mistvine Ledge, Zuldazar (A)
|
|
[2126] = true, -- Scaletrader Post, Zuldazar (N)
|
|
[2066] = true, -- Atal'Gral, Zuldazar (N)
|
|
[2027] = true, -- Temple of the Prophet, Zuldazar (H)
|
|
[1966] = true, -- Warbeast Kraal, Zuldazar (H)
|
|
[2165] = true, -- Tusk Isle, Zuldazar (H)
|
|
[1965] = true, -- Nesingwary's Gameland, Zuldazar (N)
|
|
[2076] = true, -- Atal'Gral, Zuldazar (N)
|
|
[1957] = true, -- Port of Zandalar, Zuldazar (H)
|
|
[1974] = true, -- Xibala, Zuldazar (H)
|
|
[2071] = true, -- Dreadpearl, Zuldazar (N)
|
|
[2046] = true, -- Atal'dazar, Zuldazar (H)
|
|
[2148] = true, -- Mugamba Overlook, Zuldazar (A)
|
|
[2157] = true, -- Veiled Grotto, Zuldazar (A)
|
|
},
|
|
faction = "Horde",
|
|
continent = Zandalar,
|
|
expansion = Battle_for_Azeroth,
|
|
}
|
|
|
|
-- Kul Tiras cities and zones (Alliance)
|
|
|
|
zones[BZ["Boralus"]] = {
|
|
instances = {
|
|
[BZ["Hook Point"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Tiragarde Sound"]] = true,
|
|
[transports["TIRAGARDESOUND_STORMWIND_BOAT"]] = true,
|
|
[transports["TIRAGARDESOUND_STORMWIND_PORTAL"]] = true,
|
|
[transports["TIRAGARDESOUND_EXODAR_PORTAL"]] = true,
|
|
[transports["TIRAGARDESOUND_IRONFORGE_PORTAL"]] = true,
|
|
[transports["TIRAGARDESOUND_SILITHUS_PORTAL"]] = true,
|
|
[transports["TIRAGARDESOUND_NAZJATAR_PORTAL"]] = true,
|
|
[transports["TIRAGARDESOUND_MECHAGON_FLIGHTPATH"]] = true,
|
|
[BZ["Hook Point"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2083] = true, -- Tradewinds Market, Tiragarde Sound (A)
|
|
[2277] = true, -- Proudmoore Keep, Tiragarde Sound (A)
|
|
[2278] = true, -- Mariner's Row, Tiragarde Sound (A)
|
|
},
|
|
faction = "Alliance",
|
|
continent = Kul_Tiras,
|
|
expansion = Battle_for_Azeroth,
|
|
type = "City",
|
|
}
|
|
|
|
zones[BZ["Stormsong Valley"]] = {
|
|
low = 35,
|
|
high = 50,
|
|
ct_low = 35,
|
|
instances = {
|
|
[BZ["Shrine of the Storm"]] = true,
|
|
[BZ["Crucible of Storms"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Shrine of the Storm"]] = true,
|
|
[BZ["Tiragarde Sound"]] = true,
|
|
[BZ["Crucible of Storms"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2101] = true, -- The Amber Waves, Stormsong Valley (A)
|
|
[2094] = true, -- Warfang Hold, Stormsong Valley (H)
|
|
[2095] = true, -- Shrine of the Storm, Stormsong Valley (H)
|
|
[2088] = true, -- Mildenhall Meadery, Stormsong Valley (A)
|
|
[2089] = true, -- Seekers Vista, Stormsong Valley (N)
|
|
[2097] = true, -- Deadwash, Stormsong Valley (A)
|
|
[2093] = true, -- Ironmaul Overlook, Stormsong Valley (H)
|
|
[2092] = true, -- Diretusk Hollow, Stormsong Valley (H)
|
|
[2133] = true, -- Shrine of the Storm, Stormsong Valley (A)
|
|
[2137] = true, -- Millstone Hamlet, Stormsong Valley (A)
|
|
[2085] = true, -- Tidecross, Stormsong Valley (A)
|
|
[2138] = true, -- Fort Daelin, Stormsong Valley (A)
|
|
[2086] = true, -- Brennadam, Stormsong Valley (A)
|
|
[2139] = true, -- Windfall Cavern, Stormsong Valley (H)
|
|
[2090] = true, -- Hillcrest Pasture, Stormsong Valley (H)
|
|
[2091] = true, -- Stonetusk Watch, Stormsong Valley (H)
|
|
},
|
|
faction = "Alliance",
|
|
continent = Kul_Tiras,
|
|
expansion = Battle_for_Azeroth,
|
|
}
|
|
|
|
zones[BZ["Drustvar"]] = {
|
|
low = 25,
|
|
high = 50,
|
|
ct_low = 25,
|
|
instances = {
|
|
[BZ["Waycrest Manor"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Tiragarde Sound"]] = true,
|
|
[BZ["Waycrest Manor"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2037] = true, -- Barbthorn Ridge, Drustvar (A)
|
|
[2109] = true, -- Whitegrove Chapel, Drustvar (N)
|
|
[2034] = true, -- Hangman's Point, Drustvar (A)
|
|
[2127] = true, -- Anyport, Drustvar (N)
|
|
[2135] = true, -- Krazzlefrazz Outpost, Drustvar (H)
|
|
[2106] = true, -- Arom's Stand, Drustvar (A)
|
|
[2107] = true, -- Watchman's Rise, Drustvar (A)
|
|
[2033] = true, -- Fallhaven, Drustvar (A)
|
|
[2108] = true, -- Falconhurst, Drustvar (A)
|
|
[2035] = true, -- Fletcher's Hollow, Drustvar (A)
|
|
[2275] = true, -- Mudfisher Cove, Drustvar (H)
|
|
[2274] = true, -- Swiftwind Post, Drustvar (H)
|
|
},
|
|
faction = "Alliance",
|
|
continent = Kul_Tiras,
|
|
expansion = Battle_for_Azeroth,
|
|
}
|
|
|
|
zones[BZ["Tiragarde Sound"]] = {
|
|
low = 10,
|
|
high = 50,
|
|
ct_low = 10,
|
|
instances = {
|
|
[BZ["Tol Dagor"]] = true,
|
|
[BZ["Freehold"]] = true,
|
|
[BZ["Siege of Boralus"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Boralus"]] = true,
|
|
[BZ["Drustvar"]] = true,
|
|
[BZ["Stormsong Valley"]] = true,
|
|
[BZ["Tol Dagor"]] = true,
|
|
[BZ["Freehold"]] = true,
|
|
[BZ["Siege of Boralus"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2079] = true, -- Kennings Lodge, Tiragarde Sound (A)
|
|
[2102] = true, -- Roughneck Camp, Tiragarde Sound (A)
|
|
[2096] = true, -- Tol Dagor, Tiragarde Sound (A)
|
|
[2023] = true, -- Freehold, Tiragarde Sound (N)
|
|
[2276] = true, -- Tol Dagor, Tiragarde Sound (H)
|
|
[2074] = true, -- Bridgeport, Tiragarde Sound (A)
|
|
[2277] = true, -- Proudmoore Keep, Tiragarde Sound (A)
|
|
[2060] = true, -- Hatherford, Tiragarde Sound (A)
|
|
[2278] = true, -- Mariner's Row, Tiragarde Sound (A)
|
|
[2087] = true, -- Outrigger Post, Tiragarde Sound (A)
|
|
[2084] = true, -- Norwington Estate, Tiragarde Sound (A)
|
|
[2077] = true, -- Castaway Point, Tiragarde Sound (N)
|
|
[2083] = true, -- Tradewinds Market, Tiragarde Sound (A)
|
|
[2273] = true, -- Waning Glacier, Tiragarde Sound (H)
|
|
[2042] = true, -- Vigil Hill, Tiragarde Sound (A)
|
|
[2279] = true, -- Stonefist Watch, Tiragarde Sound (H)
|
|
[2062] = true, -- Wolf's Den, Tiragarde Sound (H)
|
|
[2140] = true, -- Plunder Harbour, Tiragarde Sound (H)
|
|
[2067] = true, -- Timberfell Outpost, Tiragarde Sound (H)
|
|
},
|
|
faction = "Alliance",
|
|
continent = Kul_Tiras,
|
|
expansion = Battle_for_Azeroth,
|
|
}
|
|
|
|
-- Patch 8.2.0 zones
|
|
|
|
zones[BZ["Nazjatar"]] = {
|
|
low = 50,
|
|
high = 50,
|
|
ct_low = 50,
|
|
instances = {
|
|
[BZ["The Eternal Palace"]] = true,
|
|
},
|
|
paths = {
|
|
[transports["NAZJATAR_ZULDAZAR_PORTAL"]] = true,
|
|
[transports["NAZJATAR_TIRAGARDESOUND_PORTAL"]] = true,
|
|
[BZ["The Eternal Palace"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2404] = true, -- Newhome, Nazjatar (H)
|
|
[2406] = true, -- Elun'alor Temple, Nazjatar (A)
|
|
[2408] = true, -- Mezzamere, Nazjatar (A)
|
|
[2405] = true, -- Zin'Azshari, Nazjatar (H)
|
|
[2409] = true, -- Wreck of the Old Blanchy, Nazjatar (A)
|
|
[2407] = true, -- Utama's Stand, Nazjatar (A)
|
|
[2412] = true, -- Wreck of the Hungry Riverbeast, Nazjatar (H)
|
|
[2411] = true, -- Ashen Strand, Nazjatar (A)
|
|
[2410] = true, -- Ashen Strand, Nazjatar (H)
|
|
[2437] = true, -- Ekka's Hideaway, Nazjatar (H)
|
|
},
|
|
continent = Azeroth,
|
|
expansion = Battle_for_Azeroth,
|
|
}
|
|
|
|
zones[BZ["Mechagon Island"]] = {
|
|
low = 50,
|
|
high = 50,
|
|
ct_low = 50,
|
|
paths = {
|
|
[transports["MECHAGON_ZULDAZAR_BOAT"]] = true,
|
|
[transports["MECHAGON_TIRAGARDESOUND_FLIGHTPATH"]] = true,
|
|
[BZ["Mechagon"]] = true, -- Operation: Mechagon (no map for this name in C_Map?)
|
|
-- [BZ["The Robodrome"]] = true, -- Arena
|
|
},
|
|
instances = {
|
|
[BZ["Mechagon"]] = true, -- Operation: Mechagon (no map for this name in C_Map?)
|
|
-- [BZ["The Robodrome"]] = true, -- Arena
|
|
},
|
|
flightnodes = {
|
|
[2441] = true, -- Prospectus Bay, Mechagon (H)
|
|
[2442] = true, -- Overspark Expedition Camp, Mechagon (A)
|
|
},
|
|
continent = Kul_Tiras,
|
|
expansion = Battle_for_Azeroth,
|
|
}
|
|
|
|
|
|
-- Shadowlands zones
|
|
|
|
-- New contested starting zone, an island located in North Sea, to the northeast of the Broken Isles
|
|
-- and in between Northrend and Lordaeron.
|
|
zones[BZ["Exile's Reach"]] = {
|
|
low = 1,
|
|
high = 10,
|
|
instances = {
|
|
[BZ["Darkmaul Citadel"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Darkmaul Citadel"]] = true,
|
|
},
|
|
-- Unlear what these flight nodes are. Alliance only, with only one flight path, connecting them to each other. Don't show up on map.
|
|
flightnodes = {
|
|
[2401] = true, -- Ogre Citadel, Exile's Reach Island
|
|
[2402] = true, -- Alliance Outpost, Exile's Reach
|
|
},
|
|
-- continent = ??, -- No continent
|
|
expansion = Shadowlands,
|
|
faction = (isHorde and "Horde" or "Alliance"), -- Always friendly: zone exists for both factions separately
|
|
}
|
|
|
|
-- Starting zone dungeon
|
|
zones[BZ["Darkmaul Citadel"]] = {
|
|
low = 7,
|
|
high = 10,
|
|
paths = BZ["Exile's Reach"],
|
|
groupMinSize = 1,
|
|
groupMaxSize = 5,
|
|
type = "Instance",
|
|
--entrancePortal = { BZ["Exile's Reach"], 0, 0 }, -- No entrance portal (must use group finder)
|
|
-- continent = ??, -- No continent
|
|
expansion = Shadowlands,
|
|
faction = (isHorde and "Horde" or "Alliance"), -- Always friendly: zone exists for both factions separately
|
|
}
|
|
|
|
-- 10565
|
|
zones[BZ["Oribos"]] = {
|
|
instances = {
|
|
[BZ["Tazavesh, the Veiled Market"]] = true,
|
|
},
|
|
paths = {
|
|
[transports["ORIBOS_ORGRIMMAR_PORTAL"]] = true,
|
|
[transports["ORIBOS_STORMWIND_PORTAL"]] = true,
|
|
[transports["ORIBOS_MAW_PORTAL"]] = true,
|
|
[transports["ORIBOS_KORTHIA_WAYSTONE"]] = true,
|
|
[transports["ORIBOS_BASTION_FLIGHTPATH"]] = true,
|
|
[transports["ORIBOS_MALDRAXXUS_FLIGHTPATH"]] = true,
|
|
[transports["ORIBOS_ARDENWEALD_FLIGHTPATH"]] = true,
|
|
[transports["ORIBOS_REVENDRETH_FLIGHTPATH"]] = true,
|
|
[transports["ORIBOS_TAZAVESH_FLIGHTPATH"]] = true,
|
|
[transports["ORIBOS_ZERETHMORTIS_WAYSTONE"]] = true,
|
|
[transports["ORIBOS_MECHANGON_PORTAL"]] = true,
|
|
[transports["ORIBOS_KARAZHAN_PORTAL"]] = true,
|
|
[transports["ORIBOS_GORGROND_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2395] = true, -- Oribos
|
|
},
|
|
type = "City",
|
|
faction = "Sanctuary",
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
}
|
|
|
|
-- 10413
|
|
zones[BZ["Bastion"]] = {
|
|
low = 50,
|
|
high = 52,
|
|
instances = {
|
|
[BZ["The Necrotic Wake"]] = true,
|
|
[BZ["Spires of Ascension"]] = true,
|
|
},
|
|
paths = {
|
|
[transports["BASTION_ORIBOS_FLIGHTPATH"]] = true,
|
|
[transports["BASTION_ELYSIANHOLD_FLIGHTPATH"]] = true,
|
|
[BZ["The Necrotic Wake"]] = true,
|
|
[BZ["Spires of Ascension"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2519] = true, -- Aspirant's Rest, Bastion
|
|
[2630] = true, -- Aspirant's Rest, Bastion
|
|
[2520] = true, -- Sagehaven, Bastion
|
|
[2632] = true, -- Sagehaven, Bastion
|
|
[2528] = true, -- Elysian Hold, Bastion
|
|
[2625] = true, -- Elysian Hold, Bastion
|
|
[2529] = true, -- Hero's Rest, Bastion
|
|
[2626] = true, -- Hero's Rest, Bastion
|
|
[2631] = true, -- Xandria's Vigil, Bastion
|
|
[2633] = true, -- Temple of Purity, Bastion
|
|
[2634] = true, -- Seat of Eternal Hymns, Bastion
|
|
[2635] = true, -- Temple of Humility, Bastion
|
|
[2636] = true, -- Eonian Archives, Bastion
|
|
[2680] = true, -- Eonian Archives, Bastion
|
|
[2637] = true, -- Summoned Steward, Bastion
|
|
},
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
}
|
|
|
|
-- Kyrain Covenant Sanctum
|
|
zones[BZ["Elysian Hold"]] = {
|
|
paths = {
|
|
[transports["ELYSIANHOLD_BASTION_FLIGHTPATH"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2528] = true, -- Elysian Hold, Bastion
|
|
[2625] = true, -- Elysian Hold, Bastion
|
|
},
|
|
faction = "Sanctuary",
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
}
|
|
|
|
-- 11462
|
|
zones[BZ["Maldraxxus"]] = {
|
|
low = 52,
|
|
high = 54,
|
|
instances = {
|
|
[BZ["Plaguefall"]] = true,
|
|
[BZ["Theater of Pain"]] = true,
|
|
},
|
|
paths = {
|
|
[transports["MALDRAXXUS_ORIBOS_FLIGHTPATH"]] = true,
|
|
[BZ["Seat of the Primus"]] = true,
|
|
[BZ["Plaguefall"]] = true,
|
|
[BZ["Theater of Pain"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2398] = true, -- Bleak Redoubt, Maldraxxus
|
|
[2560] = true, -- Keres' Rest, Maldraxxus
|
|
[2569] = true, -- Plague Watch, Maldraxxus
|
|
[2561] = true, -- Renounced Bastille, Maldraxxus
|
|
[2559] = true, -- Spider's Watch, Maldraxxus
|
|
[2558] = true, -- The Spearhead, Maldraxxus
|
|
[2643] = true, -- Theater of Pain North, Maldraxxus
|
|
[2564] = true, -- Theater of Pain, Maldraxxus
|
|
},
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
}
|
|
|
|
-- Necrolord Covenant Sanctum
|
|
zones[BZ["Seat of the Primus"]] = {
|
|
paths = {
|
|
[BZ["Maldraxxus"]] = true,
|
|
},
|
|
faction = "Sanctuary",
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
}
|
|
|
|
-- 11510
|
|
zones[BZ["Ardenweald"]] = {
|
|
low = 55,
|
|
high = 58,
|
|
instances = {
|
|
[BZ["Mists of Tirna Scithe"]] = true,
|
|
[BZ["De Other Side"]] = true,
|
|
},
|
|
paths = {
|
|
[transports["ARDENWEALD_ORIBOS_FLIGHTPATH"]] = true,
|
|
[BZ["Heart of the Forest"]] = true,
|
|
[BZ["Mists of Tirna Scithe"]] = true,
|
|
[BZ["De Other Side"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2530] = true, -- Dreamsong Fenn, Ardenweald
|
|
[2565] = true, -- Starlit Overlook, Ardenweald
|
|
[2589] = true, -- Claw's Edge, Ardenweald
|
|
[2584] = true, -- Glitterfall Basin, Ardenweald
|
|
[2587] = true, -- Heart of the Forest, Ardenweald
|
|
[2586] = true, -- Hibernal Hollow, Ardenweald
|
|
[2590] = true, -- Refugee Camp, Ardenweald
|
|
[2588] = true, -- Root-Home, Ardenweald
|
|
[2585] = true, -- Tirna Vaal, Ardenweald
|
|
},
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
}
|
|
|
|
-- Night Fae Covenant Sanctum
|
|
zones[BZ["Heart of the Forest"]] = {
|
|
paths = {
|
|
[BZ["Ardenweald"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2587] = true, -- Heart of the Forest, Ardenweald
|
|
},
|
|
faction = "Sanctuary",
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
}
|
|
|
|
-- 10413
|
|
zones[BZ["Revendreth"]] = {
|
|
low = 57,
|
|
high = 60,
|
|
instances = {
|
|
[BZ["Halls of Atonement"]] = true,
|
|
[BZ["Sanguine Depths"]] = true,
|
|
[BZ["Castle Nathria"]] = true,
|
|
},
|
|
paths = {
|
|
[transports["REVENDRETH_ORIBOS_FLIGHTPATH"]] = true,
|
|
[BZ["Sinfall"]] = true,
|
|
[BZ["Halls of Atonement"]] = true,
|
|
[BZ["Sanguine Depths"]] = true,
|
|
[BZ["Castle Nathria"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2537] = true, -- Charred Ramparts, Revendreth
|
|
[2488] = true, -- Darkhaven, Revendreth
|
|
[2515] = true, -- Dominance Keep, Revendreth
|
|
[2512] = true, -- Halls of Atonement, Revendreth
|
|
[2517] = true, -- Menagerie of the Master, Revendreth
|
|
[2513] = true, -- Old Gate, Revendreth
|
|
[2514] = true, -- Pridefall Hamlet, Revendreth
|
|
[2511] = true, -- Sanctuary of the Mad, Revendreth
|
|
[2548] = true, -- Sinfall, Revendreth
|
|
[2518] = true, -- Wanecrypt Hill, Revendreth
|
|
},
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
}
|
|
|
|
-- Venthyr Covenant Sanctum
|
|
zones[BZ["Sinfall"]] = {
|
|
paths = {
|
|
[BZ["Revendreth"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2548] = true, -- Sinfall, Revendreth
|
|
},
|
|
faction = "Sanctuary",
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
}
|
|
|
|
zones[BZ["The Maw"]] = {
|
|
low = 60,
|
|
high = 60,
|
|
instances = {
|
|
[BZ["Sanctum of Domination"]] = true,
|
|
},
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
paths = {
|
|
[transports["MAW_ORIBOS_WAYSTONE"]] = true,
|
|
[BZ["Sanctum of Domination"]] = true,
|
|
[BZ["Korthia"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2700] = true, -- Ve'nari's Refuge
|
|
},
|
|
}
|
|
|
|
|
|
|
|
-- Korthia, City of Secrets
|
|
zones[BZ["Korthia"]] = {
|
|
low = 60,
|
|
high = 60,
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
paths = {
|
|
[transports["KORTHIA_ORIBOS_WAYSTONE"]] = true,
|
|
[BZ["The Maw"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2698] = true, -- Keeper's Respite
|
|
},
|
|
}
|
|
|
|
|
|
-- 13536
|
|
zones[BZ["Zereth Mortis"]] = {
|
|
low = 60,
|
|
high = 60,
|
|
instances = {
|
|
[BZ["Sepulcher of the First Ones"]] = true,
|
|
[BZ["Enigma Crucible"]] = true,
|
|
},
|
|
paths = {
|
|
[transports["ZERETHMORTIS_ORIBOS_WAYSTONE"]] = true,
|
|
[BZ["Sepulcher of the First Ones"]] = true,
|
|
[BZ["Enigma Crucible"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2724] = true, -- Haven, Zereth Mortis
|
|
[2728] = true, -- Pilgrim's Grace, Zereth Mortis
|
|
[2725] = true, -- Faith's Repose, Zereth Mortis
|
|
[2737] = true, -- Sepulcher Of The First Ones, Zereth Mortis
|
|
[2734] = true, -- Antecedent Isle, Zereth Mortis
|
|
[2733] = true, -- Zovaal's Grasp, Zereth Mortis
|
|
[2736] = true, -- Sepulcher Overlook, Zereth Mortis
|
|
},
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
}
|
|
|
|
|
|
|
|
-- DragonFlight zones
|
|
|
|
|
|
-- 13862
|
|
zones[BZ["Valdrakken"]] = {
|
|
paths = {
|
|
[BZ["Thaldraszus"]] = true,
|
|
[transports["VALDRAKKEN_ORGRIMMAR_PORTAL"]] = true,
|
|
[transports["VALDRAKKEN_STORMWIND_PORTAL"]] = true,
|
|
[transports["VALDRAKKEN_SHADOWMOONDRAENOR_PORTAL"]] = true,
|
|
[transports["VALDRAKKEN_DALARANBROKENISLES_PORTAL"]] = true,
|
|
[transports["VALDRAKKEN_JADEFOREST_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2810] = true, -- Valdrakken, Thaldraszus (N)
|
|
},
|
|
type = "City",
|
|
faction = "Sanctuary",
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
}
|
|
|
|
-- 13644
|
|
zones[BZ["The Waking Shores"]] = {
|
|
low = 60,
|
|
high = 62,
|
|
instances = {
|
|
[BZ["Neltharus"]] = true,
|
|
[BZ["Ruby Life Pools"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Ohn'ahran Plains"]] = true,
|
|
[BZ["Neltharus"]] = true,
|
|
[BZ["Ruby Life Pools"]] = true,
|
|
[transports["WAKINGSHORES_ORGRIMMAR_ZEPPELIN"]] = true,
|
|
[transports["WAKINGSHORES_STORMWIND_BOAT"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2800] = true, -- Apex Canopy, The Waking Shores (N)
|
|
[2801] = true, -- Apex Observatory, The Waking Shores (N)
|
|
[2802] = true, -- Obsidian Throne, The Waking Shores (N)
|
|
[2803] = true, -- Uktulut Pier, The Waking Shores (N)
|
|
[2804] = true, -- Uktulut Backwater, The Waking Shores (N)
|
|
[2805] = true, -- Wingrest Embassy, The Waking Shores (N)
|
|
[2806] = true, -- Life Vault Ruins, The Waking Shores (N)
|
|
[2807] = true, -- Ruby Life Pools, The Waking Shores (N)
|
|
[2808] = true, -- Obsidian Bulwark, The Waking Shores (N)
|
|
[2809] = true, -- Dragonscale Basecamp, The Waking Shores (N)
|
|
[2817] = true, -- Skytop Observatory, The Waking Shores (N)
|
|
[2842] = true, -- Rubyscale Outpost, The Waking Shores (N)
|
|
},
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
}
|
|
|
|
|
|
-- 13645
|
|
zones[BZ["Ohn'ahran Plains"]] = {
|
|
low = 62,
|
|
high = 65,
|
|
instances = {
|
|
[BZ["The Nokhud Offensive"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["The Waking Shores"]] = true,
|
|
[BZ["The Azure Span"]] = true,
|
|
[BZ["The Nokhud Offensive"]] = true,
|
|
[BZ["Zaralek Cavern"]] = true,
|
|
[BZ["Amirdrassil"]] = true,
|
|
[transports["OHNAHRANPLAINS_EMERALDDREAM_PORTAL"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2790] = true, -- Timberstep Outpost, Ohn'ahran Plains (N)
|
|
[2792] = true, -- Maruukai, Ohn'ahran Plains (N)
|
|
[2793] = true, -- Forkriver Crossing, Ohn'ahran Plains (N)
|
|
[2794] = true, -- Teerakai, Ohn'ahran Plains (N)
|
|
[2795] = true, -- Broadhoof Outpost, Ohn'ahran Plains (N)
|
|
[2796] = true, -- Shady Sanctuary, Ohn'ahran Plains (N)
|
|
[2797] = true, -- Emberwatch, Ohn'ahran Plains (N)
|
|
[2798] = true, -- Pinewood Post, Ohn'ahran Plains (N)
|
|
[2799] = true, -- Rusza'thar Reach, Ohn'ahran Plains (N)
|
|
[2825] = true, -- Ohn'iri Springs, Ohn'ahran Plains (N)
|
|
[2839] = true, -- Rusza'thar Reach, Ohn'ahran Plains (N)
|
|
},
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
}
|
|
|
|
|
|
-- 13646
|
|
zones[BZ["The Azure Span"]] = {
|
|
low = 65,
|
|
high = 68,
|
|
instances = {
|
|
[BZ["The Azure Vault"]] = true,
|
|
[BZ["Brackenhide Hollow"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Ohn'ahran Plains"]] = true,
|
|
[BZ["Thaldraszus"]] = true,
|
|
[BZ["The Azure Vault"]] = true,
|
|
[BZ["Brackenhide Hollow"]] = true,
|
|
[BZ["Zaralek Cavern"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2773] = true, -- Azure Archives, Azure Span (N)
|
|
[2774] = true, -- Camp Antonidas, Azure Span (N)
|
|
[2775] = true, -- Iskaara, Azure Span (N)
|
|
[2784] = true, -- Camp Nowhere, Azure Span (N)
|
|
[2786] = true, -- Rhonin's Shield, Azure Span (N)
|
|
[2787] = true, -- Cobalt Assembly, Azure Span (N)
|
|
[2788] = true, -- Theron's Watch, Azure Span (N)
|
|
[2789] = true, -- Three-Falls Lookout, Azure Span (N)
|
|
[2838] = true, -- Cobalt Assembly, Azure Span (N)
|
|
[2837] = true, -- Vakthros, Azure Span (Neutral)
|
|
},
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
}
|
|
|
|
-- 13647
|
|
zones[BZ["Thaldraszus"]] = {
|
|
low = 68,
|
|
high = 70,
|
|
instances = {
|
|
[BZ["Algeth'ar Academy"]] = true,
|
|
[BZ["Halls Of Infusion"]] = true,
|
|
[BZ["Vault of the Incarnates"]] = true,
|
|
[BZ["Dawn of the Infinite"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Valdrakken"]] = true,
|
|
[BZ["The Azure Span"]] = true,
|
|
[BZ["Algeth'ar Academy"]] = true,
|
|
[BZ["Halls Of Infusion"]] = true,
|
|
[BZ["Vault of the Incarnates"]] = true,
|
|
[BZ["Dawn of the Infinite"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2810] = true, -- Valdrakken, Thaldraszus (N)
|
|
[2811] = true, -- Gelikyr Post, Thaldraszus (N)
|
|
[2812] = true, -- Temporal Conflux, Thaldraszus (N)
|
|
[2814] = true, -- Veiled Ossuary, Thaldraszus (N)
|
|
[2813] = true, -- Algeth'era, Thaldraszus (N)
|
|
[2815] = true, -- Garden Shrine, Thaldraszus (N)
|
|
[2816] = true, -- Shifting Sands, Thaldraszus (N)
|
|
[2818] = true, -- Vault of the Incarnates, Thaldraszus (N)
|
|
[2836] = true, -- Algeth'era, Thaldraszus (Neutral)
|
|
},
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
}
|
|
|
|
-- 10.0.7
|
|
-- Previously: Dracthyr Evokers starting zone (UIMapID 2026)
|
|
zones[BZ["The Forbidden Reach"]] = {
|
|
low = 70,
|
|
high = 70,
|
|
flightnodes = {
|
|
[2855] = true, -- Morqut Village, The Forbidden Reach (N)
|
|
[2862] = true, -- Morqut Islet, Forbidden Reach (Neutral)
|
|
},
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
}
|
|
|
|
-- 10.1.0
|
|
-- 14022
|
|
zones[BZ["Zaralek Cavern"]] = {
|
|
low = 70,
|
|
high = 70,
|
|
instances = {
|
|
[BZ["Aberrus, the Shadowed Crucible"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Ohn'ahran Plains"]] = true,
|
|
[BZ["The Azure Span"]] = true,
|
|
[BZ["Aberrus, the Shadowed Crucible"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2864] = true, -- Obsidian Rest, Zaralek Cavern (Neutral)
|
|
[2865] = true, -- Dragonscale Camp, Zaralek Cavern (Neutral)
|
|
[2863] = true, -- Loamm, Zaralek Cavern (Neutral)
|
|
},
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
}
|
|
|
|
-- 10.2.0
|
|
-- 14529
|
|
zones[BZ["Emerald Dream"]] = {
|
|
low = 70,
|
|
high = 70,
|
|
instances = {
|
|
[BZ["Amirdrassil, the Dream's Hope"]] = true,
|
|
},
|
|
paths = {
|
|
[transports["EMERALDDREAM_OHNAHRANPLAINS_PORTAL"]] = true,
|
|
[BZ["Amirdrassil, the Dream's Hope"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2902] = true, -- Central Encampment, The Emerald Dream (Neutral)
|
|
[2903] = true, -- Verdant Landing, The Emerald Dream (Neutral)
|
|
[2904] = true, -- Eye of Ysera, The Emerald Dream (Neutral)
|
|
[2905] = true, -- Wellspring Overlook, The Emerald Dream (Neutral)
|
|
},
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
}
|
|
|
|
-- 10.2.5
|
|
-- 14969
|
|
zones[BZ["Amirdrassil"]] = {
|
|
low = 70,
|
|
high = 70,
|
|
-- instances = {
|
|
-- [BZ["Aberrus, the Shadowed Crucible"]] = true,
|
|
-- },
|
|
paths = {
|
|
[transports["AMIRDRASSIL_STORMWIND_PORTAL"]] = true,
|
|
[transports["AMIRDRASSIL_DARKSHORE_PORTAL"]] = true,
|
|
[transports["AMIRDRASSIL_MOUNTHYJAL_PORTAL"]] = true,
|
|
[transports["AMIRDRASSIL_VALSHARAH_PORTAL"]] = true,
|
|
[transports["AMIRDRASSIL_FERALAS_PORTAL"]] = true,
|
|
[BZ["Ohn'ahran Plains"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2915] = true, -- Bel'ameth, Amirdrassil (Neutral)
|
|
},
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
}
|
|
|
|
-- ============= DUNGEONS ===============
|
|
|
|
-- Classic dungeons --
|
|
|
|
zones[BZ["Ragefire Chasm"]] = {
|
|
low = 7,
|
|
high = 30,
|
|
ct_low = 7,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = BZ["Orgrimmar"],
|
|
groupSize = 5,
|
|
faction = "Horde",
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Orgrimmar"], 52.8, 49 },
|
|
}
|
|
|
|
zones[BZ["The Deadmines"]] = {
|
|
low = 7,
|
|
high = 30,
|
|
ct_low = 7,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = BZ["Westfall"],
|
|
groupSize = 5,
|
|
faction = "Alliance",
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Westfall"], 42.6, 72.2 },
|
|
}
|
|
|
|
zones[BZ["Shadowfang Keep"]] = {
|
|
low = 8,
|
|
high = 30,
|
|
ct_low = 8,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = BZ["Silverpine Forest"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Silverpine Forest"], 44.80, 67.83 },
|
|
}
|
|
|
|
zones[BZ["Wailing Caverns"]] = {
|
|
low = 8,
|
|
high = 30,
|
|
ct_low = 8,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = BZ["Northern Barrens"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Northern Barrens"], 42.1, 66.5 },
|
|
}
|
|
|
|
zones[BZ["Blackfathom Deeps"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = BZ["Ashenvale"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Ashenvale"], 14.6, 15.3 },
|
|
}
|
|
|
|
zones[BZ["The Stockade"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = BZ["Stormwind City"],
|
|
groupSize = 5,
|
|
faction = "Alliance",
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Stormwind City"], 50.5, 66.3 },
|
|
}
|
|
|
|
zones[BZ["Gnomeregan"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = BZ["Dun Morogh"],
|
|
groupSize = 5,
|
|
faction = "Alliance",
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Dun Morogh"], 24, 38.9 },
|
|
}
|
|
|
|
zones[BZ["Scarlet Halls"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = BZ["Tirisfal Glades"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Tirisfal Glades"], 84.9, 35.3 },
|
|
}
|
|
|
|
zones[BZ["Scarlet Monastery"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = BZ["Tirisfal Glades"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Tirisfal Glades"], 85.3, 32.1 },
|
|
}
|
|
|
|
zones[BZ["Razorfen Kraul"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = BZ["Southern Barrens"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Southern Barrens"], 40.8, 94.5 },
|
|
}
|
|
|
|
-- consists of The Wicked Grotto, Foulspore Cavern and Earth Song Falls
|
|
zones[BZ["Maraudon"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = BZ["Desolace"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Desolace"], 29, 62.4 },
|
|
}
|
|
|
|
zones[BZ["Razorfen Downs"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = BZ["Thousand Needles"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Thousand Needles"], 47.5, 23.7 },
|
|
}
|
|
|
|
zones[BZ["Uldaman"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = BZ["Badlands"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Badlands"], 42.4, 18.6 },
|
|
}
|
|
|
|
-- a.k.a. Warpwood Quarters
|
|
zones[BZ["Dire Maul - East"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = BZ["Dire Maul"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Dire Maul"],
|
|
entrancePortal = { BZ["Feralas"], 66.7, 34.8 },
|
|
}
|
|
|
|
-- a.k.a. Capital Gardens
|
|
zones[BZ["Dire Maul - West"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = BZ["Dire Maul"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Dire Maul"],
|
|
entrancePortal = { BZ["Feralas"], 60.3, 30.6 },
|
|
}
|
|
|
|
-- a.k.a. Gordok Commons
|
|
zones[BZ["Dire Maul - North"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = BZ["Dire Maul"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Dire Maul"],
|
|
entrancePortal = { BZ["Feralas"], 62.5, 24.9 },
|
|
}
|
|
|
|
zones[BZ["Scholomance"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = BZ["Western Plaguelands"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Western Plaguelands"], 69.4, 72.8 },
|
|
}
|
|
|
|
-- consists of Main Gate and Service Entrance
|
|
zones[BZ["Stratholme"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15, -- Note: 20 for Service Entrance?
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = BZ["Eastern Plaguelands"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Eastern Plaguelands"], 30.8, 14.4 },
|
|
}
|
|
|
|
zones[BZ["Zul'Farrak"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = BZ["Tanaris"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Tanaris"], 36, 11.7 },
|
|
}
|
|
|
|
-- consists of Detention Block and Upper City
|
|
zones[BZ["Blackrock Depths"]] = {
|
|
low = 20,
|
|
high = 30,
|
|
ct_low = 20,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Molten Core"]] = true,
|
|
[BZ["Blackrock Mountain"]] = true,
|
|
},
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Blackrock Mountain"],
|
|
entrancePortal = { BZ["Searing Gorge"], 35.4, 84.4 },
|
|
}
|
|
|
|
-- a.k.a. Sunken Temple
|
|
zones[BZ["The Temple of Atal'Hakkar"]] = {
|
|
low = 20,
|
|
high = 30,
|
|
ct_low = 20,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = BZ["Swamp of Sorrows"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Swamp of Sorrows"], 70, 54 },
|
|
}
|
|
|
|
-- a.k.a. Lower Blackrock Spire
|
|
zones[BZ["Blackrock Spire"]] = {
|
|
low = 20,
|
|
high = 30,
|
|
ct_low = 20,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Blackrock Mountain"]] = true,
|
|
[BZ["Blackwing Lair"]] = true,
|
|
[BZ["Blackwing Descent"]] = true,
|
|
},
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Blackrock Mountain"],
|
|
entrancePortal = { BZ["Burning Steppes"], 29.7, 37.5 },
|
|
}
|
|
|
|
|
|
|
|
-- Burning Crusade dungeons (Outland) --
|
|
|
|
zones[BZ["Hellfire Ramparts"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Hellfire Citadel"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Hellfire Citadel"],
|
|
entrancePortal = { BZ["Hellfire Peninsula"], 46.8, 54.9 },
|
|
}
|
|
|
|
zones[BZ["The Blood Furnace"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Hellfire Citadel"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Hellfire Citadel"],
|
|
entrancePortal = { BZ["Hellfire Peninsula"], 46.8, 54.9 },
|
|
}
|
|
|
|
zones[BZ["The Slave Pens"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Coilfang Reservoir"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Coilfang Reservoir"],
|
|
entrancePortal = { BZ["Zangarmarsh"], 50.2, 40.8 },
|
|
}
|
|
|
|
zones[BZ["The Underbog"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Coilfang Reservoir"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Coilfang Reservoir"],
|
|
entrancePortal = { BZ["Zangarmarsh"], 50.2, 40.8 },
|
|
}
|
|
|
|
zones[BZ["Mana-Tombs"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Ring of Observance"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Ring of Observance"],
|
|
entrancePortal = { BZ["Terokkar Forest"], 39.6, 65.5 },
|
|
}
|
|
|
|
zones[BZ["Auchenai Crypts"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Ring of Observance"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Ring of Observance"],
|
|
entrancePortal = { BZ["Terokkar Forest"], 39.6, 65.5 },
|
|
}
|
|
|
|
-- a.k.a. The Escape from Durnhold Keep
|
|
zones[BZ["Old Hillsbrad Foothills"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Kalimdor,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Caverns of Time"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Caverns of Time"],
|
|
entrancePortal = { BZ["Caverns of Time"], 26.7, 32.6 },
|
|
}
|
|
|
|
zones[BZ["Sethekk Halls"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Ring of Observance"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Ring of Observance"],
|
|
entrancePortal = { BZ["Terokkar Forest"], 39.6, 65.5 },
|
|
}
|
|
|
|
zones[BZ["Shadow Labyrinth"]] = {
|
|
low = 20,
|
|
high = 30,
|
|
ct_low = 20,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Ring of Observance"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Ring of Observance"],
|
|
entrancePortal = { BZ["Terokkar Forest"], 39.6, 65.5 },
|
|
}
|
|
|
|
zones[BZ["The Shattered Halls"]] = {
|
|
low = 20,
|
|
high = 30,
|
|
ct_low = 20,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Hellfire Citadel"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Hellfire Citadel"],
|
|
entrancePortal = { BZ["Hellfire Peninsula"], 46.8, 54.9 },
|
|
}
|
|
|
|
zones[BZ["The Steamvault"]] = {
|
|
low = 20,
|
|
high = 30,
|
|
ct_low = 20,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Coilfang Reservoir"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Coilfang Reservoir"],
|
|
entrancePortal = { BZ["Zangarmarsh"], 50.2, 40.8 },
|
|
}
|
|
|
|
zones[BZ["The Mechanar"]] = {
|
|
low = 20,
|
|
high = 30,
|
|
ct_low = 20,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
-- paths = BZ["Tempest Keep"],
|
|
paths = BZ["Netherstorm"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
-- complex = BZ["Tempest Keep"],
|
|
entrancePortal = { BZ["Netherstorm"], 76.5, 65.1 },
|
|
}
|
|
|
|
zones[BZ["The Botanica"]] = {
|
|
low = 20,
|
|
high = 30,
|
|
ct_low = 20,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
-- paths = BZ["Tempest Keep"],
|
|
paths = BZ["Netherstorm"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
-- complex = BZ["Tempest Keep"],
|
|
entrancePortal = { BZ["Netherstorm"], 76.5, 65.1 },
|
|
}
|
|
|
|
zones[BZ["The Arcatraz"]] = {
|
|
low = 25,
|
|
high = 30,
|
|
ct_low = 25,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
-- paths = BZ["Tempest Keep"],
|
|
paths = BZ["Netherstorm"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
-- complex = BZ["Tempest Keep"],
|
|
entrancePortal = { BZ["Netherstorm"], 76.5, 65.1 },
|
|
}
|
|
|
|
|
|
-- Wrath of the Lich King dungeons (Northrend) --
|
|
|
|
zones[BZ["Utgarde Keep"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Howling Fjord"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Howling Fjord"], 57.30, 46.84 },
|
|
}
|
|
|
|
zones[BZ["The Nexus"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
ct_low = 10,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Coldarra"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Coldarra"],
|
|
entrancePortal = { BZ["Borean Tundra"], 27.50, 26.03 },
|
|
}
|
|
|
|
zones[BZ["Azjol-Nerub"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Dragonblight"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Dragonblight"], 26.01, 50.83 },
|
|
}
|
|
|
|
zones[BZ["Ahn'kahet: The Old Kingdom"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Dragonblight"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Dragonblight"], 28.49, 51.73 },
|
|
}
|
|
|
|
zones[BZ["Drak'Tharon Keep"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = {
|
|
[BZ["Grizzly Hills"]] = true,
|
|
[BZ["Zul'Drak"]] = true,
|
|
},
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Zul'Drak"], 28.53, 86.93 },
|
|
}
|
|
|
|
zones[BZ["The Violet Hold"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
ct_low = 15,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Dalaran"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Dalaran"], 66.78, 68.19 },
|
|
}
|
|
|
|
zones[BZ["Gundrak"]] = {
|
|
low = 20,
|
|
high = 30,
|
|
ct_low = 20,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Zul'Drak"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Zul'Drak"], 76.14, 21.00 },
|
|
}
|
|
|
|
zones[BZ["Halls of Stone"]] = {
|
|
low = 20,
|
|
high = 30,
|
|
ct_low = 20,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["The Storm Peaks"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["The Storm Peaks"], 39.52, 26.91 },
|
|
}
|
|
|
|
zones[BZ["Halls of Lightning"]] = {
|
|
low = 20,
|
|
high = 30,
|
|
ct_low = 20,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["The Storm Peaks"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["The Storm Peaks"], 45.38, 21.37 },
|
|
}
|
|
|
|
zones[BZ["The Oculus"]] = {
|
|
low = 20,
|
|
high = 30,
|
|
ct_low = 20,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Coldarra"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Coldarra"],
|
|
entrancePortal = { BZ["Borean Tundra"], 27.52, 26.67 },
|
|
}
|
|
|
|
zones[BZ["Utgarde Pinnacle"]] = {
|
|
low = 20,
|
|
high = 30,
|
|
ct_low = 20,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Howling Fjord"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Howling Fjord"], 57.25, 46.60 },
|
|
}
|
|
|
|
zones[BZ["The Culling of Stratholme"]] = {
|
|
low = 25,
|
|
high = 30,
|
|
ct_low = 25,
|
|
continent = Kalimdor,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Caverns of Time"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Caverns of Time"],
|
|
entrancePortal = { BZ["Caverns of Time"], 60.3, 82.8 },
|
|
}
|
|
|
|
zones[BZ["Magisters' Terrace"]] = {
|
|
low = 25,
|
|
high = 30,
|
|
ct_low = 25,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Isle of Quel'Danas"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Isle of Quel'Danas"], 61.3, 30.9 },
|
|
}
|
|
|
|
-- a.k.a. The Opening of the Black Portal
|
|
zones[BZ["The Black Morass"]] = {
|
|
low = 25,
|
|
high = 30,
|
|
ct_low = 25,
|
|
continent = Kalimdor,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Caverns of Time"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Caverns of Time"],
|
|
entrancePortal = { BZ["Caverns of Time"], 34.4, 84.9 },
|
|
}
|
|
|
|
zones[BZ["Trial of the Champion"]] = {
|
|
low = 25,
|
|
high = 30,
|
|
ct_low = 25,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Icecrown"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Icecrown"], 74.18, 20.45 },
|
|
}
|
|
|
|
zones[BZ["The Forge of Souls"]] = {
|
|
low = 25,
|
|
high = 30,
|
|
ct_low = 25,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Icecrown"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Icecrown"], 52.60, 89.35 },
|
|
}
|
|
|
|
zones[BZ["Halls of Reflection"]] = {
|
|
low = 25,
|
|
high = 30,
|
|
ct_low = 25,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Icecrown"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Icecrown"], 52.60, 89.35 },
|
|
}
|
|
|
|
zones[BZ["Pit of Saron"]] = {
|
|
low = 25,
|
|
high = 30,
|
|
ct_low = 25,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Icecrown"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Icecrown"], 52.60, 89.35 },
|
|
}
|
|
|
|
|
|
-- Cataclysm dungeons --
|
|
|
|
zones[BZ["Blackrock Caverns"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
ct_low = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
paths = {
|
|
[BZ["Blackrock Mountain"]] = true,
|
|
},
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Blackrock Mountain"],
|
|
entrancePortal = { BZ["Searing Gorge"], 47.8, 69.1 },
|
|
}
|
|
|
|
zones[BZ["Throne of the Tides"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
ct_low = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
paths = BZ["Abyssal Depths"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Abyssal Depths"], 69.3, 25.2 },
|
|
}
|
|
|
|
zones[BZ["The Stonecore"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
ct_low = 30,
|
|
continent = The_Maelstrom,
|
|
expansion = Cataclysm,
|
|
paths = BZ["Deepholm"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Deepholm"], 47.70, 51.96 },
|
|
}
|
|
|
|
zones[BZ["The Vortex Pinnacle"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
ct_low = 30,
|
|
continent = Kalimdor,
|
|
expansion = Cataclysm,
|
|
paths = {
|
|
[BZ["Uldum"]] = true,
|
|
},
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Uldum"], 76.79, 84.51 },
|
|
}
|
|
|
|
zones[BZ["Lost City of the Tol'vir"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
ct_low = 30,
|
|
continent = Kalimdor,
|
|
expansion = Cataclysm,
|
|
paths = {
|
|
[BZ["Uldum"]] = true,
|
|
},
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Uldum"], 60.53, 64.24 },
|
|
}
|
|
|
|
zones[BZ["Grim Batol"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
ct_low = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
paths = BZ["Twilight Highlands"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Twilight Highlands"], 19, 53.5 },
|
|
}
|
|
|
|
zones[BZ["Halls of Origination"]] = {
|
|
low = 30,
|
|
high = 35,
|
|
ct_low = 30,
|
|
continent = Kalimdor,
|
|
expansion = Cataclysm,
|
|
paths = {
|
|
[BZ["Uldum"]] = true,
|
|
},
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Uldum"], 69.09, 52.95 },
|
|
}
|
|
|
|
zones[BZ["End Time"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
continent = Kalimdor,
|
|
expansion = Cataclysm,
|
|
paths = BZ["Caverns of Time"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Caverns of Time"],
|
|
entrancePortal = { BZ["Caverns of Time"], 57.1, 25.7 },
|
|
}
|
|
|
|
zones[BZ["Hour of Twilight"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
continent = Kalimdor,
|
|
expansion = Cataclysm,
|
|
paths = BZ["Caverns of Time"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Caverns of Time"],
|
|
entrancePortal = { BZ["Caverns of Time"], 67.9, 29.0 },
|
|
}
|
|
|
|
zones[BZ["Well of Eternity"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
continent = Kalimdor,
|
|
expansion = Cataclysm,
|
|
paths = BZ["Caverns of Time"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Caverns of Time"],
|
|
entrancePortal = { BZ["Caverns of Time"], 22.2, 63.6 },
|
|
}
|
|
|
|
-- Note: before Cataclysm, this was a lvl 70 10-man raid
|
|
zones[BZ["Zul'Aman"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
paths = BZ["Ghostlands"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Ghostlands"], 77.7, 63.2 },
|
|
}
|
|
|
|
-- Note: before Cataclysm, this was a lvl 60 20-man raid
|
|
zones[BZ["Zul'Gurub"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
paths = BZ["Northern Stranglethorn"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Northern Stranglethorn"], 52.2, 17.1 },
|
|
}
|
|
|
|
|
|
|
|
-- Mists of Pandaria dungeons --
|
|
|
|
zones[BZ["Temple of the Jade Serpent"]] = {
|
|
low = 10,
|
|
high = 35,
|
|
ct_low = 10,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = BZ["The Jade Forest"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["The Jade Forest"], 56.20, 57.90 },
|
|
}
|
|
|
|
zones[BZ["Stormstout Brewery"]] = {
|
|
low = 15,
|
|
high = 35,
|
|
ct_low = 15,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = BZ["Valley of the Four Winds"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Valley of the Four Winds"], 36.10, 69.10 },
|
|
}
|
|
|
|
zones[BZ["Shado-Pan Monastery"]] = {
|
|
low = 20,
|
|
high = 35,
|
|
ct_low = 20,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = BZ["Kun-Lai Summit"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Kun-Lai Summit"], 36.7, 47.6 },
|
|
}
|
|
|
|
zones[BZ["Mogu'shan Palace"]] = {
|
|
low = 20,
|
|
high = 35,
|
|
ct_low = 20,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = BZ["Vale of Eternal Blossoms"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Vale of Eternal Blossoms"], 80.7, 33.0 },
|
|
}
|
|
|
|
zones[BZ["Gate of the Setting Sun"]] = {
|
|
low = 25,
|
|
high = 35,
|
|
ct_low = 25,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = BZ["Dread Wastes"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Dread Wastes"], 15.80, 74.30 },
|
|
}
|
|
|
|
zones[BZ["Siege of Niuzao Temple"]] = {
|
|
low = 25,
|
|
high = 35,
|
|
ct_low = 25,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = BZ["Townlong Steppes"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Townlong Steppes"], 34.5, 81.1 },
|
|
}
|
|
|
|
|
|
|
|
-- Warlords of Draenor dungeons --
|
|
|
|
zones[BZ["Bloodmaul Slag Mines"]] = {
|
|
low = 10,
|
|
high = 40,
|
|
ct_low = 10,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
paths = BZ["Frostfire Ridge"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Frostfire Ridge"], 50.0, 24.8 },
|
|
}
|
|
|
|
zones[BZ["Iron Docks"]] = {
|
|
low = 15,
|
|
high = 40,
|
|
ct_low = 15,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
paths = BZ["Gorgrond"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Gorgrond"], 45.2, 13.7 },
|
|
}
|
|
|
|
zones[BZ["Auchindoun"]] = {
|
|
low = 20,
|
|
high = 40,
|
|
ct_low = 20,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
paths = BZ["Talador"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Talador"], 43.6, 74.1 },
|
|
}
|
|
|
|
zones[BZ["Skyreach"]] = {
|
|
low = 30,
|
|
high = 40,
|
|
ct_low = 30,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
paths = BZ["Spires of Arak"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Spires of Arak"], 35.6, 33.5 },
|
|
}
|
|
|
|
zones[BZ["Shadowmoon Burial Grounds"]] = {
|
|
low = 10,
|
|
high = 40,
|
|
ct_low = 10,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
paths = BZ["Shadowmoon Valley"].." ("..BZ["Draenor"]..")",
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Shadowmoon Valley"].." ("..BZ["Draenor"]..")", 31.9, 42.5 },
|
|
}
|
|
|
|
zones[BZ["Grimrail Depot"]] = {
|
|
low = 35,
|
|
high = 40,
|
|
ct_low = 35,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
paths = BZ["Gorgrond"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Gorgrond"], 55.2, 32.1 },
|
|
}
|
|
|
|
zones[BZ["The Everbloom"]] = {
|
|
low = 35,
|
|
high = 40,
|
|
ct_low = 35,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
paths = BZ["Gorgrond"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Gorgrond"], 59.5, 45.3 },
|
|
}
|
|
|
|
zones[BZ["Upper Blackrock Spire"]] = {
|
|
low = 35,
|
|
high = 40,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Warlords_of_Draenor,
|
|
paths = {
|
|
[BZ["Blackrock Mountain"]] = true,
|
|
},
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
complex = BZ["Blackrock Mountain"],
|
|
entrancePortal = { BZ["Burning Steppes"], 29.7, 37.5 },
|
|
}
|
|
|
|
|
|
-- Legion dungeons --
|
|
|
|
zones[BZ["Eye of Azshara"]] = {
|
|
low = 10,
|
|
high = 45,
|
|
ct_low = 10,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
paths = BZ["Azsuna"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Azsuna"], 67.1, 41.1 },
|
|
}
|
|
|
|
zones[BZ["Darkheart Thicket"]] = {
|
|
low = 10,
|
|
high = 45,
|
|
ct_low = 10,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
paths = BZ["Val'sharah"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Val'sharah"], 59.2, 31.5 },
|
|
}
|
|
|
|
zones[BZ["Neltharion's Lair"]] = {
|
|
low = 10,
|
|
high = 45,
|
|
ct_low = 10,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
paths = BZ["Highmountain"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Highmountain"], 49.6, 68.4 },
|
|
}
|
|
|
|
zones[BZ["Halls of Valor"]] = {
|
|
low = 10,
|
|
high = 45,
|
|
ct_low = 10,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
paths = BZ["Stormheim"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Stormheim"], 68.3, 66.2 },
|
|
}
|
|
|
|
zones[BZ["Violet Hold"]] = { -- .." ("..BZ["Broken Isles"]..")"] = {
|
|
low = 10,
|
|
high = 45,
|
|
ct_low = 10,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
paths = {
|
|
[BZ["Dalaran"].." ("..BZ["Broken Isles"]..")"] = true,
|
|
},
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Dalaran"].." ("..BZ["Broken Isles"]..")", 54.8, 54.3 },
|
|
}
|
|
|
|
-- = Maw of Souls = The Naglfar??
|
|
-- Helmouth Cliffs appears to be the location of the entrance to Maw of Souls
|
|
-- However, there's no mapID for Maw of Souls
|
|
zones[BZ["Helmouth Cliffs"]] = {
|
|
low = 10,
|
|
high = 45,
|
|
ct_low = 10,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
paths = BZ["Stormheim"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Stormheim"], 53.0, 47.2 },
|
|
}
|
|
|
|
zones[BZ["Court of Stars"]] = {
|
|
low = 45,
|
|
high = 45,
|
|
ct_low = 45,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
paths = BZ["Suramar"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Suramar"], 50.7, 65.5 },
|
|
}
|
|
|
|
zones[BZ["The Arcway"]] = {
|
|
low = 45,
|
|
high = 45,
|
|
ct_low = 45,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
paths = BZ["Suramar"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Suramar"], 41.8, 60.7 },
|
|
}
|
|
|
|
zones[BZ["Cathedral of Eternal Night"]] = {
|
|
low = 45,
|
|
high = 45,
|
|
ct_low = 10,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
paths = BZ["Broken Shore"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Broken Shore"], 63, 18 },
|
|
}
|
|
|
|
zones[BZ["The Seat of the Triumvirate"]] = {
|
|
low = 45,
|
|
high = 45,
|
|
continent = Argus,
|
|
expansion = Legion,
|
|
paths = BZ["Eredath"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Eredath"], 22.3, 56.1 },
|
|
}
|
|
|
|
zones[BZ["Black Rook Hold"]] = {
|
|
low = 10,
|
|
high = 45,
|
|
ct_low = 10,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
paths = BZ["Val'sharah"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Val'sharah"], 38.7, 53.2 },
|
|
}
|
|
|
|
zones[BZ["Vault of the Wardens"]] = {
|
|
low = 10,
|
|
high = 45,
|
|
ct_low = 10,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
paths = BZ["Azsuna"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Azsuna"], 48.2, 82.7 },
|
|
}
|
|
|
|
zones[BZ["Return to Karazhan"]] = {
|
|
low = 45,
|
|
high = 45,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Legion,
|
|
paths = BZ["Deadwind Pass"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Deadwind Pass"], 46.7, 70.2 },
|
|
}
|
|
|
|
-- WoW BFA dungeons
|
|
-- Alliance
|
|
|
|
zones[BZ["Shrine of the Storm"]] = {
|
|
low = GetBFAInstanceLow(10, "Alliance"),
|
|
high = 50,
|
|
ct_low = 10, -- ?
|
|
continent = Kul_Tiras,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Stormsong Valley"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Stormsong Valley"], 78.8, 26.6 },
|
|
}
|
|
|
|
zones[BZ["Waycrest Manor"]] = {
|
|
low = GetBFAInstanceLow(10, "Alliance"),
|
|
high = 50,
|
|
ct_low = 10, -- ?
|
|
continent = Kul_Tiras,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Drustvar"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Drustvar"], 33.7, 12.7 },
|
|
}
|
|
|
|
zones[BZ["Freehold"]] = {
|
|
low = GetBFAInstanceLow(10, "Alliance"),
|
|
high = 50,
|
|
ct_low = 10,
|
|
continent = Kul_Tiras,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Tiragarde Sound"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Tiragarde Sound"], 84.7, 78.7 },
|
|
}
|
|
|
|
zones[BZ["Tol Dagor"]] = {
|
|
low = GetBFAInstanceLow(10, "Alliance"),
|
|
high = 50,
|
|
ct_low = 10,
|
|
continent = Kul_Tiras,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Tiragarde Sound"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Tiragarde Sound"], 99.1, 47.3 },
|
|
}
|
|
|
|
zones[BZ["Siege of Boralus"]] = {
|
|
low = 50,
|
|
high = 50,
|
|
continent = Kul_Tiras,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Tiragarde Sound"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = GetSiegeOfBoralusEntrance(),
|
|
}
|
|
|
|
-- Patch 8.1.5 raid
|
|
zones[BZ["Crucible of Storms"]] = {
|
|
low = 50,
|
|
high = 50,
|
|
continent = Kul_Tiras,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Stormsong Valley"],
|
|
groupSize = 10,
|
|
altGroupSize = 30,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Stormsong Valley"], 84.0, 46.4 },
|
|
}
|
|
|
|
|
|
-- Patch 8.2.0 dungeon
|
|
-- Is called Operation: Mechagon but there's no map for this name in C_Map
|
|
zones[BZ["Mechagon"]] = {
|
|
low = 50,
|
|
high = 50,
|
|
continent = Kul_Tiras,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Mechagon Island"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
--entrancePortal = { BZ["Mechagon Island"], 84.0, 46.4 }, TODO
|
|
}
|
|
|
|
|
|
-- Patch 8.2.0 raid
|
|
zones[BZ["The Eternal Palace"]] = {
|
|
low = 50,
|
|
high = 50,
|
|
continent = Azeroth,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Nazjatar"],
|
|
groupSize = 10,
|
|
altGroupSize = 30,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Nazjatar"], 50.21, 10.97 },
|
|
}
|
|
|
|
|
|
-- Horde
|
|
|
|
zones[BZ["Atal'Dazar"]] = {
|
|
low = GetBFAInstanceLow(10, "Horde"),
|
|
high = 50,
|
|
ct_low = 10,
|
|
continent = Zandalar,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Zuldazar"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Zuldazar"], 43.6, 39.4 },
|
|
}
|
|
|
|
zones[BZ["Temple of Sethraliss"]] = {
|
|
low = GetBFAInstanceLow(10, "Horde"),
|
|
high = 50,
|
|
ct_low = 10,
|
|
continent = Zandalar,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Vol'dun"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Vol'dun"], 51.9, 25.1 },
|
|
}
|
|
|
|
zones[BZ["The Underrot"]] = {
|
|
low = GetBFAInstanceLow(10, "Horde"),
|
|
high = 50,
|
|
ct_low = 10,
|
|
continent = Zandalar,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Nazmir"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Nazmir"], 51.9, 65.8 },
|
|
}
|
|
|
|
zones[BZ["The MOTHERLODE!!"]] = {
|
|
low = GetBFAInstanceLow(10, "Horde"),
|
|
high = 50,
|
|
ct_low = 10,
|
|
continent = Zandalar,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Dazar'alor"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = GetTheMotherlodeEntrance(),
|
|
}
|
|
|
|
zones[BZ["Kings' Rest"]] = {
|
|
low = 50,
|
|
high = 50,
|
|
continent = Zandalar,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Zuldazar"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Zuldazar"], 37.9, 39.5 },
|
|
}
|
|
|
|
|
|
-- Patch 8.1 raids
|
|
zones[BZ["Battle of Dazar'alor"]] = {
|
|
low = 50,
|
|
high = 50,
|
|
continent = Zandalar,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Zuldazar"],
|
|
groupSize = 10,
|
|
altGroupSize = 30,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Zuldazar"], 54.3, 29.9 },
|
|
}
|
|
|
|
zones[BZ["Uldir"]] = {
|
|
low = 50,
|
|
high = 50,
|
|
continent = Zandalar,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Nazmir"],
|
|
groupSize = 10,
|
|
altGroupSize = 30,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Nazmir"], 53.9, 62.7 },
|
|
}
|
|
|
|
-- Patch 8.3 raid
|
|
-- The entrance of this raid can either be in Uldum or in the Vale of Eternal Blossoms,
|
|
-- changing once a week.
|
|
-- Two entrances is not supported by the data structure of LibTourist unless a way can be found to detect the current location of the raid entrance.
|
|
zones[BZ["Ny'alotha"]] = { -- a.k.a The Waking City
|
|
low = 50,
|
|
high = 50,
|
|
continent = Zandalar,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Uldum"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Uldum"], 55, 43.6 },
|
|
}
|
|
|
|
-- Shadowlands dungeons
|
|
|
|
-- 12916
|
|
zones[BZ["The Necrotic Wake"]] = {
|
|
low = 51,
|
|
high = 51,
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
paths = BZ["Bastion"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Bastion"], 40.33, 55.23 },
|
|
}
|
|
|
|
-- 12837
|
|
zones[BZ["Spires of Ascension"]] = {
|
|
low = 60,
|
|
high = 60,
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
paths = BZ["Bastion"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Bastion"], 58.47, 28.70 },
|
|
}
|
|
|
|
-- 13228
|
|
zones[BZ["Plaguefall"]] = {
|
|
low = 53,
|
|
high = 53,
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
paths = BZ["Maldraxxus"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Maldraxxus"], 59.30, 64.84 },
|
|
}
|
|
|
|
-- 12841
|
|
zones[BZ["Theater of Pain"]] = {
|
|
low = 60,
|
|
high = 60,
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
paths = BZ["Maldraxxus"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Maldraxxus"], 53.21, 53.14 },
|
|
}
|
|
|
|
-- 13334
|
|
zones[BZ["Mists of Tirna Scithe"]] = {
|
|
low = 55,
|
|
high = 55,
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
paths = BZ["Ardenweald"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Ardenweald"], 35.71, 54.21 },
|
|
}
|
|
|
|
-- 13309
|
|
zones[BZ["De Other Side"]] = {
|
|
low = 60,
|
|
high = 60,
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
paths = BZ["Ardenweald"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Ardenweald"], 68.60, 65.98 },
|
|
}
|
|
|
|
-- 12831
|
|
zones[BZ["Halls of Atonement"]] = {
|
|
low = 57,
|
|
high = 57,
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
paths = BZ["Revendreth"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Revendreth"], 77.96, 48.52 },
|
|
}
|
|
|
|
-- 12842
|
|
zones[BZ["Sanguine Depths"]] = {
|
|
low = 60,
|
|
high = 60,
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
paths = BZ["Revendreth"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Revendreth"], 51.09, 30.07 },
|
|
}
|
|
|
|
-- 13577
|
|
zones[BZ["Tazavesh, the Veiled Market"]] = {
|
|
low = 60,
|
|
high = 60,
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
paths = {
|
|
[transports["TAZAVESH_ORIBOS_FLIGHTPATH"]] = true,
|
|
},
|
|
flightnodes = {
|
|
[2703] = true, -- Tazavesh, the Veiled Market
|
|
},
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
--entrancePortal = { BZ["Revendreth"], 0, 0 }, -- TODO
|
|
}
|
|
|
|
|
|
-- DragonFlight dungeons
|
|
|
|
|
|
-- 14011
|
|
zones[BZ["Neltharus"]] = {
|
|
low = 70,
|
|
high = 70,
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
paths = BZ["The Waking Shores"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["The Waking Shores"], 25.57, 56.95 },
|
|
}
|
|
|
|
-- 14063
|
|
zones[BZ["Ruby Life Pools"]] = {
|
|
low = 61,
|
|
high = 70,
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
paths = BZ["The Waking Shores"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["The Waking Shores"], 60.00, 75.77 },
|
|
}
|
|
|
|
-- whole Ohn'ahran Plains zone?
|
|
zones[BZ["The Nokhud Offensive"]] = {
|
|
low = 60,
|
|
high = 70,
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
paths = BZ["Ohn'ahran Plains"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Ohn'ahran Plains"], 62.01, 42.44 },
|
|
flightnodes = {
|
|
[2847] = true, -- Maruukai, The Nokhud Offensive (Neutral)
|
|
[2848] = true, -- The Nokhud Approach, The Nokhud Offensive (Neutral)
|
|
[2849] = true, -- The Battle of Spears, The Nokhud Offensive (Neutral)
|
|
[2850] = true, -- Teerakai, The Nokhud Offensive (Neutral)
|
|
[2851] = true, -- Ohn'iri Springs, The Nokhud Offensive (Neutral)
|
|
},
|
|
}
|
|
|
|
-- 13954
|
|
zones[BZ["The Azure Vault"]] = {
|
|
low = 70,
|
|
high = 70,
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
paths = BZ["The Azure Span"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["The Azure Span"], 38.89, 64.76 },
|
|
}
|
|
|
|
-- 13991
|
|
zones[BZ["Brackenhide Hollow"]] = {
|
|
low = 66,
|
|
high = 70,
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
paths = BZ["The Azure Span"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["The Azure Span"], 11.57, 48.78 },
|
|
}
|
|
|
|
-- 14032
|
|
zones[BZ["Algeth'ar Academy"]] = {
|
|
low = 70,
|
|
high = 70,
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
paths = BZ["Thaldraszus"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Thaldraszus"], 58.28, 42.35 },
|
|
}
|
|
|
|
-- 14082
|
|
zones[BZ["Halls Of Infusion"]] = {
|
|
low = 69,
|
|
high = 70,
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
paths = BZ["Thaldraszus"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Thaldraszus"], 59.24, 60.64 },
|
|
}
|
|
|
|
-- 13968
|
|
zones[BZ["Uldaman: Legacy of Tyr"]] = {
|
|
low = 70,
|
|
high = 70,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = DragonFlight,
|
|
paths = BZ["Badlands"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Badlands"], 42.4, 18.6 },
|
|
}
|
|
|
|
zones[BZ["Dawn of the Infinite"]] = {
|
|
low = 70,
|
|
high = 70,
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
paths = BZ["Thaldraszus"],
|
|
groupSize = 5,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Thaldraszus"], 59.24, 60.64 },
|
|
}
|
|
|
|
|
|
-- ==================RAIDS=====================
|
|
|
|
-- Classic Raids --
|
|
|
|
zones[BZ["Blackwing Lair"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = BZ["Blackrock Mountain"],
|
|
groupSize = 40,
|
|
type = "Instance",
|
|
complex = BZ["Blackrock Mountain"],
|
|
entrancePortal = { BZ["Burning Steppes"], 29.7, 37.5 },
|
|
}
|
|
|
|
zones[BZ["Molten Core"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = BZ["Blackrock Mountain"],
|
|
groupSize = 40,
|
|
type = "Instance",
|
|
complex = BZ["Blackrock Mountain"],
|
|
entrancePortal = { BZ["Searing Gorge"], 35.4, 84.4 },
|
|
}
|
|
|
|
zones[BZ["Ahn'Qiraj"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = BZ["Ahn'Qiraj: The Fallen Kingdom"],
|
|
groupSize = 40,
|
|
type = "Instance",
|
|
complex = BZ["Ahn'Qiraj: The Fallen Kingdom"],
|
|
entrancePortal = { BZ["Ahn'Qiraj: The Fallen Kingdom"], 46.6, 7.4 },
|
|
}
|
|
|
|
zones[BZ["Ruins of Ahn'Qiraj"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = BZ["Ahn'Qiraj: The Fallen Kingdom"],
|
|
groupSize = 20,
|
|
type = "Instance",
|
|
complex = BZ["Ahn'Qiraj: The Fallen Kingdom"],
|
|
entrancePortal = { BZ["Ahn'Qiraj: The Fallen Kingdom"], 58.9, 14.3 },
|
|
}
|
|
|
|
-- Burning Crusade raids
|
|
|
|
zones[BZ["Karazhan"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Deadwind Pass"],
|
|
groupSize = 10,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Deadwind Pass"], 40.9, 73.2 },
|
|
}
|
|
|
|
-- a.k.a. The Battle for Mount Hyjal
|
|
zones[BZ["Hyjal Summit"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Kalimdor,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Caverns of Time"],
|
|
groupSize = 25,
|
|
type = "Instance",
|
|
complex = BZ["Caverns of Time"],
|
|
entrancePortal = { BZ["Caverns of Time"], 38.8, 16.6 },
|
|
}
|
|
|
|
zones[BZ["Black Temple"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Shadowmoon Valley"],
|
|
groupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Shadowmoon Valley"], 77.7, 43.7 },
|
|
}
|
|
|
|
zones[BZ["Magtheridon's Lair"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Hellfire Citadel"],
|
|
groupSize = 25,
|
|
type = "Instance",
|
|
complex = BZ["Hellfire Citadel"],
|
|
entrancePortal = { BZ["Hellfire Peninsula"], 46.8, 54.9 },
|
|
}
|
|
|
|
zones[BZ["Serpentshrine Cavern"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Coilfang Reservoir"],
|
|
groupSize = 25,
|
|
type = "Instance",
|
|
complex = BZ["Coilfang Reservoir"],
|
|
entrancePortal = { BZ["Zangarmarsh"], 50.2, 40.8 },
|
|
}
|
|
|
|
zones[BZ["Gruul's Lair"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Blade's Edge Mountains"],
|
|
groupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Blade's Edge Mountains"], 68, 24 },
|
|
}
|
|
|
|
zones[BZ["Tempest Keep"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
-- paths = BZ["Tempest Keep"],
|
|
paths = BZ["Netherstorm"],
|
|
groupSize = 25,
|
|
type = "Instance",
|
|
-- complex = BZ["Tempest Keep"],
|
|
entrancePortal = { BZ["Netherstorm"], 76.5, 65.1 },
|
|
}
|
|
|
|
zones[BZ["Sunwell Plateau"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Isle of Quel'Danas"],
|
|
groupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Isle of Quel'Danas"], 44.3, 45.7 },
|
|
}
|
|
|
|
-- Wrath of the Lich King raids
|
|
|
|
zones[BZ["The Eye of Eternity"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Coldarra"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
complex = BZ["Coldarra"],
|
|
entrancePortal = { BZ["Borean Tundra"], 27.54, 26.68 },
|
|
}
|
|
|
|
zones[BZ["Onyxia's Lair"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Kalimdor,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Dustwallow Marsh"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Dustwallow Marsh"], 52, 76 },
|
|
}
|
|
|
|
zones[BZ["Naxxramas"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Dragonblight"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Dragonblight"], 87.30, 51.00 },
|
|
}
|
|
|
|
zones[BZ["The Obsidian Sanctum"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Dragonblight"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Dragonblight"], 60.00, 57.00 },
|
|
}
|
|
|
|
zones[BZ["Ulduar"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["The Storm Peaks"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["The Storm Peaks"], 41.56, 17.76 },
|
|
}
|
|
|
|
zones[BZ["Trial of the Crusader"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Icecrown"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Icecrown"], 75.07, 21.80 },
|
|
}
|
|
|
|
zones[BZ["Icecrown Citadel"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Icecrown"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Icecrown"], 53.86, 87.27 },
|
|
}
|
|
|
|
zones[BZ["Vault of Archavon"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Wintergrasp"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Wintergrasp"], 50, 11.2 },
|
|
}
|
|
|
|
zones[BZ["The Ruby Sanctum"]] = {
|
|
low = 30,
|
|
high = 30,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Dragonblight"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Dragonblight"], 61.00, 53.00 },
|
|
}
|
|
|
|
|
|
-- Cataclysm raids
|
|
|
|
zones[BZ["Firelands"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
continent = Kalimdor,
|
|
expansion = Cataclysm,
|
|
paths = BZ["Mount Hyjal"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Mount Hyjal"], 47.3, 78.3 },
|
|
}
|
|
|
|
zones[BZ["Throne of the Four Winds"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
continent = Kalimdor,
|
|
expansion = Cataclysm,
|
|
paths = {
|
|
[BZ["Uldum"]] = true,
|
|
},
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Uldum"], 38.26, 80.66 },
|
|
}
|
|
|
|
zones[BZ["Blackwing Descent"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
paths = {
|
|
[BZ["Burning Steppes"]] = true,
|
|
[BZ["Blackrock Mountain"]] = true,
|
|
[BZ["Blackrock Spire"]] = true,
|
|
},
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
complex = BZ["Blackrock Mountain"],
|
|
entrancePortal = { BZ["Burning Steppes"], 26.1, 24.6 },
|
|
}
|
|
|
|
zones[BZ["The Bastion of Twilight"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
paths = BZ["Twilight Highlands"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Twilight Highlands"], 33.8, 78.2 },
|
|
}
|
|
|
|
zones[BZ["Dragon Soul"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
continent = Kalimdor,
|
|
expansion = Cataclysm,
|
|
paths = BZ["Caverns of Time"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
complex = BZ["Caverns of Time"],
|
|
entrancePortal = { BZ["Caverns of Time"], 60.0, 21.1 },
|
|
}
|
|
|
|
-- Opens when your faction controls Tol Barad
|
|
zones[BZ["Baradin Hold"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
paths = BZ["Tol Barad"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
-- entrancePortal = { BZ["Tol Barad"], 33.8, 78.2 }, n/a
|
|
}
|
|
|
|
|
|
-- Mists of Pandaria raids
|
|
|
|
zones[BZ["Mogu'shan Vaults"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = BZ["Kun-Lai Summit"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Kun-Lai Summit"], 59.1, 39.8 },
|
|
}
|
|
|
|
zones[BZ["Heart of Fear"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = BZ["Dread Wastes"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Dread Wastes"], 39.0, 35.0 },
|
|
}
|
|
|
|
zones[BZ["Terrace of Endless Spring"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = BZ["The Veiled Stair"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["The Veiled Stair"], 47.9, 60.8 },
|
|
}
|
|
|
|
zones[BZ["Throne of Thunder"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = BZ["Isle of Thunder"],
|
|
groupSize = 10,
|
|
altGroupSize = 25,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["The Veiled Stair"], 63.5, 32.2 },
|
|
}
|
|
|
|
zones[BZ["Siege of Orgrimmar"]] = {
|
|
low = 35,
|
|
high = 35,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = BZ["Vale of Eternal Blossoms"],
|
|
groupMinSize = 10,
|
|
groupMaxSize = 30,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Vale of Eternal Blossoms"], 74.0, 42.2 },
|
|
}
|
|
|
|
-- Warlords of Draenor raids
|
|
|
|
zones[BZ["Blackrock Foundry"]] = {
|
|
low = 40,
|
|
high = 40,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
paths = BZ["Gorgrond"],
|
|
groupMinSize = 10,
|
|
groupMaxSize = 30,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Gorgrond"], 51.5, 27.4 },
|
|
}
|
|
|
|
zones[BZ["Highmaul"]] = {
|
|
low = 40,
|
|
high = 40,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
paths = BZ["Nagrand"].." ("..BZ["Draenor"]..")",
|
|
groupMinSize = 10,
|
|
groupMaxSize = 30,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Nagrand"].." ("..BZ["Draenor"]..")", 34, 38 },
|
|
}
|
|
|
|
zones[BZ["Hellfire Citadel"].." ("..BZ["Draenor"]..")"] = {
|
|
low = 40,
|
|
high = 40,
|
|
continent = Draenor,
|
|
expansion = Warlords_of_Draenor,
|
|
paths = BZ["Tanaan Jungle"],
|
|
groupMinSize = 10,
|
|
groupMaxSize = 30,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Tanaan Jungle"], 45, 53 },
|
|
}
|
|
|
|
|
|
-- Legion raids
|
|
|
|
zones[BZ["The Emerald Nightmare"]] = {
|
|
low = 45,
|
|
high = 45,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
paths = BZ["Val'sharah"],
|
|
groupMinSize = 10,
|
|
groupMaxSize = 30,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Val'sharah"], 57.1, 39.9 },
|
|
}
|
|
|
|
zones[BZ["The Nighthold"]] = {
|
|
low = 45,
|
|
high = 45,
|
|
continent = Broken_Isles,
|
|
expansion = Legion,
|
|
paths = BZ["Suramar"],
|
|
groupMinSize = 10,
|
|
groupMaxSize = 30,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Suramar"], 42.2, 59.7 },
|
|
}
|
|
|
|
zones[BZ["Antorus, the Burning Throne"]] = {
|
|
low = 45,
|
|
high = 45,
|
|
continent = Argus,
|
|
expansion = Legion,
|
|
paths = BZ["Antoran Wastes"],
|
|
groupMinSize = 10,
|
|
groupMaxSize = 30,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Antoran Wastes"], 54.91, 62.41 },
|
|
}
|
|
|
|
|
|
-- Shadowlands raids
|
|
|
|
zones[BZ["Castle Nathria"]] = {
|
|
low = 60,
|
|
high = 60,
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
paths = BZ["Revendreth"],
|
|
groupMinSize = 10,
|
|
groupMaxSize = 30,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Revendreth"], 45.7, 41.4 },
|
|
}
|
|
|
|
zones[BZ["Sanctum of Domination"]] = {
|
|
low = 60,
|
|
high = 60,
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
paths = BZ["The Maw"],
|
|
groupMinSize = 10,
|
|
groupMaxSize = 30,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["The Maw"], 68.4, 32.5 },
|
|
}
|
|
|
|
zones[BZ["Sepulcher of the First Ones"]] = {
|
|
low = 60,
|
|
high = 60,
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
paths = BZ["Zereth Mortis"],
|
|
groupMinSize = 10,
|
|
groupMaxSize = 30,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Zereth Mortis"], 68.4, 32.5 },
|
|
}
|
|
|
|
|
|
-- DragonFlight raids
|
|
|
|
-- 14030
|
|
zones[BZ["Vault of the Incarnates"]] = {
|
|
low = 70,
|
|
high = 70,
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
paths = BZ["Thaldraszus"],
|
|
groupMinSize = 10,
|
|
groupMaxSize = 30,
|
|
type = "Instance",
|
|
entrancePortal = { BZ["Thaldraszus"], 73.14, 55.60 },
|
|
}
|
|
|
|
-- 14663
|
|
zones[BZ["Aberrus, the Shadowed Crucible"]] = {
|
|
low = 70,
|
|
high = 70,
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
paths = BZ["Zaralek Cavern"],
|
|
groupMinSize = 10,
|
|
groupMaxSize = 30,
|
|
type = "Instance",
|
|
--entrancePortal = { BZ["Zaralek Cavern"], 73.14, 55.60 }, -- todo
|
|
}
|
|
|
|
-- 14643
|
|
zones[BZ["Amirdrassil, the Dream's Hope"]] = {
|
|
low = 70,
|
|
high = 70,
|
|
continent = Dragon_Isles,
|
|
expansion = DragonFlight,
|
|
paths = BZ["Emerald Dream"],
|
|
groupMinSize = 10,
|
|
groupMaxSize = 30,
|
|
type = "Instance",
|
|
--entrancePortal = { BZ["Emerald Dream"], 73.14, 55.60 }, -- todo
|
|
}
|
|
|
|
-- ==============BATTLEGROUNDS================
|
|
|
|
zones[BZ["Arathi Basin"]] = {
|
|
low = 7,
|
|
high = MAX_PLAYER_LEVEL,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = BZ["Arathi Highlands"],
|
|
groupSize = 15,
|
|
type = "Battleground",
|
|
texture = "ArathiBasin",
|
|
}
|
|
|
|
zones[BZ["Warsong Gulch"]] = {
|
|
low = 10,
|
|
high = MAX_PLAYER_LEVEL,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = isHorde and BZ["Northern Barrens"] or BZ["Ashenvale"],
|
|
groupSize = 10,
|
|
type = "Battleground",
|
|
texture = "WarsongGulch",
|
|
}
|
|
|
|
zones[BZ["Eye of the Storm"]] = {
|
|
low = 20,
|
|
high = MAX_PLAYER_LEVEL,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
groupSize = 15,
|
|
type = "Battleground",
|
|
texture = "NetherstormArena",
|
|
}
|
|
|
|
zones[BZ["Alterac Valley"]] = {
|
|
low = 10,
|
|
high = MAX_PLAYER_LEVEL,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
paths = BZ["Hillsbrad Foothills"],
|
|
groupSize = 40,
|
|
type = "Battleground",
|
|
texture = "AlteracValley",
|
|
}
|
|
|
|
zones[BZ["Strand of the Ancients"]] = {
|
|
low = 10,
|
|
high = MAX_PLAYER_LEVEL,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
groupSize = 15,
|
|
type = "Battleground",
|
|
texture = "StrandoftheAncients",
|
|
}
|
|
|
|
zones[BZ["Isle of Conquest"]] = {
|
|
low = 20,
|
|
high = MAX_PLAYER_LEVEL,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
groupSize = 40,
|
|
type = "Battleground",
|
|
texture = "IsleofConquest",
|
|
}
|
|
|
|
zones[BZ["The Battle for Gilneas"]] = {
|
|
low = 20,
|
|
high = MAX_PLAYER_LEVEL,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
groupSize = 10,
|
|
type = "Battleground",
|
|
texture = "TheBattleforGilneas",
|
|
}
|
|
|
|
zones[BZ["Twin Peaks"]] = {
|
|
low = 30,
|
|
high = MAX_PLAYER_LEVEL,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Cataclysm,
|
|
paths = BZ["Twilight Highlands"],
|
|
groupSize = 10,
|
|
type = "Battleground",
|
|
texture = "TwinPeaks", -- TODO: verify
|
|
}
|
|
|
|
zones[BZ["Deepwind Gorge"]] = {
|
|
low = 40,
|
|
high = MAX_PLAYER_LEVEL,
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = BZ["Valley of the Four Winds"],
|
|
groupSize = 15,
|
|
type = "Battleground",
|
|
texture = "DeepwindGorge", -- TODO: verify
|
|
}
|
|
|
|
|
|
-- ==============ARENAS================
|
|
|
|
-- Circle of Blood
|
|
zones[BZ["Blade's Edge Arena"]] = {
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Blade's Edge Mountains"],
|
|
type = "Arena",
|
|
}
|
|
|
|
-- Ring of Trials
|
|
zones[BZ["Nagrand Arena"]] = {
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Nagrand"],
|
|
type = "Arena",
|
|
}
|
|
|
|
zones[BZ["Ruins of Lordaeron"]] = {
|
|
continent = Kalimdor,
|
|
expansion = The_Burning_Crusade,
|
|
paths = BZ["Undercity"],
|
|
type = "Arena",
|
|
}
|
|
|
|
zones[BZ["Dalaran Arena"]] = {
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = BZ["Dalaran"],
|
|
type = "Arena",
|
|
}
|
|
|
|
-- "The Ring of Valor arena featured unique mechanics with pillars moving up and down.
|
|
-- However, the arena was plagued with bugs and Blizzard ultimately decided to
|
|
-- remove it with intentions of bringing it back as soon as the bugs were resolved."
|
|
-- zones[BZ["The Ring of Valor"]] = {
|
|
-- continent = Kalimdor,
|
|
-- expansion = Wrath_of_the_Lich_King,
|
|
-- type = "Arena",
|
|
-- }
|
|
|
|
-- Zone name = TolVirArena
|
|
-- Not sure if this arena is still present in the game. AreaID is 6296.
|
|
-- MapID = 980 ("Tol Dagor")?
|
|
-- zones[BZ["Tol'Viron Arena"]] = {
|
|
-- continent = Kalimdor,
|
|
-- expansion = Mists_of_Pandaria,
|
|
-- paths = BZ["Uldum"],
|
|
-- type = "Arena",
|
|
-- }
|
|
|
|
-- PvE arena, Stormwind. Is a subzone of the Deeprun Tram, and shares it's map ID, 396. AreaID is 6618.
|
|
-- zones[BZ["Bizmo's Brawlpub"]] = {
|
|
-- continent = Eastern_Kingdoms,
|
|
-- expansion = Mists_of_Pandaria,
|
|
-- paths = BZ["Stormwind City"],
|
|
-- faction = "Alliance",
|
|
-- type = "Arena",
|
|
-- }
|
|
|
|
-- PvE arena, Orgrimmar
|
|
zones[BZ["Brawl'gar Arena"]] = {
|
|
continent = Kalimdor,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = BZ["Orgrimmar"],
|
|
faction = "Horde",
|
|
type = "Arena",
|
|
}
|
|
|
|
zones[BZ["The Tiger's Peak"]] = {
|
|
continent = Pandaria,
|
|
expansion = Mists_of_Pandaria,
|
|
paths = BZ["Kun-Lai Summit"],
|
|
type = "Arena",
|
|
}
|
|
|
|
-- Zone name = AshamanesFall
|
|
-- MapID = 1552. AreaID is 8008.
|
|
-- zones[BZ["Ashamane's Fall"]] = {
|
|
-- continent = Broken_Isles,
|
|
-- expansion = Legion,
|
|
-- paths = BZ["Val'sharah"],
|
|
-- type = "Arena",
|
|
-- }
|
|
|
|
-- Zone name = RavencourtArena
|
|
-- MapID = 1504. AreaID is 7816.
|
|
-- zones[BZ["Black Rook Hold Arena"]] = {
|
|
-- continent = Broken_Isles,
|
|
-- expansion = Legion,
|
|
-- paths = BZ["Val'sharah"],
|
|
-- type = "Arena",
|
|
-- }
|
|
|
|
-- Added in patch 8.0.1
|
|
-- Zone name = KulTirasArena
|
|
-- MapID = 1825. AreaID is 9279.
|
|
-- Arena appears to be buggy and not much appreciated by players.
|
|
zones[BZ["Hook Point"]] = {
|
|
continent = Kul_Tiras,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Boralus"],
|
|
faction = "Alliance",
|
|
type = "Arena",
|
|
}
|
|
|
|
-- Added in patch 8.0.1
|
|
-- Zone name = MugambalaArena
|
|
-- MapID = 1911. AreaID is 9992.
|
|
zones[BZ["Mugambala"]] = {
|
|
continent = Zuldazar,
|
|
expansion = Battle_for_Azeroth,
|
|
paths = BZ["Zuldazar"],
|
|
faction = "Horde",
|
|
type = "Arena",
|
|
}
|
|
|
|
-- Added in patch 8.2.0
|
|
-- Zone name = MechagonArena
|
|
-- MapID is 2167. AreaID is 10497.
|
|
-- zones[BZ["The Robodrome"]] = {
|
|
-- continent = Kul_Tiras,
|
|
-- expansion = Battle_for_Azeroth,
|
|
-- paths = BZ["Mechagon Island"],
|
|
-- type = "Arena",
|
|
-- }
|
|
|
|
|
|
-- Added in patch 9.2.5
|
|
-- Zone name = EnigmaCrucible
|
|
-- MapID is 2547. AreaID is 14083.
|
|
zones[BZ["Enigma Crucible"]] = {
|
|
continent = The_Shadowlands,
|
|
expansion = Shadowlands,
|
|
paths = BZ["Zereth Mortis"],
|
|
type = "Arena",
|
|
}
|
|
|
|
-- ==============COMPLEXES================
|
|
|
|
zones[BZ["Dire Maul"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
instances = {
|
|
[BZ["Dire Maul - East"]] = true,
|
|
[BZ["Dire Maul - North"]] = true,
|
|
[BZ["Dire Maul - West"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Feralas"]] = true,
|
|
[BZ["Dire Maul - East"]] = true,
|
|
[BZ["Dire Maul - North"]] = true,
|
|
[BZ["Dire Maul - West"]] = true,
|
|
},
|
|
type = "Complex",
|
|
}
|
|
|
|
zones[BZ["Blackrock Mountain"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
continent = Eastern_Kingdoms,
|
|
expansion = Classic,
|
|
instances = {
|
|
[BZ["Blackrock Depths"]] = true,
|
|
[BZ["Blackrock Caverns"]] = true,
|
|
[BZ["Blackwing Lair"]] = true,
|
|
[BZ["Blackwing Descent"]] = true,
|
|
[BZ["Molten Core"]] = true,
|
|
[BZ["Blackrock Spire"]] = true,
|
|
[BZ["Upper Blackrock Spire"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Burning Steppes"]] = true,
|
|
[BZ["Searing Gorge"]] = true,
|
|
[BZ["Blackwing Lair"]] = true,
|
|
[BZ["Blackwing Descent"]] = true,
|
|
[BZ["Molten Core"]] = true,
|
|
[BZ["Blackrock Depths"]] = true,
|
|
[BZ["Blackrock Caverns"]] = true,
|
|
[BZ["Blackrock Spire"]] = true,
|
|
[BZ["Upper Blackrock Spire"]] = true,
|
|
},
|
|
type = "Complex",
|
|
}
|
|
|
|
zones[BZ["Hellfire Citadel"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
instances = {
|
|
[BZ["The Blood Furnace"]] = true,
|
|
[BZ["Hellfire Ramparts"]] = true,
|
|
[BZ["Magtheridon's Lair"]] = true,
|
|
[BZ["The Shattered Halls"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Hellfire Peninsula"]] = true,
|
|
[BZ["The Blood Furnace"]] = true,
|
|
[BZ["Hellfire Ramparts"]] = true,
|
|
[BZ["Magtheridon's Lair"]] = true,
|
|
[BZ["The Shattered Halls"]] = true,
|
|
},
|
|
type = "Complex",
|
|
}
|
|
|
|
zones[BZ["Coldarra"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
continent = Northrend,
|
|
expansion = Wrath_of_the_Lich_King,
|
|
paths = {
|
|
[BZ["Borean Tundra"]] = true,
|
|
[BZ["The Nexus"]] = true,
|
|
[BZ["The Oculus"]] = true,
|
|
[BZ["The Eye of Eternity"]] = true,
|
|
},
|
|
instances = {
|
|
[BZ["The Nexus"]] = true,
|
|
[BZ["The Oculus"]] = true,
|
|
[BZ["The Eye of Eternity"]] = true,
|
|
},
|
|
type = "Complex",
|
|
}
|
|
|
|
zones[BZ["Coilfang Reservoir"]] = {
|
|
low = 10,
|
|
high = 30,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
instances = {
|
|
[BZ["The Underbog"]] = true,
|
|
[BZ["Serpentshrine Cavern"]] = true,
|
|
[BZ["The Steamvault"]] = true,
|
|
[BZ["The Slave Pens"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Zangarmarsh"]] = true,
|
|
[BZ["The Underbog"]] = true,
|
|
[BZ["Serpentshrine Cavern"]] = true,
|
|
[BZ["The Steamvault"]] = true,
|
|
[BZ["The Slave Pens"]] = true,
|
|
},
|
|
type = "Complex",
|
|
}
|
|
|
|
zones[BZ["Ahn'Qiraj: The Fallen Kingdom"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
paths = {
|
|
[BZ["Silithus"]] = true,
|
|
[BZ["Ahn'Qiraj"]] = true,
|
|
[BZ["Ruins of Ahn'Qiraj"]] = true,
|
|
},
|
|
instances = {
|
|
[BZ["Ahn'Qiraj"]] = true,
|
|
[BZ["Ruins of Ahn'Qiraj"]] = true,
|
|
},
|
|
type = "Complex",
|
|
}
|
|
|
|
zones[BZ["Ring of Observance"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
continent = Outland,
|
|
expansion = The_Burning_Crusade,
|
|
instances = {
|
|
[BZ["Mana-Tombs"]] = true,
|
|
[BZ["Sethekk Halls"]] = true,
|
|
[BZ["Shadow Labyrinth"]] = true,
|
|
[BZ["Auchenai Crypts"]] = true,
|
|
},
|
|
paths = {
|
|
[BZ["Terokkar Forest"]] = true,
|
|
[BZ["Mana-Tombs"]] = true,
|
|
[BZ["Sethekk Halls"]] = true,
|
|
[BZ["Shadow Labyrinth"]] = true,
|
|
[BZ["Auchenai Crypts"]] = true,
|
|
},
|
|
type = "Complex",
|
|
}
|
|
|
|
zones[BZ["Caverns of Time"]] = {
|
|
low = 15,
|
|
high = 30,
|
|
continent = Kalimdor,
|
|
expansion = Classic,
|
|
instances = {
|
|
[BZ["Old Hillsbrad Foothills"]] = true,
|
|
[BZ["The Black Morass"]] = true,
|
|
[BZ["Hyjal Summit"]] = true,
|
|
[BZ["The Culling of Stratholme"]] = true,
|
|
[BZ["End Time"]] = true,
|
|
[BZ["Hour of Twilight"]] = true,
|
|
[BZ["Well of Eternity"]] = true,
|
|
[BZ["Dragon Soul"]] = true,
|
|
},
|
|
paths = {
|
|
[transports["COT_STORMWIND_PORTAL"]] = true,
|
|
[transports["COT_ORGRIMMAR_PORTAL"]] = true,
|
|
[BZ["Tanaris"]] = true,
|
|
[BZ["Old Hillsbrad Foothills"]] = true,
|
|
[BZ["The Black Morass"]] = true,
|
|
[BZ["Hyjal Summit"]] = true,
|
|
[BZ["The Culling of Stratholme"]] = true,
|
|
[BZ["End Time"]] = true,
|
|
[BZ["Hour of Twilight"]] = true,
|
|
[BZ["Well of Eternity"]] = true,
|
|
[BZ["Dragon Soul"]] = true,
|
|
},
|
|
type = "Complex",
|
|
}
|
|
|
|
|
|
-- Had to remove the complex 'Tempest Keep' because of the renamed 'The Eye' instance now has same name (Legion)
|
|
-- zones[BZ["Tempest Keep"]] = {
|
|
-- low = 67,
|
|
-- high = 75,
|
|
-- continent = Outland,
|
|
-- expansion = The_Burning_Crusade,
|
|
-- instances = {
|
|
-- [BZ["The Mechanar"]] = true,
|
|
-- [BZ["Tempest Keep"]] = true, -- previously "The Eye"
|
|
-- [BZ["The Botanica"]] = true,
|
|
-- [BZ["The Arcatraz"]] = true,
|
|
-- },
|
|
-- paths = {
|
|
-- [BZ["Netherstorm"]] = true,
|
|
-- [BZ["The Mechanar"]] = true,
|
|
-- [BZ["Tempest Keep"]] = true,
|
|
-- [BZ["The Botanica"]] = true,
|
|
-- [BZ["The Arcatraz"]] = true,
|
|
-- },
|
|
-- type = "Complex",
|
|
-- }
|
|
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------------------------------
|
|
-- CORE --
|
|
--------------------------------------------------------------------------------------------------------
|
|
|
|
trace("Tourist: Initializing continents...")
|
|
local continentNames = Tourist:GetMapContinentsAlt()
|
|
continentNames[947] = "Azeroth" -- For the Nazjatar zone, which has Azeroth as parent map
|
|
|
|
local counter = 0
|
|
|
|
for continentMapID, continentName in pairs(continentNames) do
|
|
trace("Processing Continent "..tostring(continentMapID)..": "..continentName.."...")
|
|
|
|
if zones[continentName] then
|
|
-- Set MapID
|
|
zones[continentName].zoneMapID = continentMapID
|
|
-- Get map art ID
|
|
zones[continentName].texture = C_Map.GetMapArtID(continentMapID)
|
|
-- Get map size in yards
|
|
local cWidth = HBD:GetZoneSize(continentMapID)
|
|
if not cWidth then
|
|
trace("|r|cffff4422! -- Tourist:|r No HBD size data for "..tostring(continentName))
|
|
end
|
|
if cWidth == 0 then
|
|
trace("|r|cffff4422! -- Tourist:|r HBD size is zero for "..tostring(continentName))
|
|
end
|
|
zones[continentName].yards = cWidth or 0
|
|
--trace("Tourist: Continent size in yards for "..tostring(continentName).." ("..tostring(continentMapID).."): "..tostring(round(zones[continentName].yards, 2)))
|
|
else
|
|
-- Unknown Continent
|
|
trace("|r|cffff4422! -- Tourist:|r TODO: Add Continent '"..tostring(continentName).."' ("..tostring(continentMapID)..")")
|
|
end
|
|
|
|
counter = counter + 1
|
|
end
|
|
trace("Tourist: Processed "..tostring(counter).." continents")
|
|
|
|
|
|
trace("Tourist: Initializing zones...")
|
|
local doneZones = {}
|
|
local mapZones = {}
|
|
local uniqueZoneName
|
|
local minLvl, maxLvl, minPetLvl, maxPetLvl
|
|
local counter2 = 0
|
|
counter = 0
|
|
|
|
for continentMapID, continentName in pairs(continentNames) do
|
|
mapZones = Tourist:GetMapZonesAlt(continentMapID)
|
|
counter = 0
|
|
for zoneMapID, zoneName in pairs(mapZones) do
|
|
-- Add mapIDs to lookup table
|
|
zoneMapIDtoContinentMapID[zoneMapID] = continentMapID
|
|
|
|
-- Check for duplicate on continent name + zone name
|
|
if not doneZones[continentName.."."..zoneName] then
|
|
uniqueZoneName = Tourist:GetUniqueZoneNameForLookup(zoneName, continentMapID)
|
|
if zones[uniqueZoneName] then
|
|
-- Set zone mapID. Note: a zone can have multiple map ID's so this might not be entirely accurate
|
|
zones[uniqueZoneName].zoneMapID = zoneMapID
|
|
-- Get zone texture ID
|
|
zones[uniqueZoneName].texture = C_Map.GetMapArtID(continentMapID)
|
|
-- Get zone player and battle pet levels
|
|
minLvl, maxLvl, minPetLvl, maxPetLvl = C_Map.GetMapLevels(zoneMapID)
|
|
--if minLvl and minLvl > 0 then zones[uniqueZoneName].low = minLvl end
|
|
--if maxLvl and maxLvl > 0 then zones[uniqueZoneName].high = maxLvl end
|
|
if minPetLvl and minPetLvl > 0 then zones[uniqueZoneName].battlepet_low = minPetLvl end
|
|
if maxPetLvl and maxPetLvl > 0 then zones[uniqueZoneName].battlepet_high = maxPetLvl end
|
|
-- Get map size
|
|
local zWidth = HBD:GetZoneSize(zoneMapID)
|
|
if not zWidth then
|
|
trace("|r|cffff4422! -- Tourist:|r No size data for "..tostring(zoneName).." ("..tostring(continentName)..")" )
|
|
end
|
|
if zWidth == 0 then
|
|
trace("|r|cffff4422! -- Tourist:|r Size is zero for "..tostring(zoneName).." ("..tostring(continentName)..")" )
|
|
end
|
|
if zWidth ~= 0 or not zones[uniqueZoneName].yards then
|
|
-- Make sure the size is always set (even if it's 0) but don't overwrite any hardcoded values if the size is 0
|
|
zones[uniqueZoneName].yards = zWidth
|
|
end
|
|
else
|
|
trace("|r|cffff4422! -- Tourist:|r TODO: Add zone "..tostring(zoneName).." (to "..tostring(continentName)..")" )
|
|
end
|
|
|
|
doneZones[continentName.."."..zoneName] = true
|
|
else
|
|
trace("|r|cffff4422! -- Tourist:|r Duplicate zone: "..tostring(zoneName).." [ID "..tostring(zoneMapID).."] (at "..tostring(continentName)..")" )
|
|
end
|
|
counter = counter + 1
|
|
end -- zone loop
|
|
|
|
trace( "Tourist: Processed "..tostring(counter).." zones for "..continentName.." (ID = "..tostring(continentMapID)..")" )
|
|
counter2 = counter2 + counter
|
|
end -- continent loop
|
|
|
|
trace("Tourist: Processed "..tostring(counter2).." zones")
|
|
|
|
trace("Tourist: Filling lookup tables...")
|
|
|
|
-- Fill the lookup tables
|
|
for k,v in pairs(zones) do
|
|
lows[k] = v.low or 0
|
|
highs[k] = v.high or 0
|
|
ct_lows[k] = v.ct_low or 0
|
|
expansions[k] = v.expansion
|
|
continents[k] = v.continent or UNKNOWN
|
|
instances[k] = v.instances
|
|
paths[k] = v.paths or false
|
|
flightnodes[k] = v.flightnodes or false
|
|
types[k] = v.type or "Zone"
|
|
groupSizes[k] = v.groupSize
|
|
groupMinSizes[k] = v.groupMinSize
|
|
groupMaxSizes[k] = v.groupMaxSize
|
|
groupAltSizes[k] = v.altGroupSize
|
|
factions[k] = v.faction
|
|
yardWidths[k] = v.yards
|
|
yardHeights[k] = v.yards and v.yards * 2/3 or nil
|
|
battlepet_lows[k] = v.battlepet_low
|
|
battlepet_highs[k] = v.battlepet_high
|
|
textures[k] = v.texture
|
|
complexOfInstance[k] = v.complex
|
|
zoneComplexes[k] = v.complexes
|
|
if v.texture then
|
|
textures_rev[v.texture] = k
|
|
end
|
|
zoneMapIDs[k] = v.zoneMapID
|
|
if v.entrancePortal then
|
|
entrancePortals_zone[k] = v.entrancePortal[1]
|
|
entrancePortals_x[k] = v.entrancePortal[2]
|
|
entrancePortals_y[k] = v.entrancePortal[3]
|
|
end
|
|
if v.flightnodes then
|
|
for nodeID in pairs(v.flightnodes) do
|
|
if not FlightnodeLookupTable[nodeID] then
|
|
FlightnodeLookupTable[nodeID] = true
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
trace("Tourist: Built Flightnode lookup table: "..tostring(tablelength(FlightnodeLookupTable)).." nodes.")
|
|
|
|
zones = nil
|
|
|
|
trace("Tourist: Initialized.")
|
|
|
|
PLAYER_LEVEL_UP(Tourist)
|
|
end
|
|
|