diff --git a/data-global/lib/core/echo_warden.lua b/data-global/lib/core/echo_warden.lua new file mode 100644 index 000000000..2bc150f35 --- /dev/null +++ b/data-global/lib/core/echo_warden.lua @@ -0,0 +1,261 @@ +-- ============================================================================ +-- Echo Raids / Echo Wardens - shared library (pure Lua) +-- IMPORTANT: lives in data/libs/functions/ (NOT data/global/lib/, which does +-- not exist in this fork). Registered from data/libs/functions/load.lua so it +-- loads before every revscriptsys data/scripts file at boot. +-- +-- Verified APIs only: +-- Monster:setForgeStack/getForgeStack (C++; applyStacks buffs HP, icon "forge") +-- Creature:setMaxHealth/setHealth/getMaxHealth/setIcon (C++) +-- Monster:setStorageValue/getStorageValue (Lua fallback in monster.lua; +-- getStorageValue returns -1 when unset, so compare with == 1) +-- MonsterType:BestiaryStars/raceId/name/isRewardBoss/bossRace +-- Player:addMinorCharmEchoes/sendLeaderMonsterKilledBanner/kv():scoped() (boolean round-trips) +-- Game.createMonster(name,pos,extended,force,master,spawnEffect) (returns nil on fail) +-- Game.getSpectators(pos, multifloor, onlyPlayer, minX,maxX,minY,maxY) +-- addEvent, Tile:hasFlag/getGround, Position:sendMagicEffect +-- ============================================================================ + +EchoWarden = EchoWarden or {} + +-- ----------------------------- TUNABLES ------------------------------------- +EchoWarden.PORTAL_ITEM_ID = 54133 +EchoWarden.PORTAL_ATTR_KIND = "echoKind" -- item:setCustomAttribute key +EchoWarden.PORTAL_TTL_MS = 120000 -- portal self-removes after 2 min (counted from when it appears) +EchoWarden.PORTAL_DELAY_MS = 30000 -- portal appears 30s AFTER the kill (not instantly) + +EchoWarden.SPAWN_CHANCE_NUM = 100 -- 100 / 200000 = 0.05% +EchoWarden.SPAWN_CHANCE_DEN = 200000 + +EchoWarden.WARDEN_ADDS_MIN, EchoWarden.WARDEN_ADDS_MAX = 7, 12 -- cantidad de minions por raid + +EchoWarden.WARDEN_HP_MULT = 4.0 +EchoWarden.WARDEN_ATK_MULT = 1.5 -- only used if optional C++ applied +EchoWarden.USE_CPP_ATK = true -- set true only if applyEchoWarden compiled + +EchoWarden.AURA_RANGE = 5 +EchoWarden.AURA_MS = 2000 + +EchoWarden.SCATTER_RADIUS = 3 -- (unused now: spawns land on the portal tile) +EchoWarden.SPAWN_EFFECT = CONST_ME_NONE -- monsters are born silently (no teleport flash) +EchoWarden.SPAWN_STEP_MS = 400 -- delay between each monster (born one after another) + +EchoWarden.STORAGE_IS_WARDEN = 54133 -- 1 = this monster is THE echo warden +EchoWarden.STORAGE_IS_SPAWNED = 54134 -- 1 = spawned by an echo raid (never re-triggers) +EchoWarden.KV_SCOPE = "echo_warden" -- player:kv():scoped(...) for first-kill + +-- first-kill reward (MINOR CHARM ECHOES) by bestiary difficulty (stars). 0-star fall back to [0]. +EchoWarden.ECHOES_BY_STARS = { [0] = 1, [1] = 10, [2] = 15, [3] = 20, [4] = 25, [5] = 30 } + +-- runtime map: wardenCreatureId -> baseKindName (aura loop + reward lookup) +EchoWarden.activeWardens = EchoWarden.activeWardens or {} +EchoWarden.activeMinions = EchoWarden.activeMinions or {} +EchoWarden.GLOW_REFRESH_MS = 400 +EchoWarden._glowLoop = false + +function EchoWarden.pickTile(center, radius) + radius = radius or EchoWarden.SCATTER_RADIUS + for _ = 1, 12 do + local dx = math.random(-radius, radius) + local dy = math.random(-radius, radius) + local p = Position(center.x + dx, center.y + dy, center.z) + local tile = Tile(p) + if tile and tile:getGround() and not tile:hasFlag(TILESTATE_BLOCKSOLID) and not tile:hasFlag(TILESTATE_PROTECTIONZONE) and not tile:hasFlag(TILESTATE_FLOORCHANGE) and not tile:hasFlag(TILESTATE_TELEPORT) then + return p + end + end + return center +end + +function EchoWarden.markSpawned(m) + if m and m.setStorageValue then + m:setStorageValue(EchoWarden.STORAGE_IS_SPAWNED, 1) + end +end + +EchoWarden.STORAGE_IS_MINION = 54135 +EchoWarden.MINION_HP_MULT = 1.5 +function EchoWarden.makeMinion(m) + if not m then + return + end + if m:getStorageValue(EchoWarden.STORAGE_IS_MINION) ~= 1 then + m:setStorageValue(EchoWarden.STORAGE_IS_MINION, 1) + m:setMaxHealth(math.floor(m:getMaxHealth() * EchoWarden.MINION_HP_MULT)) + m:setHealth(m:getMaxHealth()) + EchoWarden.markSpawned(m) -- nunca re-dispara un portal + end + EchoWarden.activeMinions[m:getId()] = true + EchoWarden.sendCreatureGlow(m, EchoWarden.STATE_MINION) -- glow nativo de MINION (state 1) + EchoWarden.ensureGlowLoop() -- re-envío continuo (persiste al moverse) +end + +EchoWarden.STATE_LEADER = 0 +EchoWarden.STATE_MINION = 1 +EchoWarden.GLOW_RANGE = 11 -- tiles a la redonda para mandar el glow a los spectators + +---@param creature Creature +---@param state number 0=leader, 1=minion +function EchoWarden.sendCreatureGlow(creature, state) + if not creature then + return + end + local cid = creature:getId() + local pos = creature:getPosition() + if not pos then + return + end + local r = EchoWarden.GLOW_RANGE + for _, spec in ipairs(Game.getSpectators(pos, false, true, r, r, r, r)) do + local msg = NetworkMessage() + msg:addByte(0x8B) + msg:addU32(cid) + msg:addByte(0x0f) + msg:addByte(1) + msg:addByte(state) -- 0=leader, 1=minion + msg:sendToPlayer(spec) + end +end + +function EchoWarden.glowRefresh() + local any = false + for id in pairs(EchoWarden.activeWardens) do + local w = Monster(id) + if w and not w:isRemoved() and w:getHealth() > 0 then + EchoWarden.sendCreatureGlow(w, EchoWarden.STATE_LEADER) + any = true + else + EchoWarden.activeWardens[id] = nil + end + end + for id in pairs(EchoWarden.activeMinions) do + local m = Monster(id) + if m and not m:isRemoved() and m:getHealth() > 0 then + EchoWarden.sendCreatureGlow(m, EchoWarden.STATE_MINION) + any = true + else + EchoWarden.activeMinions[id] = nil + end + end + if any then + addEvent(EchoWarden.glowRefresh, EchoWarden.GLOW_REFRESH_MS) + else + EchoWarden._glowLoop = false + end +end + +function EchoWarden.ensureGlowLoop() + if not EchoWarden._glowLoop then + EchoWarden._glowLoop = true + EchoWarden.glowRefresh() + end +end + +function EchoWarden.makeWarden(w, kindName) + if not w then + return + end + if EchoWarden.USE_CPP_ATK and w.applyEchoWarden then + w:applyEchoWarden(EchoWarden.WARDEN_HP_MULT, EchoWarden.WARDEN_ATK_MULT) + w:removeIcon("warden") + else + w:setMaxHealth(math.floor(w:getMaxHealth() * EchoWarden.WARDEN_HP_MULT)) + w:setHealth(w:getMaxHealth()) + end + w:setStorageValue(EchoWarden.STORAGE_IS_WARDEN, 1) + w:setStorageValue(EchoWarden.STORAGE_IS_SPAWNED, 1) + EchoWarden.activeWardens[w:getId()] = kindName + EchoWarden.sendCreatureGlow(w, EchoWarden.STATE_LEADER) + EchoWarden.ensureGlowLoop() +end + +function EchoWarden.aura(wardenId, kindName) + local w = Monster(wardenId) + if not w or w:isRemoved() or w:getHealth() <= 0 then + EchoWarden.activeWardens[wardenId] = nil + return + end + local p = w:getPosition() + local r = EchoWarden.AURA_RANGE + for _, c in ipairs(Game.getSpectators(p, false, false, r, r, r, r)) do + local m = c:getMonster() + if m and m:getId() ~= wardenId and m:getName() == kindName and m:getStorageValue(EchoWarden.STORAGE_IS_WARDEN) ~= 1 then + EchoWarden.makeMinion(m) + end + end + addEvent(EchoWarden.aura, EchoWarden.AURA_MS, wardenId, kindName) +end + +function EchoWarden.trickleSpawn(kindName, cx, cy, cz, remaining, stepMs) + if remaining <= 0 then + return + end + local m = Game.createMonster(kindName, Position(cx, cy, cz), false, true, nil, EchoWarden.SPAWN_EFFECT) + if m then + EchoWarden.makeMinion(m) + end + addEvent(EchoWarden.trickleSpawn, stepMs, kindName, cx, cy, cz, remaining - 1, stepMs) +end + +function EchoWarden.spawnPortal(px, py, pz, kindName) + local pos = Position(px, py, pz) + local tile = Tile(pos) + if not tile or not tile:getGround() then + return + end + local portal = Game.createItem(EchoWarden.PORTAL_ITEM_ID, 1, pos) + if not portal then + return + end + portal:setCustomAttribute(EchoWarden.PORTAL_ATTR_KIND, kindName) + pos:sendMagicEffect(CONST_ME_TELEPORT) + -- failsafe cleanup if nobody steps on it + addEvent(function(qx, qy, qz) + local t = Tile(Position(qx, qy, qz)) + if t then + local it = t:getItemById(EchoWarden.PORTAL_ITEM_ID) + if it then + it:remove() + end + end + end, EchoWarden.PORTAL_TTL_MS, px, py, pz) +end + +function EchoWarden.runRaid(kindName, center) + if not kindName or kindName == "" then + return + end + local cx, cy, cz = center.x, center.y, center.z + local step = EchoWarden.SPAWN_STEP_MS + + local w = Game.createMonster(kindName, Position(cx, cy, cz), false, true, nil, EchoWarden.SPAWN_EFFECT) + if w then + EchoWarden.makeWarden(w, kindName) + addEvent(EchoWarden.aura, EchoWarden.AURA_MS, w:getId(), kindName) + end + + local adds = math.random(EchoWarden.WARDEN_ADDS_MIN, EchoWarden.WARDEN_ADDS_MAX) + EchoWarden.trickleSpawn(kindName, cx, cy, cz, adds, step) +end + +function EchoWarden.grantReward(player, baseKind) + if not player or not baseKind or baseKind == "" then + return false + end + local kv = player:kv():scoped(EchoWarden.KV_SCOPE) + if kv:get(baseKind) then + return false + end + + local mt = MonsterType(baseKind) + local stars = (mt and mt:BestiaryStars()) or 0 + local amount = EchoWarden.ECHOES_BY_STARS[stars] or EchoWarden.ECHOES_BY_STARS[0] + player:addMinorCharmEchoes(amount) + kv:set(baseKind, true) + + local raceId = (mt and mt:raceId()) or 0 + if raceId > 0 then + player:sendLeaderMonsterKilledBanner(raceId, amount) + end + return true +end diff --git a/data-global/lib/core/load.lua b/data-global/lib/core/load.lua index bf9b37a52..2988fa676 100644 --- a/data-global/lib/core/load.lua +++ b/data-global/lib/core/load.lua @@ -1,3 +1,4 @@ dofile(DATA_DIRECTORY .. "/lib/core/storages.lua") dofile(DATA_DIRECTORY .. "/lib/core/constants.lua") dofile(DATA_DIRECTORY .. "/lib/core/quests.lua") +dofile(DATA_DIRECTORY .. "/lib/core/echo_warden.lua") diff --git a/data-global/monster/quests/bloody_tusks/crate.lua b/data-global/monster/quests/bloody_tusks/crate.lua new file mode 100644 index 000000000..f3c17e634 --- /dev/null +++ b/data-global/monster/quests/bloody_tusks/crate.lua @@ -0,0 +1,90 @@ +-- Bloody Tusks - the crate in the Blind Monstrosity's hall (spawned at 32914, 31417, 5). +-- +-- It is a creature wearing the crate sprite (35128), not a piece of decoration: it never moves, +-- never fights back, and one hit from across the room is enough to break it. What it leaves behind +-- is wooden trash (3136), and the noise it makes is what pulls the blind thing off its path. +local mType = Game.createMonsterType("Crate") +local monster = {} + +monster.description = "a crate" +monster.experience = 0 +monster.outfit = { + lookTypeEx = 35128, +} + +monster.health = 100 +monster.maxHealth = 100 +monster.race = "undead" +monster.corpse = 3136 -- wooden trash +monster.speed = 0 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 0, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = false, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = false, + canPushCreatures = false, + staticAttackChance = 0, + targetDistance = 1, + runHealth = 0, + healthHidden = true, + isBlockable = false, + canWalkOnEnergy = false, + canWalkOnFire = false, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +-- The noise it makes is the point: it is what the blind thing follows. +monster.voices = { + interval = 5000, + chance = 80, + { text = "CRACK!", yell = true }, +} + +monster.attacks = {} + +monster.defenses = { + defense = 0, + armor = 0, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "outfit", condition = true }, + { type = "invisible", condition = true }, + { type = "bleed", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/quests/kilmaresh/enusat_the_onyx_wing.lua b/data-global/monster/quests/kilmaresh/enusat_the_onyx_wing.lua new file mode 100644 index 000000000..efe6d809e --- /dev/null +++ b/data-global/monster/quests/kilmaresh/enusat_the_onyx_wing.lua @@ -0,0 +1,118 @@ +local mType = Game.createMonsterType("Enusat the Onyx Wing") +local monster = {} + +monster.description = "Enusat the Onyx Wing" +monster.experience = 21500 +-- Look and boss race straight from the client staticdata. +monster.outfit = { + lookType = 1189, + lookHead = 95, + lookBody = 114, + lookLegs = 94, + lookFeet = 76, + lookAddons = 1, + lookMount = 0, +} + +monster.bosstiary = { + bossRaceId = 2106, + bossRace = RARITY_BANE, +} + +monster.health = 25000 +monster.maxHealth = 25000 +monster.race = "blood" +monster.corpse = 31390 -- the manticore corpse; he is the manticores' boss +monster.speed = 150 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = true, + staticAttackChance = 90, + targetDistance = 4, -- fights from a distance + runHealth = 0, -- fights to the death + healthHidden = false, + isBlockable = true, -- the wiki notes his respawn can be blocked + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, +} + +-- The wiki lists the drops by tier only, so the chances below are an estimate. +monster.loot = { + { name = "platinum coin", chance = 100000, maxCount = 97 }, + { name = "crystal coin", chance = 50000 }, + { name = "manticore ear", chance = 50000 }, + { name = "springsprout rod", chance = 20000 }, + { name = "terra boots", chance = 20000 }, + { name = "terra rod", chance = 20000 }, + { name = "violet gem", chance = 20000 }, + { id = 23533, chance = 5000 }, -- ring of red plasma; 23534 is the same ring while worn + { name = "sacred tree amulet", chance = 5000 }, + { name = "spellbook of warding", chance = 5000 }, +} + +-- The wiki lists no abilities beyond ranged combat, so these follow the Manticore he leads, +-- scaled up for a boss. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -600 }, + { name = "combat", interval = 2000, chance = 13, type = COMBAT_FIREDAMAGE, minDamage = -400, maxDamage = -600, length = 8, spread = 3, effect = CONST_ME_HITBYFIRE, target = false }, + { name = "combat", interval = 4000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -400, maxDamage = -550, radius = 3, shootEffect = CONST_ANI_ENVENOMEDARROW, effect = CONST_ME_GREEN_RINGS, target = true }, + { name = "combat", interval = 2000, chance = 22, type = COMBAT_FIREDAMAGE, minDamage = -550, maxDamage = -700, range = 4, shootEffect = CONST_ANI_BURSTARROW, target = true }, +} + +monster.defenses = { + defense = 78, + armor = 78, + mitigation = 2.16, +} + +-- Takes 80% from fire and full damage from everything else. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 20 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "outfit", condition = false }, + { type = "invisible", condition = true }, + { type = "bleed", condition = false }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/bosses/maior_domus.lua b/data-global/monster/summer_update_2026/bosses/maior_domus.lua new file mode 100644 index 000000000..535b13ed9 --- /dev/null +++ b/data-global/monster/summer_update_2026/bosses/maior_domus.lua @@ -0,0 +1,146 @@ +local mType = Game.createMonsterType("Maior Domus") +local monster = {} + +monster.description = "Maior Domus" +monster.experience = 3500000 +-- raceId/lookType/addon oficiais do staticdata do cliente (ver docs/update-15.30-criaturas.md). +-- So existe UMA entrada de "Maior Domus" no staticdata (2815, addon 2) - ao contrario de Mimar +-- Haffar e Phosphorus, nao ha uma segunda entrada separada para a forma final. Provavelmente a +-- forma final (maior_domus_final.lua) reusa esta mesma aparencia. +monster.outfit = { + lookType = 1959, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 2, + lookMount = 0, +} + +monster.bosstiary = { + bossRaceId = 2815, -- oficial (staticdata do cliente) + bossRace = RARITY_ARCHFOE, +} + +-- TODO(balance): HP oficial "0" (Boss Difficulty System, nao ligado ainda). Placeholder na +-- faixa dos outros Archfoe (Moonsnow Magnolia = 52000), nao e oficial. +monster.health = 50000 +monster.maxHealth = 50000 +monster.race = "blood" +-- Corpse levantado no cliente (cadeia 54433-54435). +monster.corpse = 54433 +monster.speed = 180 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 70, + health = 10, + damage = 10, + random = 10, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = true, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.summon = { + maxSummons = 5, + summons = { + { name = "Moonsilver Guardian", chance = 30, interval = 6000, count = 1 }, + }, +} + +monster.voices = { + interval = 5000, + chance = 10, +} + +monster.loot = { + -- Comum + { name = "crystal coin", chance = 70000, maxCount = 33 }, + { name = "platinum coin", chance = 90000, maxCount = 86 }, + { name = "bullseye potion", chance = 40000, maxCount = 12 }, + { name = "great mana potion", chance = 45000, maxCount = 28 }, + { name = "mastermind potion", chance = 35000, maxCount = 5 }, + { name = "piece of hell steel", chance = 30000 }, + { name = "supreme health potion", chance = 40000, maxCount = 8 }, + { name = "ultimate health potion", chance = 42000, maxCount = 10 }, + { id = 54640, chance = 20000 }, -- scraps of a radiant attire (dificuldade 5+) + -- Incomum + { name = "blue gem", chance = 12000 }, + { id = 3093, chance = 12000 }, -- club ring (nome ambiguo: 3093 e 3096) + { name = "warrior helmet", chance = 12000 }, + { name = "yellow gem", chance = 12000 }, + -- Semi-raro + { name = "amber with a bug", chance = 6000 }, + { name = "giant emerald", chance = 6000 }, + { name = "golden legs", chance = 6000 }, + -- Raro + { name = "figurine of Maior Domus", chance = 1000 }, + -- Muito raro + { name = "cloud in a bottle", chance = 300 }, -- dificuldade 10+ + { name = "auric moon sigil", chance = 300 }, -- dificuldade 25+, chance cresce com a dificuldade + { name = "moonsilver battle visor", chance = 300 }, + { name = "moonsilver nimbus hat", chance = 300 }, + { name = "moonsilver spirit mask", chance = 300 }, + { name = "moonsilver strike helm", chance = 300 }, + { name = "moonsilver trail hood", chance = 300 }, +} + +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1000 }, +} + +-- TODO(balance): defense/armor/mitigation nao sao publicados pela wiki. +monster.defenses = { + defense = 90, + armor = 85, + mitigation = 2.85, +} + +-- Oficial: Fisico 100%, Poison 60%, Fire 70%, Cursed 100%, Electrified 87%, Dazzled 100%, +-- Freezing 100%, Heal 100%. Aqui o campo e a RESISTENCIA, ou seja percent = 100 - valor da wiki. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 13 }, + { type = COMBAT_EARTHDAMAGE, percent = 40 }, + { type = COMBAT_FIREDAMAGE, percent = 30 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +-- Oficial: "Imunidades: Nenhuma." Ao contrario do Mimar Haffar, este boss NAO e imune a +-- paralisia nem a invisibilidade - a tabela fica vazia de proposito. +monster.immunities = {} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/bosses/maior_domus_final.lua b/data-global/monster/summer_update_2026/bosses/maior_domus_final.lua new file mode 100644 index 000000000..5dd5b9e32 --- /dev/null +++ b/data-global/monster/summer_update_2026/bosses/maior_domus_final.lua @@ -0,0 +1,104 @@ +local mType = Game.createMonsterType("Maior Domus (Final)") +local monster = {} + +monster.description = "Maior Domus" +monster.experience = 0 -- TODO(balance): ver nota de XP no arquivo da forma normal (maior_domus.lua). +-- O staticdata so tem UMA entrada para "Maior Domus" (raceId 2815, addon 2) - reusa a mesma +-- aparencia da forma normal. Sem bosstiary aqui de proposito: registrar o mesmo bossRaceId 2815 +-- em dois monster types diferentes bagunca o tracking do bosstiary/bestiary; quem conta a +-- entrada e a forma normal (maior_domus.lua). +monster.outfit = { + lookType = 1959, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 2, + lookMount = 0, +} + +-- TODO(balance): mesmo caso da forma normal - HP oficial e "0" (Boss Difficulty System, nao +-- ligado ainda). Placeholder um pouco acima da forma normal por ser a fase final. +monster.health = 65000 +monster.maxHealth = 65000 +monster.race = "blood" +-- Reusa o corpse da forma normal (cadeia 54433-54435). +monster.corpse = 54433 +monster.speed = 190 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 70, + health = 10, + damage = 10, + random = 10, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = true, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, +} + +monster.loot = {} + +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1300 }, +} + +-- TODO(balance): defense/armor/mitigation nao sao publicados pela wiki. +monster.defenses = { + defense = 100, + armor = 95, + mitigation = 3.10, +} + +-- TODO(balance): resistencias/fraquezas nao publicadas pela wiki para esta forma. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/bosses/mimar_haffar.lua b/data-global/monster/summer_update_2026/bosses/mimar_haffar.lua new file mode 100644 index 000000000..ce70e21b4 --- /dev/null +++ b/data-global/monster/summer_update_2026/bosses/mimar_haffar.lua @@ -0,0 +1,133 @@ +local mType = Game.createMonsterType("Mimar Haffar") +local monster = {} + +monster.description = "Mimar Haffar" +monster.experience = 3500000 +-- raceId/lookType/addon oficiais do staticdata do cliente (ver docs/update-15.30-criaturas.md). +monster.outfit = { + lookType = 1953, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.bosstiary = { + bossRaceId = 2812, -- oficial (staticdata do cliente) + bossRace = RARITY_ARCHFOE, +} + +-- TODO(balance): a wiki mostra "0" de HP para este boss porque ele usa o Boss Difficulty System +-- (escala por dificuldade escolhida), que ainda nao esta ligado no Lua desta base (ver +-- docs/update-15.30-pendencias.md, secao 8). O valor abaixo e um placeholder na faixa dos outros +-- Archfoe (Moonsnow Magnolia = 52000) so para o monstro ficar jogavel; nao e oficial. +monster.health = 50000 +monster.maxHealth = 50000 +monster.race = "blood" +-- Corpse levantado no cliente (cadeia decrescente 54346-54343). +monster.corpse = 54346 +monster.speed = 180 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 70, + health = 10, + damage = 10, + random = 10, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = true, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, +} + +monster.loot = { + { id = 54640, chance = 20000 }, -- scraps of a radiant attire (dificuldade 5+) + { name = "figurine of Mimar Haffar", chance = 1000 }, + -- Muito raro + { name = "crystal coin", chance = 300, maxCount = 500 }, + { name = "cloud in a bottle", chance = 300 }, -- dificuldade 10+ + { name = "auric moon sigil", chance = 300 }, -- dificuldade 25+, chance cresce com a dificuldade + { name = "moonsilver battle visor", chance = 300 }, + { name = "moonsilver nimbus hat", chance = 300 }, + { name = "moonsilver spirit mask", chance = 300 }, + { name = "moonsilver strike helm", chance = 300 }, + { name = "moonsilver trail hood", chance = 300 }, + { name = "royal almandine", chance = 300 }, +} + +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1000 }, + -- "Ataque Fisico Explosivo" + { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -800, maxDamage = -1400, radius = 4, effect = CONST_ME_EXPLOSIONHIT, target = false }, + { name = "combat", interval = 2000, chance = 18, type = COMBAT_ENERGYDAMAGE, minDamage = -750, maxDamage = -1300, range = 7, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_ENERGYHIT, target = true }, + { name = "combat", interval = 2500, chance = 15, type = COMBAT_HOLYDAMAGE, minDamage = -700, maxDamage = -1250, radius = 4, effect = CONST_ME_HOLYDAMAGE, target = false }, + -- "Ataque de Dreno de Vida (3x3)" + { name = "combat", interval = 2000, chance = 16, type = COMBAT_LIFEDRAIN, minDamage = -600, maxDamage = -1100, radius = 1, effect = CONST_ME_MAGIC_RED, target = true }, + -- "Onda de Dreno de Vida" + { name = "combat", interval = 3000, chance = 14, type = COMBAT_LIFEDRAIN, minDamage = -650, maxDamage = -1200, length = 8, spread = 3, effect = CONST_ME_MAGIC_RED, target = false }, + { name = "combat", interval = 2500, chance = 12, type = COMBAT_MANADRAIN, minDamage = -400, maxDamage = -800, range = 7, effect = CONST_ME_MAGIC_BLUE, target = true }, + -- "Embebeda: Sim" + { name = "drunk", interval = 3000, chance = 12, radius = 4, effect = CONST_ME_HITBYPOISON, target = false }, +} + +-- TODO(balance): defense/armor/mitigation nao sao publicados pela wiki. +monster.defenses = { + defense = 90, + armor = 85, + mitigation = 2.85, +} + +-- Oficial: Fisico 100%, Poison 100%, Fire 105%, Cursed 100%, Electrified 87%, Dazzled 100%, +-- Freezing 100%, Heal 100%. Aqui o campo e a RESISTENCIA, ou seja percent = 100 - valor da wiki. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 13 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = -5 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/bosses/mimar_haffar_final.lua b/data-global/monster/summer_update_2026/bosses/mimar_haffar_final.lua new file mode 100644 index 000000000..37c27a7c3 --- /dev/null +++ b/data-global/monster/summer_update_2026/bosses/mimar_haffar_final.lua @@ -0,0 +1,107 @@ +local mType = Game.createMonsterType("Mimar Haffar (Final)") +local monster = {} + +monster.description = "Mimar Haffar" +monster.experience = 0 -- TODO(balance): ver nota de XP no arquivo da forma normal (mimar_haffar.lua). +-- raceId/lookType/addon oficiais do staticdata do cliente: mesma criatura da forma normal +-- (2812), so troca o addon para 2 (ver docs/update-15.30-criaturas.md). +monster.outfit = { + lookType = 1953, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 2, + lookMount = 0, +} + +monster.bosstiary = { + bossRaceId = 2813, -- oficial (staticdata do cliente) - entrada separada da forma normal + bossRace = RARITY_ARCHFOE, +} + +-- TODO(balance): mesmo caso da forma normal - HP oficial e "0" (Boss Difficulty System, nao +-- ligado ainda). Placeholder um pouco acima da forma normal por ser a fase final. +monster.health = 65000 +monster.maxHealth = 65000 +monster.race = "blood" +-- Reusa o corpse da forma normal (cadeia decrescente 54346-54343). +monster.corpse = 54346 +monster.speed = 190 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 70, + health = 10, + damage = 10, + random = 10, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = true, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, +} + +monster.loot = {} + +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1300 }, +} + +-- TODO(balance): defense/armor/mitigation nao sao publicados pela wiki. +monster.defenses = { + defense = 100, + armor = 95, + mitigation = 3.10, +} + +-- TODO(balance): resistencias/fraquezas nao publicadas pela wiki para esta forma. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/bosses/phosphorus.lua b/data-global/monster/summer_update_2026/bosses/phosphorus.lua new file mode 100644 index 000000000..1c4ef0e0a --- /dev/null +++ b/data-global/monster/summer_update_2026/bosses/phosphorus.lua @@ -0,0 +1,108 @@ +local mType = Game.createMonsterType("Phosphorus") +local monster = {} + +monster.description = "Phosphorus" +monster.experience = 16000000 +-- raceId/lookType/addon oficiais do staticdata do cliente (ver docs/update-15.30-criaturas.md). +monster.outfit = { + lookType = 1963, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 1, + lookMount = 0, +} + +monster.bosstiary = { + bossRaceId = 2826, -- oficial (staticdata do cliente) + bossRace = RARITY_NEMESIS, +} + +-- TODO(balance): HP oficial "0" (Boss Difficulty System, nao ligado ainda). Placeholder acima +-- dos Archfoe por ser Nemesis (tier mais alto), nao e oficial. +monster.health = 70000 +monster.maxHealth = 70000 +monster.race = "blood" +-- Corpse levantado no cliente (cadeia 54352-54354). +monster.corpse = 54352 +monster.speed = 190 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 70, + health = 10, + damage = 10, + random = 10, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = true, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, +} + +-- TODO(loot): a forma normal provavelmente nao dropa nada (foge em vez de morrer) - loot cheio +-- (Wand of Starstorm, Figurine of Phosphorus, moonsilver weapons, etc.) fica na forma final. +monster.loot = {} + +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1100 }, +} + +-- TODO(balance): defense/armor/mitigation nao sao publicados pela wiki. +monster.defenses = { + defense = 95, + armor = 90, + mitigation = 2.95, +} + +-- TODO(balance): resistencias/fraquezas nao publicadas pela wiki para este boss. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/bosses/phosphorus_final.lua b/data-global/monster/summer_update_2026/bosses/phosphorus_final.lua new file mode 100644 index 000000000..07465c5d7 --- /dev/null +++ b/data-global/monster/summer_update_2026/bosses/phosphorus_final.lua @@ -0,0 +1,113 @@ +local mType = Game.createMonsterType("Phosphorus (Final)") +local monster = {} + +monster.description = "Phosphorus" +monster.experience = 0 -- TODO(balance): ver nota de XP no arquivo da forma normal (phosphorus.lua). +-- raceId/lookType/addon oficiais do staticdata do cliente: entrada SEPARADA da forma normal, +-- com lookType diferente (1963 -> 1955), nao so addon (ver docs/update-15.30-criaturas.md). +monster.outfit = { + lookType = 1955, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 1, + lookMount = 0, +} + +monster.bosstiary = { + bossRaceId = 2827, -- oficial (staticdata do cliente) - entrada separada da forma normal + bossRace = RARITY_NEMESIS, +} + +-- TODO(balance): mesmo caso da forma normal - HP oficial e "0" (Boss Difficulty System, nao +-- ligado ainda). Placeholder um pouco acima da forma normal por ser a fase final/definitiva. +monster.health = 90000 +monster.maxHealth = 90000 +monster.race = "blood" +-- Reusa o corpse da forma normal (cadeia 54352-54354). +monster.corpse = 54352 +monster.speed = 200 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 70, + health = 10, + damage = 10, + random = 10, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = true, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, +} + +monster.loot = { + { name = "wand of starstorm", chance = 12000 }, + { name = "giant ruby", chance = 6000 }, + { name = "spellbook of dark mysteries", chance = 6000 }, + { name = "figurine of Phosphorus", chance = 1000 }, +} + +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1400 }, + { name = "phosphorus curse", interval = 12000, chance = 100, target = true }, +} + +-- TODO(balance): defense/armor/mitigation nao sao publicados pela wiki. +monster.defenses = { + defense = 105, + armor = 100, + mitigation = 3.25, +} + +-- TODO(balance): resistencias/fraquezas nao publicadas pela wiki para esta forma. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/bosses/rakesh_moonfang.lua b/data-global/monster/summer_update_2026/bosses/rakesh_moonfang.lua new file mode 100644 index 000000000..8356e042b --- /dev/null +++ b/data-global/monster/summer_update_2026/bosses/rakesh_moonfang.lua @@ -0,0 +1,138 @@ +local mType = Game.createMonsterType("Rakesh Moonfang") +local monster = {} + +monster.description = "Rakesh Moonfang" +monster.experience = 25500 +-- lookType/cores oficiais do staticdata do cliente (ver docs/update-15.30-criaturas.md). +monster.outfit = { + lookType = 1648, + lookHead = 0, + lookBody = 10, + lookLegs = 52, + lookFeet = 85, + lookAddons = 0, + lookMount = 0, +} + +monster.bosstiary = { + bossRaceId = 2855, -- oficial (staticdata do cliente) + bossRace = RARITY_BANE, +} + +monster.health = 25500 +monster.maxHealth = 25500 +-- Werepanther infundido de moonsilver: mesmo lookType (1648) e mesmo corpse do werepanther comum. +monster.race = "blood" +monster.corpse = 43758 +monster.speed = 180 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 70, + health = 10, + damage = 10, + random = 10, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + -- "Pode ser Puxado: nao" + pushable = false, + rewardBoss = false, + illusionable = false, + -- "Empurra Objetos: sim" (a wiki nao marca empurrar criaturas) + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + -- "Combate corpo a corpo" + "Luta ate a morte" + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- "Nao e possivel bloquear o respawn dessa criatura" + isBlockable = false, + -- "Passa por: Fogo, Energia" (veneno nao esta na lista) + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, + { text = "The silver ... it calls me!", yell = false }, + { text = "The moon broke and I followed!", yell = false }, + { text = "It burns! But it makes me stronger!", yell = false }, +} + +monster.loot = { + { name = "crystal coin", chance = 60000 }, + { name = "platinum coin", chance = 85000, maxCount = 45 }, + { name = "small topaz", chance = 18000, maxCount = 4 }, + { name = "golden sickle", chance = 15000 }, + { name = "werepanther claw", chance = 15000 }, + { name = "yellow gem", chance = 12000 }, + { name = "lightning headband", chance = 4000 }, + { name = "lightning pendant", chance = 4000 }, + { name = "fur armor", chance = 3500 }, + { name = "ripper lance", chance = 3000 }, + { name = "gemmed figurine", chance = 2500 }, + { name = "meat", chance = 3000 }, + { name = "werepanther trophy", chance = 300 }, +} + +-- TODO(balance): a wiki nao publica os valores de dano das habilidades (aparecem como "?-?"). +-- Os numeros abaixo sao escalados pelos 25500 HP do boss, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -900 }, + -- Fisico: "Arranhao" — golpe corpo a corpo extra + { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -450, maxDamage = -800, effect = CONST_ME_DRAWBLOOD, target = true }, + -- Energy: "Energy 3x3" — area de 3x3 (radius 1) centrada no alvo + { name = "combat", interval = 2000, chance = 18, type = COMBAT_ENERGYDAMAGE, minDamage = -600, maxDamage = -1000, radius = 1, effect = CONST_ME_ENERGYAREA, target = true }, + -- Ice: "Chuva de Gelo" + { name = "combat", interval = 3000, chance = 15, type = COMBAT_ICEDAMAGE, minDamage = -550, maxDamage = -950, radius = 4, effect = CONST_ME_ICEAREA, target = false }, +} + +-- TODO(balance): defense/armor/mitigation nao sao publicados pela wiki. +monster.defenses = { + defense = 90, + armor = 85, + mitigation = 2.85, +} + +-- Oficial: Fisico 100%, Poison 100%, Fire 110%, Cursed 100%, Electrified 77%, Dazzled 100%, +-- Freezing 77%, Heal 100%. Aqui o campo e a RESISTENCIA, ou seja percent = 100 - valor da wiki. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 23 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = -10 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 23 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +-- Oficial: "Imunidades: Paralisia, Invisibilidade". +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "outfit", condition = false }, + { type = "invisible", condition = true }, + { type = "bleed", condition = false }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/bosses/the_moonsnow_magnolia.lua b/data-global/monster/summer_update_2026/bosses/the_moonsnow_magnolia.lua new file mode 100644 index 000000000..b812aafd6 --- /dev/null +++ b/data-global/monster/summer_update_2026/bosses/the_moonsnow_magnolia.lua @@ -0,0 +1,167 @@ +local mType = Game.createMonsterType("The Moonsnow Magnolia") +local monster = {} + +monster.description = "The Moonsnow Magnolia" +monster.experience = 240000 +-- lookType/cores oficiais do staticdata do cliente (ver docs/update-15.30-criaturas.md). +monster.outfit = { + lookType = 1068, + lookHead = 85, + lookBody = 13, + lookLegs = 109, + lookFeet = 3, + lookAddons = 3, + lookMount = 0, +} + +monster.bosstiary = { + bossRaceId = 2806, -- oficial (staticdata do cliente) + bossRace = RARITY_ARCHFOE, +} + +monster.health = 52000 +monster.maxHealth = 52000 +monster.race = "blood" +-- Como e rewardBoss, o loot vai pro reward chest e nao pro corpo, entao isso nao trava o loot. +monster.corpse = 54670 +monster.speed = 190 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 70, + health = 10, + damage = 10, + random = 10, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + -- "Pode ser Puxado: nao" + pushable = false, + rewardBoss = true, + illusionable = false, + -- "Empurra Objetos: sim" + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + -- "Combate corpo a corpo" + "Luta ate a morte" + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- "Nao e possivel bloquear o respawn dessa criatura" + isBlockable = false, + -- "Passa por: Fogo, Energia, Veneno" + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.summon = { + maxSummons = 4, + summons = { + { name = "Frost Flower Asura", chance = 10, interval = 4000, count = 2 }, + { name = "Midnight Asura", chance = 10, interval = 4000, count = 2 }, + }, +} + +monster.voices = { + interval = 5000, + chance = 10, + { text = "Come feast, my darlings!", yell = false }, +} + +monster.loot = { + -- Comum + { name = "crystal coin", chance = 70000, maxCount = 15 }, + { name = "platinum coin", chance = 90000, maxCount = 124 }, + { name = "white pearl", chance = 32000 }, + { name = "gold ingot", chance = 30000 }, + { name = "cyan crystal fragment", chance = 28000, maxCount = 2 }, + { name = "demonic essence", chance = 30000 }, + { name = "flask of demonic blood", chance = 30000, maxCount = 5 }, + { name = "black pearl", chance = 32000 }, + { name = "golden lotus brooch", chance = 25000 }, + { id = 54128, chance = 40000, maxCount = 10 }, -- ice shard + { name = "onyx chip", chance = 25000 }, + { name = "peacock feather fan", chance = 25000 }, + { name = "small topaz", chance = 30000 }, + -- Incomum + { name = "moonlight rod", chance = 12000 }, + { id = 7441, chance = 12000 }, -- ice cube (nome ambiguo: 5 ids em items.xml) + { name = "ice rapier", chance = 12000 }, + -- Semi-raro + { name = "assassin dagger", chance = 6000 }, + { name = "blue robe", chance = 6000 }, + { name = "lunar staff", chance = 6000 }, + { name = "moonstone", chance = 6000 }, + { name = "oriental shoes", chance = 6000 }, + { name = "silver token", chance = 6000 }, + -- Raro + { name = "frozen peacock feather", chance = 1500 }, + -- Muito raro. Ids explicitos: cada amuleto encantado tem DOIS ids no appearances.dat + -- (53197/53198 etc), entao por nome o loot sairia nil (o mesmo bug de "Non-unique loot item" + -- que ja pegamos antes). Ainda faltam ser cadastrados no items.xml com os atributos oficiais + -- - ver docs/update-15.30-pendencias.md, secao 3. + { id = 53201, chance = 300 }, -- enchanted flamingo amulet of destruction + { id = 53203, chance = 300 }, -- enchanted flamingo amulet of nature + { id = 53199, chance = 300 }, -- enchanted flamingo amulet of precision + { id = 53197, chance = 300 }, -- enchanted flamingo amulet of valor + { id = 53205, chance = 300 }, -- enchanted swan amulet of balance +} + +-- TODO(balance): a wiki so publica o dano da explosao suprema de gelo (1300-?); o resto aparece +-- como "?-?". Os numeros abaixo sao escalados pelos 52000 HP do boss, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1400 }, + -- Fisico: em area no jogador + { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -700, maxDamage = -1200, radius = 3, effect = CONST_ME_HITAREA, target = true }, + -- Death: reta de morte + { name = "combat", interval = 2000, chance = 18, type = COMBAT_DEATHDAMAGE, minDamage = -800, maxDamage = -1300, length = 8, spread = 0, effect = CONST_ME_MORTAREA, target = false }, + -- Ice: single target + { name = "combat", interval = 2000, chance = 20, type = COMBAT_ICEDAMAGE, minDamage = -750, maxDamage = -1250, range = 7, shootEffect = CONST_ANI_ICE, effect = CONST_ME_ICEATTACK, target = true }, + -- Ice: explosao suprema (unico dano publicado: minimo 1300) + { name = "combat", interval = 5000, chance = 12, type = COMBAT_ICEDAMAGE, minDamage = -1300, maxDamage = -2200, radius = 5, effect = CONST_ME_ICEAREA, target = false }, +} + +-- TODO(balance): defense/armor/mitigation nao sao publicados pela wiki. +monster.defenses = { + defense = 110, + armor = 105, + mitigation = 3.50, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = -5 }, + { type = COMBAT_EARTHDAMAGE, percent = -10 }, + { type = COMBAT_FIREDAMAGE, percent = -5 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +-- Oficial: "Imunidades: Paralisia, Invisibilidade". +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "outfit", condition = false }, + { type = "invisible", condition = true }, + { type = "bleed", condition = false }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/cult_initiate.lua b/data-global/monster/summer_update_2026/cult_initiate.lua new file mode 100644 index 000000000..98912baa7 --- /dev/null +++ b/data-global/monster/summer_update_2026/cult_initiate.lua @@ -0,0 +1,108 @@ +local mType = Game.createMonsterType("Cult Initiate") +local monster = {} + +monster.description = "a cult initiate" +-- Oficial: 500 XP (750 com bonus). O bonus e do servidor, entao aqui vai o valor base. +monster.experience = 500 +monster.outfit = { + lookType = 1952, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.health = 10000 +monster.maxHealth = 10000 +monster.race = "blood" +-- Corpse levantado no cliente (compartilhado com o Moonsilver Custodian). +monster.corpse = 54568 +monster.speed = 170 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + -- "Pode ser Puxado: nao" + pushable = false, + rewardBoss = false, + illusionable = false, + -- "Empurra Objetos: sim" + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- "Nao e possivel bloquear o respawn dessa criatura" + isBlockable = false, + -- "Passa por: Fogo, Energia, Veneno" + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, +} + +-- Oficial: "Loot: Nenhum." +monster.loot = {} + +-- TODO(balance): a wiki lista as tres habilidades (Fisico, Energy, Holy) mas nao publica os +-- valores de dano - aparecem como "()". Os numeros abaixo sao escalados pelos 10000 HP e nao +-- sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -450 }, + { name = "combat", interval = 2000, chance = 18, type = COMBAT_ENERGYDAMAGE, minDamage = -260, maxDamage = -480, range = 7, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_ENERGYHIT, target = true }, + { name = "combat", interval = 2500, chance = 15, type = COMBAT_HOLYDAMAGE, minDamage = -240, maxDamage = -450, radius = 3, effect = CONST_ME_HOLYDAMAGE, target = false }, +} + +-- TODO(balance): defense/armor/mitigation nao sao publicados pela wiki. +monster.defenses = { + defense = 62, + armor = 60, + mitigation = 2.20, +} + +-- Oficial: Fisico 100%, Poison 80%, Fire 110%, Cursed 100%, Electrified 84%, Dazzled 100%, +-- Freezing 100%, Heal 100%. Aqui o campo e a RESISTENCIA, ou seja percent = 100 - valor da wiki. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 16 }, + { type = COMBAT_EARTHDAMAGE, percent = 20 }, + { type = COMBAT_FIREDAMAGE, percent = -10 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +-- Oficial: "Imunidades: Paralisia, Invisibilidade". +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/devoted_radiant_acolyte.lua b/data-global/monster/summer_update_2026/devoted_radiant_acolyte.lua new file mode 100644 index 000000000..49f837597 --- /dev/null +++ b/data-global/monster/summer_update_2026/devoted_radiant_acolyte.lua @@ -0,0 +1,113 @@ +local mType = Game.createMonsterType("Devoted Radiant Acolyte") +local monster = {} + +monster.description = "a devoted radiant acolyte" +monster.experience = 40530 +monster.outfit = { + lookType = 1969, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 3, + lookMount = 0, +} + +monster.raceId = 2844 +monster.Bestiary = { + class = "Humanoid", + race = BESTY_RACE_HUMANOID, + toKill = 5000, + FirstUnlock = 200, + SecondUnlock = 2000, + CharmsPoints = 100, + Stars = 5, + Occurrence = 1, + Locations = "Radiant Skyhold", +} + +monster.health = 39790 +monster.maxHealth = 39790 +monster.race = "blood" +monster.corpse = 54419 +monster.speed = 260 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.loot = { + { name = "Book of Faith", chance = 4000 }, + { name = "Cloud Familiar", chance = 900 }, + { name = "Lunar Ascension Orb", chance = 150 }, + { name = "devoted radiant acolyte soul core", chance = 100 }, +} + +-- A wiki lista os debuffs: Hex. +-- Apenas 'fear' existe como spell no engine; Hex e Root nao tem suporte e ficaram de fora. +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1300 }, + { name = "combat", interval = 2000, chance = 18, type = COMBAT_HOLYDAMAGE, minDamage = -800, maxDamage = -1300, radius = 4, effect = CONST_ME_HOLYAREA, target = false }, +} + +monster.defenses = { + defense = 105, + armor = 105, + mitigation = 5.36, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/devoted_radiant_inquisitor.lua b/data-global/monster/summer_update_2026/devoted_radiant_inquisitor.lua new file mode 100644 index 000000000..a03f19612 --- /dev/null +++ b/data-global/monster/summer_update_2026/devoted_radiant_inquisitor.lua @@ -0,0 +1,116 @@ +local mType = Game.createMonsterType("Devoted Radiant Inquisitor") +local monster = {} + +monster.description = "a devoted radiant inquisitor" +monster.experience = 39860 +monster.outfit = { + lookType = 1967, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 3, + lookMount = 0, +} + +monster.raceId = 2848 +monster.Bestiary = { + class = "Humanoid", + race = BESTY_RACE_HUMANOID, + toKill = 5000, + FirstUnlock = 200, + SecondUnlock = 2000, + CharmsPoints = 100, + Stars = 5, + Occurrence = 1, + Locations = "Radiant Ascendancy", +} + +monster.health = 40020 +monster.maxHealth = 40020 +monster.race = "blood" +-- Corpse compartilhado com o Radiant Acolyte, Templar e Inquisitor (mesma armadura desfeita). +monster.corpse = 54678 +monster.speed = 215 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.loot = { + { name = "Golden Belt", chance = 9000 }, + { name = "Blue Quiver", chance = 4000 }, + { name = "Cloud Familiar", chance = 900 }, + { name = "Lunar Ascension Orb", chance = 150 }, + { name = "devoted radiant inquisitor soul core", chance = 100 }, +} + +-- A wiki lista os debuffs: Hex, Fear, Root. +-- Apenas 'fear' existe como spell no engine; Hex e Root nao tem suporte e ficaram de fora. +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1300 }, + { name = "fear", interval = 3000, chance = 10, target = true }, + { name = "combat", interval = 2000, chance = 18, type = COMBAT_HOLYDAMAGE, minDamage = -850, maxDamage = -1350, range = 7, shootEffect = CONST_ANI_HOLY, effect = CONST_ME_HOLYDAMAGE, target = true }, +} + +monster.defenses = { + defense = 120, + armor = 120, + mitigation = 6.10, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = -10 }, + { type = COMBAT_ENERGYDAMAGE, percent = 25 }, + { type = COMBAT_EARTHDAMAGE, percent = 10 }, + { type = COMBAT_FIREDAMAGE, percent = -5 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = -5 }, + { type = COMBAT_HOLYDAMAGE, percent = 25 }, + { type = COMBAT_DEATHDAMAGE, percent = -10 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/devoted_radiant_paragon.lua b/data-global/monster/summer_update_2026/devoted_radiant_paragon.lua new file mode 100644 index 000000000..fc62eca77 --- /dev/null +++ b/data-global/monster/summer_update_2026/devoted_radiant_paragon.lua @@ -0,0 +1,111 @@ +local mType = Game.createMonsterType("Devoted Radiant Paragon") +local monster = {} + +monster.description = "a devoted radiant paragon" +monster.experience = 42850 +monster.outfit = { + lookType = 1966, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 1, + lookMount = 0, +} + +monster.raceId = 2842 +monster.Bestiary = { + class = "Humanoid", + race = BESTY_RACE_HUMANOID, + toKill = 5000, + FirstUnlock = 200, + SecondUnlock = 2000, + CharmsPoints = 100, + Stars = 5, + Occurrence = 1, + Locations = "Radiant Skyhold", +} + +monster.health = 41400 +monster.maxHealth = 41400 +monster.race = "blood" +monster.corpse = 54411 +monster.speed = 0 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.loot = { + { name = "Lunar Ascension Orb", chance = 150 }, + { name = "devoted radiant paragon soul core", chance = 100 }, +} + +-- A wiki lista os debuffs: Fear. +-- Apenas 'fear' existe como spell no engine; Hex e Root nao tem suporte e ficaram de fora. +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1350 }, + { name = "fear", interval = 3000, chance = 12, target = true }, +} + +monster.defenses = { + defense = 0, + armor = 0, + mitigation = 0.00, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/devoted_radiant_templar.lua b/data-global/monster/summer_update_2026/devoted_radiant_templar.lua new file mode 100644 index 000000000..e9f0514eb --- /dev/null +++ b/data-global/monster/summer_update_2026/devoted_radiant_templar.lua @@ -0,0 +1,114 @@ +local mType = Game.createMonsterType("Devoted Radiant Templar") +local monster = {} + +monster.description = "a devoted radiant templar" +monster.experience = 42300 +monster.outfit = { + lookType = 1965, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 3, + lookMount = 0, +} + +monster.raceId = 2846 +monster.Bestiary = { + class = "Humanoid", + race = BESTY_RACE_HUMANOID, + toKill = 5000, + FirstUnlock = 200, + SecondUnlock = 2000, + CharmsPoints = 100, + Stars = 5, + Occurrence = 1, + Locations = "Radiant Ascendancy", +} + +monster.health = 42550 +monster.maxHealth = 42550 +monster.race = "blood" +monster.corpse = 54376 +monster.speed = 220 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.loot = { + { name = "Ceremonial Bowl", chance = 9000 }, + { name = "Cloud Familiar", chance = 900 }, + { name = "Lunar Ascension Orb", chance = 150 }, + { name = "devoted radiant templar soul core", chance = 100 }, +} + +-- A wiki lista os debuffs: Hex, Fear, Root. +-- Apenas 'fear' existe como spell no engine; Hex e Root nao tem suporte e ficaram de fora. +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1400 }, + { name = "fear", interval = 3000, chance = 10, target = true }, + { name = "combat", interval = 2000, chance = 18, type = COMBAT_ENERGYDAMAGE, minDamage = -900, maxDamage = -1400, radius = 4, effect = CONST_ME_ENERGYAREA, target = false }, +} + +monster.defenses = { + defense = 135, + armor = 135, + mitigation = 5.36, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 5 }, + { type = COMBAT_ENERGYDAMAGE, percent = 20 }, + { type = COMBAT_EARTHDAMAGE, percent = 5 }, + { type = COMBAT_FIREDAMAGE, percent = -10 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = -10 }, + { type = COMBAT_HOLYDAMAGE, percent = 25 }, + { type = COMBAT_DEATHDAMAGE, percent = -5 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/devoted_radiant_warden.lua b/data-global/monster/summer_update_2026/devoted_radiant_warden.lua new file mode 100644 index 000000000..4284a55df --- /dev/null +++ b/data-global/monster/summer_update_2026/devoted_radiant_warden.lua @@ -0,0 +1,113 @@ +local mType = Game.createMonsterType("Devoted Radiant Warden") +local monster = {} + +monster.description = "a devoted radiant warden" +monster.experience = 43460 +monster.outfit = { + lookType = 1964, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 1, + lookMount = 0, +} + +monster.raceId = 2840 +monster.Bestiary = { + class = "Humanoid", + race = BESTY_RACE_HUMANOID, + toKill = 5000, + FirstUnlock = 200, + SecondUnlock = 2000, + CharmsPoints = 100, + Stars = 5, + Occurrence = 1, + Locations = "Radiant Skyhold", +} + +monster.health = 44275 +monster.maxHealth = 44275 +monster.race = "blood" +-- Corpse compartilhado com o Radiant Warden comum (mesmo lookType). +monster.corpse = 54399 +monster.speed = 220 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.loot = { + { name = "Cloud Familiar", chance = 900 }, + { name = "Lunar Ascension Orb", chance = 150 }, + { name = "devoted radiant warden soul core", chance = 100 }, +} + +-- A wiki lista os debuffs: Root. +-- Apenas 'fear' existe como spell no engine; Hex e Root nao tem suporte e ficaram de fora. +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1400 }, + { name = "combat", interval = 2000, chance = 18, type = COMBAT_HOLYDAMAGE, minDamage = -900, maxDamage = -1400, radius = 4, effect = CONST_ME_HOLYAREA, target = false }, +} + +monster.defenses = { + defense = 140, + armor = 140, + mitigation = 5.12, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/devoted_radiant_zealot.lua b/data-global/monster/summer_update_2026/devoted_radiant_zealot.lua new file mode 100644 index 000000000..562211644 --- /dev/null +++ b/data-global/monster/summer_update_2026/devoted_radiant_zealot.lua @@ -0,0 +1,116 @@ +local mType = Game.createMonsterType("Devoted Radiant Zealot") +local monster = {} + +monster.description = "a devoted radiant zealot" +monster.experience = 42800 +monster.outfit = { + lookType = 1968, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 3, + lookMount = 0, +} + +monster.raceId = 2850 +monster.Bestiary = { + class = "Humanoid", + race = BESTY_RACE_HUMANOID, + toKill = 5000, + FirstUnlock = 200, + SecondUnlock = 2000, + CharmsPoints = 100, + Stars = 5, + Occurrence = 1, + Locations = "Radiant Ascendancy", +} + +monster.health = 41980 +monster.maxHealth = 41980 +monster.race = "blood" +-- Corpse compartilhado com o Radiant Zealot comum (mesmo lookType). +monster.corpse = 54415 +monster.speed = 230 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.loot = { + { name = "Loose Prayer Beads", chance = 4000 }, + { name = "Etcher", chance = 900 }, + { name = "Cloud Familiar", chance = 900 }, + { name = "Lunar Ascension Orb", chance = 150 }, + { name = "devoted radiant zealot soul core", chance = 100 }, +} + +-- A wiki lista os debuffs: Hex, Fear, Root. +-- Apenas 'fear' existe como spell no engine; Hex e Root nao tem suporte e ficaram de fora. +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1350 }, + { name = "fear", interval = 3000, chance = 10, target = true }, + { name = "combat", interval = 2000, chance = 18, type = COMBAT_ENERGYDAMAGE, minDamage = -880, maxDamage = -1380, radius = 4, effect = CONST_ME_ENERGYAREA, target = false }, +} + +monster.defenses = { + defense = 106, + armor = 106, + mitigation = 4.63, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = -15 }, + { type = COMBAT_ENERGYDAMAGE, percent = 40 }, + { type = COMBAT_EARTHDAMAGE, percent = 10 }, + { type = COMBAT_FIREDAMAGE, percent = -5 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = -5 }, + { type = COMBAT_HOLYDAMAGE, percent = 20 }, + { type = COMBAT_DEATHDAMAGE, percent = -10 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/druid_rival.lua b/data-global/monster/summer_update_2026/druid_rival.lua new file mode 100644 index 000000000..c7dfe30c7 --- /dev/null +++ b/data-global/monster/summer_update_2026/druid_rival.lua @@ -0,0 +1,94 @@ +local mType = Game.createMonsterType("Druid Rival") +local monster = {} + +monster.description = "a druid rival" +monster.experience = 0 +monster.outfit = { + lookType = 144, + lookHead = 114, + lookBody = 38, + lookLegs = 43, + lookFeet = 58, + lookAddons = 0, + lookMount = 0, +} + +monster.health = 29800 +monster.maxHealth = 29800 +monster.race = "blood" +monster.corpse = 6081 +monster.speed = 180 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, + health = 0, + damage = 0, + random = 0, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, + { text = "NATURE NEED LIGHT!", yell = false }, +} + +monster.loot = {} + +monster.attacks = {} + +monster.defenses = { + defense = 78, + armor = 75, + mitigation = 2.45, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/elite_fanatic.lua b/data-global/monster/summer_update_2026/elite_fanatic.lua new file mode 100644 index 000000000..efc0481f8 --- /dev/null +++ b/data-global/monster/summer_update_2026/elite_fanatic.lua @@ -0,0 +1,109 @@ +local mType = Game.createMonsterType("Elite Fanatic") +local monster = {} + +monster.description = "an elite fanatic" +-- Oficial: 0 XP. Nunca morre de verdade - petrifica. +monster.experience = 0 +monster.outfit = { + lookType = 1964, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.health = 6000 +monster.maxHealth = 6000 +monster.race = "blood" +-- Nao deixa corpo: petrifica em vez de morrer, e a wiki marca "Loot: Nenhum". +monster.corpse = 0 +monster.speed = 175 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + -- "Pode ser Puxado: nao" + pushable = false, + rewardBoss = false, + illusionable = false, + -- "Empurra Objetos: sim" + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- "Nao e possivel bloquear o respawn dessa criatura" + isBlockable = false, + -- "Passa por: Fogo, Energia, Veneno" + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +-- A wiki lista dois sons, mas o segundo ("I'm just dummy text. Edit me!") e placeholder do +-- template do wiki, nao fala oficial - fica so o primeiro. +monster.voices = { + interval = 5000, + chance = 10, + { text = "For Phosphorus!", yell = false }, +} + +-- Oficial: "Loot: Nenhum." +monster.loot = {} + +-- TODO(balance): a wiki lista Fisico e Cura sem valores (aparecem como "()"). Os numeros abaixo +-- sao escalados pelos 6000 HP e nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -400 }, +} + +-- A "Cura" das habilidades e auto-cura, que nesta base vai em defenses, nao em attacks. +-- TODO(balance): valores nao publicados; defense/armor/mitigation tambem nao. +monster.defenses = { + defense = 55, + armor = 52, + mitigation = 1.95, + { name = "combat", interval = 3000, chance = 20, type = COMBAT_HEALING, minDamage = 250, maxDamage = 500, effect = CONST_ME_MAGIC_BLUE, target = false }, +} + +-- Oficial: 100% em absolutamente todos os tipos - nenhuma resistencia nem fraqueza. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +-- Oficial: "Imunidades: Paralisia, Invisibilidade". +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/energy_cannon.lua b/data-global/monster/summer_update_2026/energy_cannon.lua new file mode 100644 index 000000000..7a1830540 --- /dev/null +++ b/data-global/monster/summer_update_2026/energy_cannon.lua @@ -0,0 +1,61 @@ +local mType = Game.createMonsterType("Energy Cannon") +local monster = {} + +monster.name = "Energy Cannon" +monster.description = "an energy cannon" +monster.experience = 0 +monster.outfit = { + lookTypeEx = 53678, -- facing left +} + +-- Health is the charge counter: starts nearly empty and is filled 10 at a time. +monster.health = 1 +monster.maxHealth = 100 +monster.race = "undead" +monster.corpse = 0 +-- Bolted to the floor. +monster.speed = 0 +monster.manaCost = 0 + +monster.flags = { + summonable = false, + -- Players charge it, they never fight it. + attackable = false, + hostile = false, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = false, + canPushCreatures = false, + staticAttackChance = 0, + targetDistance = 0, + runHealth = 0, + -- The bar has to be visible - it is the whole point. + healthHidden = false, + isBlockable = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = {} +monster.loot = {} +monster.attacks = {} + +monster.defenses = { + defense = 0, + armor = 0, + mitigation = 0, +} + +monster.elements = {} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/energy_cannon_right.lua b/data-global/monster/summer_update_2026/energy_cannon_right.lua new file mode 100644 index 000000000..884eceb44 --- /dev/null +++ b/data-global/monster/summer_update_2026/energy_cannon_right.lua @@ -0,0 +1,61 @@ +local mType = Game.createMonsterType("Energy Cannon Right") +local monster = {} + +monster.name = "Energy Cannon" +monster.description = "an energy cannon" +monster.experience = 0 +monster.outfit = { + lookTypeEx = 53679, -- facing right +} + +-- Health is the charge counter: starts nearly empty and is filled 10 at a time. +monster.health = 1 +monster.maxHealth = 100 +monster.race = "undead" +monster.corpse = 0 +-- Bolted to the floor. +monster.speed = 0 +monster.manaCost = 0 + +monster.flags = { + summonable = false, + -- Players charge it, they never fight it. + attackable = false, + hostile = false, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = false, + canPushCreatures = false, + staticAttackChance = 0, + targetDistance = 0, + runHealth = 0, + -- The bar has to be visible - it is the whole point. + healthHidden = false, + isBlockable = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = {} +monster.loot = {} +monster.attacks = {} + +monster.defenses = { + defense = 0, + armor = 0, + mitigation = 0, +} + +monster.elements = {} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/furious_jaracal.lua b/data-global/monster/summer_update_2026/furious_jaracal.lua new file mode 100644 index 000000000..34912d1a5 --- /dev/null +++ b/data-global/monster/summer_update_2026/furious_jaracal.lua @@ -0,0 +1,109 @@ +local mType = Game.createMonsterType("Furious Jaracal") +local monster = {} + +monster.description = "a furious jaracal" +-- Oficial: 0 XP. E um add invocado pela Moonsnow Magnolia, nao vale experiencia. +monster.experience = 0 +monster.outfit = { + lookType = 1961, + lookHead = 0, + lookBody = 86, + lookLegs = 76, + lookFeet = 76, + lookAddons = 0, + lookMount = 0, +} + +monster.health = 8330 +monster.maxHealth = 8330 +monster.race = "blood" +-- Oficial: nao deixa corpo. E add de luta da Magnolia, nao dropa nada (loot vazio). +monster.corpse = 0 +monster.speed = 190 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + -- "Pode ser Puxado: nao" + pushable = false, + rewardBoss = false, + illusionable = false, + -- "Empurra Objetos: sim" + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- "Nao e possivel bloquear o respawn dessa criatura" + isBlockable = false, + -- "Passa por: Fogo, Energia, Veneno" + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, +} + +-- Oficial: "Loot: Nenhum." +monster.loot = {} + +-- TODO(balance): a wiki nao publica nenhum valor de dano (as duas habilidades aparecem como +-- "()"). Os numeros abaixo sao escalados pelos 8330 HP, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -520 }, + -- O mana drain e a razao de ser dele na luta da Magnolia: e o que pune ficar sem tocar a + -- bone fiddle e deixar os adds se acumularem. + { name = "combat", interval = 2000, chance = 20, type = COMBAT_MANADRAIN, minDamage = -180, maxDamage = -340, range = 7, effect = CONST_ME_MAGIC_BLUE, target = true }, +} + +-- TODO(balance): defense/armor/mitigation nao sao publicados pela wiki. +monster.defenses = { + defense = 70, + armor = 68, + mitigation = 2.10, +} + +-- Oficial: 100% em absolutamente todos os tipos, ou seja nenhuma resistencia nem fraqueza. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +-- Oficial: "Imunidades: Paralisia, Invisibilidade". +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "outfit", condition = false }, + { type = "invisible", condition = true }, + { type = "bleed", condition = false }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/iceplume_strider.lua b/data-global/monster/summer_update_2026/iceplume_strider.lua new file mode 100644 index 000000000..fbe410847 --- /dev/null +++ b/data-global/monster/summer_update_2026/iceplume_strider.lua @@ -0,0 +1,118 @@ +local mType = Game.createMonsterType("Iceplume Strider") +local monster = {} + +monster.description = "an iceplume strider" +monster.experience = 8150 +monster.outfit = { + lookType = 1950, + lookHead = 0, + lookBody = 51, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.raceId = 2803 +monster.Bestiary = { + class = "Elemental", + race = BESTY_RACE_ELEMENTAL, + toKill = 2500, + FirstUnlock = 100, + SecondUnlock = 1000, + CharmsPoints = 50, + Stars = 4, + Occurrence = 0, + Locations = "Asura Citadel", +} + +monster.health = 8500 +monster.maxHealth = 8500 +monster.race = "undead" +monster.corpse = 54335 +monster.speed = 170 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.loot = { + { name = "Platinum Coin", chance = 20000, maxCount = 8 }, + { name = "Small Sapphire", chance = 9000, maxCount = 3 }, + { name = "Crystal Coin", chance = 9000 }, + { name = "Blue Gem", chance = 4000 }, + { name = "Northwind Rod", chance = 4000 }, + { name = "Ice Shard", chance = 4000 }, + { id = 3007, chance = 900 }, -- crystal ring + { name = "Blue Robe", chance = 900 }, + { name = "iceplume strider soul core", chance = 100 }, +} + +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -450 }, + { name = "combat", interval = 2000, chance = 18, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -520, radius = 3, effect = CONST_ME_ENERGYAREA, target = false }, + { name = "combat", interval = 2000, chance = 16, type = COMBAT_ICEDAMAGE, minDamage = -320, maxDamage = -560, range = 7, shootEffect = CONST_ANI_ICE, effect = CONST_ME_ICEATTACK, target = true }, + { name = "combat", interval = 2000, chance = 12, type = COMBAT_MANADRAIN, minDamage = -150, maxDamage = -300, range = 7, effect = CONST_ME_MAGIC_BLUE, target = true }, +} + +monster.defenses = { + defense = 75, + armor = 75, + mitigation = 3.68, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = -5 }, + { type = COMBAT_ENERGYDAMAGE, percent = 10 }, + { type = COMBAT_EARTHDAMAGE, percent = -5 }, + { type = COMBAT_FIREDAMAGE, percent = -5 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 10 }, + { type = COMBAT_HOLYDAMAGE, percent = 10 }, + { type = COMBAT_DEATHDAMAGE, percent = -5 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/jaracal.lua b/data-global/monster/summer_update_2026/jaracal.lua new file mode 100644 index 000000000..282a1e832 --- /dev/null +++ b/data-global/monster/summer_update_2026/jaracal.lua @@ -0,0 +1,113 @@ +local mType = Game.createMonsterType("Jaracal") +local monster = {} + +monster.description = "a jaracal" +monster.experience = 2460 +monster.outfit = { + lookType = 1961, + lookHead = 82, + lookBody = 97, + lookLegs = 76, + lookFeet = 76, + lookAddons = 0, + lookMount = 0, +} + +monster.raceId = 2856 +monster.Bestiary = { + class = "Mammal", + race = BESTY_RACE_MAMMAL, + toKill = 2500, + FirstUnlock = 100, + SecondUnlock = 1000, + CharmsPoints = 50, + Stars = 4, + Occurrence = 0, + Locations = "", +} + +monster.health = 3200 +monster.maxHealth = 3200 +monster.race = "blood" +monster.corpse = 54386 +monster.speed = 180 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.loot = { + { name = "Platinum Coin", chance = 20000, maxCount = 4 }, + { name = "Strong Health Potion", chance = 9000 }, + { name = "Beastslayer Axe", chance = 4000 }, + { name = "Ham", chance = 4000, maxCount = 2 }, + { name = "Furry Club", chance = 4000 }, + { name = "jaracal soul core", chance = 100 }, +} + +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -300 }, + { name = "combat", interval = 2000, chance = 14, type = COMBAT_LIFEDRAIN, minDamage = -120, maxDamage = -260, range = 1, effect = CONST_ME_MAGIC_RED, target = true }, +} + +monster.defenses = { + defense = 65, + armor = 65, + mitigation = 3.08, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 5 }, + { type = COMBAT_ENERGYDAMAGE, percent = -5 }, + { type = COMBAT_EARTHDAMAGE, percent = -5 }, + { type = COMBAT_FIREDAMAGE, percent = 15 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = -10 }, + { type = COMBAT_HOLYDAMAGE, percent = 10 }, + { type = COMBAT_DEATHDAMAGE, percent = 10 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/knight_rival.lua b/data-global/monster/summer_update_2026/knight_rival.lua new file mode 100644 index 000000000..125a9de3f --- /dev/null +++ b/data-global/monster/summer_update_2026/knight_rival.lua @@ -0,0 +1,94 @@ +local mType = Game.createMonsterType("Knight Rival") +local monster = {} + +monster.description = "a knight rival" +monster.experience = 0 +monster.outfit = { + lookType = 1944, + lookHead = 114, + lookBody = 19, + lookLegs = 43, + lookFeet = 39, + lookAddons = 0, + lookMount = 0, +} + +monster.health = 32500 +monster.maxHealth = 32500 +monster.race = "blood" +monster.corpse = 6081 +monster.speed = 180 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, + health = 0, + damage = 0, + random = 0, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, + { text = "FEEL MY STRENGTH!", yell = false }, +} + +monster.loot = {} + +monster.attacks = {} + +monster.defenses = { + defense = 90, + armor = 88, + mitigation = 2.7, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/monk_rival.lua b/data-global/monster/summer_update_2026/monk_rival.lua new file mode 100644 index 000000000..95bb60f30 --- /dev/null +++ b/data-global/monster/summer_update_2026/monk_rival.lua @@ -0,0 +1,97 @@ +local mType = Game.createMonsterType("Monk Rival") +local monster = {} + +monster.description = "a monk rival" +monster.experience = 0 +monster.outfit = { + lookType = 1824, + lookHead = 114, + lookBody = 40, + lookLegs = 57, + lookFeet = 21, + lookAddons = 0, + lookMount = 0, +} + +monster.health = 31200 +monster.maxHealth = 31200 +monster.race = "blood" +monster.corpse = 6081 +monster.speed = 180 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, + health = 0, + damage = 0, + random = 0, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, +} + +monster.loot = {} + +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -900 }, + { name = "combat", interval = 2000, chance = 18, type = COMBAT_EARTHDAMAGE, minDamage = -500, maxDamage = -850, radius = 3, target = false, effect = CONST_ME_GREEN_RINGS }, + { name = "combat", interval = 2500, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -480, maxDamage = -820, range = 7, target = true, effect = CONST_ME_ENERGYHIT, shootEffect = CONST_ANI_ENERGY }, +} + +monster.defenses = { + defense = 88, + armor = 85, + mitigation = 2.65, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/moonsilver_augur.lua b/data-global/monster/summer_update_2026/moonsilver_augur.lua new file mode 100644 index 000000000..79c6021e0 --- /dev/null +++ b/data-global/monster/summer_update_2026/moonsilver_augur.lua @@ -0,0 +1,78 @@ +local mType = Game.createMonsterType("Moonsilver Augur") +local monster = {} + +monster.name = "Moonsilver Augur" +monster.description = "a moonsilver augur" +monster.experience = 0 +monster.outfit = { + lookType = 1973, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.health = 12000 +monster.maxHealth = 12000 +monster.race = "undead" +monster.corpse = 0 +monster.speed = 140 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = {} +monster.loot = {} + +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -600 }, +} + +monster.defenses = { + defense = 60, + armor = 60, + mitigation = 2.00, +} + +monster.elements = {} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/moonsilver_custodian.lua b/data-global/monster/summer_update_2026/moonsilver_custodian.lua new file mode 100644 index 000000000..641e073fc --- /dev/null +++ b/data-global/monster/summer_update_2026/moonsilver_custodian.lua @@ -0,0 +1,113 @@ +local mType = Game.createMonsterType("Moonsilver Custodian") +local monster = {} + +monster.description = "a moonsilver custodian" +-- Oficial: 0 XP. Nao entra no bestiario (por isso nao tem raceId nem monster.Bestiary). +monster.experience = 0 +-- REVISAR(outfit): lookType 1956 levantado no cliente pelo usuario, que pediu para deixar +-- marcado porque ainda vai conferir. Atencao: 1956 e EXATAMENTE o lookType do Moonstone +-- Overseer (raceId 2858, oficial do staticdata) - ou as duas criaturas dividem o mesmo outfit +-- de propósito (como o Cult Initiate / Excavator / Miner dividem o 1952, so mudando o addon), +-- ou falta um addon aqui para diferenciar. Conferir in-game lado a lado. +monster.outfit = { + lookType = 1956, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.health = 23300 +monster.maxHealth = 23300 +-- TODO(items): "undead" seguindo o Moonstone Excavator, o outro construto do update. Confirmar +-- o splash in-game junto com o corpse id. +monster.race = "undead" +-- Corpse levantado no cliente (compartilhado com o Cult Initiate). +monster.corpse = 54568 +monster.speed = 150 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + -- "Pode ser Puxado: nao" + pushable = false, + rewardBoss = false, + illusionable = false, + -- "Empurra Objetos: sim" + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- "Nao e possivel bloquear o respawn dessa criatura" + isBlockable = false, + -- "Passa por: Fogo, Energia, Veneno" + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, +} + +-- Oficial: "Loot: Nenhum." +monster.loot = {} + +-- TODO(balance): a wiki lista Fisico e Holy sem valores (aparecem como "()"). Os numeros abaixo +-- sao escalados pelos 23300 HP e nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -750 }, + { name = "combat", interval = 2000, chance = 18, type = COMBAT_HOLYDAMAGE, minDamage = -420, maxDamage = -720, radius = 3, effect = CONST_ME_HOLYDAMAGE, target = false }, +} + +-- TODO(balance): defense/armor/mitigation nao sao publicados pela wiki. +monster.defenses = { + defense = 82, + armor = 80, + mitigation = 2.60, +} + +-- Oficial: Fisico 100%, Poison 80%, Fire 90%, Cursed 100%, Electrified 104%, Dazzled 100%, +-- Freezing 100%, Heal 100%. Aqui o campo e a RESISTENCIA, ou seja percent = 100 - valor da wiki. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = -4 }, + { type = COMBAT_EARTHDAMAGE, percent = 20 }, + { type = COMBAT_FIREDAMAGE, percent = 10 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +-- Oficial: "Imunidades: Paralisia, Invisibilidade". +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/moonsilver_guardian.lua b/data-global/monster/summer_update_2026/moonsilver_guardian.lua new file mode 100644 index 000000000..a17c900f2 --- /dev/null +++ b/data-global/monster/summer_update_2026/moonsilver_guardian.lua @@ -0,0 +1,110 @@ +local mType = Game.createMonsterType("Moonsilver Guardian") +local monster = {} + +monster.description = "a moonsilver guardian" +-- Oficial: 0 XP. Nao entra no bestiario (por isso nao tem raceId nem monster.Bestiary). +monster.experience = 0 +-- REVISAR(outfit): 1956 addon 3 e um PALPITE do usuario, nao dado do cliente - confirmei que +-- nenhum dos Moonsilver existe no staticdata (so bestiario/boss entram la). Com este palpite, +-- Guardian, Protector e Sentinel ficam com aparencia identica entre si, e Custodian identico ao +-- Moonstone Overseer. Contra o palpite: os quatro tem resistencia a Electrified diferente +-- (Guardian 87%, Custodian 104%, Protector 107%), ou seja sao criaturas bem distintas. +-- lookTypes livres na faixa do update, se for preciso separar: 1954, 1960, 1962, 1973-1978 +-- (1957 e 1958 NAO existem no cliente). Ver docs/update-15.30-pendencias.md. +monster.outfit = { + lookType = 1956, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 3, + lookMount = 0, +} + +monster.health = 10600 +monster.maxHealth = 10600 +-- TODO(items): "undead" seguindo os outros construtos do update. Confirmar junto com o corpse id. +monster.race = "undead" +-- Corpse levantado no cliente (cadeia decrescente 54372-54369). +monster.corpse = 54372 +monster.speed = 150 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + -- "Pode ser Puxado: nao" + pushable = false, + rewardBoss = false, + illusionable = false, + -- "Empurra Objetos: sim" + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- "Nao e possivel bloquear o respawn dessa criatura" + isBlockable = false, + -- "Passa por: Fogo, Energia, Veneno" + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, +} + +-- Oficial: "Loot: Nenhum." +monster.loot = {} + +-- Oficial: "Habilidades: Nenhuma." +monster.attacks = {} + +-- TODO(balance): defense/armor/mitigation nao sao publicados pela wiki. +monster.defenses = { + defense = 62, + armor = 60, + mitigation = 2.20, +} + +-- Oficial: Fisico 100%, Poison 80%, Fire 90%, Cursed 100%, Electrified 87%, Dazzled 100%, +-- Freezing 100%, Heal 100%. Aqui o campo e a RESISTENCIA, ou seja percent = 100 - valor da wiki. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 13 }, + { type = COMBAT_EARTHDAMAGE, percent = 20 }, + { type = COMBAT_FIREDAMAGE, percent = 10 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +-- Oficial: "Imunidades: Paralisia, Invisibilidade". +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/moonsilver_protector.lua b/data-global/monster/summer_update_2026/moonsilver_protector.lua new file mode 100644 index 000000000..3900cba88 --- /dev/null +++ b/data-global/monster/summer_update_2026/moonsilver_protector.lua @@ -0,0 +1,108 @@ +local mType = Game.createMonsterType("Moonsilver Protector") +local monster = {} + +monster.description = "a moonsilver protector" +-- Oficial: 0 XP. Nao entra no bestiario (por isso nao tem raceId nem monster.Bestiary). +monster.experience = 0 +-- REVISAR(outfit): lookType 1956 addon 3, levantado no cliente pelo usuario, que pediu para +-- deixar marcado porque os addons ainda vao ser conferidos. Atencao: hoje este arquivo, o +-- Moonsilver Sentinel (1956 addon 3), o Moonsilver Custodian (1956 addon 0) e o Moonstone +-- Overseer (1956 addon 0, oficial do staticdata) estao os quatro no mesmo lookType - Protector +-- e Sentinel ficaram com aparencia identica. Conferir os quatro lado a lado in-game. +monster.outfit = { + lookType = 1956, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 3, + lookMount = 0, +} + +monster.health = 22700 +monster.maxHealth = 22700 +-- TODO(items): "undead" seguindo os outros construtos do update. Confirmar junto com o corpse id. +monster.race = "undead" +-- Corpse levantado no cliente (compartilhado com o Sentinel e o Devoted Radiant Templar). +monster.corpse = 54376 +monster.speed = 150 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + -- "Pode ser Puxado: nao" + pushable = false, + rewardBoss = false, + illusionable = false, + -- "Empurra Objetos: sim" + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- "Nao e possivel bloquear o respawn dessa criatura" + isBlockable = false, + -- "Passa por: Fogo, Energia, Veneno" + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, +} + +-- Oficial: "Loot: Nenhum." +monster.loot = {} + +-- Oficial: "Habilidades: Nenhuma." Nao ataca - e um estorvo de arena, nao uma ameaca de dano. +monster.attacks = {} + +-- TODO(balance): defense/armor/mitigation nao sao publicados pela wiki. +monster.defenses = { + defense = 80, + armor = 78, + mitigation = 2.55, +} + +-- Oficial: Fisico 100%, Poison 80%, Fire 90%, Cursed 100%, Electrified 107%, Dazzled 100%, +-- Freezing 100%, Heal 100%. Aqui o campo e a RESISTENCIA, ou seja percent = 100 - valor da wiki. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = -7 }, + { type = COMBAT_EARTHDAMAGE, percent = 20 }, + { type = COMBAT_FIREDAMAGE, percent = 10 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +-- Oficial: "Imunidades: Paralisia, Invisibilidade". +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/moonsilver_sentinel.lua b/data-global/monster/summer_update_2026/moonsilver_sentinel.lua new file mode 100644 index 000000000..fe675bdd9 --- /dev/null +++ b/data-global/monster/summer_update_2026/moonsilver_sentinel.lua @@ -0,0 +1,110 @@ +local mType = Game.createMonsterType("Moonsilver Sentinel") +local monster = {} + +monster.description = "a moonsilver sentinel" +-- Oficial: 0 XP. Nao entra no bestiario (por isso nao tem raceId nem monster.Bestiary). +monster.experience = 0 +-- REVISAR(outfit): lookType 1956 addon 3, levantado no cliente pelo usuario, que pediu para +-- deixar marcado porque os addons ainda vao ser conferidos. Atencao: hoje este arquivo e o +-- Moonsilver Protector estao com EXATAMENTE a mesma aparencia (1956 addon 3), e o Moonsilver +-- Custodian / Moonstone Overseer usam o mesmo lookType com addon 0. Conferir os quatro in-game. +monster.outfit = { + lookType = 1956, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 3, + lookMount = 0, +} + +-- TODO(balance): a wiki marca **0 HP**, que e o mesmo que ela mostra para os bosses escalados +-- pelo Boss Difficulty System - provavelmente a vida deste tambem escala com a dificuldade +-- escolhida (a partir da dificuldade 10 os Sentinels ganham a mecanica de "criar campos que +-- fortalecem tempestades ao morrer"). O valor abaixo e um placeholder alinhado com o Moonsilver +-- Protector (22700) so para a criatura ser jogavel; nao e oficial. +monster.health = 22700 +monster.maxHealth = 22700 +-- TODO(items): "undead" seguindo os outros construtos do update. Confirmar junto com o corpse id. +monster.race = "undead" +-- Corpse levantado no cliente (compartilhado com o Protector e o Devoted Radiant Templar). +monster.corpse = 54376 +monster.speed = 150 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + -- "Pode ser Puxado: nao" + pushable = false, + rewardBoss = false, + illusionable = false, + -- "Empurra Objetos: sim" + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- "Nao e possivel bloquear o respawn dessa criatura" + isBlockable = false, + -- "Passa por: Fogo, Energia, Veneno" + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, +} + +-- Oficial: "Loot: Nenhum." +monster.loot = {} + +monster.attacks = {} + +-- TODO(balance): defense/armor/mitigation nao sao publicados pela wiki. +monster.defenses = { + defense = 80, + armor = 78, + mitigation = 2.55, +} + +-- Oficial: 100% em absolutamente todos os tipos - nenhuma resistencia nem fraqueza. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +-- Oficial: "Imunidades: Paralisia, Invisibilidade". +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/moonsilver_storm.lua b/data-global/monster/summer_update_2026/moonsilver_storm.lua new file mode 100644 index 000000000..6d4188915 --- /dev/null +++ b/data-global/monster/summer_update_2026/moonsilver_storm.lua @@ -0,0 +1,92 @@ +local mType = Game.createMonsterType("Moonsilver Storm") +local monster = {} + +monster.name = "Storm" +monster.description = "a storm" +-- Official: no experience. +monster.experience = 0 +monster.outfit = { + lookType = 1943, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +-- Official: infinite HP. It is immune to everything below, so this only has to be a number it +-- can never lose. +monster.health = 1000000 +monster.maxHealth = 1000000 +monster.race = "energy" +monster.corpse = 0 +monster.speed = 100 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 0, +} + +monster.strategiesTarget = { + random = 100, +} + +monster.flags = { + summonable = false, + attackable = false, + hostile = true, + convinceable = false, + -- "Pode ser Puxado: nao" + pushable = false, + rewardBoss = false, + illusionable = false, + -- "Empurra Objetos: nao" + canPushItems = false, + canPushCreatures = false, + staticAttackChance = 0, + targetDistance = 0, + runHealth = 0, + healthHidden = true, + -- "Nao e possivel bloquear o respawn dessa criatura" + isBlockable = false, + -- "Passa por: Nada." + canWalkOnEnergy = false, + canWalkOnFire = false, + canWalkOnPoison = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = {} +-- Official: "Loot: Nenhum." +monster.loot = {} + +monster.attacks = {} + +monster.defenses = { + defense = 0, + armor = 0, + mitigation = 0, +} + +-- Official: 0% across the board, which is a hard immunity rather than a resistance. +monster.elements = {} + +monster.immunities = { + { type = "physical", combat = true }, + { type = "holy", combat = true }, + { type = "death", combat = true }, + { type = "fire", combat = true }, + { type = "energy", combat = true }, + { type = "ice", combat = true }, + { type = "earth", combat = true }, + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/moonspawn_blightspitter.lua b/data-global/monster/summer_update_2026/moonspawn_blightspitter.lua new file mode 100644 index 000000000..7137e7db7 --- /dev/null +++ b/data-global/monster/summer_update_2026/moonspawn_blightspitter.lua @@ -0,0 +1,129 @@ +local mType = Game.createMonsterType("Moonspawn Blightspitter") +local monster = {} + +monster.description = "a moonspawn blightspitter" +monster.experience = 6670 +monster.outfit = { + lookType = 1970, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.raceId = 2851 +monster.Bestiary = { + class = "Slime", + race = BESTY_RACE_SLIME, + toKill = 2500, + FirstUnlock = 100, + SecondUnlock = 1000, + CharmsPoints = 50, + Stars = 4, + Occurrence = 0, + Locations = "Thalassara Surroundings", +} + +monster.health = 8500 +monster.maxHealth = 8500 +monster.race = "venom" +monster.corpse = 54439 +monster.speed = 168 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, + { text = "", yell = false }, + { text = "", yell = false }, + { text = "", yell = false }, +} + +monster.loot = { + { name = "Platinum Coin", chance = 20000, maxCount = 8 }, + { name = "Mushroom Pie", chance = 9000 }, + { name = "Terra Mantle", chance = 4000 }, + { name = "Terra Legs", chance = 4000 }, + { name = "Terra Boots", chance = 4000 }, + { name = "Terra Amulet", chance = 4000 }, + { name = "Green Gem", chance = 4000 }, + { name = "Green Mushroom", chance = 4000 }, + { name = "Muck Rod", chance = 4000 }, + { name = "Moonspawn Headpiece", chance = 4000 }, + { name = "Moonstone", chance = 900 }, + { name = "Mushroom Backpack", chance = 150 }, + { name = "moonspawn blightspitter soul core", chance = 100 }, +} + +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -440 }, + { name = "combat", interval = 2000, chance = 18, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -520, radius = 4, effect = CONST_ME_GREEN_RINGS, target = false }, + { name = "combat", interval = 2000, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = -280, maxDamage = -500, range = 7, shootEffect = CONST_ANI_DEATH, effect = CONST_ME_MORTAREA, target = true }, +} + +monster.defenses = { + defense = 80, + armor = 80, + mitigation = 3.22, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = -5 }, + { type = COMBAT_ENERGYDAMAGE, percent = 15 }, + { type = COMBAT_EARTHDAMAGE, percent = 25 }, + { type = COMBAT_FIREDAMAGE, percent = -12 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = -2 }, + { type = COMBAT_DEATHDAMAGE, percent = 15 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/moonspawn_juggernaut.lua b/data-global/monster/summer_update_2026/moonspawn_juggernaut.lua new file mode 100644 index 000000000..ec6b6e411 --- /dev/null +++ b/data-global/monster/summer_update_2026/moonspawn_juggernaut.lua @@ -0,0 +1,125 @@ +local mType = Game.createMonsterType("Moonspawn Juggernaut") +local monster = {} + +monster.description = "a moonspawn juggernaut" +monster.experience = 10000 +monster.outfit = { + lookType = 1972, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.raceId = 2829 +-- TODO(bestiary): a wiki nao publica classe, dificuldade nem ocorrencia desta criatura. O +-- raceId 2829 vem do staticdata (e raceId ja registra na bestiary, ver addBestiaryList), entao +-- ela esta na bestiary; os numeros abaixo seguem os irmaos Blightspitter/Oozecrown e nao sao +-- oficiais. Occurrence 2 (raro) porque so aparece na raid de 30 em 30 minutos. +monster.Bestiary = { + class = "Slime", + race = BESTY_RACE_SLIME, + toKill = 2500, + FirstUnlock = 100, + SecondUnlock = 1000, + CharmsPoints = 50, + Stars = 4, + Occurrence = 2, + Locations = "Thalassara Surroundings", +} + +monster.health = 6000 +monster.maxHealth = 6000 +monster.race = "venom" +-- TODO(items): a wiki marca "Loot: Nenhum" e nao existe "dead moonspawn juggernaut" no +-- items.xml (a leva de corpses do commit ca43ed0d nao cobriu esta criatura, que ainda nao +-- tinha arquivo). Fica 0 - sem corpo - ate o id do cliente ser levantado. +monster.corpse = 0 +monster.speed = 160 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, + { text = "", yell = false }, + { text = "", yell = false }, + { text = "", yell = false }, +} + +-- A wiki marca "Loot: Nenhum". +monster.loot = {} + +-- TODO(balance): a wiki lista apenas as habilidades (fisico e earth) sem os valores de dano, +-- que aparecem como "()". Os numeros abaixo sao escalados pelo tier da criatura e nao sao +-- oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -520 }, + { name = "combat", interval = 2000, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -330, maxDamage = -580, radius = 4, effect = CONST_ME_GREEN_RINGS, target = false }, + { name = "combat", interval = 2500, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -550, range = 7, shootEffect = CONST_ANI_EARTH, effect = CONST_ME_CARNIPHILA, target = true }, +} + +monster.defenses = { + defense = 80, + armor = 80, + mitigation = 3.55, +} + +-- A wiki marca 100% em todos os elementos: sem resistencia nem fraqueza. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/moonspawn_oozecrown.lua b/data-global/monster/summer_update_2026/moonspawn_oozecrown.lua new file mode 100644 index 000000000..d3ed42ccd --- /dev/null +++ b/data-global/monster/summer_update_2026/moonspawn_oozecrown.lua @@ -0,0 +1,127 @@ +local mType = Game.createMonsterType("Moonspawn Oozecrown") +local monster = {} + +monster.description = "a moonspawn oozecrown" +monster.experience = 7320 +monster.outfit = { + lookType = 1971, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.raceId = 2852 +monster.Bestiary = { + class = "Slime", + race = BESTY_RACE_SLIME, + toKill = 2500, + FirstUnlock = 100, + SecondUnlock = 1000, + CharmsPoints = 50, + Stars = 4, + Occurrence = 0, + Locations = "Thalassara Surroundings", +} + +monster.health = 9200 +monster.maxHealth = 9200 +monster.race = "venom" +monster.corpse = 54443 +monster.speed = 162 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, + { text = "", yell = false }, + { text = "", yell = false }, + { text = "", yell = false }, +} + +monster.loot = { + { name = "Platinum Coin", chance = 20000, maxCount = 9 }, + { name = "Mushroom Pie", chance = 9000 }, + { name = "Moonspawn Tentacle", chance = 9000 }, + { name = "Yellow Gem", chance = 4000 }, + { name = "Wand of Decay", chance = 4000 }, + { name = "Dark Mushroom", chance = 4000 }, + { name = "Magic Sulphur", chance = 900 }, + { name = "Moonstone", chance = 900 }, + { name = "Mycological Bow", chance = 150 }, + { name = "moonspawn oozecrown soul core", chance = 100 }, +} + +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -460 }, + { name = "combat", interval = 2000, chance = 18, type = COMBAT_EARTHDAMAGE, minDamage = -310, maxDamage = -540, radius = 4, effect = CONST_ME_GREEN_RINGS, target = false }, + { name = "combat", interval = 2000, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = -290, maxDamage = -520, range = 7, shootEffect = CONST_ANI_DEATH, effect = CONST_ME_MORTAREA, target = true }, + { name = "drunk", interval = 2000, chance = 12, length = 5, spread = 0, effect = CONST_ME_SOUND_RED, target = false }, +} + +monster.defenses = { + defense = 75, + armor = 75, + mitigation = 3.45, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = -5 }, + { type = COMBAT_ENERGYDAMAGE, percent = 5 }, + { type = COMBAT_EARTHDAMAGE, percent = 18 }, + { type = COMBAT_FIREDAMAGE, percent = -8 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = -6 }, + { type = COMBAT_HOLYDAMAGE, percent = -6 }, + { type = COMBAT_DEATHDAMAGE, percent = 10 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/moonstone_excavator.lua b/data-global/monster/summer_update_2026/moonstone_excavator.lua new file mode 100644 index 000000000..30f924e02 --- /dev/null +++ b/data-global/monster/summer_update_2026/moonstone_excavator.lua @@ -0,0 +1,127 @@ +local mType = Game.createMonsterType("Moonstone Excavator") +local monster = {} + +monster.description = "a moonstone excavator" +monster.experience = 4670 +monster.outfit = { + lookType = 1952, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 1, + lookMount = 0, +} + +monster.raceId = 2857 +monster.Bestiary = { + class = "Construct", + race = BESTY_RACE_CONSTRUCT, + toKill = 2500, + FirstUnlock = 100, + SecondUnlock = 1000, + CharmsPoints = 50, + Stars = 4, + Occurrence = 0, + Locations = "Moonstone Crater", +} + +monster.health = 5100 +monster.maxHealth = 5100 +monster.race = "undead" +monster.corpse = 54342 +monster.speed = 120 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, + { text = "I must keep digging!", yell = false }, + { text = "No room for failure.", yell = false }, +} + +monster.loot = { + { name = "Small Diamond", chance = 20000, maxCount = 2 }, + { name = "Platinum Coin", chance = 20000, maxCount = 5 }, + { name = "Small Sapphire", chance = 9000, maxCount = 2 }, + { name = "Small Ruby", chance = 9000, maxCount = 2 }, + { name = "Small Emerald", chance = 9000, maxCount = 2 }, + { name = "Small Amethyst", chance = 9000, maxCount = 2 }, + { name = "Small Topaz", chance = 9000, maxCount = 2 }, + { name = "Candlestick", chance = 4000 }, + { name = "Iron Ore", chance = 4000 }, + { id = 3040, chance = 900 }, -- gold nugget + { id = 3456, chance = 900 }, -- pick + { name = "Moonstone", chance = 900 }, + { name = "moonstone excavator soul core", chance = 100 }, +} + +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -380 }, + { name = "combat", interval = 2000, chance = 16, type = COMBAT_EARTHDAMAGE, minDamage = -220, maxDamage = -420, radius = 3, effect = CONST_ME_GREEN_RINGS, target = false }, +} + +monster.defenses = { + defense = 47, + armor = 47, + mitigation = 2.09, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = -5 }, + { type = COMBAT_ENERGYDAMAGE, percent = -10 }, + { type = COMBAT_EARTHDAMAGE, percent = 80 }, + { type = COMBAT_FIREDAMAGE, percent = -10 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 15 }, + { type = COMBAT_HOLYDAMAGE, percent = 10 }, + { type = COMBAT_DEATHDAMAGE, percent = 20 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/moonstone_miner.lua b/data-global/monster/summer_update_2026/moonstone_miner.lua new file mode 100644 index 000000000..b6a71659f --- /dev/null +++ b/data-global/monster/summer_update_2026/moonstone_miner.lua @@ -0,0 +1,116 @@ +local mType = Game.createMonsterType("Moonstone Miner") +local monster = {} + +monster.description = "a moonstone miner" +-- Oficial: 0 XP. Nao entra no bestiario (por isso nao tem raceId nem monster.Bestiary). +monster.experience = 0 +-- lookType 1952 addon 3, levantado no cliente pelo usuario. E a mesma familia de outfit do +-- Cult Initiate (1952 addon 0) e do Moonstone Excavator (1952 addon 1). +monster.outfit = { + lookType = 1952, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 3, + lookMount = 0, +} + +monster.health = 16500 +monster.maxHealth = 16500 +-- TODO(items): "blood" seguindo a familia de outfit humanoide (Cult Initiate); o Moonstone +-- Excavator, que divide o lookType, esta como "undead". Confirmar qual splash aparece in-game +-- quando o corpse id for levantado. +monster.race = "blood" +-- Corpse levantado no cliente. +monster.corpse = 54674 +monster.speed = 130 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + -- "Pode ser Puxado: nao" + pushable = false, + rewardBoss = false, + illusionable = false, + -- "Empurra Objetos: sim" + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- "Nao e possivel bloquear o respawn dessa criatura" + isBlockable = false, + -- "Passa por: Fogo, Energia, Veneno" + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, +} + +-- Oficial: "Loot: Moonsilver Crystals." Sem taxa publicada - como e o unico item e o proposito +-- do monstro na luta, a chance e alta. +monster.loot = { + { name = "moonsilver crystals", chance = 100000 }, +} + +-- TODO(balance): a wiki lista Fisico e Life Drain sem valores (aparecem como "()"). Os numeros +-- abaixo sao escalados pelos 16500 HP e nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -620 }, + { name = "combat", interval = 2000, chance = 18, type = COMBAT_LIFEDRAIN, minDamage = -350, maxDamage = -600, range = 7, effect = CONST_ME_MAGIC_RED, target = true }, +} + +-- TODO(balance): defense/armor/mitigation nao sao publicados pela wiki. +monster.defenses = { + defense = 75, + armor = 72, + mitigation = 2.45, +} + +-- Oficial: Fisico 100%, Poison 0% (imunidade a Terra, abaixo), Fire 105%, Cursed 50%, +-- Electrified 107%, Dazzled 100%, Freezing 100%, Heal 100%. +-- Aqui o campo e a RESISTENCIA, ou seja percent = 100 - valor da wiki. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = -7 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = -5 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 50 }, +} + +-- Oficial: "Imunidades: Terra, Paralisia, Invisibilidade". +monster.immunities = { + { type = "earth", combat = true }, + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/moonstone_overseer.lua b/data-global/monster/summer_update_2026/moonstone_overseer.lua new file mode 100644 index 000000000..e569aeec2 --- /dev/null +++ b/data-global/monster/summer_update_2026/moonstone_overseer.lua @@ -0,0 +1,130 @@ +local mType = Game.createMonsterType("Moonstone Overseer") +local monster = {} + +monster.description = "a moonstone overseer" +monster.experience = 4920 +-- raceId/lookType oficiais do staticdata do cliente (ver docs/update-15.30-criaturas.md). +monster.outfit = { + lookType = 1956, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.raceId = 2858 +monster.Bestiary = { + class = "Construct", + race = BESTY_RACE_CONSTRUCT, + toKill = 2500, + FirstUnlock = 100, + SecondUnlock = 1000, + CharmsPoints = 50, + Stars = 4, + Occurrence = 0, + Locations = "Moonstone Crater", +} + +monster.health = 5450 +monster.maxHealth = 5450 +monster.race = "undead" +-- Corpse levantado no cliente (compartilhado com os Radiant Acolyte/Templar/Inquisitor). +monster.corpse = 54678 +monster.speed = 125 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, +} + +-- Loot da wiki (paste do usuario): Comum, Incomum, Raro. Sem taxas oficiais - as chances abaixo +-- seguem a mesma escala usada no Moonstone Excavator para as mesmas raridades. +monster.loot = { + { name = "Platinum Coin", chance = 20000, maxCount = 5 }, + { name = "Yellow Gem", chance = 9000 }, + { name = "Green Gem", chance = 9000 }, + { id = 3039, chance = 9000 }, -- red gem (nome ambiguo: 3039 e 36706) + { name = "Blue Gem", chance = 9000 }, + { name = "Plate Armor", chance = 9000 }, + { name = "Spike Sword", chance = 9000 }, + { name = "Iron Ore", chance = 900 }, + { name = "Diamond", chance = 900 }, + { name = "Moonstone", chance = 900 }, + { name = "moonstone overseer soul core", chance = 100 }, +} + +-- Oficial: as habilidades sao Fisico e **Holy** (nao Earth). TODO(balance): a wiki nao publica +-- os valores de dano - aparecem como "()". Os numeros abaixo sao escalados pelo tier da +-- criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -400 }, + { name = "combat", interval = 2000, chance = 16, type = COMBAT_HOLYDAMAGE, minDamage = -230, maxDamage = -440, radius = 3, effect = CONST_ME_HOLYDAMAGE, target = false }, +} + +-- Oficial: 45 de Armadura, 2.44% de Mitigacao. TODO(balance): `defense` nao e publicado. +monster.defenses = { + defense = 45, + armor = 45, + mitigation = 2.44, +} + +-- Oficial: Fisico 105%, Poison 70%, Fire 110%, Cursed 75%, Electrified 110%, Dazzled 85%, +-- Freezing 95%, Heal 100%. Aqui o campo e a RESISTENCIA, ou seja percent = 100 - valor da wiki. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = -5 }, + { type = COMBAT_ENERGYDAMAGE, percent = -10 }, + { type = COMBAT_EARTHDAMAGE, percent = 30 }, + { type = COMBAT_FIREDAMAGE, percent = -10 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 5 }, + { type = COMBAT_HOLYDAMAGE, percent = 15 }, + { type = COMBAT_DEATHDAMAGE, percent = 25 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/paladin_rival.lua b/data-global/monster/summer_update_2026/paladin_rival.lua new file mode 100644 index 000000000..9cfa02209 --- /dev/null +++ b/data-global/monster/summer_update_2026/paladin_rival.lua @@ -0,0 +1,93 @@ +local mType = Game.createMonsterType("Paladin Rival") +local monster = {} + +monster.description = "a paladin rival" +monster.experience = 0 +monster.outfit = { + lookType = 684, + lookHead = 114, + lookBody = 39, + lookLegs = 95, + lookFeet = 76, + lookAddons = 1, + lookMount = 0, +} + +monster.health = 30600 +monster.maxHealth = 30600 +monster.race = "blood" +monster.corpse = 6081 +monster.speed = 180 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, + health = 0, + damage = 0, + random = 0, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, +} + +monster.loot = {} + +monster.attacks = {} + +monster.defenses = { + defense = 85, + armor = 82, + mitigation = 2.6, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/petrified_fanatic.lua b/data-global/monster/summer_update_2026/petrified_fanatic.lua new file mode 100644 index 000000000..955eff2a9 --- /dev/null +++ b/data-global/monster/summer_update_2026/petrified_fanatic.lua @@ -0,0 +1,62 @@ +local mType = Game.createMonsterType("Petrified Fanatic") +local monster = {} + +monster.name = "Petrified Fanatic" +monster.description = "a petrified fanatic" +-- The experience is paid by the Elite Fanatic it came from. +monster.experience = 0 +monster.outfit = { + lookTypeEx = 54475, +} + +-- What was left of the fanatic when it turned to stone (6000 - ~4000 damage). +monster.health = 2000 +monster.maxHealth = 2000 +monster.race = "undead" +monster.corpse = 0 +-- A statue does not walk. +monster.speed = 0 +monster.manaCost = 0 + +monster.flags = { + summonable = false, + -- Inert: it is never fought, only moved. + attackable = false, + hostile = false, + convinceable = false, + -- Has to be pushable: dragging it onto an ornamented floor is the whole task. + pushable = true, + rewardBoss = false, + illusionable = false, + canPushItems = false, + canPushCreatures = false, + staticAttackChance = 0, + targetDistance = 0, + runHealth = 0, + healthHidden = false, + isBlockable = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = {} +monster.loot = {} +monster.attacks = {} + +monster.defenses = { + defense = 0, + armor = 0, + mitigation = 0, +} + +monster.elements = {} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/radiant_acolyte.lua b/data-global/monster/summer_update_2026/radiant_acolyte.lua new file mode 100644 index 000000000..836694d5a --- /dev/null +++ b/data-global/monster/summer_update_2026/radiant_acolyte.lua @@ -0,0 +1,113 @@ +local mType = Game.createMonsterType("Radiant Acolyte") +local monster = {} + +monster.description = "a radiant acolyte" +monster.experience = 29170 +monster.outfit = { + lookType = 1969, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.raceId = 2843 +monster.Bestiary = { + class = "Humanoid", + race = BESTY_RACE_HUMANOID, + toKill = 5000, + FirstUnlock = 200, + SecondUnlock = 2000, + CharmsPoints = 100, + Stars = 5, + Occurrence = 0, + Locations = "Radiant Skyhold", +} + +monster.health = 34600 +monster.maxHealth = 34600 +monster.race = "blood" +-- Corpse compartilhado com o Radiant Templar e o Radiant Inquisitor (mesma armadura desfeita). +monster.corpse = 54678 +monster.speed = 150 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.loot = { + { name = "Book of Faith", chance = 4000 }, + { name = "Blank Imbuement Scroll", chance = 900 }, + { name = "Gilded Bell", chance = 150 }, + { name = "radiant acolyte soul core", chance = 100 }, +} + +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -950 }, + { name = "combat", interval = 2000, chance = 18, type = COMBAT_ICEDAMAGE, minDamage = -600, maxDamage = -1000, radius = 4, effect = CONST_ME_ICEAREA, target = false }, + { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -500, maxDamage = -900, range = 7, shootEffect = CONST_ANI_LARGEROCK, effect = CONST_ME_HITAREA, target = true }, +} + +monster.defenses = { + defense = 95, + armor = 95, + mitigation = 4.87, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 5 }, + { type = COMBAT_ENERGYDAMAGE, percent = -5 }, + { type = COMBAT_EARTHDAMAGE, percent = -5 }, + { type = COMBAT_FIREDAMAGE, percent = 40 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 10 }, + { type = COMBAT_HOLYDAMAGE, percent = 5 }, + { type = COMBAT_DEATHDAMAGE, percent = 30 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/radiant_inquisitor.lua b/data-global/monster/summer_update_2026/radiant_inquisitor.lua new file mode 100644 index 000000000..32a24abe9 --- /dev/null +++ b/data-global/monster/summer_update_2026/radiant_inquisitor.lua @@ -0,0 +1,110 @@ +local mType = Game.createMonsterType("Radiant Inquisitor") +local monster = {} + +monster.description = "a radiant inquisitor" +monster.experience = 28730 +monster.outfit = { + lookType = 1967, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.raceId = 2847 +monster.Bestiary = { + class = "Humanoid", + race = BESTY_RACE_HUMANOID, + toKill = 5000, + FirstUnlock = 200, + SecondUnlock = 2000, + CharmsPoints = 100, + Stars = 5, + Occurrence = 0, + Locations = "Radiant Ascendancy", +} + +monster.health = 34800 +monster.maxHealth = 34800 +monster.race = "blood" +-- Corpse compartilhado com o Radiant Templar e o Radiant Inquisitor (mesma armadura desfeita). +monster.corpse = 54678 +monster.speed = 215 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.loot = { + { name = "Blue Quiver", chance = 4000 }, + { name = "Golden Belt", chance = 4000 }, + { name = "Gilded Bell", chance = 150 }, + { name = "radiant inquisitor soul core", chance = 100 }, +} + +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1000 }, +} + +monster.defenses = { + defense = 110, + armor = 110, + mitigation = 4.63, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = -10 }, + { type = COMBAT_ENERGYDAMAGE, percent = 20 }, + { type = COMBAT_EARTHDAMAGE, percent = 5 }, + { type = COMBAT_FIREDAMAGE, percent = -5 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = -10 }, + { type = COMBAT_HOLYDAMAGE, percent = 25 }, + { type = COMBAT_DEATHDAMAGE, percent = -5 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/radiant_paragon.lua b/data-global/monster/summer_update_2026/radiant_paragon.lua new file mode 100644 index 000000000..54a4cebac --- /dev/null +++ b/data-global/monster/summer_update_2026/radiant_paragon.lua @@ -0,0 +1,112 @@ +local mType = Game.createMonsterType("Radiant Paragon") +local monster = {} + +monster.description = "a radiant paragon" +monster.experience = 30780 +monster.outfit = { + lookType = 1966, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 2, + lookMount = 0, +} + +monster.raceId = 2841 +monster.Bestiary = { + class = "Humanoid", + race = BESTY_RACE_HUMANOID, + toKill = 5000, + FirstUnlock = 200, + SecondUnlock = 2000, + CharmsPoints = 100, + Stars = 5, + Occurrence = 0, + Locations = "Radiant Skyhold", +} + +monster.health = 36000 +monster.maxHealth = 36000 +monster.race = "blood" +monster.corpse = 54407 +monster.speed = 240 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.loot = { + { name = "Blue Quiver", chance = 4000 }, + { name = "Broken Arrow", chance = 4000, maxCount = 3 }, + { name = "Gilded Bell", chance = 150 }, + { name = "radiant paragon soul core", chance = 100 }, +} + +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1000 }, + { name = "combat", interval = 2000, chance = 17, type = COMBAT_FIREDAMAGE, minDamage = -650, maxDamage = -1050, radius = 4, effect = CONST_ME_FIREAREA, target = false }, + { name = "combat", interval = 2000, chance = 15, type = COMBAT_HOLYDAMAGE, minDamage = -600, maxDamage = -1000, range = 7, shootEffect = CONST_ANI_HOLY, effect = CONST_ME_HOLYDAMAGE, target = true }, +} + +monster.defenses = { + defense = 108, + armor = 108, + mitigation = 4.63, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 10 }, + { type = COMBAT_ENERGYDAMAGE, percent = -10 }, + { type = COMBAT_EARTHDAMAGE, percent = -15 }, + { type = COMBAT_FIREDAMAGE, percent = 30 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 5 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 20 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/radiant_templar.lua b/data-global/monster/summer_update_2026/radiant_templar.lua new file mode 100644 index 000000000..dc3af07e1 --- /dev/null +++ b/data-global/monster/summer_update_2026/radiant_templar.lua @@ -0,0 +1,113 @@ +local mType = Game.createMonsterType("Radiant Templar") +local monster = {} + +monster.description = "a radiant templar" +monster.experience = 30550 +monster.outfit = { + lookType = 1965, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.raceId = 2845 +monster.Bestiary = { + class = "Humanoid", + race = BESTY_RACE_HUMANOID, + toKill = 5000, + FirstUnlock = 200, + SecondUnlock = 2000, + CharmsPoints = 100, + Stars = 5, + Occurrence = 0, + Locations = "Radiant Ascendancy", +} + +monster.health = 37000 +monster.maxHealth = 37000 +monster.race = "blood" +-- Corpse compartilhado com o Radiant Templar e o Radiant Inquisitor (mesma armadura desfeita). +monster.corpse = 54678 +monster.speed = 220 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.loot = { + { name = "Ceremonial Bowl", chance = 4000 }, + { name = "Gilded Bell", chance = 150 }, + { name = "radiant templar soul core", chance = 100 }, +} + +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1050 }, + { name = "combat", interval = 2000, chance = 17, type = COMBAT_ENERGYDAMAGE, minDamage = -650, maxDamage = -1050, radius = 4, effect = CONST_ME_ENERGYAREA, target = false }, + { name = "combat", interval = 2000, chance = 15, type = COMBAT_HOLYDAMAGE, minDamage = -600, maxDamage = -1000, range = 7, shootEffect = CONST_ANI_HOLY, effect = CONST_ME_HOLYDAMAGE, target = true }, + { name = "combat", interval = 2000, chance = 12, type = COMBAT_LIFEDRAIN, minDamage = -400, maxDamage = -800, range = 7, effect = CONST_ME_MAGIC_RED, target = true }, +} + +monster.defenses = { + defense = 125, + armor = 125, + mitigation = 4.87, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 5 }, + { type = COMBAT_ENERGYDAMAGE, percent = 20 }, + { type = COMBAT_EARTHDAMAGE, percent = 5 }, + { type = COMBAT_FIREDAMAGE, percent = -10 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = -10 }, + { type = COMBAT_HOLYDAMAGE, percent = 25 }, + { type = COMBAT_DEATHDAMAGE, percent = -5 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/radiant_warden.lua b/data-global/monster/summer_update_2026/radiant_warden.lua new file mode 100644 index 000000000..d3876fe61 --- /dev/null +++ b/data-global/monster/summer_update_2026/radiant_warden.lua @@ -0,0 +1,114 @@ +local mType = Game.createMonsterType("Radiant Warden") +local monster = {} + +monster.description = "a radiant warden" +monster.experience = 31450 +monster.outfit = { + lookType = 1964, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.raceId = 2839 +monster.Bestiary = { + class = "Humanoid", + race = BESTY_RACE_HUMANOID, + toKill = 5000, + FirstUnlock = 200, + SecondUnlock = 2000, + CharmsPoints = 100, + Stars = 5, + Occurrence = 0, + Locations = "Radiant Skyhold", +} + +monster.health = 38500 +monster.maxHealth = 38500 +monster.race = "blood" +-- Corpse compartilhado com a versao Devoted (as duas tem o mesmo lookType). +monster.corpse = 54399 +monster.speed = 220 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.loot = { + { id = 860, chance = 4000 }, -- crimson sword + { name = "Tatty Robe", chance = 4000 }, + { name = "Gilded Bell", chance = 150 }, + { name = "radiant warden soul core", chance = 100 }, +} + +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1050 }, + { name = "combat", interval = 2000, chance = 17, type = COMBAT_FIREDAMAGE, minDamage = -650, maxDamage = -1050, radius = 4, effect = CONST_ME_FIREAREA, target = false }, + { name = "combat", interval = 2000, chance = 15, type = COMBAT_HOLYDAMAGE, minDamage = -600, maxDamage = -1000, range = 7, shootEffect = CONST_ANI_HOLY, effect = CONST_ME_HOLYDAMAGE, target = true }, + { name = "combat", interval = 2000, chance = 14, type = COMBAT_ICEDAMAGE, minDamage = -600, maxDamage = -980, radius = 3, effect = CONST_ME_ICEAREA, target = false }, +} + +monster.defenses = { + defense = 130, + armor = 130, + mitigation = 4.63, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 10 }, + { type = COMBAT_ENERGYDAMAGE, percent = -10 }, + { type = COMBAT_EARTHDAMAGE, percent = -5 }, + { type = COMBAT_FIREDAMAGE, percent = 30 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 10 }, + { type = COMBAT_HOLYDAMAGE, percent = -10 }, + { type = COMBAT_DEATHDAMAGE, percent = 20 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/radiant_zealot.lua b/data-global/monster/summer_update_2026/radiant_zealot.lua new file mode 100644 index 000000000..30d855bbd --- /dev/null +++ b/data-global/monster/summer_update_2026/radiant_zealot.lua @@ -0,0 +1,115 @@ +local mType = Game.createMonsterType("Radiant Zealot") +local monster = {} + +monster.description = "a radiant zealot" +monster.experience = 31160 +monster.outfit = { + lookType = 1968, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.raceId = 2849 +monster.Bestiary = { + class = "Humanoid", + race = BESTY_RACE_HUMANOID, + toKill = 5000, + FirstUnlock = 200, + SecondUnlock = 2000, + CharmsPoints = 100, + Stars = 5, + Occurrence = 0, + Locations = "Radiant Ascendancy", +} + +monster.health = 36500 +monster.maxHealth = 36500 +monster.race = "blood" +-- Corpse compartilhado com a versao Devoted (as duas tem o mesmo lookType). +monster.corpse = 54415 +monster.speed = 230 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.loot = { + { name = "Etcher", chance = 900 }, + { name = "Loose Prayer Beads", chance = 900 }, + { name = "Gilded Bell", chance = 150 }, + { name = "radiant zealot soul core", chance = 100 }, +} + +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1000 }, + { name = "combat", interval = 2000, chance = 17, type = COMBAT_ENERGYDAMAGE, minDamage = -640, maxDamage = -1040, radius = 4, effect = CONST_ME_ENERGYAREA, target = false }, + { name = "combat", interval = 2000, chance = 15, type = COMBAT_HOLYDAMAGE, minDamage = -600, maxDamage = -1000, range = 7, shootEffect = CONST_ANI_HOLY, effect = CONST_ME_HOLYDAMAGE, target = true }, + { name = "combat", interval = 2000, chance = 12, type = COMBAT_LIFEDRAIN, minDamage = -400, maxDamage = -800, range = 7, effect = CONST_ME_MAGIC_RED, target = true }, + { name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -300, maxDamage = -600, range = 7, effect = CONST_ME_MAGIC_BLUE, target = true }, +} + +monster.defenses = { + defense = 106, + armor = 106, + mitigation = 4.15, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = -15 }, + { type = COMBAT_ENERGYDAMAGE, percent = 40 }, + { type = COMBAT_EARTHDAMAGE, percent = 10 }, + { type = COMBAT_FIREDAMAGE, percent = -5 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = -5 }, + { type = COMBAT_HOLYDAMAGE, percent = 20 }, + { type = COMBAT_DEATHDAMAGE, percent = -10 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/silverfrost_sentinel.lua b/data-global/monster/summer_update_2026/silverfrost_sentinel.lua new file mode 100644 index 000000000..f1ad539d3 --- /dev/null +++ b/data-global/monster/summer_update_2026/silverfrost_sentinel.lua @@ -0,0 +1,120 @@ +local mType = Game.createMonsterType("Silverfrost Sentinel") +local monster = {} + +monster.description = "a silverfrost sentinel" +monster.experience = 8450 +monster.outfit = { + lookType = 1951, + lookHead = 81, + lookBody = 113, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.raceId = 2804 +monster.Bestiary = { + class = "Construct", + race = BESTY_RACE_CONSTRUCT, + toKill = 2500, + FirstUnlock = 100, + SecondUnlock = 1000, + CharmsPoints = 50, + Stars = 4, + Occurrence = 0, + Locations = "Asura Citadel", +} + +monster.health = 9500 +monster.maxHealth = 9500 +monster.race = "undead" +-- Reusa um corpse que ja existia (53125): o nome dele no items.xml e "dead infernoid soul", +-- entao o corpo aparece com o nome errado ate o id proprio ser levantado. +monster.corpse = 53125 +monster.speed = 140 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.loot = { + { name = "Platinum Coin", chance = 20000, maxCount = 9 }, + { name = "Small Sapphire", chance = 9000, maxCount = 3 }, + { name = "Crystal Coin", chance = 9000 }, + { name = "Glacier Mask", chance = 4000 }, + { name = "Blue Gem", chance = 4000 }, + { name = "Ice Rapier", chance = 4000 }, + { name = "Diamond Sceptre", chance = 4000 }, + { name = "Ice Shard", chance = 4000 }, + { id = 3007, chance = 900 }, -- crystal ring + { name = "silverfrost sentinel soul core", chance = 100 }, +} + +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -500 }, + { name = "combat", interval = 2000, chance = 18, type = COMBAT_ENERGYDAMAGE, minDamage = -320, maxDamage = -560, radius = 3, effect = CONST_ME_ENERGYAREA, target = false }, + { name = "combat", interval = 2000, chance = 16, type = COMBAT_ICEDAMAGE, minDamage = -340, maxDamage = -580, range = 7, shootEffect = CONST_ANI_ICE, effect = CONST_ME_ICEATTACK, target = true }, +} + +monster.defenses = { + defense = 110, + armor = 110, + mitigation = 2.99, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = -10 }, + { type = COMBAT_ENERGYDAMAGE, percent = 10 }, + { type = COMBAT_EARTHDAMAGE, percent = -10 }, + { type = COMBAT_FIREDAMAGE, percent = -5 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 15 }, + { type = COMBAT_HOLYDAMAGE, percent = 10 }, + { type = COMBAT_DEATHDAMAGE, percent = -10 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/sorcerer_rival.lua b/data-global/monster/summer_update_2026/sorcerer_rival.lua new file mode 100644 index 000000000..699aeb3e3 --- /dev/null +++ b/data-global/monster/summer_update_2026/sorcerer_rival.lua @@ -0,0 +1,104 @@ +local mType = Game.createMonsterType("Sorcerer Rival") +local monster = {} + +monster.description = "a sorcerer rival" +-- Oficial: 0 XP. Nao entra no bestiario (por isso nao tem raceId nem monster.Bestiary). +monster.experience = 0 +-- REVISAR(outfit): lookType 130 levantado no cliente pelo usuario, que ainda vai definir as +-- cores (head/body/legs/feet) e conferir addons. +monster.outfit = { + lookType = 130, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.health = 29800 +monster.maxHealth = 29800 +monster.race = "blood" +-- Corpse levantado no cliente (corpse humano generico da base). +monster.corpse = 6081 +monster.speed = 180 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + -- "Pode ser Puxado: nao" + pushable = false, + rewardBoss = false, + illusionable = false, + -- "Empurra Objetos: sim" + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- "Nao e possivel bloquear o respawn dessa criatura" + isBlockable = false, + -- "Passa por: Fogo, Energia, Veneno" + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, + { text = "EMBRACE THE LIGHT!", yell = false }, +} + +-- Oficial: "Loot: Nenhum." +monster.loot = {} + +-- Oficial: "Habilidades: Nenhuma." +monster.attacks = {} + +-- TODO(balance): defense/armor/mitigation nao sao publicados pela wiki. +monster.defenses = { + defense = 78, + armor = 75, + mitigation = 2.45, +} + +-- Oficial: 100% em absolutamente todos os tipos - nenhuma resistencia nem fraqueza. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +-- Oficial: "Imunidades: Paralisia, Invisibilidade". +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/trapped_soul.lua b/data-global/monster/summer_update_2026/trapped_soul.lua new file mode 100644 index 000000000..8d4ad3c44 --- /dev/null +++ b/data-global/monster/summer_update_2026/trapped_soul.lua @@ -0,0 +1,107 @@ +local mType = Game.createMonsterType("Trapped Soul") +local monster = {} + +monster.description = "a trapped soul" +-- Oficial: 0 XP. +monster.experience = 0 +monster.outfit = { + lookType = 1219, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +monster.health = 1450 +monster.maxHealth = 1450 +monster.race = "undead" +-- Nao deixa corpo: e uma alma, e a wiki marca "Loot: Nenhum". +monster.corpse = 0 +monster.speed = 150 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + -- "Pode ser Puxado: nao" - conduzir a alma ate o tanque e feito com exeta res, nao empurrando. + pushable = false, + rewardBoss = false, + illusionable = false, + -- "Empurra Objetos: sim" + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- "Nao e possivel bloquear o respawn dessa criatura" + isBlockable = false, + -- "Passa por: Fogo, Energia, Veneno" + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, + { text = "Your soul is becoming unstable.", yell = false }, +} + +-- Oficial: "Loot: Nenhum." +monster.loot = {} + +-- Oficial: "Habilidades: Nenhuma." A alma nao ataca - so precisa ser conduzida ou purificada. +monster.attacks = {} + +monster.defenses = { + defense = 0, + armor = 0, + mitigation = 0, +} + +-- Oficial: Dazzled (holy) 100%, Heal 100%, e 0% em todo o resto. Os 0% viram imunidade de +-- combate de verdade abaixo (m_damageImmunities), que e o que garante "so pode ser derrotado +-- por ataques de Holy". A tabela de elements fica toda em 0 porque as imunidades ja resolvem. +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = 0 }, + { type = COMBAT_EARTHDAMAGE, percent = 0 }, + { type = COMBAT_FIREDAMAGE, percent = 0 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = 0 }, + { type = COMBAT_HOLYDAMAGE, percent = 0 }, + { type = COMBAT_DEATHDAMAGE, percent = 0 }, +} + +-- Oficial: "Imunidades: Fisico, Morte, Fogo, Energia, Gelo, Terra" - tudo menos Holy. +monster.immunities = { + { type = "physical", combat = true }, + { type = "death", combat = true }, + { type = "fire", combat = true }, + { type = "energy", combat = true }, + { type = "ice", combat = true }, + { type = "earth", combat = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/true_feverbloom_asura.lua b/data-global/monster/summer_update_2026/true_feverbloom_asura.lua new file mode 100644 index 000000000..ca72adfdf --- /dev/null +++ b/data-global/monster/summer_update_2026/true_feverbloom_asura.lua @@ -0,0 +1,121 @@ +local mType = Game.createMonsterType("True Feverbloom Asura") +local monster = {} + +monster.description = "a true feverbloom asura" +monster.experience = 7850 +monster.outfit = { + lookType = 1068, + lookHead = 62, + lookBody = 61, + lookLegs = 114, + lookFeet = 15, + lookAddons = 1, + lookMount = 0, +} + +monster.raceId = 2805 +monster.Bestiary = { + class = "Demon", + race = BESTY_RACE_DEMON, + toKill = 2500, + FirstUnlock = 100, + SecondUnlock = 1000, + CharmsPoints = 50, + Stars = 4, + Occurrence = 0, + Locations = "Forbidden Gardens", +} + +monster.health = 8600 +monster.maxHealth = 8600 +monster.race = "blood" +monster.corpse = 54667 +monster.speed = 175 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.loot = { + { name = "Platinum Coin", chance = 20000, maxCount = 8 }, + { name = "Seeds", chance = 9000 }, + { name = "Demonic Essence", chance = 9000 }, + { name = "Flask of Demonic Blood", chance = 9000 }, + { name = "Golden Lotus Brooch", chance = 9000 }, + { name = "Peacock Feather Fan", chance = 9000 }, + { name = "Wild Flowers", chance = 9000 }, + { name = "Pyrophyte Seed Pod", chance = 9000 }, + { name = "Crystal Coin", chance = 4000 }, + { name = "Muck Rod", chance = 4000 }, + { name = "Oriental Shoes", chance = 4000 }, + { name = "true feverbloom asura soul core", chance = 100 }, +} + +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -480 }, + { name = "combat", interval = 2000, chance = 18, type = COMBAT_FIREDAMAGE, minDamage = -330, maxDamage = -570, radius = 4, effect = CONST_ME_FIREAREA, target = false }, + { name = "combat", interval = 2000, chance = 16, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -540, range = 7, shootEffect = CONST_ANI_EARTH, effect = CONST_ME_GREEN_RINGS, target = true }, + { name = "combat", interval = 2000, chance = 12, type = COMBAT_MANADRAIN, minDamage = -150, maxDamage = -320, range = 7, effect = CONST_ME_MAGIC_BLUE, target = true }, +} + +monster.defenses = { + defense = 90, + armor = 90, + mitigation = 3.45, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 0 }, + { type = COMBAT_ENERGYDAMAGE, percent = -5 }, + { type = COMBAT_EARTHDAMAGE, percent = 15 }, + { type = COMBAT_FIREDAMAGE, percent = 150 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = -10 }, + { type = COMBAT_HOLYDAMAGE, percent = -5 }, + { type = COMBAT_DEATHDAMAGE, percent = -10 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/monster/summer_update_2026/winged_jaracal.lua b/data-global/monster/summer_update_2026/winged_jaracal.lua new file mode 100644 index 000000000..6987eb720 --- /dev/null +++ b/data-global/monster/summer_update_2026/winged_jaracal.lua @@ -0,0 +1,126 @@ +local mType = Game.createMonsterType("Winged Jaracal") +local monster = {} + +monster.description = "a winged jaracal" +monster.experience = 7830 +monster.outfit = { + lookType = 1961, + lookHead = 113, + lookBody = 40, + lookLegs = 95, + lookFeet = 95, + lookAddons = 1, + lookMount = 0, +} + +monster.raceId = 2802 +monster.Bestiary = { + class = "Mammal", + race = BESTY_RACE_MAMMAL, + toKill = 2500, + FirstUnlock = 100, + SecondUnlock = 1000, + CharmsPoints = 50, + Stars = 4, + Occurrence = 0, + Locations = "Asura Citadel", +} + +monster.health = 8200 +monster.maxHealth = 8200 +monster.race = "blood" +monster.corpse = 54647 +monster.speed = 180 +monster.manaCost = 0 + +monster.changeTarget = { + interval = 4000, + chance = 10, +} + +monster.strategiesTarget = { + nearest = 100, +} + +monster.flags = { + summonable = false, + attackable = true, + hostile = true, + convinceable = false, + pushable = false, + rewardBoss = false, + illusionable = false, + canPushItems = true, + canPushCreatures = false, + staticAttackChance = 90, + targetDistance = 1, + runHealth = 0, + healthHidden = false, + -- a wiki marca 'nao e possivel bloquear o respawn desta criatura' + isBlockable = false, + canWalkOnEnergy = true, + canWalkOnFire = true, + canWalkOnPoison = true, + isPreyable = true, + isPreyExclusive = false, +} + +monster.light = { + level = 0, + color = 0, +} + +monster.voices = { + interval = 5000, + chance = 10, + { text = "Roarrr!", yell = false }, + { text = "Grrrr!", yell = false }, +} + +monster.loot = { + { name = "Platinum Coin", chance = 20000, maxCount = 8 }, + { name = "Strong Health Potion", chance = 9000 }, + { name = "Crystal Coin", chance = 9000 }, + { name = "Furry Club", chance = 9000 }, + { id = 3049, chance = 4000 }, -- stealth ring + { name = "Beastslayer Axe", chance = 4000 }, + { name = "Dark Shield", chance = 4000 }, + { name = "Ham", chance = 4000, maxCount = 2 }, + { name = "Catnip", chance = 4000 }, + { name = "Fur Armor", chance = 900 }, + { name = "Skullcracker Armor", chance = 150 }, + { name = "winged jaracal soul core", chance = 100 }, +} + +-- TODO(balance): a wiki nao publica os valores de dano (aparecem como "()"). +-- Os numeros abaixo sao escalados pelo tier da criatura, nao sao oficiais. +monster.attacks = { + { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -470 }, + { name = "combat", interval = 2000, chance = 16, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -540, radius = 3, effect = CONST_ME_MORTAREA, target = false }, +} + +monster.defenses = { + defense = 75, + armor = 75, + mitigation = 3.92, +} + +monster.elements = { + { type = COMBAT_PHYSICALDAMAGE, percent = 5 }, + { type = COMBAT_ENERGYDAMAGE, percent = -5 }, + { type = COMBAT_EARTHDAMAGE, percent = -5 }, + { type = COMBAT_FIREDAMAGE, percent = 15 }, + { type = COMBAT_LIFEDRAIN, percent = 0 }, + { type = COMBAT_MANADRAIN, percent = 0 }, + { type = COMBAT_DROWNDAMAGE, percent = 0 }, + { type = COMBAT_ICEDAMAGE, percent = -10 }, + { type = COMBAT_HOLYDAMAGE, percent = 10 }, + { type = COMBAT_DEATHDAMAGE, percent = 10 }, +} + +monster.immunities = { + { type = "paralyze", condition = true }, + { type = "invisible", condition = true }, +} + +mType:register(monster) diff --git a/data-global/npc/captain_corsarah.lua b/data-global/npc/captain_corsarah.lua new file mode 100644 index 000000000..bb3364b5a --- /dev/null +++ b/data-global/npc/captain_corsarah.lua @@ -0,0 +1,87 @@ +local internalNpcName = "Captain Corsarah" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 2000 +npcConfig.walkRadius = 1 + +npcConfig.outfit = { + lookType = 151, + lookHead = 40, + lookBody = 79, + lookLegs = 100, + lookFeet = 114, + lookAddons = 1, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +npcConfig.voices = { + interval = 15000, + chance = 50, + { text = "Passage to Venore? The ship is ready to sail!" }, + { text = "The next passage to Venore leaves from here." }, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +-- She stands right on the dock the supply ship arrives at (34010, 32476, 6), so she is the way +-- back. 200 gold is the official fare. +local TRAVEL_COST = 200 +local VENORE = Position(32954, 32022, 6) + +local travelKeyword = keywordHandler:addKeyword({ "venore" }, StdModule.say, { npcHandler = npcHandler, text = "Do you seek a passage to Venore for |TRAVELCOST|?", cost = TRAVEL_COST, discount = "postman" }) +travelKeyword:addChildKeyword({ "yes" }, StdModule.travel, { npcHandler = npcHandler, premium = false, cost = TRAVEL_COST, discount = "postman", destination = VENORE }) +travelKeyword:addChildKeyword({ "no" }, StdModule.say, { npcHandler = npcHandler, text = "The island keeps you a while longer, then.", reset = true }) + +keywordHandler:addKeyword({ "sail", "passage" }, StdModule.say, { npcHandler = npcHandler, text = "Do you seek a passage to {Venore}?" }) +keywordHandler:addKeyword({ "kick" }, StdModule.kick, { npcHandler = npcHandler, destination = { Position(34010, 32476, 6) } }) + +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "My name is Captain Corsarah." }) +keywordHandler:addKeyword({ "job" }, StdModule.say, { npcHandler = npcHandler, text = "I'm the captain of this sailing ship." }) +keywordHandler:addKeyword({ "ship", "route" }, StdModule.say, { npcHandler = npcHandler, text = "The ship connects Thalassara and Venore." }) + +npcHandler:setMessage(MESSAGE_GREET, "Welcome on board, |PLAYERNAME|. You want to sail to {Venore}?") +npcHandler:setMessage(MESSAGE_FAREWELL, "Good bye. Recommend us if you were satisfied with our service.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "Good bye then.") + +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("passage", "bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/death.lua b/data-global/npc/death.lua new file mode 100644 index 000000000..1e2b8c19d --- /dev/null +++ b/data-global/npc/death.lua @@ -0,0 +1,97 @@ +local internalNpcName = "Death" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 0 +npcConfig.walkRadius = 0 + +npcConfig.outfit = { + lookType = 33, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +-- Between the Lines roleplay npc (32570, 32574, 11): he only talks, he keeps no progress. +local function creatureSayCallback(npc, creature, type, message) + if not npcHandler:checkInteraction(npc, creature) then + return false + end + + local player = Player(creature) + if not player then + return false + end + + if MsgContains(message, "death") then + npcHandler:say("Indeed. But do not fear me. I am not the enemy you expect. I am a companion, a {guide}, a {transition}.", npc, creature) + elseif MsgContains(message, "guide") then + npcHandler:say({ + "I am here to give you perspective. In your journey through Tibia, you have been confronted with darkness and {loss}. ...", + "It is natural to fear death, the end of everything you know. But I am not the end. I am a {transition}.", + }, npc, creature) + elseif MsgContains(message, "transition") then + npcHandler:say({ + "To something new. Life is a dance, and death is the turn that leads us in a new direction. Every ending is a new beginning, a blank slate, a chance for change. ...", + "If you ask me the right questions, I can give you the insight you need to successfully complete your journey.", + }, npc, creature) + elseif MsgContains(message, "loss") then + npcHandler:say("That is true, I take. But I also give something back: peace. Freedom from suffering and pain. And the memory of shared love will remain in your hearts forever.", npc, creature) + elseif MsgContains(message, "acceptance") then + npcHandler:say({ + "You can accept me by embracing life. By cherishing every moment, every encounter, every experience. By knowing that everything is fleeting, and that is precisely what makes it so precious. ...", + "So hear my {advice}.", + }, npc, creature) + elseif MsgContains(message, "advice") then + npcHandler:say({ + "Live! Love! Laugh! Cry! Feel! Experience everything life has to offer with all your heart. And when your time comes, go with dignity and without fear. For I will be there to welcome you. ...", + "Now go on. Your journey is not over. And remember: death is not the end of the story. It is only a chapter. ...", + "*He turns away, but the conversation leaves you with new thoughts and a deeper understanding*", + }, npc, creature) + end + + return true +end + +npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) + +npcHandler:setMessage(MESSAGE_GREET, "Greetings, mortal! I am {Death} and I have waited here for you.") +npcHandler:setMessage(MESSAGE_FAREWELL, "Farewell, |PLAYERNAME|. We will meet again.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "We will meet again.") +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/dhira.lua b/data-global/npc/dhira.lua new file mode 100644 index 000000000..b65532573 --- /dev/null +++ b/data-global/npc/dhira.lua @@ -0,0 +1,97 @@ +local internalNpcName = "Dhira" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 2000 +npcConfig.walkRadius = 2 + +-- TODO(outfit): placeholder until the official appearance is read from the client staticdata. +npcConfig.outfit = { + lookType = 1539, + lookHead = 114, + lookBody = 96, + lookLegs = 21, + lookFeet = 115, + lookAddons = 0, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +local function creatureSayCallback(npc, creature, type, message) + if not npcHandler:checkInteraction(npc, creature) then + return false + end + + if MsgContains(message, "moon") then + npcHandler:say("Even the beavers feel it. They grow restless when the moon rises.", npc, creature) + return true + end + + if not MsgContains(message, "plant") then + return true + end + + npcHandler:say({ + "Strange things about plants? Hmm, perhaps. I spend a lot of time out here with the beavers.", + "Sometimes, despite the dangers posed by parders and jungle moas, I venture into the Sparkling Lagoon to gather special food plants for my wards.", + "And on my last visit there, just recently, I saw that some of the plants had changed. Their leaves have a strange, almost silvery sheen.", + "I'm no scholar, but I can see when something's wrong with the plants. Take a look for yourself, maybe you'll notice more than I did.", + "The affected plants I've discovered are tide veil and whisper reed. You should take a sample of each and examine them at the laboratory here in Silvertides.", + }, npc, creature) + return true +end + +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "Dhira. The beavers call me something else, but you could not pronounce it." }) +keywordHandler:addKeyword({ "job" }, StdModule.say, { npcHandler = npcHandler, text = "I look after the beavers of Silvertides." }) +keywordHandler:addKeyword({ "beaver", "beavers" }, StdModule.say, { npcHandler = npcHandler, text = "They are cleverer than most two-legs and they complain less." }) +keywordHandler:addKeyword({ "lagoon", "sparkling lagoon" }, StdModule.say, { npcHandler = npcHandler, text = "Beautiful place, if you keep an eye out for parders and jungle moas." }) +keywordHandler:addKeyword({ "tide veil", "whisper reed" }, StdModule.say, { npcHandler = npcHandler, text = "Both grow out in the lagoon, and both have that silvery sheen now. Cut a sample with a knife and take it to the laboratory." }) +keywordHandler:addKeyword({ "laboratory" }, StdModule.say, { npcHandler = npcHandler, text = "The refiner of magic in the laboratory here in Silvertides will tell you what is in those leaves." }) + +npcHandler:setMessage(MESSAGE_GREET, "Greetings, two-leg.") +npcHandler:setMessage(MESSAGE_FAREWELL, "Mind the beavers on your way out.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "Mind the beavers on your way out.") + +npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/doctor_marrow.lua b/data-global/npc/doctor_marrow.lua new file mode 100644 index 000000000..b05652ff8 --- /dev/null +++ b/data-global/npc/doctor_marrow.lua @@ -0,0 +1,105 @@ +local internalNpcName = "Doctor Marrow" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 0 +npcConfig.walkRadius = 0 + +-- Same appearance as the Doctor Marrow boss (data-global/monster/bosses/doctor_marrow.lua). +npcConfig.outfit = { + lookType = 1611, + lookHead = 57, + lookBody = 0, + lookLegs = 0, + lookFeet = 95, + lookAddons = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +local function creatureSayCallback(npc, creature, type, message) + if not npcHandler:checkInteraction(npc, creature) then + return false + end + + if MsgContains(message, "helping") then + npcHandler:say("Let us not confuse this situation with a plea. You need me just as much as I require your mobility and your talent for savage destructiveness. Our cooperation is simply the most efficient outcome.", npc, creature) + return true + end + + return true +end + +-- First conversation +keywordHandler:addKeyword({ "capable" }, StdModule.say, { npcHandler = npcHandler, text = "Now that you have arrived: Welcome to my rather opulent {prison}, my reluctant allies. You may wonder what all of this is about." }) +keywordHandler:addKeyword({ "prison" }, StdModule.say, { npcHandler = npcHandler, text = "A pity you cannot reach me. I imagine that would be tempting. I suppose I cannot deny that I had a hand in the mess we are currently facing. Unfortunate, really. But let me {explain}." }) + +-- The explanation chain +keywordHandler:addKeyword({ "explain" }, StdModule.say, { npcHandler = npcHandler, text = "Before that delightful chunk of moonrock graced Thalassara with its presence, smaller fragments had already fallen. I managed to acquire a few {samples} before the less capable minds even took interest." }) +keywordHandler:addKeyword({ "samples" }, StdModule.say, { npcHandler = npcHandler, text = "Fascinating material. Truly fascinating. The properties of moonsilver are... extensive. I have only begun to scratch the surface. Yet one aspect stood out above all: its {interaction} with the mind." }) +keywordHandler:addKeyword({ "interaction" }, StdModule.say, { npcHandler = npcHandler, text = "Moonsilver does not respond to just anyone. It requires focus. Simplicity. A certain... purity of purpose. Something most people sorely lack. I found it, however, in the minds of devoted {believers}." }) +keywordHandler:addKeyword({ "believers" }, StdModule.say, { npcHandler = npcHandler, text = "So I located a most convenient cult. Infiltrated it. Improved it. Elevated it. In time, I became its prophet and guided it toward a more useful {purpose}." }) +keywordHandler:addKeyword({ "purpose" }, StdModule.say, { npcHandler = npcHandler, text = "When the larger fragment fell upon Thalassara, I was, naturally, among the first to act. I led my followers there, secured the site, and began to harvest the moonsilver. What followed was {CREATION}!" }) +keywordHandler:addKeyword({ "creation" }, StdModule.say, { npcHandler = npcHandler, text = "Marvels. Wonders. This palace of air, moonsilver and belief you see around you was merely the beginning. I was on the verge of something truly extraordinary, until {failure} struck." }) +keywordHandler:addKeyword({ "failure" }, StdModule.say, { npcHandler = npcHandler, text = "I miscalculated one variable. The devotion of my followers. Their belief was not merely useful, it was absolute. And in that blind certainty, they achieved something I had not intended. They gave form to their very own {god}." }) +keywordHandler:addKeyword({ "god" }, StdModule.say, { npcHandler = npcHandler, text = "Yes. An actual manifestation of a being that was never meant to exist. A construct of belief, now very real, and utterly convinced that all of Tibia belongs to it. Its ambitions can only be described as {unpleasant} at best." }) +keywordHandler:addKeyword({ "unpleasant" }, StdModule.say, { npcHandler = npcHandler, text = "It has imprisoned me, deeming me 'useful'. The audacity of that insolent construct. But this is no longer about me. If this entity is not stopped, its influence will spread far beyond this place. It must be {stopped}." }) +keywordHandler:addKeyword({ "stopped" }, StdModule.say, { npcHandler = npcHandler, text = "I can guide you. Its defences are not impenetrable. You must confront its most devoted servant, the majordomo. A {traitor} of the highest order towards my cause." }) +keywordHandler:addKeyword({ "abomination" }, StdModule.say, { npcHandler = npcHandler, text = "Do not {hesitate}. This is a perversion of will and reality alike. End it, and perhaps we can still salvage what remains of this unfortunate... experiment." }) +keywordHandler:addKeyword({ "hesitate" }, StdModule.say, { npcHandler = npcHandler, text = { + "Fear not, as I blinded his perception towards your intrusion, I will shield you from his supposedly all seeing eye while you venture through his palace. God or not, he is no match for my scientific genius.", + "As you see, we will be {helping} each other for our mutual benefit.", +} }) + +-- Side keywords +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "Doctor Marrow. The name tends to precede me, usually accompanied by unflattering adjectives." }) +keywordHandler:addKeyword({ "job" }, StdModule.say, { npcHandler = npcHandler, text = "Science. Unfettered, unapologetic science." }) +keywordHandler:addKeyword({ "wayland" }, StdModule.say, { npcHandler = npcHandler, text = "My assistant. A nervous little man with an admirable talent for finding capable people." }) +keywordHandler:addKeyword({ "moonsilver" }, StdModule.say, { npcHandler = npcHandler, text = "The most promising material I have ever held, and the single worst decision I have ever made. Both statements are true." }) + +npcHandler:setMessage(MESSAGE_GREET, "Ah... Visitors. How convenient. I was beginning to wonder how long it would take until someone {capable} found their way here.") +npcHandler:setMessage(MESSAGE_FAREWELL, "Do come back once the majordomo is dealt with.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "Do come back once the majordomo is dealt with.") + +npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/g_ezkho.lua b/data-global/npc/g_ezkho.lua new file mode 100644 index 000000000..23adebcf4 --- /dev/null +++ b/data-global/npc/g_ezkho.lua @@ -0,0 +1,73 @@ +local internalNpcName = "G'Ezkho" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 2000 +npcConfig.walkRadius = 1 + +npcConfig.outfit = { + lookType = 115, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +-- TODO(text): no official transcript exists for this one yet - a roleplay NPC of Salgadora with +-- no trade. These lines are ours, written to match the town's situation after the moon fragment +-- fell. Replace them if the real dialogue shows up. +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "G'Ezkho." }) +keywordHandler:addKeyword({ "job" }, StdModule.say, { npcHandler = npcHandler, text = "I trade in what the wastes cough up. Moonsilver, mostly, when the moonspawns let me near it." }) +keywordHandler:addKeyword({ "salgadora" }, StdModule.say, { npcHandler = npcHandler, text = "What is left of it. The mayor holds it together, more or less." }) +keywordHandler:addKeyword({ "moonspawn", "moonspawns" }, StdModule.say, { npcHandler = npcHandler, text = "They come from the wastes east of here. They were not there before the sky broke." }) +keywordHandler:addKeyword({ "moonsilver" }, StdModule.say, { npcHandler = npcHandler, text = "Everyone wants it. Nobody agrees on who it belongs to. That is the whole story of this island." }) + +npcHandler:setMessage(MESSAGE_GREET, "Hello there, |PLAYERNAME|. Another one off the boat, I see.") +npcHandler:setMessage(MESSAGE_FAREWELL, "Keep your head down.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "Keep your head down.") + +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/goldro.lua b/data-global/npc/goldro.lua new file mode 100644 index 000000000..4e9643329 --- /dev/null +++ b/data-global/npc/goldro.lua @@ -0,0 +1,73 @@ +local internalNpcName = "Goldro" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 2000 +npcConfig.walkRadius = 1 + +npcConfig.outfit = { + lookType = 160, + lookHead = 39, + lookBody = 79, + lookLegs = 97, + lookFeet = 98, + lookAddons = 0, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +-- TODO(text): no official transcript exists for this one yet - a roleplay NPC of Salgadora with +-- no trade. These lines are ours, written to match the town's situation after the moon fragment +-- fell. Replace them if the real dialogue shows up. +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "Goldro." }) +keywordHandler:addKeyword({ "job" }, StdModule.say, { npcHandler = npcHandler, text = "I count what comes in and what goes out. Lately far more goes out." }) +keywordHandler:addKeyword({ "salgadora" }, StdModule.say, { npcHandler = npcHandler, text = "What is left of it. The mayor holds it together, more or less." }) +keywordHandler:addKeyword({ "moonspawn", "moonspawns" }, StdModule.say, { npcHandler = npcHandler, text = "They come from the wastes east of here. They were not there before the sky broke." }) +keywordHandler:addKeyword({ "moonsilver" }, StdModule.say, { npcHandler = npcHandler, text = "Everyone wants it. Nobody agrees on who it belongs to. That is the whole story of this island." }) + +npcHandler:setMessage(MESSAGE_GREET, "Hello there, |PLAYERNAME|. Another one off the boat, I see.") +npcHandler:setMessage(MESSAGE_FAREWELL, "Keep your head down.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "Keep your head down.") + +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/javala.lua b/data-global/npc/javala.lua new file mode 100644 index 000000000..3260bde14 --- /dev/null +++ b/data-global/npc/javala.lua @@ -0,0 +1,94 @@ +local internalNpcName = "Javala" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 0 +npcConfig.walkRadius = 0 + +-- Feverbloom asuri appearance, read from the client staticdata (true feverbloom asura, +-- raceId 2805). See docs/update-15.30-criaturas.md. +npcConfig.outfit = { + lookType = 1068, + lookHead = 114, + lookBody = 97, + lookLegs = 114, + lookFeet = 94, + lookAddons = 0, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +local function creatureSayCallback(npc, creature, type, message) + if not npcHandler:checkInteraction(npc, creature) then + return false + end + + if not MsgContains(message, "moon") then + return true + end + + npcHandler:say({ + "You have come far below the surface, little mortal. Far enough to discover things that were never meant for your eyes. You seek to enter the lower areas of this complex, don't you?", + "Where the moonsilver is extracted and where my misguided sisters conduct their experiments. The midnights and frostflowers believe they have discovered a path to power.", + "They combine the moonsilver with blood and certain plants and infuse themselves with it, hoping to bend its power to their will. Fools. They do not understand what they are awakening.", + "We, the dawnfire and {feverbloom} asuri, have watched these experiments with growing concern. Sun and fire are the true sources of might. Power drawn from the moon is unstable and corrupting.", + "If our midnight and frostflower sisters succeed, they will dominate all other asuri. That we cannot allow. And that is where you enter the story, mortal. Let's ally in this matter.", + "The entrance to the lower areas is sealed. Only a handful of keys exist but I possess one of them. If I give it to you, you will descend into the lower halls.", + "Sabotage the experiments and sever my sisters' connection to the moonsilver. Do this and the dawnfire and feverbloom asuri will consider you an ally.", + }, npc, creature) + return true +end + +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "Javala, of the dawnfire." }) +keywordHandler:addKeyword({ "feverbloom" }, StdModule.say, { npcHandler = npcHandler, text = "The feverbloom bloom in heat and fever, as we burn in sunlight. Both of us take our strength from fire, not from that cold silver light my sisters worship." }) +keywordHandler:addKeyword({ "dawnfire" }, StdModule.say, { npcHandler = npcHandler, text = "We greet the sun before it rises. That is where power comes from, mortal. Not from a dead rock in the sky." }) +keywordHandler:addKeyword({ "midnight", "frostflower" }, StdModule.say, { npcHandler = npcHandler, text = "My misguided sisters. They drink the moon and call the poisoning a gift." }) +keywordHandler:addKeyword({ "moonsilver" }, StdModule.say, { npcHandler = npcHandler, text = "Unstable, corrupting and utterly fascinating to those with no patience." }) + +npcHandler:setMessage(MESSAGE_GREET, "Greetings, little mortal.") +npcHandler:setMessage(MESSAGE_FAREWELL, "Go quietly, mortal.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "Go quietly, mortal.") + +npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/mayor_pocaro.lua b/data-global/npc/mayor_pocaro.lua new file mode 100644 index 000000000..65521fd1d --- /dev/null +++ b/data-global/npc/mayor_pocaro.lua @@ -0,0 +1,164 @@ +local internalNpcName = "Mayor Pocaro" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 2000 +npcConfig.walkRadius = 1 + +npcConfig.outfit = { + lookType = 132, + lookHead = 57, + lookBody = 63, + lookLegs = 124, + lookFeet = 70, + lookAddons = 0, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +local function creatureSayCallback(npc, creature, type, message) + if not npcHandler:checkInteraction(npc, creature) then + return false + end + + if MsgContains(message, "proving") then + npcHandler:say("Stand with us. {Help} defend this place when the next wave comes. Show us that you can be relied upon when it matters.", npc, creature) + return true + end + + if MsgContains(message, "help") then + npcHandler:say({ + "Listen well. When the creatures attack, do not hesitate. Fight, hold your ground, and return to me once it is done.", + "Only when you have proven your worth can we guarantee you a secure haven for any excursion to the {south}.", + }, npc, creature) + return true + end + + -- Official transcript: reporting back after the raid. + if MsgContains(message, "success") then + npcHandler:say({ + "You have done your part. That will not be forgotten. Very well. If you still intend to head south, I will not stand in your way.", + "I can even provide you with some information the other factions here do not have. One of our fishermen was brave, and foolish, enough to scavenge the ruins of Recifar.", + "He reported seeing suspicious, white-robed figures moving about near the fallen rock. They do not appear to belong to any of the factions here.", + "If they can somehow fend off the moonspawn, they must be quite dangerous. Perhaps you can acquire some form of disguise and infiltrate their ranks to find out what they are up to.", + }, npc, creature) + return true + end + + return true +end + +-- The story chain, in the order the keywords unlock each other (official transcript). +keywordHandler:addKeyword({ "settlement" }, StdModule.say, { npcHandler = npcHandler, text = "Salgadora. Or what remains of it, at least. Most of our people {fled} when the creatures came. Fisherfolk, families... gone. I stayed. Someone had to." }) +keywordHandler:addKeyword({ "fled" }, StdModule.say, { npcHandler = npcHandler, text = "What you see now is no longer truly ours. The {newcomers} have taken over much of it. Researchers, mercenaries, opportunists. They build their houses, but they do not belong here." }) +keywordHandler:addKeyword({ "newcomers" }, StdModule.say, { npcHandler = npcHandler, text = "They tolerate each other. Barely. Everyone watches everyone else. Alliances are temporary things in times like these. At least the fight against the {creatures} unites us all." }) +keywordHandler:addKeyword({ "creatures" }, StdModule.say, { npcHandler = npcHandler, text = "We call them moonspawn. They come in waves. Relentless. Mindless. If we falter even once, this place will be {overrun}." }) +keywordHandler:addKeyword({ "overrun" }, StdModule.say, { npcHandler = npcHandler, text = "When the alarm sounds, everyone who can hold a weapon is {expected} to do so. No exceptions." }) +keywordHandler:addKeyword({ "expected" }, StdModule.say, { npcHandler = npcHandler, text = "If you intend to involve yourself here, then start by {proving} that you are more than just another scavenger." }) +keywordHandler:addKeyword({ "south" }, StdModule.say, { npcHandler = npcHandler, text = "The south is where the {fragment} lies. Where the land itself changed. People who go there unprepared rarely return." }) +keywordHandler:addKeyword({ "fragment" }, StdModule.say, { npcHandler = npcHandler, text = "That is the largest fragment said to have fallen from the moon. All of the factions here {covet} it." }) +keywordHandler:addKeyword({ "covet" }, StdModule.say, { npcHandler = npcHandler, text = "Yet the moonspawn, and the constant distrust and sabotage among the factions, {prevent} any serious exploration." }) +keywordHandler:addKeyword({ "prevent" }, StdModule.say, { npcHandler = npcHandler, text = "Worse still, recent rumors that someone has already begun tampering with the fragment have set everyone at each other's {throats}." }) +keywordHandler:addKeyword({ "throats" }, StdModule.say, { npcHandler = npcHandler, text = "They {suspect} one another of secretly mining precious moonsilver and blindsiding the others." }) +keywordHandler:addKeyword({ "suspect" }, StdModule.say, { npcHandler = npcHandler, text = { + "I cannot tell how much of that is true, nor who might be behind it.", + "But you, as an outsider, have far more {leeway} to head south and investigate.", +} }) +keywordHandler:addKeyword({ "leeway" }, StdModule.say, { npcHandler = npcHandler, text = { + "As I said, doing so without proving your worth would be suicidal. Earn some {trust} here, fight with us, and you will be free to explore.", + "There are hazards enough along the way without paranoid factions deciding you are part of the problem.", +} }) +keywordHandler:addKeyword({ "trust" }, StdModule.say, { npcHandler = npcHandler, text = "If you are serious about heading south, then do so with a secure {base} at your back. Earn your place here first. Then we will talk about further steps." }) +keywordHandler:addKeyword({ "base" }, StdModule.say, { npcHandler = npcHandler, text = "First do your part. If you are not willing to help, stay out of the way. We have enough problems without dead heroes cluttering the streets." }) + +-- Side keywords +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "Pocaro. Mayor of Salgadora, for whatever that is still worth." }) +keywordHandler:addKeyword({ "job" }, StdModule.say, { npcHandler = npcHandler, text = "I am the mayor of Salgadora. Still in service of our {kingdom}, I guess, and for what that is worth." }) + +keywordHandler:addKeyword( + { "kingdom" }, + StdModule.say, + { npcHandler = npcHandler, text = { + "This land was not always as you see it now. Long before your kind set foot here, it was known as the Coral Kingdom of Thalassara.", + "The capital, Coralmar, stood behind {reefs} that made it unreachable from the sea. A kingdom shaped by the tides, and protected by them.", + "That is until that rock broke off, supposedly from the moon.", + } } +) +keywordHandler:addKeyword({ "reefs" }, StdModule.say, { npcHandler = npcHandler, text = { + "Even before all this, Coralmar could not be reached from the sea. The reefs would tear apart any ship that dared approach.", + "Now? If anything still lives there, it is beyond our reach.", +} }) +keywordHandler:addKeyword({ "war" }, StdModule.say, { npcHandler = npcHandler, text = { + "Their numbers grew, while ours dwindled. The cost of holding the land became too great.", + "So a {wall} was raised. Everything beyond it was abandoned.", +} }) +keywordHandler:addKeyword({ "wall" }, StdModule.say, { npcHandler = npcHandler, text = "All who were willing were evacuated on the {king}'s decree. Those who refused, well, they stayed here. Like me." }) +keywordHandler:addKeyword({ "king" }, StdModule.say, { npcHandler = npcHandler, text = { + "King {Marinho} remained in Coralmar. Or so we are told. Since the wall was sealed, no word has reached us.", + "For all we know, the capital still stands. Though it might have long since fallen.", +} }) +keywordHandler:addKeyword({ "marinho" }, StdModule.say, { npcHandler = npcHandler, text = "He is a good man. The people love him. But he listened to the wrong voices. Too many advisors, too many promises. When it mattered, he hesitated." }) +keywordHandler:addKeyword({ "salgadora" }, StdModule.say, { npcHandler = npcHandler, text = "Six generations of fishermen, and now we are a mining camp with a moon problem." }) +keywordHandler:addKeyword({ "thalassara" }, StdModule.say, { npcHandler = npcHandler, text = "The island was quiet before the sky broke. Now everyone with a ship and a shovel calls it theirs." }) +keywordHandler:addKeyword({ "moonsilver" }, StdModule.say, { npcHandler = npcHandler, text = "It pays better than fish and it kills faster than the sea. That is all I need to know about it." }) +keywordHandler:addKeyword({ "moonspawn", "moonspawns" }, StdModule.say, { npcHandler = npcHandler, text = { + "Then came the fall. A fragment of the moon struck the south. And with it, the first of the moonspawn appeared.", + "At first, they thought they could master them. Control them. There were even some successes.", +} }) +keywordHandler:addKeyword( + { "recifar" }, + StdModule.say, + { npcHandler = npcHandler, text = { + "When that rock fell from the sky, it disrupted the flow of the Rionda River. The town of Recifar, once settled along its banks, suffered severely and the surrounding land sank into swamp.", + "At first they tried irrigation and pumps, but then the moonspawn made their first appearance. In the end, the town was abandoned and lost.", + } } +) +keywordHandler:addKeyword({ "marrow" }, StdModule.say, { npcHandler = npcHandler, text = "The doctor? He came, he took, he vanished. If the cult has him, he earned it." }) + +npcHandler:setMessage(MESSAGE_GREET, "Ah, another one drawn here by the promise of moonsilver, I presume. I am the mayor of what remains of this {settlement}.") +npcHandler:setMessage(MESSAGE_FAREWELL, "Keep your head down out there.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "Keep your head down out there.") + +npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/nekaret.lua b/data-global/npc/nekaret.lua new file mode 100644 index 000000000..12e28ebeb --- /dev/null +++ b/data-global/npc/nekaret.lua @@ -0,0 +1,73 @@ +local internalNpcName = "Nekaret" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 2000 +npcConfig.walkRadius = 1 + +npcConfig.outfit = { + lookType = 65, + lookHead = 0, + lookBody = 0, + lookLegs = 0, + lookFeet = 0, + lookAddons = 0, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +-- TODO(text): no official transcript exists for this one yet - a roleplay NPC of Salgadora with +-- no trade. These lines are ours, written to match the town's situation after the moon fragment +-- fell. Replace them if the real dialogue shows up. +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "Nekaret." }) +keywordHandler:addKeyword({ "job" }, StdModule.say, { npcHandler = npcHandler, text = "I keep watch. Someone has to, with those things crawling out of the east." }) +keywordHandler:addKeyword({ "salgadora" }, StdModule.say, { npcHandler = npcHandler, text = "What is left of it. The mayor holds it together, more or less." }) +keywordHandler:addKeyword({ "moonspawn", "moonspawns" }, StdModule.say, { npcHandler = npcHandler, text = "They come from the wastes east of here. They were not there before the sky broke." }) +keywordHandler:addKeyword({ "moonsilver" }, StdModule.say, { npcHandler = npcHandler, text = "Everyone wants it. Nobody agrees on who it belongs to. That is the whole story of this island." }) + +npcHandler:setMessage(MESSAGE_GREET, "Hello there, |PLAYERNAME|. Another one off the boat, I see.") +npcHandler:setMessage(MESSAGE_FAREWELL, "Keep your head down.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "Keep your head down.") + +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/nilavarna.lua b/data-global/npc/nilavarna.lua new file mode 100644 index 000000000..e29d1ef6d --- /dev/null +++ b/data-global/npc/nilavarna.lua @@ -0,0 +1,106 @@ +local internalNpcName = "Nilavarna" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 0 +npcConfig.walkRadius = 0 + +-- TODO(outfit): placeholder until the official appearance is read from the client staticdata. +npcConfig.outfit = { + lookType = 1539, + lookHead = 57, + lookBody = 125, + lookLegs = 95, + lookFeet = 69, + lookAddons = 0, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +local function creatureSayCallback(npc, creature, type, message) + if not npcHandler:checkInteraction(npc, creature) then + return false + end + + if not (MsgContains(message, "moon") or MsgContains(message, "report")) then + return true + end + + if MsgContains(message, "report") then + npcHandler:say({ + "The yukti aren't working as they should; the plants have silvery veins and even the tides are out of balance. The sea and the land rarely speak with one voice.", + "When they do, it means something momentous has happened. Your observations point to only one conclusion: something connected to the power of the moon has fallen from the sky.", + "But speculation is not enough. We must know exactly where the light fell from the sky and what is happening there now.", + "There is someone who watches the sky above Marapur every night: the astronomer Udu, in her tower at Moonfall. If anyone has seen where the light fell, it is her.", + "Speak to her. Perhaps she can tell us where this light has touched the earth.", + }, npc, creature) + return true + end + + npcHandler:say({ + "So, my people here in Silvertides noticed it too. It is true: Recently, the sky above Marapur has shown a mysterious sign.", + "A light fell in the east, silent and silvery like a piece of the moon herself. Since then, our seers have reported unrest in the currents of magic.", + "Our yukti react ... unwillingly, you might say, as if something foreign were disturbing their flow. Nipuna will probably be able to tell you more about this.", + "Our shaman, Tarisu, is convinced he hears the sea rushing differently, and Dhira spoke of plants that have changed. Perhaps it is nothing.", + "But when the sky sends a sign, it would be foolish to ignore it. Ask my people what they have observed and then report back to me.", + "If something has truly fallen from the sky, we must know whether it is a gift or a warning.", + }, npc, creature) + return true +end + +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "Nilavarna, of the Silvertides." }) +keywordHandler:addKeyword({ "job" }, StdModule.say, { npcHandler = npcHandler, text = "I lead the nagas of these shores. The sea tells me what it wants and I listen." }) +keywordHandler:addKeyword({ "silvertides" }, StdModule.say, { npcHandler = npcHandler, text = "Our home. Where the tide meets the stone and neither one wins." }) +keywordHandler:addKeyword({ "amati" }, StdModule.say, { npcHandler = npcHandler, text = "The moon goddess. She fell once and the stars carried her back. We have not forgotten." }) +keywordHandler:addKeyword({ "tarisu" }, StdModule.say, { npcHandler = npcHandler, text = "Our shaman. He hears the tides the way you hear voices." }) +keywordHandler:addKeyword({ "dhira" }, StdModule.say, { npcHandler = npcHandler, text = "She cares for the beavers and knows the plants of the lagoon better than any scholar." }) +keywordHandler:addKeyword({ "nipuna" }, StdModule.say, { npcHandler = npcHandler, text = "She keeps the shop and works the yukti. If the magic is off, she noticed first." }) +keywordHandler:addKeyword({ "yukti" }, StdModule.say, { npcHandler = npcHandler, text = "The gestures that shape magic. Ask Nipuna, she lives by them." }) + +npcHandler:setMessage(MESSAGE_GREET, "Greetings, two-leg. What a rare sight around here.") +npcHandler:setMessage(MESSAGE_FAREWELL, "Go with the tide.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "Go with the tide.") + +npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/niral.lua b/data-global/npc/niral.lua new file mode 100644 index 000000000..753c9a0c2 --- /dev/null +++ b/data-global/npc/niral.lua @@ -0,0 +1,118 @@ +local internalNpcName = "Niral" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 0 +npcConfig.walkRadius = 0 + +-- TODO(outfit): placeholder until the official appearance is read from the client staticdata. +npcConfig.outfit = { + lookType = 1648, + lookHead = 57, + lookBody = 95, + lookLegs = 114, + lookFeet = 104, + lookAddons = 2, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +local function creatureSayCallback(npc, creature, type, message) + if not npcHandler:checkInteraction(npc, creature) then + return false + end + + if not (MsgContains(message, "moon") or MsgContains(message, "seal") or MsgContains(message, "consecrate")) then + return true + end + + -- Third conversation: consecrating the lava. + if MsgContains(message, "consecrate") then + npcHandler:say({ + "You really collected some blue lava. Well done! I will consecrate it, so that you can draw the runes. Wait a moment ... *Niral murmurs some prayers to Amati*", + "There! The blue lava is now blessed by the moon goddess herself. Pour it out carefully to draw the runes. Draw them on the floor near the larger crystal constructs.", + "The four runes are the sigil of the silent moon, the silverflow rune, the mark of the veiled night and the fallen star glyph.", + }, npc, creature) + + return true + end + + -- Second conversation: Rakesh is dead, here is how to seal the shard. + if MsgContains(message, "seal") then + npcHandler:say({ + "You have done what had to be done, I can feel it. Rakesh's suffering has ended as has the danger he posed. If you wish to stop the asuri, the solution is not to destroy.", + "The nagas would certainly not approve of any part of Amati herself being damaged. Nor would I.", + "You must seal the moon shard beneath Marapur so that the asuri can no longer extract moonsilver from it. There are magical runes that can bring this about.", + "You are already familiar with them, as we used them to save Oskayaat from the curse of uncontrolled were sickness. But this time they must be drawn using a very specific substance:", + "blue lava, consecrated by a priest or priestess of Amati. I can consecrate the lava, but you have to procure it.", + }, npc, creature) + return true + end + + -- First conversation. + npcHandler:say({ + "You carry the scent of moonsilver with you. Yes, I know about it. The disturbances have reached even Oskayaat. So the asuri draw power from a moon fragment that fell from the sky.", + "You wish to stop them and that is wise. But the asuri are not the only ones who have felt the moonsilver's call. Some among my own kind believe the moonsilver is a gift.", + "A way to strengthen the beast within. They are wrong. Power taken without balance always demands a price. One of our own has already crossed that line.", + "A werepanther by the name of Rakesh Moonfang has infused his body with moonsilver. What remains of him is no longer guided by instinct or spirit. He is out of control and dangerous.", + "If you seek my help, I ask you to deal with him first. Return to me if you have done so. I will show you how to silence the moonsilver without unleashing destruction.", + "Now go, friend. You find the entrance to Rakesh's lair one floor up, in the southern part of the temple's moon wing. And remember: The beast can be controlled, the moon cannot.", + }, npc, creature) + return true +end + +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "Niral." }) +keywordHandler:addKeyword({ "job" }, StdModule.say, { npcHandler = npcHandler, text = "I keep the balance between the beast and the person here in Oskayaat." }) +keywordHandler:addKeyword({ "rakesh" }, StdModule.say, { npcHandler = npcHandler, text = "He was one of us. Then he filled himself with moonsilver and stopped being anyone at all." }) +keywordHandler:addKeyword({ "amati" }, StdModule.say, { npcHandler = npcHandler, text = "The moon goddess. We do not worship her the way the nagas do, but we respect what she can do." }) +keywordHandler:addKeyword({ "runes" }, StdModule.say, { npcHandler = npcHandler, text = "The same runes that ended our uncontrolled were sickness. Drawn in blessed blue lava, they will silence the shard." }) +keywordHandler:addKeyword({ "blue lava" }, StdModule.say, { npcHandler = npcHandler, text = "It runs in the old volcano on the eastern coast. Take a crystal flask and wear your moon mirror, or the heat will have you." }) +keywordHandler:addKeyword({ "were sickness", "curse" }, StdModule.say, { npcHandler = npcHandler, text = "The beast can be controlled. The moon cannot. Never confuse the two." }) + +npcHandler:setMessage(MESSAGE_GREET, "Greetings, traveller!") +npcHandler:setMessage(MESSAGE_FAREWELL, "Walk in balance, traveller.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "Walk in balance, traveller.") + +npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/omar.lua b/data-global/npc/omar.lua new file mode 100644 index 000000000..b050266b7 --- /dev/null +++ b/data-global/npc/omar.lua @@ -0,0 +1,73 @@ +local internalNpcName = "Omar" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 2000 +npcConfig.walkRadius = 1 + +npcConfig.outfit = { + lookType = 146, + lookHead = 37, + lookBody = 86, + lookLegs = 77, + lookFeet = 75, + lookAddons = 3, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +-- TODO(text): no official transcript exists for this one yet - a roleplay NPC of Salgadora with +-- no trade. These lines are ours, written to match the town's situation after the moon fragment +-- fell. Replace them if the real dialogue shows up. +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "Omar." }) +keywordHandler:addKeyword({ "job" }, StdModule.say, { npcHandler = npcHandler, text = "I came for the moonsilver like everyone else. I am still here, which is more than most can say." }) +keywordHandler:addKeyword({ "salgadora" }, StdModule.say, { npcHandler = npcHandler, text = "What is left of it. The mayor holds it together, more or less." }) +keywordHandler:addKeyword({ "moonspawn", "moonspawns" }, StdModule.say, { npcHandler = npcHandler, text = "They come from the wastes east of here. They were not there before the sky broke." }) +keywordHandler:addKeyword({ "moonsilver" }, StdModule.say, { npcHandler = npcHandler, text = "Everyone wants it. Nobody agrees on who it belongs to. That is the whole story of this island." }) + +npcHandler:setMessage(MESSAGE_GREET, "Hello there, |PLAYERNAME|. Another one off the boat, I see.") +npcHandler:setMessage(MESSAGE_FAREWELL, "Keep your head down.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "Keep your head down.") + +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/pescadu.lua b/data-global/npc/pescadu.lua new file mode 100644 index 000000000..86bbb8f76 --- /dev/null +++ b/data-global/npc/pescadu.lua @@ -0,0 +1,84 @@ +local internalNpcName = "Pescadu" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 2000 +npcConfig.walkRadius = 1 + +npcConfig.outfit = { + lookType = 153, + lookHead = 76, + lookBody = 76, + lookLegs = 116, + lookFeet = 95, + lookAddons = 3, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +npcConfig.voices = { + interval = 15000, + chance = 50, + { text = "All those worries." }, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +-- He has exactly one line and it is a brush-off: he answers anything with the same refusal, +-- so there are no keywords to register. +local REFUSAL = "I'm just a fisherman. I want no trouble. Please, leave me alone." + +local function creatureSayCallback(npc, creature, type, message) + if not npcHandler:checkInteraction(npc, creature) then + return false + end + + npcHandler:say(REFUSAL, npc, creature) + return true +end + +npcHandler:setMessage(MESSAGE_GREET, REFUSAL) +npcHandler:setMessage(MESSAGE_FAREWELL, REFUSAL) +npcHandler:setMessage(MESSAGE_WALKAWAY, REFUSAL) + +npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/saraki.lua b/data-global/npc/saraki.lua new file mode 100644 index 000000000..4ba853b86 --- /dev/null +++ b/data-global/npc/saraki.lua @@ -0,0 +1,104 @@ +local internalNpcName = "Saraki" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 0 +npcConfig.walkRadius = 0 + +-- TODO(outfit): placeholder until the official appearance is read from the client staticdata. +npcConfig.outfit = { + lookType = 1543, + lookHead = 114, + lookBody = 113, + lookLegs = 0, + lookFeet = 114, + lookAddons = 0, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +local function creatureSayCallback(npc, creature, type, message) + if not npcHandler:checkInteraction(npc, creature) then + return false + end + + if not (MsgContains(message, "moon") or MsgContains(message, "report")) then + return true + end + + if MsgContains(message, "report") then + npcHandler:say({ + "Interesting. The yukti are behaving unpredictably, and on top of that there are silver veins in the plants and shifts in the tides. This is no coincidence.", + "Such a change does not arise out of nowhere. A new source of power must have appeared in Marapur. If anyone has seen exactly where the light fell from the sky, it has to be Udu.", + "Our astronomer observes the movements of the stars every night from her tower. She will know where the light came down. Go and ask her about it.", + "If we know where this light touched the earth, we can hopefully finally understand what we are dealing with.", + }, npc, creature) + return true + end + + npcHandler:say({ + "So, my people here in Moonfall noticed it too. It is true: Several nights ago, our watchmen saw a pale light descend in the east, like a second moon falling from the sky.", + "Since then, my people have reported strange occurrences on our islands. Our mages say that their yukti no longer respond as reliably as before.", + "Sundara may be able to tell you more about this. And the coastal nagas down in Silvertides report changes in the plants and claim that the tides are behaving unusually.", + "Tarisu, the shaman of Silvertides, may know more about this. Perhaps it is just coincidence. Perhaps not. But I prefer to have certainty.", + "Speak to Sundara here in Moonfall and to Tarisu down in Silvertides and ask them about the yukti, the tides and the changed plants.", + "Listen to what they have observed and see if there is more to these rumours than meets the eye. Find out what has happened and then return to me. We need to know what we are dealing with.", + }, npc, creature) + return true +end + +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "I am Saraki, maharani of Moonfall." }) +keywordHandler:addKeyword({ "job" }, StdModule.say, { npcHandler = npcHandler, text = "I rule Moonfall and I watch over the peace of my people." }) +keywordHandler:addKeyword({ "moonfall" }, StdModule.say, { npcHandler = npcHandler, text = "Moonfall is where the goddess touched the world. We have guarded this place ever since." }) +keywordHandler:addKeyword({ "amati" }, StdModule.say, { npcHandler = npcHandler, text = "The Moon Goddess fell upon this island long ago, and the stars themselves descended to carry her home." }) +keywordHandler:addKeyword({ "udu" }, StdModule.say, { npcHandler = npcHandler, text = "Our astronomer. She sleeps by day and argues with the sky by night." }) +keywordHandler:addKeyword({ "sundara" }, StdModule.say, { npcHandler = npcHandler, text = "She keeps the potion shop here in Moonfall and knows the yukti better than anyone." }) +keywordHandler:addKeyword({ "yukti" }, StdModule.say, { npcHandler = npcHandler, text = "Our magic. Ask Sundara about it, she will explain it far better than I could." }) + +npcHandler:setMessage(MESSAGE_GREET, "Greetings, traveller. May the Moon Goddess bless you.") +npcHandler:setMessage(MESSAGE_FAREWELL, "May the Moon Goddess light your path.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "May the Moon Goddess light your path.") + +npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/sharai.lua b/data-global/npc/sharai.lua new file mode 100644 index 000000000..5b99390ce --- /dev/null +++ b/data-global/npc/sharai.lua @@ -0,0 +1,104 @@ +local internalNpcName = "Sharai" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 0 +npcConfig.walkRadius = 0 + +-- TODO(outfit): placeholder until the official appearance is read from the client staticdata. +npcConfig.outfit = { + lookType = 1961, + lookHead = 19, + lookBody = 0, + lookLegs = 76, + lookFeet = 8, + lookAddons = 3, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +local function creatureSayCallback(npc, creature, type, message) + if not npcHandler:checkInteraction(npc, creature) then + return false + end + + if not (MsgContains(message, "moon") or MsgContains(message, "machines")) then + return true + end + + -- Second conversation: what to do about the machines. + if MsgContains(message, "machines") then + npcHandler:say({ + "The machines you found are not simple constructs. They are fusing moonsilver and magic. Breaking them blindly would release the power they contain in an uncontrolled way.", + "Instead, you should try to interrupt the flow of energy between the moon shard and the devices. To do this, you would probably need to contain or seal the power of the moonsilver in some way.", + "When it comes to understanding and controlling the powers of the moon, particularly her destructive and dangerous aspects, you should turn to the inhabitants of Oskayaat.", + "They have brought the were sickness under control. They may well be able to offer advice on this matter too.", + }, npc, creature) + return true + end + + -- First conversation: only once the crater has been found. + npcHandler:say({ + "I see, you are searching for the scar left upon Tibia's skin by the falling light. I saw how it happened.", + "A few nights ago, a fragment broke away from the moon and fell into the sea, like a piece of silent light. It came down right here. But you are not the only one who has heard this stone's call.", + "Something is stirring down there, something dangerous. Deep beneath this place lies an ancient complex. Once its halls towered above the waves, but the sea is patient.", + "Century after century, it rose higher until the walls were submerged. If you wish to descend and take a closer look, you won't find a way here, near the crater.", + "Look further south, near the coast. There lies a pile of large stones. Hidden beneath them is an ancient tunnel leading into the complex.", + "You will easily recognise the stones: Those who now claim the place have painted them with silver moon runes.", + }, npc, creature) + return true +end + +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "Sharai." }) +keywordHandler:addKeyword({ "job" }, StdModule.say, { npcHandler = npcHandler, text = "I watch this stretch of coast. Lately it has been giving me plenty to watch." }) +keywordHandler:addKeyword({ "complex", "citadel" }, StdModule.say, { npcHandler = npcHandler, text = "An asura complex, drowned centuries ago. The sea took it slowly, wall by wall." }) +keywordHandler:addKeyword({ "asura", "asuri" }, StdModule.say, { npcHandler = npcHandler, text = "They claim the place now. Not all of them agree on what to do with it, which is the only good news." }) +keywordHandler:addKeyword({ "oskayaat" }, StdModule.say, { npcHandler = npcHandler, text = "They learned to live with the moon's darker face. If anyone can seal that shard, it is them." }) + +npcHandler:setMessage(MESSAGE_GREET, "Greetings, two-leg.") +npcHandler:setMessage(MESSAGE_FAREWELL, "The sea remembers everything, two-leg.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "The sea remembers everything, two-leg.") + +npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/skullfrost.lua b/data-global/npc/skullfrost.lua new file mode 100644 index 000000000..857738ba6 --- /dev/null +++ b/data-global/npc/skullfrost.lua @@ -0,0 +1,51 @@ +local internalNpcName = "Skullfrost" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 0 +npcConfig.walkRadius = 2 + +npcConfig.outfit = { + lookType = 991, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/tarisu.lua b/data-global/npc/tarisu.lua new file mode 100644 index 000000000..415de1923 --- /dev/null +++ b/data-global/npc/tarisu.lua @@ -0,0 +1,89 @@ +local internalNpcName = "Tarisu" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 2000 +npcConfig.walkRadius = 1 + +-- TODO(outfit): placeholder until the official appearance is read from the client staticdata. +npcConfig.outfit = { + lookType = 1539, + lookHead = 114, + lookBody = 124, + lookLegs = 114, + lookFeet = 51, + lookAddons = 0, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +local function creatureSayCallback(npc, creature, type, message) + if not npcHandler:checkInteraction(npc, creature) then + return false + end + + if not MsgContains(message, "tides") then + return true + end + + npcHandler:say({ + "It's possible that something has disturbed the tides. I'm not sure what it could be. But it must be very powerful to cause something like this. Take this shell gauge.", + "Use it at our three tide markers along the coast of the Sparkling Lagoon and the Emerald Gardens. Look out for any irregularities.", + "If the tides really are disturbed, the instrument will show it.", + }, npc, creature) + return true +end + +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "Tarisu, shaman of Silvertides." }) +keywordHandler:addKeyword({ "job" }, StdModule.say, { npcHandler = npcHandler, text = "I listen to the sea and tell my people what it says." }) +keywordHandler:addKeyword({ "sea", "ocean" }, StdModule.say, { npcHandler = npcHandler, text = "The sea has one voice for every hour of the day. Lately one of them is a stranger." }) +keywordHandler:addKeyword({ "amati" }, StdModule.say, { npcHandler = npcHandler, text = "The moon pulls the water. When the moon is troubled, so is the tide." }) +keywordHandler:addKeyword({ "marker", "markers" }, StdModule.say, { npcHandler = npcHandler, text = "Three stones along the coast, set by my grandmother's grandmother. They have measured the water ever since." }) + +npcHandler:setMessage(MESSAGE_GREET, "May the tides always guide you safely.") +npcHandler:setMessage(MESSAGE_FAREWELL, "May the tides always guide you safely.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "May the tides always guide you safely.") + +npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/taya.lua b/data-global/npc/taya.lua new file mode 100644 index 000000000..83cf031d7 --- /dev/null +++ b/data-global/npc/taya.lua @@ -0,0 +1,83 @@ +local internalNpcName = "Taya" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 2000 +npcConfig.walkRadius = 2 + +-- Ninev's outfit, with Taya's own colours as seen in game. +npcConfig.outfit = { + lookType = 1199, + lookHead = 114, + lookBody = 0, + lookLegs = 125, + lookFeet = 98, + lookAddons = 0, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +-- The oracle mission of the Kilmaresh questline is not implemented, so she only talks about it. +keywordHandler:addKeyword({ "oracle" }, StdModule.say, { + npcHandler = npcHandler, + text = { + "Have you ever heard of the Circle of the Midnight Flame? They are an order of seers and prophets. Since I was a little girl it was my greatest dream to join them. ...", + "Sadly, I was not born with the gift of true seeing. But I firmly believe there is a way. I heard stories about an artefact that can grant the power of seeing.", + }, +}) +keywordHandler:addKeyword({ "midnight flame" }, StdModule.say, { + npcHandler = npcHandler, + text = "The Circle of the Midnight Flame is an order of seers and prophets. One day I will be one of them.", +}) +keywordHandler:addKeyword({ "artefact" }, StdModule.say, { + npcHandler = npcHandler, + text = "They say it is called the Eye of Suon. Ask Narsai in Issavi about it, I guess she knows more.", +}) +keywordHandler:addKeyword({ "job" }, StdModule.say, { + npcHandler = npcHandler, + text = "I tend the sheep here in the steppe, but my heart belongs to the stars.", +}) + +npcHandler:setMessage(MESSAGE_GREET, "Suon's blessing!") +npcHandler:setMessage(MESSAGE_FAREWELL, "Suon be praised.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "Well, bye then.") + +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/thorim.lua b/data-global/npc/thorim.lua new file mode 100644 index 000000000..3591d6bef --- /dev/null +++ b/data-global/npc/thorim.lua @@ -0,0 +1,83 @@ +local internalNpcName = "Thorim" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 2000 +npcConfig.walkRadius = 1 + +npcConfig.outfit = { + lookType = 143, + lookHead = 97, + lookBody = 95, + lookLegs = 58, + lookFeet = 38, + lookAddons = 1, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +npcConfig.voices = { + interval = 15000, + chance = 50, + { text = "This place is rotten." }, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +-- Same as Pescadu: one line, a brush-off, and nothing else to say. +local REFUSAL = "Go bother someone else. I have no patience for spies." + +local function creatureSayCallback(npc, creature, type, message) + if not npcHandler:checkInteraction(npc, creature) then + return false + end + + npcHandler:say(REFUSAL, npc, creature) + return true +end + +npcHandler:setMessage(MESSAGE_GREET, REFUSAL) +npcHandler:setMessage(MESSAGE_FAREWELL, REFUSAL) +npcHandler:setMessage(MESSAGE_WALKAWAY, REFUSAL) + +npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/udu.lua b/data-global/npc/udu.lua new file mode 100644 index 000000000..b0fde760e --- /dev/null +++ b/data-global/npc/udu.lua @@ -0,0 +1,93 @@ +local internalNpcName = "Udu" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 0 +npcConfig.walkRadius = 0 + +-- TODO(outfit): placeholder until the official appearance is read from the client staticdata. +npcConfig.outfit = { + lookType = 1538, + lookHead = 114, + lookBody = 95, + lookLegs = 0, + lookFeet = 76, + lookAddons = 0, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +local function creatureSayCallback(npc, creature, type, message) + if not npcHandler:checkInteraction(npc, creature) then + return false + end + + if not MsgContains(message, "moon") then + return true + end + + npcHandler:say({ + "The light? Ha! I was wondering when someone would finally ask about it. Most nagas just observe the water.", + "But when something happens in the sky, they only notice it once the world below has already been thrown off balance. A few nights ago, I was watching the eastern sky.", + "Everything was calm ... until suddenly a glistening streak split the darkness. Not like a shooting star. No, much brighter. But also much slower.", + "It seemed to be breaking away from the moon herself. A glowing fragment trailing a long silver tail behind it, like liquid moonlight. It fell into the sea east of Marapur, at the Emerald Gardens.", + "I even saw the moment of impact: a brief flash, then nothing but mist over the water.", + "So if you're looking for a source of your strange tides, altered plants and nervous yukti, that's exactly where I would start. Something from the sky now lies off our coast.", + "And if my instincts are correct, this fragment carries within it a part of the moon's power.", + }, npc, creature) + return true +end + +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "Udu. Astronomer, insomniac, and the only one here who looks up." }) +keywordHandler:addKeyword({ "job" }, StdModule.say, { npcHandler = npcHandler, text = "I watch the sky above Marapur every night and write down what it does." }) +keywordHandler:addKeyword({ "sky", "stars" }, StdModule.say, { npcHandler = npcHandler, text = "The stars are reliable. It is everything else that keeps surprising me." }) +keywordHandler:addKeyword({ "emerald gardens" }, StdModule.say, { npcHandler = npcHandler, text = "East of Marapur, out where the water goes green. That is where it came down." }) +keywordHandler:addKeyword({ "amati" }, StdModule.say, { npcHandler = npcHandler, text = "Whatever the priests say, something tore loose from her that night." }) + +npcHandler:setMessage(MESSAGE_GREET, "Greetings, two-leg.") +npcHandler:setMessage(MESSAGE_FAREWELL, "Mind the sky once in a while.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "Mind the sky once in a while.") + +npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/uzon_back.lua b/data-global/npc/uzon_back.lua new file mode 100644 index 000000000..fc49444d3 --- /dev/null +++ b/data-global/npc/uzon_back.lua @@ -0,0 +1,87 @@ +local internalNpcName = "Uzon" +local npcType = Game.createNpcType("Uzon Back") +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 2000 +npcConfig.walkRadius = 2 + +npcConfig.outfit = { + lookType = 130, + lookHead = 95, + lookBody = 4, + lookLegs = 17, + lookFeet = 95, + lookAddons = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +npcConfig.voices = { + interval = 15000, + chance = 50, + { text = "Feel the wind in your hair during one of my carpet rides!" }, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +-- Travel +local TheNewFrontier = Storage.Quest.U8_54.TheNewFrontier +local function addTravelKeyword(keyword, text, cost, destination, condition, action) + if condition then + keywordHandler:addKeyword({ keyword }, StdModule.say, { npcHandler = npcHandler, text = "Never heard about a place like this." }, condition) + end + + local travelKeyword = keywordHandler:addKeyword({ keyword }, StdModule.say, { npcHandler = npcHandler, text = text, cost = cost, discount = "postman" }) + travelKeyword:addChildKeyword({ "yes" }, StdModule.travel, { npcHandler = npcHandler, premium = false, text = "Hold on!", cost = cost, discount = "postman", destination = destination }, nil, action) + travelKeyword:addChildKeyword({ "no" }, StdModule.say, { npcHandler = npcHandler, text = "You shouldn't miss the experience.", reset = true }) +end + +addTravelKeyword("passage", "Can we finally leave this cursed place?", 60, Position(32535, 31837, 4)) + +-- Basic +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "I am known as Uzon Ibn Kalith." }) +keywordHandler:addKeyword({ "fly" }, StdModule.say, { npcHandler = npcHandler, text = "I transport travellers to the continent of Darama for a small fee. So many want to see the wonders of the desert and learn the secrets of Darama." }) +keywordHandler:addKeyword({ "new" }, StdModule.say, { npcHandler = npcHandler, text = "I heard too many news to recall them all." }) +keywordHandler:addKeyword({ "rumors" }, StdModule.say, { npcHandler = npcHandler, text = "I heard too many news to recall them all." }) +keywordHandler:addKeyword({ "time" }, StdModule.say, { npcHandler = npcHandler, text = "It's 3:42 pm right now. The next flight is scheduled soon." }) + +npcHandler:setMessage(MESSAGE_GREET, "Daraman's blessings, traveller |PLAYERNAME|.") +npcHandler:setMessage(MESSAGE_FAREWELL, "Daraman's blessings") +npcHandler:setMessage(MESSAGE_WALKAWAY, "Daraman's blessings") + +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/wayland_smythers.lua b/data-global/npc/wayland_smythers.lua new file mode 100644 index 000000000..ce25ef72f --- /dev/null +++ b/data-global/npc/wayland_smythers.lua @@ -0,0 +1,128 @@ +local internalNpcName = "Wayland Smythers" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 0 +npcConfig.walkRadius = 0 + +npcConfig.outfit = { + lookType = 133, + lookHead = 37, + lookBody = 0, + lookLegs = 76, + lookFeet = 105, + lookAddons = 0, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +local function creatureSayCallback(npc, creature, type, message) + if not npcHandler:checkInteraction(npc, creature) then + return false + end + + if MsgContains(message, "further") then + npcHandler:say({ + "I ask much of you, I know. But this is no ordinary danger. If this is not stopped, all of Tibia may suffer.", + "I cannot tell you more. Will you help? {yes} or {no}?", + }, npc, creature) + return true + end + + -- Second chain: the details of the infiltration. + if MsgContains(message, "infiltration") then + npcHandler:say({ + "I will grant you access to the storehouse where the supply ships for Thalassara are loaded. You will have to disguise yourself as a cargo crate.", + "Then you have to avoid the guards and reach the loading area to get stowed away on the next supply ship. Once in Thalassara you can drop the pretense and confront them with the fact that their secrecy has been compromised.", + "Most likely they won't outright kill you as you are a hero of renown. So some diplomacy and signs of good will might be required.", + "From there, travel to the moonstone formation in the south and find a way to infiltrate the cultists' stronghold and rendezvous with the good doctor.", + "Are you ready to sneak through the storehouse? {Yes} or {no}?", + }, npc, creature) + return true + end + + return true +end + +-- The story chain, in the order the keywords unlock each other. +keywordHandler:addKeyword({ "danger" }, StdModule.say, { npcHandler = npcHandler, text = "I am but a humble messenger, sent by a scientist in desperate need. Please, {hear} me out. I have no intention to deceive you." }) +keywordHandler:addKeyword({ "hear" }, StdModule.say, { npcHandler = npcHandler, text = "The one who sent me is none other than Doctor {Marrow}. I know his name carries a certain weight, so to speak. Yet what he faces now threatens far more than his reputation." }) +keywordHandler:addKeyword({ "marrow" }, StdModule.say, { npcHandler = npcHandler, text = "You may have noticed the unrest of the spheres. Their harmony has been disturbed for some time, and a recent {spherequake} has even shaken the moon itself." }) +keywordHandler:addKeyword({ "spherequake" }, StdModule.say, { npcHandler = npcHandler, text = "Fragments of the moon have fallen upon Tibia. Not mere stone, but something far more peculiar. Within them lies a substance known as {moonsilver}." }) +keywordHandler:addKeyword({ "moonsilver" }, StdModule.say, { npcHandler = npcHandler, text = "A metal of strange and unsettling properties. It hums with power not meant for this world. Naturally, many factions seek to claim it. A particularly large fragment lies on the island of {Thalassara}." }) +keywordHandler:addKeyword({ "thalassara" }, StdModule.say, { npcHandler = npcHandler, text = "They flock there like vultures, blinded by greed. My mentor, however, was less restrained by organisational formalities and secured a modest {headstart}." }) +keywordHandler:addKeyword({ "headstart" }, StdModule.say, { npcHandler = npcHandler, text = "And in doing so, he uncovered something dreadful. The moonsilver is not merely a resource to be claimed. Its presence coincides with something that has taken form. Something that should not exist. That is the {threat} we are facing." }) +keywordHandler:addKeyword({ "threat" }, StdModule.say, { npcHandler = npcHandler, text = "The others do not see it. They quarrel, scheme and sabotage one another, deaf to warnings. And Doctor Marrow, well, his {reputation} does him no favors." }) +keywordHandler:addKeyword({ "reputation" }, StdModule.say, { npcHandler = npcHandler, text = "Call him erratic, call him dangerous, call him what you will. I call him right. This time, your path and his will {align}." }) +keywordHandler:addKeyword({ "align" }, StdModule.say, { npcHandler = npcHandler, text = "He has been taken. A cunning and malevolent {entity} holds him captive. It grows stronger with each passing day, feeding on something I dare not name." }) +keywordHandler:addKeyword({ "entity" }, StdModule.say, { npcHandler = npcHandler, text = "If left unchecked, it will not stop at the island. You must {find} Doctor Marrow and free him. Only he understands how this horror may be undone." }) +keywordHandler:addKeyword({ "find" }, StdModule.say, { npcHandler = npcHandler, text = "I can arrange passage for you. Quietly. As a stowaway bound for Thalassara. Once there, you must earn the trust, or at least the tolerance, of the factions present. Then you can safely {proceed}." }) +keywordHandler:addKeyword({ "proceed" }, StdModule.say, { npcHandler = npcHandler, text = "Head south, where the fallen fragment scarred the land. The air itself feels wrong there. You will encounter the servants of the one who keeps the doctor {captive}." }) +keywordHandler:addKeyword({ "captive" }, StdModule.say, { npcHandler = npcHandler, text = "They will not welcome you. You must take from them what you need to breach their {stronghold}. Subtlety is optional. Effectiveness is not." }) +keywordHandler:addKeyword({ "stronghold" }, StdModule.say, { npcHandler = npcHandler, text = "Within, you will find the doctor. Free him, and he will guide you {further}. He has seen things. Learned things." }) + +-- Side keywords +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "Wayland Smythers, in service of science." }) +keywordHandler:addKeyword({ "job" }, StdModule.say, { npcHandler = npcHandler, text = "I am an assistant. A messenger. A man who carries other men's brilliance from one place to another without dropping it." }) +keywordHandler:addKeyword({ "cult", "cultists" }, StdModule.say, { npcHandler = npcHandler, text = "White robes, empty eyes and absolute conviction. A dreadful combination in any century." }) +keywordHandler:addKeyword({ "moon" }, StdModule.say, { npcHandler = npcHandler, text = "It used to be a comfort in the night sky. Now a piece of it sits on Thalassara, humming." }) + +keywordHandler:addKeyword({ "forge" }, StdModule.say, { npcHandler = npcHandler, text = "A remarkable apparatus. The moonsilver here does not merely endure changing intent, it responds to directed intent. Doctor Marrow understood that long before anyone else did." }) + +keywordHandler:addKeyword({ "craft" }, StdModule.say, { npcHandler = npcHandler, text = { + "If you have the ingredients, I can channel the power of this place into swords, axes, clubs, bows, crossbows, wands, rods and katars.", + "But please know that this is only possible for unfused equipment that has not been treated at the Exaltation Forge.", +} }) + +keywordHandler:addKeyword({ "outfit" }, StdModule.say, { npcHandler = npcHandler, text = { + "If you have collected enough radiant attire scraps, I can arrange the creation of an Illuminated Warrior for you.", + "The full outfit requires 2500 scraps. Each addon requires 1250 more. Are you interested in the {basic} outfit, the {insignia}, or the {halo} helmet?", +} }) + +npcHandler:setMessage(MESSAGE_GREET, "Ah, a visitor. Allow me to introduce myself. Wayland Smythers, in service of science. I am here in search of esteemed heroes, such as yourself, to avert a grave {danger}.") +npcHandler:setMessage(MESSAGE_FAREWELL, "Farewell, and do be careful.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "Farewell, and do be careful.") + +npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/npc/zofia_bolter.lua b/data-global/npc/zofia_bolter.lua new file mode 100644 index 000000000..4ec30763f --- /dev/null +++ b/data-global/npc/zofia_bolter.lua @@ -0,0 +1,73 @@ +local internalNpcName = "Zofia Bolter" +local npcType = Game.createNpcType(internalNpcName) +local npcConfig = {} + +npcConfig.name = internalNpcName +npcConfig.description = internalNpcName + +npcConfig.health = 100 +npcConfig.maxHealth = npcConfig.health +npcConfig.walkInterval = 2000 +npcConfig.walkRadius = 1 + +npcConfig.outfit = { + lookType = 140, + lookHead = 50, + lookBody = 61, + lookLegs = 50, + lookFeet = 76, + lookAddons = 3, + lookMount = 0, +} + +npcConfig.flags = { + floorchange = false, +} + +local keywordHandler = KeywordHandler:new() +local npcHandler = NpcHandler:new(keywordHandler) + +npcType.onThink = function(npc, interval) + npcHandler:onThink(npc, interval) +end + +npcType.onAppear = function(npc, creature) + npcHandler:onAppear(npc, creature) +end + +npcType.onDisappear = function(npc, creature) + npcHandler:onDisappear(npc, creature) +end + +npcType.onMove = function(npc, creature, fromPosition, toPosition) + npcHandler:onMove(npc, creature, fromPosition, toPosition) +end + +npcType.onSay = function(npc, creature, type, message) + npcHandler:onSay(npc, creature, type, message) +end + +npcType.onCloseChannel = function(npc, creature) + npcHandler:onCloseChannel(npc, creature) +end + +-- TODO(text): no official transcript exists for this one yet - a roleplay NPC of Salgadora with +-- no trade. These lines are ours, written to match the town's situation after the moon fragment +-- fell. Replace them if the real dialogue shows up. +keywordHandler:addKeyword({ "name" }, StdModule.say, { npcHandler = npcHandler, text = "Zofia Bolter." }) +keywordHandler:addKeyword({ "job" }, StdModule.say, { npcHandler = npcHandler, text = "I hunt moonspawns. It pays badly and I am very good at it." }) +keywordHandler:addKeyword({ "salgadora" }, StdModule.say, { npcHandler = npcHandler, text = "What is left of it. The mayor holds it together, more or less." }) +keywordHandler:addKeyword({ "moonspawn", "moonspawns" }, StdModule.say, { npcHandler = npcHandler, text = "They come from the wastes east of here. They were not there before the sky broke." }) +keywordHandler:addKeyword({ "moonsilver" }, StdModule.say, { npcHandler = npcHandler, text = "Everyone wants it. Nobody agrees on who it belongs to. That is the whole story of this island." }) + +npcHandler:setMessage(MESSAGE_GREET, "Hello there, |PLAYERNAME|. Another one off the boat, I see.") +npcHandler:setMessage(MESSAGE_FAREWELL, "Keep your head down.") +npcHandler:setMessage(MESSAGE_WALKAWAY, "Keep your head down.") + +npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true) + +-- Dialog options (interactive icons in the NPC conversation window) +npcType:addDialogOptions("bye") + +-- npcType registering the npcConfig table +npcType:register(npcConfig) diff --git a/data-global/scripts/custom/echo_warden/echo_warden_portal.lua b/data-global/scripts/custom/echo_warden/echo_warden_portal.lua new file mode 100644 index 000000000..60cc68700 --- /dev/null +++ b/data-global/scripts/custom/echo_warden/echo_warden_portal.lua @@ -0,0 +1,31 @@ +-- ============================================================================ +-- Echo Warden Portal - onStepIn for item 54133 +-- Reads stored echoKind, removes the portal, runs the 3-outcome echo raid. +-- Only players trigger it. +-- ============================================================================ + +local echoPortal = MoveEvent() + +function echoPortal.onStepIn(creature, item, position, fromPosition) + local player = creature and creature:getPlayer() + if not player then + return true + end + + local kind = item:getCustomAttribute(EchoWarden.PORTAL_ATTR_KIND) + if type(kind) ~= "string" or kind == "" then + item:remove() + return true + end + + local center = Position(position.x, position.y, position.z) + item:remove() + center:sendMagicEffect(CONST_ME_AGONY) + + EchoWarden.runRaid(kind, center) + return true +end + +echoPortal:type("stepin") +echoPortal:id(54133) +echoPortal:register() diff --git a/data-global/scripts/custom/echo_warden/echo_warden_trigger.lua b/data-global/scripts/custom/echo_warden/echo_warden_trigger.lua new file mode 100644 index 000000000..b4ea154d3 --- /dev/null +++ b/data-global/scripts/custom/echo_warden/echo_warden_trigger.lua @@ -0,0 +1,117 @@ +-- ============================================================================ +-- Echo Warden Trigger - onDeath for every common/uncommon monster +-- (a) 0.05% chance to spawn echo warden portal (item 54133) at corpse tile, +-- appearing PORTAL_DELAY_MS (30s) AFTER the kill (not instantly). +-- (b) on tagged Echo Warden death -> first-kill charm reward per damager +-- Echo-raid-spawned creatures (STORAGE_IS_SPAWNED == 1) never re-trigger. +-- Registered to all 1-2 star monsters via GlobalEvent onStartup. +-- ============================================================================ + +local echoWardenTrigger = CreatureEvent("EchoWardenTrigger") + +-- summon-aware list of players who damaged the creature +local function damagersOf(creature) + local players, seen = {}, {} + local dmap = creature:getDamageMap() + if not dmap then + return players + end + for cid, _ in pairs(dmap) do + if cid and cid > 0 then + local d = Creature(cid) + if d then + local pl + if d:isPlayer() then + pl = d:getPlayer() + else + local master = d:getMaster() + if master and master:isPlayer() then + pl = master:getPlayer() + end + end + if pl and not seen[pl:getId()] then + seen[pl:getId()] = true + players[#players + 1] = pl + end + end + end + end + return players +end + +function echoWardenTrigger.onDeath(creature, corpse, killer, mostDamageKiller, lastHitUnjustified, mostDamageUnjustified) + if not creature or not creature:isMonster() then + return true + end + + -- (b) tagged Echo Warden -> first-kill reward per damager, then stop. + if creature:getStorageValue(EchoWarden.STORAGE_IS_WARDEN) == 1 then + local baseKind = EchoWarden.activeWardens[creature:getId()] or creature:getName() + EchoWarden.activeWardens[creature:getId()] = nil + for _, player in ipairs(damagersOf(creature)) do + EchoWarden.grantReward(player, baseKind) + end + return true + end + + -- echo-raid-spawned creatures (warden + minions) never re-trigger. + if creature:getStorageValue(EchoWarden.STORAGE_IS_SPAWNED) == 1 then + return true + end + + local mType = creature:getType() + if not mType then + return true + end + + -- Guards: never spawn from summon / reward boss / bosstiary boss / forge / out-of-range stars. + if creature:getMaster() ~= nil or mType:isRewardBoss() then + return true + end + local br = mType.bossRace and mType:bossRace() + if br and br ~= "" then + return true + end + if creature.getForgeStack and creature:getForgeStack() > 0 then + return true + end + local stars = mType:BestiaryStars() or 0 + if stars < 1 or stars > 2 then -- SOLO common/uncommon (1-2 estrellas) disparan Echo Raids (como Tibia RL) + return true + end + + -- (a) portal spawn roll + if math.random(1, EchoWarden.SPAWN_CHANCE_DEN) > EchoWarden.SPAWN_CHANCE_NUM then + return true + end + + local kindName = creature:getName() + local pos = creature:getPosition() + addEvent(EchoWarden.spawnPortal, EchoWarden.PORTAL_DELAY_MS, pos.x, pos.y, pos.z, kindName) + + return true +end + +echoWardenTrigger:register() + +-- Register the death event to ALL common/uncommon monsters at boot. +local echoWardenStartup = GlobalEvent("EchoWardenTriggerStartup") + +function echoWardenStartup.onStartup() + local count = 0 + for stars = 1, 2 do -- SOLO common/uncommon (1-2 estrellas), como Tibia RL + local monsters = Game.getMonstersByBestiaryStars(stars) + if monsters then + for _, mType in ipairs(monsters) do + if mType:name() then + mType:registerEvent("EchoWardenTrigger") + count = count + 1 + end + end + end + end + logger.info("[EchoWarden] Registered death trigger to {} monsters (common/uncommon 1-2)", count) + return true +end + +echoWardenStartup:register() diff --git a/data-global/scripts/custom/echo_warden/ondroploot_echo_warden.lua b/data-global/scripts/custom/echo_warden/ondroploot_echo_warden.lua new file mode 100644 index 000000000..2886adf3d --- /dev/null +++ b/data-global/scripts/custom/echo_warden/ondroploot_echo_warden.lua @@ -0,0 +1,32 @@ +-- ============================================================================ +-- Echo Warden loot: ALWAYS 1 random basic scroll (53751-53774) + suffix. +-- The scroll is added unconditionally; the "(Echo Warden kill)" suffix is +-- best-effort cosmetic (creature.cpp only prints it when the most-damage +-- killer is a player receiving the loot message). +-- corpse is a Container userdata (events.cpp:1239), so corpse:addItem works; +-- there is NO Container:addLoot in this fork -- do not use it. +-- ============================================================================ + +local BASIC_SCROLL_MIN, BASIC_SCROLL_MAX = 53751, 53774 + +local callback = EventCallback("MonsterOnDropLootEchoWarden") + +function callback.monsterOnDropLoot(monster, corpse) + if not monster or not corpse then + return + end + if monster:getStorageValue(EchoWarden.STORAGE_IS_WARDEN) ~= 1 then + return + end + + -- exactly one random basic imbuement scroll + local scrollId = math.random(BASIC_SCROLL_MIN, BASIC_SCROLL_MAX) + corpse:addItem(scrollId, 1) + + -- loot message suffix: C++ wraps as "Loot of X: items (Echo Warden kill)" + local existing = corpse:getAttribute(ITEM_ATTRIBUTE_LOOTMESSAGE_SUFFIX) or "" + local suffix = string.len(existing) > 0 and (existing .. " Echo Warden kill") or "Echo Warden kill" + corpse:setAttribute(ITEM_ATTRIBUTE_LOOTMESSAGE_SUFFIX, suffix) +end + +callback:register() diff --git a/data-global/scripts/quests/elemental_spheres/movements_soil_entrance.lua b/data-global/scripts/quests/elemental_spheres/movements_soil_entrance.lua deleted file mode 100644 index 804fe2999..000000000 --- a/data-global/scripts/quests/elemental_spheres/movements_soil_entrance.lua +++ /dev/null @@ -1,36 +0,0 @@ -local setting = { - [1062] = { destination = Position(33085, 32096, 13), vocation = VOCATION.BASE_ID.KNIGHT, storage = 10130 }, - [1063] = { destination = Position(33264, 32201, 13), vocation = VOCATION.BASE_ID.PALADIN, storage = 10131 }, - [1064] = { destination = Position(33330, 32077, 13), vocation = VOCATION.BASE_ID.DRUID, storage = 10132 }, - [1065] = { destination = Position(33183, 32198, 13), vocation = VOCATION.BASE_ID.SORCERER, storage = 10133 }, -} - -local soilEntrance = MoveEvent() - -function soilEntrance.onStepIn(creature, item, position, fromPosition) - local player = creature:getPlayer() - if not player then - return true - end - - local teleport = setting[item.uid] - if not teleport or player:getVocation():getBaseId() ~= teleport.vocation or player:getLevel() < 10 then - player:teleportTo(fromPosition, true) - player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) - player:say("Your vocation cant enter in this teleport.", TALKTYPE_MONSTER_SAY) - return true - end - - player:teleportTo(teleport.destination) - player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) - player:setStorageValue(teleport.storage, 1) - return true -end - -soilEntrance:type("stepin") - -for index, value in pairs(setting) do - soilEntrance:uid(index) -end - -soilEntrance:register() diff --git a/data-global/scripts/spells/monster/spells_phosphorus_curse.lua b/data-global/scripts/spells/monster/spells_phosphorus_curse.lua new file mode 100644 index 000000000..ed7e0be59 --- /dev/null +++ b/data-global/scripts/spells/monster/spells_phosphorus_curse.lua @@ -0,0 +1,30 @@ +local combat = Combat() +combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) +combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SMALLCLOUDS) + +local condition = Condition(CONDITION_CURSED) +condition:setParameter(CONDITION_PARAM_DELAYED, 1) + +local TICK_MS = 2000 +local damage = 300 +condition:addDamage(1, TICK_MS, -damage) +for _ = 1, 20 do + damage = damage * 1.15 + condition:addDamage(1, TICK_MS, -math.floor(damage)) +end + +combat:addCondition(condition) + +local spell = Spell("instant") + +function spell.onCastSpell(creature, var) + return combat:execute(creature, var) +end + +spell:name("phosphorus curse") +spell:words("###941") +spell:isAggressive(true) +spell:blockWalls(true) +spell:needTarget(true) +spell:needLearn(true) +spell:register() diff --git a/data-global/startup/tables/item.lua b/data-global/startup/tables/item.lua index 2fc7af849..5d5323401 100644 --- a/data-global/startup/tables/item.lua +++ b/data-global/startup/tables/item.lua @@ -2382,10 +2382,10 @@ ItemAction = { [40004] = { itemId = 2126, itemPos = { - { x = 33915, y = 31635, z = 9 }, - { x = 33920, y = 31638, z = 9 }, - { x = 33909, y = 31642, z = 9 }, - { x = 33916, y = 31642, z = 9 }, + { x = 33906, y = 31628, z = 9 }, + { x = 33900, y = 31627, z = 9 }, + { x = 33898, y = 31623, z = 9 }, + { x = 33905, y = 31620, z = 9 }, }, }, -- The Rookie Guard Quest - Mission 02: Defence! diff --git a/data-global/startup/tables/teleport.lua b/data-global/startup/tables/teleport.lua index 2d798951e..cfbfc0475 100644 --- a/data-global/startup/tables/teleport.lua +++ b/data-global/startup/tables/teleport.lua @@ -332,26 +332,6 @@ TeleportAction = { } TeleportUnique = { - -- magic forcefield - [1062] = { - itemId = 1949, - itemPos = { x = 33262, y = 31835, z = 10 }, - }, - -- magic forcefield - [1063] = { - itemId = 1949, - itemPos = { x = 33274, y = 31835, z = 10 }, - }, - -- magic forcefield - [1064] = { - itemId = 1949, - itemPos = { x = 33268, y = 31841, z = 10 }, - }, - -- magic forcefield - [1065] = { - itemId = 1949, - itemPos = { x = 33265, y = 31830, z = 10 }, - }, -- Forgotten Knowledge Quest [1067] = { itemId = 1949, diff --git a/data-global/world/15.30/Thalassara_34010_32470_7_1530.otbm b/data-global/world/15.30/Thalassara_34010_32470_7_1530.otbm new file mode 100644 index 000000000..6748b3e19 Binary files /dev/null and b/data-global/world/15.30/Thalassara_34010_32470_7_1530.otbm differ diff --git a/data-global/world/15.30/access.otbm b/data-global/world/15.30/access.otbm new file mode 100644 index 000000000..7357a2fbe Binary files /dev/null and b/data-global/world/15.30/access.otbm differ diff --git a/data-global/world/15.30/asura_resp.otbm b/data-global/world/15.30/asura_resp.otbm new file mode 100644 index 000000000..93dc95d7e Binary files /dev/null and b/data-global/world/15.30/asura_resp.otbm differ diff --git a/data-global/world/15.30/asura_sanctuary_1530.otbm b/data-global/world/15.30/asura_sanctuary_1530.otbm new file mode 100644 index 000000000..c9d0a0834 Binary files /dev/null and b/data-global/world/15.30/asura_sanctuary_1530.otbm differ diff --git a/data-global/world/15.30/asura_sanctuary_boss_33901_32720_9_1530.otbm b/data-global/world/15.30/asura_sanctuary_boss_33901_32720_9_1530.otbm new file mode 100644 index 000000000..0887ceda3 Binary files /dev/null and b/data-global/world/15.30/asura_sanctuary_boss_33901_32720_9_1530.otbm differ diff --git a/data-global/world/15.30/boss_rooms_-_part_2.otbm b/data-global/world/15.30/boss_rooms_-_part_2.otbm new file mode 100644 index 000000000..a57274545 Binary files /dev/null and b/data-global/world/15.30/boss_rooms_-_part_2.otbm differ diff --git a/data-global/world/15.30/castle_33986_32637_6_1530.otbm b/data-global/world/15.30/castle_33986_32637_6_1530.otbm new file mode 100644 index 000000000..67a0acd51 Binary files /dev/null and b/data-global/world/15.30/castle_33986_32637_6_1530.otbm differ diff --git a/data-global/world/15.30/final.otbm b/data-global/world/15.30/final.otbm new file mode 100644 index 000000000..ad59e19ea Binary files /dev/null and b/data-global/world/15.30/final.otbm differ diff --git a/data-global/world/15.30/mimar_haffar_33086_32689_15_1530.otbm b/data-global/world/15.30/mimar_haffar_33086_32689_15_1530.otbm new file mode 100644 index 000000000..c29ee0a29 Binary files /dev/null and b/data-global/world/15.30/mimar_haffar_33086_32689_15_1530.otbm differ diff --git a/data-global/world/15.30/werepanther_boss_map_33035_32967_7.otbm b/data-global/world/15.30/werepanther_boss_map_33035_32967_7.otbm new file mode 100644 index 000000000..c2210496b Binary files /dev/null and b/data-global/world/15.30/werepanther_boss_map_33035_32967_7.otbm differ diff --git a/data-global/world/world-monster.xml b/data-global/world/world-monster.xml index 570ef41b5..6b85224fc 100644 --- a/data-global/world/world-monster.xml +++ b/data-global/world/world-monster.xml @@ -817,6 +817,21 @@ + + + + + + + + + + + + + + + @@ -2067,6 +2082,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2107,23 +2176,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2137,10 +2290,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2152,15 +2392,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2173,12 +2494,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -2203,6 +2548,9 @@ + + + @@ -3394,7 +3742,7 @@ - + @@ -3949,11 +4297,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4101,16 +4483,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4119,11 +4585,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4137,9 +4687,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4150,9 +4736,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4163,6 +4777,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4176,12 +4823,21 @@ + + + + + + + + + @@ -6125,9 +6781,6 @@ - - - @@ -6143,12 +6796,6 @@ - - - - - - @@ -6253,11 +6900,11 @@ - - + + - - + + @@ -6680,6 +7327,13 @@ + + + + + + + @@ -6687,11 +7341,30 @@ + + + + + + + + + + + + + + + + + + + @@ -6704,6 +7377,9 @@ + + + @@ -7009,6 +7685,18 @@ + + + + + + + + + + + + @@ -7016,6 +7704,16 @@ + + + + + + + + + + @@ -7031,16 +7729,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7053,6 +7812,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7066,25 +7895,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7092,11 +8093,26 @@ + + + + + + + + + + + + + + + @@ -7113,14 +8129,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7135,9 +8181,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7154,6 +8230,9 @@ + + + @@ -7194,6 +8273,9 @@ + + + @@ -7212,6 +8294,9 @@ + + + @@ -10103,6 +11188,10 @@ + + + + @@ -10125,10 +11214,6 @@ - - - - @@ -10150,6 +11235,7 @@ + @@ -10296,9 +11382,6 @@ - - - @@ -10322,12 +11405,6 @@ - - - - - - @@ -11234,23 +12311,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11262,17 +12371,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11296,6 +12432,9 @@ + + + @@ -11305,6 +12444,18 @@ + + + + + + + + + + + + @@ -11313,6 +12464,9 @@ + + + @@ -11546,7 +12700,7 @@ - + @@ -12013,6 +13167,12 @@ + + + + + + @@ -12033,9 +13193,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -12043,15 +13228,30 @@ + + + + + + + + + + + + + + + @@ -12061,40 +13261,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -12105,6 +13392,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -12124,6 +13435,15 @@ + + + + + + + + + @@ -12133,6 +13453,27 @@ + + + + + + + + + + + + + + + + + + + + + @@ -12143,9 +13484,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -12162,6 +13530,12 @@ + + + + + + @@ -16270,21 +17644,12 @@ - - - - - - - - - @@ -16326,9 +17691,6 @@ - - - @@ -16343,9 +17705,6 @@ - - - @@ -16358,9 +17717,6 @@ - - - @@ -16382,12 +17738,6 @@ - - - - - - @@ -16401,9 +17751,6 @@ - - - @@ -16417,9 +17764,6 @@ - - - @@ -16435,24 +17779,12 @@ - - - - - - - - - - - - @@ -16462,25 +17794,16 @@ - - - - - - - - - @@ -16507,21 +17830,12 @@ - - - - - - - - - @@ -18760,8 +20074,10 @@ - - + + + + @@ -18778,13 +20094,25 @@ + + + + + + + + + + + + @@ -18793,6 +20121,9 @@ + + + @@ -18877,6 +20208,12 @@ + + + + + + @@ -19053,6 +20390,9 @@ + + + @@ -19123,6 +20463,9 @@ + + + @@ -19139,6 +20482,12 @@ + + + + + + @@ -19173,6 +20522,9 @@ + + + @@ -19390,15 +20742,30 @@ + + + + + + + + + + + + + + + @@ -19407,13 +20774,34 @@ + + + + + + + + + + + + + + + + + + + + + @@ -19437,21 +20825,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -19461,9 +20894,18 @@ + + + + + + + + + @@ -19474,6 +20916,21 @@ + + + + + + + + + + + + + + + @@ -19506,6 +20963,9 @@ + + + @@ -19548,21 +21008,36 @@ + + + + + + + + + + + + + + + @@ -19579,6 +21054,9 @@ + + + @@ -19602,9 +21080,15 @@ + + + + + + @@ -19618,6 +21102,9 @@ + + + @@ -29049,9 +30536,6 @@ - - - @@ -29096,21 +30580,12 @@ - - - - - - - - - @@ -29156,10 +30631,6 @@ - - - - @@ -29346,9 +30817,6 @@ - - - @@ -29373,9 +30841,6 @@ - - - @@ -29403,9 +30868,6 @@ - - - @@ -29466,9 +30928,6 @@ - - - @@ -29489,9 +30948,6 @@ - - - @@ -29501,9 +30957,6 @@ - - - @@ -29534,9 +30987,6 @@ - - - @@ -29585,12 +31035,6 @@ - - - - - - @@ -29753,9 +31197,6 @@ - - - @@ -29899,9 +31340,6 @@ - - - @@ -32391,6 +33829,9 @@ + + + @@ -32420,8 +33861,8 @@ - - + + @@ -32429,6 +33870,7 @@ + @@ -42779,6 +44221,15 @@ + + + + + + + + + @@ -42800,6 +44251,15 @@ + + + + + + + + + @@ -42845,15 +44305,28 @@ + + + + + + + + + + + + + @@ -42924,6 +44397,12 @@ + + + + + + @@ -42937,6 +44416,9 @@ + + + @@ -42946,17 +44428,34 @@ + + + + + + + + + + + + + + + + + @@ -43007,6 +44506,9 @@ + + + @@ -43023,6 +44525,12 @@ + + + + + + @@ -43041,9 +44549,24 @@ + + + + + + + + + + + + + + + @@ -43059,6 +44582,12 @@ + + + + + + @@ -43097,21 +44626,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -43148,6 +44707,15 @@ + + + + + + + + + @@ -43155,12 +44723,18 @@ + + + + + + @@ -43186,6 +44760,12 @@ + + + + + + @@ -43193,9 +44773,14 @@ + + + + + @@ -43208,6 +44793,12 @@ + + + + + + @@ -43224,13 +44815,22 @@ + + + + + + + + + @@ -43270,6 +44870,15 @@ + + + + + + + + + @@ -43285,6 +44894,10 @@ + + + + @@ -43292,9 +44905,21 @@ + + + + + + + + + + + + @@ -43352,9 +44977,18 @@ + + + + + + + + + @@ -43364,15 +44998,30 @@ + + + + + + + + + + + + + + + @@ -43421,6 +45070,15 @@ + + + + + + + + + @@ -43430,6 +45088,16 @@ + + + + + + + + + + @@ -43439,11 +45107,30 @@ + + + + + + + + + + + + + + + + + + + @@ -43451,6 +45138,9 @@ + + + @@ -43507,6 +45197,15 @@ + + + + + + + + + @@ -43596,10 +45295,19 @@ + + + + + + + + + @@ -43665,6 +45373,9 @@ + + + @@ -43674,6 +45385,12 @@ + + + + + + @@ -43734,6 +45451,9 @@ + + + @@ -43743,12 +45463,18 @@ + + + + + + @@ -43761,6 +45487,9 @@ + + + @@ -43795,6 +45524,9 @@ + + + @@ -43826,6 +45558,9 @@ + + + @@ -43944,6 +45679,9 @@ + + + @@ -43960,15 +45698,27 @@ + + + + + + + + + + + + @@ -44004,6 +45754,9 @@ + + + @@ -44041,6 +45794,12 @@ + + + + + + @@ -44128,6 +45887,12 @@ + + + + + + @@ -44153,6 +45918,9 @@ + + + @@ -44174,6 +45942,12 @@ + + + + + + @@ -44200,6 +45974,9 @@ + + + @@ -44306,12 +46083,18 @@ + + + + + + @@ -44374,6 +46157,9 @@ + + + @@ -44399,6 +46185,9 @@ + + + @@ -44431,6 +46220,9 @@ + + + @@ -44454,6 +46246,9 @@ + + + @@ -44486,6 +46281,9 @@ + + + @@ -44527,6 +46325,9 @@ + + + @@ -44548,6 +46349,12 @@ + + + + + + @@ -44561,6 +46368,9 @@ + + + @@ -44586,6 +46396,9 @@ + + + @@ -44604,6 +46417,9 @@ + + + @@ -44630,6 +46446,9 @@ + + + @@ -44703,6 +46522,21 @@ + + + + + + + + + + + + + + + @@ -44755,6 +46589,9 @@ + + + @@ -44795,6 +46632,9 @@ + + + @@ -44813,6 +46653,12 @@ + + + + + + @@ -44836,6 +46682,12 @@ + + + + + + @@ -44951,6 +46803,12 @@ + + + + + + @@ -45062,6 +46920,12 @@ + + + + + + @@ -45106,6 +46970,9 @@ + + + @@ -45155,6 +47022,12 @@ + + + + + + @@ -45187,12 +47060,18 @@ + + + + + + @@ -45215,6 +47094,12 @@ + + + + + + @@ -45263,6 +47148,9 @@ + + + @@ -45300,6 +47188,9 @@ + + + @@ -45359,6 +47250,9 @@ + + + @@ -45439,6 +47333,21 @@ + + + + + + + + + + + + + + + @@ -45485,6 +47394,21 @@ + + + + + + + + + + + + + + + @@ -45521,6 +47445,9 @@ + + + @@ -45555,6 +47482,9 @@ + + + @@ -45588,6 +47518,9 @@ + + + @@ -45615,6 +47548,15 @@ + + + + + + + + + @@ -45643,6 +47585,12 @@ + + + + + + @@ -45716,6 +47664,12 @@ + + + + + + @@ -45754,6 +47708,12 @@ + + + + + + @@ -45770,6 +47730,9 @@ + + + @@ -45815,6 +47778,12 @@ + + + + + + @@ -45830,6 +47799,12 @@ + + + + + + @@ -45854,6 +47829,12 @@ + + + + + + @@ -45866,6 +47847,9 @@ + + + @@ -45881,6 +47865,9 @@ + + + @@ -45938,6 +47925,9 @@ + + + @@ -45950,6 +47940,12 @@ + + + + + + @@ -45992,6 +47988,15 @@ + + + + + + + + + @@ -46011,6 +48016,9 @@ + + + @@ -46045,6 +48053,12 @@ + + + + + + @@ -46074,6 +48088,12 @@ + + + + + + @@ -46084,6 +48104,12 @@ + + + + + + @@ -46094,6 +48120,9 @@ + + + @@ -46113,6 +48142,12 @@ + + + + + + @@ -46130,6 +48165,12 @@ + + + + + + @@ -46176,6 +48217,9 @@ + + + @@ -46257,6 +48301,9 @@ + + + @@ -46281,6 +48328,12 @@ + + + + + + @@ -46294,6 +48347,9 @@ + + + @@ -46313,6 +48369,12 @@ + + + + + + @@ -46331,10 +48393,19 @@ + + + + + + + + + @@ -46347,6 +48418,9 @@ + + + @@ -46358,6 +48432,9 @@ + + + @@ -46389,6 +48466,15 @@ + + + + + + + + + @@ -46408,12 +48494,21 @@ + + + + + + + + + @@ -46451,6 +48546,12 @@ + + + + + + @@ -46478,6 +48579,12 @@ + + + + + + @@ -46496,6 +48603,9 @@ + + + @@ -46541,6 +48651,9 @@ + + + @@ -46608,6 +48721,9 @@ + + + @@ -46622,6 +48738,12 @@ + + + + + + @@ -46647,6 +48769,9 @@ + + + @@ -46674,6 +48799,12 @@ + + + + + + @@ -46691,6 +48822,9 @@ + + + @@ -46699,6 +48833,9 @@ + + + @@ -46722,6 +48859,9 @@ + + + @@ -46826,6 +48966,9 @@ + + + @@ -46879,6 +49022,9 @@ + + + @@ -46901,6 +49047,9 @@ + + + @@ -46912,6 +49061,9 @@ + + + @@ -46981,6 +49133,9 @@ + + + @@ -47013,6 +49168,9 @@ + + + @@ -47037,6 +49195,9 @@ + + + @@ -47060,6 +49221,9 @@ + + + @@ -47117,6 +49281,9 @@ + + + @@ -47300,6 +49467,9 @@ + + + @@ -50560,6 +52730,9 @@ + + + @@ -55879,7 +58052,7 @@ - + @@ -56199,6 +58372,12 @@ + + + + + + @@ -56533,10 +58712,10 @@ - + - - + + @@ -65781,13 +67960,12 @@ - - - - + + + @@ -65881,8 +68059,8 @@ - - + + @@ -69227,6 +71405,9 @@ + + + @@ -69349,6 +71530,9 @@ + + + @@ -69432,6 +71616,9 @@ + + + @@ -69470,6 +71657,9 @@ + + + @@ -69562,6 +71752,9 @@ + + + @@ -71299,6 +73492,9 @@ + + + @@ -71421,6 +73617,12 @@ + + + + + + @@ -71483,6 +73685,9 @@ + + + @@ -71543,6 +73748,15 @@ + + + + + + + + + @@ -71591,6 +73805,12 @@ + + + + + + @@ -71704,6 +73924,9 @@ + + + @@ -71735,6 +73958,9 @@ + + + @@ -71769,6 +73995,12 @@ + + + + + + @@ -71890,6 +74122,12 @@ + + + + + + @@ -71902,6 +74140,9 @@ + + + @@ -71925,6 +74166,9 @@ + + + @@ -71935,6 +74179,9 @@ + + + @@ -72035,6 +74282,9 @@ + + + @@ -72091,6 +74341,9 @@ + + + @@ -72117,6 +74370,9 @@ + + + @@ -72199,6 +74455,13 @@ + + + + + + + @@ -72255,6 +74518,9 @@ + + + @@ -72280,12 +74546,18 @@ + + + + + + @@ -72297,6 +74569,10 @@ + + + + @@ -72335,6 +74611,17 @@ + + + + + + + + + + + @@ -72427,6 +74714,9 @@ + + + @@ -72450,6 +74740,9 @@ + + + @@ -72539,6 +74832,9 @@ + + + @@ -72553,6 +74849,13 @@ + + + + + + + @@ -72645,6 +74948,12 @@ + + + + + + @@ -72792,6 +75101,9 @@ + + + @@ -72830,6 +75142,16 @@ + + + + + + + + + + @@ -72849,6 +75171,12 @@ + + + + + + @@ -72877,6 +75205,9 @@ + + + @@ -72969,6 +75300,9 @@ + + + @@ -72984,6 +75318,9 @@ + + + @@ -73023,6 +75360,10 @@ + + + + @@ -73044,6 +75385,9 @@ + + + @@ -73155,6 +75499,9 @@ + + + @@ -73261,6 +75608,9 @@ + + + @@ -73363,6 +75713,9 @@ + + + @@ -73417,6 +75770,15 @@ + + + + + + + + + @@ -73458,6 +75820,12 @@ + + + + + + @@ -82876,7 +85244,7 @@ - + @@ -83408,6 +85776,9 @@ + + + @@ -83493,6 +85864,9 @@ + + + @@ -83782,6 +86156,12 @@ + + + + + + @@ -83878,6 +86258,9 @@ + + + @@ -83893,6 +86276,15 @@ + + + + + + + + + @@ -83902,6 +86294,9 @@ + + + @@ -83931,9 +86326,21 @@ + + + + + + + + + + + + @@ -83997,6 +86404,9 @@ + + + @@ -84019,6 +86429,15 @@ + + + + + + + + + @@ -84080,12 +86499,21 @@ + + + + + + + + + @@ -84096,12 +86524,21 @@ + + + + + + + + + @@ -84112,6 +86549,12 @@ + + + + + + @@ -84154,6 +86597,12 @@ + + + + + + @@ -84176,12 +86625,30 @@ + + + + + + + + + + + + + + + + + + @@ -84231,6 +86698,9 @@ + + + @@ -84255,6 +86725,12 @@ + + + + + + @@ -84262,20 +86738,21 @@ + + + + + + - - - - - @@ -84285,10 +86762,8 @@ - - - - + + @@ -84344,14 +86819,26 @@ + + + + + + + + + + + + @@ -84374,6 +86861,12 @@ + + + + + + @@ -84465,6 +86958,9 @@ + + + @@ -84477,17 +86973,6 @@ - - - - - - - - - - - @@ -84500,22 +86985,26 @@ - - - - - - - - - - + + + + + + + + + + + + + + @@ -84523,6 +87012,9 @@ + + + @@ -84594,6 +87086,12 @@ + + + + + + @@ -84622,9 +87120,18 @@ + + + + + + + + + @@ -84637,6 +87144,12 @@ + + + + + + @@ -84682,12 +87195,6 @@ - - - - - - @@ -84697,11 +87204,11 @@ - - - - - + + + + + @@ -84717,6 +87224,9 @@ + + + @@ -84726,11 +87236,14 @@ - - - - - + + + + + + + + @@ -84759,6 +87272,9 @@ + + + @@ -84771,6 +87287,15 @@ + + + + + + + + + @@ -84810,6 +87335,16 @@ + + + + + + + + + + @@ -84828,11 +87363,6 @@ - - - - - @@ -84845,6 +87375,9 @@ + + + @@ -84857,6 +87390,12 @@ + + + + + + @@ -84865,10 +87404,8 @@ - - - - + + @@ -84882,6 +87419,9 @@ + + + @@ -84938,12 +87478,6 @@ - - - - - - @@ -84959,9 +87493,8 @@ - - - + + @@ -84969,6 +87502,9 @@ + + + @@ -84981,6 +87517,12 @@ + + + + + + @@ -85035,6 +87577,18 @@ + + + + + + + + + + + + @@ -85062,6 +87616,9 @@ + + + @@ -85073,9 +87630,15 @@ + + + + + + @@ -85088,6 +87651,9 @@ + + + @@ -85100,6 +87666,9 @@ + + + @@ -85171,9 +87740,21 @@ + + + + + + + + + + + + @@ -99735,6 +102316,9 @@ + + + @@ -99842,9 +102426,18 @@ + + + + + + + + + @@ -99875,9 +102468,15 @@ + + + + + + @@ -99892,6 +102491,9 @@ + + + @@ -99913,6 +102515,15 @@ + + + + + + + + + @@ -99990,6 +102601,9 @@ + + + @@ -100011,6 +102625,9 @@ + + + @@ -100029,6 +102646,12 @@ + + + + + + @@ -100041,6 +102664,12 @@ + + + + + + @@ -100051,6 +102680,9 @@ + + + @@ -100072,6 +102704,15 @@ + + + + + + + + + @@ -100143,6 +102784,12 @@ + + + + + + @@ -100157,6 +102804,12 @@ + + + + + + @@ -100168,6 +102821,12 @@ + + + + + + @@ -100222,6 +102881,9 @@ + + + @@ -100258,6 +102920,12 @@ + + + + + + @@ -100279,6 +102947,15 @@ + + + + + + + + + @@ -100286,6 +102963,13 @@ + + + + + + + @@ -100324,6 +103008,9 @@ + + + @@ -100333,11 +103020,26 @@ + + + + + + + + + + + + + + + @@ -100377,6 +103079,9 @@ + + + @@ -100392,6 +103097,9 @@ + + + @@ -100425,6 +103133,9 @@ + + + @@ -100438,6 +103149,20 @@ + + + + + + + + + + + + + + @@ -100464,6 +103189,19 @@ + + + + + + + + + + + + + @@ -100472,6 +103210,10 @@ + + + + @@ -100484,11 +103226,26 @@ + + + + + + + + + + + + + + + @@ -100519,6 +103276,12 @@ + + + + + + @@ -100553,6 +103316,12 @@ + + + + + + @@ -100565,6 +103334,12 @@ + + + + + + @@ -100583,6 +103358,9 @@ + + + @@ -100608,6 +103386,9 @@ + + + @@ -100641,6 +103422,10 @@ + + + + @@ -100651,6 +103436,9 @@ + + + @@ -100684,6 +103472,9 @@ + + + @@ -100691,6 +103482,9 @@ + + + @@ -100726,6 +103520,12 @@ + + + + + + @@ -100760,6 +103560,9 @@ + + + @@ -100783,6 +103586,9 @@ + + + @@ -100818,6 +103624,12 @@ + + + + + + @@ -100854,6 +103666,9 @@ + + + @@ -100888,6 +103703,9 @@ + + + @@ -100924,6 +103742,9 @@ + + + @@ -101014,6 +103835,12 @@ + + + + + + @@ -101042,6 +103869,9 @@ + + + @@ -182092,6 +184922,9 @@ + + + @@ -186418,9 +189251,6 @@ - - - @@ -186442,12 +189272,6 @@ - - - - - - @@ -186481,12 +189305,6 @@ - - - - - - @@ -186533,9 +189351,6 @@ - - - @@ -186587,26 +189402,12 @@ - - - - - - - - - - - - - - @@ -186627,20 +189428,6 @@ - - - - - - - - - - - - - - diff --git a/data-global/world/world-npc.xml b/data-global/world/world-npc.xml index ed65ac566..bcf2fbe5c 100644 --- a/data-global/world/world-npc.xml +++ b/data-global/world/world-npc.xml @@ -4,7 +4,7 @@ - + @@ -54,6 +54,24 @@ + + + + + + + + + + + + + + + + + + @@ -63,6 +81,9 @@ + + + @@ -90,6 +111,9 @@ + + + @@ -183,12 +207,30 @@ + + + + + + + + + + + + + + + + + + @@ -210,6 +252,9 @@ + + + @@ -357,6 +402,9 @@ + + + @@ -384,6 +432,9 @@ + + + @@ -600,6 +651,9 @@ + + + @@ -609,6 +663,12 @@ + + + + + + @@ -672,6 +732,9 @@ + + + @@ -768,12 +831,31 @@ + + + + + + + + + + + + + + + + + + + @@ -855,9 +937,18 @@ + + + + + + + + + @@ -876,6 +967,12 @@ + + + + + + @@ -927,6 +1024,9 @@ + + + @@ -936,6 +1036,9 @@ + + + @@ -1218,6 +1321,9 @@ + + + @@ -1287,6 +1393,9 @@ + + + @@ -1467,6 +1576,9 @@ + + + @@ -1557,6 +1669,21 @@ + + + + + + + + + + + + + + + @@ -1824,6 +1951,9 @@ + + + @@ -1983,22 +2113,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -2168,6 +2322,9 @@ + + + @@ -2270,6 +2427,10 @@ + + + + @@ -2384,9 +2545,18 @@ + + + + + + + + + @@ -2411,6 +2581,9 @@ + + + @@ -2528,6 +2701,9 @@ + + + @@ -2730,9 +2906,15 @@ + + + + + + @@ -2755,7 +2937,7 @@ - + @@ -2784,6 +2966,9 @@ + + + @@ -2844,6 +3029,9 @@ + + + @@ -2922,9 +3110,6 @@ - - - @@ -2943,6 +3128,9 @@ + + + @@ -3034,11 +3222,14 @@ - + + + + @@ -3063,6 +3254,9 @@ + + + @@ -3102,50 +3296,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/data-global/world/world.otbm b/data-global/world/world.otbm index e95e8f7c7..05be7daac 100644 Binary files a/data-global/world/world.otbm and b/data-global/world/world.otbm differ diff --git a/data/XML/imbuements.xml b/data/XML/imbuements.xml index dc712cbd6..b1e8563a7 100644 --- a/data/XML/imbuements.xml +++ b/data/XML/imbuements.xml @@ -23,7 +23,7 @@ - + @@ -41,7 +41,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -77,7 +77,7 @@ - + @@ -95,7 +95,7 @@ - + @@ -113,7 +113,7 @@ - + @@ -131,7 +131,7 @@ - + @@ -149,7 +149,7 @@ - + @@ -167,7 +167,7 @@ - + @@ -185,7 +185,7 @@ - + @@ -203,7 +203,7 @@ - + @@ -221,7 +221,7 @@ - + @@ -239,7 +239,7 @@ - + @@ -257,7 +257,7 @@ - + @@ -275,7 +275,7 @@ - + @@ -293,7 +293,7 @@ - + @@ -311,7 +311,7 @@ - + @@ -329,7 +329,7 @@ - + @@ -347,7 +347,7 @@ - + @@ -365,7 +365,7 @@ - + @@ -383,7 +383,7 @@ - + @@ -401,7 +401,7 @@ - + @@ -419,7 +419,7 @@ - + @@ -437,7 +437,7 @@ - + diff --git a/data/XML/mounts.xml b/data/XML/mounts.xml index 7a66fe04d..1c93421c1 100644 --- a/data/XML/mounts.xml +++ b/data/XML/mounts.xml @@ -276,5 +276,7 @@ - + + + \ No newline at end of file diff --git a/data/items/appearances.dat b/data/items/appearances.dat index 07db48e8e..37ce9c8ee 100644 Binary files a/data/items/appearances.dat and b/data/items/appearances.dat differ diff --git a/data/items/items.xml b/data/items/items.xml index 0b1dc3ba1..5530bb76d 100644 --- a/data/items/items.xml +++ b/data/items/items.xml @@ -25009,12 +25009,12 @@ - + - + @@ -55324,7 +55324,11 @@ - + + + + + @@ -65646,6 +65650,7 @@ + @@ -66085,6 +66090,11 @@ + + + + + @@ -74047,6 +74057,18 @@ + + + + + + + + + + + + @@ -75435,6 +75457,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -75480,6 +75570,10 @@ + + + + @@ -75824,6 +75918,16 @@ + + + + + + + + + + @@ -75857,6 +75961,26 @@ + + + + + + + + + + + + + + + + + + + + @@ -76594,6 +76718,10 @@ + + + + @@ -76615,6 +76743,11 @@ + + + + + @@ -76645,6 +76778,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -76719,6 +76884,10 @@ + + + + @@ -76766,7 +76935,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -76776,6 +77104,10 @@ + + + + @@ -77283,6 +77615,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -77413,6 +77795,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -78957,7 +79423,7 @@ - + @@ -80984,6 +81450,11 @@ + + + + + @@ -81413,6 +81884,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -82117,6 +82610,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -83663,6 +84256,14 @@ + + + + + + + + @@ -84266,6 +84867,10 @@ + + + + @@ -84289,6 +84894,10 @@ + + + + @@ -84523,6 +85132,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -84550,6 +85215,14 @@ + + + + + + + + @@ -85933,6 +86606,11 @@ + + + + + @@ -85945,6 +86623,18 @@ + + + + + + + + + + + + @@ -86425,6 +87115,7 @@ + @@ -87927,7 +88618,10 @@ - + + + + @@ -87979,57 +88673,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -88081,15 +88805,6 @@ - - - - - - - - - @@ -88099,9 +88814,1550 @@ - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/json/proficiencies.json b/data/json/proficiencies.json index 49ec7edc6..8088a8570 100644 --- a/data/json/proficiencies.json +++ b/data/json/proficiencies.json @@ -27086,5 +27086,2675 @@ "Name": "Crypt 1H Rod", "ProficiencyId": 463, "Version": 5 + }, + { + "Levels": [ + { + "Perks": [ + { + "ElementId": 64, + "Type": 31, + "Value": 0.05 + }, + { + "Type": 0, + "Value": 1 + } + ] + }, + { + "Perks": [ + { + "ElementId": 64, + "Type": 9, + "Value": 0.015 + }, + { + "Type": 0, + "Value": 1 + } + ] + }, + { + "Perks": [ + { + "ElementId": 64, + "Type": 31, + "Value": 0.1 + }, + { + "Type": 24, + "Value": 1 + } + ] + }, + { + "Perks": [ + { + "ElementId": 64, + "Type": 9, + "Value": 0.03 + }, + { + "Type": 0, + "Value": 2 + } + ] + }, + { + "Perks": [ + { + "ElementId": 64, + "Type": 13, + "Value": 0.1 + }, + { + "Type": 15, + "Value": 2.0 + } + ] + } + ], + "Name": "Throw - Snowball with Shards", + "ProficiencyId": 474, + "Version": 1 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.08 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "Type": 12, + "Value": 0.06 + }, + { + "SkillId": 6, + "Type": 3, + "Value": 2 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 106, + "Type": 5, + "Value": 0.12 + }, + { + "ElementId": 16, + "MissileId": 71, + "Multiplier": 2.0, + "Probability": 0.01, + "Type": 32 + }, + { + "AugmentType": 2, + "SpellId": 316, + "Type": 5, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "Type": 17, + "Value": 0.03 + }, + { + "Type": 0, + "Value": 1 + }, + { + "Type": 8, + "Value": 0.01 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 106, + "Type": 5, + "Value": 0.09 + }, + { + "Type": 0, + "Value": 1 + }, + { + "AugmentType": 17, + "SpellId": 316, + "Type": 5, + "Value": 0.025 + } + ] + }, + { + "Perks": [ + { + "Type": 16, + "Value": 0.02 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 16, + "Type": 31, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.06 + } + ] + } + ], + "Name": "Moonsilver 1H Axe", + "ProficiencyId": 475, + "Version": 7 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.08 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "Type": 12, + "Value": 0.06 + }, + { + "SkillId": 6, + "Type": 3, + "Value": 2 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 106, + "Type": 5, + "Value": 0.12 + }, + { + "ElementId": 16, + "MissileId": 71, + "Multiplier": 2.0, + "Probability": 0.01, + "Type": 32 + }, + { + "AugmentType": 2, + "SpellId": 316, + "Type": 5, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "Type": 17, + "Value": 0.03 + }, + { + "Type": 0, + "Value": 1 + }, + { + "Type": 8, + "Value": 0.01 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 106, + "Type": 5, + "Value": 0.09 + }, + { + "Type": 0, + "Value": 1 + }, + { + "AugmentType": 17, + "SpellId": 316, + "Type": 5, + "Value": 0.025 + } + ] + }, + { + "Perks": [ + { + "Type": 16, + "Value": 0.02 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 16, + "Type": 31, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.06 + } + ] + } + ], + "Name": "Moonsilver 1H Club", + "ProficiencyId": 476, + "Version": 7 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.08 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "SkillId": 1, + "Type": 3, + "Value": 1 + }, + { + "Type": 12, + "Value": 0.06 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 43, + "Type": 5, + "Value": 0.05 + }, + { + "ElementId": 64, + "MissileId": 73, + "Multiplier": 2.0, + "Probability": 0.01, + "Type": 32 + }, + { + "AugmentType": 2, + "SpellId": 318, + "Type": 5, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "ElementId": 64, + "Type": 13, + "Value": 0.125 + }, + { + "SkillId": 1, + "Type": 3, + "Value": 2 + }, + { + "ElementId": 16, + "Type": 13, + "Value": 0.125 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 43, + "Type": 5, + "Value": 0.025 + }, + { + "SkillId": 1, + "Type": 27, + "Value": 0.32 + }, + { + "AugmentType": 17, + "SpellId": 318, + "Type": 5, + "Value": 0.025 + } + ] + }, + { + "Perks": [ + { + "ElementId": 64, + "Type": 31, + "Value": 0.04 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 16, + "Type": 31, + "Value": 0.04 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.06 + } + ] + } + ], + "Name": "Moonsilver 1H Rod", + "ProficiencyId": 477, + "Version": 7 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.08 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "Type": 12, + "Value": 0.06 + }, + { + "SkillId": 6, + "Type": 3, + "Value": 2 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 106, + "Type": 5, + "Value": 0.12 + }, + { + "ElementId": 16, + "MissileId": 73, + "Multiplier": 2.0, + "Probability": 0.01, + "Type": 32 + }, + { + "AugmentType": 2, + "SpellId": 316, + "Type": 5, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "Type": 17, + "Value": 0.03 + }, + { + "Type": 0, + "Value": 1 + }, + { + "Type": 8, + "Value": 0.01 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 106, + "Type": 5, + "Value": 0.09 + }, + { + "Type": 0, + "Value": 1 + }, + { + "AugmentType": 17, + "SpellId": 316, + "Type": 5, + "Value": 0.025 + } + ] + }, + { + "Perks": [ + { + "Type": 16, + "Value": 0.02 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 16, + "Type": 31, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.06 + } + ] + } + ], + "Name": "Moonsilver 1H Sword", + "ProficiencyId": 478, + "Version": 9 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.08 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "SkillId": 1, + "Type": 3, + "Value": 1 + }, + { + "Type": 12, + "Value": 0.06 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 240, + "Type": 5, + "Value": 0.05 + }, + { + "ElementId": 256, + "MissileId": 75, + "Multiplier": 2.0, + "Probability": 0.01, + "Type": 32 + }, + { + "AugmentType": 2, + "SpellId": 310, + "Type": 5, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "ElementId": 8, + "Type": 13, + "Value": 0.125 + }, + { + "SkillId": 1, + "Type": 3, + "Value": 2 + }, + { + "ElementId": 256, + "Type": 13, + "Value": 0.125 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 240, + "Type": 5, + "Value": 0.025 + }, + { + "AugmentType": 17, + "SpellId": 21, + "Type": 5, + "Value": 0.025 + }, + { + "AugmentType": 17, + "SpellId": 310, + "Type": 5, + "Value": 0.025 + } + ] + }, + { + "Perks": [ + { + "ElementId": 8, + "Type": 31, + "Value": 0.04 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 256, + "Type": 31, + "Value": 0.04 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.06 + } + ] + } + ], + "Name": "Moonsilver 1H Wand", + "ProficiencyId": 479, + "Version": 7 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.08 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "Type": 12, + "Value": 0.06 + }, + { + "SkillId": 10, + "Type": 3, + "Value": 1 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 106, + "Type": 5, + "Value": 0.12 + }, + { + "ElementId": 32, + "MissileId": 71, + "Multiplier": 2.0, + "Probability": 0.01, + "Type": 32 + }, + { + "Type": 11, + "Value": 0.015 + } + ] + }, + { + "Perks": [ + { + "Type": 17, + "Value": 0.03 + }, + { + "Type": 0, + "Value": 1 + }, + { + "Type": 8, + "Value": 0.01 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 106, + "Type": 5, + "Value": 0.09 + }, + { + "Type": 0, + "Value": 1 + }, + { + "SkillId": 10, + "Type": 26, + "Value": 0.1 + } + ] + }, + { + "Perks": [ + { + "Type": 16, + "Value": 0.02 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 32, + "Type": 31, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.06 + } + ] + } + ], + "Name": "Moonsilver 2H Axe", + "ProficiencyId": 480, + "Version": 7 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.08 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "SkillId": 7, + "Type": 3, + "Value": 1 + }, + { + "Type": 12, + "Value": 0.06 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 303, + "Type": 5, + "Value": 0.04 + }, + { + "ElementId": 128, + "MissileId": 74, + "Multiplier": 2.0, + "Probability": 0.01, + "Type": 32 + }, + { + "AugmentType": 2, + "SpellId": 302, + "Type": 5, + "Value": 0.04 + } + ] + }, + { + "Perks": [ + { + "Type": 30, + "Value": 0.12 + }, + { + "Type": 0, + "Value": 2 + }, + { + "ElementId": 128, + "Type": 31, + "Value": 0.04 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 303, + "Type": 5, + "Value": 0.03 + }, + { + "SkillId": 7, + "Type": 26, + "Value": 0.12 + }, + { + "AugmentType": 17, + "SpellId": 302, + "Type": 5, + "Value": 0.03 + } + ] + }, + { + "Perks": [ + { + "ElementId": 1, + "Type": 31, + "Value": 0.09 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 128, + "Type": 31, + "Value": 0.04 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.06 + } + ] + } + ], + "Name": "Moonsilver 2H Bow", + "ProficiencyId": 481, + "Version": 9 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.08 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "Type": 12, + "Value": 0.06 + }, + { + "SkillId": 9, + "Type": 3, + "Value": 1 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 106, + "Type": 5, + "Value": 0.12 + }, + { + "ElementId": 64, + "MissileId": 73, + "Multiplier": 2.0, + "Probability": 0.01, + "Type": 32 + }, + { + "Type": 11, + "Value": 0.015 + } + ] + }, + { + "Perks": [ + { + "Type": 17, + "Value": 0.03 + }, + { + "Type": 0, + "Value": 1 + }, + { + "Type": 8, + "Value": 0.01 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 106, + "Type": 5, + "Value": 0.09 + }, + { + "Type": 0, + "Value": 1 + }, + { + "SkillId": 9, + "Type": 26, + "Value": 0.1 + } + ] + }, + { + "Perks": [ + { + "Type": 16, + "Value": 0.02 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 64, + "Type": 31, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.06 + } + ] + } + ], + "Name": "Moonsilver 2H Club", + "ProficiencyId": 482, + "Version": 6 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 23, + "Value": 0.02 + } + ] + }, + { + "Perks": [ + { + "Type": 7, + "Value": 0.03 + }, + { + "SkillId": 7, + "Type": 3, + "Value": 1 + }, + { + "Type": 12, + "Value": 0.06 + } + ] + }, + { + "Perks": [ + { + "ElementId": 1, + "Type": 13, + "Value": 0.12 + }, + { + "ElementId": 128, + "MissileId": 74, + "Multiplier": 2.0, + "Probability": 0.01, + "Type": 32 + }, + { + "ElementId": 128, + "Type": 13, + "Value": 0.1 + } + ] + }, + { + "Perks": [ + { + "Type": 30, + "Value": 0.12 + }, + { + "Type": 0, + "Value": 2 + }, + { + "Type": 16, + "Value": 0.02 + } + ] + }, + { + "Perks": [ + { + "ElementId": 1, + "Type": 9, + "Value": 0.02 + }, + { + "SkillId": 7, + "Type": 26, + "Value": 0.12 + }, + { + "ElementId": 128, + "Type": 9, + "Value": 0.015 + } + ] + }, + { + "Perks": [ + { + "ElementId": 1, + "Type": 31, + "Value": 0.09 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 128, + "Type": 31, + "Value": 0.04 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.06 + } + ] + } + ], + "Name": "Moonsilver 2H Crossbow", + "ProficiencyId": 483, + "Version": 7 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.08 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "SkillId": 11, + "Type": 3, + "Value": 1 + }, + { + "Type": 12, + "Value": 0.06 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 14, + "SpellId": 301, + "Type": 5, + "Value": 0.1 + }, + { + "ElementId": 32, + "MissileId": 72, + "Multiplier": 2.0, + "Probability": 0.01, + "Type": 32 + }, + { + "AugmentType": 2, + "SpellId": 301, + "Type": 5, + "Value": 0.09 + } + ] + }, + { + "Perks": [ + { + "Type": 17, + "Value": 0.03 + }, + { + "Type": 0, + "Value": 1 + }, + { + "Type": 8, + "Value": 0.01 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 15, + "SpellId": 301, + "Type": 5, + "Value": 0.075 + }, + { + "Type": 0, + "Value": 1 + }, + { + "AugmentType": 17, + "SpellId": 301, + "Type": 5, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "Type": 16, + "Value": 0.02 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 32, + "Type": 31, + "Value": 0.04 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.06 + } + ] + } + ], + "Name": "Moonsilver 2H Fist", + "ProficiencyId": 484, + "Version": 7 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.08 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "Type": 12, + "Value": 0.06 + }, + { + "SkillId": 8, + "Type": 3, + "Value": 1 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 106, + "Type": 5, + "Value": 0.12 + }, + { + "ElementId": 8, + "MissileId": 71, + "Multiplier": 2.0, + "Probability": 0.01, + "Type": 32 + }, + { + "Type": 11, + "Value": 0.015 + } + ] + }, + { + "Perks": [ + { + "Type": 17, + "Value": 0.03 + }, + { + "Type": 0, + "Value": 1 + }, + { + "Type": 8, + "Value": 0.01 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 106, + "Type": 5, + "Value": 0.09 + }, + { + "Type": 0, + "Value": 1 + }, + { + "SkillId": 8, + "Type": 26, + "Value": 0.1 + } + ] + }, + { + "Perks": [ + { + "Type": 16, + "Value": 0.02 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 8, + "Type": 31, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.06 + } + ] + } + ], + "Name": "Moonsilver 2H Sword", + "ProficiencyId": 485, + "Version": 7 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.12 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "Type": 12, + "Value": 0.06 + }, + { + "SkillId": 6, + "Type": 3, + "Value": 2 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 106, + "Type": 5, + "Value": 0.18 + }, + { + "ElementId": 16, + "MissileId": 71, + "Multiplier": 3.0, + "Probability": 0.01, + "Type": 32 + }, + { + "AugmentType": 2, + "SpellId": 316, + "Type": 5, + "Value": 0.075 + } + ] + }, + { + "Perks": [ + { + "Type": 17, + "Value": 0.03 + }, + { + "Type": 0, + "Value": 1 + }, + { + "Type": 8, + "Value": 0.01 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 106, + "Type": 5, + "Value": 0.09 + }, + { + "Type": 0, + "Value": 1 + }, + { + "AugmentType": 17, + "SpellId": 316, + "Type": 5, + "Value": 0.025 + } + ] + }, + { + "Perks": [ + { + "Type": 16, + "Value": 0.02 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 16, + "Type": 31, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.09 + } + ] + } + ], + "Name": "Stellar Moonsilver 1H Axe", + "ProficiencyId": 486, + "Version": 8 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.12 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "Type": 12, + "Value": 0.06 + }, + { + "SkillId": 6, + "Type": 3, + "Value": 2 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 106, + "Type": 5, + "Value": 0.18 + }, + { + "ElementId": 16, + "MissileId": 71, + "Multiplier": 3.0, + "Probability": 0.01, + "Type": 32 + }, + { + "AugmentType": 2, + "SpellId": 316, + "Type": 5, + "Value": 0.075 + } + ] + }, + { + "Perks": [ + { + "Type": 17, + "Value": 0.03 + }, + { + "Type": 0, + "Value": 1 + }, + { + "Type": 8, + "Value": 0.01 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 106, + "Type": 5, + "Value": 0.09 + }, + { + "Type": 0, + "Value": 1 + }, + { + "AugmentType": 17, + "SpellId": 316, + "Type": 5, + "Value": 0.025 + } + ] + }, + { + "Perks": [ + { + "Type": 16, + "Value": 0.02 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 16, + "Type": 31, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.09 + } + ] + } + ], + "Name": "Stellar Moonsilver 1H Club", + "ProficiencyId": 487, + "Version": 8 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.12 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "SkillId": 1, + "Type": 3, + "Value": 1 + }, + { + "Type": 12, + "Value": 0.06 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 43, + "Type": 5, + "Value": 0.075 + }, + { + "ElementId": 64, + "MissileId": 80, + "Multiplier": 3.0, + "Probability": 0.01, + "Type": 32 + }, + { + "AugmentType": 2, + "SpellId": 318, + "Type": 5, + "Value": 0.075 + } + ] + }, + { + "Perks": [ + { + "ElementId": 64, + "Type": 13, + "Value": 0.125 + }, + { + "SkillId": 1, + "Type": 3, + "Value": 2 + }, + { + "ElementId": 16, + "Type": 13, + "Value": 0.125 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 43, + "Type": 5, + "Value": 0.025 + }, + { + "SkillId": 1, + "Type": 27, + "Value": 0.32 + }, + { + "AugmentType": 17, + "SpellId": 318, + "Type": 5, + "Value": 0.025 + } + ] + }, + { + "Perks": [ + { + "ElementId": 64, + "Type": 31, + "Value": 0.04 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 16, + "Type": 31, + "Value": 0.04 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.09 + } + ] + } + ], + "Name": "Stellar Moonsilver 1H Rod", + "ProficiencyId": 488, + "Version": 8 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.12 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "Type": 12, + "Value": 0.06 + }, + { + "SkillId": 6, + "Type": 3, + "Value": 2 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 106, + "Type": 5, + "Value": 0.18 + }, + { + "ElementId": 16, + "MissileId": 71, + "Multiplier": 3.0, + "Probability": 0.01, + "Type": 32 + }, + { + "AugmentType": 2, + "SpellId": 316, + "Type": 5, + "Value": 0.075 + } + ] + }, + { + "Perks": [ + { + "Type": 17, + "Value": 0.03 + }, + { + "Type": 0, + "Value": 1 + }, + { + "Type": 8, + "Value": 0.01 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 106, + "Type": 5, + "Value": 0.09 + }, + { + "Type": 0, + "Value": 1 + }, + { + "AugmentType": 17, + "SpellId": 316, + "Type": 5, + "Value": 0.025 + } + ] + }, + { + "Perks": [ + { + "Type": 16, + "Value": 0.02 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 16, + "Type": 31, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.09 + } + ] + } + ], + "Name": "Stellar Moonsilver 1H Sword", + "ProficiencyId": 489, + "Version": 9 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.12 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "SkillId": 1, + "Type": 3, + "Value": 1 + }, + { + "Type": 12, + "Value": 0.06 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 240, + "Type": 5, + "Value": 0.075 + }, + { + "ElementId": 256, + "MissileId": 82, + "Multiplier": 3.0, + "Probability": 0.01, + "Type": 32 + }, + { + "AugmentType": 2, + "SpellId": 310, + "Type": 5, + "Value": 0.075 + } + ] + }, + { + "Perks": [ + { + "ElementId": 8, + "Type": 13, + "Value": 0.125 + }, + { + "SkillId": 1, + "Type": 3, + "Value": 2 + }, + { + "ElementId": 256, + "Type": 13, + "Value": 0.125 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 240, + "Type": 5, + "Value": 0.025 + }, + { + "AugmentType": 17, + "SpellId": 21, + "Type": 5, + "Value": 0.025 + }, + { + "AugmentType": 17, + "SpellId": 310, + "Type": 5, + "Value": 0.025 + } + ] + }, + { + "Perks": [ + { + "ElementId": 8, + "Type": 31, + "Value": 0.04 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 256, + "Type": 31, + "Value": 0.04 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.09 + } + ] + } + ], + "Name": "Stellar Moonsilver 1H Wand", + "ProficiencyId": 490, + "Version": 8 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.12 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "Type": 12, + "Value": 0.06 + }, + { + "SkillId": 10, + "Type": 3, + "Value": 1 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 106, + "Type": 5, + "Value": 0.18 + }, + { + "ElementId": 32, + "MissileId": 79, + "Multiplier": 3.0, + "Probability": 0.01, + "Type": 32 + }, + { + "Type": 11, + "Value": 0.0275 + } + ] + }, + { + "Perks": [ + { + "Type": 17, + "Value": 0.03 + }, + { + "Type": 0, + "Value": 1 + }, + { + "Type": 8, + "Value": 0.01 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 106, + "Type": 5, + "Value": 0.09 + }, + { + "Type": 0, + "Value": 1 + }, + { + "SkillId": 10, + "Type": 26, + "Value": 0.1 + } + ] + }, + { + "Perks": [ + { + "Type": 16, + "Value": 0.02 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 32, + "Type": 31, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.09 + } + ] + } + ], + "Name": "Stellar Moonsilver 2H Axe", + "ProficiencyId": 491, + "Version": 8 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.12 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "SkillId": 7, + "Type": 3, + "Value": 1 + }, + { + "Type": 12, + "Value": 0.06 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 303, + "Type": 5, + "Value": 0.06 + }, + { + "ElementId": 128, + "MissileId": 81, + "Multiplier": 3.0, + "Probability": 0.01, + "Type": 32 + }, + { + "AugmentType": 2, + "SpellId": 302, + "Type": 5, + "Value": 0.06 + } + ] + }, + { + "Perks": [ + { + "Type": 30, + "Value": 0.12 + }, + { + "Type": 0, + "Value": 2 + }, + { + "ElementId": 128, + "Type": 31, + "Value": 0.04 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 303, + "Type": 5, + "Value": 0.03 + }, + { + "SkillId": 7, + "Type": 26, + "Value": 0.12 + }, + { + "AugmentType": 17, + "SpellId": 302, + "Type": 5, + "Value": 0.03 + } + ] + }, + { + "Perks": [ + { + "ElementId": 1, + "Type": 31, + "Value": 0.09 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 128, + "Type": 31, + "Value": 0.04 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.09 + } + ] + } + ], + "Name": "Stellar Moonsilver 2H Bow", + "ProficiencyId": 492, + "Version": 10 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.12 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "Type": 12, + "Value": 0.06 + }, + { + "SkillId": 9, + "Type": 3, + "Value": 1 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 106, + "Type": 5, + "Value": 0.18 + }, + { + "ElementId": 64, + "MissileId": 73, + "Multiplier": 3.0, + "Probability": 0.01, + "Type": 32 + }, + { + "Type": 11, + "Value": 0.0275 + } + ] + }, + { + "Perks": [ + { + "Type": 17, + "Value": 0.03 + }, + { + "Type": 0, + "Value": 1 + }, + { + "Type": 8, + "Value": 0.01 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 106, + "Type": 5, + "Value": 0.09 + }, + { + "Type": 0, + "Value": 1 + }, + { + "SkillId": 9, + "Type": 26, + "Value": 0.1 + } + ] + }, + { + "Perks": [ + { + "Type": 16, + "Value": 0.02 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 64, + "Type": 31, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.09 + } + ] + } + ], + "Name": "Stellar Moonsilver 2H Club", + "ProficiencyId": 493, + "Version": 7 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 23, + "Value": 0.02 + } + ] + }, + { + "Perks": [ + { + "Type": 7, + "Value": 0.03 + }, + { + "SkillId": 7, + "Type": 3, + "Value": 1 + }, + { + "Type": 12, + "Value": 0.06 + } + ] + }, + { + "Perks": [ + { + "ElementId": 1, + "Type": 13, + "Value": 0.18 + }, + { + "ElementId": 128, + "MissileId": 81, + "Multiplier": 3.0, + "Probability": 0.01, + "Type": 32 + }, + { + "ElementId": 128, + "Type": 13, + "Value": 0.15 + } + ] + }, + { + "Perks": [ + { + "Type": 30, + "Value": 0.12 + }, + { + "Type": 0, + "Value": 2 + }, + { + "Type": 16, + "Value": 0.02 + } + ] + }, + { + "Perks": [ + { + "ElementId": 1, + "Type": 9, + "Value": 0.02 + }, + { + "SkillId": 7, + "Type": 26, + "Value": 0.12 + }, + { + "ElementId": 128, + "Type": 9, + "Value": 0.015 + } + ] + }, + { + "Perks": [ + { + "ElementId": 1, + "Type": 31, + "Value": 0.09 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 128, + "Type": 31, + "Value": 0.04 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.09 + } + ] + } + ], + "Name": "Stellar Moonsilver 2H Crossbow", + "ProficiencyId": 494, + "Version": 8 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.12 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "SkillId": 11, + "Type": 3, + "Value": 1 + }, + { + "Type": 12, + "Value": 0.06 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 14, + "SpellId": 301, + "Type": 5, + "Value": 0.15 + }, + { + "ElementId": 32, + "MissileId": 79, + "Multiplier": 3.0, + "Probability": 0.01, + "Type": 32 + }, + { + "AugmentType": 2, + "SpellId": 301, + "Type": 5, + "Value": 0.135 + } + ] + }, + { + "Perks": [ + { + "Type": 17, + "Value": 0.03 + }, + { + "Type": 0, + "Value": 1 + }, + { + "Type": 8, + "Value": 0.01 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 15, + "SpellId": 301, + "Type": 5, + "Value": 0.075 + }, + { + "Type": 0, + "Value": 1 + }, + { + "AugmentType": 17, + "SpellId": 301, + "Type": 5, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "Type": 16, + "Value": 0.02 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 32, + "Type": 31, + "Value": 0.04 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.09 + } + ] + } + ], + "Name": "Stellar Moonsilver 2H Fist", + "ProficiencyId": 495, + "Version": 8 + }, + { + "Levels": [ + { + "Perks": [ + { + "Type": 12, + "Value": 0.12 + } + ] + }, + { + "Perks": [ + { + "BestiaryId": 10, + "BestiaryName": "Human", + "Type": 6, + "Value": 0.03 + }, + { + "Type": 12, + "Value": 0.06 + }, + { + "SkillId": 8, + "Type": 3, + "Value": 1 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 2, + "SpellId": 106, + "Type": 5, + "Value": 0.18 + }, + { + "ElementId": 8, + "MissileId": 77, + "Multiplier": 3.0, + "Probability": 0.01, + "Type": 32 + }, + { + "Type": 11, + "Value": 0.0275 + } + ] + }, + { + "Perks": [ + { + "Type": 17, + "Value": 0.03 + }, + { + "Type": 0, + "Value": 1 + }, + { + "Type": 8, + "Value": 0.01 + } + ] + }, + { + "Perks": [ + { + "AugmentType": 17, + "SpellId": 106, + "Type": 5, + "Value": 0.09 + }, + { + "Type": 0, + "Value": 1 + }, + { + "SkillId": 8, + "Type": 26, + "Value": 0.1 + } + ] + }, + { + "Perks": [ + { + "Type": 16, + "Value": 0.02 + }, + { + "Type": 12, + "Value": 0.12 + }, + { + "ElementId": 8, + "Type": 31, + "Value": 0.05 + } + ] + }, + { + "Perks": [ + { + "Type": 29, + "Value": 0.09 + } + ] + } + ], + "Name": "Stellar Moonsilver 2H Sword", + "ProficiencyId": 496, + "Version": 7 } ] \ No newline at end of file diff --git a/data/scripts/actions/items/imbuement_scrolls.lua b/data/scripts/actions/items/imbuement_scrolls.lua index 597b4218a..942f7c60c 100644 --- a/data/scripts/actions/items/imbuement_scrolls.lua +++ b/data/scripts/actions/items/imbuement_scrolls.lua @@ -9,5 +9,78 @@ function imbuementScrolls.onUse(player, item, fromPosition, target, toPosition, return true end -imbuementScrolls:id(51444, 51445, 51446, 51447, 51448, 51449, 51450, 51451, 51452, 51453, 51454, 51455, 51456, 51457, 51458, 51459, 51460, 51461, 51462, 51463, 51464, 51465, 51466, 51467, 51724, 51725, 51726, 51727, 51728, 51729, 51730, 51731, 51732, 51733, 51734, 51735, 51736, 51737, 51738, 51739, 51740, 51741, 51742, 51743, 51744, 51745, 51746, 51747) +imbuementScrolls:id( + 51444, + 51445, + 51446, + 51447, + 51448, + 51449, + 51450, + 51451, + 51452, + 51453, + 51454, + 51455, + 51456, + 51457, + 51458, + 51459, + 51460, + 51461, + 51462, + 51463, + 51464, + 51465, + 51466, + 51467, + 51724, + 51725, + 51726, + 51727, + 51728, + 51729, + 51730, + 51731, + 51732, + 51733, + 51734, + 51735, + 51736, + 51737, + 51738, + 51739, + 51740, + 51741, + 51742, + 51743, + 51744, + 51745, + 51746, + 51747, + 53751, + 53752, + 53753, + 53754, + 53755, + 53756, + 53757, + 53758, + 53759, + 53760, + 53761, + 53762, + 53763, + 53764, + 53765, + 53766, + 53767, + 53768, + 53769, + 53770, + 53771, + 53772, + 53773, + 53774 +) imbuementScrolls:register() diff --git a/data/scripts/discovery_geometry.lua b/data/scripts/discovery_geometry.lua new file mode 100644 index 000000000..0c91a992c --- /dev/null +++ b/data/scripts/discovery_geometry.lua @@ -0,0 +1,1352 @@ +-- AUTO-GENERATED from the Cipsoft client subarea masks (map.dat + subarea-*.bmp.lzma). +-- Pixel-exact surface footprints, 1 px = 1 tile. Underground subareas have no mask +-- (add them by hand in discovery_system.lua). Regenerate: gen_geometry_all.py. +-- rects = space-separated "x1,y1,x2,y2" runs (string keeps the chunk under Lua's +-- 65536-constant limit; parsed to a flat array at startup). +DiscoveryGeometry = { + mains = { + [1] = "Ab'Dendriel", + [2] = "Southern Darama", + [3] = "Carlin", + [4] = "Northern Darama", + [5] = "Dawnport", + [7] = "Edron", + [8] = "Zao", + [9] = "Feyrist", + [11] = "Quirefang", + [14] = "Kazordoon", + [16] = "Krailos", + [17] = "Vandura", + [18] = "Nostalgia", + [19] = "Tiquanda", + [20] = "Oramond", + [22] = "Roshamuul", + [23] = "Hrodmir", + [24] = "Thais", + [25] = "Venore", + [27] = "Yalahar", + [305] = "Boss Lairs", + [329] = "The Void", + [352] = "Secluded Island", + [355] = "Kilmaresh", + [434] = "Marapur", + [466] = "Secret Area", + }, + subs = { + [28] = { -- Thais City (15483 tiles, 367 rects) + name = "Thais City", + mainArea = 24, + bbox = { x1 = 32130, y1 = 32009, x2 = 32600, y2 = 32446 }, + rects = "32262,32009,32282,32009 32261,32010,32282,32010 32260,32011,32282,32011 32259,32012,32282,32012 32280,32013,32282,32013 32264,32013,32270,32013 32258,32013,32262,32013 32272,32013,32278,32013 32259,32014,32282,32014 32260,32015,32282,32015 32261,32016,32282,32016 32262,32017,32282,32017 32283,32030,32283,32030 32260,32030,32264,32031 32277,32031,32278,32031 32282,32031,32284,32031 32277,32032,32285,32032 32260,32032,32265,32032 32260,32033,32264,32033 32278,32033,32278,32033 32280,32033,32286,32033 32275,32033,32275,32034 32278,32034,32283,32034 32285,32034,32286,32034 32275,32035,32283,32035 32285,32035,32285,32035 32282,32036,32285,32036 32275,32036,32279,32036 32262,32037,32265,32037 32278,32037,32278,32037 32257,32037,32260,32037 32257,32038,32265,32038 32275,32038,32279,32038 32281,32038,32284,32038 32262,32039,32265,32039 32275,32039,32284,32039 32257,32039,32260,32039 32391,32033,32402,32040 32259,32040,32259,32040 32275,32040,32279,32040 32400,32041,32400,32041 32396,32041,32397,32041 32393,32041,32393,32041 32276,32041,32276,32041 32281,32040,32284,32042 32275,32042,32276,32042 32278,32042,32279,32042 32391,32042,32393,32043 32400,32042,32402,32043 32263,32043,32263,32043 32275,32043,32284,32043 32257,32044,32259,32044 32276,32044,32276,32044 32261,32044,32265,32044 32257,32045,32265,32045 32257,32046,32259,32046 32261,32046,32265,32046 32283,32047,32285,32047 32280,32047,32281,32047 32280,32048,32280,32048 32284,32048,32284,32048 32280,32049,32282,32049 32284,32049,32285,32049 32280,32050,32285,32050 32280,32051,32282,32051 32284,32051,32285,32051 32279,32052,32285,32052 32267,32059,32272,32061 32267,32062,32273,32062 32284,32062,32286,32063 32290,32062,32293,32063 32288,32062,32288,32064 32267,32063,32272,32064 32295,32063,32295,32064 32291,32064,32291,32064 32284,32064,32284,32064 32284,32065,32286,32066 32288,32065,32295,32066 32284,32067,32295,32067 32275,32067,32276,32068 32288,32068,32295,32068 32267,32067,32269,32069 32271,32067,32273,32069 32284,32068,32286,32069 32290,32069,32290,32069 32275,32069,32277,32069 32293,32069,32295,32069 32276,32070,32276,32070 32269,32070,32269,32070 32273,32070,32273,32070 32267,32071,32270,32072 32272,32071,32276,32072 32267,32073,32276,32073 32267,32074,32270,32074 32272,32074,32276,32074 32597,32114,32599,32115 32597,32116,32600,32116 32391,32146,32403,32153 32393,32154,32393,32154 32397,32154,32397,32154 32401,32154,32401,32154 32401,32155,32403,32156 32391,32155,32393,32156 32302,32166,32306,32166 32317,32166,32321,32166 32405,32167,32418,32167 32404,32168,32419,32168 32434,32169,32436,32169 32403,32169,32419,32169 32426,32169,32430,32169 32381,32169,32385,32169 32302,32167,32321,32170 32403,32170,32436,32170 32380,32170,32389,32170 32379,32171,32389,32171 32400,32171,32436,32171 32469,32171,32469,32171 32471,32172,32472,32172 32465,32172,32466,32172 32468,32172,32469,32172 32399,32172,32436,32173 32465,32173,32472,32173 32379,32172,32392,32174 32465,32174,32466,32174 32472,32174,32472,32174 32399,32174,32435,32175 32379,32175,32391,32175 32392,32176,32394,32176 32366,32176,32371,32176 32379,32176,32390,32176 32341,32176,32352,32176 32396,32176,32435,32176 32303,32171,32320,32177 32468,32175,32472,32177 32465,32176,32466,32177 32341,32177,32355,32177 32391,32177,32435,32177 32379,32177,32389,32177 32379,32178,32388,32178 32465,32178,32472,32178 32390,32178,32435,32178 32299,32178,32320,32178 32341,32178,32361,32178 32367,32177,32370,32179 32389,32179,32435,32179 32340,32179,32361,32179 32380,32179,32381,32179 32465,32179,32466,32180 32298,32179,32322,32180 32468,32179,32472,32180 32332,32180,32435,32180 32297,32181,32322,32181 32330,32181,32435,32183 32337,32184,32435,32184 32330,32184,32333,32184 32297,32182,32327,32185 32330,32185,32332,32186 32298,32186,32327,32186 32338,32185,32435,32187 32299,32187,32327,32187 32329,32187,32332,32187 32329,32188,32333,32188 32337,32188,32435,32188 32296,32188,32326,32188 32294,32189,32435,32189 32288,32189,32289,32189 32291,32189,32292,32189 32287,32190,32435,32190 32337,32191,32435,32191 32328,32191,32333,32191 32286,32191,32325,32192 32287,32193,32324,32193 32327,32192,32332,32194 32338,32192,32435,32194 32291,32194,32295,32194 32288,32194,32289,32194 32326,32195,32333,32195 32337,32195,32435,32195 32297,32194,32321,32196 32296,32197,32306,32197 32317,32197,32321,32197 32325,32196,32435,32198 32296,32198,32302,32198 32297,32199,32301,32199 32324,32199,32435,32200 32298,32200,32300,32200 32309,32200,32310,32202 32324,32201,32436,32202 32348,32203,32436,32203 32324,32203,32345,32203 32308,32203,32311,32203 32307,32204,32312,32204 32320,32204,32436,32206 32323,32207,32438,32208 32323,32209,32439,32209 32320,32210,32374,32210 32376,32210,32440,32210 32377,32211,32440,32211 32320,32211,32373,32211 32320,32212,32374,32212 32376,32212,32440,32212 32319,32213,32440,32215 32431,32216,32440,32216 32432,32217,32440,32217 32432,32218,32439,32218 32432,32219,32437,32219 32432,32220,32433,32220 32306,32205,32314,32222 32432,32221,32432,32222 32319,32216,32429,32223 32310,32223,32310,32223 32432,32223,32433,32223 32306,32224,32308,32224 32312,32224,32433,32224 32305,32225,32433,32227 32433,32228,32433,32228 32303,32228,32429,32228 32302,32229,32429,32232 32303,32233,32429,32233 32265,32234,32269,32234 32302,32234,32429,32234 32260,32234,32263,32234 32255,32234,32258,32234 32255,32235,32269,32235 32260,32236,32263,32236 32301,32235,32429,32237 32262,32237,32262,32237 32265,32236,32269,32238 32255,32236,32258,32238 32302,32238,32431,32238 32301,32239,32431,32240 32296,32241,32431,32241 32295,32242,32431,32242 32294,32243,32431,32243 32293,32244,32431,32245 32292,32246,32431,32246 32282,32246,32284,32246 32281,32247,32431,32250 32279,32251,32431,32256 32278,32257,32431,32259 32283,32260,32431,32260 32285,32261,32432,32262 32285,32263,32406,32263 32281,32263,32281,32263 32410,32263,32432,32263 32414,32264,32432,32264 32281,32264,32406,32264 32415,32265,32432,32265 32281,32265,32405,32266 32416,32266,32432,32266 32417,32267,32432,32267 32281,32267,32402,32267 32281,32268,32281,32268 32285,32268,32393,32268 32424,32268,32432,32269 32293,32269,32393,32270 32429,32270,32430,32270 32294,32271,32393,32271 32296,32272,32393,32272 32297,32273,32393,32273 32298,32274,32357,32274 32368,32274,32393,32275 32302,32275,32356,32275 32303,32276,32355,32276 32306,32277,32355,32277 32307,32278,32355,32278 32351,32279,32354,32279 32308,32279,32347,32279 32309,32280,32346,32280 32310,32281,32337,32282 32341,32281,32344,32283 32311,32283,32337,32284 32340,32284,32345,32284 32324,32285,32336,32285 32270,32309,32271,32309 32258,32309,32259,32309 32258,32310,32261,32310 32268,32310,32271,32310 32263,32310,32266,32311 32268,32311,32268,32311 32259,32311,32261,32312 32264,32312,32265,32312 32268,32312,32270,32312 32259,32313,32270,32313 32263,32314,32266,32314 32268,32314,32270,32314 32259,32314,32261,32314 32265,32315,32265,32315 32259,32315,32259,32318 32270,32315,32270,32318 32270,32319,32271,32320 32258,32319,32259,32320 32435,32360,32436,32360 32433,32361,32437,32362 32132,32363,32136,32363 32435,32363,32436,32363 32439,32361,32442,32364 32433,32364,32437,32364 32137,32364,32137,32364 32131,32364,32134,32365 32137,32365,32138,32365 32433,32365,32442,32365 32130,32366,32138,32366 32437,32366,32437,32366 32434,32366,32434,32366 32434,32367,32435,32367 32131,32367,32138,32367 32433,32368,32434,32368 32133,32368,32133,32368 32437,32367,32442,32369 32136,32369,32138,32369 32433,32369,32435,32369 32131,32369,32134,32369 32175,32369,32176,32370 32131,32370,32138,32370 32136,32371,32138,32371 32176,32371,32176,32371 32168,32369,32173,32372 32175,32372,32176,32372 32137,32372,32137,32372 32131,32371,32134,32373 32136,32373,32138,32373 32168,32373,32177,32373 32169,32374,32169,32374 32176,32374,32176,32374 32131,32374,32139,32374 32172,32374,32172,32374 32174,32375,32176,32377 32171,32375,32172,32377 32168,32375,32169,32377 32142,32389,32146,32393 32144,32394,32144,32394 32148,32394,32156,32396 32142,32395,32146,32396 32142,32397,32156,32397 32151,32398,32151,32398 32183,32420,32186,32420 32174,32420,32180,32420 32174,32421,32186,32425 32180,32426,32180,32426 32204,32428,32209,32428 32208,32429,32208,32429 32204,32429,32204,32429 32211,32428,32211,32431 32182,32429,32185,32431 32174,32429,32177,32431 32206,32430,32209,32431 32204,32431,32204,32431 32204,32432,32211,32432 32184,32432,32184,32432 32176,32432,32176,32432 32206,32433,32209,32433 32208,32434,32208,32434 32211,32434,32211,32434 32204,32433,32204,32435 32206,32435,32211,32435 32208,32436,32208,32436 32196,32439,32196,32439 32159,32440,32159,32440 32171,32441,32171,32441 32175,32441,32175,32441 32158,32441,32160,32441 32195,32440,32197,32442 32157,32442,32160,32445 32195,32443,32200,32445 32168,32442,32172,32446 32174,32442,32178,32446", + }, + [29] = { -- Thais Surroundings (63850 tiles, 1094 rects) + name = "Thais Surroundings", + mainArea = 24, + bbox = { x1 = 32212, y1 = 32008, x2 = 32559, y2 = 32431 }, + rects = "32395,32008,32397,32008 32394,32009,32398,32009 32387,32010,32398,32010 32386,32011,32399,32011 32386,32012,32400,32012 32385,32013,32400,32013 32385,32014,32401,32014 32364,32014,32368,32014 32386,32015,32404,32015 32363,32015,32369,32015 32362,32016,32369,32016 32386,32016,32409,32016 32386,32017,32410,32017 32362,32017,32368,32018 32385,32018,32412,32018 32383,32019,32413,32019 32360,32019,32368,32019 32382,32020,32414,32020 32359,32020,32368,32020 32358,32021,32368,32021 32382,32021,32417,32021 32357,32022,32371,32022 32381,32022,32418,32022 32381,32023,32419,32023 32357,32023,32372,32024 32376,32024,32378,32024 32380,32024,32419,32024 32431,32025,32440,32025 32356,32025,32371,32025 32425,32025,32426,32025 32375,32025,32420,32025 32375,32026,32427,32026 32430,32026,32441,32026 32355,32026,32372,32026 32355,32027,32427,32027 32430,32027,32442,32027 32431,32028,32443,32028 32356,32028,32426,32028 32358,32029,32361,32029 32432,32029,32445,32029 32363,32029,32426,32029 32434,32030,32446,32030 32365,32030,32426,32030 32333,32031,32335,32031 32364,32031,32431,32031 32434,32031,32447,32031 32329,32032,32338,32032 32364,32032,32432,32032 32319,32032,32323,32032 32364,32033,32390,32033 32360,32033,32361,32033 32318,32033,32324,32033 32328,32033,32339,32033 32434,32032,32446,32034 32318,32034,32326,32034 32359,32034,32390,32034 32328,32034,32340,32034 32434,32035,32451,32035 32317,32035,32340,32035 32313,32035,32314,32035 32358,32035,32390,32036 32434,32036,32452,32036 32317,32036,32339,32036 32403,32033,32432,32037 32312,32036,32315,32037 32317,32037,32340,32037 32435,32037,32452,32037 32357,32037,32390,32037 32435,32038,32449,32038 32316,32038,32340,32038 32462,32038,32464,32038 32313,32038,32314,32038 32356,32038,32390,32038 32469,32039,32471,32039 32451,32039,32453,32039 32435,32039,32447,32039 32461,32039,32465,32039 32316,32039,32339,32039 32403,32038,32433,32040 32355,32039,32390,32040 32316,32040,32338,32040 32445,32040,32446,32040 32436,32040,32439,32040 32449,32040,32472,32041 32441,32041,32443,32041 32394,32041,32395,32041 32398,32041,32399,32041 32401,32041,32434,32041 32356,32041,32392,32041 32315,32041,32337,32041 32439,32042,32444,32042 32449,32042,32476,32042 32403,32042,32435,32042 32315,32042,32336,32042 32357,32042,32390,32042 32394,32042,32399,32043 32315,32043,32332,32043 32403,32043,32445,32043 32358,32043,32390,32043 32449,32043,32477,32044 32316,32044,32331,32044 32358,32044,32445,32045 32449,32045,32479,32045 32328,32045,32330,32045 32317,32045,32325,32045 32449,32046,32477,32046 32357,32046,32446,32046 32316,32046,32325,32047 32450,32047,32475,32047 32357,32047,32447,32048 32453,32048,32474,32048 32315,32048,32325,32048 32453,32049,32473,32049 32356,32049,32447,32049 32314,32049,32325,32050 32355,32050,32446,32051 32314,32051,32327,32051 32356,32052,32446,32052 32314,32052,32328,32053 32356,32053,32445,32053 32457,32050,32473,32054 32355,32054,32445,32054 32319,32054,32328,32054 32319,32055,32329,32055 32457,32055,32467,32055 32345,32056,32347,32056 32354,32055,32445,32057 32319,32056,32330,32057 32457,32056,32466,32057 32333,32057,32334,32057 32344,32057,32349,32057 32319,32058,32329,32058 32344,32058,32351,32058 32332,32058,32337,32058 32353,32058,32444,32058 32461,32058,32464,32059 32319,32059,32341,32059 32345,32059,32440,32059 32463,32060,32463,32060 32319,32060,32439,32062 32318,32063,32439,32063 32314,32064,32439,32064 32313,32065,32439,32065 32312,32066,32439,32066 32311,32067,32439,32067 32310,32068,32438,32068 32544,32068,32544,32068 32541,32069,32544,32069 32438,32069,32439,32069 32309,32069,32433,32070 32439,32070,32439,32070 32540,32070,32544,32070 32540,32071,32547,32071 32309,32071,32431,32071 32440,32071,32440,32072 32309,32072,32430,32072 32539,32072,32548,32072 32440,32073,32443,32073 32440,32074,32442,32074 32439,32075,32443,32075 32309,32073,32429,32076 32436,32076,32446,32076 32309,32077,32430,32077 32435,32077,32446,32077 32307,32078,32446,32078 32539,32073,32549,32079 32306,32079,32449,32079 32521,32079,32530,32080 32536,32080,32549,32080 32305,32080,32449,32081 32521,32081,32550,32081 32520,32082,32552,32082 32518,32082,32518,32082 32304,32082,32449,32082 32517,32083,32553,32083 32304,32083,32454,32084 32515,32084,32553,32084 32304,32085,32455,32085 32514,32085,32553,32085 32501,32086,32553,32086 32305,32086,32456,32087 32500,32087,32553,32087 32500,32088,32554,32088 32498,32089,32554,32093 32305,32088,32458,32094 32494,32093,32494,32094 32520,32094,32554,32094 32497,32094,32515,32094 32517,32095,32554,32095 32305,32095,32450,32096 32492,32095,32514,32096 32516,32096,32554,32097 32489,32097,32513,32098 32305,32097,32447,32098 32515,32098,32554,32098 32306,32099,32447,32099 32307,32100,32447,32100 32493,32099,32513,32101 32307,32101,32448,32101 32515,32099,32553,32102 32472,32102,32474,32103 32307,32102,32449,32103 32469,32104,32474,32104 32494,32102,32512,32105 32307,32104,32450,32105 32468,32105,32477,32105 32514,32103,32552,32106 32492,32106,32512,32106 32466,32106,32477,32106 32306,32106,32450,32106 32306,32107,32453,32107 32466,32107,32512,32107 32255,32107,32258,32107 32306,32108,32455,32108 32254,32108,32259,32108 32466,32108,32513,32108 32515,32107,32552,32109 32284,32109,32285,32109 32306,32109,32364,32109 32556,32109,32557,32109 32248,32109,32263,32109 32291,32109,32294,32109 32515,32110,32558,32110 32244,32110,32265,32110 32307,32110,32363,32110 32290,32110,32295,32110 32272,32110,32286,32110 32369,32109,32513,32111 32227,32111,32229,32111 32240,32111,32266,32111 32308,32111,32363,32111 32270,32111,32295,32111 32213,32111,32218,32111 32239,32112,32294,32112 32310,32112,32363,32112 32212,32112,32230,32112 32516,32111,32558,32113 32212,32113,32297,32113 32307,32113,32307,32113 32371,32112,32514,32114 32310,32113,32362,32114 32213,32114,32215,32114 32517,32114,32557,32114 32306,32114,32308,32114 32217,32114,32299,32114 32302,32115,32303,32115 32217,32115,32300,32115 32305,32115,32361,32115 32518,32115,32556,32115 32370,32115,32515,32115 32217,32116,32361,32116 32216,32117,32234,32117 32238,32117,32254,32117 32256,32117,32362,32117 32370,32116,32516,32118 32518,32116,32555,32118 32238,32118,32249,32118 32215,32118,32232,32119 32256,32118,32365,32119 32519,32119,32555,32119 32372,32119,32516,32119 32239,32119,32247,32119 32373,32120,32516,32120 32520,32120,32555,32120 32257,32120,32365,32120 32240,32120,32246,32120 32216,32120,32223,32120 32226,32120,32233,32120 32227,32121,32233,32121 32243,32121,32245,32121 32219,32121,32222,32121 32373,32121,32517,32121 32258,32121,32365,32122 32228,32122,32233,32122 32521,32121,32555,32123 32372,32122,32518,32124 32229,32123,32234,32124 32257,32123,32364,32124 32521,32124,32557,32124 32521,32125,32558,32125 32230,32125,32234,32125 32373,32125,32518,32125 32258,32125,32364,32125 32259,32126,32364,32126 32231,32126,32233,32126 32521,32126,32559,32127 32373,32126,32519,32127 32260,32127,32366,32127 32260,32128,32368,32128 32373,32128,32559,32128 32374,32129,32519,32129 32260,32129,32369,32129 32521,32129,32559,32129 32521,32130,32558,32130 32261,32130,32370,32131 32546,32131,32557,32131 32521,32131,32544,32131 32375,32130,32519,32132 32262,32132,32370,32132 32553,32132,32556,32132 32522,32132,32544,32132 32375,32133,32378,32133 32381,32133,32520,32133 32264,32133,32369,32133 32252,32133,32253,32133 32522,32133,32545,32133 32250,32134,32254,32134 32522,32134,32547,32134 32383,32134,32520,32134 32376,32134,32378,32134 32264,32134,32368,32135 32249,32135,32254,32135 32504,32135,32520,32135 32384,32135,32500,32136 32265,32136,32370,32136 32248,32136,32257,32136 32505,32136,32520,32136 32522,32135,32548,32137 32265,32137,32371,32137 32247,32137,32258,32137 32382,32137,32500,32137 32506,32137,32520,32137 32381,32138,32500,32138 32246,32138,32258,32138 32265,32138,32376,32138 32522,32138,32549,32138 32507,32138,32520,32139 32523,32139,32550,32139 32246,32139,32260,32139 32380,32139,32501,32139 32266,32139,32377,32139 32247,32140,32260,32140 32507,32140,32521,32140 32504,32141,32521,32141 32523,32140,32551,32142 32265,32140,32501,32142 32247,32141,32261,32142 32503,32142,32520,32143 32248,32143,32261,32143 32263,32143,32501,32143 32540,32143,32551,32144 32504,32144,32520,32144 32250,32144,32501,32144 32540,32145,32550,32145 32250,32145,32502,32145 32505,32145,32520,32145 32522,32143,32537,32146 32404,32146,32502,32146 32507,32146,32520,32146 32250,32146,32390,32146 32540,32146,32549,32147 32252,32147,32390,32147 32404,32147,32504,32147 32523,32147,32537,32147 32507,32147,32519,32147 32404,32148,32505,32148 32255,32148,32390,32148 32526,32148,32533,32148 32508,32148,32513,32148 32517,32148,32518,32148 32543,32148,32550,32149 32537,32148,32537,32149 32540,32148,32540,32149 32529,32149,32532,32149 32404,32149,32506,32149 32266,32149,32390,32149 32510,32149,32512,32149 32254,32149,32262,32150 32404,32150,32508,32150 32544,32150,32546,32150 32548,32150,32549,32150 32530,32150,32532,32150 32515,32150,32516,32150 32255,32151,32262,32151 32514,32151,32521,32151 32404,32151,32510,32151 32267,32150,32390,32152 32530,32151,32533,32152 32404,32152,32522,32152 32257,32152,32261,32153 32266,32153,32390,32153 32531,32153,32532,32153 32404,32153,32523,32153 32394,32154,32396,32154 32398,32154,32400,32154 32257,32154,32260,32154 32402,32154,32524,32154 32265,32154,32392,32154 32258,32155,32259,32155 32404,32155,32525,32155 32265,32155,32390,32155 32394,32155,32400,32156 32266,32156,32390,32156 32404,32156,32526,32156 32267,32157,32527,32157 32266,32158,32527,32158 32264,32159,32527,32159 32263,32160,32526,32160 32262,32161,32526,32161 32261,32162,32526,32162 32261,32163,32286,32163 32290,32163,32526,32163 32324,32164,32441,32164 32291,32164,32299,32164 32262,32164,32288,32164 32446,32164,32526,32164 32443,32165,32526,32165 32324,32165,32405,32165 32261,32165,32289,32165 32292,32165,32299,32166 32420,32165,32439,32166 32324,32166,32379,32166 32387,32166,32403,32166 32519,32166,32525,32166 32261,32166,32290,32166 32441,32166,32516,32167 32262,32167,32290,32167 32519,32167,32524,32167 32390,32167,32402,32167 32421,32167,32426,32167 32434,32167,32436,32167 32324,32167,32378,32167 32390,32168,32401,32168 32438,32168,32516,32168 32262,32168,32291,32168 32520,32168,32522,32168 32263,32169,32291,32169 32391,32169,32397,32169 32437,32169,32509,32169 32511,32169,32516,32169 32437,32170,32508,32170 32512,32170,32515,32170 32264,32170,32291,32170 32293,32167,32299,32171 32437,32171,32468,32171 32470,32171,32507,32171 32265,32171,32291,32171 32324,32168,32376,32172 32268,32172,32290,32172 32293,32172,32297,32172 32467,32172,32467,32172 32470,32172,32470,32172 32473,32172,32507,32173 32437,32172,32464,32173 32351,32173,32376,32173 32292,32173,32296,32173 32509,32173,32510,32173 32324,32173,32346,32173 32269,32173,32290,32174 32324,32174,32345,32174 32353,32174,32376,32174 32467,32174,32471,32174 32473,32174,32511,32174 32292,32174,32295,32174 32436,32174,32464,32174 32293,32175,32294,32175 32354,32175,32376,32175 32475,32175,32511,32175 32270,32175,32274,32175 32276,32175,32290,32175 32436,32175,32467,32175 32324,32175,32339,32176 32478,32176,32512,32176 32276,32176,32289,32176 32372,32176,32375,32176 32364,32176,32365,32176 32467,32176,32467,32177 32285,32177,32287,32177 32480,32177,32515,32177 32324,32177,32329,32177 32333,32177,32339,32177 32277,32177,32282,32177 32480,32178,32516,32178 32483,32179,32517,32179 32473,32175,32473,32180 32436,32176,32464,32180 32467,32179,32467,32180 32485,32180,32517,32180 32488,32181,32517,32181 32436,32181,32473,32181 32489,32182,32517,32182 32490,32183,32516,32183 32491,32184,32507,32184 32510,32184,32515,32184 32494,32185,32507,32185 32512,32185,32514,32185 32436,32182,32470,32186 32496,32186,32506,32187 32436,32187,32469,32188 32496,32188,32507,32189 32436,32189,32468,32189 32497,32190,32507,32190 32436,32190,32467,32190 32436,32191,32466,32191 32498,32191,32507,32192 32436,32192,32463,32193 32498,32193,32506,32193 32499,32194,32505,32194 32465,32195,32467,32195 32500,32195,32504,32195 32436,32194,32462,32196 32464,32196,32468,32196 32501,32196,32503,32196 32436,32197,32468,32198 32436,32199,32467,32199 32436,32200,32468,32200 32437,32201,32468,32201 32437,32202,32470,32202 32437,32203,32471,32204 32437,32205,32472,32205 32437,32206,32474,32206 32439,32207,32476,32207 32439,32208,32477,32208 32440,32209,32477,32209 32441,32210,32477,32210 32441,32211,32479,32212 32441,32213,32481,32214 32441,32215,32482,32217 32440,32218,32483,32218 32438,32219,32483,32219 32434,32220,32483,32220 32433,32221,32483,32221 32433,32222,32482,32222 32434,32223,32482,32225 32434,32226,32483,32226 32488,32227,32490,32227 32434,32227,32484,32228 32488,32228,32491,32229 32261,32229,32262,32229 32433,32229,32485,32230 32253,32230,32270,32230 32489,32230,32491,32230 32432,32231,32485,32231 32496,32232,32503,32232 32432,32232,32486,32232 32252,32231,32272,32233 32493,32233,32503,32233 32432,32233,32487,32233 32264,32234,32264,32234 32259,32234,32259,32234 32270,32234,32273,32235 32432,32234,32507,32236 32264,32236,32264,32236 32259,32236,32259,32236 32259,32237,32261,32237 32263,32237,32264,32237 32251,32234,32254,32238 32270,32236,32274,32238 32432,32237,32506,32238 32259,32238,32264,32238 32251,32239,32274,32239 32432,32239,32505,32240 32250,32240,32273,32240 32432,32241,32504,32241 32432,32242,32502,32242 32249,32241,32274,32243 32432,32243,32501,32243 32432,32244,32500,32244 32432,32245,32499,32245 32432,32246,32498,32246 32249,32244,32275,32248 32432,32247,32497,32248 32432,32249,32496,32251 32249,32249,32274,32251 32432,32252,32495,32252 32250,32252,32272,32253 32251,32254,32272,32254 32432,32253,32494,32255 32251,32255,32269,32255 32257,32256,32269,32257 32432,32256,32493,32257 32432,32258,32491,32258 32259,32258,32270,32258 32260,32259,32261,32259 32264,32259,32270,32259 32432,32259,32490,32259 32432,32260,32487,32260 32264,32260,32273,32260 32433,32261,32486,32261 32265,32261,32273,32262 32433,32262,32485,32263 32277,32263,32280,32263 32265,32263,32272,32263 32265,32264,32280,32264 32433,32264,32484,32264 32433,32265,32483,32265 32262,32265,32280,32265 32408,32265,32411,32265 32407,32266,32412,32266 32433,32266,32481,32266 32406,32267,32414,32267 32261,32266,32280,32268 32394,32268,32415,32268 32433,32267,32478,32269 32260,32269,32281,32269 32394,32269,32416,32270 32259,32270,32281,32270 32431,32270,32477,32270 32285,32271,32290,32271 32429,32271,32475,32271 32394,32271,32417,32271 32241,32271,32243,32271 32258,32271,32281,32272 32284,32272,32291,32272 32394,32272,32421,32272 32240,32272,32244,32272 32430,32272,32475,32272 32240,32273,32245,32273 32257,32273,32280,32273 32394,32273,32425,32273 32223,32273,32231,32273 32284,32273,32293,32273 32432,32273,32475,32274 32223,32274,32234,32274 32237,32274,32246,32274 32283,32274,32294,32274 32394,32274,32429,32274 32394,32275,32430,32275 32283,32275,32295,32275 32359,32275,32366,32275 32223,32275,32246,32275 32432,32275,32472,32276 32358,32276,32430,32276 32284,32276,32295,32276 32223,32276,32245,32277 32284,32277,32300,32277 32357,32277,32429,32277 32256,32274,32280,32278 32432,32277,32470,32278 32223,32278,32248,32278 32284,32278,32304,32278 32357,32278,32428,32278 32357,32279,32427,32279 32430,32279,32469,32279 32284,32279,32305,32279 32255,32279,32279,32280 32282,32280,32306,32280 32357,32280,32469,32280 32223,32279,32249,32281 32281,32281,32307,32281 32349,32281,32469,32281 32255,32281,32278,32282 32348,32282,32468,32282 32224,32282,32249,32282 32280,32282,32308,32283 32224,32283,32251,32283 32347,32283,32464,32283 32256,32283,32277,32283 32346,32284,32464,32284 32224,32284,32252,32284 32254,32284,32277,32284 32339,32285,32446,32285 32448,32285,32463,32285 32279,32284,32309,32286 32448,32286,32462,32286 32338,32286,32446,32286 32315,32286,32320,32286 32452,32287,32455,32287 32338,32287,32447,32287 32279,32287,32321,32287 32457,32287,32462,32287 32224,32285,32277,32288 32279,32288,32322,32288 32326,32288,32448,32288 32225,32289,32277,32289 32279,32289,32448,32289 32226,32290,32277,32290 32280,32290,32447,32290 32281,32291,32446,32291 32227,32291,32277,32291 32226,32292,32278,32292 32281,32292,32447,32293 32225,32293,32279,32293 32281,32294,32448,32294 32281,32295,32449,32295 32282,32296,32450,32296 32224,32294,32279,32297 32454,32297,32457,32297 32284,32297,32450,32297 32453,32298,32460,32298 32224,32298,32282,32298 32285,32298,32449,32298 32225,32299,32283,32299 32452,32299,32461,32300 32287,32299,32449,32300 32225,32300,32284,32300 32287,32301,32461,32301 32226,32301,32285,32301 32232,32302,32285,32302 32227,32302,32229,32302 32287,32302,32460,32303 32233,32303,32285,32303 32241,32304,32285,32304 32242,32305,32285,32305 32287,32304,32459,32306 32244,32306,32285,32306 32251,32307,32285,32307 32253,32308,32285,32308 32287,32307,32460,32309 32254,32309,32257,32309 32260,32309,32269,32309 32272,32309,32284,32309 32286,32310,32460,32310 32257,32310,32257,32310 32272,32310,32283,32310 32267,32310,32267,32311 32262,32310,32262,32311 32285,32311,32460,32311 32269,32311,32283,32311 32257,32311,32258,32312 32266,32312,32267,32312 32262,32312,32263,32312 32285,32312,32462,32312 32411,32313,32465,32313 32285,32313,32408,32313 32285,32314,32409,32314 32412,32314,32466,32314 32267,32314,32267,32314 32262,32314,32262,32314 32448,32315,32466,32315 32260,32315,32264,32315 32266,32315,32269,32315 32413,32315,32442,32315 32286,32315,32410,32316 32419,32316,32435,32316 32450,32316,32466,32316 32444,32316,32446,32316 32258,32313,32258,32317 32438,32317,32448,32317 32286,32317,32416,32317 32455,32317,32466,32317 32419,32317,32434,32317 32271,32312,32283,32318 32257,32318,32258,32318 32437,32318,32453,32318 32459,32318,32465,32318 32420,32318,32429,32318 32285,32318,32417,32319 32427,32319,32428,32319 32432,32319,32457,32319 32260,32316,32268,32320 32257,32319,32257,32320 32272,32319,32283,32320 32285,32320,32423,32320 32431,32320,32468,32320 32285,32321,32424,32321 32428,32321,32469,32321 32285,32322,32470,32322 32257,32321,32283,32323 32286,32323,32470,32323 32286,32324,32466,32324 32258,32324,32284,32324 32468,32324,32469,32324 32240,32325,32241,32325 32246,32325,32248,32325 32258,32325,32466,32325 32239,32326,32242,32326 32244,32326,32249,32326 32258,32326,32284,32327 32239,32327,32250,32327 32256,32328,32283,32328 32239,32328,32251,32328 32286,32326,32466,32329 32237,32329,32251,32329 32255,32329,32281,32329 32253,32330,32281,32330 32236,32330,32251,32330 32285,32330,32466,32330 32285,32331,32469,32331 32236,32331,32281,32332 32286,32332,32470,32332 32236,32333,32282,32333 32287,32333,32471,32333 32237,32334,32285,32334 32288,32334,32472,32334 32288,32335,32452,32335 32455,32335,32472,32335 32238,32335,32286,32336 32288,32336,32451,32336 32468,32336,32472,32337 32458,32336,32463,32337 32242,32337,32286,32337 32288,32337,32450,32337 32239,32337,32240,32337 32469,32338,32471,32338 32288,32338,32367,32338 32243,32338,32286,32338 32459,32338,32462,32338 32387,32338,32451,32338 32245,32339,32286,32339 32474,32339,32475,32339 32379,32339,32385,32339 32288,32339,32366,32339 32460,32339,32461,32339 32369,32339,32375,32339 32392,32339,32451,32339 32248,32340,32286,32340 32396,32340,32451,32340 32368,32340,32390,32340 32473,32340,32476,32341 32364,32341,32394,32341 32247,32341,32285,32341 32235,32341,32236,32341 32288,32340,32361,32342 32404,32341,32451,32342 32242,32342,32284,32342 32474,32342,32475,32342 32363,32342,32401,32342 32234,32342,32237,32342 32286,32343,32361,32343 32404,32343,32450,32343 32239,32343,32281,32343 32233,32343,32237,32343 32410,32344,32450,32344 32405,32344,32406,32344 32284,32344,32360,32344 32363,32343,32402,32345 32233,32344,32281,32345 32283,32345,32355,32345 32408,32345,32450,32345 32357,32346,32402,32346 32407,32346,32451,32346 32283,32346,32343,32346 32232,32346,32281,32346 32232,32347,32280,32347 32283,32347,32340,32347 32345,32347,32451,32347 32237,32348,32280,32348 32342,32348,32451,32348 32233,32348,32235,32348 32282,32348,32337,32348 32322,32349,32325,32349 32238,32349,32280,32349 32282,32349,32308,32349 32339,32349,32450,32349 32283,32350,32308,32350 32323,32350,32324,32350 32239,32350,32280,32350 32311,32350,32320,32350 32327,32350,32448,32350 32326,32351,32447,32351 32310,32351,32321,32351 32285,32351,32307,32351 32242,32351,32280,32351 32310,32352,32445,32352 32242,32352,32283,32352 32291,32352,32305,32352 32307,32353,32444,32353 32292,32353,32304,32353 32298,32354,32303,32354 32242,32353,32284,32355 32306,32354,32444,32355 32290,32355,32295,32355 32299,32355,32300,32355 32249,32356,32286,32356 32442,32356,32443,32356 32302,32356,32439,32356 32241,32356,32247,32357 32289,32356,32296,32357 32300,32357,32439,32357 32249,32357,32287,32358 32242,32358,32246,32358 32289,32358,32439,32359 32250,32359,32287,32360 32437,32360,32439,32360 32289,32360,32434,32360 32289,32361,32432,32361 32250,32361,32286,32362 32438,32361,32438,32362 32288,32362,32432,32362 32248,32363,32286,32363 32437,32363,32438,32363 32288,32363,32434,32363 32438,32364,32438,32364 32247,32364,32286,32364 32288,32364,32432,32364 32443,32361,32443,32365 32245,32365,32285,32365 32288,32365,32423,32365 32430,32365,32432,32365 32438,32366,32443,32366 32426,32366,32427,32366 32287,32366,32422,32366 32435,32366,32436,32366 32244,32366,32253,32366 32257,32366,32284,32367 32433,32366,32433,32367 32436,32367,32436,32367 32287,32367,32374,32367 32383,32367,32413,32367 32425,32367,32428,32367 32243,32367,32253,32368 32416,32368,32428,32368 32288,32368,32374,32368 32258,32368,32284,32368 32400,32368,32412,32368 32386,32368,32395,32368 32377,32368,32381,32368 32435,32368,32436,32368 32443,32367,32443,32369 32262,32369,32374,32369 32243,32369,32252,32369 32376,32369,32384,32369 32400,32369,32405,32369 32436,32369,32436,32369 32388,32369,32391,32369 32415,32369,32429,32369 32401,32370,32403,32370 32394,32370,32398,32370 32376,32370,32386,32370 32433,32370,32443,32370 32407,32370,32430,32370 32242,32370,32250,32370 32263,32370,32373,32370 32242,32371,32249,32371 32266,32371,32372,32371 32393,32371,32399,32371 32376,32371,32388,32371 32405,32371,32430,32371 32267,32372,32326,32372 32375,32372,32430,32372 32243,32372,32248,32372 32330,32372,32372,32372 32267,32373,32325,32373 32330,32373,32371,32373 32244,32373,32245,32373 32374,32373,32431,32373 32262,32374,32324,32374 32330,32374,32364,32374 32374,32374,32432,32374 32366,32375,32432,32375 32326,32375,32328,32375 32331,32375,32363,32375 32261,32375,32323,32375 32386,32376,32432,32376 32325,32376,32329,32376 32365,32376,32384,32376 32331,32376,32362,32376 32261,32376,32319,32376 32260,32377,32315,32377 32386,32377,32434,32377 32321,32377,32329,32377 32332,32377,32358,32377 32385,32378,32435,32378 32260,32378,32330,32378 32340,32378,32358,32378 32347,32379,32358,32379 32341,32379,32342,32379 32258,32379,32337,32379 32382,32379,32435,32379 32365,32377,32379,32380 32349,32380,32357,32380 32344,32380,32346,32380 32381,32380,32435,32381 32257,32380,32338,32381 32366,32381,32379,32381 32359,32381,32360,32381 32343,32381,32347,32381 32350,32381,32355,32381 32343,32382,32348,32382 32352,32382,32354,32382 32255,32382,32338,32382 32381,32382,32434,32382 32367,32382,32378,32382 32357,32382,32362,32382 32382,32383,32434,32383 32356,32383,32363,32383 32254,32383,32349,32383 32373,32383,32374,32383 32383,32384,32434,32384 32253,32384,32350,32384 32376,32384,32379,32384 32355,32384,32363,32384 32367,32384,32371,32384 32252,32385,32272,32385 32274,32385,32362,32385 32366,32385,32381,32385 32385,32385,32434,32385 32275,32386,32362,32386 32387,32386,32391,32386 32397,32386,32434,32386 32365,32386,32383,32386 32398,32387,32435,32387 32364,32387,32385,32387 32393,32387,32395,32387 32252,32386,32266,32388 32364,32388,32435,32388 32254,32389,32260,32389 32364,32389,32436,32391 32274,32387,32362,32392 32440,32392,32441,32392 32365,32392,32435,32392 32275,32393,32363,32393 32439,32393,32442,32393 32365,32393,32434,32393 32275,32394,32443,32394 32272,32395,32443,32395 32271,32396,32411,32396 32413,32396,32417,32396 32419,32396,32442,32396 32427,32397,32431,32397 32419,32397,32423,32397 32434,32397,32437,32397 32271,32397,32410,32397 32427,32398,32430,32398 32435,32398,32436,32398 32419,32398,32424,32398 32271,32398,32409,32399 32428,32399,32429,32399 32420,32399,32424,32400 32406,32400,32408,32400 32271,32400,32397,32400 32400,32400,32401,32400 32420,32401,32423,32401 32271,32401,32295,32401 32297,32401,32397,32401 32298,32402,32396,32402 32268,32402,32273,32402 32421,32402,32422,32402 32275,32402,32294,32402 32298,32403,32395,32403 32267,32403,32292,32404 32297,32404,32395,32404 32268,32405,32291,32405 32297,32405,32394,32405 32298,32406,32317,32406 32327,32406,32349,32406 32269,32406,32291,32406 32359,32406,32394,32406 32328,32407,32335,32407 32314,32407,32316,32407 32270,32407,32290,32407 32300,32407,32308,32407 32319,32407,32324,32407 32351,32407,32356,32407 32359,32407,32395,32408 32318,32408,32325,32408 32338,32408,32357,32408 32303,32408,32308,32408 32337,32409,32357,32409 32317,32409,32330,32409 32360,32409,32395,32409 32270,32408,32288,32410 32303,32409,32307,32410 32335,32410,32395,32410 32315,32410,32331,32410 32301,32411,32301,32411 32303,32411,32308,32411 32314,32411,32395,32412 32270,32411,32289,32413 32315,32413,32395,32413 32321,32414,32394,32414 32271,32414,32289,32415 32321,32415,32393,32415 32301,32412,32308,32416 32326,32416,32386,32416 32275,32416,32288,32416 32321,32416,32324,32416 32326,32417,32333,32417 32339,32417,32385,32417 32322,32417,32323,32417 32276,32417,32287,32418 32339,32418,32373,32418 32327,32418,32331,32418 32375,32418,32380,32418 32382,32418,32383,32418 32284,32419,32287,32419 32378,32419,32379,32419 32353,32419,32373,32419 32339,32419,32351,32420 32353,32420,32374,32420 32285,32420,32286,32420 32354,32421,32374,32421 32343,32421,32350,32421 32340,32421,32341,32421 32343,32422,32349,32422 32356,32422,32374,32422 32343,32423,32348,32423 32369,32423,32375,32423 32360,32423,32366,32423 32344,32424,32347,32424 32371,32424,32375,32424 32360,32424,32367,32424 32361,32425,32367,32425 32372,32425,32375,32425 32345,32425,32347,32425 32345,32426,32348,32426 32363,32426,32366,32426 32373,32426,32374,32426 32345,32427,32351,32427 32364,32427,32365,32427 32345,32428,32352,32429 32346,32430,32352,32430 32346,32431,32351,32431", + }, + [33] = { -- Thais Trolls' Cave (1237 tiles, 42 rects) + name = "Thais Trolls' Cave", + mainArea = 24, + bbox = { x1 = 32476, y1 = 32240, x2 = 32523, y2 = 32311 }, + rects = "32510,32240,32512,32240 32509,32241,32512,32241 32508,32242,32513,32242 32506,32243,32513,32243 32504,32244,32513,32244 32502,32245,32522,32245 32501,32246,32523,32246 32500,32247,32523,32247 32499,32248,32523,32248 32498,32249,32523,32249 32498,32250,32522,32250 32497,32251,32521,32251 32496,32252,32521,32252 32495,32253,32521,32254 32495,32255,32520,32255 32494,32256,32520,32256 32494,32257,32519,32257 32492,32258,32517,32258 32491,32259,32519,32259 32488,32260,32519,32260 32487,32261,32518,32261 32486,32262,32517,32263 32485,32264,32518,32264 32484,32265,32517,32265 32482,32266,32517,32266 32479,32267,32517,32269 32478,32270,32516,32270 32476,32271,32514,32271 32476,32272,32516,32272 32476,32273,32517,32274 32476,32275,32518,32275 32479,32276,32520,32276 32490,32277,32520,32277 32494,32278,32520,32278 32494,32279,32519,32279 32495,32280,32509,32280 32499,32292,32499,32292 32486,32302,32490,32304 32487,32305,32491,32305 32486,32306,32496,32307 32485,32308,32497,32310 32491,32311,32495,32311", + }, + [34] = { -- Mount Sternum (4237 tiles, 95 rects) + name = "Mount Sternum", + mainArea = 24, + bbox = { x1 = 32430, y1 = 32036, x2 = 32545, y2 = 32108 }, + rects = "32497,32036,32505,32044 32493,32044,32493,32044 32493,32045,32509,32045 32478,32046,32479,32046 32482,32046,32484,32046 32492,32046,32509,32046 32483,32047,32485,32047 32492,32047,32511,32047 32476,32047,32480,32047 32490,32048,32511,32048 32475,32048,32481,32048 32483,32048,32488,32048 32533,32048,32538,32048 32484,32049,32511,32049 32532,32049,32539,32049 32448,32049,32449,32049 32485,32050,32513,32050 32486,32051,32515,32051 32474,32049,32481,32052 32447,32050,32449,32052 32486,32052,32517,32052 32532,32050,32540,32053 32485,32053,32517,32053 32474,32053,32483,32053 32474,32054,32517,32054 32531,32054,32543,32054 32524,32054,32528,32054 32446,32053,32449,32055 32468,32055,32517,32055 32524,32055,32544,32056 32453,32050,32456,32057 32467,32056,32517,32057 32446,32056,32448,32057 32524,32057,32545,32057 32465,32058,32517,32058 32523,32058,32544,32058 32445,32058,32448,32058 32453,32058,32460,32058 32441,32059,32448,32059 32465,32059,32518,32059 32454,32059,32460,32059 32522,32059,32543,32059 32454,32060,32462,32060 32464,32060,32543,32060 32454,32061,32544,32061 32440,32060,32448,32062 32451,32062,32544,32062 32440,32063,32544,32063 32440,32064,32545,32065 32440,32066,32543,32067 32439,32068,32543,32068 32434,32069,32437,32069 32440,32069,32540,32069 32440,32070,32539,32070 32434,32070,32438,32070 32432,32071,32439,32071 32441,32071,32539,32071 32441,32072,32538,32072 32431,32072,32439,32072 32444,32073,32538,32073 32430,32073,32439,32074 32443,32074,32538,32074 32444,32075,32538,32075 32430,32075,32438,32075 32430,32076,32435,32076 32431,32077,32434,32077 32447,32076,32538,32078 32531,32079,32538,32079 32531,32080,32535,32080 32450,32079,32520,32081 32519,32082,32519,32082 32450,32082,32517,32082 32455,32083,32516,32083 32455,32084,32514,32084 32456,32085,32513,32085 32457,32086,32500,32086 32457,32087,32499,32087 32459,32088,32499,32088 32459,32089,32497,32092 32495,32093,32497,32093 32459,32093,32493,32094 32495,32094,32496,32094 32451,32095,32491,32096 32448,32097,32488,32098 32448,32099,32492,32100 32449,32101,32492,32101 32450,32102,32471,32103 32475,32102,32493,32104 32451,32104,32468,32104 32451,32105,32467,32105 32478,32105,32493,32105 32478,32106,32491,32106 32451,32106,32465,32106 32454,32107,32465,32107 32456,32108,32465,32108", + }, + [35] = { -- Fibula (8786 tiles, 302 rects) + name = "Fibula", + mainArea = 24, + bbox = { x1 = 32115, y1 = 31685, x2 = 32239, y2 = 32475 }, + rects = "32237,31685,32239,31687 32163,32352,32165,32352 32162,32353,32167,32353 32162,32354,32168,32354 32163,32355,32168,32355 32162,32356,32168,32356 32199,32357,32201,32357 32161,32357,32169,32358 32198,32358,32202,32358 32198,32359,32203,32359 32154,32359,32157,32359 32162,32359,32170,32359 32174,32360,32176,32360 32153,32360,32170,32360 32198,32360,32204,32361 32173,32361,32177,32361 32151,32361,32170,32361 32182,32362,32183,32362 32194,32362,32204,32362 32150,32362,32178,32362 32150,32363,32179,32363 32193,32363,32205,32363 32181,32363,32185,32363 32150,32364,32186,32364 32193,32364,32207,32364 32193,32365,32208,32365 32211,32365,32212,32365 32150,32365,32187,32365 32149,32366,32188,32366 32194,32366,32213,32367 32148,32367,32189,32367 32141,32368,32145,32368 32193,32368,32212,32368 32147,32368,32190,32368 32174,32369,32174,32370 32139,32369,32167,32371 32174,32371,32175,32371 32177,32369,32212,32372 32174,32372,32174,32372 32138,32372,32167,32372 32178,32373,32211,32373 32139,32373,32167,32373 32177,32374,32213,32374 32140,32374,32168,32374 32173,32374,32175,32374 32170,32374,32171,32374 32131,32375,32167,32375 32177,32375,32214,32376 32132,32376,32167,32376 32126,32376,32127,32376 32173,32375,32173,32377 32170,32375,32170,32377 32131,32377,32167,32377 32177,32377,32213,32377 32125,32377,32128,32377 32131,32378,32214,32378 32124,32378,32129,32378 32124,32379,32215,32379 32222,32381,32223,32381 32123,32380,32215,32382 32220,32382,32224,32382 32124,32383,32216,32383 32219,32383,32225,32383 32126,32384,32228,32384 32127,32385,32228,32385 32126,32386,32229,32387 32126,32388,32207,32388 32209,32388,32236,32388 32126,32389,32141,32389 32209,32389,32237,32390 32147,32389,32207,32391 32209,32391,32236,32391 32209,32392,32235,32392 32147,32392,32206,32392 32127,32390,32141,32393 32209,32393,32234,32393 32147,32393,32205,32393 32208,32394,32235,32394 32157,32394,32205,32394 32145,32394,32147,32394 32128,32394,32143,32394 32128,32395,32141,32395 32207,32395,32235,32395 32147,32395,32147,32396 32207,32396,32234,32396 32157,32395,32204,32397 32127,32396,32141,32397 32207,32397,32229,32397 32152,32398,32204,32398 32127,32398,32150,32398 32208,32398,32230,32399 32127,32399,32136,32399 32139,32399,32204,32399 32139,32400,32203,32400 32127,32400,32137,32401 32140,32401,32199,32401 32208,32400,32231,32402 32140,32402,32198,32402 32127,32402,32138,32403 32201,32403,32204,32403 32140,32403,32191,32403 32208,32403,32230,32403 32193,32404,32205,32404 32154,32404,32174,32404 32126,32404,32137,32404 32179,32404,32188,32404 32140,32404,32151,32404 32208,32404,32229,32405 32155,32405,32173,32405 32141,32405,32151,32405 32191,32405,32205,32405 32126,32405,32136,32405 32180,32405,32188,32406 32176,32406,32177,32406 32190,32406,32205,32406 32167,32406,32173,32406 32156,32406,32165,32406 32207,32406,32228,32406 32142,32406,32152,32407 32127,32406,32136,32407 32175,32407,32178,32407 32190,32407,32204,32407 32171,32407,32172,32407 32167,32407,32169,32407 32207,32407,32226,32407 32181,32407,32187,32407 32156,32408,32170,32408 32190,32408,32203,32408 32182,32408,32185,32408 32206,32408,32224,32408 32128,32408,32136,32408 32175,32408,32179,32409 32183,32409,32184,32409 32188,32409,32203,32409 32205,32409,32223,32409 32129,32409,32137,32409 32155,32409,32171,32410 32187,32410,32203,32410 32176,32410,32178,32410 32130,32410,32137,32410 32141,32408,32153,32411 32205,32410,32220,32411 32129,32411,32138,32411 32166,32411,32170,32411 32156,32411,32162,32411 32186,32411,32203,32411 32141,32412,32154,32412 32167,32412,32169,32412 32206,32412,32220,32412 32185,32412,32203,32412 32174,32412,32177,32412 32141,32413,32165,32413 32167,32413,32180,32413 32185,32413,32204,32413 32207,32413,32216,32413 32219,32413,32220,32413 32129,32412,32139,32414 32141,32414,32181,32414 32207,32414,32209,32414 32186,32414,32205,32414 32130,32415,32139,32415 32141,32415,32184,32415 32222,32415,32225,32415 32217,32415,32220,32415 32187,32415,32205,32415 32212,32415,32213,32415 32217,32416,32226,32416 32141,32416,32207,32416 32211,32416,32214,32416 32129,32416,32139,32417 32228,32417,32230,32417 32218,32417,32226,32417 32141,32417,32214,32417 32123,32418,32139,32418 32142,32418,32231,32418 32122,32419,32139,32419 32143,32419,32232,32419 32181,32420,32182,32420 32122,32420,32140,32420 32123,32421,32140,32421 32187,32420,32233,32422 32143,32420,32173,32422 32124,32422,32140,32424 32120,32424,32122,32424 32142,32423,32173,32425 32187,32423,32234,32425 32117,32425,32140,32425 32142,32426,32179,32426 32181,32426,32233,32426 32116,32426,32140,32426 32142,32427,32202,32427 32115,32427,32139,32428 32214,32427,32229,32428 32141,32428,32202,32428 32214,32429,32228,32429 32116,32429,32121,32429 32124,32429,32139,32430 32116,32430,32120,32430 32186,32429,32202,32431 32141,32429,32173,32431 32178,32429,32181,32431 32214,32430,32227,32431 32117,32431,32119,32431 32125,32431,32139,32431 32212,32428,32212,32432 32185,32432,32202,32432 32214,32432,32228,32432 32177,32432,32183,32432 32128,32432,32139,32432 32141,32432,32175,32432 32210,32433,32212,32433 32205,32433,32205,32433 32129,32433,32139,32434 32141,32433,32202,32434 32209,32434,32210,32434 32205,32434,32207,32434 32214,32433,32229,32435 32212,32434,32212,32435 32205,32435,32205,32435 32128,32435,32139,32435 32209,32436,32212,32436 32128,32436,32138,32436 32214,32436,32231,32436 32204,32436,32207,32436 32142,32435,32202,32437 32214,32437,32232,32437 32206,32437,32211,32437 32128,32437,32137,32437 32128,32438,32135,32438 32206,32438,32232,32438 32139,32438,32204,32438 32138,32439,32195,32439 32197,32439,32231,32439 32127,32439,32135,32439 32137,32440,32158,32440 32198,32440,32228,32440 32127,32440,32134,32440 32160,32440,32194,32440 32172,32441,32174,32441 32161,32441,32170,32441 32137,32441,32157,32441 32198,32441,32227,32441 32176,32441,32194,32441 32128,32441,32134,32442 32198,32442,32224,32442 32161,32442,32167,32445 32138,32442,32156,32445 32179,32442,32194,32445 32201,32443,32223,32445 32173,32442,32173,32446 32137,32446,32167,32446 32179,32446,32223,32446 32137,32447,32223,32447 32128,32443,32135,32448 32137,32448,32195,32448 32218,32448,32220,32448 32208,32448,32214,32448 32137,32449,32196,32449 32129,32449,32135,32449 32208,32449,32215,32449 32133,32450,32134,32450 32207,32450,32216,32451 32137,32450,32205,32452 32208,32452,32216,32452 32210,32453,32215,32453 32137,32453,32204,32453 32148,32454,32149,32454 32137,32454,32140,32454 32151,32454,32203,32454 32151,32455,32201,32455 32138,32455,32139,32455 32151,32456,32198,32456 32157,32457,32197,32457 32151,32457,32155,32458 32159,32458,32197,32458 32162,32459,32174,32459 32176,32459,32197,32459 32177,32460,32197,32461 32163,32460,32174,32461 32164,32462,32174,32462 32177,32462,32198,32463 32165,32463,32174,32464 32177,32464,32197,32464 32178,32465,32194,32465 32165,32465,32175,32465 32163,32466,32175,32466 32179,32466,32193,32466 32179,32467,32192,32467 32172,32467,32174,32467 32162,32467,32168,32467 32161,32468,32167,32468 32179,32468,32195,32468 32161,32469,32164,32469 32179,32469,32196,32469 32180,32470,32196,32470 32162,32470,32163,32470 32181,32471,32190,32471 32193,32471,32196,32471 32194,32472,32195,32472 32182,32472,32190,32473 32183,32474,32190,32474 32184,32475,32190,32475", + }, + [38] = { -- Ghostlands (6313 tiles, 132 rects) + name = "Ghostlands", + mainArea = 3, + bbox = { x1 = 32166, y1 = 31767, x2 = 32257, y2 = 31875 }, + rects = "32196,31767,32198,31767 32195,31768,32199,31768 32220,31768,32226,31768 32194,31769,32201,31769 32218,31769,32226,31769 32210,31770,32211,31770 32194,31770,32202,31770 32218,31770,32227,31770 32214,31770,32214,31770 32188,31771,32202,31771 32211,31771,32216,31771 32219,31771,32227,31771 32187,31772,32202,31772 32209,31772,32216,31772 32218,31772,32227,31772 32186,31773,32227,31773 32185,31774,32227,31774 32184,31775,32228,31775 32179,31776,32180,31776 32183,31776,32226,31776 32177,31777,32226,31777 32175,31778,32231,31778 32174,31779,32232,31779 32173,31780,32233,31783 32172,31784,32233,31785 32231,31786,32232,31786 32172,31786,32227,31787 32173,31788,32227,31788 32171,31789,32223,31789 32171,31790,32222,31790 32171,31791,32221,31791 32172,31792,32221,31792 32173,31793,32220,31793 32176,31794,32222,31794 32176,31795,32223,31795 32176,31796,32224,31797 32174,31798,32224,31798 32173,31799,32223,31799 32172,31800,32222,31800 32171,31801,32222,31801 32171,31802,32225,31802 32230,31802,32234,31802 32171,31803,32226,31803 32229,31803,32238,31804 32171,31804,32227,31804 32171,31805,32238,31805 32172,31806,32237,31808 32172,31809,32238,31809 32173,31810,32238,31810 32173,31811,32239,31811 32174,31812,32240,31812 32174,31813,32241,31813 32175,31814,32241,31814 32176,31815,32242,31815 32177,31816,32244,31816 32178,31817,32244,31817 32177,31818,32244,31818 32176,31819,32244,31820 32175,31821,32247,31821 32174,31822,32248,31822 32171,31822,32172,31822 32169,31823,32255,31823 32167,31824,32256,31825 32168,31826,32256,31826 32167,31827,32256,31827 32166,31828,32256,31830 32167,31831,32256,31831 32173,31832,32229,31832 32169,31832,32170,31832 32175,31833,32229,31833 32231,31832,32256,31834 32176,31834,32229,31835 32232,31835,32255,31835 32177,31836,32229,31836 32233,31836,32253,31836 32236,31837,32253,31837 32178,31837,32231,31837 32178,31838,32234,31838 32177,31839,32235,31842 32237,31838,32253,31843 32176,31843,32235,31844 32238,31844,32253,31844 32177,31845,32235,31845 32241,31845,32254,31845 32243,31846,32255,31846 32177,31846,32239,31846 32179,31847,32241,31847 32249,31847,32255,31848 32183,31848,32246,31848 32184,31849,32247,31849 32249,31849,32256,31850 32185,31850,32247,31850 32249,31851,32255,31851 32183,31851,32247,31852 32250,31852,32253,31852 32183,31853,32184,31853 32186,31853,32247,31853 32188,31854,32247,31854 32189,31855,32246,31855 32189,31856,32245,31857 32255,31857,32256,31857 32202,31858,32245,31858 32190,31858,32199,31858 32252,31858,32257,31858 32192,31859,32198,31859 32251,31859,32257,31860 32202,31859,32244,31860 32196,31860,32197,31860 32251,31861,32256,31861 32203,31861,32244,31861 32209,31862,32244,31862 32210,31863,32243,31863 32250,31862,32256,31864 32212,31864,32237,31864 32213,31865,32239,31865 32249,31865,32255,31865 32215,31866,32241,31866 32248,31866,32255,31867 32215,31867,32242,31867 32249,31868,32254,31868 32216,31868,32242,31868 32250,31869,32252,31869 32217,31869,32224,31869 32227,31869,32242,31869 32228,31870,32242,31870 32217,31870,32221,31870 32218,31871,32220,31871 32229,31871,32242,31871 32231,31872,32242,31872 32232,31873,32233,31873 32237,31873,32241,31874 32238,31875,32240,31875", + }, + [39] = { -- Folda (8183 tiles, 147 rects) + name = "Folda", + mainArea = 3, + bbox = { x1 = 31958, y1 = 31508, x2 = 32092, y2 = 31636 }, + rects = "32031,31508,32034,31508 32029,31509,32034,31509 32025,31509,32026,31509 32025,31510,32034,31510 32024,31511,32033,31511 32023,31512,32033,31513 32025,31514,32034,31514 32026,31515,32034,31515 32026,31516,32035,31516 32033,31517,32035,31517 32025,31517,32029,31518 32034,31518,32035,31518 32077,31520,32082,31520 32047,31521,32053,31521 32072,31521,32091,31521 32057,31521,32062,31521 32066,31522,32092,31522 32044,31522,32062,31522 32026,31523,32028,31523 32041,31523,32092,31523 32041,31524,32091,31524 32025,31524,32029,31524 32025,31525,32030,31525 32041,31525,32092,31525 32035,31525,32036,31525 32024,31526,32031,31526 32034,31526,32092,31526 32024,31527,32092,31527 32024,31528,32091,31528 32023,31529,32090,31529 32023,31530,32088,31530 32024,31531,32087,31531 32017,31531,32018,31531 32016,31532,32088,31532 32015,31533,32088,31533 32015,31534,32087,31534 32010,31535,32011,31535 32015,31535,32086,31536 32009,31536,32012,31536 32009,31537,32013,31537 32015,31537,32085,31537 32009,31538,32084,31538 32006,31540,32007,31540 32010,31539,32085,31541 32003,31541,32008,31541 32002,31542,32085,31543 32001,31544,32085,31544 32000,31545,32085,31545 32083,31546,32084,31546 31990,31546,31991,31546 32000,31546,32079,31546 31989,31547,31992,31547 32001,31547,32078,31547 31989,31548,31993,31548 32003,31548,32077,31548 32002,31549,32067,31549 31989,31549,31999,31549 32072,31549,32076,31549 31990,31550,32067,31550 31991,31551,32067,31552 31981,31552,31982,31552 31991,31553,32066,31553 31980,31553,31983,31553 31991,31554,32065,31554 31980,31554,31984,31554 31981,31555,31985,31555 31989,31555,32064,31555 31987,31556,32064,31556 31980,31556,31985,31556 31978,31557,32063,31557 31977,31558,32064,31558 31975,31559,32065,31559 31969,31560,32065,31560 31967,31561,32065,31561 31966,31562,32065,31562 31965,31563,32065,31564 32063,31565,32064,31565 31964,31565,32059,31565 31963,31566,32060,31567 32027,31568,32054,31568 31963,31568,32025,31568 32058,31568,32059,31568 31963,31569,32054,31570 31963,31571,32053,31574 31964,31575,32053,31575 31963,31576,32054,31576 31962,31577,32054,31577 32042,31578,32050,31578 32052,31578,32053,31578 31961,31578,32040,31578 31961,31579,32039,31580 31959,31581,32039,31581 32042,31579,32049,31582 31958,31582,32039,31584 31959,31585,32038,31586 31960,31587,32039,31587 31964,31588,32040,31590 31965,31591,32040,31592 31966,31593,32042,31593 31965,31594,32043,31594 31964,31595,32044,31596 31965,31597,32045,31597 31967,31598,32045,31598 31969,31599,32045,31599 31970,31600,32046,31600 31973,31601,31974,31601 31977,31601,32047,31602 31978,31603,32046,31603 31983,31604,32047,31604 31983,31605,32048,31606 31983,31607,32047,31607 31984,31608,31985,31608 31987,31608,32046,31608 31987,31609,32048,31609 31988,31610,31995,31610 32000,31610,32049,31610 31990,31611,31994,31611 32002,31611,32049,31612 32002,31613,32050,31613 32003,31614,32050,31615 32004,31616,32049,31616 32003,31617,32048,31617 32002,31618,32047,31618 32002,31619,32044,31619 32001,31620,32042,31620 32000,31621,32042,31621 31999,31622,32042,31623 32000,31624,32042,31625 32000,31626,32003,31626 32015,31626,32041,31626 32005,31626,32013,31627 32016,31627,32040,31627 32001,31627,32002,31627 32004,31628,32012,31628 32017,31628,32041,31628 32004,31629,32011,31629 32018,31629,32041,31629 32020,31630,32041,31630 32020,31631,32040,31631 32004,31630,32010,31632 32020,31632,32038,31632 32005,31633,32009,31633 32028,31633,32037,31633 32020,31633,32025,31634 32034,31634,32036,31634 32020,31635,32024,31635 32021,31636,32022,31636", + }, + [40] = { -- Fields of Glory (23486 tiles, 320 rects) + name = "Fields of Glory", + mainArea = 3, + bbox = { x1 = 32327, y1 = 31571, x2 = 32540, y2 = 31762 }, + rects = "32426,31571,32427,31571 32424,31572,32428,31572 32423,31573,32428,31573 32422,31574,32430,31574 32422,31575,32431,31575 32423,31576,32431,31576 32422,31577,32430,31577 32421,31578,32432,31578 32418,31578,32419,31578 32417,31579,32433,31579 32416,31580,32433,31580 32413,31581,32432,31581 32412,31582,32430,31582 32449,31582,32450,31582 32411,31583,32430,31583 32448,31583,32453,31583 32448,31584,32454,31584 32410,31584,32431,31584 32449,31585,32454,31585 32459,31586,32460,31586 32450,31586,32455,31586 32409,31585,32432,31587 32399,31587,32400,31587 32451,31587,32462,31587 32409,31588,32434,31588 32442,31588,32443,31588 32398,31588,32401,31588 32453,31588,32463,31588 32439,31588,32440,31588 32454,31589,32463,31589 32398,31589,32402,31589 32409,31589,32444,31589 32453,31590,32463,31590 32396,31590,32404,31590 32410,31590,32444,31590 32485,31590,32486,31591 32395,31591,32405,31591 32451,31591,32462,31591 32415,31591,32444,31592 32394,31592,32405,31592 32447,31592,32462,31592 32482,31592,32486,31592 32394,31593,32408,31593 32481,31593,32486,31593 32446,31593,32461,31593 32412,31593,32444,31593 32493,31590,32494,31594 32446,31594,32459,31594 32394,31594,32409,31594 32477,31594,32486,31594 32411,31594,32444,31594 32498,31594,32499,31594 32394,31595,32444,31595 32476,31595,32500,31596 32446,31595,32460,31596 32394,31596,32443,31596 32502,31596,32503,31596 32472,31597,32504,31597 32507,31597,32508,31597 32394,31597,32441,31597 32445,31597,32460,31597 32534,31590,32534,31598 32395,31598,32441,31598 32471,31598,32504,31598 32444,31598,32459,31598 32506,31598,32509,31598 32513,31598,32523,31598 32471,31599,32492,31599 32443,31599,32459,31599 32462,31599,32465,31599 32506,31599,32521,31599 32531,31599,32534,31599 32395,31599,32440,31600 32472,31600,32491,31600 32442,31600,32458,31600 32461,31600,32467,31600 32532,31600,32534,31600 32506,31600,32520,31601 32471,31601,32491,31601 32460,31601,32468,31601 32395,31601,32439,31601 32442,31601,32457,31601 32534,31601,32534,31602 32394,31602,32437,31602 32470,31602,32490,31602 32442,31602,32456,31602 32459,31602,32468,31602 32526,31602,32526,31602 32506,31602,32521,31602 32498,31599,32499,31603 32519,31603,32534,31603 32439,31603,32456,31603 32506,31603,32516,31603 32394,31603,32436,31603 32470,31603,32491,31603 32458,31603,32467,31603 32470,31604,32502,31604 32393,31604,32436,31604 32438,31604,32455,31604 32504,31604,32515,31604 32458,31604,32465,31605 32392,31605,32436,31605 32438,31605,32454,31605 32469,31605,32515,31605 32471,31606,32514,31606 32456,31606,32462,31606 32392,31606,32435,31606 32438,31606,32451,31607 32481,31607,32501,31607 32454,31607,32462,31607 32503,31607,32513,31607 32391,31607,32432,31607 32481,31608,32498,31608 32453,31608,32462,31608 32471,31607,32474,31609 32505,31608,32513,31609 32391,31608,32451,31609 32482,31609,32498,31609 32453,31609,32466,31609 32481,31610,32498,31610 32379,31610,32380,31610 32505,31610,32514,31610 32469,31610,32474,31610 32466,31610,32467,31610 32390,31610,32451,31611 32471,31611,32498,31611 32466,31611,32466,31611 32453,31610,32462,31612 32378,31611,32381,31612 32505,31611,32515,31612 32471,31612,32474,31612 32481,31612,32498,31613 32389,31612,32451,31613 32453,31613,32467,31613 32378,31613,32384,31613 32469,31613,32474,31613 32505,31613,32516,31613 32453,31614,32474,31614 32389,31614,32450,31614 32482,31614,32517,31614 32378,31614,32385,31615 32452,31615,32474,31615 32481,31615,32519,31615 32390,31615,32450,31616 32378,31616,32387,31616 32452,31616,32521,31616 32378,31617,32388,31617 32452,31617,32522,31617 32443,31617,32450,31617 32390,31617,32441,31618 32452,31618,32523,31618 32376,31618,32388,31618 32447,31618,32450,31618 32448,31619,32449,31619 32452,31619,32525,31619 32390,31619,32444,31619 32374,31619,32388,31619 32390,31620,32445,31620 32451,31620,32526,31620 32528,31620,32529,31620 32390,31621,32531,31621 32359,31621,32362,31621 32373,31620,32387,31622 32358,31622,32363,31622 32365,31622,32366,31622 32391,31622,32532,31622 32358,31623,32367,31623 32369,31623,32389,31623 32404,31623,32532,31623 32357,31624,32402,31624 32408,31624,32533,31624 32357,31625,32405,31625 32408,31625,32536,31626 32357,31626,32406,31626 32358,31627,32360,31627 32409,31627,32536,31627 32362,31627,32406,31627 32362,31628,32536,31628 32363,31629,32535,31629 32362,31630,32533,31630 32360,31631,32532,31631 32359,31632,32532,31632 32359,31633,32530,31633 32360,31634,32529,31634 32352,31635,32357,31635 32360,31635,32527,31635 32351,31636,32358,31636 32360,31636,32526,31636 32351,31637,32524,31638 32350,31639,32527,31639 32350,31640,32528,31642 32351,31643,32529,31643 32537,31643,32539,31643 32536,31644,32540,31645 32350,31644,32530,31646 32536,31646,32539,31646 32350,31647,32529,31647 32534,31647,32539,31647 32533,31648,32539,31648 32349,31648,32530,31648 32339,31648,32341,31648 32345,31648,32347,31648 32338,31649,32539,31650 32339,31651,32538,31652 32330,31652,32333,31652 32339,31653,32537,31653 32329,31653,32334,31653 32338,31654,32536,31654 32328,31654,32334,31654 32328,31655,32335,31655 32337,31655,32535,31655 32328,31656,32534,31656 32327,31657,32519,31657 32523,31657,32533,31657 32327,31658,32516,31658 32327,31659,32515,31659 32327,31660,32514,31660 32327,31661,32513,31661 32328,31662,32513,31662 32328,31663,32512,31663 32329,31664,32512,31664 32330,31665,32512,31667 32331,31668,32512,31668 32331,31669,32511,31669 32331,31670,32495,31670 32501,31670,32510,31670 32502,31671,32508,31671 32332,31671,32486,31671 32504,31672,32507,31672 32332,31672,32484,31672 32505,31673,32506,31673 32332,31673,32483,31673 32333,31674,32482,31674 32334,31675,32476,31675 32336,31676,32476,31676 32342,31677,32475,31677 32352,31678,32475,31678 32363,31679,32474,31679 32364,31680,32473,31680 32365,31681,32469,31681 32366,31682,32469,31682 32366,31683,32470,31684 32365,31685,32470,31685 32364,31686,32471,31688 32364,31689,32472,31689 32365,31690,32472,31690 32365,31691,32473,31691 32366,31692,32474,31692 32367,31693,32475,31693 32367,31694,32477,31694 32368,31695,32482,31695 32367,31696,32487,31696 32367,31697,32490,31697 32367,31698,32491,31698 32367,31699,32492,31699 32367,31700,32493,31700 32366,31701,32497,31701 32366,31702,32498,31702 32366,31703,32499,31703 32365,31704,32499,31704 32365,31705,32500,31707 32366,31708,32501,31709 32367,31710,32501,31711 32367,31712,32502,31713 32367,31714,32503,31715 32367,31716,32504,31717 32368,31718,32505,31718 32369,31719,32505,31719 32370,31720,32506,31720 32371,31721,32509,31721 32372,31722,32512,31722 32373,31723,32513,31723 32374,31724,32514,31724 32375,31725,32514,31725 32376,31726,32514,31726 32377,31727,32514,31727 32378,31728,32514,31728 32379,31729,32513,31729 32380,31730,32513,31730 32382,31731,32512,31731 32384,31732,32512,31732 32387,31733,32513,31733 32387,31734,32514,31734 32388,31735,32514,31737 32387,31738,32514,31738 32386,31739,32514,31740 32385,31741,32513,31741 32384,31742,32513,31742 32384,31743,32512,31744 32383,31745,32512,31745 32383,31746,32513,31746 32383,31747,32415,31747 32422,31747,32513,31747 32468,31748,32514,31748 32383,31748,32412,31748 32431,31748,32437,31748 32440,31748,32464,31748 32433,31749,32435,31749 32383,31749,32404,31749 32472,31749,32514,31749 32443,31749,32459,31749 32476,31750,32515,31750 32445,31750,32457,31750 32384,31750,32401,31750 32385,31751,32400,31751 32449,31751,32457,31751 32478,31751,32515,31752 32394,31752,32398,31752 32451,31752,32456,31752 32387,31752,32387,31752 32479,31753,32515,31753 32479,31754,32514,31754 32480,31755,32514,31755 32481,31756,32513,31756 32482,31757,32510,31757 32483,31758,32506,31758 32484,31759,32504,31759 32485,31760,32502,31760 32486,31761,32500,31761 32490,31762,32496,31762", + }, + [43] = { -- Carlin Surroundings (22952 tiles, 434 rects) + name = "Carlin Surroundings", + mainArea = 3, + bbox = { x1 = 32203, y1 = 31629, x2 = 32499, y2 = 31852 }, + rects = "32321,31629,32322,31629 32320,31630,32323,31630 32285,31631,32286,31631 32313,31631,32314,31631 32320,31631,32324,31632 32284,31632,32288,31632 32312,31632,32315,31632 32282,31633,32289,31633 32311,31633,32315,31633 32320,31633,32325,31633 32321,31634,32326,31634 32310,31634,32316,31634 32280,31634,32289,31634 32307,31634,32308,31634 32279,31635,32289,31635 32305,31635,32316,31635 32320,31635,32326,31635 32304,31636,32316,31637 32279,31636,32290,31638 32319,31636,32326,31638 32305,31638,32317,31638 32295,31639,32302,31639 32279,31639,32292,31639 32304,31639,32325,31639 32257,31640,32260,31640 32278,31640,32325,31641 32256,31641,32262,31641 32276,31642,32325,31642 32256,31642,32263,31642 32257,31643,32263,31643 32275,31643,32325,31643 32273,31644,32326,31644 32256,31644,32263,31644 32272,31645,32328,31645 32256,31645,32262,31645 32271,31646,32328,31646 32256,31646,32263,31646 32256,31647,32264,31647 32270,31647,32329,31647 32266,31648,32329,31648 32255,31648,32264,31648 32256,31649,32329,31649 32257,31650,32329,31650 32258,31651,32329,31651 32259,31652,32329,31652 32259,31653,32328,31653 32254,31655,32255,31655 32260,31654,32327,31656 32253,31656,32258,31656 32248,31660,32249,31660 32253,31657,32326,31661 32243,31661,32250,31661 32253,31662,32327,31662 32242,31662,32251,31662 32304,31663,32327,31663 32241,31663,32251,31663 32304,31664,32328,31664 32239,31664,32250,31664 32254,31663,32288,31665 32293,31663,32293,31665 32238,31665,32250,31665 32304,31665,32329,31665 32298,31666,32329,31666 32293,31666,32296,31666 32237,31666,32288,31667 32304,31667,32329,31667 32300,31667,32300,31668 32293,31667,32293,31668 32304,31668,32330,31670 32238,31668,32288,31670 32300,31670,32300,31670 32233,31670,32234,31670 32293,31670,32293,31671 32303,31671,32331,31671 32232,31671,32288,31671 32300,31671,32301,31671 32298,31672,32300,31672 32293,31672,32295,31672 32304,31672,32331,31673 32231,31672,32288,31673 32295,31673,32295,31673 32298,31673,32298,31673 32231,31674,32296,31674 32298,31674,32332,31674 32231,31675,32333,31675 32231,31676,32335,31676 32231,31677,32341,31677 32239,31678,32351,31678 32239,31679,32362,31679 32239,31680,32363,31680 32240,31681,32364,31681 32241,31682,32365,31682 32239,31683,32365,31683 32238,31684,32365,31684 32240,31685,32364,31685 32240,31686,32363,31687 32238,31688,32363,31688 32240,31689,32363,31689 32243,31690,32364,31690 32244,31691,32364,31691 32244,31692,32365,31692 32244,31693,32366,31693 32276,31694,32366,31694 32244,31694,32259,31695 32276,31695,32367,31695 32264,31694,32270,31696 32215,31696,32219,31696 32243,31696,32259,31696 32276,31696,32366,31696 32264,31697,32271,31697 32242,31697,32262,31697 32273,31697,32366,31697 32214,31697,32220,31697 32214,31698,32227,31698 32241,31698,32366,31698 32213,31699,32229,31699 32239,31699,32366,31699 32237,31700,32366,31700 32212,31700,32235,31700 32212,31701,32365,31701 32213,31702,32264,31702 32266,31702,32365,31702 32267,31703,32365,31703 32213,31703,32262,31703 32214,31704,32262,31705 32267,31704,32364,31705 32216,31706,32364,31706 32221,31707,32364,31707 32220,31708,32365,31708 32219,31709,32365,31709 32219,31710,32366,31710 32220,31711,32366,31711 32219,31712,32366,31712 32218,31713,32366,31714 32216,31715,32366,31715 32215,31716,32366,31717 32215,31718,32367,31718 32216,31719,32368,31719 32219,31720,32369,31720 32329,31721,32370,31721 32219,31721,32326,31722 32330,31722,32371,31722 32331,31723,32372,31723 32220,31723,32223,31723 32280,31723,32325,31723 32231,31723,32275,31723 32281,31724,32324,31724 32331,31724,32373,31724 32331,31725,32374,31725 32231,31724,32273,31726 32282,31725,32326,31726 32331,31726,32375,31726 32330,31727,32376,31727 32279,31727,32326,31727 32231,31727,32275,31727 32278,31728,32377,31728 32230,31728,32276,31728 32230,31729,32378,31729 32231,31730,32379,31730 32234,31731,32381,31731 32234,31732,32383,31732 32234,31733,32386,31733 32233,31734,32386,31734 32256,31735,32387,31735 32233,31735,32239,31735 32248,31735,32251,31735 32257,31736,32387,31736 32234,31736,32239,31736 32242,31736,32246,31736 32252,31737,32254,31737 32261,31737,32387,31737 32235,31737,32238,31737 32241,31737,32248,31737 32262,31738,32386,31738 32241,31738,32257,31738 32224,31738,32225,31738 32227,31738,32231,31738 32236,31738,32237,31738 32262,31739,32385,31739 32239,31739,32258,31739 32222,31739,32232,31739 32238,31740,32385,31740 32221,31740,32233,31740 32220,31741,32384,31741 32220,31742,32383,31742 32219,31743,32383,31743 32218,31744,32383,31744 32345,31745,32382,31745 32217,31745,32337,31745 32416,31747,32421,31747 32217,31746,32310,31748 32465,31748,32467,31748 32438,31748,32439,31748 32413,31748,32430,31748 32352,31746,32382,31749 32436,31749,32442,31749 32460,31749,32471,31749 32405,31749,32432,31749 32214,31749,32310,31749 32458,31750,32475,31750 32352,31750,32383,31750 32402,31750,32444,31750 32213,31750,32310,31751 32401,31751,32448,31751 32458,31751,32477,31751 32357,31751,32384,31751 32399,31752,32450,31752 32357,31752,32386,31752 32457,31752,32477,31752 32388,31752,32393,31752 32204,31753,32204,31753 32357,31753,32478,31753 32212,31752,32310,31754 32357,31754,32423,31754 32425,31754,32478,31754 32209,31755,32310,31755 32425,31755,32479,31755 32357,31755,32364,31756 32371,31755,32415,31756 32424,31756,32480,31756 32209,31756,32302,31757 32372,31757,32415,31757 32422,31757,32481,31757 32422,31758,32482,31758 32375,31758,32415,31758 32203,31754,32205,31759 32212,31758,32302,31759 32375,31759,32416,31759 32431,31759,32483,31759 32425,31759,32425,31760 32431,31760,32484,31760 32209,31760,32302,31760 32432,31761,32485,31761 32208,31761,32267,31761 32375,31760,32403,31762 32410,31760,32416,31762 32273,31761,32302,31762 32432,31762,32489,31762 32206,31762,32267,31762 32376,31763,32381,31763 32411,31763,32416,31763 32431,31763,32496,31763 32275,31763,32280,31763 32386,31763,32403,31764 32205,31763,32268,31764 32411,31764,32415,31764 32429,31764,32496,31764 32283,31763,32295,31765 32275,31764,32278,31765 32431,31765,32497,31765 32206,31765,32268,31765 32387,31765,32403,31765 32207,31766,32271,31766 32388,31766,32403,31766 32273,31766,32278,31766 32431,31766,32498,31766 32284,31766,32295,31766 32465,31767,32498,31767 32431,31767,32463,31767 32396,31767,32403,31767 32207,31767,32278,31767 32283,31767,32295,31768 32465,31768,32499,31768 32418,31768,32419,31768 32208,31768,32219,31768 32227,31768,32279,31768 32431,31768,32462,31768 32397,31768,32403,31769 32227,31769,32291,31769 32431,31769,32461,31769 32208,31769,32217,31769 32464,31769,32499,31769 32417,31769,32419,31769 32425,31769,32425,31769 32411,31765,32414,31770 32212,31770,32213,31770 32398,31770,32403,31770 32463,31770,32498,31770 32209,31770,32209,31770 32215,31770,32217,31770 32398,31771,32406,31771 32408,31771,32414,31771 32462,31771,32498,31771 32217,31771,32218,31771 32417,31770,32460,31772 32217,31772,32217,31772 32462,31772,32496,31773 32418,31773,32460,31773 32228,31770,32291,31774 32398,31772,32414,31774 32462,31774,32495,31774 32419,31774,32459,31774 32398,31775,32416,31775 32461,31775,32495,31775 32229,31775,32291,31775 32461,31776,32493,31776 32495,31776,32495,31776 32227,31776,32291,31777 32490,31777,32493,31777 32461,31777,32488,31777 32491,31778,32492,31778 32232,31778,32289,31778 32461,31778,32487,31778 32233,31779,32289,31779 32461,31779,32486,31779 32461,31780,32485,31780 32398,31776,32417,31781 32234,31780,32289,31781 32462,31781,32485,31781 32420,31775,32459,31782 32463,31782,32486,31782 32463,31783,32487,31783 32420,31783,32460,31783 32234,31782,32290,31784 32463,31784,32488,31785 32234,31785,32289,31785 32420,31784,32461,31786 32463,31786,32487,31786 32228,31786,32230,31786 32233,31786,32288,31786 32420,31787,32460,31787 32464,31787,32486,31787 32399,31782,32417,31788 32228,31787,32287,31788 32466,31788,32480,31788 32420,31788,32457,31788 32482,31788,32484,31788 32224,31789,32287,31789 32424,31789,32457,31789 32467,31789,32480,31789 32398,31789,32417,31789 32420,31789,32422,31789 32420,31790,32421,31790 32425,31790,32457,31790 32471,31790,32480,31790 32223,31790,32287,31790 32399,31790,32417,31790 32472,31791,32480,31791 32402,31791,32417,31791 32222,31791,32287,31792 32426,31791,32456,31792 32413,31792,32416,31792 32473,31792,32481,31792 32403,31792,32410,31793 32476,31793,32482,31793 32221,31793,32287,31793 32425,31793,32456,31793 32223,31794,32287,31794 32477,31794,32482,31794 32404,31794,32409,31794 32425,31794,32455,31795 32478,31795,32481,31795 32224,31795,32287,31795 32425,31796,32454,31796 32425,31797,32453,31797 32225,31796,32287,31798 32426,31798,32433,31798 32435,31798,32452,31799 32428,31799,32432,31799 32224,31799,32287,31799 32428,31800,32431,31800 32436,31800,32438,31800 32442,31800,32455,31800 32223,31800,32287,31801 32429,31801,32430,31801 32442,31801,32456,31801 32235,31802,32286,31802 32226,31802,32229,31802 32441,31802,32457,31803 32227,31803,32228,31803 32228,31804,32228,31804 32442,31804,32456,31804 32239,31803,32285,31805 32445,31805,32456,31805 32464,31806,32466,31806 32447,31806,32456,31806 32462,31807,32467,31807 32450,31807,32456,31807 32238,31806,32284,31808 32450,31808,32467,31808 32239,31809,32285,31809 32451,31809,32467,31810 32239,31810,32286,31810 32240,31811,32286,31811 32451,31811,32466,31811 32241,31812,32286,31812 32452,31812,32464,31812 32454,31813,32464,31813 32242,31813,32286,31814 32453,31814,32464,31815 32243,31815,32286,31815 32245,31816,32287,31816 32454,31816,32463,31816 32455,31817,32456,31817 32247,31817,32287,31817 32247,31818,32286,31818 32248,31819,32285,31819 32250,31820,32285,31820 32251,31821,32285,31821 32258,31822,32285,31822 32278,31823,32281,31823 32278,31824,32279,31824 32281,31824,32281,31825 32278,31825,32278,31825 32258,31823,32274,31827 32278,31827,32278,31827 32258,31828,32279,31828 32278,31829,32278,31830 32258,31829,32274,31831 32259,31832,32274,31832 32260,31833,32272,31834 32260,31835,32273,31836 32256,31837,32273,31837 32255,31838,32273,31838 32255,31839,32272,31841 32275,31841,32276,31841 32255,31842,32277,31842 32256,31843,32278,31843 32257,31844,32278,31844 32257,31845,32277,31845 32257,31846,32268,31846 32271,31846,32277,31846 32274,31847,32276,31847 32258,31847,32266,31847 32284,31847,32285,31847 32282,31848,32286,31848 32259,31848,32266,31848 32281,31849,32286,31849 32259,31849,32265,31849 32259,31850,32264,31850 32280,31850,32286,31850 32260,31851,32261,31851 32280,31851,32285,31851 32281,31852,32282,31852", + }, + [45] = { -- Kazordoon Troll Den (720 tiles, 30 rects) + name = "Kazordoon Troll Den", + mainArea = 14, + bbox = { x1 = 32646, y1 = 31942, x2 = 32672, y2 = 31978 }, + rects = "32665,31942,32666,31942 32664,31943,32667,31943 32661,31944,32668,31944 32659,31945,32668,31945 32655,31946,32669,31946 32652,31947,32670,31947 32651,31948,32670,31948 32650,31949,32670,31949 32649,31950,32670,31950 32649,31951,32671,31954 32649,31955,32672,31957 32649,31958,32671,31958 32648,31959,32671,31959 32647,31960,32670,31960 32646,31961,32670,31963 32646,31964,32671,31964 32647,31965,32671,31965 32648,31966,32671,31966 32648,31967,32670,31967 32649,31968,32670,31968 32650,31969,32671,31969 32651,31970,32671,31970 32652,31971,32671,31971 32652,31972,32672,31972 32653,31973,32672,31973 32654,31974,32672,31974 32655,31975,32672,31975 32656,31976,32671,31976 32661,31977,32670,31977 32665,31978,32666,31978", + }, + [46] = { -- Orc Lands (14454 tiles, 318 rects) + name = "Orc Lands", + mainArea = 14, + bbox = { x1 = 32812, y1 = 31676, x2 = 32980, y2 = 31856 }, + rects = "32909,31676,32910,31676 32915,31678,32916,31678 32887,31678,32890,31678 32908,31677,32911,31679 32914,31679,32919,31679 32886,31679,32892,31679 32886,31680,32893,31680 32908,31680,32910,31680 32926,31681,32929,31681 32886,31681,32894,31681 32908,31681,32911,31681 32914,31680,32920,31682 32884,31682,32894,31682 32906,31682,32912,31682 32925,31682,32930,31682 32945,31682,32946,31682 32923,31683,32932,31683 32904,31683,32921,31683 32944,31683,32947,31683 32883,31683,32894,31683 32902,31684,32937,31684 32943,31684,32947,31684 32882,31684,32898,31684 32882,31685,32899,31685 32901,31685,32948,31685 32883,31686,32948,31686 32956,31686,32958,31686 32955,31687,32959,31687 32884,31687,32949,31687 32952,31688,32960,31688 32884,31688,32950,31688 32883,31689,32961,31689 32883,31690,32964,31690 32883,31691,32965,31691 32883,31692,32886,31692 32889,31692,32965,31692 32884,31693,32885,31693 32895,31693,32964,31693 32894,31694,32964,31695 32875,31695,32876,31695 32895,31696,32965,31696 32874,31696,32877,31697 32892,31697,32893,31697 32883,31697,32885,31697 32887,31697,32888,31697 32903,31697,32966,31697 32896,31697,32898,31697 32874,31698,32894,31698 32903,31698,32967,31698 32872,31699,32900,31699 32904,31699,32968,31699 32871,31700,32901,31700 32822,31700,32825,31700 32905,31700,32969,31700 32905,31701,32970,31701 32871,31701,32902,31701 32833,31701,32835,31702 32821,31701,32826,31702 32872,31702,32875,31702 32878,31702,32903,31702 32859,31702,32861,31702 32906,31702,32970,31703 32873,31703,32874,31703 32831,31703,32835,31703 32857,31703,32863,31703 32821,31703,32827,31703 32856,31704,32865,31704 32822,31704,32835,31704 32906,31704,32969,31705 32822,31705,32836,31705 32880,31703,32904,31706 32856,31705,32866,31707 32906,31706,32968,31707 32852,31708,32866,31708 32907,31708,32968,31708 32822,31706,32837,31709 32880,31707,32903,31709 32851,31709,32866,31710 32908,31709,32968,31710 32881,31710,32905,31710 32823,31710,32837,31710 32908,31711,32967,31711 32849,31711,32866,31711 32825,31711,32838,31711 32877,31711,32906,31711 32869,31711,32870,31711 32847,31712,32872,31712 32876,31712,32906,31712 32909,31712,32966,31712 32824,31712,32839,31713 32909,31713,32965,31713 32846,31713,32873,31714 32819,31714,32839,31714 32955,31714,32961,31714 32910,31714,32953,31714 32876,31713,32907,31715 32956,31715,32957,31715 32914,31715,32951,31715 32847,31715,32873,31715 32818,31715,32839,31715 32876,31716,32912,31716 32915,31716,32950,31716 32818,31716,32844,31716 32850,31716,32873,31717 32818,31717,32847,31717 32875,31717,32913,31717 32818,31718,32848,31718 32850,31718,32872,31718 32875,31718,32914,31718 32917,31717,32949,31719 32874,31719,32915,31719 32850,31719,32866,31719 32814,31719,32848,31719 32869,31720,32915,31720 32813,31720,32848,31720 32851,31720,32866,31720 32918,31720,32950,31720 32852,31721,32866,31721 32921,31721,32950,31721 32813,31721,32849,31721 32868,31721,32915,31721 32868,31722,32918,31722 32852,31722,32865,31722 32812,31722,32850,31723 32853,31723,32865,31723 32921,31722,32949,31724 32867,31723,32919,31724 32813,31724,32851,31724 32853,31724,32864,31724 32814,31725,32851,31725 32853,31725,32919,31725 32853,31726,32920,31726 32922,31725,32949,31727 32815,31726,32851,31727 32854,31727,32920,31727 32815,31728,32852,31728 32855,31728,32949,31730 32855,31731,32950,31732 32815,31729,32853,31733 32856,31733,32949,31733 32857,31734,32949,31734 32864,31735,32949,31735 32859,31736,32862,31736 32858,31737,32867,31737 32815,31734,32854,31738 32870,31736,32950,31738 32858,31738,32868,31738 32870,31739,32949,31740 32815,31739,32868,31740 32816,31741,32949,31741 32816,31742,32948,31743 32816,31744,32947,31746 32816,31747,32928,31747 32933,31747,32947,31747 32935,31748,32947,31748 32914,31748,32925,31748 32895,31748,32906,31749 32914,31749,32924,31749 32940,31749,32947,31749 32816,31748,32887,31750 32814,31751,32887,31751 32813,31752,32887,31754 32813,31755,32889,31755 32814,31756,32889,31756 32815,31757,32889,31762 32815,31763,32875,31763 32885,31763,32889,31763 32887,31764,32889,31764 32815,31764,32873,31764 32816,31765,32873,31765 32818,31766,32873,31766 32818,31767,32872,31768 32818,31769,32871,31769 32820,31770,32871,31772 32822,31773,32871,31773 32822,31774,32872,31774 32823,31775,32872,31775 32824,31776,32872,31776 32824,31777,32824,31777 32826,31777,32873,31777 32888,31778,32889,31778 32827,31778,32874,31779 32886,31779,32889,31779 32827,31780,32889,31781 32828,31782,32889,31783 32829,31784,32841,31786 32844,31784,32889,31787 32830,31787,32841,31787 32845,31788,32889,31788 32834,31788,32841,31789 32847,31789,32889,31789 32835,31790,32845,31790 32848,31790,32889,31790 32850,31791,32889,31791 32836,31791,32846,31791 32836,31792,32847,31792 32850,31792,32887,31793 32837,31793,32848,31794 32851,31794,32887,31794 32837,31795,32849,31795 32855,31795,32887,31795 32838,31796,32853,31796 32839,31797,32858,31797 32861,31796,32887,31798 32895,31797,32903,31798 32841,31798,32859,31798 32861,31799,32903,31799 32842,31799,32859,31799 32862,31800,32903,31800 32844,31800,32859,31800 32845,31801,32859,31801 32866,31801,32901,31801 32847,31802,32864,31802 32848,31803,32865,31803 32853,31804,32865,31804 32867,31802,32901,31805 32855,31805,32865,31805 32868,31806,32901,31806 32856,31806,32865,31806 32909,31806,32935,31807 32943,31806,32972,31807 32857,31807,32866,31807 32869,31807,32901,31807 32858,31808,32867,31808 32870,31808,32980,31809 32860,31809,32868,31809 32871,31810,32980,31810 32864,31810,32868,31810 32864,31811,32869,31811 32872,31811,32979,31811 32873,31812,32979,31812 32865,31812,32869,31812 32866,31813,32871,31813 32878,31813,32980,31814 32867,31814,32875,31814 32867,31815,32876,31815 32879,31815,32980,31815 32868,31816,32877,31816 32912,31816,32980,31816 32881,31816,32905,31816 32912,31817,32979,31817 32908,31817,32909,31817 32869,31817,32879,31817 32883,31817,32905,31818 32868,31818,32880,31818 32912,31818,32976,31818 32907,31818,32910,31819 32884,31819,32886,31819 32912,31819,32975,31819 32890,31819,32904,31819 32868,31819,32881,31820 32891,31820,32903,31820 32913,31820,32975,31820 32906,31820,32910,31820 32868,31821,32889,31821 32893,31821,32902,31821 32905,31821,32911,31821 32914,31821,32974,31821 32894,31822,32902,31822 32868,31822,32891,31822 32895,31823,32901,31823 32868,31823,32892,31823 32904,31822,32912,31824 32914,31822,32973,31824 32869,31824,32892,31824 32915,31825,32973,31825 32874,31825,32912,31825 32916,31826,32973,31826 32875,31826,32912,31826 32876,31827,32884,31827 32923,31827,32973,31827 32886,31827,32914,31827 32925,31828,32972,31828 32877,31828,32883,31828 32887,31828,32921,31828 32926,31829,32971,31829 32878,31829,32880,31829 32892,31829,32923,31829 32927,31830,32970,31830 32894,31830,32924,31830 32899,31831,32925,31831 32928,31831,32971,31831 32899,31832,32926,31832 32958,31832,32971,31832 32960,31833,32970,31833 32928,31832,32956,31834 32898,31833,32926,31834 32962,31834,32966,31835 32934,31835,32957,31835 32929,31835,32930,31835 32899,31835,32926,31836 32963,31836,32965,31836 32935,31836,32957,31836 32935,31837,32956,31837 32900,31837,32932,31837 32901,31838,32933,31838 32954,31838,32955,31838 32936,31838,32939,31838 32941,31839,32952,31839 32902,31839,32934,31839 32913,31840,32954,31840 32903,31840,32911,31840 32913,31841,32955,31841 32914,31842,32955,31842 32915,31843,32945,31843 32947,31843,32954,31843 32917,31844,32944,31844 32918,31845,32942,31845 32919,31846,32940,31847 32918,31848,32940,31849 32918,31850,32939,31850 32918,31851,32938,31851 32918,31852,32937,31852 32919,31853,32934,31853 32921,31854,32932,31854 32928,31855,32932,31855 32923,31855,32926,31855 32929,31856,32931,31856", + }, + [47] = { -- Femor Hills (11824 tiles, 210 rects) + name = "Femor Hills", + mainArea = 14, + bbox = { x1 = 32461, y1 = 31753, x2 = 32623, y2 = 31876 }, + rects = "32516,31753,32517,31753 32515,31754,32520,31754 32515,31755,32522,31755 32514,31756,32523,31756 32539,31756,32552,31756 32511,31757,32524,31757 32534,31757,32557,31757 32507,31758,32526,31758 32532,31758,32560,31758 32529,31759,32562,31759 32591,31759,32599,31759 32505,31759,32527,31759 32588,31760,32607,31760 32503,31760,32564,31760 32583,31761,32611,31761 32501,31761,32567,31761 32497,31762,32569,31762 32580,31762,32613,31762 32497,31763,32572,31763 32575,31763,32613,31763 32497,31764,32616,31764 32498,31765,32616,31765 32499,31766,32617,31767 32500,31768,32618,31769 32499,31770,32618,31771 32497,31772,32618,31772 32497,31773,32619,31773 32496,31774,32619,31776 32497,31777,32619,31777 32498,31778,32620,31778 32497,31779,32620,31780 32497,31781,32621,31781 32498,31782,32621,31782 32499,31783,32621,31783 32501,31784,32622,31784 32504,31785,32622,31785 32505,31786,32622,31786 32503,31787,32567,31787 32571,31787,32622,31787 32503,31788,32566,31788 32572,31788,32622,31788 32573,31789,32623,31789 32503,31789,32565,31789 32574,31790,32623,31790 32504,31790,32564,31791 32503,31792,32565,31793 32574,31791,32622,31794 32503,31794,32566,31794 32574,31795,32621,31795 32504,31795,32566,31795 32529,31796,32568,31796 32573,31796,32621,31796 32506,31796,32525,31796 32506,31797,32524,31797 32573,31797,32620,31798 32515,31798,32516,31798 32506,31798,32513,31798 32518,31798,32523,31798 32519,31799,32522,31799 32530,31797,32568,31800 32573,31799,32619,31800 32505,31799,32513,31801 32520,31800,32523,31801 32574,31801,32618,31801 32529,31801,32568,31801 32505,31802,32512,31802 32521,31802,32522,31802 32529,31802,32570,31803 32574,31802,32617,31803 32505,31803,32507,31804 32574,31804,32616,31804 32528,31804,32570,31804 32528,31805,32567,31805 32574,31805,32615,31805 32504,31805,32507,31806 32527,31806,32567,31806 32573,31806,32614,31806 32505,31807,32506,31807 32526,31807,32566,31807 32572,31807,32612,31807 32526,31808,32565,31808 32570,31808,32610,31808 32527,31809,32565,31809 32529,31810,32565,31810 32513,31810,32516,31810 32569,31809,32609,31811 32523,31811,32526,31811 32543,31811,32564,31811 32477,31811,32489,31811 32511,31811,32517,31811 32530,31811,32532,31812 32519,31812,32520,31812 32543,31812,32562,31812 32480,31812,32486,31812 32510,31812,32517,31812 32522,31812,32527,31812 32568,31812,32608,31812 32546,31813,32558,31813 32567,31813,32608,31813 32510,31813,32533,31813 32547,31814,32558,31814 32510,31814,32540,31814 32566,31814,32607,31814 32547,31815,32556,31815 32565,31815,32606,31815 32510,31815,32543,31815 32548,31816,32552,31816 32561,31816,32605,31816 32509,31816,32544,31816 32480,31813,32480,31817 32498,31817,32499,31817 32509,31817,32545,31817 32559,31817,32605,31817 32486,31813,32486,31818 32509,31818,32546,31818 32497,31818,32500,31818 32558,31818,32605,31818 32505,31819,32507,31819 32555,31819,32605,31819 32510,31819,32547,31819 32484,31819,32486,31819 32480,31819,32482,31819 32497,31819,32501,31820 32486,31820,32486,31821 32480,31820,32480,31821 32504,31820,32605,31821 32498,31821,32502,31821 32480,31822,32486,31822 32499,31822,32502,31822 32477,31812,32477,31823 32489,31812,32489,31823 32505,31822,32605,31823 32499,31823,32503,31823 32491,31823,32493,31823 32488,31824,32605,31824 32484,31824,32485,31824 32477,31824,32478,31824 32481,31824,32482,31824 32477,31825,32605,31825 32470,31826,32471,31826 32481,31826,32485,31827 32469,31827,32473,31827 32491,31826,32604,31828 32480,31828,32486,31828 32468,31828,32474,31828 32478,31829,32604,31829 32467,31829,32476,31829 32467,31830,32604,31830 32467,31831,32603,31831 32462,31831,32465,31831 32461,31832,32603,31834 32462,31835,32602,31835 32466,31836,32601,31837 32467,31838,32602,31838 32472,31839,32601,31839 32473,31840,32601,31840 32475,31841,32601,31841 32479,31842,32601,31842 32480,31843,32599,31843 32481,31844,32599,31844 32481,31845,32598,31845 32481,31846,32597,31847 32481,31848,32596,31848 32481,31849,32595,31849 32481,31850,32594,31850 32481,31851,32593,31851 32481,31852,32519,31852 32560,31852,32593,31852 32559,31853,32592,31853 32482,31853,32516,31853 32522,31852,32557,31854 32560,31854,32592,31854 32484,31854,32515,31854 32485,31855,32514,31855 32560,31855,32591,31855 32523,31855,32558,31855 32486,31856,32512,31856 32525,31856,32557,31856 32562,31856,32589,31856 32527,31857,32556,31857 32563,31857,32588,31857 32529,31858,32554,31858 32565,31858,32587,31858 32486,31857,32511,31859 32531,31859,32552,31859 32566,31859,32587,31859 32532,31860,32551,31860 32567,31860,32587,31860 32485,31860,32511,31860 32534,31861,32549,31861 32485,31861,32512,31861 32569,31861,32586,31861 32571,31862,32584,31862 32486,31862,32513,31862 32536,31862,32547,31862 32573,31863,32580,31863 32537,31863,32545,31863 32539,31864,32542,31864 32488,31863,32513,31865 32488,31866,32512,31866 32488,31867,32510,31867 32489,31868,32509,31868 32491,31869,32507,31869 32492,31870,32507,31870 32492,31871,32506,31871 32493,31872,32506,31872 32494,31873,32506,31873 32495,31874,32506,31874 32495,31875,32505,31875 32496,31876,32504,31876", + }, + [49] = { -- Horned Fox Lair (632 tiles, 36 rects) + name = "Horned Fox Lair", + mainArea = 14, + bbox = { x1 = 32448, y1 = 31937, x2 = 32475, y2 = 31980 }, + rects = "32454,31937,32456,31937 32453,31938,32457,31938 32453,31939,32458,31939 32453,31940,32459,31940 32465,31940,32468,31940 32454,31941,32469,31941 32455,31942,32469,31942 32456,31943,32469,31943 32457,31944,32469,31945 32457,31946,32468,31946 32456,31947,32468,31948 32453,31949,32469,31949 32452,31950,32469,31950 32452,31951,32470,31951 32451,31952,32471,31952 32450,31953,32471,31953 32449,31954,32471,31954 32448,31955,32471,31956 32448,31957,32472,31957 32449,31958,32472,31958 32451,31959,32472,31959 32455,31960,32472,31960 32458,31961,32473,31962 32458,31963,32472,31964 32459,31965,32472,31965 32458,31966,32471,31966 32457,31967,32471,31968 32458,31969,32471,31969 32460,31970,32471,31970 32462,31971,32471,31972 32462,31973,32473,31973 32463,31974,32474,31974 32464,31975,32475,31975 32465,31976,32475,31978 32466,31979,32470,31979 32467,31980,32467,31980", + }, + [50] = { -- Kazordoon Surroundings (64131 tiles, 879 rects) + name = "Kazordoon Surroundings", + mainArea = 14, + bbox = { x1 = 32384, y1 = 31762, x2 = 32848, y2 = 32124 }, + rects = "32712,31762,32714,31762 32712,31763,32715,31763 32712,31764,32719,31764 32712,31765,32723,31765 32693,31766,32693,31766 32696,31766,32696,31767 32712,31766,32726,31767 32686,31767,32693,31767 32705,31767,32705,31767 32709,31763,32709,31768 32685,31768,32693,31768 32704,31768,32705,31768 32696,31768,32697,31768 32685,31769,32696,31769 32705,31769,32709,31769 32686,31770,32696,31770 32712,31768,32727,31771 32705,31770,32710,31771 32701,31771,32701,31771 32687,31771,32696,31771 32687,31772,32697,31772 32699,31772,32710,31772 32687,31773,32711,31773 32713,31772,32727,31774 32714,31775,32726,31775 32686,31774,32711,31776 32715,31776,32724,31776 32686,31777,32713,31777 32716,31777,32724,31778 32686,31778,32714,31778 32717,31779,32725,31779 32683,31779,32714,31779 32682,31780,32715,31780 32717,31780,32727,31780 32673,31781,32715,31781 32717,31781,32728,31782 32672,31782,32715,31783 32736,31783,32737,31783 32717,31783,32729,31783 32735,31784,32738,31784 32708,31784,32714,31784 32668,31784,32701,31784 32717,31784,32730,31785 32709,31785,32712,31785 32704,31785,32705,31785 32735,31785,32739,31785 32667,31785,32701,31785 32714,31786,32731,31786 32703,31786,32706,31786 32666,31786,32700,31786 32734,31786,32739,31786 32666,31787,32699,31787 32710,31787,32731,31787 32703,31787,32707,31787 32733,31787,32739,31788 32701,31788,32707,31788 32666,31788,32698,31788 32709,31788,32731,31789 32665,31789,32692,31789 32700,31789,32707,31789 32733,31789,32738,31789 32694,31790,32707,31790 32664,31790,32691,31790 32710,31790,32738,31790 32693,31791,32708,31791 32712,31791,32738,31791 32664,31791,32686,31791 32663,31792,32685,31792 32690,31792,32710,31792 32714,31792,32747,31792 32689,31793,32711,31793 32714,31793,32752,31793 32663,31793,32681,31794 32714,31794,32753,31794 32689,31794,32712,31795 32684,31795,32685,31795 32659,31795,32681,31795 32714,31795,32754,31796 32657,31796,32681,31796 32683,31796,32712,31797 32715,31797,32757,31797 32656,31797,32680,31797 32715,31798,32759,31798 32656,31798,32679,31798 32682,31798,32713,31799 32656,31799,32678,31799 32680,31800,32713,31800 32677,31801,32713,31801 32715,31799,32760,31802 32656,31800,32674,31802 32676,31802,32713,31803 32654,31803,32673,31803 32716,31803,32761,31804 32651,31804,32673,31804 32675,31804,32714,31805 32717,31805,32761,31805 32616,31805,32616,31805 32615,31806,32617,31806 32717,31806,32762,31806 32650,31805,32673,31807 32675,31806,32715,31807 32613,31807,32617,31807 32611,31808,32618,31808 32649,31808,32673,31808 32676,31808,32715,31809 32648,31809,32674,31809 32610,31809,32619,31809 32610,31810,32620,31810 32676,31810,32714,31810 32717,31807,32763,31811 32610,31811,32621,31811 32676,31811,32713,31811 32609,31812,32622,31812 32715,31812,32765,31812 32647,31810,32674,31813 32609,31813,32623,31813 32676,31812,32712,31814 32608,31814,32625,31814 32607,31815,32634,31815 32714,31813,32766,31816 32646,31814,32673,31816 32606,31816,32638,31816 32675,31815,32712,31817 32606,31817,32640,31817 32647,31817,32673,31817 32714,31817,32765,31817 32606,31818,32641,31818 32675,31818,32711,31818 32714,31818,32764,31818 32647,31818,32672,31818 32674,31819,32710,31819 32606,31819,32672,31819 32714,31819,32763,31819 32674,31820,32709,31820 32606,31820,32671,31820 32712,31820,32763,31820 32773,31821,32773,31821 32711,31821,32763,31821 32674,31821,32707,31821 32674,31822,32706,31822 32709,31822,32765,31822 32772,31822,32773,31822 32671,31823,32703,31823 32708,31823,32773,31823 32708,31824,32772,31824 32606,31821,32667,31825 32696,31824,32699,31825 32670,31824,32690,31825 32702,31825,32703,31825 32708,31825,32771,31825 32707,31826,32771,31826 32670,31826,32689,31826 32697,31826,32698,31826 32701,31826,32704,31827 32692,31827,32693,31827 32605,31826,32667,31828 32669,31827,32688,31828 32706,31827,32771,31828 32691,31828,32694,31828 32698,31828,32704,31828 32605,31829,32666,31829 32669,31829,32687,31829 32707,31829,32771,31829 32690,31829,32703,31830 32605,31830,32661,31830 32708,31830,32771,31830 32669,31830,32686,31831 32711,31831,32772,31831 32689,31831,32702,31831 32663,31832,32664,31832 32668,31832,32685,31832 32705,31832,32773,31832 32688,31832,32702,31832 32604,31831,32660,31833 32687,31833,32702,31833 32704,31833,32773,31833 32704,31834,32772,31834 32604,31834,32659,31834 32662,31833,32685,31835 32603,31835,32651,31835 32654,31836,32685,31836 32602,31836,32651,31837 32653,31837,32685,31837 32703,31835,32771,31838 32603,31838,32651,31838 32703,31839,32772,31839 32777,31839,32778,31839 32602,31839,32650,31839 32687,31834,32701,31840 32653,31838,32684,31840 32602,31840,32649,31840 32703,31840,32779,31840 32602,31841,32645,31841 32651,31841,32684,31841 32647,31842,32685,31842 32602,31842,32642,31842 32688,31841,32701,31843 32703,31841,32781,31843 32600,31843,32642,31843 32645,31843,32686,31843 32600,31844,32641,31844 32471,31844,32475,31844 32703,31844,32787,31844 32703,31845,32788,31845 32471,31845,32476,31845 32599,31845,32641,31845 32644,31844,32701,31846 32598,31846,32641,31847 32703,31846,32789,31847 32470,31846,32476,31847 32645,31847,32700,31847 32470,31848,32477,31848 32597,31848,32643,31848 32465,31848,32467,31848 32702,31848,32789,31849 32596,31849,32647,31849 32464,31849,32477,31849 32702,31850,32796,31850 32595,31850,32648,31850 32650,31848,32700,31851 32463,31850,32478,31851 32594,31851,32648,31851 32703,31851,32797,31852 32520,31852,32521,31852 32464,31852,32478,31852 32594,31852,32647,31852 32650,31852,32701,31853 32703,31853,32798,31853 32517,31853,32521,31853 32593,31853,32646,31853 32463,31853,32478,31854 32648,31854,32701,31854 32593,31854,32645,31854 32516,31854,32521,31854 32703,31854,32800,31854 32703,31855,32801,31855 32515,31855,32522,31855 32464,31855,32482,31855 32592,31855,32645,31855 32513,31856,32524,31856 32590,31856,32645,31856 32558,31856,32561,31856 32704,31856,32801,31856 32647,31855,32701,31857 32557,31857,32562,31857 32589,31857,32644,31857 32512,31857,32526,31857 32788,31857,32794,31857 32464,31856,32483,31858 32800,31857,32801,31858 32646,31858,32703,31858 32555,31858,32564,31858 32512,31858,32528,31858 32796,31858,32797,31858 32706,31857,32785,31859 32588,31858,32644,31859 32800,31859,32802,31859 32553,31859,32565,31859 32791,31859,32798,31859 32512,31859,32530,31859 32465,31859,32482,31860 32588,31860,32643,31860 32706,31860,32798,31860 32512,31860,32531,31860 32552,31860,32566,31860 32646,31859,32704,31861 32550,31861,32568,31861 32513,31861,32533,31861 32587,31861,32633,31861 32707,31861,32798,31861 32466,31861,32482,31861 32585,31862,32632,31862 32636,31862,32704,31862 32514,31862,32535,31862 32548,31862,32570,31862 32470,31862,32482,31862 32635,31863,32705,31863 32471,31863,32483,31863 32581,31863,32632,31863 32514,31863,32536,31863 32546,31863,32572,31863 32800,31860,32803,31864 32543,31864,32632,31864 32471,31864,32484,31864 32514,31864,32538,31864 32801,31865,32802,31865 32469,31865,32484,31865 32514,31865,32633,31865 32708,31862,32798,31866 32635,31864,32706,31866 32513,31866,32633,31866 32708,31867,32801,31867 32511,31867,32632,31867 32635,31867,32705,31868 32510,31868,32630,31868 32508,31869,32630,31869 32633,31869,32705,31869 32825,31869,32830,31869 32468,31866,32484,31870 32508,31870,32629,31870 32823,31870,32831,31870 32708,31868,32802,31871 32632,31870,32705,31871 32463,31871,32488,31871 32822,31871,32832,31871 32492,31872,32492,31872 32630,31872,32704,31872 32462,31872,32489,31872 32821,31872,32833,31872 32707,31872,32801,31872 32820,31873,32835,31873 32492,31873,32493,31873 32706,31873,32801,31873 32507,31871,32626,31874 32815,31874,32836,31874 32705,31874,32801,31874 32492,31874,32494,31875 32447,31875,32448,31875 32812,31875,32837,31875 32506,31875,32626,31875 32704,31875,32800,31875 32630,31873,32702,31876 32505,31876,32626,31876 32786,31876,32796,31876 32492,31876,32495,31876 32461,31873,32489,31877 32446,31876,32449,31877 32704,31876,32784,31877 32791,31877,32792,31877 32631,31877,32702,31877 32811,31876,32837,31878 32447,31878,32448,31878 32704,31878,32789,31878 32631,31878,32701,31878 32794,31878,32801,31878 32462,31878,32489,31878 32703,31879,32837,31879 32464,31879,32489,31879 32451,31879,32453,31879 32628,31879,32701,31880 32456,31880,32457,31880 32450,31880,32454,31880 32703,31880,32836,31880 32465,31880,32489,31880 32492,31877,32624,31881 32450,31881,32461,31881 32637,31881,32701,31881 32628,31881,32634,31881 32466,31881,32489,31882 32638,31882,32700,31882 32626,31882,32634,31882 32493,31882,32623,31882 32449,31882,32463,31882 32703,31881,32835,31883 32499,31883,32623,31883 32626,31883,32636,31883 32638,31883,32699,31884 32501,31884,32623,31884 32626,31884,32635,31884 32703,31884,32834,31884 32448,31883,32489,31885 32507,31885,32623,31885 32625,31885,32699,31885 32494,31885,32497,31885 32704,31885,32833,31885 32448,31886,32499,31886 32705,31886,32833,31886 32507,31886,32622,31887 32624,31886,32630,31887 32705,31887,32832,31887 32449,31887,32503,31887 32636,31886,32699,31888 32449,31888,32504,31888 32705,31888,32831,31888 32624,31888,32629,31888 32837,31888,32839,31888 32636,31889,32810,31889 32827,31889,32830,31889 32834,31889,32840,31889 32624,31889,32630,31889 32508,31888,32622,31890 32448,31889,32504,31890 32813,31890,32825,31890 32833,31890,32840,31890 32624,31890,32810,31890 32449,31891,32504,31891 32508,31891,32809,31891 32812,31891,32840,31892 32509,31892,32808,31892 32449,31892,32503,31892 32509,31893,32803,31893 32449,31893,32501,31893 32810,31893,32839,31893 32509,31894,32801,31894 32805,31894,32840,31894 32448,31894,32500,31894 32503,31895,32505,31895 32804,31895,32841,31895 32447,31895,32500,31896 32509,31895,32800,31896 32803,31896,32843,31896 32502,31896,32506,31897 32594,31897,32800,31897 32803,31897,32844,31897 32510,31897,32588,31898 32502,31898,32507,31898 32594,31898,32845,31898 32448,31897,32500,31899 32594,31899,32847,31899 32511,31899,32588,31899 32502,31899,32508,31900 32449,31900,32450,31900 32452,31900,32500,31901 32514,31900,32848,31901 32503,31901,32510,31901 32453,31902,32501,31902 32514,31902,32847,31902 32504,31902,32511,31902 32455,31903,32502,31903 32505,31903,32511,31903 32514,31903,32845,31903 32836,31904,32844,31904 32457,31904,32502,31904 32513,31904,32827,31905 32461,31905,32504,31905 32459,31906,32505,31906 32514,31906,32560,31906 32564,31906,32826,31906 32507,31904,32511,31907 32564,31907,32820,31907 32458,31907,32505,31908 32516,31907,32560,31908 32454,31908,32455,31908 32564,31908,32580,31908 32507,31908,32512,31908 32589,31908,32820,31910 32516,31909,32580,31910 32453,31909,32505,31910 32517,31911,32580,31911 32589,31911,32810,31911 32814,31911,32819,31911 32454,31911,32504,31911 32583,31908,32586,31912 32507,31909,32513,31912 32814,31912,32818,31912 32455,31912,32503,31912 32519,31912,32580,31912 32589,31912,32809,31912 32456,31913,32458,31913 32507,31913,32516,31913 32460,31913,32503,31913 32461,31914,32503,31914 32507,31914,32517,31914 32461,31915,32504,31915 32508,31915,32517,31916 32460,31916,32505,31916 32519,31913,32809,31917 32508,31917,32516,31917 32519,31918,32808,31918 32508,31918,32515,31918 32459,31917,32506,31919 32509,31919,32515,31919 32520,31919,32623,31919 32509,31920,32516,31920 32524,31920,32623,31920 32627,31919,32808,31921 32458,31920,32507,31921 32509,31921,32522,31921 32524,31921,32526,31921 32530,31921,32623,31921 32531,31922,32809,31922 32459,31922,32507,31922 32510,31922,32527,31922 32533,31923,32601,31923 32514,31923,32528,31923 32458,31923,32507,31923 32457,31924,32510,31924 32535,31924,32601,31924 32517,31924,32531,31924 32604,31923,32810,31925 32536,31925,32601,31925 32521,31925,32533,31925 32457,31925,32515,31925 32456,31926,32518,31926 32536,31926,32810,31926 32536,31927,32811,31927 32521,31926,32534,31928 32537,31928,32811,31928 32456,31927,32519,31929 32544,31929,32725,31929 32522,31929,32535,31929 32786,31929,32811,31929 32729,31929,32781,31929 32712,31930,32720,31930 32540,31930,32542,31930 32523,31930,32535,31930 32744,31930,32779,31930 32545,31930,32698,31930 32790,31930,32811,31930 32455,31930,32520,31931 32712,31931,32719,31931 32545,31931,32696,31931 32745,31931,32772,31931 32794,31931,32811,31932 32545,31932,32684,31932 32745,31932,32771,31932 32688,31932,32690,31932 32454,31932,32521,31932 32712,31932,32715,31932 32524,31931,32543,31933 32746,31933,32770,31933 32546,31933,32683,31933 32795,31933,32796,31933 32713,31933,32714,31933 32805,31933,32810,31933 32453,31933,32521,31933 32525,31934,32543,31934 32752,31934,32767,31934 32453,31934,32522,31934 32549,31934,32683,31935 32805,31934,32809,31935 32753,31935,32767,31935 32454,31935,32522,31935 32530,31935,32545,31936 32526,31935,32527,31936 32549,31936,32667,31936 32806,31936,32808,31936 32754,31936,32766,31936 32459,31936,32524,31936 32677,31936,32682,31936 32459,31937,32528,31937 32678,31937,32679,31937 32756,31937,32765,31937 32550,31937,32665,31937 32551,31938,32664,31938 32460,31938,32528,31938 32461,31939,32463,31939 32552,31939,32663,31939 32531,31937,32545,31940 32471,31939,32529,31940 32552,31940,32662,31940 32531,31941,32546,31941 32552,31941,32660,31941 32531,31942,32548,31942 32552,31942,32658,31942 32471,31941,32528,31943 32532,31943,32548,31943 32552,31943,32656,31943 32533,31944,32549,31944 32552,31944,32652,31944 32471,31944,32529,31944 32533,31945,32550,31945 32552,31945,32650,31945 32471,31945,32530,31945 32552,31946,32649,31946 32534,31946,32550,31946 32471,31946,32531,31947 32579,31947,32648,31947 32535,31947,32550,31947 32471,31948,32533,31948 32537,31948,32550,31948 32552,31947,32574,31949 32579,31948,32647,31949 32538,31949,32550,31949 32472,31949,32535,31949 32540,31950,32574,31950 32579,31950,32646,31950 32473,31950,32536,31950 32540,31951,32646,31951 32473,31951,32537,31951 32540,31952,32645,31952 32473,31952,32538,31953 32541,31953,32641,31954 32473,31954,32539,31955 32541,31955,32639,31956 32474,31956,32539,31957 32593,31957,32638,31957 32542,31957,32590,31957 32544,31958,32588,31958 32595,31958,32638,31958 32475,31958,32539,31958 32597,31959,32638,31959 32476,31959,32540,31959 32544,31959,32587,31959 32477,31960,32587,31960 32597,31960,32636,31960 32595,31961,32637,31961 32477,31961,32586,31962 32593,31962,32637,31963 32475,31963,32586,31963 32591,31964,32633,31964 32474,31964,32587,31965 32590,31965,32620,31965 32474,31966,32616,31966 32473,31967,32613,31967 32622,31967,32625,31967 32621,31968,32626,31968 32473,31968,32611,31968 32614,31969,32626,31969 32473,31969,32610,31969 32473,31970,32608,31970 32474,31971,32608,31971 32612,31970,32626,31972 32476,31972,32608,31972 32476,31973,32596,31973 32610,31973,32626,31974 32477,31974,32596,31974 32445,31975,32446,31975 32477,31975,32595,31975 32609,31975,32625,31975 32444,31976,32447,31976 32607,31976,32624,31976 32600,31976,32604,31976 32477,31976,32587,31977 32441,31977,32442,31977 32444,31977,32449,31977 32598,31977,32624,31977 32440,31978,32450,31978 32478,31978,32586,31978 32433,31978,32434,31978 32594,31978,32625,31978 32481,31979,32586,31979 32589,31979,32626,31979 32471,31979,32475,31979 32432,31979,32435,31980 32481,31980,32585,31980 32468,31980,32478,31980 32589,31980,32627,31980 32440,31979,32451,31981 32465,31981,32479,31981 32589,31981,32628,31981 32533,31981,32580,31981 32481,31981,32531,31981 32464,31982,32479,31982 32533,31982,32578,31982 32482,31982,32530,31982 32441,31982,32454,31982 32588,31982,32630,31982 32432,31981,32436,31983 32498,31983,32530,31983 32438,31983,32457,31983 32463,31983,32480,31983 32532,31983,32577,31983 32586,31983,32631,31983 32581,31984,32633,31984 32502,31984,32529,31984 32487,31984,32490,31984 32432,31984,32458,31984 32494,31984,32496,31984 32532,31984,32576,31984 32462,31984,32481,31985 32579,31985,32636,31985 32531,31985,32575,31985 32432,31985,32459,31985 32486,31985,32499,31985 32502,31985,32528,31985 32530,31986,32573,31986 32502,31986,32526,31986 32433,31986,32483,31986 32579,31986,32638,31986 32486,31986,32500,31987 32433,31987,32484,31987 32503,31987,32520,31987 32528,31987,32567,31987 32575,31987,32639,31987 32432,31988,32501,31988 32522,31988,32567,31988 32515,31988,32517,31988 32570,31988,32641,31988 32414,31989,32417,31989 32519,31989,32567,31989 32432,31989,32512,31989 32420,31989,32421,31989 32569,31989,32643,31989 32431,31990,32513,31990 32569,31990,32645,31990 32518,31990,32566,31990 32413,31990,32424,31990 32569,31991,32646,31991 32413,31991,32563,31991 32409,31991,32411,31991 32408,31992,32562,31992 32566,31992,32647,31992 32565,31993,32649,31993 32408,31993,32559,31993 32402,31994,32403,31994 32562,31994,32651,31994 32399,31994,32400,31994 32509,31994,32559,31994 32389,31994,32393,31994 32407,31994,32503,31995 32388,31995,32394,31995 32398,31995,32404,31995 32506,31995,32507,31995 32561,31995,32652,31995 32510,31995,32559,31996 32398,31996,32503,31996 32387,31996,32395,31996 32561,31996,32654,31997 32552,31997,32559,31997 32510,31997,32533,31997 32537,31997,32539,31997 32557,31998,32558,31998 32561,31998,32657,31998 32541,31998,32550,31998 32511,31998,32530,31998 32505,31996,32508,31999 32387,31997,32503,31999 32525,31999,32527,31999 32534,31999,32555,31999 32561,31999,32658,31999 32516,31999,32521,31999 32505,32000,32514,32000 32386,32000,32503,32000 32533,32000,32671,32000 32385,32001,32502,32001 32505,32001,32672,32001 32385,32002,32492,32002 32504,32002,32673,32002 32385,32003,32491,32003 32494,32003,32676,32003 32493,32004,32677,32004 32384,32004,32488,32004 32384,32005,32487,32005 32491,32005,32678,32005 32384,32006,32476,32006 32490,32006,32679,32006 32489,32007,32679,32007 32384,32007,32392,32007 32399,32007,32476,32007 32479,32007,32485,32007 32385,32008,32391,32008 32478,32008,32679,32008 32400,32008,32475,32008 32478,32009,32680,32009 32401,32009,32465,32009 32468,32010,32680,32010 32402,32010,32465,32010 32467,32011,32680,32011 32402,32011,32464,32011 32402,32012,32462,32012 32467,32012,32681,32012 32465,32013,32681,32013 32403,32013,32461,32013 32464,32014,32681,32014 32406,32014,32458,32014 32412,32015,32457,32015 32460,32015,32681,32015 32413,32016,32455,32016 32459,32016,32680,32016 32457,32017,32679,32017 32414,32017,32452,32017 32415,32018,32451,32018 32454,32018,32678,32018 32453,32019,32677,32019 32416,32019,32450,32019 32419,32020,32446,32020 32452,32020,32676,32020 32421,32021,32442,32021 32448,32021,32674,32021 32444,32022,32672,32022 32421,32022,32441,32022 32443,32023,32669,32023 32421,32023,32440,32023 32422,32024,32423,32024 32443,32024,32667,32024 32444,32025,32666,32025 32445,32026,32642,32026 32645,32026,32664,32026 32654,32027,32663,32027 32446,32027,32641,32027 32646,32027,32646,32027 32651,32027,32651,32028 32448,32028,32641,32028 32654,32028,32661,32028 32654,32029,32659,32029 32650,32029,32651,32029 32448,32029,32643,32029 32645,32029,32648,32029 32654,32030,32657,32030 32646,32030,32646,32030 32651,32030,32651,32031 32655,32031,32656,32031 32448,32030,32641,32032 32651,32032,32653,32032 32646,32032,32646,32032 32650,32033,32653,32033 32645,32033,32648,32033 32449,32033,32643,32033 32651,32034,32653,32034 32454,32034,32641,32035 32646,32034,32646,32035 32651,32035,32652,32035 32506,32036,32651,32036 32465,32036,32496,32036 32454,32036,32460,32037 32468,32037,32496,32037 32506,32037,32649,32038 32455,32038,32459,32038 32474,32038,32496,32039 32506,32039,32648,32039 32475,32040,32496,32040 32506,32040,32647,32040 32506,32041,32646,32041 32479,32041,32496,32042 32480,32043,32496,32043 32506,32042,32643,32044 32494,32044,32496,32044 32481,32044,32492,32044 32482,32045,32492,32045 32510,32045,32643,32046 32485,32046,32491,32046 32512,32047,32643,32047 32486,32047,32491,32047 32489,32048,32489,32048 32512,32048,32532,32048 32539,32048,32642,32048 32512,32049,32531,32049 32540,32049,32641,32049 32514,32050,32531,32050 32516,32051,32531,32051 32541,32050,32638,32052 32518,32052,32531,32053 32541,32053,32639,32053 32529,32054,32530,32054 32544,32054,32639,32054 32545,32055,32639,32056 32518,32054,32523,32057 32546,32057,32639,32057 32545,32058,32639,32058 32518,32058,32522,32058 32519,32059,32521,32059 32544,32059,32639,32060 32545,32061,32638,32062 32545,32063,32637,32063 32546,32064,32636,32064 32546,32065,32628,32065 32624,32066,32627,32066 32546,32066,32613,32068 32547,32069,32614,32069 32549,32070,32614,32070 32551,32071,32613,32071 32551,32072,32605,32072 32552,32073,32604,32073 32553,32074,32602,32076 32553,32077,32601,32077 32553,32078,32600,32078 32553,32079,32599,32079 32555,32080,32597,32080 32556,32081,32596,32081 32559,32082,32592,32082 32559,32083,32591,32083 32559,32084,32588,32084 32559,32085,32587,32085 32557,32086,32586,32086 32556,32087,32582,32092 32556,32093,32583,32095 32556,32096,32582,32098 32556,32099,32581,32099 32555,32100,32581,32103 32554,32104,32581,32104 32554,32105,32580,32106 32555,32107,32579,32107 32560,32108,32578,32108 32562,32109,32578,32110 32562,32111,32577,32111 32562,32112,32576,32112 32561,32113,32574,32113 32560,32114,32574,32114 32559,32115,32574,32115 32559,32116,32573,32116 32558,32117,32572,32117 32557,32118,32571,32118 32557,32119,32569,32119 32557,32120,32568,32120 32557,32121,32567,32121 32558,32122,32566,32122 32559,32123,32566,32123 32560,32124,32565,32124", + }, + [53] = { -- Draconia (2574 tiles, 70 rects) + name = "Draconia", + mainArea = 1, + bbox = { x1 = 32770, y1 = 31552, x2 = 32829, y2 = 31620 }, + rects = "32803,31552,32804,31552 32798,31553,32799,31553 32802,31553,32804,31553 32795,31554,32804,31554 32792,31554,32793,31554 32791,31555,32805,31556 32812,31557,32814,31557 32807,31557,32809,31557 32793,31557,32805,31557 32792,31558,32816,31560 32793,31561,32817,31561 32792,31562,32818,31562 32791,31563,32819,31563 32787,31564,32819,31564 32786,31565,32820,31569 32785,31570,32820,31572 32824,31572,32828,31572 32784,31573,32829,31574 32781,31575,32829,31575 32780,31576,32827,31576 32779,31577,32828,31577 32778,31578,32828,31578 32777,31579,32828,31579 32823,31580,32825,31580 32777,31580,32821,31580 32777,31581,32820,31581 32777,31582,32822,31582 32777,31583,32823,31583 32773,31584,32825,31584 32773,31585,32826,31586 32774,31587,32826,31587 32774,31588,32827,31588 32774,31589,32828,31589 32773,31590,32828,31590 32772,31591,32828,31591 32772,31592,32826,31592 32771,31593,32826,31594 32771,31595,32825,31595 32770,31596,32824,31597 32770,31598,32823,31598 32771,31599,32821,31599 32775,31600,32821,31600 32777,31601,32821,31601 32778,31602,32822,31602 32778,31603,32823,31603 32776,31604,32823,31604 32775,31605,32823,31605 32775,31606,32820,31607 32776,31608,32819,31608 32805,31609,32819,31609 32779,31609,32802,31609 32780,31610,32802,31610 32805,31610,32808,31610 32811,31610,32818,31610 32781,31611,32801,31611 32806,31611,32808,31611 32812,31611,32821,31612 32785,31612,32788,31612 32790,31612,32800,31612 32792,31613,32802,31613 32813,31613,32821,31613 32793,31614,32803,31614 32814,31614,32816,31614 32819,31614,32821,31614 32794,31615,32803,31615 32796,31616,32803,31616 32798,31617,32805,31617 32800,31618,32806,31618 32801,31619,32806,31619 32803,31620,32806,31620", + }, + [54] = { -- Elvenbane (1063 tiles, 44 rects) + name = "Elvenbane", + mainArea = 1, + bbox = { x1 = 32562, y1 = 31630, x2 = 32612, y2 = 31671 }, + rects = "32610,31630,32612,31630 32606,31631,32607,31631 32609,31631,32612,31631 32582,31633,32585,31633 32605,31632,32612,31634 32595,31634,32596,31634 32582,31634,32587,31635 32604,31635,32612,31635 32593,31635,32597,31635 32582,31636,32612,31636 32580,31637,32612,31637 32580,31638,32611,31638 32580,31639,32609,31640 32578,31641,32608,31641 32576,31642,32608,31642 32562,31642,32564,31642 32566,31642,32570,31642 32575,31643,32608,31643 32562,31643,32573,31643 32562,31644,32608,31644 32563,31645,32607,31645 32566,31646,32607,31646 32566,31647,32606,31647 32567,31648,32605,31648 32569,31649,32605,31649 32569,31650,32606,31650 32570,31651,32606,31653 32571,31654,32606,31654 32572,31655,32606,31655 32573,31656,32606,31656 32574,31657,32607,31657 32576,31658,32607,31658 32578,31659,32606,31659 32578,31660,32604,31660 32578,31661,32592,31661 32578,31662,32590,31662 32578,31663,32588,31663 32578,31664,32587,31665 32579,31666,32587,31666 32580,31667,32587,31667 32580,31668,32586,31668 32580,31669,32585,31669 32581,31670,32585,31670 32582,31671,32584,31671", + }, + [55] = { -- Ab'Dendriel Surroundings (16885 tiles, 314 rects) + name = "Ab'Dendriel Surroundings", + mainArea = 1, + bbox = { x1 = 32471, y1 = 31644, x2 = 32711, y2 = 31818 }, + rects = "32549,31644,32550,31644 32548,31645,32551,31645 32559,31646,32560,31646 32548,31646,32553,31646 32548,31647,32555,31647 32558,31647,32563,31647 32548,31648,32556,31648 32558,31648,32564,31648 32559,31649,32565,31649 32545,31649,32546,31649 32549,31649,32556,31649 32550,31650,32557,31650 32542,31650,32547,31650 32561,31650,32566,31650 32546,31651,32547,31651 32541,31651,32541,31651 32552,31651,32558,31651 32561,31651,32567,31651 32546,31652,32553,31652 32555,31652,32558,31652 32540,31652,32541,31652 32561,31652,32568,31653 32540,31653,32543,31653 32550,31653,32558,31653 32548,31654,32548,31654 32551,31654,32558,31654 32540,31654,32542,31654 32560,31654,32568,31655 32552,31655,32558,31655 32539,31655,32542,31655 32538,31656,32541,31656 32548,31656,32558,31656 32560,31656,32569,31656 32544,31656,32545,31656 32560,31657,32570,31657 32553,31657,32557,31657 32548,31657,32548,31657 32536,31657,32540,31657 32559,31658,32572,31658 32535,31658,32540,31658 32553,31658,32556,31659 32545,31659,32545,31659 32559,31659,32574,31659 32519,31659,32540,31659 32560,31660,32575,31660 32548,31660,32556,31660 32518,31660,32540,31660 32553,31661,32556,31661 32516,31661,32540,31661 32548,31661,32548,31661 32552,31662,32558,31662 32515,31662,32542,31663 32552,31663,32559,31663 32561,31661,32575,31664 32514,31664,32544,31664 32550,31664,32559,31664 32548,31665,32559,31665 32514,31665,32545,31665 32561,31665,32576,31666 32514,31666,32559,31667 32561,31667,32575,31667 32514,31668,32558,31668 32561,31668,32573,31669 32514,31669,32554,31669 32576,31669,32577,31669 32556,31670,32573,31670 32575,31670,32578,31670 32513,31670,32552,31670 32497,31671,32499,31671 32554,31671,32573,31671 32513,31671,32547,31671 32575,31671,32579,31672 32488,31672,32500,31672 32549,31672,32573,31672 32511,31672,32546,31672 32575,31673,32583,31673 32548,31673,32573,31673 32510,31673,32546,31673 32486,31673,32501,31673 32575,31674,32584,31674 32508,31674,32546,31674 32485,31674,32502,31675 32507,31675,32546,31675 32574,31675,32584,31676 32479,31676,32546,31676 32548,31674,32572,31677 32575,31677,32585,31677 32478,31677,32545,31677 32547,31678,32573,31678 32477,31678,32543,31679 32575,31678,32586,31679 32546,31679,32573,31679 32476,31680,32542,31680 32545,31680,32573,31681 32575,31680,32587,31681 32535,31681,32537,31681 32476,31681,32524,31681 32575,31682,32588,31682 32543,31682,32573,31682 32527,31682,32533,31682 32526,31683,32539,31683 32471,31682,32524,31685 32542,31683,32573,31685 32576,31683,32589,31685 32526,31684,32540,31686 32515,31686,32523,31686 32543,31686,32573,31687 32472,31686,32511,31687 32525,31687,32539,31687 32575,31686,32589,31688 32472,31688,32510,31688 32543,31688,32572,31688 32513,31688,32539,31688 32512,31689,32539,31689 32473,31689,32509,31689 32542,31689,32572,31689 32511,31690,32538,31690 32473,31690,32507,31690 32574,31689,32588,31691 32541,31690,32572,31691 32474,31691,32507,31691 32510,31691,32537,31691 32540,31692,32572,31692 32574,31692,32589,31692 32475,31692,32506,31692 32509,31692,32537,31693 32476,31693,32504,31693 32574,31693,32590,31694 32478,31694,32503,31694 32506,31694,32536,31694 32539,31693,32572,31695 32574,31695,32603,31695 32505,31695,32529,31695 32483,31695,32503,31695 32574,31696,32608,31696 32532,31696,32533,31696 32539,31696,32571,31696 32488,31696,32503,31696 32505,31696,32528,31696 32531,31697,32534,31697 32524,31697,32527,31697 32539,31697,32568,31697 32505,31697,32519,31697 32491,31697,32503,31697 32574,31697,32609,31697 32529,31698,32568,31698 32521,31698,32522,31698 32492,31698,32502,31698 32571,31698,32609,31698 32505,31698,32518,31698 32570,31699,32610,31699 32493,31699,32502,31699 32504,31699,32518,31700 32494,31700,32501,31700 32520,31699,32568,31701 32570,31700,32611,31701 32498,31701,32518,31701 32521,31702,32568,31702 32499,31702,32518,31702 32570,31702,32612,31703 32500,31703,32519,31703 32522,31703,32568,31703 32570,31704,32613,31704 32500,31704,32567,31704 32569,31705,32614,31707 32501,31705,32567,31707 32502,31708,32567,31708 32570,31708,32613,31708 32616,31708,32621,31708 32658,31709,32664,31709 32502,31709,32568,31709 32570,31709,32612,31709 32615,31709,32628,31709 32672,31710,32676,31710 32650,31710,32669,31710 32614,31710,32629,31710 32678,31710,32679,31710 32502,31710,32612,31711 32614,31711,32633,31712 32650,31711,32678,31712 32503,31712,32612,31713 32693,31713,32701,31713 32614,31713,32678,31714 32692,31714,32701,31714 32504,31714,32612,31715 32614,31715,32677,31715 32686,31715,32701,31715 32680,31716,32681,31716 32685,31716,32702,31716 32505,31716,32675,31717 32678,31717,32682,31717 32684,31717,32702,31718 32677,31718,32682,31719 32506,31718,32675,31719 32685,31719,32702,31719 32507,31720,32674,31720 32677,31720,32683,31720 32687,31720,32702,31721 32510,31721,32668,31721 32677,31721,32684,31721 32513,31722,32666,31722 32670,31722,32685,31722 32687,31722,32701,31722 32514,31723,32665,31723 32669,31723,32685,31723 32707,31723,32708,31723 32668,31724,32685,31724 32706,31724,32709,31724 32687,31723,32702,31725 32515,31724,32661,31725 32705,31725,32709,31725 32663,31725,32685,31725 32515,31726,32684,31726 32687,31726,32709,31727 32515,31727,32681,31727 32515,31728,32680,31728 32684,31728,32710,31728 32683,31729,32711,31729 32514,31729,32679,31729 32514,31730,32678,31730 32681,31730,32711,31730 32680,31731,32710,31731 32513,31731,32677,31732 32680,31732,32706,31732 32514,31733,32677,31733 32681,31733,32706,31733 32682,31734,32706,31734 32515,31734,32678,31734 32515,31735,32679,31735 32683,31735,32706,31735 32683,31736,32705,31736 32515,31736,32680,31737 32515,31738,32679,31738 32683,31737,32704,31739 32515,31739,32676,31739 32515,31740,32674,31740 32678,31740,32703,31740 32677,31741,32706,31741 32514,31741,32674,31742 32676,31742,32707,31744 32513,31743,32674,31745 32676,31745,32706,31745 32676,31746,32705,31746 32514,31746,32674,31747 32677,31747,32704,31747 32677,31748,32705,31749 32515,31748,32675,31749 32677,31750,32704,31750 32516,31750,32675,31751 32677,31751,32697,31751 32516,31752,32697,31752 32518,31753,32697,31753 32521,31754,32697,31754 32523,31755,32697,31755 32553,31756,32696,31756 32524,31756,32538,31756 32558,31757,32692,31757 32525,31757,32533,31757 32527,31758,32531,31758 32561,31758,32692,31758 32563,31759,32590,31759 32600,31759,32692,31759 32528,31759,32528,31759 32565,31760,32587,31760 32608,31760,32692,31760 32612,31761,32692,31761 32568,31761,32582,31761 32570,31762,32579,31762 32614,31762,32691,31763 32573,31763,32574,31763 32617,31764,32691,31764 32617,31765,32690,31765 32618,31766,32684,31766 32618,31767,32683,31767 32619,31768,32682,31770 32619,31771,32683,31771 32619,31772,32684,31772 32620,31773,32684,31776 32620,31777,32683,31777 32621,31778,32681,31778 32621,31779,32680,31779 32621,31780,32670,31780 32622,31781,32670,31781 32622,31782,32669,31782 32622,31783,32665,31783 32623,31784,32665,31784 32623,31785,32664,31786 32623,31787,32663,31787 32623,31788,32662,31788 32624,31789,32662,31790 32623,31791,32661,31792 32623,31793,32660,31793 32623,31794,32657,31794 32622,31795,32653,31796 32621,31797,32653,31797 32621,31798,32654,31798 32620,31799,32654,31800 32619,31801,32653,31801 32618,31802,32652,31802 32618,31803,32648,31803 32617,31804,32648,31805 32618,31806,32648,31806 32618,31807,32647,31807 32619,31808,32646,31808 32620,31809,32645,31809 32621,31810,32645,31810 32622,31811,32645,31811 32623,31812,32645,31812 32624,31813,32644,31813 32626,31814,32644,31814 32635,31815,32644,31815 32639,31816,32644,31816 32641,31817,32644,31817 32642,31818,32645,31818", + }, + [57] = { -- Edron Troll Den (287 tiles, 17 rects) + name = "Edron Troll Den", + mainArea = 7, + bbox = { x1 = 33109, y1 = 31768, x2 = 33132, y2 = 31785 }, + rects = "33125,31768,33127,31768 33124,31769,33128,31770 33117,31771,33129,31771 33114,31771,33115,31771 33113,31772,33131,31772 33113,31773,33132,31773 33112,31774,33132,31774 33112,31775,33131,31776 33110,31777,33130,31777 33109,31778,33130,31778 33109,31779,33132,31780 33110,31781,33127,31781 33110,31782,33126,31782 33110,31783,33125,31783 33119,31784,33124,31784 33111,31784,33117,31784 33120,31785,33123,31785", + }, + [58] = { -- Edron Goblin Den (382 tiles, 24 rects) + name = "Edron Goblin Den", + mainArea = 7, + bbox = { x1 = 33092, y1 = 31841, x2 = 33119, y2 = 31861 }, + rects = "33107,31841,33109,31841 33100,31841,33104,31841 33098,31842,33111,31842 33096,31843,33112,31843 33095,31844,33112,31844 33094,31845,33112,31845 33094,31846,33116,31846 33094,31847,33118,31848 33095,31849,33119,31849 33096,31850,33119,31850 33097,31851,33119,31851 33118,31852,33119,31852 33097,31852,33115,31853 33097,31854,33114,31854 33095,31855,33113,31855 33094,31856,33111,31856 33094,31857,33099,31857 33093,31858,33098,31858 33103,31857,33111,31859 33092,31859,33097,31859 33103,31860,33110,31860 33092,31860,33096,31860 33104,31861,33109,31861 33093,31861,33094,31861", + }, + [59] = { -- Edron Orc Lands (3039 tiles, 80 rects) + name = "Edron Orc Lands", + mainArea = 7, + bbox = { x1 = 33133, y1 = 31840, x2 = 33194, y2 = 31924 }, + rects = "33156,31840,33157,31840 33154,31841,33160,31841 33153,31842,33165,31842 33152,31843,33166,31843 33151,31844,33167,31844 33149,31845,33168,31845 33148,31846,33168,31846 33147,31847,33169,31847 33143,31848,33169,31848 33139,31849,33170,31849 33138,31850,33170,31850 33137,31851,33170,31851 33136,31852,33172,31852 33136,31853,33173,31855 33136,31856,33172,31857 33136,31858,33173,31859 33137,31860,33174,31860 33138,31861,33177,31861 33141,31862,33178,31862 33140,31863,33179,31863 33139,31864,33180,31865 33138,31866,33181,31866 33135,31867,33182,31867 33134,31868,33182,31868 33134,31869,33183,31869 33134,31870,33185,31871 33191,31871,33192,31871 33190,31872,33192,31872 33134,31872,33186,31872 33134,31873,33191,31873 33135,31874,33190,31874 33136,31875,33190,31875 33137,31876,33190,31876 33139,31877,33192,31877 33140,31878,33193,31878 33140,31879,33194,31879 33142,31880,33193,31880 33143,31881,33192,31881 33142,31882,33192,31882 33138,31883,33192,31883 33137,31884,33192,31884 33136,31885,33192,31885 33135,31886,33192,31886 33134,31887,33194,31887 33133,31888,33194,31888 33133,31889,33191,31889 33134,31890,33191,31890 33135,31891,33190,31891 33138,31892,33148,31892 33150,31892,33189,31893 33140,31893,33147,31893 33141,31894,33146,31894 33150,31894,33188,31894 33142,31895,33145,31895 33150,31895,33183,31896 33151,31897,33183,31897 33152,31898,33183,31898 33153,31899,33183,31899 33153,31900,33184,31900 33154,31901,33185,31903 33161,31904,33185,31904 33162,31905,33184,31907 33154,31904,33159,31908 33170,31908,33185,31908 33172,31909,33187,31909 33162,31908,33167,31910 33173,31910,33187,31910 33172,31911,33188,31911 33171,31912,33188,31912 33170,31913,33193,31914 33170,31915,33190,31915 33170,31916,33189,31916 33171,31917,33189,31917 33173,31918,33188,31918 33185,31919,33187,31919 33173,31919,33183,31920 33173,31921,33182,31921 33174,31922,33181,31922 33176,31923,33181,31923 33178,31924,33180,31924", + }, + [60] = { -- Edron Dragon Lair (274 tiles, 19 rects) + name = "Edron Dragon Lair", + mainArea = 7, + bbox = { x1 = 33083, y1 = 31690, x2 = 33105, y2 = 31709 }, + rects = "33100,31690,33102,31690 33099,31691,33102,31691 33098,31692,33102,31692 33094,31693,33103,31694 33094,31695,33105,31695 33093,31696,33105,31696 33092,31697,33105,31697 33086,31698,33105,31698 33084,31699,33105,31699 33083,31700,33105,31701 33083,31702,33103,31702 33084,31703,33103,31703 33084,31704,33102,31704 33085,31705,33101,31705 33085,31706,33097,31706 33085,31707,33096,31707 33085,31708,33093,31708 33095,31708,33095,31708 33086,31709,33088,31709", + }, + [61] = { -- Cyclopolis (116 tiles, 8 rects) + name = "Cyclopolis", + mainArea = 7, + bbox = { x1 = 33246, y1 = 31692, x2 = 33256, y2 = 31704 }, + rects = "33248,31692,33253,31692 33247,31693,33255,31693 33247,31694,33256,31694 33246,31695,33256,31699 33246,31700,33255,31700 33247,31701,33254,31702 33247,31703,33253,31703 33248,31704,33250,31704", + }, + [63] = { -- Edron Surroundings (26110 tiles, 556 rects) + name = "Edron Surroundings", + mainArea = 7, + bbox = { x1 = 33078, y1 = 31623, x2 = 33330, y2 = 31994 }, + rects = "33191,31623,33195,31623 33173,31624,33175,31624 33190,31624,33196,31624 33213,31625,33216,31625 33190,31625,33197,31625 33212,31626,33217,31626 33188,31626,33198,31626 33187,31627,33203,31627 33211,31627,33217,31627 33172,31625,33176,31628 33211,31628,33216,31628 33187,31628,33205,31628 33156,31628,33160,31628 33163,31628,33170,31628 33179,31629,33181,31629 33155,31629,33176,31629 33211,31629,33217,31629 33188,31629,33206,31629 33188,31630,33207,31630 33209,31630,33217,31630 33155,31630,33182,31631 33188,31631,33217,31631 33156,31632,33182,31632 33189,31632,33217,31632 33189,31633,33216,31633 33156,31633,33184,31633 33156,31634,33215,31635 33157,31636,33214,31636 33155,31637,33213,31637 33155,31638,33211,31639 33157,31640,33211,31640 33157,31641,33210,31642 33156,31643,33210,31643 33155,31644,33209,31644 33155,31645,33208,31645 33155,31646,33207,31647 33156,31648,33208,31648 33155,31649,33213,31649 33155,31650,33214,31650 33135,31651,33138,31651 33154,31651,33214,31651 33153,31652,33214,31652 33134,31652,33139,31653 33152,31653,33214,31653 33145,31653,33147,31653 33144,31654,33215,31654 33133,31654,33140,31655 33143,31655,33215,31655 33235,31656,33238,31656 33123,31656,33124,31656 33133,31656,33139,31656 33143,31656,33214,31656 33112,31657,33114,31657 33143,31657,33213,31657 33134,31657,33138,31657 33117,31657,33126,31657 33107,31657,33108,31657 33216,31657,33216,31658 33136,31658,33137,31658 33106,31658,33128,31658 33213,31659,33216,31659 33106,31659,33129,31659 33234,31657,33238,31660 33142,31658,33210,31660 33139,31660,33140,31660 33105,31660,33130,31660 33212,31660,33217,31660 33223,31660,33225,31660 33137,31661,33210,31661 33234,31661,33237,31661 33212,31661,33226,31661 33104,31661,33132,31661 33212,31662,33229,31662 33136,31662,33209,31662 33235,31662,33236,31662 33103,31662,33133,31662 33136,31663,33208,31663 33102,31663,33133,31664 33211,31663,33230,31664 33137,31664,33204,31664 33206,31665,33230,31665 33102,31665,33134,31665 33137,31665,33203,31665 33138,31666,33203,31666 33099,31666,33135,31666 33098,31667,33135,31667 33141,31667,33203,31667 33233,31667,33235,31667 33097,31668,33139,31668 33232,31668,33236,31669 33143,31668,33203,31669 33096,31669,33140,31669 33143,31670,33147,31670 33232,31670,33237,31670 33152,31670,33202,31670 33095,31670,33141,31670 33205,31666,33230,31671 33144,31671,33146,31671 33152,31671,33197,31671 33094,31671,33141,31671 33148,31672,33149,31672 33153,31672,33196,31672 33091,31672,33141,31672 33200,31672,33229,31672 33232,31671,33238,31673 33156,31673,33190,31673 33090,31673,33141,31673 33146,31673,33150,31673 33199,31673,33227,31674 33230,31674,33237,31674 33192,31674,33194,31674 33090,31674,33154,31674 33157,31674,33186,31675 33189,31675,33226,31675 33090,31675,33155,31675 33229,31675,33237,31676 33091,31676,33155,31676 33188,31676,33225,31676 33157,31676,33185,31676 33188,31677,33238,31677 33157,31677,33184,31678 33273,31678,33275,31678 33187,31678,33239,31678 33271,31679,33276,31679 33186,31679,33239,31679 33090,31677,33155,31680 33157,31679,33183,31680 33186,31680,33238,31681 33270,31680,33276,31681 33090,31681,33183,31682 33270,31682,33279,31682 33187,31682,33238,31683 33090,31683,33184,31683 33248,31683,33249,31683 33090,31684,33185,31684 33247,31684,33250,31684 33243,31684,33245,31684 33187,31684,33237,31684 33270,31683,33280,31685 33240,31685,33250,31685 33091,31685,33237,31685 33092,31686,33253,31686 33271,31686,33281,31686 33092,31687,33260,31687 33272,31687,33281,31688 33091,31688,33262,31688 33269,31688,33270,31688 33088,31689,33263,31689 33087,31690,33099,31690 33268,31689,33281,31691 33103,31690,33264,31691 33290,31691,33291,31691 33086,31691,33098,31691 33284,31691,33286,31691 33298,31691,33301,31691 33267,31692,33281,31692 33283,31692,33292,31692 33254,31692,33264,31692 33086,31692,33097,31692 33103,31692,33247,31692 33297,31692,33302,31693 33256,31693,33264,31693 33267,31693,33292,31693 33104,31693,33246,31694 33267,31694,33291,31694 33297,31694,33303,31694 33087,31693,33093,31695 33267,31695,33290,31695 33296,31695,33304,31696 33087,31696,33092,31696 33257,31694,33265,31697 33267,31696,33288,31697 33087,31697,33091,31697 33295,31697,33304,31697 33267,31698,33289,31698 33295,31698,33308,31698 33257,31698,33264,31698 33266,31699,33289,31699 33257,31699,33263,31699 33295,31699,33309,31699 33106,31695,33245,31700 33256,31700,33262,31700 33265,31700,33309,31700 33106,31701,33246,31701 33255,31701,33262,31702 33264,31701,33309,31703 33104,31702,33246,31703 33254,31703,33262,31703 33313,31703,33314,31703 33251,31704,33261,31704 33103,31704,33247,31704 33264,31704,33315,31704 33263,31705,33315,31705 33102,31705,33261,31705 33098,31706,33261,31706 33142,31707,33261,31707 33097,31707,33140,31707 33263,31706,33314,31708 33143,31708,33260,31708 33096,31708,33139,31708 33094,31708,33094,31708 33143,31709,33259,31709 33093,31709,33138,31709 33262,31709,33314,31710 33144,31710,33255,31710 33093,31710,33137,31710 33257,31711,33313,31711 33115,31711,33136,31711 33093,31711,33111,31712 33144,31711,33254,31712 33114,31712,33135,31712 33256,31712,33313,31712 33139,31713,33140,31713 33186,31713,33254,31713 33142,31713,33184,31713 33311,31713,33312,31713 33256,31713,33308,31713 33094,31713,33111,31713 33113,31713,33134,31713 33113,31714,33133,31714 33185,31714,33254,31714 33096,31714,33099,31714 33138,31714,33183,31714 33113,31715,33131,31715 33137,31715,33182,31715 33103,31714,33111,31716 33184,31715,33254,31716 33114,31716,33129,31716 33256,31714,33309,31717 33102,31717,33111,31717 33115,31717,33125,31717 33184,31717,33253,31717 33116,31718,33126,31718 33102,31718,33113,31718 33255,31718,33309,31718 33312,31718,33314,31718 33136,31716,33182,31719 33102,31719,33114,31719 33311,31719,33316,31719 33250,31719,33309,31719 33119,31719,33126,31719 33184,31718,33247,31720 33311,31720,33317,31720 33288,31720,33308,31720 33137,31720,33181,31720 33102,31720,33116,31720 33249,31720,33286,31721 33121,31720,33126,31721 33183,31721,33246,31721 33101,31721,33117,31721 33289,31721,33307,31721 33142,31721,33181,31721 33310,31721,33318,31721 33309,31722,33318,31722 33100,31722,33117,31722 33248,31722,33286,31722 33293,31722,33301,31722 33143,31722,33180,31722 33248,31723,33291,31723 33297,31723,33300,31723 33303,31723,33318,31723 33100,31723,33116,31723 33122,31722,33125,31724 33144,31723,33179,31724 33101,31724,33117,31724 33302,31724,33317,31724 33182,31722,33246,31725 33248,31724,33292,31725 33300,31725,33317,31725 33123,31725,33124,31725 33144,31725,33178,31725 33102,31725,33117,31725 33249,31726,33291,31726 33181,31726,33246,31726 33144,31726,33177,31726 33296,31726,33316,31726 33104,31726,33116,31726 33295,31727,33319,31727 33145,31727,33175,31727 33249,31727,33290,31727 33104,31727,33114,31727 33180,31727,33247,31728 33147,31728,33156,31728 33106,31728,33107,31728 33158,31728,33175,31728 33177,31729,33178,31729 33159,31729,33174,31729 33148,31729,33156,31729 33181,31729,33247,31729 33249,31728,33320,31730 33176,31730,33179,31730 33149,31730,33155,31730 33182,31730,33247,31730 33160,31730,33173,31730 33176,31731,33180,31731 33161,31731,33171,31731 33250,31731,33321,31732 33186,31731,33247,31732 33163,31732,33170,31732 33174,31732,33183,31732 33164,31733,33168,31733 33173,31733,33246,31733 33251,31733,33321,31734 33170,31734,33243,31734 33169,31735,33243,31735 33251,31735,33322,31735 33168,31736,33242,31736 33245,31736,33323,31736 33167,31737,33242,31737 33244,31737,33325,31737 33167,31738,33326,31738 33168,31739,33327,31739 33169,31740,33328,31740 33170,31741,33328,31741 33171,31742,33327,31742 33171,31743,33174,31743 33280,31743,33327,31743 33177,31743,33272,31743 33317,31744,33326,31744 33172,31744,33173,31744 33177,31744,33270,31744 33289,31744,33311,31744 33177,31745,33269,31745 33306,31745,33307,31745 33291,31745,33299,31745 33176,31746,33269,31746 33292,31746,33299,31746 33176,31747,33268,31747 33292,31747,33298,31747 33177,31748,33268,31748 33293,31748,33294,31748 33179,31749,33267,31749 33180,31750,33266,31751 33179,31752,33266,31753 33180,31754,33265,31754 33181,31755,33265,31755 33181,31756,33264,31756 33182,31757,33264,31757 33181,31758,33263,31759 33191,31760,33263,31760 33191,31761,33262,31762 33190,31763,33262,31763 33190,31764,33261,31765 33191,31766,33261,31766 33192,31767,33261,31767 33193,31768,33261,31768 33194,31769,33261,31769 33194,31770,33262,31771 33192,31772,33263,31773 33195,31774,33263,31774 33200,31775,33263,31775 33202,31776,33264,31776 33136,31776,33137,31776 33206,31777,33264,31777 33135,31777,33138,31777 33209,31778,33265,31778 33134,31778,33139,31778 33107,31778,33108,31778 33220,31779,33268,31779 33106,31779,33108,31780 33133,31779,33140,31780 33220,31780,33270,31780 33105,31781,33109,31781 33128,31781,33140,31781 33220,31781,33273,31781 33087,31782,33089,31782 33220,31782,33275,31782 33127,31782,33140,31782 33104,31782,33109,31783 33222,31783,33276,31783 33126,31783,33140,31783 33086,31783,33090,31783 33097,31784,33101,31784 33125,31784,33140,31784 33086,31784,33091,31784 33104,31784,33110,31784 33231,31784,33276,31784 33118,31784,33118,31784 33086,31785,33093,31785 33096,31785,33119,31785 33124,31785,33140,31785 33086,31786,33141,31786 33231,31785,33277,31788 33279,31788,33280,31788 33232,31789,33283,31789 33085,31787,33141,31790 33232,31790,33285,31790 33086,31791,33140,31791 33233,31791,33286,31791 33087,31792,33139,31792 33235,31792,33286,31792 33236,31793,33286,31793 33086,31793,33139,31793 33237,31794,33288,31794 33237,31795,33290,31795 33237,31796,33292,31796 33237,31797,33297,31797 33086,31794,33138,31798 33237,31798,33299,31798 33237,31799,33300,31799 33087,31799,33138,31799 33088,31800,33140,31800 33238,31800,33301,31800 33090,31801,33140,31801 33239,31801,33301,31801 33092,31802,33140,31803 33239,31802,33302,31804 33091,31804,33141,31805 33240,31805,33301,31806 33241,31807,33301,31807 33092,31806,33141,31808 33245,31808,33301,31809 33090,31809,33142,31809 33089,31810,33142,31810 33247,31810,33302,31811 33089,31811,33143,31811 33248,31812,33302,31812 33090,31812,33143,31813 33251,31813,33302,31814 33089,31814,33145,31814 33088,31815,33145,31815 33251,31815,33301,31816 33086,31816,33145,31816 33085,31817,33145,31817 33079,31817,33082,31817 33251,31817,33300,31817 33078,31818,33146,31818 33259,31818,33298,31818 33251,31818,33254,31818 33278,31819,33279,31819 33266,31819,33273,31819 33252,31819,33254,31819 33078,31819,33148,31820 33267,31820,33271,31820 33253,31820,33254,31820 33282,31819,33297,31821 33078,31821,33086,31821 33269,31821,33271,31821 33090,31821,33148,31821 33282,31822,33298,31822 33079,31822,33082,31822 33090,31822,33149,31822 33080,31823,33081,31823 33091,31823,33150,31823 33284,31823,33299,31823 33285,31824,33299,31824 33095,31824,33150,31824 33095,31825,33141,31825 33286,31825,33300,31825 33289,31826,33300,31826 33144,31826,33149,31826 33094,31826,33141,31826 33143,31827,33150,31827 33094,31827,33140,31827 33288,31827,33300,31827 33143,31828,33155,31828 33094,31828,33139,31828 33288,31828,33299,31828 33141,31829,33156,31829 33288,31829,33298,31829 33093,31829,33138,31829 33288,31830,33299,31830 33090,31830,33138,31830 33140,31830,33156,31831 33088,31831,33138,31831 33289,31831,33300,31831 33290,31832,33300,31832 33140,31832,33155,31832 33313,31833,33315,31833 33141,31833,33154,31833 33291,31833,33300,31833 33087,31832,33138,31834 33292,31834,33299,31834 33312,31834,33316,31834 33142,31834,33154,31835 33293,31835,33300,31835 33312,31835,33317,31835 33142,31836,33155,31836 33292,31836,33317,31836 33086,31835,33139,31837 33142,31837,33156,31837 33291,31837,33317,31837 33311,31838,33317,31838 33142,31838,33157,31838 33291,31838,33300,31838 33087,31838,33138,31839 33141,31839,33157,31839 33312,31839,33316,31839 33292,31839,33301,31839 33293,31840,33301,31840 33313,31840,33315,31840 33140,31840,33151,31840 33088,31840,33137,31840 33297,31841,33301,31841 33110,31841,33136,31841 33139,31841,33151,31841 33089,31841,33099,31841 33105,31841,33106,31841 33112,31842,33134,31842 33090,31842,33097,31842 33138,31842,33150,31842 33137,31843,33149,31843 33091,31843,33095,31843 33113,31843,33134,31843 33113,31844,33133,31844 33091,31844,33094,31844 33136,31844,33147,31844 33135,31845,33144,31845 33113,31845,33130,31845 33132,31846,33141,31846 33117,31846,33129,31846 33090,31845,33093,31847 33131,31847,33140,31847 33119,31847,33128,31847 33091,31848,33093,31848 33131,31848,33137,31848 33119,31848,33122,31848 33125,31849,33136,31849 33120,31849,33122,31850 33124,31850,33134,31850 33120,31851,33121,31851 33124,31851,33133,31852 33120,31852,33120,31852 33123,31853,33133,31853 33122,31854,33134,31856 33120,31857,33134,31857 33119,31858,33134,31859 33120,31860,33121,31860 33129,31860,33134,31860 33123,31860,33124,31860 33129,31861,33133,31861 33129,31862,33132,31863 33130,31864,33131,31864 33323,31875,33328,31875 33319,31876,33329,31876 33318,31877,33329,31877 33318,31878,33330,31878 33317,31879,33330,31879 33316,31880,33330,31881 33314,31882,33330,31883 33316,31884,33330,31887 33317,31888,33330,31888 33317,31889,33328,31889 33321,31890,33326,31890 33184,31976,33193,31976 33183,31977,33194,31977 33182,31978,33195,31978 33181,31979,33196,31979 33180,31980,33197,31980 33179,31981,33197,31981 33179,31982,33198,31989 33180,31990,33197,31990 33181,31991,33196,31991 33182,31992,33195,31992 33183,31993,33194,31993 33184,31994,33193,31994", + }, + [64] = { -- Daramian Minotaur Pyramid (459 tiles, 23 rects) + name = "Daramian Minotaur Pyramid", + mainArea = 4, + bbox = { x1 = 33298, y1 = 32266, x2 = 33325, y2 = 32296 }, + rects = "33309,32266,33310,32266 33308,32267,33311,32268 33309,32269,33310,32269 33309,32270,33311,32271 33309,32272,33310,32273 33309,32274,33311,32274 33300,32275,33301,32275 33307,32275,33312,32275 33298,32276,33316,32277 33298,32278,33317,32278 33298,32279,33318,32279 33298,32280,33320,32280 33298,32281,33321,32281 33298,32282,33325,32283 33298,32284,33321,32284 33298,32285,33320,32285 33298,32286,33318,32286 33298,32287,33317,32287 33298,32288,33319,32292 33298,32293,33318,32293 33298,32294,33317,32294 33311,32295,33313,32295 33311,32296,33312,32296", + }, + [66] = { -- Drefia (5628 tiles, 228 rects) + name = "Drefia", + mainArea = 4, + bbox = { x1 = 32961, y1 = 32381, x2 = 33079, y2 = 32503 }, + rects = "32986,32381,32987,32381 32986,32382,32988,32383 32992,32383,32994,32383 32991,32384,32995,32384 32987,32385,32988,32385 32991,32385,32996,32385 32991,32386,32997,32386 32987,32386,32989,32387 32983,32386,32984,32387 32992,32387,32997,32387 32984,32388,32985,32388 32988,32388,32989,32388 32992,32388,32998,32388 32989,32389,32999,32389 32983,32389,32985,32390 32987,32390,33001,32390 32983,32391,33003,32391 32986,32392,33005,32392 32986,32393,33007,32393 32986,32394,33008,32395 32978,32395,32981,32396 32985,32396,33008,32396 32984,32397,33008,32397 32978,32397,32982,32397 32978,32398,33008,32398 32978,32399,33009,32399 32978,32400,33010,32400 32977,32401,33011,32401 32977,32402,33012,32403 32971,32403,32972,32403 32970,32404,33012,32404 32969,32405,33012,32406 32970,32407,33013,32408 32971,32409,33016,32409 32975,32410,33017,32410 32976,32411,33018,32411 32980,32412,33018,32416 32976,32417,33020,32417 33026,32417,33026,32418 32976,32418,33021,32419 32972,32419,32974,32419 33026,32419,33027,32420 32972,32420,33022,32420 32972,32421,32975,32421 33026,32421,33028,32421 32977,32421,33021,32422 32973,32422,32974,32422 32975,32423,33021,32423 32974,32424,33020,32424 32973,32425,33020,32425 32972,32426,33021,32426 32964,32427,32965,32427 33025,32428,33025,32428 32962,32428,32966,32428 32972,32427,33022,32429 33025,32429,33027,32429 32961,32429,32968,32429 32961,32430,32969,32430 32972,32430,33026,32430 32974,32431,33026,32431 32961,32431,32972,32431 32961,32432,32968,32432 32975,32432,33027,32432 32970,32432,32973,32433 32976,32433,33026,32433 32962,32433,32966,32433 32970,32434,32972,32434 32977,32434,33026,32434 33031,32434,33031,32435 32976,32435,33026,32435 32976,32436,33033,32436 32976,32437,33036,32437 32977,32438,33037,32438 32978,32439,33038,32439 33049,32439,33049,32439 32977,32440,33039,32440 33048,32440,33050,32441 32976,32441,33040,32441 33049,32442,33050,32442 32975,32442,33041,32442 33050,32443,33051,32443 32974,32443,33041,32443 33018,32444,33040,32444 32971,32444,33014,32445 33017,32445,33039,32445 33054,32446,33054,32446 32971,32446,33013,32446 33051,32446,33051,32446 33016,32446,33037,32447 32978,32447,33012,32447 33050,32447,33055,32447 32971,32447,32975,32447 32981,32448,33008,32448 33014,32448,33036,32448 32972,32448,32974,32449 33051,32448,33055,32449 32981,32449,33007,32449 33011,32449,33035,32449 32968,32450,32979,32450 33010,32450,33035,32450 32984,32450,32999,32451 33051,32450,33054,32451 32967,32451,32979,32451 33002,32451,33035,32451 33001,32452,33035,32452 32966,32452,32968,32452 33050,32452,33054,32452 32970,32452,32979,32452 32984,32452,32998,32452 33000,32453,33038,32453 32965,32453,32968,32453 32971,32453,32979,32453 33049,32453,33054,32454 32966,32454,32979,32454 32983,32453,32998,32455 33048,32455,33057,32455 32974,32455,32974,32455 33000,32454,33037,32456 32982,32456,32998,32456 33049,32456,33057,32456 32980,32457,32998,32457 33049,32457,33059,32457 33048,32458,33061,32458 32977,32458,32998,32458 33000,32457,33036,32459 33064,32457,33065,32459 32967,32458,32968,32459 33038,32458,33038,32459 33047,32459,33061,32459 32976,32459,32986,32460 33046,32460,33061,32460 33064,32460,33064,32460 32999,32460,33036,32460 32989,32459,32997,32461 32966,32460,32969,32461 32975,32461,32985,32461 32999,32461,33035,32461 33046,32461,33064,32461 33044,32462,33064,32462 32990,32462,32997,32462 32975,32462,32984,32462 32966,32462,32970,32462 33045,32463,33065,32463 32968,32463,32971,32463 32991,32463,32996,32463 33037,32463,33038,32463 32975,32463,32983,32463 32999,32462,33034,32464 32976,32464,32982,32464 32969,32464,32971,32464 33036,32464,33039,32464 32990,32464,32995,32464 33044,32464,33065,32464 33036,32465,33066,32465 32998,32465,33033,32465 32988,32465,32995,32465 32969,32465,32970,32466 32987,32466,32995,32466 33035,32466,33067,32466 32997,32466,33032,32467 32987,32467,32994,32467 33034,32467,33068,32467 32985,32468,32994,32468 33034,32468,33069,32469 32984,32469,32994,32469 33072,32470,33075,32470 32984,32470,32993,32470 32996,32468,33032,32471 33034,32470,33070,32471 32985,32471,32992,32471 33072,32471,33076,32471 32995,32472,33031,32472 32995,32473,33022,32473 32995,32474,33021,32474 33026,32474,33028,32474 33034,32472,33077,32475 32996,32475,33004,32475 33025,32475,33029,32475 33010,32475,33021,32475 33001,32476,33003,32476 33025,32476,33077,32476 32996,32476,32999,32476 33011,32476,33021,32476 33025,32477,33076,32477 32997,32477,32998,32477 33011,32477,33020,32477 33025,32478,33074,32478 33012,32478,33019,32478 33014,32479,33018,32479 33026,32479,33074,32479 33028,32480,33074,32480 33015,32480,33017,32480 33039,32481,33074,32481 33029,32481,33035,32481 33046,32482,33074,32482 33040,32482,33044,32482 33031,32482,33034,32482 33039,32483,33044,32483 33047,32483,33075,32483 33051,32484,33079,32484 33038,32484,33043,32485 33052,32485,33079,32485 33053,32486,33079,32486 33039,32486,33042,32487 33054,32487,33079,32487 33040,32488,33041,32488 33055,32488,33078,32488 33055,32489,33077,32489 33068,32490,33074,32490 33052,32490,33065,32490 33069,32491,33074,32491 33050,32491,33064,32491 33062,32492,33063,32492 33049,32492,33060,32492 33068,32492,33073,32493 33049,32493,33055,32493 33057,32493,33060,32493 33050,32494,33055,32494 33069,32494,33073,32494 33058,32494,33059,32494 33071,32495,33073,32495 33052,32495,33055,32496 33051,32497,33055,32497 33051,32498,33054,32498 33050,32499,33053,32499 33049,32500,33053,32500 33049,32501,33054,32502 33050,32503,33053,32503", + }, + [68] = { -- Northern Darama Desert (40360 tiles, 511 rects) + name = "Northern Darama Desert", + mainArea = 4, + bbox = { x1 = 32990, y1 = 32257, x2 = 33329, y2 = 32529 }, + rects = "33248,32257,33252,32257 33247,32258,33254,32258 33230,32259,33232,32259 33247,32259,33255,32260 33229,32260,33233,32261 33248,32261,33256,32261 33246,32262,33256,32262 33227,32262,33234,32262 33262,32262,33264,32262 33240,32263,33265,32263 33226,32263,33235,32264 33212,32264,33215,32264 33239,32264,33268,32264 33207,32264,33210,32264 33206,32265,33215,32265 33224,32265,33235,32265 33238,32265,33269,32265 33223,32266,33270,32266 33220,32267,33270,32267 33206,32266,33216,32268 33287,32268,33288,32268 33219,32268,33273,32268 33284,32269,33289,32269 33207,32269,33276,32269 33208,32270,33277,32270 33283,32270,33289,32272 33210,32271,33278,32272 33283,32273,33290,32273 33294,32273,33295,32273 33209,32273,33278,32274 33293,32274,33297,32274 33282,32274,33290,32274 33293,32275,33298,32275 33209,32275,33290,32275 33293,32276,33297,32276 33210,32276,33291,32276 33213,32277,33297,32278 33212,32279,33297,32279 33204,32279,33206,32279 33201,32280,33208,32280 33211,32280,33297,32280 33200,32281,33297,32281 33199,32282,33297,32284 33200,32285,33297,32285 33199,32286,33297,32288 33200,32289,33297,32289 33201,32290,33297,32294 33201,32295,33309,32295 33201,32296,33307,32296 33195,32297,33198,32297 33201,32297,33306,32297 33194,32298,33199,32298 33190,32298,33192,32298 33201,32298,33309,32298 33189,32299,33310,32300 33187,32301,33310,32301 33186,32302,33310,32302 33314,32302,33316,32302 33185,32303,33310,32303 33313,32303,33317,32303 33184,32304,33317,32304 33184,32305,33318,32306 33185,32307,33318,32307 33186,32308,33317,32308 33184,32309,33317,32309 33183,32310,33318,32310 33183,32311,33319,32311 33183,32312,33320,32312 33183,32313,33321,32314 33183,32315,33323,32315 33183,32316,33324,32316 33184,32317,33324,32317 33186,32318,33324,32318 33326,32318,33328,32318 33186,32319,33329,32319 33185,32320,33329,32320 33185,32321,33328,32321 33185,32322,33327,32322 33186,32323,33328,32324 33187,32325,33327,32326 33187,32327,33326,32328 33188,32329,33325,32329 33091,32330,33092,32330 33189,32330,33325,32330 33188,32331,33325,32331 33085,32331,33094,32332 33188,32332,33324,32332 33189,32333,33322,32333 33085,32333,33096,32333 33084,32334,33097,32334 33191,32334,33319,32334 33192,32335,33319,32335 33191,32336,33319,32336 33084,32335,33098,32337 33189,32337,33319,32338 33110,32338,33112,32338 33085,32338,33097,32339 33187,32339,33319,32339 33120,32339,33123,32339 33109,32339,33115,32339 33086,32340,33097,32340 33109,32340,33124,32340 33187,32340,33318,32340 33186,32341,33317,32341 33095,32341,33096,32341 33089,32341,33093,32341 33110,32341,33124,32341 33100,32342,33102,32342 33186,32342,33321,32342 33090,32342,33091,32342 33107,32342,33125,32342 33050,32343,33053,32343 33040,32343,33042,32343 33099,32343,33125,32343 33075,32343,33077,32343 33193,32343,33322,32344 33186,32343,33190,32344 33049,32344,33055,32344 33130,32344,33132,32344 33097,32344,33125,32344 33039,32344,33046,32344 33192,32345,33322,32345 33187,32345,33189,32345 33097,32345,33133,32345 33039,32345,33056,32346 33097,32346,33138,32346 33075,32344,33078,32347 33192,32346,33320,32347 33039,32347,33058,32347 33097,32347,33140,32347 33031,32348,33033,32348 33191,32348,33320,32348 33039,32348,33063,32348 33097,32348,33141,32348 33074,32348,33079,32348 33191,32349,33321,32349 33074,32349,33080,32349 33030,32349,33034,32349 33161,32349,33162,32349 33098,32349,33142,32349 33074,32350,33081,32350 33098,32350,33144,32350 33023,32350,33025,32350 33190,32350,33321,32350 33159,32350,33163,32350 33029,32350,33035,32350 33040,32349,33064,32351 33022,32351,33036,32351 33289,32351,33322,32351 33189,32351,33283,32351 33183,32351,33186,32351 33099,32351,33136,32351 33159,32351,33166,32351 33075,32351,33084,32352 33016,32351,33019,32352 33156,32352,33167,32352 33100,32352,33135,32352 33022,32352,33064,32352 33182,32352,33287,32352 32998,32352,33001,32352 33291,32352,33322,32352 33139,32351,33145,32353 33298,32353,33322,32353 33092,32353,33097,32353 33151,32353,33167,32353 33016,32353,33064,32353 32997,32353,33001,32353 33066,32353,33069,32353 33075,32353,33085,32353 33104,32353,33135,32354 33182,32353,33288,32354 33299,32354,33322,32354 33075,32354,33087,32354 33016,32354,33071,32354 33139,32354,33144,32354 33294,32354,33295,32354 33151,32354,33166,32354 32997,32354,33002,32354 33091,32354,33101,32354 33151,32355,33165,32355 33104,32355,33136,32355 33293,32355,33296,32355 32997,32355,33003,32355 33091,32355,33102,32355 33181,32355,33288,32355 33140,32355,33143,32355 33075,32355,33088,32355 33301,32355,33321,32356 33015,32355,33072,32356 32997,32356,33004,32356 33090,32356,33102,32356 33149,32356,33160,32356 33181,32356,33298,32356 33140,32356,33144,32356 33076,32356,33088,32356 33104,32356,33137,32357 33014,32357,33072,32357 33148,32357,33160,32357 33077,32357,33102,32357 32996,32357,33009,32357 33140,32357,33146,32357 33301,32357,33320,32357 33181,32357,33299,32358 33104,32358,33136,32358 33141,32358,33159,32358 33078,32358,33102,32358 33177,32358,33178,32358 32995,32358,33012,32358 33301,32358,33317,32358 33014,32358,33075,32358 33141,32359,33152,32359 32994,32359,33102,32359 33301,32359,33318,32359 33176,32359,33299,32359 33104,32359,33137,32359 33154,32359,33159,32360 33302,32360,33318,32360 33142,32360,33151,32360 32993,32360,33102,32360 33176,32360,33298,32360 33105,32360,33137,32361 33145,32361,33148,32361 33308,32361,33318,32361 33177,32361,33178,32361 33154,32361,33160,32361 33183,32361,33298,32361 33105,32362,33138,32362 33154,32362,33161,32362 33309,32362,33318,32362 33146,32362,33147,32362 33171,32362,33173,32362 32992,32361,33103,32363 33183,32362,33299,32363 33105,32363,33142,32363 33154,32363,33162,32363 33311,32363,33318,32363 33168,32363,33175,32363 32993,32364,33103,32364 33184,32364,33299,32364 33167,32364,33176,32364 33152,32364,33163,32364 33105,32364,33143,32364 32994,32365,33103,32365 33151,32365,33163,32365 33106,32365,33146,32365 33188,32365,33303,32365 33166,32365,33181,32365 33311,32364,33316,32366 33150,32366,33185,32366 33188,32366,33304,32366 32994,32366,33104,32367 33189,32367,33305,32367 33150,32367,33186,32367 33106,32366,33147,32368 33310,32367,33316,32368 32992,32368,33104,32368 33193,32368,33306,32368 33150,32368,33187,32368 33311,32369,33316,32369 33194,32369,33306,32369 33107,32369,33191,32369 33312,32370,33316,32370 33107,32370,33192,32370 33107,32371,33193,32371 33312,32371,33315,32371 33312,32372,33314,32372 32991,32369,33104,32373 33195,32370,33306,32374 32992,32374,33104,32374 33106,32372,33193,32375 32991,32375,33104,32375 33196,32375,33306,32375 33198,32376,33298,32376 33301,32376,33305,32376 32990,32376,33193,32377 33200,32377,33298,32377 33200,32378,33205,32378 33214,32378,33297,32378 32990,32378,33194,32379 33200,32379,33203,32379 33216,32379,33224,32379 33217,32380,33224,32380 32991,32380,33194,32380 33200,32380,33202,32380 33226,32379,33296,32381 32992,32381,33194,32381 33218,32381,33223,32382 32996,32382,33193,32382 33227,32382,33295,32382 33199,32381,33201,32383 33227,32383,33232,32383 33299,32383,33303,32383 33218,32383,33222,32383 32998,32383,33196,32383 33235,32383,33293,32384 33228,32384,33232,32384 32998,32384,33197,32384 33299,32384,33304,32384 33200,32384,33201,32384 33218,32384,33221,32384 33237,32385,33278,32385 33298,32385,33304,32385 32999,32385,33197,32385 33281,32385,33293,32386 33297,32386,33306,32386 33239,32386,33277,32386 33000,32386,33198,32386 33201,32385,33201,32387 33282,32387,33293,32387 33001,32387,33199,32387 33264,32387,33269,32387 33296,32387,33307,32387 33242,32387,33262,32387 33266,32388,33267,32388 33295,32388,33308,32388 33002,32388,33199,32388 33245,32388,33261,32388 33003,32389,33200,32389 33248,32389,33260,32389 33282,32388,33292,32390 33294,32389,33308,32390 33251,32390,33254,32390 33257,32390,33259,32390 33005,32390,33201,32390 33007,32391,33201,32391 33283,32391,33307,32392 33009,32392,33201,32392 33283,32393,33306,32393 33010,32393,33202,32393 33010,32394,33199,32394 33284,32394,33304,32394 33284,32395,33303,32395 33010,32395,33188,32397 33011,32398,33188,32398 33282,32396,33302,32399 33012,32399,33188,32399 33304,32400,33312,32400 33013,32400,33188,32400 33282,32400,33301,32400 33282,32401,33313,32401 33014,32401,33188,32401 33282,32402,33314,32402 33015,32402,33188,32402 33282,32403,33315,32403 33015,32403,33189,32403 33318,32404,33319,32404 33282,32404,33316,32404 33015,32404,33190,32406 33282,32405,33320,32407 33016,32407,33190,32407 33282,32408,33319,32408 33019,32408,33190,32409 33282,32409,33316,32409 33020,32410,33189,32410 33282,32410,33317,32411 33020,32411,33188,32412 33287,32412,33320,32412 33287,32413,33321,32413 33020,32413,33187,32413 33031,32414,33186,32414 33289,32414,33321,32414 33020,32414,33024,32414 33290,32415,33321,32415 33032,32415,33187,32415 33021,32415,33022,32415 33033,32416,33188,32416 33034,32417,33188,32417 33035,32418,33188,32418 33037,32419,33188,32419 33038,32420,33188,32420 33041,32421,33188,32421 33291,32416,33322,32422 33044,32422,33188,32422 33047,32423,33188,32423 33291,32423,33316,32423 33319,32423,33321,32423 33056,32424,33188,32424 33286,32424,33286,32424 33291,32424,33315,32424 33059,32425,33188,32425 33291,32425,33314,32425 33049,32424,33050,32426 33061,32426,33189,32426 33291,32426,33310,32426 33291,32427,33308,32427 33064,32427,33189,32427 33048,32427,33050,32427 33291,32428,33307,32428 33065,32428,33189,32428 33047,32428,33051,32429 33066,32429,33189,32429 33048,32430,33049,32430 33069,32430,33187,32430 33291,32429,33305,32431 33071,32431,33191,32431 33073,32432,33191,32432 33291,32432,33306,32433 33074,32433,33191,32433 33075,32434,33191,32434 33291,32434,33305,32435 33079,32435,33191,32436 33285,32436,33304,32436 33073,32437,33073,32437 33079,32437,33192,32437 33284,32437,33304,32437 33071,32438,33192,32438 33083,32439,33192,32439 33071,32439,33076,32439 33283,32438,33303,32440 33083,32440,33191,32440 33071,32440,33075,32440 33072,32441,33074,32441 33084,32441,33190,32441 33287,32441,33303,32441 33288,32442,33302,32442 33086,32442,33189,32442 33087,32443,33192,32443 33288,32443,33301,32444 33088,32444,33192,32444 33089,32445,33192,32445 33288,32445,33304,32445 33090,32446,33191,32446 33288,32446,33305,32446 33091,32447,33189,32447 33287,32447,33307,32447 33287,32448,33308,32448 33091,32448,33188,32449 33286,32449,33308,32449 33090,32450,33188,32450 33284,32450,33308,32451 33091,32451,33188,32452 33091,32453,33189,32453 33089,32454,33189,32454 33090,32455,33092,32455 33284,32452,33309,32457 33097,32455,33189,32457 33284,32458,33308,32458 33098,32458,33189,32459 33284,32459,33307,32459 33098,32460,33191,32460 33284,32460,33301,32461 33098,32461,33192,32461 33294,32462,33301,32462 33097,32462,33194,32462 33284,32462,33292,32462 33295,32463,33300,32463 33097,32463,33195,32463 33287,32463,33291,32463 33284,32463,33285,32464 33298,32464,33299,32464 33099,32464,33195,32466 33100,32467,33195,32468 33101,32469,33195,32469 33101,32470,33196,32470 33103,32471,33196,32474 33105,32475,33196,32476 33105,32477,33197,32477 33202,32477,33204,32477 33226,32478,33228,32478 33105,32478,33205,32478 33223,32479,33229,32479 33105,32479,33206,32479 33209,32479,33212,32479 33105,32480,33215,32480 33219,32480,33229,32480 33106,32481,33230,32483 33107,32484,33230,32484 33108,32485,33230,32485 33109,32486,33230,32486 33110,32487,33231,32487 33112,32488,33232,32489 33114,32490,33232,32490 33115,32491,33232,32491 33116,32492,33231,32493 33117,32494,33230,32495 33117,32496,33229,32496 33118,32497,33229,32497 33118,32498,33228,32498 33118,32499,33226,32499 33120,32500,33225,32501 33121,32502,33224,32504 33122,32505,33224,32505 33124,32506,33225,32506 33126,32507,33225,32507 33127,32508,33225,32509 33129,32510,33225,32510 33132,32511,33225,32511 33135,32512,33225,32512 33136,32513,33226,32515 33137,32516,33207,32516 33213,32516,33224,32516 33215,32517,33222,32517 33139,32517,33204,32517 33216,32518,33222,32518 33143,32518,33202,32518 33145,32519,33200,32519 33217,32519,33221,32519 33217,32520,33219,32520 33146,32520,33198,32520 33147,32521,33196,32521 33218,32521,33219,32521 33148,32522,33194,32522 33218,32522,33218,32522 33151,32523,33192,32523 33151,32524,33189,32524 33153,32525,33186,32525 33153,32526,33183,32526 33156,32527,33180,32527 33162,32528,33177,32528 33175,32529,33176,32529 33171,32529,33173,32529", + }, + [69] = { -- Amazon Camp (2661 tiles, 74 rects) + name = "Amazon Camp", + mainArea = 25, + bbox = { x1 = 32811, y1 = 31900, x2 = 32882, y2 = 31959 }, + rects = "32867,31900,32869,31900 32852,31901,32855,31901 32866,31901,32870,31902 32851,31902,32859,31902 32849,31903,32860,31903 32867,31903,32870,31904 32847,31904,32860,31904 32846,31905,32860,31905 32866,31905,32871,31905 32830,31905,32834,31905 32839,31906,32863,31906 32829,31906,32835,31906 32865,31906,32871,31906 32829,31907,32870,31907 32827,31908,32868,31908 32823,31909,32869,31909 32822,31910,32869,31911 32875,31911,32877,31911 32874,31912,32878,31912 32821,31912,32869,31912 32820,31913,32869,31913 32873,31913,32878,31913 32818,31914,32877,31914 32812,31915,32877,31915 32811,31916,32872,31916 32875,31916,32876,31916 32811,31917,32871,31917 32811,31918,32873,31918 32811,31919,32874,31920 32812,31921,32874,31921 32812,31922,32873,31922 32812,31923,32872,31923 32812,31924,32873,31924 32812,31925,32874,31925 32877,31927,32879,31927 32813,31926,32874,31928 32876,31928,32880,31928 32813,31929,32880,31929 32813,31930,32881,31930 32813,31931,32882,31933 32813,31934,32881,31934 32812,31935,32878,31935 32811,31936,32877,31936 32812,31937,32876,31937 32813,31938,32874,31938 32814,31939,32874,31939 32815,31940,32822,31940 32825,31940,32873,31940 32818,31941,32820,31941 32826,31941,32828,31941 32830,31941,32873,31942 32835,31943,32860,31943 32863,31943,32873,31943 32864,31944,32874,31944 32836,31944,32859,31944 32865,31945,32875,31945 32837,31945,32858,31945 32839,31946,32857,31946 32863,31946,32876,31947 32840,31947,32857,31947 32865,31948,32876,31948 32841,31948,32856,31948 32845,31949,32856,31949 32864,31949,32876,31949 32862,31950,32875,31950 32847,31950,32855,31950 32848,31951,32853,31951 32861,31951,32872,31951 32860,31952,32872,31953 32859,31954,32872,31955 32858,31956,32872,31956 32858,31957,32871,31957 32859,31958,32868,31958 32860,31959,32862,31959", + }, + [70] = { -- Black Knight Villa (409 tiles, 14 rects) + name = "Black Knight Villa", + mainArea = 25, + bbox = { x1 = 32809, y1 = 31954, x2 = 32833, y2 = 31973 }, + rects = "32815,31954,32833,31954 32809,31955,32833,31963 32811,31964,32832,31964 32812,31965,32832,31967 32813,31968,32831,31968 32830,31969,32831,31969 32814,31969,32827,31969 32830,31970,32832,31970 32817,31970,32826,31970 32817,31971,32825,31971 32831,31971,32832,31971 32818,31972,32825,31972 32831,31972,32831,31972 32820,31973,32831,31973", + }, + [71] = { -- Venore Dragon Lair (488 tiles, 48 rects) + name = "Venore Dragon Lair", + mainArea = 25, + bbox = { x1 = 32775, y1 = 32138, x2 = 32830, y2 = 32170 }, + rects = "32795,32138,32803,32138 32789,32138,32791,32138 32787,32139,32804,32139 32786,32140,32805,32141 32777,32141,32781,32141 32824,32141,32825,32141 32786,32142,32804,32142 32822,32142,32826,32142 32776,32142,32782,32142 32787,32143,32797,32143 32801,32143,32804,32143 32815,32143,32827,32143 32775,32143,32783,32144 32815,32144,32828,32144 32802,32144,32806,32144 32788,32144,32793,32144 32802,32145,32807,32145 32775,32145,32784,32145 32788,32145,32792,32145 32814,32145,32828,32145 32814,32146,32827,32146 32802,32146,32808,32146 32789,32146,32791,32146 32776,32146,32784,32147 32803,32147,32808,32147 32814,32147,32826,32147 32815,32148,32825,32148 32776,32148,32783,32148 32803,32148,32807,32149 32820,32149,32821,32149 32777,32149,32782,32149 32779,32150,32781,32150 32803,32150,32806,32150 32819,32156,32821,32156 32818,32157,32823,32157 32818,32158,32829,32158 32818,32159,32828,32160 32818,32161,32829,32161 32817,32162,32830,32162 32815,32163,32830,32163 32814,32164,32829,32164 32813,32165,32829,32165 32818,32166,32828,32166 32813,32166,32814,32167 32819,32167,32828,32167 32820,32168,32829,32169 32826,32170,32829,32170 32822,32170,32822,32170", + }, + [72] = { -- Green Claw Swamp (32856 tiles, 590 rects) + name = "Green Claw Swamp", + mainArea = 25, + bbox = { x1 = 32625, y1 = 31930, x2 = 32878, y2 = 32155 }, + rects = "32783,31930,32784,31930 32781,31931,32788,31931 32723,31931,32742,31931 32774,31932,32791,31932 32722,31932,32743,31933 32773,31933,32792,31934 32798,31934,32802,31934 32717,31934,32743,31935 32747,31935,32750,31935 32770,31935,32803,31935 32769,31936,32803,31936 32718,31936,32751,31937 32768,31937,32803,31937 32811,31937,32811,31937 32753,31938,32755,31938 32807,31938,32812,31938 32719,31938,32750,31938 32764,31938,32765,31938 32767,31938,32803,31938 32806,31939,32813,31939 32762,31939,32802,31939 32719,31939,32757,31939 32823,31940,32824,31940 32719,31940,32801,31940 32805,31940,32814,31940 32720,31941,32801,31941 32829,31941,32829,31941 32821,31941,32825,31941 32804,31941,32817,31941 32803,31942,32829,31942 32720,31942,32800,31942 32802,31943,32834,31943 32802,31944,32835,31944 32721,31943,32800,31945 32803,31945,32836,31945 32722,31946,32799,31946 32801,31946,32838,31946 32722,31947,32839,31947 32722,31948,32792,31948 32794,31948,32840,31948 32722,31949,32790,31949 32794,31949,32844,31949 32792,31950,32800,31950 32722,31950,32735,31950 32744,31950,32789,31950 32802,31950,32846,31950 32741,31950,32742,31950 32745,31951,32789,31951 32720,31951,32740,31951 32802,31951,32847,31951 32792,31951,32799,31951 32749,31952,32790,31952 32746,31952,32747,31952 32719,31952,32744,31952 32801,31952,32849,31952 32792,31952,32797,31952 32717,31953,32745,31953 32799,31953,32849,31953 32749,31953,32791,31954 32793,31954,32814,31954 32716,31954,32745,31954 32834,31954,32848,31955 32716,31955,32746,31955 32750,31955,32788,31955 32751,31956,32790,31956 32715,31956,32748,31956 32834,31956,32847,31957 32716,31957,32749,31957 32752,31957,32790,31957 32792,31955,32808,31958 32672,31958,32674,31958 32752,31958,32757,31958 32834,31958,32846,31958 32716,31958,32750,31958 32759,31958,32790,31959 32717,31959,32751,31959 32754,31959,32755,31959 32793,31959,32808,31959 32834,31959,32842,31959 32672,31959,32675,31959 32834,31960,32841,31960 32717,31960,32752,31960 32762,31960,32790,31960 32792,31960,32808,31961 32671,31960,32676,31961 32717,31961,32760,31961 32766,31961,32790,31961 32671,31962,32677,31962 32766,31962,32789,31962 32717,31962,32762,31962 32834,31961,32839,31963 32791,31962,32808,31963 32671,31963,32678,31963 32717,31963,32763,31963 32766,31963,32782,31963 32639,31961,32645,31964 32672,31964,32678,31964 32716,31964,32763,31964 32784,31964,32810,31964 32767,31964,32780,31964 32769,31965,32780,31965 32783,31965,32811,31965 32715,31965,32763,31965 32765,31965,32766,31965 32639,31965,32646,31965 32833,31964,32839,31966 32672,31965,32679,31966 32713,31966,32767,31966 32851,31966,32854,31966 32774,31966,32779,31966 32637,31966,32647,31966 32782,31966,32811,31966 32671,31967,32681,31967 32833,31967,32840,31967 32712,31967,32762,31967 32781,31967,32811,31967 32850,31967,32855,31967 32775,31967,32778,31967 32626,31967,32628,31967 32631,31967,32647,31967 32764,31967,32771,31967 32627,31968,32648,31968 32781,31968,32812,31968 32847,31968,32856,31968 32671,31968,32682,31968 32711,31968,32772,31968 32832,31968,32840,31969 32846,31969,32857,31969 32672,31969,32683,31969 32706,31969,32776,31969 32697,31969,32699,31969 32778,31969,32813,31969 32627,31969,32649,31969 32672,31970,32684,31970 32843,31970,32857,31970 32833,31970,32840,31970 32627,31970,32650,31970 32694,31970,32701,31970 32704,31970,32816,31970 32842,31971,32857,31971 32692,31971,32777,31971 32672,31971,32686,31971 32833,31971,32839,31971 32779,31971,32816,31971 32627,31971,32651,31972 32842,31972,32858,31972 32780,31972,32817,31972 32832,31972,32838,31973 32673,31972,32777,31973 32779,31973,32819,31973 32627,31973,32652,31973 32841,31973,32859,31973 32779,31974,32837,31974 32627,31974,32653,31974 32840,31974,32859,31974 32673,31974,32776,31975 32839,31975,32854,31975 32778,31975,32832,31975 32626,31975,32654,31975 32857,31975,32858,31975 32625,31976,32655,31976 32835,31976,32853,31976 32672,31976,32832,31976 32834,31977,32851,31977 32625,31977,32660,31977 32671,31977,32832,31977 32626,31978,32664,31978 32834,31978,32853,31978 32667,31978,32831,31978 32833,31979,32854,31979 32627,31979,32829,31979 32628,31980,32829,31980 32831,31980,32854,31980 32779,31981,32809,31981 32629,31981,32756,31981 32811,31981,32853,31981 32759,31981,32773,31981 32795,31982,32809,31982 32631,31982,32754,31982 32826,31982,32855,31982 32811,31982,32824,31982 32776,31982,32791,31982 32760,31982,32773,31983 32826,31983,32846,31983 32850,31983,32856,31983 32632,31983,32753,31983 32812,31983,32823,31983 32796,31983,32807,31983 32775,31983,32791,31984 32851,31984,32857,31984 32759,31984,32772,31984 32813,31984,32818,31984 32799,31984,32805,31984 32809,31984,32810,31984 32793,31984,32795,31984 32634,31984,32752,31984 32825,31984,32846,31984 32853,31985,32858,31985 32775,31985,32790,31985 32637,31985,32751,31985 32793,31985,32796,31985 32807,31985,32818,31985 32759,31985,32771,31985 32821,31985,32845,31985 32765,31986,32770,31986 32639,31986,32751,31986 32775,31986,32789,31986 32792,31986,32802,31986 32820,31986,32843,31986 32853,31986,32859,31986 32806,31986,32817,31986 32758,31986,32760,31987 32776,31987,32781,31987 32812,31987,32815,31987 32819,31987,32844,31987 32640,31987,32751,31987 32854,31987,32859,31987 32766,31987,32769,31987 32792,31987,32810,31987 32642,31988,32751,31988 32783,31988,32785,31988 32757,31988,32759,31988 32791,31988,32810,31988 32855,31988,32858,31988 32816,31988,32845,31988 32762,31988,32774,31988 32644,31989,32751,31989 32780,31989,32786,31989 32813,31989,32846,31989 32790,31989,32810,31989 32761,31989,32776,31989 32756,31989,32759,31989 32755,31990,32759,31990 32812,31990,32846,31990 32646,31990,32752,31990 32790,31990,32809,31991 32647,31991,32752,31991 32755,31991,32758,31991 32811,31991,32846,31991 32761,31990,32787,31992 32789,31992,32808,31992 32648,31992,32757,31992 32811,31992,32847,31993 32789,31993,32807,31993 32650,31993,32757,31993 32759,31993,32786,31993 32810,31994,32846,31994 32788,31994,32807,31994 32652,31994,32756,31994 32758,31994,32783,31995 32809,31995,32847,31995 32653,31995,32756,31995 32786,31995,32807,31995 32655,31996,32756,31997 32758,31996,32807,31997 32871,31997,32872,31997 32809,31996,32848,31998 32870,31998,32873,31998 32658,31998,32756,31998 32758,31998,32806,31999 32659,31999,32756,31999 32808,31999,32848,31999 32870,31999,32874,32000 32672,32000,32806,32000 32864,31997,32865,32001 32808,32000,32847,32001 32673,32001,32805,32001 32868,32001,32874,32001 32757,32002,32777,32002 32863,32002,32873,32002 32807,32002,32846,32002 32674,32002,32755,32002 32779,32002,32803,32002 32677,32003,32755,32003 32805,32003,32844,32003 32779,32003,32802,32003 32862,32003,32873,32003 32859,32003,32860,32003 32678,32004,32755,32004 32779,32004,32799,32004 32854,32004,32872,32004 32804,32004,32843,32004 32757,32003,32776,32005 32679,32005,32754,32005 32853,32005,32871,32005 32801,32005,32842,32005 32846,32005,32849,32005 32779,32005,32791,32006 32756,32006,32777,32006 32794,32006,32841,32006 32852,32006,32872,32006 32844,32006,32850,32006 32780,32007,32790,32007 32793,32007,32840,32007 32680,32006,32753,32008 32843,32007,32873,32008 32755,32007,32777,32008 32781,32008,32790,32008 32792,32008,32837,32008 32840,32009,32873,32009 32781,32009,32789,32009 32755,32009,32778,32009 32792,32009,32836,32009 32681,32009,32753,32010 32834,32010,32835,32010 32839,32010,32873,32010 32791,32010,32830,32010 32832,32011,32873,32011 32681,32011,32752,32011 32831,32012,32873,32012 32682,32012,32753,32012 32756,32010,32779,32013 32781,32010,32788,32013 32790,32011,32829,32013 32749,32013,32754,32013 32682,32013,32747,32013 32831,32013,32872,32013 32831,32014,32870,32014 32748,32014,32779,32014 32781,32014,32829,32014 32682,32014,32746,32015 32781,32015,32828,32015 32831,32015,32866,32016 32681,32016,32746,32016 32748,32015,32778,32017 32680,32017,32745,32017 32829,32017,32866,32017 32780,32016,32825,32018 32748,32018,32777,32018 32679,32018,32744,32018 32779,32019,32825,32019 32678,32019,32744,32019 32747,32019,32776,32019 32828,32018,32866,32020 32746,32020,32776,32020 32677,32020,32743,32020 32778,32020,32825,32021 32745,32021,32776,32021 32675,32021,32741,32021 32827,32021,32866,32022 32743,32022,32775,32022 32673,32022,32740,32022 32778,32022,32824,32023 32826,32023,32865,32023 32742,32023,32773,32023 32670,32023,32739,32023 32776,32024,32823,32024 32826,32024,32864,32024 32668,32024,32771,32024 32775,32025,32822,32025 32667,32025,32771,32025 32826,32025,32862,32025 32824,32026,32861,32026 32665,32026,32770,32026 32775,32026,32820,32027 32664,32027,32772,32027 32823,32027,32860,32027 32775,32028,32819,32028 32662,32028,32773,32028 32822,32028,32860,32029 32660,32029,32773,32029 32658,32030,32773,32030 32775,32029,32818,32031 32821,32030,32861,32031 32657,32031,32773,32031 32775,32032,32861,32032 32775,32033,32860,32033 32775,32034,32859,32034 32775,32035,32854,32035 32655,32032,32773,32036 32856,32036,32860,32036 32776,32036,32853,32036 32855,32037,32861,32037 32655,32037,32774,32037 32854,32038,32861,32038 32653,32038,32774,32038 32652,32039,32774,32039 32853,32039,32862,32039 32776,32037,32851,32040 32651,32040,32774,32040 32853,32040,32863,32041 32649,32041,32851,32041 32853,32042,32864,32042 32648,32042,32851,32042 32853,32043,32865,32043 32646,32043,32851,32043 32853,32044,32867,32044 32853,32045,32869,32045 32853,32046,32870,32046 32853,32047,32872,32047 32645,32044,32851,32048 32854,32048,32874,32048 32854,32049,32876,32049 32644,32049,32851,32049 32643,32050,32850,32050 32854,32050,32877,32051 32642,32051,32849,32051 32851,32052,32876,32052 32642,32052,32847,32053 32850,32053,32876,32053 32850,32054,32875,32054 32643,32054,32847,32054 32850,32055,32877,32055 32643,32055,32848,32056 32850,32056,32878,32057 32642,32057,32848,32057 32850,32058,32877,32058 32641,32058,32848,32059 32850,32059,32876,32060 32641,32060,32847,32060 32641,32061,32846,32061 32849,32061,32876,32062 32640,32062,32844,32062 32846,32063,32876,32063 32642,32063,32651,32063 32654,32063,32841,32063 32655,32064,32660,32064 32664,32064,32841,32064 32643,32064,32649,32064 32844,32064,32875,32064 32843,32065,32873,32065 32656,32065,32659,32065 32644,32065,32647,32065 32665,32065,32840,32065 32656,32066,32658,32066 32665,32066,32835,32066 32667,32067,32828,32067 32842,32066,32873,32068 32830,32068,32831,32068 32817,32068,32821,32068 32668,32068,32812,32068 32842,32069,32872,32069 32698,32069,32812,32069 32818,32069,32819,32069 32836,32069,32837,32069 32669,32069,32688,32069 32823,32069,32832,32069 32835,32070,32838,32070 32699,32070,32800,32070 32805,32070,32811,32070 32670,32070,32682,32070 32842,32070,32867,32070 32822,32070,32833,32071 32835,32071,32867,32071 32814,32071,32818,32071 32701,32071,32799,32071 32670,32071,32681,32071 32802,32071,32803,32071 32670,32072,32680,32073 32801,32072,32867,32073 32801,32074,32866,32074 32669,32074,32680,32074 32702,32072,32799,32075 32669,32075,32679,32075 32801,32075,32863,32076 32702,32076,32792,32076 32668,32076,32679,32076 32866,32076,32867,32076 32702,32077,32790,32077 32801,32077,32862,32077 32667,32077,32675,32077 32795,32076,32799,32078 32865,32077,32866,32078 32665,32078,32671,32078 32702,32078,32789,32078 32801,32078,32856,32079 32702,32079,32788,32079 32665,32079,32670,32079 32796,32079,32798,32079 32859,32079,32865,32079 32665,32080,32669,32080 32701,32080,32787,32080 32858,32080,32865,32081 32700,32081,32786,32081 32666,32081,32669,32081 32800,32080,32855,32082 32858,32082,32864,32082 32668,32082,32669,32082 32699,32082,32782,32082 32846,32083,32856,32083 32859,32083,32864,32083 32801,32083,32844,32084 32669,32083,32669,32084 32847,32084,32856,32084 32698,32083,32782,32085 32802,32085,32845,32085 32848,32085,32859,32085 32862,32084,32864,32086 32802,32086,32846,32086 32850,32086,32860,32086 32699,32086,32782,32086 32803,32087,32848,32087 32700,32087,32781,32087 32856,32087,32860,32087 32858,32088,32859,32088 32701,32088,32781,32088 32805,32088,32854,32088 32862,32087,32865,32089 32701,32089,32780,32089 32806,32089,32856,32089 32807,32090,32857,32090 32862,32090,32866,32090 32808,32091,32857,32091 32861,32091,32867,32091 32810,32092,32869,32092 32812,32093,32870,32093 32812,32094,32871,32094 32702,32090,32780,32095 32813,32095,32872,32095 32814,32096,32872,32096 32702,32096,32779,32096 32702,32097,32778,32097 32815,32097,32873,32097 32817,32098,32873,32098 32701,32098,32778,32098 32700,32099,32778,32099 32818,32099,32874,32100 32701,32100,32777,32101 32819,32101,32875,32101 32701,32102,32776,32102 32701,32103,32775,32103 32819,32102,32874,32104 32701,32104,32774,32104 32819,32105,32873,32106 32694,32105,32773,32106 32819,32107,32872,32107 32694,32107,32772,32107 32820,32108,32872,32108 32838,32109,32872,32109 32695,32108,32772,32110 32839,32110,32872,32110 32840,32111,32871,32111 32696,32111,32772,32112 32841,32112,32869,32112 32857,32113,32868,32113 32697,32113,32773,32113 32842,32113,32843,32113 32698,32114,32773,32114 32857,32114,32867,32114 32858,32115,32865,32115 32699,32115,32774,32115 32858,32116,32863,32116 32699,32116,32776,32116 32700,32117,32777,32117 32858,32117,32861,32117 32700,32118,32778,32118 32859,32118,32861,32119 32700,32119,32780,32119 32860,32120,32860,32121 32700,32120,32781,32121 32699,32122,32782,32122 32698,32123,32782,32123 32696,32124,32765,32124 32767,32124,32782,32125 32695,32125,32765,32125 32694,32126,32765,32126 32768,32126,32782,32126 32768,32127,32781,32127 32694,32127,32764,32127 32694,32128,32754,32128 32761,32128,32762,32128 32769,32128,32781,32128 32769,32129,32780,32129 32695,32129,32754,32129 32699,32130,32754,32130 32771,32130,32778,32130 32774,32131,32774,32131 32701,32131,32754,32131 32702,32132,32754,32132 32703,32133,32754,32133 32704,32134,32754,32139 32703,32140,32754,32141 32704,32142,32765,32142 32705,32143,32766,32143 32705,32144,32740,32144 32748,32144,32765,32144 32706,32145,32738,32145 32751,32145,32763,32145 32753,32146,32761,32146 32707,32146,32735,32146 32754,32147,32759,32147 32708,32147,32734,32147 32709,32148,32733,32148 32756,32148,32757,32148 32710,32149,32732,32150 32711,32151,32731,32151 32712,32152,32731,32152 32714,32153,32729,32153 32715,32154,32727,32154 32717,32155,32725,32155", + }, + [73] = { -- Outlaw Camp (11615 tiles, 319 rects) + name = "Outlaw Camp", + mainArea = 25, + bbox = { x1 = 32577, y1 = 32156, x2 = 32699, y2 = 32329 }, + rects = "32622,32156,32624,32156 32621,32157,32625,32157 32609,32158,32615,32158 32619,32158,32628,32158 32608,32159,32638,32159 32608,32160,32640,32160 32605,32161,32641,32161 32605,32162,32642,32162 32682,32164,32683,32164 32605,32163,32643,32165 32694,32165,32695,32165 32654,32165,32665,32165 32680,32165,32684,32165 32692,32166,32695,32166 32606,32166,32643,32166 32653,32166,32666,32166 32676,32166,32685,32166 32675,32167,32685,32167 32614,32167,32644,32167 32691,32167,32696,32167 32653,32167,32667,32167 32610,32167,32611,32167 32615,32168,32696,32168 32616,32169,32697,32169 32617,32170,32697,32170 32614,32171,32696,32171 32613,32172,32696,32173 32613,32174,32695,32174 32614,32175,32695,32175 32616,32176,32694,32177 32616,32178,32693,32178 32616,32179,32689,32179 32692,32179,32692,32179 32617,32180,32688,32180 32619,32181,32688,32181 32618,32182,32688,32182 32617,32183,32688,32183 32633,32184,32688,32184 32617,32184,32629,32185 32632,32185,32689,32185 32631,32186,32689,32186 32617,32186,32628,32186 32618,32187,32628,32187 32630,32187,32690,32187 32615,32189,32616,32189 32619,32188,32628,32190 32630,32188,32687,32190 32614,32190,32617,32190 32630,32191,32688,32191 32620,32191,32628,32191 32613,32191,32617,32192 32621,32192,32628,32192 32630,32192,32689,32192 32613,32193,32618,32193 32622,32193,32628,32193 32631,32193,32689,32194 32614,32194,32619,32194 32624,32194,32627,32194 32631,32195,32683,32195 32615,32195,32622,32195 32686,32195,32689,32196 32631,32196,32684,32196 32616,32196,32626,32196 32616,32197,32684,32197 32687,32197,32689,32197 32615,32198,32685,32198 32687,32198,32690,32198 32614,32199,32685,32199 32688,32199,32690,32199 32688,32200,32689,32200 32613,32200,32682,32200 32691,32201,32692,32201 32612,32201,32682,32201 32685,32201,32687,32201 32685,32202,32692,32202 32609,32202,32683,32202 32608,32203,32683,32203 32686,32203,32693,32203 32687,32204,32693,32204 32645,32204,32684,32204 32608,32204,32642,32204 32687,32205,32694,32205 32601,32205,32604,32205 32608,32205,32685,32205 32600,32206,32604,32206 32609,32206,32694,32206 32611,32207,32694,32207 32599,32207,32604,32207 32611,32208,32695,32208 32598,32208,32604,32208 32598,32209,32603,32209 32610,32209,32699,32209 32664,32210,32699,32210 32593,32210,32603,32210 32609,32210,32662,32210 32665,32211,32699,32211 32606,32211,32650,32211 32588,32211,32603,32211 32653,32211,32656,32212 32587,32212,32649,32212 32665,32212,32697,32212 32582,32213,32650,32213 32653,32213,32696,32213 32581,32214,32696,32214 32581,32215,32695,32215 32580,32216,32694,32216 32579,32217,32694,32217 32578,32218,32694,32218 32577,32219,32692,32219 32577,32220,32691,32220 32577,32221,32690,32221 32577,32222,32684,32222 32578,32223,32683,32223 32577,32224,32681,32226 32578,32227,32595,32227 32597,32227,32681,32227 32578,32228,32594,32228 32597,32228,32605,32228 32608,32228,32680,32228 32597,32229,32606,32229 32579,32229,32593,32229 32609,32229,32680,32229 32597,32230,32607,32230 32609,32230,32679,32230 32579,32230,32590,32230 32598,32231,32607,32231 32582,32231,32587,32232 32610,32231,32678,32232 32598,32232,32608,32232 32584,32233,32587,32233 32661,32233,32678,32233 32599,32233,32608,32234 32610,32233,32659,32235 32661,32234,32677,32235 32600,32235,32607,32235 32600,32236,32605,32236 32610,32236,32677,32236 32601,32237,32605,32237 32608,32237,32677,32237 32607,32238,32659,32238 32661,32238,32677,32238 32602,32238,32604,32238 32607,32239,32678,32240 32607,32241,32677,32241 32601,32242,32602,32242 32606,32242,32677,32242 32600,32243,32604,32243 32606,32243,32676,32243 32599,32244,32675,32244 32596,32245,32674,32245 32595,32246,32669,32246 32595,32247,32667,32247 32596,32248,32662,32249 32595,32250,32662,32250 32594,32251,32662,32251 32593,32252,32662,32252 32593,32253,32661,32253 32593,32254,32659,32256 32593,32257,32658,32257 32587,32257,32590,32257 32586,32258,32656,32259 32587,32260,32656,32261 32588,32262,32656,32262 32583,32263,32584,32263 32589,32263,32657,32263 32580,32263,32581,32263 32593,32264,32657,32264 32579,32264,32585,32264 32579,32265,32586,32265 32594,32265,32656,32265 32578,32266,32587,32266 32595,32266,32653,32266 32655,32267,32656,32267 32596,32267,32649,32268 32652,32268,32657,32268 32578,32267,32588,32269 32651,32269,32659,32269 32596,32269,32626,32270 32632,32269,32649,32270 32651,32270,32660,32270 32579,32270,32587,32271 32595,32271,32626,32271 32629,32271,32630,32271 32633,32271,32648,32271 32651,32271,32661,32271 32633,32272,32645,32272 32650,32272,32661,32272 32594,32272,32625,32272 32580,32272,32586,32272 32628,32272,32631,32273 32648,32273,32661,32273 32634,32273,32645,32273 32581,32273,32582,32273 32594,32273,32624,32274 32635,32274,32645,32274 32647,32274,32661,32274 32627,32274,32631,32274 32594,32275,32623,32275 32636,32275,32645,32275 32626,32275,32633,32275 32647,32275,32662,32276 32594,32276,32622,32276 32625,32276,32634,32276 32641,32276,32644,32276 32625,32277,32639,32277 32642,32277,32643,32277 32594,32277,32621,32277 32646,32277,32662,32278 32592,32278,32621,32278 32624,32278,32643,32278 32591,32279,32621,32280 32623,32279,32663,32283 32590,32281,32621,32283 32591,32284,32621,32284 32623,32284,32662,32284 32591,32285,32620,32285 32623,32285,32655,32285 32591,32286,32617,32286 32622,32286,32653,32286 32619,32286,32619,32286 32592,32287,32615,32287 32619,32287,32653,32287 32593,32288,32614,32288 32618,32288,32653,32288 32617,32289,32653,32289 32593,32289,32612,32290 32615,32290,32653,32290 32594,32291,32612,32291 32614,32291,32652,32291 32614,32292,32651,32292 32593,32292,32611,32292 32613,32293,32650,32293 32593,32293,32610,32293 32613,32294,32635,32294 32594,32294,32608,32294 32637,32294,32649,32294 32611,32295,32631,32295 32637,32295,32646,32295 32594,32295,32607,32295 32594,32296,32605,32296 32635,32296,32646,32296 32610,32296,32623,32296 32608,32297,32622,32297 32595,32297,32605,32297 32634,32297,32645,32297 32625,32297,32630,32297 32607,32298,32622,32298 32624,32298,32642,32298 32596,32298,32605,32298 32603,32299,32604,32299 32624,32299,32641,32299 32607,32299,32621,32299 32599,32300,32601,32300 32607,32300,32620,32300 32623,32300,32640,32300 32598,32301,32609,32301 32615,32301,32619,32301 32589,32301,32590,32301 32622,32301,32640,32302 32612,32302,32613,32302 32588,32302,32591,32302 32616,32302,32618,32302 32597,32302,32609,32303 32611,32303,32614,32303 32620,32303,32641,32303 32587,32303,32593,32303 32611,32304,32643,32304 32598,32304,32609,32304 32585,32304,32594,32304 32601,32305,32609,32305 32584,32305,32594,32305 32602,32306,32609,32306 32611,32305,32644,32307 32603,32307,32609,32307 32583,32306,32594,32308 32611,32308,32643,32308 32583,32309,32593,32309 32584,32310,32592,32310 32603,32308,32608,32311 32587,32311,32591,32311 32610,32309,32643,32312 32604,32312,32608,32312 32588,32312,32592,32312 32605,32313,32607,32313 32588,32313,32593,32313 32610,32313,32642,32314 32586,32314,32593,32314 32604,32314,32607,32315 32585,32315,32593,32315 32611,32315,32642,32315 32612,32316,32641,32316 32585,32316,32592,32316 32604,32316,32609,32316 32602,32317,32610,32317 32586,32317,32589,32317 32615,32317,32633,32317 32587,32318,32588,32318 32615,32318,32631,32318 32601,32318,32610,32319 32615,32319,32630,32319 32602,32320,32610,32320 32614,32320,32626,32320 32603,32321,32604,32321 32607,32321,32609,32321 32613,32321,32625,32321 32597,32322,32601,32322 32613,32322,32624,32322 32612,32323,32624,32324 32596,32323,32602,32324 32611,32325,32624,32325 32597,32325,32602,32326 32610,32326,32624,32326 32610,32327,32623,32327 32597,32327,32601,32327 32621,32328,32622,32328 32597,32328,32600,32328 32616,32328,32619,32328 32611,32328,32613,32328 32598,32329,32599,32329", + }, + [74] = { -- Dark Cathedral (2142 tiles, 69 rects) + name = "Dark Cathedral", + mainArea = 25, + bbox = { x1 = 32617, y1 = 32318, x2 = 32692, y2 = 32382 }, + rects = "32669,32318,32673,32318 32665,32319,32676,32319 32664,32320,32681,32320 32663,32321,32681,32321 32663,32322,32683,32322 32662,32323,32684,32323 32656,32324,32686,32324 32655,32325,32687,32325 32654,32326,32688,32326 32653,32327,32691,32327 32652,32328,32692,32328 32651,32329,32691,32329 32650,32330,32691,32330 32648,32331,32691,32331 32647,32332,32691,32332 32645,32333,32691,32333 32644,32334,32691,32334 32644,32335,32690,32335 32644,32336,32689,32336 32642,32337,32688,32337 32638,32338,32687,32338 32635,32339,32687,32339 32634,32340,32687,32340 32634,32341,32686,32341 32634,32342,32681,32342 32622,32342,32623,32342 32629,32343,32681,32343 32621,32343,32625,32343 32621,32344,32681,32344 32617,32345,32681,32349 32623,32350,32681,32350 32625,32351,32626,32351 32629,32351,32680,32351 32629,32352,32679,32352 32628,32353,32679,32353 32627,32354,32678,32354 32627,32355,32677,32355 32628,32356,32677,32356 32632,32357,32676,32357 32635,32358,32671,32358 32636,32359,32637,32359 32640,32359,32670,32359 32658,32360,32669,32360 32640,32360,32654,32360 32639,32361,32653,32361 32659,32361,32665,32361 32639,32362,32651,32362 32639,32363,32650,32364 32639,32365,32649,32365 32639,32366,32647,32367 32639,32368,32646,32368 32627,32369,32629,32369 32641,32369,32646,32369 32642,32370,32645,32370 32626,32370,32630,32370 32625,32371,32630,32373 32636,32373,32639,32373 32635,32374,32640,32374 32624,32374,32631,32374 32623,32375,32631,32375 32634,32375,32641,32375 32623,32376,32642,32377 32632,32378,32641,32378 32624,32378,32630,32378 32626,32379,32628,32379 32635,32379,32639,32379 32636,32380,32640,32380 32637,32381,32640,32381 32638,32382,32639,32382", + }, + [75] = { -- Plains of Havoc (37535 tiles, 484 rects) + name = "Plains of Havoc", + mainArea = 25, + bbox = { x1 = 32624, y1 = 32136, x2 = 32872, y2 = 32407 }, + rects = "32695,32136,32695,32136 32694,32137,32696,32138 32694,32139,32697,32139 32694,32140,32698,32140 32693,32141,32702,32141 32692,32142,32703,32142 32767,32143,32767,32143 32691,32143,32704,32144 32741,32144,32747,32144 32766,32144,32769,32144 32764,32145,32770,32145 32690,32145,32705,32145 32739,32145,32750,32145 32736,32146,32752,32146 32762,32146,32771,32146 32687,32146,32706,32146 32760,32147,32771,32147 32684,32147,32707,32147 32735,32147,32753,32147 32734,32148,32755,32148 32758,32148,32772,32148 32679,32148,32708,32148 32678,32149,32709,32149 32733,32149,32772,32150 32677,32150,32709,32150 32732,32151,32773,32151 32677,32151,32710,32151 32732,32152,32774,32152 32677,32152,32711,32152 32677,32153,32713,32153 32650,32153,32652,32153 32730,32153,32775,32153 32728,32154,32775,32154 32674,32154,32714,32154 32647,32154,32653,32154 32644,32154,32644,32154 32726,32155,32780,32155 32641,32155,32653,32155 32672,32155,32716,32155 32661,32156,32662,32156 32628,32156,32653,32156 32669,32156,32781,32156 32630,32157,32654,32157 32668,32157,32783,32157 32661,32157,32664,32157 32641,32158,32785,32158 32643,32159,32786,32160 32645,32161,32789,32161 32646,32162,32693,32162 32697,32162,32790,32162 32685,32163,32693,32163 32696,32163,32795,32163 32646,32163,32680,32163 32667,32164,32678,32164 32695,32164,32796,32164 32686,32164,32692,32164 32646,32164,32651,32165 32687,32165,32690,32165 32668,32165,32674,32165 32696,32165,32796,32166 32669,32166,32673,32166 32688,32166,32689,32166 32647,32166,32650,32166 32697,32167,32795,32168 32698,32169,32795,32169 32698,32170,32799,32170 32697,32171,32802,32171 32697,32172,32803,32173 32696,32174,32802,32175 32695,32176,32802,32176 32695,32177,32801,32177 32694,32178,32801,32178 32693,32179,32801,32181 32694,32182,32801,32182 32694,32183,32800,32184 32691,32185,32800,32187 32690,32188,32802,32188 32690,32189,32803,32189 32690,32190,32804,32190 32691,32191,32811,32191 32691,32192,32813,32192 32691,32193,32814,32193 32691,32194,32815,32194 32691,32195,32816,32196 32692,32197,32816,32198 32692,32199,32817,32199 32694,32200,32818,32200 32694,32201,32819,32201 32695,32202,32819,32202 32695,32203,32820,32203 32696,32204,32823,32204 32696,32205,32824,32206 32697,32207,32825,32207 32701,32208,32825,32210 32701,32211,32826,32212 32699,32213,32825,32213 32698,32214,32823,32215 32697,32216,32823,32218 32696,32219,32823,32219 32694,32220,32823,32220 32693,32221,32823,32221 32692,32222,32823,32222 32687,32223,32824,32223 32686,32224,32824,32224 32684,32225,32824,32225 32683,32226,32826,32226 32683,32227,32827,32228 32682,32229,32828,32230 32682,32231,32829,32231 32681,32232,32830,32232 32680,32233,32831,32234 32679,32235,32831,32235 32679,32236,32833,32236 32679,32237,32832,32240 32679,32241,32833,32241 32679,32242,32834,32243 32678,32244,32835,32244 32677,32245,32836,32245 32676,32246,32836,32246 32844,32247,32844,32247 32671,32247,32837,32247 32669,32248,32844,32248 32668,32249,32843,32249 32665,32250,32844,32250 32664,32251,32845,32253 32663,32254,32844,32254 32662,32255,32842,32255 32661,32256,32841,32256 32661,32257,32843,32257 32852,32257,32854,32257 32850,32258,32854,32258 32660,32258,32845,32258 32659,32259,32855,32259 32658,32260,32855,32260 32658,32261,32856,32261 32659,32262,32858,32264 32659,32265,32856,32265 32659,32266,32855,32266 32657,32267,32855,32267 32678,32268,32856,32268 32658,32268,32676,32268 32678,32269,32857,32269 32660,32269,32675,32269 32661,32270,32675,32270 32677,32270,32857,32272 32662,32271,32675,32272 32677,32273,32856,32273 32662,32273,32674,32273 32662,32274,32673,32274 32676,32274,32853,32274 32675,32275,32852,32275 32663,32275,32672,32275 32663,32276,32670,32276 32674,32276,32852,32276 32663,32277,32669,32277 32673,32277,32851,32277 32672,32278,32851,32278 32663,32278,32668,32278 32664,32279,32667,32279 32670,32279,32851,32279 32664,32280,32666,32280 32669,32280,32851,32280 32664,32281,32665,32281 32668,32281,32852,32282 32664,32282,32664,32282 32666,32283,32854,32283 32665,32284,32701,32284 32705,32284,32855,32285 32665,32285,32700,32285 32657,32286,32660,32286 32702,32286,32856,32286 32664,32286,32699,32286 32870,32287,32871,32287 32656,32287,32697,32287 32701,32287,32859,32287 32655,32288,32697,32288 32700,32288,32860,32288 32868,32288,32872,32288 32867,32289,32872,32289 32699,32289,32860,32289 32655,32289,32696,32289 32699,32290,32863,32290 32867,32290,32871,32290 32868,32291,32871,32291 32698,32291,32864,32291 32655,32290,32695,32292 32869,32292,32870,32292 32697,32292,32866,32292 32653,32293,32694,32293 32697,32293,32867,32293 32652,32294,32693,32294 32696,32294,32868,32294 32695,32295,32868,32295 32651,32295,32692,32295 32860,32296,32868,32296 32695,32296,32857,32296 32649,32296,32690,32296 32648,32297,32689,32297 32692,32297,32857,32297 32680,32298,32689,32298 32647,32298,32675,32298 32691,32298,32857,32299 32683,32299,32689,32299 32644,32299,32675,32299 32861,32297,32867,32300 32678,32300,32680,32300 32684,32300,32688,32300 32643,32300,32675,32301 32691,32300,32858,32301 32862,32301,32868,32301 32677,32301,32681,32301 32863,32302,32868,32302 32644,32302,32675,32302 32690,32302,32857,32302 32677,32302,32683,32302 32677,32303,32685,32303 32690,32303,32856,32303 32865,32303,32867,32303 32678,32304,32854,32304 32646,32303,32675,32305 32678,32305,32855,32305 32761,32306,32855,32306 32646,32306,32674,32306 32678,32306,32759,32307 32646,32307,32672,32307 32762,32307,32856,32307 32646,32308,32671,32308 32674,32308,32760,32308 32763,32308,32857,32308 32673,32309,32761,32309 32771,32309,32858,32309 32768,32310,32769,32310 32772,32310,32858,32310 32672,32310,32762,32310 32767,32311,32770,32311 32671,32311,32763,32311 32780,32311,32857,32311 32645,32309,32669,32312 32853,32312,32855,32312 32671,32312,32778,32312 32645,32313,32668,32313 32671,32313,32781,32313 32784,32312,32849,32314 32671,32314,32782,32314 32644,32314,32666,32314 32668,32315,32782,32315 32785,32315,32848,32315 32644,32315,32665,32316 32788,32316,32846,32316 32667,32316,32782,32316 32667,32317,32785,32317 32644,32317,32664,32317 32788,32317,32845,32317 32674,32318,32786,32318 32788,32318,32838,32318 32843,32318,32844,32318 32635,32318,32662,32318 32667,32318,32668,32318 32677,32319,32786,32319 32634,32319,32662,32319 32819,32319,32838,32319 32820,32320,32837,32320 32788,32319,32817,32321 32682,32320,32786,32321 32633,32320,32661,32321 32628,32322,32653,32322 32684,32322,32786,32322 32658,32322,32660,32322 32788,32322,32821,32322 32627,32323,32653,32323 32685,32323,32786,32323 32789,32323,32822,32323 32824,32321,32836,32324 32626,32324,32653,32324 32687,32324,32786,32324 32688,32325,32788,32325 32626,32325,32652,32325 32824,32325,32835,32325 32689,32326,32789,32326 32824,32326,32834,32326 32791,32324,32822,32327 32627,32326,32650,32327 32692,32327,32789,32327 32856,32327,32860,32327 32825,32327,32834,32327 32693,32328,32789,32328 32792,32328,32823,32328 32826,32328,32833,32328 32627,32328,32649,32328 32851,32328,32860,32329 32793,32329,32823,32329 32693,32329,32790,32329 32626,32329,32648,32329 32828,32329,32837,32329 32828,32330,32840,32330 32625,32330,32645,32330 32849,32330,32861,32330 32693,32330,32791,32330 32794,32330,32825,32330 32693,32331,32792,32331 32849,32331,32862,32331 32625,32331,32644,32331 32795,32331,32826,32331 32829,32331,32841,32331 32836,32332,32841,32332 32848,32332,32862,32332 32830,32332,32832,32332 32626,32332,32642,32332 32795,32332,32827,32333 32625,32333,32642,32333 32837,32333,32840,32333 32848,32333,32863,32334 32624,32334,32642,32334 32795,32334,32831,32334 32693,32332,32793,32335 32795,32335,32832,32335 32624,32335,32641,32335 32624,32336,32640,32336 32692,32336,32793,32336 32796,32336,32806,32336 32812,32336,32832,32337 32624,32337,32636,32337 32691,32337,32793,32337 32847,32335,32863,32338 32691,32338,32803,32338 32811,32338,32832,32338 32624,32338,32632,32339 32690,32339,32804,32339 32811,32339,32833,32339 32814,32340,32834,32340 32625,32340,32632,32340 32689,32340,32759,32340 32846,32339,32862,32341 32626,32341,32631,32341 32689,32341,32760,32341 32814,32341,32835,32341 32762,32340,32804,32342 32814,32342,32836,32342 32688,32342,32760,32342 32684,32343,32760,32343 32846,32342,32863,32344 32815,32343,32836,32344 32762,32343,32805,32344 32851,32345,32863,32345 32814,32345,32836,32346 32762,32345,32804,32346 32856,32346,32862,32347 32814,32347,32835,32347 32763,32347,32804,32347 32683,32344,32760,32348 32765,32348,32803,32348 32813,32348,32834,32349 32767,32349,32802,32349 32683,32349,32763,32349 32683,32350,32764,32350 32814,32350,32833,32350 32767,32350,32800,32351 32817,32351,32833,32351 32683,32351,32765,32352 32826,32352,32834,32352 32820,32352,32824,32352 32768,32352,32799,32352 32682,32353,32765,32353 32821,32353,32822,32353 32769,32353,32797,32353 32826,32353,32835,32354 32681,32354,32767,32354 32770,32354,32797,32354 32794,32355,32796,32355 32681,32355,32768,32355 32826,32355,32834,32355 32680,32356,32770,32356 32773,32355,32792,32357 32826,32356,32833,32357 32679,32357,32771,32358 32826,32358,32832,32358 32774,32358,32792,32358 32673,32359,32772,32359 32774,32359,32791,32359 32826,32359,32831,32359 32774,32360,32789,32361 32826,32360,32830,32361 32672,32360,32772,32361 32774,32362,32788,32362 32824,32362,32832,32362 32667,32362,32772,32362 32653,32363,32657,32363 32661,32363,32772,32363 32823,32363,32832,32364 32775,32363,32788,32364 32652,32364,32773,32365 32830,32365,32832,32365 32824,32365,32825,32365 32776,32365,32788,32365 32776,32366,32789,32366 32652,32366,32774,32366 32650,32367,32774,32367 32776,32367,32790,32368 32649,32368,32774,32368 32648,32369,32774,32370 32776,32369,32791,32371 32766,32371,32774,32371 32647,32371,32761,32371 32763,32371,32764,32371 32768,32372,32774,32372 32777,32372,32790,32372 32646,32372,32761,32373 32780,32373,32789,32373 32770,32373,32775,32373 32781,32374,32789,32374 32770,32374,32777,32374 32665,32374,32761,32374 32647,32374,32661,32374 32771,32375,32778,32375 32668,32375,32761,32375 32782,32375,32789,32375 32650,32375,32662,32376 32668,32376,32760,32376 32785,32376,32789,32376 32772,32376,32780,32376 32667,32377,32757,32377 32648,32377,32662,32377 32786,32377,32788,32377 32773,32377,32782,32377 32773,32378,32783,32378 32667,32378,32758,32378 32647,32378,32661,32378 32647,32379,32651,32379 32773,32379,32784,32379 32654,32379,32661,32379 32667,32379,32759,32379 32773,32380,32785,32380 32648,32380,32650,32380 32667,32380,32760,32380 32653,32380,32661,32381 32668,32381,32760,32381 32772,32381,32785,32381 32654,32382,32660,32382 32669,32382,32760,32382 32771,32382,32785,32382 32770,32383,32785,32383 32780,32384,32785,32384 32770,32384,32778,32385 32782,32385,32784,32385 32670,32383,32759,32386 32768,32386,32777,32386 32683,32387,32759,32387 32670,32387,32678,32388 32767,32387,32776,32388 32686,32388,32759,32388 32690,32389,32759,32389 32671,32389,32677,32389 32768,32389,32776,32389 32769,32390,32775,32390 32692,32390,32759,32390 32673,32390,32674,32390 32765,32390,32766,32390 32693,32391,32758,32391 32770,32391,32773,32391 32761,32391,32766,32392 32771,32392,32772,32392 32694,32392,32757,32392 32752,32393,32753,32393 32694,32393,32741,32393 32762,32393,32765,32393 32744,32393,32747,32393 32745,32394,32746,32394 32694,32394,32740,32394 32763,32394,32764,32394 32693,32395,32741,32395 32723,32396,32729,32396 32736,32396,32741,32396 32692,32396,32717,32397 32737,32397,32740,32397 32693,32398,32716,32398 32694,32399,32715,32401 32694,32402,32714,32402 32694,32403,32712,32403 32705,32404,32707,32404 32702,32404,32703,32404 32695,32404,32700,32404 32696,32405,32700,32405 32697,32406,32700,32406 32698,32407,32699,32407", + }, + [76] = { -- Shadowthorn (3576 tiles, 147 rects) + name = "Shadowthorn", + mainArea = 25, + bbox = { x1 = 33045, y1 = 32132, x2 = 33151, y2 = 32211 }, + rects = "33129,32132,33131,32132 33074,32133,33076,32133 33129,32133,33132,32133 33079,32133,33080,32133 33130,32134,33136,32134 33073,32134,33082,32134 33090,32135,33091,32135 33130,32135,33139,32135 33088,32135,33088,32135 33093,32135,33097,32135 33073,32135,33086,32135 33101,32135,33108,32135 33073,32136,33106,32136 33132,32136,33140,32136 33132,32137,33141,32137 33121,32137,33122,32137 33121,32138,33126,32138 33133,32138,33142,32138 33072,32137,33107,32139 33121,32139,33129,32139 33134,32139,33143,32139 33136,32140,33145,32140 33117,32140,33118,32140 33072,32140,33106,32140 33125,32140,33131,32140 33116,32141,33119,32141 33126,32141,33135,32141 33072,32141,33107,32141 33137,32141,33146,32141 33072,32142,33109,32142 33127,32142,33147,32142 33116,32142,33120,32142 33115,32143,33121,32143 33126,32143,33147,32143 33072,32143,33110,32144 33112,32144,33122,32144 33124,32144,33148,32144 33072,32145,33149,32146 33072,32147,33150,32148 33072,32149,33151,32149 33073,32150,33151,32151 33072,32152,33151,32152 33072,32153,33122,32153 33058,32153,33068,32153 33124,32153,33151,32153 33056,32154,33069,32154 33126,32154,33151,32154 33073,32154,33120,32154 33118,32155,33119,32155 33126,32155,33150,32155 33073,32155,33116,32155 33055,32155,33070,32155 33055,32156,33071,32156 33073,32156,33113,32156 33127,32156,33150,32156 33128,32157,33149,32157 33056,32157,33071,32158 33073,32157,33111,32158 33131,32158,33149,32158 33135,32159,33148,32159 33132,32159,33133,32159 33073,32159,33110,32159 33138,32160,33147,32160 33073,32160,33109,32160 33055,32159,33070,32161 33074,32161,33109,32161 33138,32161,33145,32161 33139,32162,33144,32162 33055,32162,33072,32162 33081,32162,33108,32162 33140,32163,33142,32163 33083,32163,33109,32163 33055,32163,33079,32163 33056,32164,33080,32164 33084,32164,33109,32164 33058,32165,33081,32165 33085,32165,33108,32165 33058,32166,33082,32166 33086,32166,33107,32166 33058,32167,33083,32167 33088,32167,33107,32168 33058,32168,33085,32168 33089,32169,33107,32169 33058,32169,33086,32170 33090,32170,33107,32170 33053,32171,33053,32171 33059,32171,33086,32171 33090,32171,33108,32171 33059,32172,33085,32172 33053,32172,33054,32172 33091,32172,33108,32172 33092,32173,33107,32173 33059,32173,33084,32173 33054,32173,33054,32173 33054,32174,33056,32174 33093,32174,33107,32174 33068,32174,33085,32174 33059,32174,33063,32175 33054,32175,33057,32175 33069,32175,33085,32175 33097,32175,33107,32175 33060,32176,33062,32176 33099,32176,33107,32176 33053,32176,33057,32176 33070,32176,33086,32177 33065,32177,33067,32177 33054,32177,33057,32177 33100,32177,33101,32177 33054,32178,33068,32178 33071,32178,33086,32178 33053,32179,33069,32179 33073,32179,33086,32179 33051,32180,33071,32180 33074,32180,33086,32180 33051,32181,33072,32181 33075,32181,33085,32181 33052,32182,33072,32182 33082,32182,33084,32182 33048,32183,33080,32183 33047,32184,33085,32184 33047,32185,33086,32185 33046,32186,33088,32186 33046,32187,33089,32187 33046,32188,33090,32190 33045,32191,33090,32192 33074,32193,33090,32193 33046,32193,33072,32193 33084,32194,33090,32194 33067,32194,33071,32194 33075,32194,33079,32194 33046,32194,33065,32195 33068,32195,33070,32195 33085,32195,33089,32195 33045,32196,33064,32196 33046,32197,33064,32197 33046,32198,33065,32198 33046,32199,33066,32199 33047,32200,33067,32201 33048,32202,33067,32202 33047,32203,33067,32203 33046,32204,33067,32204 33046,32205,33066,32205 33048,32206,33064,32206 33049,32207,33060,32207 33049,32208,33057,32209 33049,32210,33052,32210 33050,32211,33051,32211", + }, + [77] = { -- Venore Southern Swamp (26212 tiles, 370 rects) + name = "Venore Southern Swamp", + mainArea = 25, + bbox = { x1 = 32770, y1 = 32077, x2 = 33058, y2 = 32273 }, + rects = "32791,32077,32793,32077 32790,32078,32793,32078 32789,32079,32793,32079 32788,32080,32793,32080 32787,32081,32798,32081 32783,32082,32799,32082 32783,32083,32800,32084 32783,32085,32801,32086 32782,32087,32802,32087 32782,32088,32804,32088 32781,32089,32805,32089 32781,32090,32806,32090 32781,32091,32807,32091 32781,32092,32809,32092 32781,32093,32811,32094 32781,32095,32812,32095 32780,32096,32813,32096 32779,32097,32814,32097 32779,32098,32816,32098 32779,32099,32817,32099 32778,32100,32817,32100 32778,32101,32818,32101 32777,32102,32818,32102 32776,32103,32818,32103 32775,32104,32818,32104 32774,32105,32818,32106 32773,32107,32818,32107 32773,32108,32819,32108 32773,32109,32837,32109 32773,32110,32838,32110 32773,32111,32839,32111 32773,32112,32840,32112 32774,32113,32841,32113 32844,32113,32856,32113 32774,32114,32856,32114 32775,32115,32857,32115 32777,32116,32857,32116 32778,32117,32857,32117 32779,32118,32858,32118 32781,32119,32858,32119 32997,32119,32997,32119 32995,32120,32997,32120 32782,32120,32859,32121 32994,32121,32997,32121 32993,32122,32997,32122 32783,32122,32859,32122 32783,32123,32857,32123 32991,32123,32998,32123 32987,32124,32998,32124 32983,32125,32999,32125 32783,32124,32856,32126 32981,32126,32999,32126 32979,32127,33000,32127 32782,32127,32856,32128 32978,32128,33000,32128 32781,32129,32856,32129 32977,32129,33000,32129 32779,32130,32856,32130 32976,32130,33000,32130 32770,32130,32770,32130 32775,32131,32857,32131 32770,32131,32773,32131 32975,32131,33000,32132 32770,32132,32858,32132 32973,32133,33001,32133 32771,32133,32859,32134 32968,32134,33001,32134 32771,32135,32860,32135 32962,32135,33001,32135 32771,32136,32862,32136 32954,32136,33002,32136 32953,32137,33003,32137 32771,32137,32864,32137 32771,32138,32788,32138 32804,32138,32867,32138 32951,32138,33003,32138 32792,32138,32794,32138 32877,32138,32878,32138 32805,32139,32878,32139 32950,32139,33004,32139 32771,32139,32786,32139 32950,32140,33005,32140 32772,32140,32785,32140 32806,32140,32879,32140 32806,32141,32823,32141 32826,32141,32879,32141 32949,32141,33007,32141 32773,32141,32776,32141 32782,32141,32785,32141 32827,32142,32880,32142 32805,32142,32821,32142 32949,32142,33022,32142 32783,32142,32785,32142 32773,32142,32775,32142 32828,32143,32880,32143 32948,32143,33025,32143 32784,32143,32786,32143 32805,32143,32814,32143 32798,32143,32800,32143 32773,32143,32774,32144 32784,32144,32787,32144 32807,32144,32814,32144 32948,32144,33026,32144 32794,32144,32801,32144 32829,32144,32881,32145 32774,32145,32774,32145 32785,32145,32787,32145 32948,32145,33027,32145 32793,32145,32801,32145 32808,32145,32813,32145 32792,32146,32801,32146 32828,32146,32882,32146 32785,32146,32788,32146 32948,32146,33028,32147 32809,32146,32813,32147 32827,32147,32883,32147 32785,32147,32802,32147 32774,32146,32775,32148 32784,32148,32802,32148 32808,32148,32814,32148 32826,32148,32884,32148 32948,32148,33029,32149 32783,32149,32802,32149 32822,32149,32885,32149 32775,32149,32776,32149 32808,32149,32819,32149 32807,32150,32886,32150 32776,32150,32778,32150 32782,32150,32802,32150 32948,32150,33030,32151 32776,32151,32887,32151 32777,32152,32888,32152 32948,32152,33031,32152 32778,32153,32888,32153 32948,32153,32989,32154 32783,32154,32890,32154 32897,32154,32902,32154 32996,32153,33031,32155 32895,32155,32912,32155 32784,32155,32891,32155 32997,32156,33031,32156 32785,32156,32818,32156 32822,32156,32916,32156 32948,32155,32988,32157 32998,32157,33032,32157 32824,32157,32919,32157 32787,32157,32817,32157 32830,32158,32923,32158 32788,32158,32817,32158 32947,32158,32988,32159 32999,32158,33033,32159 32789,32159,32817,32159 32829,32159,32925,32159 32791,32160,32817,32160 32999,32160,33034,32160 32829,32160,32927,32160 32946,32160,32989,32161 32792,32161,32817,32161 32999,32161,33035,32161 32830,32161,32928,32161 32945,32162,32989,32162 32831,32162,32928,32162 32999,32162,33036,32162 32799,32162,32816,32162 32799,32163,32814,32163 32831,32163,32929,32163 32999,32163,33037,32163 32944,32163,32990,32163 32799,32164,32813,32164 32830,32164,32931,32164 32943,32164,32990,32164 32999,32164,33038,32164 32799,32165,32812,32165 32998,32165,33042,32165 32940,32165,32990,32165 32830,32165,32934,32165 32829,32166,33043,32166 32815,32166,32817,32166 32798,32166,32812,32167 32829,32167,33046,32167 32815,32167,32818,32167 32830,32168,33047,32168 32799,32168,32819,32168 32830,32169,33048,32169 32801,32169,32819,32169 32823,32170,32825,32170 32830,32170,33049,32170 32807,32170,32821,32170 32807,32171,33052,32172 32807,32173,33053,32173 32805,32174,33053,32174 32804,32175,33053,32175 32804,32176,33052,32176 32804,32177,33053,32177 32803,32178,33053,32178 32803,32179,33052,32179 32803,32180,33050,32181 32803,32182,33051,32182 32803,32183,33047,32183 32802,32184,33046,32185 32803,32186,33045,32186 32804,32187,33045,32187 32805,32188,33045,32188 32806,32189,33045,32189 32813,32190,33045,32190 32815,32191,33044,32191 32816,32192,33044,32192 32817,32193,33045,32193 32818,32194,33045,32195 32818,32196,33044,32196 32818,32197,33045,32197 32819,32198,33045,32198 32820,32199,33045,32199 32821,32200,33046,32201 32822,32202,33047,32202 32825,32203,33046,32203 32826,32204,33045,32205 32827,32206,33047,32206 32827,32207,33048,32208 33015,32209,33048,32209 32827,32209,33012,32209 32828,32210,33012,32210 33053,32210,33056,32210 33016,32210,33048,32210 33016,32211,33049,32211 33052,32211,33055,32211 33017,32212,33055,32212 32829,32211,33012,32213 33018,32213,33057,32213 32828,32214,33012,32214 33019,32214,33058,32214 33020,32215,33058,32215 32826,32215,33012,32215 33032,32216,33057,32216 32825,32216,33011,32216 33021,32216,33026,32216 33039,32217,33055,32217 32825,32217,33010,32217 33024,32217,33025,32217 33041,32218,33044,32218 32999,32218,33009,32218 32999,32219,33010,32219 33000,32220,33011,32220 32825,32218,32997,32221 33003,32221,33011,32221 32826,32222,32997,32222 33007,32222,33011,32223 32826,32223,33000,32223 33008,32224,33011,32224 32827,32224,33001,32224 32828,32225,33001,32225 33009,32225,33010,32225 32829,32226,33001,32226 32869,32227,32872,32227 32875,32227,33001,32227 32829,32227,32867,32227 32876,32228,33001,32228 32830,32228,32866,32229 32877,32229,33001,32229 32831,32230,32866,32230 32878,32230,33001,32230 32833,32231,32866,32231 32998,32231,33001,32231 32878,32231,32995,32232 32999,32232,33000,32232 32833,32232,32863,32232 32878,32233,32994,32233 32833,32233,32862,32233 32834,32234,32861,32234 32880,32234,32993,32234 32837,32235,32860,32235 32882,32235,32885,32235 32888,32235,32992,32235 32888,32236,32991,32236 32834,32236,32857,32236 32860,32236,32860,32236 32833,32237,32856,32237 32889,32237,32990,32237 32833,32238,32855,32238 32889,32238,32991,32238 32833,32239,32845,32239 32889,32239,32992,32239 32849,32239,32855,32240 32833,32240,32844,32240 32890,32240,32993,32240 32890,32241,32968,32241 32971,32241,32996,32241 32834,32241,32843,32241 32849,32241,32854,32241 32890,32242,32967,32242 32835,32242,32842,32242 32972,32242,32997,32242 32850,32242,32853,32242 32851,32243,32852,32243 32835,32243,32841,32243 32890,32243,32890,32243 32892,32243,32997,32244 32836,32244,32842,32244 32837,32245,32842,32245 32893,32245,32966,32245 32971,32245,32997,32246 32895,32246,32896,32246 32837,32246,32843,32246 32900,32246,32966,32246 32900,32247,32965,32247 32970,32247,32996,32247 32838,32247,32843,32247 32900,32248,32935,32248 32970,32248,32994,32248 32939,32248,32962,32248 32901,32249,32935,32249 32940,32249,32961,32249 32971,32249,32993,32249 32942,32250,32942,32250 32971,32250,32992,32250 32946,32250,32960,32250 32902,32250,32934,32250 32904,32251,32905,32251 32971,32251,32987,32251 32946,32251,32959,32251 32909,32251,32933,32251 32946,32252,32958,32252 32908,32252,32932,32252 32972,32252,32987,32253 32908,32253,32931,32253 32946,32253,32957,32253 32972,32254,32983,32254 32985,32254,32986,32254 32908,32254,32932,32254 32946,32254,32955,32254 32907,32255,32933,32255 32954,32255,32955,32255 32945,32255,32951,32255 32973,32255,32980,32255 32906,32256,32933,32256 32944,32256,32950,32256 32906,32257,32934,32257 32943,32257,32951,32257 32936,32258,32939,32258 32907,32258,32934,32258 32942,32258,32949,32258 32907,32259,32949,32259 32939,32260,32950,32260 32933,32260,32936,32260 32907,32260,32931,32260 32938,32261,32949,32261 32935,32262,32944,32262 32908,32261,32931,32263 32947,32262,32949,32263 32934,32263,32944,32263 32952,32263,32954,32263 32909,32264,32942,32264 32946,32264,32955,32265 32909,32265,32917,32265 32923,32265,32941,32265 32915,32266,32916,32266 32947,32266,32954,32266 32937,32266,32941,32266 32910,32266,32911,32266 32928,32266,32933,32267 32938,32267,32942,32267 32947,32267,32953,32268 32939,32268,32945,32268 32929,32268,32932,32268 32940,32269,32953,32269 32941,32270,32945,32270 32948,32270,32953,32271 32942,32271,32944,32271 32949,32272,32952,32272 32950,32273,32951,32273", + }, + [78] = { -- Venore Surroundings (11619 tiles, 239 rects) + name = "Venore Surroundings", + mainArea = 25, + bbox = { x1 = 32998, y1 = 32000, x2 = 33121, y2 = 32169 }, + rects = "33040,32000,33040,32000 33012,32001,33014,32001 33011,32002,33015,32002 33039,32001,33040,32003 33028,32003,33028,32003 33020,32003,33023,32003 33008,32003,33015,32003 33007,32004,33015,32005 33028,32004,33029,32005 33036,32004,33041,32006 33018,32004,33024,32006 33028,32006,33031,32006 33006,32006,33016,32007 33029,32007,33032,32007 33019,32007,33024,32007 33036,32007,33042,32007 33035,32008,33041,32008 33005,32008,33014,32008 33029,32008,33033,32008 33018,32008,33025,32009 33004,32009,33015,32009 33029,32009,33041,32010 33017,32010,33025,32010 33004,32010,33014,32010 33017,32011,33024,32011 33029,32011,33042,32012 33002,32011,33014,32012 33027,32012,33027,32012 33019,32012,33024,32012 33002,32013,33041,32013 33044,32013,33045,32013 33000,32014,33044,32014 33000,32015,33046,32015 33059,32016,33061,32016 33058,32017,33062,32017 33000,32016,33047,32018 33058,32018,33063,32018 33051,32019,33052,32019 33000,32019,33046,32020 33057,32019,33064,32020 33050,32020,33053,32020 33057,32021,33065,32021 33050,32021,33054,32021 33000,32021,33047,32022 33049,32022,33054,32022 33056,32022,33066,32022 33000,32023,33046,32023 33049,32023,33067,32024 32999,32024,33045,32024 33000,32025,33068,32025 33003,32026,33069,32026 33005,32027,33069,32027 33006,32028,33068,32028 33008,32029,33067,32029 33009,32030,33066,32031 33010,32032,33066,32032 33010,32033,33065,32033 33011,32034,33064,32034 33012,32035,33063,32035 33014,32036,33065,32036 33074,32037,33076,32037 33019,32037,33066,32037 33021,32038,33066,32038 33071,32038,33077,32038 33024,32039,33066,32039 33070,32039,33078,32040 33026,32040,33064,32040 33028,32041,33063,32041 33070,32041,33084,32041 33068,32042,33085,32042 33028,32042,33061,32043 33067,32043,33085,32044 33029,32044,33061,32044 33063,32044,33065,32044 33068,32045,33085,32045 33062,32045,33065,32045 33029,32045,33060,32046 33062,32046,33064,32046 33068,32046,33084,32046 33059,32047,33060,32047 33067,32047,33084,32047 33056,32047,33057,32047 33029,32047,33054,32048 33067,32048,33085,32048 33063,32049,33089,32049 33029,32049,33053,32049 33056,32049,33059,32050 33063,32050,33090,32050 33028,32050,33053,32050 33028,32051,33052,32051 33062,32051,33090,32051 33056,32051,33058,32051 33028,32052,33057,32052 33062,32052,33089,32052 33028,32053,33056,32053 33064,32053,33088,32053 33091,32054,33091,32054 33028,32054,33055,32054 33057,32054,33087,32055 33028,32055,33054,32055 33090,32055,33091,32056 33055,32056,33056,32056 33028,32056,33053,32056 33058,32056,33086,32057 33089,32057,33092,32057 33028,32057,33056,32058 33059,32058,33087,32058 33089,32058,33093,32058 33028,32059,33057,32059 33060,32059,33094,32059 33028,32060,33094,32060 33028,32061,33097,32061 33027,32062,33099,32062 33027,32063,33100,32063 33026,32064,33100,32064 33025,32065,33100,32065 33025,32066,33101,32066 33023,32067,33101,32067 33022,32068,33100,32068 33020,32069,33099,32070 33020,32071,33098,32071 33020,32072,33096,32073 33020,32074,33095,32074 33101,32075,33103,32075 33019,32075,33095,32075 33019,32076,33104,32076 33018,32077,33104,32077 33017,32078,33104,32078 33016,32079,33104,32079 33015,32080,33103,32080 33014,32081,33107,32081 33013,32082,33107,32082 33013,32083,33108,32083 33012,32084,33108,32085 33012,32086,33107,32086 33011,32087,33106,32088 33010,32089,33106,32090 33009,32091,33107,32092 33009,32093,33106,32093 33009,32094,33103,32095 33106,32095,33108,32095 33107,32096,33109,32096 33009,32096,33105,32097 33108,32097,33109,32097 33009,32098,33103,32098 33107,32098,33109,32098 33107,32099,33113,32099 33102,32099,33102,32099 33009,32099,33099,32099 33009,32100,33100,32100 33105,32100,33114,32100 33009,32101,33117,32101 33009,32102,33115,32102 33117,32102,33117,32102 33009,32103,33114,32103 33009,32104,33113,32104 33116,32104,33117,32104 33009,32105,33112,32105 33115,32105,33118,32105 33008,32106,33112,32106 33114,32106,33117,32106 33008,32107,33116,32108 33007,32109,33116,32109 33007,32110,33120,32110 33007,32111,33121,32112 33006,32113,33121,32113 33005,32114,33121,32114 33004,32115,33121,32115 33003,32116,33121,32116 33001,32117,33121,32117 33000,32118,33121,32118 32998,32119,33121,32119 32998,32120,33120,32122 32999,32123,33120,32124 33000,32125,33119,32125 33000,32126,33118,32126 33001,32127,33118,32130 33001,32131,33033,32131 33037,32131,33118,32131 33114,32132,33117,32132 33041,32132,33112,32132 33001,32132,33032,32132 33081,32133,33111,32133 33041,32133,33073,32133 33077,32133,33078,32133 33002,32133,33038,32133 33115,32133,33116,32133 33083,32134,33111,32134 33002,32134,33039,32135 33092,32135,33092,32135 33089,32135,33089,32135 33109,32135,33110,32135 33087,32135,33087,32135 33098,32135,33100,32135 33041,32134,33072,32136 33003,32136,33039,32136 33042,32137,33071,32137 33004,32137,33039,32137 33004,32138,33071,32138 33005,32139,33071,32139 33006,32140,33071,32140 33008,32141,33040,32141 33042,32141,33071,32142 33023,32142,33039,32142 33026,32143,33039,32143 33043,32143,33071,32143 33027,32144,33040,32144 33044,32144,33071,32144 33028,32145,33042,32145 33029,32146,33043,32147 33045,32145,33071,32148 33030,32148,33043,32149 33046,32149,33071,32149 33047,32150,33072,32151 33031,32150,33044,32151 33032,32152,33044,32152 33071,32152,33071,32152 33049,32152,33056,32152 33049,32153,33053,32153 33032,32153,33046,32153 33032,32154,33047,32154 33050,32154,33052,32154 33032,32155,33048,32155 33032,32156,33054,32156 33033,32157,33055,32157 33050,32158,33055,32158 33034,32158,33046,32158 33051,32159,33054,32159 33034,32159,33048,32159 33035,32160,33049,32160 33036,32161,33052,32161 33037,32162,33053,32162 33038,32163,33053,32163 33045,32164,33053,32164 33046,32165,33054,32165 33049,32166,33055,32166 33050,32167,33056,32167 33051,32168,33056,32168 33052,32169,33055,32169", + }, + [81] = { -- Ankrahmun Pharaoh Tombs (752 tiles, 20 rects) + name = "Ankrahmun Pharaoh Tombs", + mainArea = 2, + bbox = { x1 = 33018, y1 = 32701, x2 = 33052, y2 = 32739 }, + rects = "33046,32701,33052,32705 33036,32701,33042,32705 33024,32704,33032,32709 33036,32706,33052,32709 33024,32710,33052,32715 33036,32716,33052,32719 33025,32721,33028,32721 33023,32722,33029,32722 33022,32723,33031,32723 33021,32724,33032,32724 33020,32725,33033,32725 33037,32720,33041,32727 33019,32726,33034,32727 33018,32728,33041,32732 33019,32733,33034,32734 33020,32735,33033,32735 33021,32736,33032,32736 33022,32737,33031,32737 33024,32738,33030,32738 33025,32739,33028,32739", + }, + [82] = { -- Ashta'daramai (293 tiles, 18 rects) + name = "Ashta'daramai", + mainArea = 4, + bbox = { x1 = 33064, y1 = 32519, x2 = 33110, y2 = 32536 }, + rects = "33099,32519,33105,32519 33098,32520,33106,32520 33097,32521,33107,32521 33096,32522,33108,32522 33095,32523,33109,32523 33094,32524,33110,32524 33066,32527,33069,32527 33065,32528,33070,32528 33093,32525,33110,32530 33064,32529,33070,32531 33093,32531,33109,32531 33094,32532,33108,32532 33064,32532,33069,32532 33095,32533,33107,32533 33065,32533,33068,32533 33096,32534,33106,32534 33097,32535,33105,32535 33098,32536,33104,32536", + }, + [83] = { -- Mal'ouquah (289 tiles, 1 rects) + name = "Mal'ouquah", + mainArea = 2, + bbox = { x1 = 33034, y1 = 32618, x2 = 33050, y2 = 32634 }, + rects = "33034,32618,33050,32634", + }, + [84] = { -- Kha'zeel Dragon Lairs (3909 tiles, 251 rects) + name = "Kha'zeel Dragon Lairs", + mainArea = 2, + bbox = { x1 = 32986, y1 = 32534, x2 = 33168, y2 = 32816 }, + rects = "33157,32535,33164,32535 33155,32536,33166,32536 33147,32537,33149,32537 33154,32537,33167,32537 33124,32534,33127,32538 33144,32538,33167,32538 33131,32539,33133,32539 33142,32539,33167,32539 33124,32539,33128,32539 33124,32540,33133,32540 33140,32540,33168,32540 33139,32541,33168,32541 33125,32541,33137,32541 33125,32542,33168,32542 33125,32543,33144,32543 33147,32543,33168,32543 33149,32544,33168,32544 33124,32544,33143,32544 33150,32545,33168,32545 33150,32546,33167,32546 33124,32545,33142,32547 33151,32547,33166,32547 33152,32548,33165,32548 33155,32549,33162,32549 33125,32548,33143,32550 33126,32551,33142,32551 33128,32552,33141,32552 33129,32553,33140,32553 33132,32554,33138,32554 33133,32555,33136,32555 33071,32565,33073,32565 33066,32566,33075,32566 33065,32567,33076,32567 33065,32568,33077,32568 33064,32569,33078,32569 33064,32570,33079,32570 33062,32571,33079,32574 33063,32575,33077,32575 33064,32576,33075,32576 33065,32577,33075,32577 33065,32578,33076,32578 33070,32579,33076,32579 33070,32580,33077,32580 33072,32581,33078,32581 33073,32582,33079,32582 33074,32583,33080,32584 33076,32585,33081,32585 33077,32586,33081,32586 33077,32587,33082,32587 33077,32588,33083,32594 33017,32616,33021,32616 33015,32617,33022,32617 33012,32618,33023,32618 33012,32619,33024,32619 33007,32619,33009,32619 32988,32619,32993,32619 32988,32620,32995,32620 32987,32621,32996,32622 33006,32620,33025,32623 32987,32623,33000,32623 32986,32624,33025,32625 32987,32626,33024,32626 32987,32627,33010,32627 33014,32627,33022,32627 33017,32628,33020,32628 33002,32628,33008,32628 32989,32628,32996,32628 32989,32629,32995,32629 32993,32630,32994,32630 33011,32635,33014,32635 33010,32636,33015,32636 33068,32637,33070,32637 33008,32637,33015,32637 33066,32638,33072,32638 33064,32639,33075,32639 32998,32639,33000,32639 33008,32638,33017,32640 32994,32640,33001,32640 33064,32640,33076,32640 33008,32641,33016,32641 33063,32641,33077,32641 33035,32641,33038,32642 32994,32641,33002,32642 33063,32642,33078,32642 33008,32642,33015,32642 33033,32643,33039,32643 33008,32643,33013,32643 32994,32643,33003,32643 33061,32643,33078,32644 32994,32644,33004,32644 33031,32644,33040,32644 33007,32644,33012,32645 33060,32645,33078,32645 32995,32645,33005,32645 33030,32645,33041,32646 33060,32646,33079,32646 32996,32646,33011,32646 33000,32647,33012,32647 33030,32647,33042,32647 32996,32647,32998,32647 33058,32647,33079,32647 33057,32648,33079,32648 33030,32648,33046,32648 33001,32648,33012,32648 33031,32649,33046,32649 33002,32649,33013,32649 33053,32649,33079,32649 33031,32650,33079,32650 33000,32650,33014,32650 33044,32651,33059,32651 33063,32651,33079,32651 33034,32651,33038,32651 32999,32651,33015,32651 33044,32652,33058,32652 33035,32652,33038,32652 32998,32652,33015,32652 33066,32652,33080,32653 32998,32653,33016,32654 33067,32654,33079,32654 32998,32655,33017,32655 33069,32655,33079,32655 33070,32656,33078,32656 33072,32657,33077,32657 33074,32658,33075,32658 32999,32656,33017,32660 33032,32660,33037,32660 32998,32661,33020,32661 33031,32661,33039,32661 33030,32662,33039,32662 33008,32662,33023,32662 32998,32662,33004,32662 32998,32663,33003,32663 33009,32663,33039,32663 33014,32664,33039,32664 32997,32664,33003,32664 33015,32665,33041,32665 33017,32666,33042,32666 33060,32666,33064,32666 32997,32665,33002,32667 33020,32667,33042,32667 33059,32667,33065,32668 33025,32668,33042,32668 32996,32668,33002,32668 32996,32669,33001,32669 33027,32669,33041,32669 33057,32669,33069,32669 33028,32670,33040,32670 33055,32670,33069,32670 32995,32670,33001,32670 33054,32671,33070,32671 32995,32671,33002,32671 33028,32671,33039,32672 33052,32672,33071,32672 32995,32672,33004,32672 33029,32673,33037,32673 32996,32673,33005,32673 32997,32674,33006,32674 33030,32674,33036,32674 33031,32675,33036,32675 32999,32675,33008,32675 33031,32676,33035,32676 33002,32676,33014,32676 33002,32677,33015,32677 33051,32673,33072,32678 33003,32678,33016,32678 33004,32679,33016,32679 33052,32679,33071,32680 33004,32680,33018,32681 33053,32681,33070,32681 33007,32682,33018,32682 33054,32682,33068,32682 33055,32683,33066,32683 33008,32683,33018,32683 33009,32684,33017,32684 33057,32684,33066,32685 33009,32685,33016,32685 33058,32686,33065,32686 33009,32686,33015,32687 33071,32687,33073,32687 33010,32688,33014,32688 33069,32688,33076,32689 33010,32689,33013,32689 33068,32690,33077,32690 33068,32691,33078,32693 33069,32694,33077,32695 33069,32696,33076,32696 33070,32697,33076,32697 33071,32698,33075,32698 33023,32750,33030,32750 33022,32751,33032,32751 33022,32752,33034,32752 33020,32753,33034,32755 33020,32756,33035,32756 33021,32757,33035,32758 33022,32759,33034,32760 33021,32761,33033,32761 33020,32762,33028,32762 33018,32763,33027,32763 33018,32764,33026,32764 33017,32765,33024,32765 33017,32766,33022,32767 33016,32768,33022,32768 33016,32769,33021,32771 33015,32772,33023,32772 33015,32773,33027,32773 33013,32774,33028,32775 33013,32776,33029,32777 33013,32778,33030,32778 33014,32779,33021,32779 33024,32779,33030,32779 33016,32780,33019,32780 33025,32780,33030,32781 33024,32782,33030,32782 33020,32783,33030,32783 33018,32784,33029,32784 33017,32785,33028,32785 33015,32786,33027,32786 33015,32787,33025,32787 33014,32788,33023,32788 33012,32789,33020,32789 33012,32790,33019,32791 33024,32791,33027,32791 33012,32792,33018,32792 33022,32792,33028,32792 33012,32793,33019,32793 33021,32793,33030,32793 33013,32794,33031,32794 33014,32795,33032,32795 33015,32796,33033,32796 33017,32797,33034,32797 33019,32798,33034,32798 33020,32799,33034,32800 33019,32801,33033,32801 33018,32802,33033,32802 33016,32803,33032,32803 33015,32804,33031,32804 33024,32805,33030,32805 33015,32805,33021,32805 33024,32806,33028,32806 33015,32806,33020,32806 33024,32807,33027,32807 33015,32807,33019,32807 33015,32808,33017,32808 33023,32808,33028,32808 33022,32809,33029,32809 33020,32810,33029,32810 33018,32811,33030,32811 33017,32812,33030,32814 33017,32815,33029,32815 33024,32816,33027,32816 33018,32816,33020,32816", + }, + [85] = { -- Southern Darama Desert (50049 tiles, 503 rects) + name = "Southern Darama Desert", + mainArea = 2, + bbox = { x1 = 33017, y1 = 32540, x2 = 33348, y2 = 32874 }, + rects = "33223,32540,33224,32540 33223,32541,33229,32541 33223,32542,33230,32542 33221,32543,33230,32543 33218,32543,33219,32543 33079,32544,33079,32544 33213,32544,33213,32544 33204,32544,33204,32544 33215,32544,33229,32544 33207,32544,33207,32544 33202,32545,33226,32545 33079,32545,33080,32545 33200,32546,33226,32546 33078,32546,33081,32546 33078,32547,33084,32547 33198,32547,33226,32547 33077,32548,33086,32548 33196,32548,33221,32548 33224,32548,33225,32548 33077,32549,33087,32549 33194,32549,33219,32549 33080,32550,33088,32550 33192,32550,33217,32550 33190,32551,33217,32551 33240,32551,33242,32551 33081,32551,33088,32551 33086,32552,33091,32552 33188,32552,33217,32552 33239,32552,33242,32552 33186,32553,33220,32553 33087,32553,33093,32553 33238,32553,33241,32553 33236,32554,33241,32554 33185,32554,33223,32554 33089,32554,33093,32554 33181,32555,33224,32555 33235,32555,33241,32555 33089,32555,33094,32555 33090,32556,33094,32556 33234,32556,33240,32556 33179,32556,33225,32556 33150,32556,33152,32557 33090,32557,33095,32557 33234,32557,33241,32557 33090,32558,33098,32558 33151,32558,33151,32558 33236,32558,33241,32558 33092,32559,33099,32559 33237,32559,33241,32559 33150,32559,33152,32559 33179,32557,33226,32560 33245,32560,33246,32560 33093,32560,33101,32560 33177,32560,33177,32560 33149,32560,33153,32560 33237,32560,33240,32561 33095,32561,33104,32561 33174,32561,33225,32561 33109,32561,33109,32561 33244,32561,33247,32561 33151,32561,33153,32562 33174,32562,33227,32562 33097,32562,33110,32562 33116,32562,33116,32562 33243,32562,33247,32562 33233,32562,33241,32562 33232,32563,33246,32563 33149,32563,33155,32563 33100,32563,33116,32563 33145,32563,33145,32563 33157,32563,33157,32563 33173,32563,33228,32564 33143,32564,33160,32564 33105,32564,33120,32564 33231,32564,33245,32564 33141,32564,33141,32564 33124,32564,33124,32565 33169,32565,33169,32565 33139,32565,33162,32565 33165,32565,33165,32565 33172,32565,33228,32565 33109,32565,33121,32565 33231,32565,33244,32565 33109,32566,33114,32566 33117,32566,33124,32566 33136,32566,33244,32566 33132,32567,33244,32567 33120,32567,33124,32567 33123,32568,33125,32568 33129,32568,33245,32568 33124,32569,33245,32569 33124,32570,33244,32570 33125,32571,33243,32571 33124,32572,33242,32572 33122,32573,33242,32573 33123,32574,33241,32574 33122,32575,33242,32576 33121,32577,33243,32578 33120,32579,33242,32579 33120,32580,33241,32581 33243,32581,33244,32581 33120,32582,33245,32582 33120,32583,33246,32584 33253,32584,33256,32584 33119,32585,33250,32585 33252,32585,33257,32585 33119,32586,33257,32587 33119,32588,33258,32588 33120,32589,33259,32589 33120,32590,33260,32590 33120,32591,33262,32591 33120,32592,33264,32592 33121,32593,33265,32594 33121,32595,33267,32595 33273,32596,33274,32596 33122,32596,33268,32597 33272,32597,33275,32597 33123,32598,33279,32598 33290,32599,33293,32599 33123,32599,33280,32599 33123,32600,33283,32600 33287,32600,33294,32600 33286,32601,33295,32601 33123,32601,33284,32601 33123,32602,33295,32602 33123,32603,33294,32603 33122,32604,33292,32604 33116,32605,33117,32605 33120,32605,33293,32605 33116,32606,33294,32606 33113,32607,33294,32607 33111,32608,33293,32608 33111,32609,33294,32609 33110,32610,33294,32610 33109,32611,33294,32611 33109,32612,33293,32612 33110,32613,33290,32613 33110,32614,33288,32614 33110,32615,33287,32615 33296,32619,33301,32619 33110,32616,33284,32620 33295,32620,33302,32620 33293,32621,33303,32621 33108,32621,33283,32621 33290,32622,33304,32622 33107,32622,33283,32622 33107,32623,33304,32623 33106,32624,33304,32624 33105,32625,33303,32625 33104,32626,33300,32626 33103,32627,33299,32627 33101,32628,33299,32628 33099,32629,33298,32629 33099,32630,33295,32630 33099,32631,33294,32631 33100,32632,33293,32632 33100,32633,33296,32633 33100,32634,33297,32635 33101,32636,33297,32636 33101,32637,33298,32637 33102,32638,33299,32639 33103,32640,33298,32640 33103,32641,33299,32642 33105,32643,33299,32643 33105,32644,33301,32644 33105,32645,33302,32646 33104,32647,33302,32648 33104,32649,33303,32649 33104,32650,33304,32650 33299,32651,33307,32651 33104,32651,33297,32651 33300,32652,33308,32652 33103,32652,33295,32653 33301,32653,33308,32653 33134,32654,33294,32654 33302,32654,33308,32654 33103,32654,33131,32654 33305,32655,33307,32655 33135,32655,33293,32655 33103,32655,33130,32655 33136,32656,33292,32657 33101,32656,33129,32657 33101,32658,33130,32658 33137,32658,33292,32659 33101,32659,33131,32659 33136,32660,33295,32660 33101,32660,33133,32660 33101,32661,33295,32661 33100,32662,33295,32663 33099,32664,33291,32664 33098,32665,33291,32665 33096,32666,33291,32666 33299,32666,33300,32666 33298,32667,33301,32667 33094,32667,33291,32667 33314,32668,33316,32668 33308,32668,33312,32668 33297,32668,33302,32668 33322,32668,33323,32668 33092,32668,33294,32668 33320,32669,33324,32669 33090,32669,33302,32669 33306,32669,33317,32669 33305,32670,33324,32670 33089,32670,33302,32670 33089,32671,33324,32671 33088,32672,33324,32673 33088,32674,33323,32674 33088,32675,33322,32675 33087,32676,33322,32676 33320,32677,33321,32677 33087,32677,33318,32679 33087,32680,33317,32680 33088,32681,33315,32681 33088,32682,33316,32682 33089,32683,33316,32683 33091,32684,33316,32684 33093,32685,33316,32685 33095,32686,33315,32686 33095,32687,33312,32687 33094,32688,33312,32688 33094,32689,33311,32690 33095,32691,33312,32692 33094,32693,33311,32693 33093,32694,33307,32694 33092,32695,33307,32695 33090,32696,33307,32696 33089,32697,33307,32697 33088,32698,33306,32698 33087,32699,33304,32699 33087,32700,33305,32700 33089,32701,33306,32701 33089,32702,33308,32702 33090,32703,33309,32703 33090,32704,33310,32704 33090,32705,33311,32705 33090,32706,33312,32706 33317,32707,33319,32707 33090,32707,33313,32707 33090,32708,33314,32708 33316,32708,33321,32708 33090,32709,33323,32709 33090,32710,33324,32710 33090,32711,33325,32711 33089,32712,33326,32712 33074,32712,33075,32712 33088,32713,33326,32713 33072,32713,33077,32713 33070,32714,33078,32714 33087,32714,33325,32714 33069,32715,33319,32715 33068,32716,33317,32716 33067,32717,33316,32717 33066,32718,33316,32718 33065,32719,33318,32719 33064,32720,33319,32720 33065,32721,33319,32721 33066,32722,33318,32722 33067,32723,33317,32723 33068,32724,33317,32725 33067,32726,33318,32726 33069,32727,33318,32728 33069,32729,33317,32729 33069,32730,33310,32730 33313,32730,33316,32730 33068,32731,33310,32732 33067,32733,33313,32733 33065,32733,33065,32733 33064,32734,33314,32734 33062,32735,33314,32735 33058,32736,33313,32736 33057,32737,33310,32738 33325,32738,33325,32738 33334,32738,33334,32738 33056,32739,33310,32739 33332,32739,33332,32739 33344,32739,33345,32739 33303,32740,33304,32740 33331,32740,33333,32740 33056,32740,33300,32740 33343,32740,33346,32740 33306,32740,33309,32740 33339,32740,33339,32740 33325,32739,33328,32741 33332,32741,33338,32741 33325,32742,33329,32742 33055,32741,33299,32743 33342,32741,33346,32743 33326,32743,33326,32743 33332,32742,33337,32744 33341,32744,33345,32744 33054,32744,33299,32744 33331,32745,33342,32745 33322,32745,33323,32745 33054,32745,33300,32745 33321,32746,33323,32746 33053,32746,33300,32747 33330,32746,33341,32747 33321,32747,33324,32748 33326,32748,33341,32748 33053,32748,33299,32749 33344,32749,33344,32749 33320,32749,33342,32749 33053,32750,33298,32750 33323,32750,33344,32750 33052,32751,33298,32751 33323,32751,33345,32751 33052,32752,33299,32752 33052,32753,33300,32753 33323,32752,33342,32754 33346,32754,33347,32755 33051,32754,33300,32755 33322,32755,33341,32755 33323,32756,33341,32756 33051,32756,33299,32756 33345,32756,33348,32757 33327,32757,33341,32757 33049,32757,33299,32757 33323,32757,33323,32757 33328,32758,33341,32758 33049,32758,33297,32759 33347,32758,33348,32759 33329,32759,33341,32759 33347,32760,33347,32760 33332,32760,33340,32760 33329,32760,33329,32760 33049,32760,33299,32760 33333,32761,33339,32761 33049,32761,33144,32762 33334,32762,33339,32762 33162,32761,33301,32763 33335,32763,33339,32763 33048,32763,33144,32764 33162,32764,33302,32764 33162,32765,33168,32765 33132,32765,33144,32765 33048,32765,33125,32765 33340,32766,33343,32766 33327,32766,33331,32766 33046,32766,33125,32766 33175,32765,33302,32767 33327,32767,33332,32767 33047,32767,33125,32767 33339,32767,33344,32768 33109,32768,33125,32768 33328,32768,33332,32768 33175,32768,33183,32768 33190,32768,33302,32768 33047,32768,33102,32769 33190,32769,33303,32769 33343,32769,33344,32769 33190,32770,33304,32770 33046,32770,33102,32770 33047,32771,33102,32772 33190,32771,33305,32773 33046,32773,33102,32773 33190,32774,33307,32774 33315,32774,33316,32774 33328,32774,33329,32774 33045,32774,33102,32774 33335,32764,33337,32775 33327,32775,33330,32775 33190,32775,33321,32775 33046,32775,33102,32776 33190,32776,33337,32776 33190,32777,33200,32777 33207,32777,33337,32778 33045,32777,33102,32779 33327,32779,33330,32779 33207,32779,33322,32779 33207,32780,33224,32780 33311,32780,33313,32780 33328,32780,33329,32780 33044,32780,33102,32781 33044,32782,33090,32782 33231,32780,33307,32783 33044,32783,33083,32783 33090,32783,33090,32783 33231,32784,33306,32784 33043,32784,33080,32785 33042,32786,33075,32786 33232,32785,33307,32787 33043,32787,33075,32787 33294,32788,33306,32788 33044,32788,33075,32789 33232,32788,33290,32789 33295,32789,33305,32789 33295,32790,33304,32790 33045,32790,33075,32791 33296,32791,33304,32791 33232,32790,33289,32792 33046,32792,33075,32792 33297,32792,33303,32792 33298,32793,33301,32793 33047,32793,33075,32794 33232,32793,33288,32795 33232,32796,33287,32796 33048,32795,33075,32797 33232,32797,33286,32797 33047,32798,33075,32798 33047,32799,33071,32799 33048,32800,33071,32801 33047,32802,33060,32802 33067,32802,33071,32802 33249,32798,33286,32803 33046,32803,33060,32803 33045,32804,33060,32804 33044,32805,33060,32805 33043,32806,33060,32806 33042,32807,33060,32807 33041,32808,33061,32808 33040,32809,33061,32809 33039,32810,33061,32810 33038,32811,33061,32813 33036,32814,33061,32814 33248,32804,33286,32816 33037,32815,33061,32816 33248,32817,33274,32819 33036,32817,33061,32819 33035,32820,33061,32820 33248,32820,33275,32820 33248,32821,33276,32821 33035,32821,33058,32822 33034,32823,33058,32823 33248,32822,33277,32824 33033,32824,33058,32825 33032,32826,33058,32826 33248,32825,33278,32827 33033,32827,33058,32828 33248,32828,33269,32828 33271,32828,33278,32828 33031,32829,33058,32829 33272,32829,33278,32829 33248,32829,33268,32830 33273,32830,33277,32830 33030,32830,33058,32830 33248,32831,33267,32831 33029,32831,33058,32832 33251,32832,33266,32832 33029,32833,33054,32833 33031,32834,33054,32834 33251,32833,33265,32835 33251,32836,33264,32836 33035,32835,33054,32837 33251,32837,33254,32837 33256,32837,33264,32837 33036,32838,33054,32838 33256,32838,33270,32838 33039,32839,33054,32839 33256,32839,33271,32839 33257,32840,33271,32840 33042,32840,33053,32840 33258,32841,33271,32842 33043,32841,33050,32843 33258,32843,33270,32843 33043,32844,33049,32844 33259,32844,33263,32844 33042,32845,33050,32845 33261,32845,33262,32845 33041,32846,33050,32846 33040,32847,33050,32847 33027,32847,33028,32847 33026,32848,33029,32848 33039,32848,33050,32848 33025,32849,33030,32849 33037,32849,33049,32849 33036,32850,33047,32850 33024,32850,33030,32850 33024,32851,33032,32851 33034,32851,33046,32851 33025,32852,33044,32852 33026,32853,33044,32853 33027,32854,33043,32854 33028,32855,33035,32855 33037,32855,33046,32855 33049,32855,33050,32855 33032,32856,33033,32856 33038,32856,33050,32858 33023,32858,33028,32858 33038,32859,33049,32859 33033,32859,33035,32859 33022,32859,33029,32860 33032,32860,33036,32860 33039,32860,33049,32860 33031,32861,33049,32861 33019,32861,33029,32861 33018,32862,33049,32862 33017,32863,33048,32864 33017,32865,33049,32865 33018,32866,33042,32866 33045,32866,33050,32867 33019,32867,33042,32867 33024,32868,33042,32868 33022,32869,33042,32869 33046,32868,33050,32870 33021,32870,33041,32870 33021,32871,33033,32871 33047,32871,33049,32871 33035,32871,33040,32871 33022,32872,33032,32872 33036,32872,33039,32872 33022,32873,33026,32873 33023,32874,33024,32874", + }, + [86] = { -- Banuta (7709 tiles, 85 rects) + name = "Banuta", + mainArea = 19, + bbox = { x1 = 32764, y1 = 32497, x2 = 32865, y2 = 32602 }, + rects = "32819,32497,32826,32497 32816,32498,32827,32498 32804,32499,32830,32499 32800,32500,32833,32500 32797,32501,32835,32501 32794,32502,32837,32502 32792,32503,32839,32503 32791,32504,32840,32504 32789,32505,32840,32505 32787,32506,32841,32506 32785,32507,32842,32507 32779,32508,32842,32508 32777,32509,32843,32509 32776,32510,32843,32510 32774,32511,32844,32511 32773,32512,32844,32512 32773,32513,32845,32514 32773,32515,32846,32516 32773,32517,32847,32518 32773,32519,32848,32519 32773,32520,32849,32524 32771,32525,32849,32525 32769,32526,32849,32526 32767,32527,32849,32527 32766,32528,32849,32528 32766,32529,32850,32529 32764,32530,32851,32530 32764,32531,32853,32531 32764,32532,32855,32532 32764,32533,32856,32533 32764,32534,32858,32534 32764,32535,32859,32535 32764,32536,32860,32536 32764,32537,32861,32537 32764,32538,32863,32538 32764,32539,32864,32539 32767,32540,32865,32540 32769,32541,32865,32541 32770,32542,32865,32542 32771,32543,32865,32545 32772,32546,32865,32546 32772,32547,32864,32547 32772,32548,32859,32548 32772,32549,32858,32549 32772,32550,32857,32550 32771,32551,32857,32552 32771,32553,32856,32555 32770,32556,32855,32556 32768,32557,32855,32557 32765,32558,32855,32561 32765,32562,32854,32572 32766,32573,32854,32573 32768,32574,32854,32574 32771,32575,32854,32575 32772,32576,32854,32576 32773,32577,32854,32577 32774,32578,32854,32578 32775,32579,32854,32580 32776,32581,32808,32581 32810,32581,32854,32581 32811,32582,32854,32582 32777,32582,32807,32582 32777,32583,32806,32583 32812,32583,32854,32583 32811,32584,32854,32584 32778,32584,32807,32584 32779,32585,32808,32585 32810,32585,32854,32585 32779,32586,32854,32586 32779,32587,32853,32587 32780,32588,32845,32588 32780,32589,32843,32589 32783,32590,32843,32590 32785,32591,32842,32591 32788,32592,32841,32592 32816,32593,32841,32593 32816,32594,32840,32594 32817,32595,32839,32595 32818,32596,32839,32596 32819,32597,32838,32597 32820,32598,32838,32598 32821,32599,32837,32599 32822,32600,32837,32600 32823,32601,32836,32601 32824,32602,32834,32602", + }, + [87] = { -- Chor (6031 tiles, 234 rects) + name = "Chor", + mainArea = 19, + bbox = { x1 = 32894, y1 = 32769, x2 = 33010, y2 = 32899 }, + rects = "33003,32769,33003,32769 33002,32770,33004,32770 32999,32771,33005,32771 32997,32772,33006,32772 32996,32773,33007,32773 32993,32774,33008,32774 32992,32775,33008,32775 32991,32776,33008,32776 32990,32777,33008,32778 32989,32779,33008,32780 32988,32781,33008,32781 32987,32782,33007,32783 32985,32784,33007,32784 32984,32785,33006,32785 32983,32786,33006,32787 32981,32788,33006,32788 32980,32789,33005,32790 32978,32791,33005,32791 32977,32792,33004,32793 32975,32794,33004,32794 32974,32795,33004,32795 32972,32796,33004,32796 32971,32797,33004,32797 32970,32798,33004,32798 32968,32799,33004,32799 32967,32800,33005,32800 32966,32801,33007,32801 32965,32802,33008,32802 32964,32803,33008,32803 32963,32804,33002,32804 33004,32804,33008,32805 32962,32805,33002,32805 32961,32806,33001,32806 33007,32806,33008,32806 32960,32807,33001,32808 32958,32809,33001,32809 32954,32810,33002,32810 32953,32811,33002,32811 32952,32812,33002,32812 32951,32813,33002,32813 32950,32814,33002,32814 32949,32815,33003,32815 32947,32816,33003,32817 32946,32818,33000,32818 32945,32819,33000,32819 32944,32820,33004,32820 32944,32821,33003,32821 32943,32822,33003,32824 32944,32825,33006,32825 32945,32826,33007,32826 32940,32827,32941,32827 32946,32827,33008,32827 32940,32828,32942,32828 32947,32828,33009,32829 32939,32829,32943,32829 32996,32830,33009,32830 32947,32830,32990,32830 32992,32830,32994,32830 32938,32830,32943,32830 32948,32831,32982,32831 32997,32831,33010,32831 32937,32831,32944,32831 32954,32832,32980,32832 32936,32832,32944,32832 32956,32833,32979,32833 32935,32833,32944,32833 32985,32833,32987,32833 32984,32834,32988,32834 32934,32834,32945,32834 32948,32834,32951,32834 32957,32834,32973,32834 32999,32832,33010,32835 32978,32834,32979,32835 32982,32835,32989,32835 32957,32835,32958,32835 32948,32835,32954,32835 32960,32835,32970,32835 32933,32835,32945,32835 32976,32836,32991,32836 33000,32836,33010,32836 32962,32836,32968,32836 32932,32836,32945,32836 32948,32836,32958,32837 32963,32837,32966,32837 32970,32837,32992,32837 33000,32837,33009,32837 32931,32837,32944,32837 32970,32838,32993,32838 32948,32838,32959,32838 33000,32838,33005,32838 32930,32838,32944,32838 32947,32839,32961,32839 32929,32839,32944,32839 32968,32839,32993,32839 32999,32839,33004,32840 32928,32840,32944,32840 32968,32840,32992,32840 32947,32840,32964,32840 33000,32841,33003,32841 32968,32841,32990,32841 32927,32841,32943,32841 32947,32841,32965,32841 32969,32842,32990,32842 32926,32842,32943,32843 32946,32842,32965,32843 32970,32843,32989,32843 32924,32844,32943,32844 32971,32844,32987,32844 32946,32844,32966,32844 32920,32845,32943,32845 32972,32845,32986,32845 32946,32845,32967,32845 32917,32846,32943,32846 32974,32846,32985,32846 32946,32846,32968,32846 32915,32847,32942,32847 32946,32847,32969,32847 32977,32847,32980,32847 32983,32847,32984,32848 32914,32848,32969,32848 32973,32849,32979,32849 32914,32849,32968,32849 32982,32849,32987,32849 32972,32850,32988,32850 32945,32850,32968,32850 32913,32850,32942,32851 32971,32851,32989,32852 32906,32852,32907,32852 32911,32852,32943,32852 32972,32853,32993,32853 32910,32853,32943,32853 32946,32851,32968,32854 32909,32854,32943,32854 32973,32854,32994,32854 32946,32855,32969,32855 32974,32855,32994,32855 32906,32853,32906,32856 32908,32855,32942,32856 32946,32856,32993,32856 32906,32857,32942,32857 32945,32857,32992,32857 32945,32858,32988,32859 32905,32858,32941,32859 32944,32860,32971,32860 32980,32860,32987,32860 32904,32860,32941,32860 32981,32861,32986,32861 32903,32861,32971,32861 32944,32862,32971,32862 32902,32862,32941,32863 32948,32863,32971,32863 32950,32864,32971,32864 32902,32864,32940,32865 32944,32865,32945,32865 32951,32865,32971,32865 32943,32866,32947,32866 32952,32866,32970,32866 32901,32866,32940,32867 32952,32867,32969,32867 32943,32867,32948,32867 32901,32868,32939,32868 32943,32868,32949,32868 32954,32868,32967,32868 32952,32868,32952,32869 32956,32869,32963,32869 32943,32869,32950,32869 32900,32869,32939,32869 32958,32870,32961,32870 32942,32870,32952,32870 32900,32870,32938,32871 32942,32871,32953,32871 32900,32872,32935,32872 32937,32872,32938,32872 32943,32872,32955,32872 32937,32873,32940,32873 32944,32873,32961,32874 32899,32873,32934,32874 32937,32874,32941,32874 32937,32875,32961,32875 32899,32875,32933,32875 32936,32876,32960,32876 32899,32876,32932,32876 32899,32877,32931,32877 32944,32877,32959,32877 32936,32877,32941,32877 32898,32878,32930,32878 32937,32878,32941,32878 32945,32878,32958,32879 32897,32879,32930,32879 32938,32879,32942,32879 32954,32880,32957,32880 32933,32880,32934,32880 32939,32880,32942,32880 32896,32880,32928,32880 32945,32880,32952,32881 32922,32881,32923,32881 32932,32881,32942,32881 32895,32881,32914,32881 32927,32881,32928,32881 32940,32882,32942,32882 32927,32882,32936,32882 32894,32882,32910,32882 32945,32882,32953,32883 32923,32883,32937,32883 32917,32883,32919,32883 32894,32883,32905,32883 32909,32883,32910,32884 32914,32884,32938,32884 32895,32884,32904,32884 32899,32885,32904,32885 32946,32884,32953,32886 32908,32885,32940,32886 32900,32886,32904,32886 32902,32887,32904,32887 32945,32887,32952,32887 32908,32887,32939,32887 32945,32888,32949,32888 32908,32888,32936,32888 32946,32889,32948,32889 32909,32889,32937,32889 32908,32890,32937,32890 32923,32891,32936,32891 32907,32891,32921,32891 32924,32892,32934,32892 32907,32892,32920,32893 32929,32893,32934,32893 32930,32894,32934,32894 32908,32894,32919,32894 32931,32895,32933,32895 32909,32895,32919,32895 32909,32896,32918,32896 32909,32897,32914,32897 32910,32898,32913,32898 32911,32899,32912,32899", + }, + [90] = { -- Forbidden Lands of Tiquanda (7244 tiles, 104 rects) + name = "Forbidden Lands of Tiquanda", + mainArea = 19, + bbox = { x1 = 32917, y1 = 32477, x2 = 33035, y2 = 32597 }, + rects = "32923,32477,32924,32477 32922,32478,32925,32478 32922,32479,32926,32479 32920,32480,32926,32480 32919,32481,32927,32481 32918,32482,32928,32482 32917,32483,32929,32485 32942,32485,32943,32485 32918,32486,32929,32486 32941,32486,32944,32486 32920,32487,32929,32487 32940,32487,32944,32488 32920,32488,32932,32488 32920,32489,32933,32489 32937,32489,32944,32489 32920,32490,32944,32490 32920,32491,32945,32491 32920,32492,32946,32493 32925,32494,32947,32495 32951,32495,32953,32495 32925,32496,32954,32498 32925,32499,32956,32499 32925,32500,32957,32502 32925,32503,32960,32503 32925,32504,32961,32506 32963,32506,32965,32506 32970,32506,32971,32506 32968,32507,32972,32507 32925,32507,32966,32507 32925,32508,32972,32508 32925,32509,32971,32509 32925,32510,32970,32510 32925,32511,32969,32511 32988,32512,32990,32512 32928,32512,32971,32512 32982,32512,32986,32512 32981,32513,32991,32513 32928,32513,32972,32514 32980,32514,32992,32514 32928,32515,32973,32515 32980,32515,32993,32516 32928,32516,32976,32516 32928,32517,32993,32518 32928,32519,32994,32519 32928,32520,32995,32520 32928,32521,32996,32524 32928,32525,32999,32525 32928,32526,33001,32526 32928,32527,33002,32528 32928,32529,33001,32529 32928,32530,32999,32530 32933,32531,32997,32534 33014,32534,33015,32534 32933,32535,32998,32535 32933,32536,32999,32537 33013,32535,33016,32538 33006,32538,33007,32538 32933,32538,33002,32538 32933,32539,33016,32541 32933,32542,33015,32542 32933,32543,33014,32544 32938,32545,33014,32545 32938,32546,33013,32546 32938,32547,33012,32547 32938,32548,33011,32548 32938,32549,33007,32551 33015,32551,33017,32551 32938,32552,33006,32552 33014,32552,33018,32552 32938,32553,33005,32553 33011,32553,33018,32553 33021,32554,33023,32554 32938,32554,33018,32556 33020,32555,33024,32556 32938,32557,33024,32560 32938,32561,33025,32561 32938,32562,33026,32563 32938,32564,33027,32564 32938,32565,33028,32565 33034,32565,33035,32565 33030,32566,33035,32566 32939,32566,33028,32566 32939,32567,33035,32567 32939,32568,33032,32568 32939,32569,33030,32569 32939,32570,33029,32570 32947,32571,33028,32571 32947,32572,33027,32572 32947,32573,33026,32573 32947,32574,33025,32574 32947,32575,33024,32576 32947,32577,33023,32577 32947,32578,33022,32580 32947,32581,33021,32581 32947,32582,33020,32582 32947,32583,33019,32583 32947,32584,33016,32585 32947,32586,33015,32586 32947,32587,33012,32587 32947,32588,33009,32589 32947,32590,33010,32592 32947,32593,33009,32594 32947,32595,33007,32595 32980,32596,32998,32597", + }, + [92] = { -- Port Hope Surroundings (133356 tiles, 1357 rects) + name = "Port Hope Surroundings", + mainArea = 19, + bbox = { x1 = 32527, y1 = 32470, x2 = 33024, y2 = 32976 }, + rects = "32803,32470,32807,32470 32802,32471,32807,32471 32801,32472,32808,32472 32800,32473,32808,32473 32800,32474,32809,32474 32832,32475,32835,32475 32800,32475,32810,32475 32801,32476,32810,32476 32832,32476,32836,32476 32831,32477,32836,32477 32802,32477,32811,32477 32824,32478,32826,32478 32831,32478,32837,32478 32802,32478,32812,32479 32823,32479,32827,32480 32830,32479,32837,32480 32801,32480,32811,32481 32822,32481,32837,32482 32800,32482,32812,32483 32821,32483,32836,32483 32800,32484,32811,32484 32821,32484,32835,32484 32820,32485,32834,32485 32799,32485,32813,32485 32795,32486,32796,32486 32798,32486,32814,32486 32816,32486,32835,32486 32794,32487,32835,32487 32787,32487,32788,32487 32794,32488,32837,32488 32785,32488,32790,32488 32784,32489,32791,32489 32795,32489,32838,32489 32784,32490,32838,32490 32785,32491,32838,32491 32778,32491,32780,32491 32786,32492,32840,32492 32777,32492,32781,32493 32787,32493,32841,32494 32920,32494,32924,32494 32778,32494,32783,32494 32778,32495,32841,32495 32776,32496,32841,32496 32921,32495,32924,32497 32827,32497,32840,32497 32852,32497,32853,32497 32775,32497,32818,32497 32765,32498,32766,32498 32828,32498,32842,32498 32851,32498,32854,32498 32922,32498,32924,32498 32775,32498,32815,32498 32848,32499,32856,32499 32773,32499,32803,32499 32831,32499,32845,32499 32764,32499,32767,32499 32923,32499,32924,32499 32764,32500,32799,32500 32834,32500,32857,32500 32924,32500,32924,32500 32765,32501,32796,32501 32836,32501,32857,32501 32838,32502,32859,32502 32765,32502,32793,32502 32902,32502,32904,32502 32924,32502,32924,32503 32764,32503,32791,32503 32840,32503,32860,32503 32899,32503,32907,32503 32762,32504,32790,32504 32898,32504,32909,32504 32841,32504,32860,32505 32915,32505,32920,32505 32761,32505,32788,32505 32898,32505,32910,32505 32924,32505,32924,32506 32865,32506,32868,32506 32842,32506,32859,32506 32761,32506,32786,32506 32898,32506,32911,32506 32913,32506,32921,32506 32863,32507,32869,32507 32843,32507,32860,32507 32761,32507,32784,32507 32887,32507,32924,32507 32761,32508,32778,32508 32843,32508,32869,32508 32886,32508,32924,32509 32844,32509,32869,32509 32759,32509,32776,32509 32885,32510,32924,32510 32844,32510,32870,32510 32757,32510,32775,32510 32882,32510,32883,32510 32845,32511,32870,32511 32755,32511,32773,32511 32881,32511,32924,32511 32881,32512,32927,32512 32845,32512,32873,32512 32878,32513,32927,32513 32846,32513,32872,32513 32876,32514,32927,32514 32846,32514,32873,32514 32754,32512,32772,32515 32750,32515,32752,32515 32847,32515,32927,32516 32848,32517,32927,32518 32749,32516,32772,32519 32849,32519,32927,32519 32747,32520,32772,32520 32746,32521,32772,32524 32747,32525,32770,32525 32750,32526,32768,32526 32752,32527,32766,32527 32850,32520,32927,32528 32752,32528,32765,32528 32851,32529,32927,32529 32751,32529,32765,32529 32852,32530,32927,32530 32854,32531,32932,32531 32856,32532,32932,32532 32751,32530,32763,32533 32857,32533,32932,32533 32859,32534,32932,32534 32748,32534,32749,32534 32752,32534,32763,32534 32745,32534,32746,32534 32860,32535,32932,32535 32744,32535,32763,32536 32861,32536,32932,32536 32862,32537,32932,32537 32745,32537,32763,32537 32864,32538,32932,32538 32744,32538,32763,32539 32865,32539,32932,32539 32744,32540,32766,32540 32745,32541,32768,32541 32747,32542,32769,32542 32866,32540,32932,32544 32748,32543,32770,32545 32866,32545,32937,32546 32744,32546,32771,32546 32865,32547,32937,32547 32742,32547,32771,32547 32860,32548,32937,32548 32741,32548,32771,32548 32740,32549,32771,32549 32859,32549,32937,32549 32739,32550,32771,32550 32739,32551,32770,32551 32858,32550,32937,32552 32738,32552,32770,32552 32737,32553,32770,32553 32691,32554,32693,32554 32857,32553,32937,32555 32736,32554,32770,32555 32690,32555,32694,32555 32689,32556,32694,32556 32735,32556,32769,32556 32734,32557,32767,32557 32688,32557,32695,32557 32688,32558,32696,32559 32734,32558,32764,32560 32689,32560,32695,32560 32856,32556,32937,32561 32733,32561,32764,32561 32689,32561,32693,32562 32657,32562,32659,32562 32732,32562,32764,32562 32656,32563,32660,32563 32671,32563,32672,32563 32688,32563,32694,32564 32663,32564,32666,32564 32655,32564,32661,32564 32669,32564,32673,32564 32855,32562,32937,32565 32687,32565,32693,32565 32731,32563,32764,32566 32655,32565,32673,32566 32685,32566,32694,32566 32730,32567,32764,32567 32684,32567,32695,32567 32655,32567,32672,32567 32729,32568,32764,32568 32683,32568,32697,32568 32653,32568,32670,32568 32682,32569,32698,32569 32709,32569,32712,32569 32651,32569,32670,32569 32855,32566,32938,32570 32708,32570,32717,32570 32681,32570,32699,32570 32650,32570,32670,32570 32728,32569,32764,32571 32674,32571,32702,32571 32708,32571,32718,32571 32649,32571,32670,32572 32727,32572,32764,32572 32673,32572,32718,32573 32649,32573,32671,32573 32592,32573,32596,32573 32727,32573,32765,32573 32727,32574,32767,32574 32649,32574,32720,32574 32591,32574,32597,32575 32650,32575,32721,32575 32581,32575,32583,32575 32726,32575,32770,32575 32590,32576,32597,32576 32724,32576,32771,32576 32651,32576,32722,32576 32651,32577,32772,32577 32589,32577,32597,32577 32580,32576,32584,32578 32651,32578,32773,32578 32589,32578,32596,32578 32590,32579,32595,32579 32581,32579,32583,32579 32651,32579,32774,32580 32591,32580,32595,32580 32590,32581,32594,32581 32651,32581,32775,32581 32584,32582,32585,32582 32589,32582,32592,32582 32651,32582,32776,32583 32641,32583,32642,32583 32583,32583,32591,32583 32640,32584,32643,32584 32583,32584,32593,32584 32652,32584,32777,32584 32637,32585,32644,32585 32652,32585,32778,32585 32584,32585,32594,32585 32855,32571,32946,32586 32600,32586,32602,32586 32584,32586,32595,32586 32604,32586,32605,32586 32613,32586,32614,32586 32636,32586,32645,32586 32651,32586,32778,32586 32622,32586,32625,32586 32599,32587,32606,32587 32612,32587,32615,32587 32635,32587,32646,32587 32854,32587,32946,32587 32648,32587,32778,32587 32585,32587,32595,32587 32622,32587,32626,32587 32610,32588,32615,32588 32635,32588,32717,32588 32622,32588,32627,32588 32599,32588,32608,32588 32719,32588,32779,32588 32588,32588,32596,32588 32846,32588,32946,32588 32622,32589,32631,32589 32600,32589,32614,32589 32720,32589,32779,32589 32634,32589,32716,32589 32589,32589,32596,32589 32844,32589,32946,32590 32590,32590,32611,32590 32719,32590,32782,32590 32621,32590,32716,32591 32591,32591,32610,32591 32843,32591,32946,32591 32718,32591,32784,32591 32620,32592,32787,32592 32593,32592,32612,32592 32842,32592,32946,32593 32616,32593,32617,32593 32619,32593,32815,32593 32593,32593,32613,32593 33010,32593,33011,32593 32593,32594,32815,32594 33010,32594,33010,32594 32841,32594,32946,32594 33008,32595,33009,32595 32840,32595,32946,32595 32594,32595,32816,32595 32600,32596,32817,32596 32840,32596,32979,32596 32999,32596,33008,32596 32839,32597,32979,32597 32603,32597,32818,32597 32999,32597,33006,32597 32604,32598,32819,32598 32839,32598,33000,32598 32604,32599,32820,32599 32838,32599,32986,32599 33004,32600,33008,32600 32838,32600,32980,32600 32603,32600,32821,32600 32602,32601,32822,32601 32990,32601,33010,32601 32837,32601,32976,32601 32602,32602,32823,32602 32835,32602,32971,32602 33021,32602,33023,32602 32984,32602,33011,32602 32603,32603,32968,32603 33020,32603,33023,32603 32983,32603,33015,32603 32594,32603,32595,32603 32979,32604,33024,32604 32604,32604,32964,32604 32605,32605,32958,32605 32974,32605,33024,32605 32609,32606,32955,32606 33019,32606,33023,32606 32972,32606,33013,32606 32593,32604,32596,32607 32971,32607,33012,32607 32610,32607,32954,32607 33019,32607,33021,32607 32967,32608,33011,32608 32610,32608,32640,32608 32594,32608,32595,32608 32643,32608,32951,32609 32966,32609,33007,32609 32611,32609,32640,32610 32642,32610,32951,32610 32963,32610,33001,32610 32611,32611,32652,32611 32655,32611,32950,32611 32963,32611,32989,32611 32994,32611,32995,32611 32655,32612,32949,32612 32612,32612,32652,32612 32955,32612,32985,32612 32611,32613,32652,32613 32656,32613,32949,32613 32607,32613,32608,32613 32955,32613,32978,32613 32606,32614,32652,32614 32656,32614,32948,32614 32953,32614,32973,32614 32655,32615,32945,32615 32952,32615,32968,32615 32605,32615,32653,32615 32948,32615,32948,32616 32605,32616,32628,32616 32632,32616,32944,32616 32952,32616,32967,32616 32634,32617,32943,32617 32947,32617,32966,32617 32606,32617,32628,32617 32607,32618,32629,32618 32649,32618,32943,32618 32635,32618,32645,32618 32946,32618,32965,32618 32836,32619,32942,32619 32946,32619,32964,32619 32636,32619,32645,32619 32650,32619,32831,32619 32608,32619,32629,32619 32651,32620,32829,32620 32836,32620,32941,32620 32946,32620,32963,32620 32613,32620,32630,32620 32946,32621,32962,32621 32612,32621,32631,32621 32836,32621,32939,32621 32650,32621,32829,32621 32638,32621,32642,32621 32649,32622,32828,32622 32833,32622,32938,32622 32635,32622,32644,32622 32612,32622,32632,32622 32943,32622,32961,32623 32832,32623,32936,32623 32613,32623,32646,32623 32648,32623,32828,32623 32941,32624,32961,32624 32832,32624,32934,32624 32613,32624,32828,32625 32832,32625,32933,32625 32939,32625,32961,32625 32832,32626,32932,32626 32655,32626,32828,32626 32613,32626,32653,32626 32937,32626,32961,32626 32605,32627,32606,32627 32936,32627,32961,32627 32656,32627,32827,32628 32832,32627,32931,32628 32613,32627,32651,32628 32936,32628,32970,32628 32604,32628,32608,32628 32603,32629,32609,32629 32831,32629,32930,32629 32613,32629,32647,32629 32656,32629,32826,32629 32935,32629,32970,32629 32968,32630,32968,32630 32654,32630,32826,32630 32935,32630,32965,32630 32611,32630,32649,32630 32602,32630,32609,32630 32831,32630,32929,32631 32970,32630,32970,32631 32934,32631,32964,32631 32643,32631,32826,32631 32600,32631,32639,32631 32970,32632,32971,32632 32599,32632,32638,32632 32642,32632,32826,32632 32830,32632,32928,32632 32933,32632,32964,32632 32970,32633,32980,32633 32829,32633,32927,32633 32932,32633,32963,32633 32639,32633,32825,32633 32599,32633,32636,32633 32598,32634,32634,32634 32937,32634,32962,32634 32932,32634,32935,32634 32969,32634,32972,32634 32637,32634,32825,32635 32829,32634,32926,32635 32938,32635,32962,32635 32932,32635,32934,32635 32596,32635,32635,32635 32967,32635,32972,32635 32967,32636,32971,32636 32830,32636,32926,32636 32943,32636,32957,32636 32595,32636,32825,32636 32976,32634,32980,32637 32595,32637,32826,32637 32967,32637,32970,32637 32944,32637,32956,32637 32830,32637,32923,32638 32946,32638,32955,32638 32975,32638,32981,32638 32596,32638,32826,32638 32968,32638,32969,32638 32947,32639,32953,32639 32831,32639,32922,32639 32931,32639,32934,32639 32974,32639,32982,32639 32601,32639,32826,32640 32961,32640,32965,32640 32831,32640,32920,32640 32931,32640,32935,32640 32973,32640,32982,32640 32948,32640,32952,32640 32931,32641,32938,32641 32928,32641,32929,32641 32949,32641,32951,32641 32600,32641,32826,32641 32961,32641,32966,32641 32968,32641,32982,32641 32831,32641,32918,32641 32927,32642,32941,32642 32600,32642,32610,32642 32959,32642,32982,32642 32613,32642,32825,32642 32830,32642,32917,32642 32830,32643,32913,32643 32926,32643,32942,32643 32615,32643,32824,32643 32600,32643,32609,32643 32958,32643,32986,32644 32615,32644,32621,32644 32925,32644,32943,32644 32625,32644,32824,32644 32600,32644,32607,32644 32830,32644,32911,32644 32957,32645,32986,32645 32596,32645,32605,32645 32924,32645,32944,32645 32616,32645,32620,32645 32828,32645,32911,32645 32626,32645,32824,32645 32950,32642,32950,32646 32592,32646,32593,32646 32595,32646,32605,32646 32627,32646,32823,32646 32956,32646,32986,32646 32617,32646,32619,32646 32924,32646,32945,32646 32828,32646,32910,32646 32617,32647,32618,32647 32591,32647,32605,32647 32827,32647,32909,32647 32628,32647,32823,32647 32572,32647,32575,32647 32921,32647,32986,32647 32590,32648,32604,32648 32827,32648,32908,32648 32919,32648,32986,32648 32568,32648,32577,32648 32629,32648,32823,32649 32562,32649,32582,32649 32590,32649,32603,32649 32917,32649,32986,32649 32827,32649,32907,32649 32827,32650,32906,32650 32629,32650,32822,32650 32561,32650,32602,32650 32916,32650,32986,32651 32561,32651,32601,32651 32630,32651,32822,32651 32827,32651,32904,32651 32827,32652,32903,32652 32562,32652,32601,32652 32914,32652,32977,32652 32562,32653,32600,32653 32913,32653,32976,32653 32826,32653,32902,32653 32826,32654,32901,32654 32912,32654,32976,32654 32631,32652,32822,32655 32562,32654,32599,32655 32911,32655,32976,32655 32608,32651,32615,32656 32826,32655,32900,32656 32910,32656,32976,32656 32562,32656,32600,32656 32630,32656,32822,32656 32909,32657,32978,32657 32630,32657,32821,32657 32826,32657,32899,32657 32563,32657,32600,32657 32908,32658,32978,32658 32630,32658,32820,32658 32826,32658,32898,32658 32609,32657,32616,32659 32565,32658,32600,32659 32907,32659,32978,32659 32825,32659,32897,32659 32629,32659,32820,32659 32566,32660,32600,32660 32611,32660,32617,32660 32628,32660,32819,32660 32907,32660,32980,32660 32824,32660,32897,32661 32906,32661,32981,32661 32573,32661,32599,32661 32612,32661,32617,32661 32566,32661,32569,32661 32627,32661,32818,32661 32627,32662,32817,32662 32823,32662,32896,32662 32574,32662,32598,32662 32567,32662,32568,32662 32612,32662,32619,32662 32905,32662,32981,32662 32823,32663,32897,32663 32613,32663,32621,32663 32575,32663,32598,32663 32623,32663,32816,32663 32904,32663,32983,32664 32614,32664,32816,32664 32821,32664,32897,32664 32575,32664,32597,32664 32614,32665,32815,32665 32820,32665,32897,32665 32905,32665,32983,32666 32575,32665,32596,32666 32614,32666,32814,32666 32820,32666,32898,32667 32610,32667,32814,32667 32905,32667,32985,32667 32575,32667,32597,32667 32573,32668,32597,32668 32819,32668,32898,32668 32608,32668,32814,32668 32905,32668,32986,32668 32818,32669,32898,32669 32572,32669,32598,32670 32607,32669,32813,32670 32905,32669,32931,32671 32967,32669,32986,32671 32818,32670,32896,32671 32572,32671,32599,32671 32602,32671,32661,32671 32663,32671,32813,32671 32817,32672,32895,32672 32664,32672,32813,32672 32561,32672,32562,32672 32572,32672,32661,32672 32904,32672,32931,32673 32817,32673,32894,32673 32560,32673,32568,32673 32589,32673,32661,32673 32572,32673,32586,32673 32664,32673,32811,32674 32572,32674,32585,32674 32904,32674,32923,32674 32589,32674,32662,32674 32550,32674,32555,32674 32817,32674,32893,32674 32967,32672,32985,32675 32560,32674,32569,32675 32571,32675,32585,32675 32548,32675,32558,32675 32816,32675,32890,32675 32590,32675,32811,32675 32903,32675,32923,32675 32589,32676,32811,32676 32815,32676,32889,32676 32967,32676,32986,32676 32547,32676,32587,32676 32902,32676,32923,32677 32815,32677,32888,32677 32967,32677,32987,32677 32546,32677,32811,32678 32815,32678,32887,32678 32901,32678,32923,32678 32816,32679,32886,32679 32900,32679,32923,32679 32547,32679,32811,32679 32817,32680,32884,32680 32549,32680,32811,32680 32897,32680,32923,32680 32896,32681,32923,32681 32549,32681,32812,32681 32967,32678,32988,32682 32818,32681,32884,32682 32894,32682,32923,32682 32549,32682,32813,32682 32818,32683,32882,32683 32893,32683,32931,32683 32549,32683,32814,32683 32967,32683,32989,32684 32550,32684,32551,32684 32819,32684,32882,32684 32553,32684,32814,32685 32892,32684,32931,32685 32819,32685,32879,32686 32967,32685,32990,32686 32890,32686,32931,32686 32551,32686,32815,32686 32889,32687,32931,32687 32550,32687,32815,32687 32967,32687,32991,32688 32819,32687,32878,32688 32549,32688,32815,32688 32888,32688,32931,32688 32548,32689,32814,32689 32967,32689,32993,32690 32819,32689,32877,32690 32547,32690,32813,32690 32885,32689,32931,32691 32818,32691,32876,32691 32546,32691,32813,32691 32967,32691,32994,32691 32625,32692,32813,32692 32967,32692,32995,32692 32818,32692,32875,32692 32546,32692,32623,32693 32884,32692,32931,32693 32967,32693,32996,32693 32625,32693,32812,32693 32817,32693,32875,32694 32884,32694,32996,32694 32546,32694,32622,32694 32624,32694,32810,32694 32546,32695,32621,32695 32816,32695,32874,32695 32623,32695,32742,32695 32883,32695,32996,32695 32746,32695,32808,32696 32815,32696,32875,32696 32546,32696,32742,32697 32813,32697,32875,32697 32747,32697,32808,32697 32883,32696,32997,32698 32812,32698,32874,32698 32543,32698,32808,32698 32812,32699,32871,32699 32882,32699,32997,32700 32542,32699,32808,32700 32812,32700,32870,32700 32812,32701,32869,32701 32543,32701,32808,32701 32880,32701,33006,32701 32544,32702,32808,32702 32878,32702,33006,32703 32813,32702,32866,32703 32545,32703,32808,32703 32813,32704,32865,32704 32548,32704,32808,32704 32877,32704,33006,32704 32651,32705,32809,32705 32813,32705,32864,32705 32876,32705,33006,32705 32549,32705,32649,32705 32813,32706,32859,32706 32950,32706,33006,32706 32548,32706,32649,32706 32875,32706,32944,32706 32652,32706,32809,32707 32951,32707,33006,32707 32871,32707,32942,32707 32813,32707,32857,32707 32548,32707,32650,32707 32652,32708,32807,32708 32547,32708,32650,32708 32952,32708,33006,32708 32813,32708,32856,32708 32870,32708,32940,32709 32813,32709,32855,32709 32952,32709,33001,32709 32530,32709,32532,32709 32546,32709,32805,32710 32869,32710,32940,32710 32529,32710,32533,32710 32813,32710,32853,32710 32953,32710,32999,32711 32546,32711,32804,32711 32811,32711,32853,32711 32868,32711,32940,32711 32528,32711,32533,32712 32809,32712,32852,32712 32864,32712,32938,32712 32545,32712,32803,32712 32953,32712,32990,32713 32528,32713,32532,32713 32808,32713,32852,32713 32861,32713,32934,32713 32952,32714,32990,32714 32860,32714,32934,32714 32528,32714,32533,32714 32807,32714,32852,32715 32527,32715,32536,32715 32544,32713,32803,32716 32951,32715,32990,32716 32859,32715,32934,32716 32527,32716,32541,32716 32807,32716,32851,32716 32528,32717,32803,32717 32807,32717,32849,32717 32859,32717,32932,32718 32950,32717,32990,32718 32807,32718,32848,32718 32529,32718,32803,32718 32950,32719,32992,32719 32807,32719,32845,32719 32858,32719,32932,32719 32528,32719,32802,32720 32950,32720,32991,32720 32858,32720,32931,32720 32807,32720,32846,32721 32634,32721,32802,32721 32528,32721,32619,32721 32949,32721,32990,32721 32859,32721,32931,32722 32528,32722,32613,32722 32807,32722,32845,32722 32949,32722,32989,32723 32858,32723,32862,32723 32995,32723,32996,32723 32867,32723,32932,32723 32529,32723,32530,32723 32806,32723,32841,32723 32532,32723,32601,32723 32806,32724,32839,32724 32994,32724,33000,32724 32534,32724,32601,32724 32869,32724,32932,32724 32858,32724,32861,32724 32948,32724,32989,32724 32806,32725,32838,32725 32871,32725,32932,32725 32533,32725,32601,32725 32992,32725,33002,32725 32634,32722,32801,32726 32947,32725,32988,32726 32872,32726,32933,32726 32532,32726,32601,32726 32805,32726,32838,32726 32991,32726,33003,32727 32805,32727,32837,32727 32851,32727,32852,32727 32946,32727,32986,32727 32874,32727,32933,32727 32848,32728,32853,32728 32990,32728,33004,32728 32864,32728,32865,32728 32874,32728,32932,32728 32945,32728,32986,32728 32805,32728,32835,32728 32676,32727,32800,32729 32804,32729,32833,32729 32848,32729,32858,32729 32863,32729,32867,32729 32938,32729,32987,32729 32874,32729,32931,32729 32531,32727,32601,32730 32634,32727,32662,32730 32989,32729,33004,32730 32845,32730,32868,32730 32937,32730,32987,32730 32830,32730,32832,32730 32875,32730,32931,32730 32804,32730,32822,32730 32676,32730,32799,32731 32842,32731,32869,32731 32875,32731,32930,32731 32936,32731,32986,32731 32639,32731,32662,32731 32532,32731,32601,32731 32804,32731,32815,32731 32989,32731,33005,32732 32804,32732,32814,32732 32876,32732,32930,32732 32534,32732,32601,32732 32935,32732,32986,32732 32840,32732,32869,32732 32676,32732,32798,32733 32989,32733,33006,32733 32534,32733,32539,32733 32935,32733,32985,32733 32803,32733,32812,32733 32839,32733,32869,32733 32542,32733,32603,32733 32877,32733,32929,32734 32803,32734,32811,32734 32934,32734,32984,32734 32543,32734,32603,32734 32534,32734,32538,32734 32825,32730,32825,32735 32988,32734,33006,32735 32838,32734,32870,32735 32878,32735,32929,32735 32535,32735,32537,32735 32803,32735,32810,32735 32827,32735,32828,32735 32934,32735,32983,32735 32837,32736,32872,32736 32987,32736,33006,32736 32878,32736,32928,32736 32804,32736,32809,32736 32824,32736,32831,32736 32934,32736,32982,32736 32650,32732,32662,32737 32676,32734,32797,32737 32542,32735,32603,32737 32986,32737,33006,32737 32822,32737,32872,32737 32933,32737,32981,32737 32879,32737,32928,32737 32805,32737,32809,32737 32984,32738,33007,32738 32542,32738,32602,32738 32650,32738,32656,32738 32806,32738,32808,32738 32933,32738,32980,32738 32677,32738,32796,32738 32821,32738,32873,32738 32880,32738,32927,32738 32933,32739,32978,32739 32888,32739,32926,32739 32983,32739,33007,32739 32819,32739,32874,32739 32542,32739,32588,32739 32880,32739,32883,32739 32881,32740,32882,32740 32543,32740,32578,32740 32932,32740,32976,32740 32817,32740,32874,32740 32891,32740,32925,32740 32982,32740,33007,32740 32980,32741,33007,32741 32816,32741,32875,32741 32544,32741,32578,32741 32931,32741,32975,32741 32693,32739,32794,32742 32894,32741,32924,32742 32978,32742,33007,32742 32930,32742,32974,32742 32815,32742,32875,32742 32897,32743,32923,32743 32929,32743,32973,32743 32814,32743,32876,32743 32977,32743,33007,32743 32898,32744,32922,32744 32813,32744,32877,32744 32884,32744,32888,32744 32693,32743,32795,32745 32976,32744,33007,32745 32928,32744,32972,32745 32813,32745,32890,32745 32898,32745,32920,32745 32898,32746,32919,32746 32975,32746,33007,32746 32804,32746,32807,32746 32927,32746,32972,32746 32810,32746,32892,32746 32693,32746,32794,32747 32926,32747,32971,32747 32975,32747,33006,32747 32898,32747,32918,32747 32803,32747,32893,32747 32545,32742,32578,32748 32802,32748,32893,32748 32693,32748,32796,32748 32925,32748,32970,32748 32899,32748,32917,32748 32974,32748,33006,32749 32802,32749,32894,32749 32924,32749,32970,32749 32908,32749,32916,32749 32544,32749,32578,32749 32901,32749,32902,32749 32695,32749,32796,32749 32697,32750,32717,32750 32722,32750,32795,32750 32803,32750,32894,32750 32923,32750,32970,32750 32543,32750,32570,32750 32909,32750,32915,32751 32754,32751,32795,32751 32749,32751,32750,32751 32698,32751,32704,32751 32922,32751,32970,32751 32725,32751,32741,32751 32710,32751,32715,32751 32803,32751,32895,32751 32542,32751,32570,32752 32726,32752,32740,32752 32712,32752,32714,32752 32755,32752,32794,32752 32803,32752,32896,32752 32921,32752,32970,32752 32973,32750,33006,32753 32802,32753,32897,32753 32549,32753,32570,32753 32726,32753,32739,32753 32902,32753,32903,32753 32920,32753,32969,32753 32758,32753,32774,32753 32784,32753,32793,32753 32909,32752,32914,32754 32920,32754,32968,32754 32801,32754,32903,32754 32727,32754,32737,32754 32784,32754,32791,32754 32552,32754,32570,32754 32759,32754,32767,32754 32972,32754,33004,32754 32761,32755,32765,32755 32730,32755,32736,32755 32971,32755,33004,32755 32554,32755,32570,32755 32785,32755,32790,32755 32910,32755,32914,32755 32921,32755,32967,32755 32801,32755,32904,32755 32719,32756,32721,32756 32556,32756,32570,32756 32800,32756,32904,32756 32971,32756,33003,32756 32731,32756,32732,32756 32762,32756,32764,32756 32921,32756,32966,32756 32910,32756,32915,32757 32558,32757,32570,32757 32969,32757,33002,32757 32921,32757,32965,32757 32718,32757,32722,32757 32747,32757,32750,32757 32799,32757,32904,32758 32746,32758,32751,32758 32911,32758,32914,32758 32559,32758,32570,32758 32706,32758,32709,32758 32717,32758,32723,32758 32921,32758,32964,32758 32968,32758,33001,32758 32776,32759,32779,32759 32911,32759,32913,32759 32967,32759,33000,32759 32745,32759,32753,32759 32705,32759,32723,32759 32799,32759,32905,32759 32920,32759,32963,32759 32560,32759,32570,32759 32561,32760,32570,32760 32919,32760,32962,32760 32704,32760,32726,32760 32744,32760,32754,32760 32773,32760,32780,32760 32966,32760,32998,32760 32798,32760,32905,32760 32789,32756,32789,32761 32562,32761,32570,32761 32703,32761,32727,32761 32699,32761,32701,32761 32918,32761,32961,32761 32965,32761,32998,32761 32743,32761,32754,32761 32772,32761,32780,32761 32795,32761,32906,32761 32964,32762,32998,32762 32770,32762,32782,32762 32735,32762,32736,32762 32698,32762,32730,32762 32562,32762,32569,32762 32788,32762,32906,32762 32917,32762,32960,32762 32741,32762,32755,32762 32564,32763,32569,32763 32963,32763,32998,32763 32769,32763,32907,32763 32915,32763,32960,32763 32698,32763,32757,32763 32914,32764,32959,32764 32963,32764,33000,32764 32698,32764,32909,32764 32963,32765,32998,32765 33001,32765,33002,32765 32962,32766,32998,32766 33001,32766,33004,32766 32698,32765,32959,32767 33004,32767,33004,32767 32962,32767,32997,32768 33003,32768,33004,32768 32962,32769,32996,32769 32698,32768,32958,32770 32961,32770,32994,32770 32961,32771,32993,32771 32699,32771,32958,32771 32961,32772,32991,32772 32699,32772,32957,32772 32961,32773,32989,32773 32700,32773,32956,32773 32696,32774,32955,32774 32960,32774,32988,32774 32688,32775,32955,32775 32959,32775,32987,32775 32687,32776,32955,32776 32685,32777,32955,32777 32959,32776,32986,32778 32683,32778,32956,32778 32682,32779,32956,32779 32959,32779,32985,32780 32682,32780,32955,32781 32959,32781,32984,32781 32958,32782,32983,32782 32682,32782,32954,32783 32957,32783,32981,32783 32676,32784,32954,32784 32957,32784,32980,32784 32676,32785,32980,32785 32675,32786,32954,32786 32957,32786,32978,32786 32957,32787,32977,32788 32673,32787,32954,32788 32957,32789,32975,32789 32673,32789,32953,32790 32956,32790,32974,32791 32673,32791,32952,32792 32955,32792,32972,32793 32598,32794,32601,32794 32673,32793,32951,32795 32954,32794,32969,32795 32595,32795,32601,32795 32954,32796,32967,32796 32595,32796,32614,32796 32954,32797,32966,32797 32595,32797,32615,32797 32673,32796,32950,32798 32594,32798,32615,32798 32565,32798,32574,32798 32953,32798,32965,32798 32953,32799,32964,32799 32673,32799,32949,32799 32565,32799,32585,32800 32673,32800,32947,32800 32953,32800,32963,32800 32952,32801,32961,32801 32673,32801,32946,32801 32643,32795,32656,32802 32592,32799,32627,32802 32565,32801,32586,32802 32950,32802,32960,32802 32673,32802,32945,32803 32949,32803,32959,32803 32565,32803,32656,32803 32948,32804,32958,32805 32948,32806,32957,32806 32948,32807,32955,32807 32949,32808,32951,32809 32949,32810,32950,32810 32565,32804,32945,32813 32564,32814,32944,32814 32558,32815,32944,32815 32545,32815,32550,32815 32544,32816,32550,32816 32557,32816,32943,32816 32543,32817,32863,32817 32867,32817,32942,32817 32868,32818,32868,32818 32872,32818,32941,32818 32542,32818,32862,32818 32874,32819,32940,32819 32542,32819,32860,32819 32875,32820,32940,32820 32543,32820,32858,32820 32876,32821,32940,32821 32542,32821,32857,32821 32541,32822,32856,32822 32878,32822,32940,32822 32541,32823,32855,32823 32878,32823,32939,32823 32537,32823,32539,32823 32531,32823,32534,32823 32879,32824,32938,32824 32530,32824,32854,32825 32881,32825,32938,32825 32881,32826,32937,32826 32530,32826,32853,32826 32882,32827,32936,32827 32530,32827,32852,32827 32883,32828,32935,32828 32883,32829,32934,32829 32529,32828,32851,32830 32883,32830,32933,32830 32530,32831,32851,32831 32883,32831,32932,32831 32531,32832,32851,32832 32881,32832,32931,32832 32532,32833,32851,32833 32881,32833,32930,32833 32882,32834,32929,32834 32535,32834,32852,32834 32534,32835,32852,32835 32882,32835,32928,32836 32533,32836,32852,32836 32882,32837,32927,32837 32532,32837,32852,32838 32881,32838,32926,32838 32532,32839,32854,32839 32880,32839,32924,32840 32533,32840,32854,32840 32880,32841,32923,32841 32534,32841,32855,32842 32880,32842,32921,32842 32880,32843,32917,32843 32535,32843,32857,32843 32536,32844,32858,32844 32876,32844,32914,32844 32875,32845,32912,32845 32536,32845,32860,32845 32870,32846,32911,32846 32536,32846,32861,32846 32866,32847,32911,32847 32537,32847,32861,32848 32865,32848,32911,32848 32538,32849,32910,32849 32539,32850,32908,32851 32539,32852,32905,32854 32538,32855,32904,32855 32537,32856,32903,32856 32537,32857,32902,32857 32536,32858,32901,32859 32537,32860,32896,32860 32550,32861,32893,32861 32551,32862,32558,32862 32560,32862,32892,32862 32561,32863,32891,32863 32551,32863,32557,32864 32563,32864,32891,32864 32551,32865,32558,32865 32562,32865,32890,32866 32552,32866,32558,32866 32554,32867,32557,32867 32563,32867,32889,32867 32564,32868,32888,32868 32564,32869,32887,32869 32557,32868,32560,32870 32564,32870,32886,32870 32562,32871,32885,32871 32557,32871,32559,32871 32561,32872,32884,32872 32561,32873,32883,32873 32562,32874,32882,32874 32561,32875,32881,32875 32561,32876,32880,32876 32596,32877,32880,32877 32562,32877,32567,32877 32570,32877,32591,32878 32878,32878,32879,32878 32597,32878,32876,32879 32587,32879,32591,32879 32570,32879,32585,32880 32589,32880,32590,32880 32598,32880,32875,32880 32571,32881,32584,32881 32600,32881,32874,32881 32600,32882,32873,32882 32573,32882,32582,32882 32601,32883,32612,32883 32572,32883,32578,32883 32614,32883,32873,32883 32877,32883,32879,32883 32580,32883,32581,32883 32572,32884,32576,32884 32614,32884,32872,32884 32602,32884,32609,32884 32875,32884,32880,32884 32606,32885,32608,32885 32573,32885,32576,32885 32574,32886,32575,32886 32614,32885,32881,32888 32614,32889,32880,32889 32614,32890,32879,32890 32614,32891,32876,32891 32615,32892,32877,32893 32615,32894,32878,32894 32615,32895,32618,32895 32620,32895,32878,32896 32616,32896,32617,32896 32607,32897,32608,32897 32621,32897,32877,32897 32600,32897,32601,32897 32621,32898,32874,32898 32599,32898,32602,32898 32606,32898,32609,32898 32621,32899,32871,32899 32599,32899,32609,32899 32600,32900,32609,32900 32616,32900,32870,32900 32868,32901,32869,32901 32603,32901,32610,32901 32613,32901,32866,32901 32601,32902,32865,32902 32862,32903,32863,32903 32600,32903,32860,32903 32599,32904,32859,32904 32599,32905,32856,32905 32600,32906,32853,32906 32601,32907,32853,32907 32598,32908,32852,32908 32597,32909,32852,32911 32596,32912,32851,32913 32596,32914,32850,32914 32604,32915,32847,32915 32595,32915,32600,32916 32605,32916,32847,32916 32608,32917,32847,32917 32595,32917,32599,32917 32844,32918,32846,32918 32609,32918,32840,32918 32596,32918,32598,32918 32620,32919,32840,32919 32608,32919,32618,32919 32844,32919,32847,32920 32624,32920,32840,32920 32845,32921,32846,32921 32608,32920,32617,32922 32623,32921,32840,32922 32621,32923,32839,32923 32609,32923,32610,32923 32612,32923,32616,32923 32837,32924,32838,32924 32829,32924,32834,32924 32620,32924,32824,32924 32620,32925,32820,32925 32830,32925,32832,32925 32621,32926,32821,32927 32632,32928,32821,32928 32621,32928,32630,32928 32633,32929,32822,32929 32622,32929,32630,32930 32635,32930,32822,32930 32628,32931,32629,32931 32623,32931,32624,32931 32636,32931,32822,32931 32635,32932,32646,32932 32651,32932,32822,32933 32635,32933,32645,32933 32636,32934,32642,32934 32652,32934,32823,32934 32653,32935,32823,32935 32637,32935,32638,32935 32653,32936,32822,32936 32653,32937,32821,32937 32654,32938,32821,32938 32657,32939,32763,32939 32765,32939,32821,32939 32788,32940,32820,32940 32657,32940,32761,32940 32765,32940,32785,32940 32788,32941,32818,32941 32766,32941,32785,32941 32657,32941,32758,32941 32789,32942,32818,32942 32657,32942,32755,32942 32767,32942,32772,32942 32774,32942,32785,32942 32790,32943,32794,32943 32769,32943,32771,32943 32657,32943,32745,32943 32775,32943,32784,32943 32748,32943,32754,32943 32797,32943,32818,32943 32782,32944,32783,32944 32657,32944,32744,32944 32797,32944,32817,32944 32749,32944,32754,32944 32751,32945,32753,32945 32658,32945,32744,32945 32659,32946,32743,32946 32796,32945,32816,32947 32660,32947,32670,32947 32673,32947,32740,32947 32663,32948,32669,32948 32796,32948,32819,32948 32674,32948,32740,32949 32667,32949,32668,32949 32664,32949,32665,32949 32797,32949,32820,32950 32798,32951,32819,32951 32674,32950,32739,32952 32799,32952,32818,32952 32802,32953,32817,32953 32737,32953,32738,32953 32674,32953,32735,32953 32675,32954,32734,32954 32802,32954,32818,32954 32727,32955,32729,32955 32806,32955,32818,32955 32803,32955,32804,32955 32675,32955,32724,32956 32808,32956,32818,32956 32810,32957,32817,32957 32676,32957,32724,32957 32680,32958,32724,32958 32679,32959,32723,32959 32679,32960,32722,32960 32679,32961,32723,32961 32683,32962,32724,32962 32677,32962,32681,32962 32676,32963,32724,32963 32676,32964,32723,32964 32676,32965,32721,32965 32683,32966,32721,32966 32676,32966,32680,32966 32684,32967,32720,32967 32677,32967,32678,32967 32686,32968,32719,32968 32687,32969,32718,32969 32691,32970,32717,32970 32692,32971,32717,32971 32695,32972,32710,32972 32712,32972,32717,32972 32696,32973,32709,32973 32713,32973,32716,32973 32699,32974,32708,32974 32701,32975,32708,32975 32706,32976,32707,32976 32702,32976,32704,32976", + }, + [94] = { -- Vandura Cultist Hideout (712 tiles, 68 rects) + name = "Vandura Cultist Hideout", + mainArea = 17, + bbox = { x1 = 32409, y1 = 32754, x2 = 32453, y2 = 32824 }, + rects = "32420,32754,32421,32754 32419,32755,32421,32755 32417,32756,32422,32756 32415,32757,32423,32757 32415,32758,32424,32758 32413,32759,32424,32759 32413,32760,32425,32760 32445,32763,32446,32763 32452,32763,32453,32763 32414,32761,32425,32764 32443,32764,32453,32764 32442,32765,32453,32766 32414,32765,32426,32768 32441,32767,32452,32768 32415,32769,32422,32769 32425,32769,32427,32769 32440,32769,32451,32770 32416,32770,32421,32770 32426,32770,32428,32770 32447,32771,32450,32771 32417,32771,32420,32771 32425,32771,32442,32772 32429,32773,32442,32773 32437,32774,32442,32775 32437,32776,32441,32776 32437,32777,32440,32778 32412,32778,32415,32778 32411,32779,32419,32779 32440,32779,32440,32779 32436,32779,32438,32779 32411,32780,32421,32780 32435,32780,32438,32781 32410,32781,32422,32781 32409,32782,32424,32782 32435,32782,32437,32783 32409,32783,32425,32783 32409,32784,32437,32784 32409,32785,32436,32785 32424,32786,32436,32786 32409,32786,32417,32786 32409,32787,32416,32787 32429,32787,32435,32787 32411,32788,32415,32788 32413,32789,32413,32789 32430,32788,32432,32790 32430,32791,32433,32791 32429,32792,32433,32792 32429,32793,32434,32793 32428,32794,32435,32794 32428,32795,32436,32795 32426,32796,32437,32798 32425,32799,32436,32799 32426,32800,32435,32800 32428,32801,32434,32801 32430,32802,32433,32803 32432,32804,32433,32807 32431,32808,32437,32808 32426,32809,32431,32809 32435,32809,32437,32810 32424,32810,32431,32810 32425,32811,32431,32811 32434,32811,32436,32811 32427,32812,32427,32812 32434,32812,32435,32812 32433,32816,32433,32821 32431,32822,32433,32822 32432,32823,32435,32823 32433,32824,32436,32824", + }, + [95] = { -- Liberty Bay Surroundings (30795 tiles, 491 rects) + name = "Liberty Bay Surroundings", + mainArea = 17, + bbox = { x1 = 32153, y1 = 32676, x2 = 32461, y2 = 32894 }, + rects = "32252,32676,32254,32676 32257,32676,32258,32676 32251,32677,32260,32677 32250,32678,32261,32680 32251,32681,32261,32681 32253,32682,32262,32682 32243,32682,32247,32682 32230,32682,32231,32682 32241,32683,32248,32683 32283,32683,32286,32683 32255,32683,32262,32683 32229,32683,32232,32683 32278,32684,32287,32684 32226,32684,32232,32684 32240,32684,32248,32684 32254,32684,32264,32684 32237,32685,32265,32685 32277,32685,32288,32685 32225,32685,32234,32685 32225,32686,32265,32686 32277,32686,32289,32687 32384,32687,32385,32687 32225,32687,32266,32687 32225,32688,32267,32688 32382,32688,32387,32688 32278,32688,32290,32689 32292,32689,32298,32689 32223,32689,32267,32689 32381,32689,32388,32689 32347,32689,32348,32689 32380,32690,32388,32690 32277,32690,32299,32690 32222,32690,32267,32690 32346,32690,32349,32691 32221,32691,32267,32691 32275,32691,32299,32691 32378,32691,32388,32691 32220,32692,32266,32692 32374,32692,32375,32692 32346,32692,32350,32692 32269,32692,32272,32692 32377,32692,32387,32692 32274,32692,32299,32692 32373,32693,32387,32693 32220,32693,32299,32695 32345,32693,32350,32695 32372,32694,32387,32695 32345,32696,32352,32696 32221,32696,32302,32696 32372,32696,32391,32696 32223,32697,32303,32697 32372,32697,32394,32697 32345,32697,32355,32697 32193,32697,32194,32697 32372,32698,32395,32698 32192,32698,32195,32698 32345,32698,32356,32698 32224,32698,32304,32698 32347,32699,32356,32699 32191,32699,32195,32699 32223,32699,32304,32699 32372,32699,32396,32700 32307,32700,32308,32700 32206,32700,32210,32700 32223,32700,32305,32700 32348,32700,32356,32701 32191,32700,32196,32701 32223,32701,32310,32701 32203,32701,32211,32701 32316,32701,32316,32701 32361,32701,32363,32701 32373,32701,32395,32701 32346,32702,32358,32702 32375,32702,32395,32702 32315,32702,32318,32702 32202,32702,32211,32702 32360,32702,32365,32702 32192,32702,32198,32702 32223,32702,32311,32702 32194,32703,32211,32703 32375,32703,32397,32703 32222,32703,32319,32704 32407,32704,32408,32704 32374,32704,32398,32704 32346,32703,32366,32705 32195,32704,32210,32705 32214,32705,32215,32705 32406,32705,32409,32705 32411,32705,32412,32705 32374,32705,32399,32705 32371,32706,32413,32706 32342,32706,32367,32706 32223,32705,32318,32707 32195,32706,32216,32707 32370,32707,32387,32707 32399,32707,32413,32707 32341,32707,32368,32707 32396,32707,32396,32707 32223,32708,32387,32708 32196,32708,32215,32708 32220,32708,32221,32708 32399,32708,32414,32708 32219,32709,32388,32709 32421,32709,32422,32709 32390,32709,32396,32709 32399,32709,32415,32710 32196,32709,32216,32710 32420,32710,32424,32710 32218,32710,32387,32710 32193,32711,32387,32711 32399,32711,32416,32711 32419,32711,32425,32713 32192,32712,32387,32713 32399,32712,32417,32713 32399,32714,32424,32714 32396,32710,32396,32715 32193,32714,32387,32715 32399,32715,32423,32715 32179,32715,32180,32715 32186,32715,32187,32715 32178,32716,32183,32716 32193,32716,32424,32716 32185,32716,32188,32716 32178,32717,32426,32717 32179,32718,32429,32718 32180,32719,32430,32719 32173,32720,32430,32720 32172,32721,32429,32721 32171,32722,32428,32722 32170,32723,32427,32724 32170,32725,32428,32725 32171,32726,32428,32726 32445,32726,32446,32726 32173,32727,32428,32727 32444,32727,32447,32727 32443,32728,32448,32728 32172,32728,32428,32728 32293,32729,32427,32729 32442,32729,32449,32729 32171,32729,32291,32729 32294,32730,32425,32730 32442,32730,32450,32730 32170,32730,32292,32730 32170,32731,32432,32731 32443,32731,32450,32732 32171,32732,32433,32732 32176,32733,32433,32733 32444,32733,32450,32733 32444,32734,32451,32734 32177,32734,32432,32734 32437,32735,32438,32735 32443,32735,32451,32735 32176,32735,32432,32735 32176,32736,32433,32736 32442,32736,32452,32736 32436,32736,32440,32736 32176,32737,32452,32737 32177,32738,32451,32739 32177,32740,32344,32740 32346,32740,32451,32740 32175,32741,32452,32741 32174,32742,32452,32743 32174,32744,32451,32744 32162,32745,32163,32745 32173,32745,32450,32745 32161,32746,32165,32746 32173,32746,32444,32747 32161,32747,32167,32747 32160,32748,32168,32748 32171,32748,32445,32748 32159,32749,32168,32749 32170,32749,32268,32749 32270,32749,32445,32749 32323,32750,32444,32750 32158,32750,32310,32750 32327,32751,32443,32751 32158,32751,32273,32751 32334,32752,32445,32752 32158,32752,32271,32752 32159,32753,32265,32753 32340,32753,32446,32753 32342,32754,32419,32754 32161,32754,32265,32754 32422,32754,32446,32754 32422,32755,32447,32755 32344,32755,32418,32755 32161,32755,32264,32755 32346,32756,32416,32756 32423,32756,32448,32756 32162,32756,32263,32757 32424,32757,32448,32757 32347,32757,32414,32757 32348,32758,32414,32758 32425,32758,32448,32758 32450,32758,32453,32758 32163,32758,32263,32759 32425,32759,32457,32759 32349,32759,32412,32759 32350,32760,32412,32760 32164,32760,32262,32760 32426,32760,32458,32760 32426,32761,32459,32761 32350,32761,32413,32761 32165,32761,32262,32761 32165,32762,32261,32762 32426,32762,32460,32762 32351,32762,32413,32762 32426,32763,32444,32763 32165,32763,32260,32763 32447,32763,32451,32763 32352,32763,32413,32764 32426,32764,32442,32764 32454,32763,32460,32765 32353,32765,32413,32765 32427,32765,32441,32766 32354,32766,32413,32766 32454,32766,32459,32766 32166,32764,32260,32767 32355,32767,32413,32767 32453,32767,32459,32768 32427,32767,32440,32768 32356,32768,32413,32768 32166,32768,32259,32769 32423,32769,32424,32769 32357,32769,32414,32769 32428,32769,32439,32769 32452,32769,32459,32770 32429,32770,32439,32770 32358,32770,32415,32770 32422,32770,32425,32770 32167,32770,32258,32770 32421,32771,32424,32771 32443,32771,32446,32771 32168,32771,32256,32771 32451,32771,32458,32771 32359,32771,32416,32771 32360,32772,32424,32772 32169,32772,32255,32772 32443,32772,32458,32773 32169,32773,32254,32773 32360,32773,32428,32773 32158,32774,32162,32774 32168,32774,32254,32774 32443,32774,32457,32774 32361,32774,32436,32774 32168,32775,32253,32775 32157,32775,32163,32775 32363,32775,32436,32775 32443,32775,32454,32775 32365,32776,32436,32776 32157,32776,32164,32776 32442,32776,32454,32776 32168,32776,32252,32776 32367,32777,32436,32777 32158,32777,32251,32777 32441,32777,32455,32778 32416,32778,32436,32778 32156,32778,32251,32778 32368,32778,32411,32778 32439,32779,32439,32779 32420,32779,32435,32779 32441,32779,32454,32779 32369,32779,32410,32779 32155,32779,32251,32779 32154,32780,32251,32780 32370,32780,32410,32780 32422,32780,32434,32780 32439,32780,32455,32781 32423,32781,32434,32781 32370,32781,32409,32781 32153,32781,32251,32782 32425,32782,32434,32782 32371,32782,32408,32783 32426,32783,32434,32783 32438,32782,32454,32784 32372,32784,32408,32784 32154,32783,32250,32785 32373,32785,32408,32785 32437,32785,32454,32786 32155,32786,32157,32786 32374,32786,32408,32786 32418,32786,32423,32786 32159,32786,32250,32786 32417,32787,32428,32787 32436,32787,32453,32787 32160,32787,32250,32787 32375,32787,32408,32787 32375,32788,32410,32788 32416,32788,32429,32788 32161,32788,32250,32789 32433,32788,32454,32789 32414,32789,32429,32789 32376,32789,32412,32789 32433,32790,32457,32790 32162,32790,32250,32790 32376,32790,32429,32791 32164,32791,32250,32791 32434,32791,32458,32791 32434,32792,32450,32792 32455,32792,32458,32792 32165,32792,32250,32792 32376,32792,32428,32792 32455,32793,32459,32793 32377,32793,32428,32793 32435,32793,32447,32793 32166,32793,32250,32793 32377,32794,32427,32794 32436,32794,32446,32794 32454,32794,32459,32794 32166,32794,32249,32795 32437,32795,32445,32795 32454,32795,32460,32795 32378,32795,32427,32795 32379,32796,32425,32796 32167,32796,32249,32797 32438,32796,32445,32797 32455,32796,32461,32797 32380,32797,32425,32797 32456,32798,32460,32798 32381,32798,32425,32798 32438,32798,32446,32798 32167,32798,32248,32798 32437,32799,32446,32799 32382,32799,32424,32799 32458,32799,32459,32799 32382,32800,32425,32800 32436,32800,32445,32800 32435,32801,32444,32801 32382,32801,32427,32801 32383,32802,32429,32803 32166,32799,32248,32805 32434,32802,32445,32805 32383,32804,32431,32805 32434,32806,32440,32806 32382,32806,32431,32806 32443,32806,32444,32806 32381,32807,32431,32807 32434,32807,32439,32807 32167,32806,32248,32808 32381,32808,32430,32808 32168,32809,32248,32809 32381,32809,32425,32809 32438,32808,32438,32810 32432,32809,32434,32810 32380,32810,32423,32810 32437,32811,32438,32811 32432,32811,32433,32811 32380,32811,32424,32811 32436,32812,32437,32812 32379,32812,32426,32812 32428,32812,32433,32812 32167,32810,32248,32813 32433,32813,32435,32813 32430,32813,32431,32813 32378,32813,32428,32814 32168,32814,32249,32815 32377,32815,32434,32815 32167,32816,32249,32816 32434,32816,32435,32817 32376,32816,32432,32818 32166,32817,32249,32818 32165,32819,32249,32819 32375,32819,32432,32820 32162,32820,32250,32820 32434,32818,32434,32821 32161,32821,32250,32821 32374,32821,32432,32821 32434,32822,32436,32822 32161,32822,32224,32822 32374,32822,32430,32822 32226,32822,32250,32822 32373,32823,32431,32823 32436,32823,32437,32823 32160,32823,32251,32824 32437,32824,32437,32824 32431,32824,32432,32824 32161,32825,32251,32825 32432,32825,32437,32825 32373,32824,32423,32826 32435,32826,32436,32826 32373,32827,32424,32827 32373,32828,32427,32828 32162,32826,32251,32829 32373,32829,32428,32830 32175,32830,32251,32830 32162,32830,32172,32830 32244,32831,32251,32831 32176,32831,32241,32831 32161,32831,32171,32832 32177,32832,32241,32832 32243,32832,32251,32832 32373,32831,32427,32833 32161,32833,32170,32833 32178,32833,32251,32834 32161,32834,32171,32834 32162,32835,32171,32835 32179,32835,32251,32835 32373,32834,32428,32836 32180,32836,32251,32836 32168,32836,32170,32836 32161,32836,32163,32836 32160,32837,32163,32837 32179,32837,32251,32837 32374,32837,32428,32838 32159,32838,32164,32839 32373,32839,32430,32839 32179,32838,32250,32840 32160,32840,32164,32840 32373,32840,32431,32841 32162,32841,32163,32841 32178,32841,32249,32841 32403,32842,32430,32842 32373,32842,32400,32842 32410,32843,32428,32843 32405,32843,32408,32843 32373,32843,32375,32843 32377,32843,32400,32843 32377,32844,32399,32844 32416,32844,32422,32844 32412,32844,32414,32844 32177,32842,32249,32845 32417,32845,32418,32845 32420,32845,32421,32845 32377,32845,32398,32845 32178,32846,32249,32846 32378,32846,32398,32846 32378,32847,32399,32847 32180,32847,32249,32847 32379,32848,32401,32848 32185,32848,32247,32848 32381,32849,32402,32849 32190,32849,32247,32849 32191,32850,32247,32850 32380,32850,32403,32851 32194,32851,32247,32852 32390,32852,32398,32852 32400,32852,32403,32852 32380,32852,32385,32852 32199,32853,32247,32853 32391,32853,32398,32853 32381,32853,32384,32853 32194,32853,32197,32853 32401,32853,32402,32853 32195,32854,32196,32854 32201,32854,32247,32854 32395,32854,32397,32854 32202,32855,32248,32855 32203,32856,32248,32856 32202,32857,32248,32857 32202,32858,32227,32858 32230,32858,32248,32859 32203,32859,32204,32859 32206,32859,32227,32859 32231,32860,32248,32860 32207,32860,32226,32860 32228,32861,32248,32861 32207,32861,32225,32861 32207,32862,32248,32863 32208,32864,32248,32865 32207,32866,32248,32867 32206,32868,32248,32868 32205,32869,32249,32869 32204,32870,32219,32870 32221,32870,32249,32870 32205,32871,32249,32871 32206,32872,32249,32872 32207,32873,32249,32873 32206,32874,32249,32874 32207,32875,32249,32875 32208,32876,32249,32876 32207,32877,32249,32877 32208,32878,32249,32878 32208,32879,32232,32879 32235,32879,32249,32881 32208,32880,32230,32881 32209,32882,32230,32882 32236,32882,32249,32882 32210,32883,32224,32883 32227,32883,32230,32883 32239,32883,32249,32884 32228,32884,32229,32884 32211,32884,32218,32884 32212,32885,32217,32885 32240,32885,32249,32885 32214,32886,32217,32886 32241,32886,32249,32887 32216,32887,32217,32888 32242,32888,32249,32888 32245,32889,32249,32891 32244,32892,32249,32893 32245,32894,32249,32894", + }, + [96] = { -- Meriana (10725 tiles, 192 rects) + name = "Meriana", + mainArea = 17, + bbox = { x1 = 32272, y1 = 32524, x2 = 32402, y2 = 32659 }, + rects = "32319,32524,32320,32524 32317,32525,32321,32526 32316,32527,32330,32527 32316,32528,32332,32528 32317,32529,32332,32529 32317,32530,32333,32530 32345,32530,32346,32530 32317,32531,32334,32531 32344,32531,32347,32532 32317,32532,32335,32532 32307,32533,32311,32533 32317,32533,32336,32534 32306,32534,32312,32534 32343,32533,32347,32535 32300,32535,32301,32535 32316,32535,32336,32535 32304,32535,32313,32535 32299,32536,32337,32536 32343,32536,32348,32536 32340,32536,32340,32536 32339,32537,32341,32537 32298,32537,32337,32537 32343,32537,32349,32538 32298,32538,32341,32538 32298,32539,32349,32539 32300,32540,32349,32540 32302,32541,32351,32541 32355,32542,32360,32542 32303,32542,32352,32542 32306,32543,32363,32543 32307,32544,32364,32544 32310,32545,32365,32545 32311,32546,32370,32546 32311,32547,32373,32547 32311,32548,32374,32548 32294,32548,32295,32548 32291,32549,32296,32549 32298,32549,32299,32549 32311,32549,32375,32549 32309,32550,32375,32550 32296,32550,32300,32550 32290,32550,32291,32550 32297,32551,32302,32551 32290,32551,32290,32551 32306,32551,32376,32551 32298,32552,32376,32554 32289,32553,32289,32554 32298,32555,32375,32555 32288,32555,32289,32555 32297,32556,32375,32556 32288,32556,32290,32556 32289,32557,32291,32557 32296,32557,32379,32557 32274,32558,32275,32558 32289,32558,32380,32558 32282,32558,32286,32558 32281,32559,32381,32560 32273,32559,32276,32560 32282,32561,32380,32561 32274,32561,32277,32562 32283,32562,32379,32562 32275,32563,32379,32563 32274,32564,32381,32564 32273,32565,32382,32565 32387,32565,32388,32565 32272,32566,32389,32567 32280,32568,32388,32568 32272,32568,32276,32568 32282,32569,32383,32569 32273,32569,32274,32569 32282,32570,32381,32570 32283,32571,32381,32571 32282,32572,32381,32573 32282,32574,32377,32576 32283,32577,32377,32577 32284,32578,32377,32579 32380,32579,32380,32579 32284,32580,32381,32582 32283,32583,32382,32583 32384,32583,32388,32583 32282,32584,32387,32584 32282,32585,32385,32585 32281,32586,32384,32587 32282,32588,32383,32588 32283,32589,32381,32589 32282,32590,32381,32592 32281,32593,32385,32593 32281,32594,32386,32594 32281,32595,32387,32596 32280,32597,32387,32597 32279,32598,32389,32598 32278,32599,32390,32599 32278,32600,32391,32600 32279,32601,32391,32601 32279,32602,32390,32602 32280,32603,32391,32603 32280,32604,32392,32604 32281,32605,32392,32605 32280,32606,32393,32606 32280,32607,32394,32609 32278,32610,32398,32610 32277,32611,32399,32612 32278,32613,32399,32613 32278,32614,32400,32614 32278,32615,32335,32615 32338,32615,32400,32615 32338,32616,32394,32616 32397,32616,32399,32616 32279,32616,32287,32616 32290,32616,32330,32617 32338,32617,32392,32617 32281,32617,32285,32618 32297,32618,32330,32618 32291,32618,32295,32618 32338,32618,32397,32618 32298,32619,32330,32619 32344,32619,32398,32619 32292,32619,32294,32619 32281,32619,32284,32620 32344,32620,32399,32620 32298,32620,32329,32620 32282,32621,32283,32621 32299,32621,32329,32621 32345,32621,32400,32622 32300,32622,32329,32622 32346,32623,32400,32623 32300,32623,32327,32624 32338,32619,32342,32625 32346,32624,32401,32625 32332,32616,32336,32626 32301,32625,32327,32626 32346,32626,32402,32626 32340,32626,32340,32626 32334,32627,32334,32627 32301,32627,32325,32627 32345,32627,32402,32628 32301,32628,32323,32628 32305,32629,32323,32629 32302,32629,32303,32629 32345,32629,32401,32629 32343,32630,32402,32630 32306,32630,32323,32630 32336,32631,32402,32631 32305,32631,32323,32632 32314,32633,32323,32633 32333,32632,32402,32634 32304,32633,32312,32635 32333,32635,32401,32635 32342,32636,32400,32636 32305,32636,32311,32636 32314,32634,32322,32637 32342,32637,32396,32637 32305,32637,32310,32637 32306,32638,32310,32638 32394,32638,32395,32638 32315,32638,32322,32638 32343,32638,32389,32638 32305,32639,32309,32639 32316,32639,32322,32639 32343,32639,32388,32640 32305,32640,32308,32640 32344,32641,32387,32641 32306,32641,32307,32641 32315,32640,32322,32642 32344,32642,32386,32642 32344,32643,32385,32643 32316,32643,32327,32643 32345,32644,32384,32644 32316,32644,32332,32644 32346,32645,32385,32645 32317,32645,32336,32645 32319,32646,32336,32646 32347,32646,32386,32647 32321,32647,32336,32647 32332,32648,32336,32648 32346,32648,32386,32648 32321,32648,32328,32649 32346,32649,32350,32649 32333,32649,32336,32649 32353,32649,32386,32650 32347,32650,32349,32650 32354,32651,32385,32651 32362,32652,32386,32652 32356,32652,32360,32652 32380,32653,32382,32653 32384,32653,32387,32654 32362,32653,32375,32655 32385,32655,32386,32655 32362,32656,32374,32656 32363,32657,32372,32657 32365,32658,32371,32658 32369,32659,32370,32659", + }, + [97] = { -- Nargor (20402 tiles, 420 rects) + name = "Nargor", + mainArea = 17, + bbox = { x1 = 31893, y1 = 32771, x2 = 32087, y2 = 32972 }, + rects = "32002,32771,32005,32771 32001,32772,32006,32773 32000,32774,32007,32774 32000,32775,32008,32775 32001,32776,32009,32776 32001,32777,32010,32778 31959,32779,31960,32779 32000,32779,32010,32779 31997,32779,31998,32779 32008,32780,32009,32780 31958,32780,31961,32780 31996,32780,32006,32781 31956,32781,31961,32781 32003,32782,32005,32782 32012,32782,32013,32782 31954,32782,31963,32782 31996,32782,32001,32782 32023,32783,32024,32783 32011,32783,32014,32783 31953,32783,31966,32783 31995,32783,32000,32784 32011,32784,32016,32784 32020,32784,32025,32784 31953,32784,31967,32784 31986,32785,31987,32785 31945,32785,31948,32785 32011,32785,32025,32785 31995,32785,31999,32785 31989,32785,31992,32785 32006,32785,32007,32785 31953,32785,31972,32785 31985,32786,32002,32786 32004,32786,32009,32786 31944,32786,31949,32786 31934,32786,31935,32786 32012,32786,32025,32786 31953,32786,31974,32786 31982,32787,32025,32787 31933,32787,31937,32787 31944,32787,31979,32787 31944,32788,32027,32788 31933,32788,31940,32788 31934,32789,32028,32791 31935,32792,31937,32792 31941,32792,32028,32792 31941,32793,32029,32793 31941,32794,32030,32794 31940,32795,32030,32795 31940,32796,32029,32796 31939,32797,32029,32798 31928,32799,31932,32799 31939,32799,32028,32799 31935,32800,31936,32800 31938,32800,32028,32800 31925,32800,31933,32800 31924,32801,32028,32801 31924,32802,32027,32802 31924,32803,32026,32804 31919,32804,31920,32804 31918,32805,31921,32805 31923,32805,32026,32805 32048,32805,32050,32805 32054,32806,32057,32806 32038,32806,32043,32806 32047,32806,32052,32806 32059,32806,32062,32806 32071,32807,32072,32807 32036,32807,32044,32807 32046,32807,32067,32807 31918,32806,32026,32808 32035,32808,32073,32808 31915,32809,32025,32809 32034,32809,32073,32809 32030,32810,32073,32810 31913,32810,32024,32810 32029,32811,32074,32812 31912,32811,32025,32812 31912,32813,32075,32813 31913,32814,32077,32814 31915,32815,32080,32815 31915,32816,32081,32816 31912,32817,32082,32817 31911,32818,32082,32818 31911,32819,32081,32819 31994,32820,32080,32820 31911,32820,31990,32820 31911,32821,31988,32821 31996,32821,32077,32821 31997,32822,32078,32822 31911,32822,31987,32823 31992,32823,31993,32823 31998,32823,32080,32823 31990,32824,31994,32824 31911,32824,31985,32824 31999,32824,32081,32825 31990,32825,31995,32825 31912,32825,31984,32825 32000,32826,32081,32826 31915,32826,31983,32826 31989,32826,31996,32827 31915,32827,31982,32827 32000,32827,32082,32827 32000,32828,32061,32828 32068,32828,32082,32828 31986,32828,31996,32828 31916,32828,31981,32828 32000,32829,32060,32829 32071,32829,32081,32829 31918,32829,31981,32829 31985,32829,31995,32830 32071,32830,32080,32830 31999,32830,32059,32831 32071,32831,32078,32831 31985,32831,31993,32831 31919,32830,31981,32832 31998,32832,32058,32832 31985,32832,31992,32832 32070,32832,32078,32832 32031,32833,32058,32833 32070,32833,32079,32833 31918,32833,31981,32833 31985,32833,31991,32833 31997,32833,32026,32833 31995,32834,32024,32834 31986,32834,31989,32834 32033,32834,32058,32835 32070,32834,32080,32835 31918,32834,31982,32835 31994,32835,32022,32835 31987,32835,31988,32835 31913,32835,31914,32835 31918,32836,31983,32836 32069,32836,32080,32836 32034,32836,32058,32836 32022,32836,32022,32836 31912,32836,31915,32836 31993,32836,32020,32836 32069,32837,32079,32837 31992,32837,32020,32837 32036,32837,32059,32837 31912,32837,31984,32837 32066,32838,32080,32838 31990,32838,32019,32838 32025,32838,32028,32838 32036,32838,32060,32838 31912,32838,31985,32838 31912,32839,32018,32839 32024,32839,32029,32839 32065,32839,32080,32839 32037,32839,32060,32839 32023,32840,32030,32840 32038,32840,32080,32840 32038,32841,32079,32841 32023,32841,32031,32841 31912,32840,32017,32842 32038,32842,32077,32842 32022,32842,32031,32842 31908,32843,32016,32843 32038,32843,32078,32843 32021,32843,32032,32844 32039,32844,32082,32844 31907,32844,32016,32844 32039,32845,32083,32845 31904,32845,32016,32845 32040,32846,32084,32846 31903,32846,32016,32846 32021,32845,32033,32847 32040,32847,32086,32847 31903,32847,32017,32847 31904,32848,32017,32848 32022,32848,32032,32850 32040,32848,32087,32850 31906,32849,32017,32850 32039,32851,32087,32851 32023,32851,32031,32851 31907,32851,32017,32851 32024,32852,32031,32852 32038,32852,32087,32852 31909,32852,32018,32853 32038,32853,32086,32853 32026,32853,32027,32853 32038,32854,32080,32854 31910,32854,32018,32854 32037,32855,32080,32855 31910,32855,32019,32855 31911,32856,32020,32856 32036,32856,32080,32856 31906,32857,32022,32857 32034,32857,32079,32857 32033,32858,32077,32858 31905,32858,31983,32858 31987,32858,32022,32858 31987,32859,32025,32859 31894,32859,31898,32859 32031,32859,32076,32859 31905,32859,31968,32859 31905,32860,31965,32860 31988,32860,32075,32860 31893,32860,31899,32860 32072,32861,32074,32861 31988,32861,32069,32861 31893,32861,31963,32861 31894,32862,31962,32862 31990,32862,32068,32862 31990,32863,32067,32863 31898,32863,31962,32863 31898,32864,31960,32864 31990,32864,32068,32864 31899,32865,31957,32865 31991,32865,32068,32865 32050,32866,32067,32866 31900,32866,31957,32866 31972,32859,31983,32867 31991,32866,32046,32867 32051,32867,32060,32867 32063,32867,32066,32867 31900,32867,31955,32868 31973,32868,31982,32868 32052,32868,32056,32868 31992,32868,32045,32869 31901,32869,31955,32869 31902,32870,31955,32870 31992,32870,32046,32871 31904,32871,31955,32871 31905,32872,31954,32872 31993,32872,32046,32872 31993,32873,32042,32873 31985,32873,31986,32873 32044,32873,32045,32873 31912,32873,31954,32874 31985,32874,31987,32874 31966,32874,31967,32874 31913,32875,31954,32875 31966,32875,31968,32875 31984,32875,31988,32875 31993,32874,32041,32876 31965,32876,31969,32876 31914,32876,31954,32877 31993,32877,32040,32877 31994,32878,32040,32878 32048,32878,32049,32878 31995,32879,32039,32879 32047,32879,32050,32879 31914,32878,31953,32880 31995,32880,32041,32880 32047,32880,32051,32881 31996,32881,32042,32881 31914,32881,31952,32882 32045,32882,32051,32882 31996,32882,32043,32882 32053,32882,32055,32882 31915,32883,31952,32885 31996,32883,32056,32885 31912,32885,31913,32885 31995,32886,32055,32886 31911,32886,31952,32887 31994,32887,32054,32888 31912,32888,31953,32888 31915,32889,31953,32889 31983,32876,31989,32890 31993,32889,32054,32890 31914,32890,31954,32890 31964,32877,31970,32891 31913,32891,31954,32892 31992,32891,32054,32892 31967,32892,31967,32892 31912,32893,31955,32893 31993,32893,32054,32894 31911,32894,31955,32895 31993,32895,32053,32895 32044,32896,32052,32896 31993,32896,32042,32896 31911,32896,31956,32896 31993,32897,32041,32897 32045,32897,32052,32897 31912,32897,31926,32897 31928,32897,31956,32897 32045,32898,32051,32898 31924,32898,31925,32898 31913,32898,31922,32898 31928,32898,31957,32899 31914,32899,31919,32899 32046,32899,32049,32899 31993,32898,32042,32900 31928,32900,31958,32900 31915,32900,31919,32901 31993,32901,32041,32901 31962,32899,31968,32902 31929,32901,31958,32902 31993,32902,32040,32902 31916,32902,31919,32903 31992,32903,32038,32903 31917,32904,31918,32904 31992,32904,32037,32904 31929,32903,31959,32905 32028,32905,32037,32905 32031,32906,32036,32906 31929,32906,31960,32906 31992,32905,32025,32907 31929,32907,31962,32907 32031,32907,32034,32907 31928,32908,31964,32908 31992,32908,32024,32908 32032,32908,32033,32908 31927,32909,31965,32909 31991,32909,32024,32909 31924,32909,31925,32909 31991,32910,32023,32910 31991,32911,32027,32911 31923,32910,31965,32913 31914,32914,31966,32914 31913,32915,31966,32915 31912,32916,31967,32916 31991,32912,32028,32918 31912,32917,31968,32918 31992,32919,32027,32919 31910,32919,31969,32919 32021,32920,32024,32920 31909,32920,31970,32920 32030,32920,32034,32920 31993,32920,32017,32920 31994,32921,32003,32921 31908,32921,31971,32921 32029,32921,32035,32921 32022,32921,32024,32921 31908,32922,31972,32922 32028,32922,32035,32922 31995,32922,32003,32922 32007,32921,32016,32923 32049,32923,32051,32923 32028,32923,32034,32923 31909,32923,31972,32923 31996,32923,32002,32923 31911,32924,31973,32924 32006,32924,32016,32924 31999,32924,32001,32924 32028,32924,32033,32924 32049,32924,32052,32924 32037,32924,32039,32924 31911,32925,31974,32925 32036,32925,32039,32925 32029,32925,32032,32925 32005,32925,32015,32925 32048,32925,32052,32925 32036,32926,32040,32927 32004,32926,32015,32927 31910,32926,31974,32927 32035,32928,32040,32928 32013,32928,32014,32928 31910,32928,31975,32928 32005,32928,32011,32928 32048,32926,32053,32929 31911,32929,31975,32929 32035,32929,32042,32929 32005,32929,32010,32929 31909,32930,31975,32930 32005,32930,32009,32930 32035,32930,32053,32931 32006,32931,32008,32931 31908,32931,31975,32931 32034,32932,32053,32933 31908,32932,31974,32934 32033,32934,32053,32935 31908,32935,31973,32936 32034,32936,32053,32936 31909,32937,31973,32937 32035,32937,32052,32937 31912,32938,31973,32938 32036,32938,32052,32939 31913,32939,31972,32939 32037,32940,32052,32940 31914,32940,31973,32940 31915,32941,31973,32941 32039,32941,32051,32941 31916,32942,31973,32942 31914,32943,31972,32943 31913,32944,31966,32944 31969,32944,31973,32944 31970,32945,31973,32945 31913,32945,31967,32946 31971,32946,31972,32946 31913,32947,31966,32949 31913,32950,31969,32950 31914,32951,31970,32952 31913,32953,31969,32953 31912,32954,31972,32954 31912,32955,31973,32955 31976,32955,31978,32955 31912,32956,31979,32956 31913,32957,31979,32957 31913,32958,31958,32958 31963,32958,31979,32958 31914,32959,31957,32959 31963,32959,31978,32959 31964,32960,31975,32960 31914,32960,31956,32960 31966,32961,31975,32961 31914,32961,31955,32962 31967,32962,31975,32962 31973,32963,31974,32963 31915,32963,31955,32963 31919,32964,31955,32964 31919,32965,31954,32965 31919,32966,31925,32966 31927,32966,31954,32966 31932,32967,31939,32967 31918,32967,31924,32967 31942,32967,31954,32967 31918,32968,31923,32968 31942,32968,31953,32968 31933,32968,31939,32968 31918,32969,31922,32969 31942,32969,31954,32969 31936,32969,31939,32970 31919,32970,31922,32971 31942,32970,31955,32971 31937,32971,31938,32971 31951,32972,31954,32972 31943,32972,31949,32972 31920,32972,31921,32972", + }, + [98] = { -- Talahu (3211 tiles, 88 rects) + name = "Talahu", + mainArea = 17, + bbox = { x1 = 31920, y1 = 32624, x2 = 31986, y2 = 32693 }, + rects = "31956,32624,31957,32624 31955,32625,31958,32625 31955,32626,31962,32626 31949,32627,31953,32627 31955,32627,31965,32627 31931,32628,31932,32628 31923,32628,31924,32628 31930,32629,31934,32629 31948,32628,31966,32630 31922,32629,31925,32630 31972,32630,31973,32630 31930,32630,31935,32631 31922,32631,31924,32631 31948,32631,31974,32631 31949,32632,31976,32632 31930,32632,31934,32632 31949,32633,31979,32633 31929,32633,31935,32633 31928,32634,31936,32634 31921,32632,31924,32635 31949,32634,31980,32635 31928,32635,31937,32635 31943,32635,31944,32635 31942,32636,31945,32636 31926,32636,31938,32636 31922,32636,31924,32636 31949,32636,31981,32636 31923,32637,31938,32637 31942,32637,31946,32637 31949,32637,31982,32638 31923,32638,31947,32638 31923,32639,31982,32639 31924,32640,31981,32640 31927,32641,31980,32641 31928,32642,31980,32642 31927,32643,31980,32643 31927,32644,31979,32644 31928,32645,31979,32645 31927,32646,31978,32646 31926,32647,31978,32648 31925,32649,31978,32649 31923,32650,31978,32650 31922,32651,31978,32654 31920,32655,31978,32658 31920,32659,31981,32659 31920,32660,31982,32660 31923,32661,31982,32661 31922,32662,31982,32662 31922,32663,31981,32663 31923,32664,31979,32664 31926,32665,31978,32665 31926,32666,31977,32666 31926,32667,31981,32667 31984,32667,31985,32667 31925,32668,31986,32668 31924,32669,31986,32669 31924,32670,31985,32670 31924,32671,31984,32671 31925,32672,31984,32672 31926,32673,31983,32673 31926,32674,31982,32674 31927,32675,31982,32675 31927,32676,31981,32676 31928,32677,31981,32677 31930,32678,31980,32678 31931,32679,31972,32679 31977,32679,31979,32679 31933,32680,31972,32680 31934,32681,31972,32681 31935,32682,31972,32683 31936,32684,31972,32685 31950,32686,31972,32686 31936,32686,31948,32686 31937,32687,31938,32687 31951,32687,31972,32687 31940,32687,31947,32687 31952,32688,31962,32688 31940,32688,31944,32688 31964,32688,31972,32689 31941,32689,31942,32689 31952,32689,31961,32690 31965,32690,31972,32691 31953,32691,31961,32691 31965,32692,31971,32692 31955,32692,31960,32692 31966,32693,31967,32693 31969,32693,31970,32693 31956,32693,31958,32693", + }, + [99] = { -- Hellgorge (1043 tiles, 51 rects) + name = "Hellgorge", + mainArea = 17, + bbox = { x1 = 32044, y1 = 32586, x2 = 32086, y2 = 32627 }, + rects = "32058,32586,32059,32586 32068,32587,32070,32587 32066,32588,32073,32588 32065,32589,32075,32589 32054,32587,32059,32590 32066,32590,32076,32590 32051,32591,32059,32591 32051,32592,32060,32592 32066,32591,32077,32593 32066,32594,32076,32594 32051,32593,32061,32595 32066,32595,32074,32596 32079,32596,32081,32596 32055,32596,32061,32597 32066,32597,32073,32597 32079,32597,32083,32597 32079,32598,32084,32598 32055,32598,32072,32598 32056,32599,32072,32599 32078,32599,32085,32599 32044,32600,32051,32600 32077,32600,32085,32600 32055,32600,32072,32600 32045,32601,32085,32603 32046,32604,32086,32604 32046,32605,32078,32605 32083,32605,32086,32605 32046,32606,32076,32608 32048,32609,32078,32609 32048,32610,32079,32610 32055,32611,32082,32611 32055,32612,32083,32612 32055,32613,32084,32613 32056,32614,32084,32614 32047,32615,32049,32615 32047,32616,32050,32616 32057,32615,32084,32617 32047,32617,32051,32617 32057,32618,32069,32618 32047,32618,32052,32618 32074,32618,32083,32618 32047,32619,32069,32619 32074,32619,32082,32619 32074,32620,32081,32620 32049,32620,32069,32621 32077,32621,32077,32621 32050,32622,32069,32622 32056,32623,32069,32623 32058,32624,32069,32625 32060,32626,32068,32626 32063,32627,32067,32627", + }, + [100] = { -- Laguna Islands (11869 tiles, 464 rects) + name = "Laguna Islands", + mainArea = 17, + bbox = { x1 = 32330, y1 = 32865, x2 = 32552, y2 = 33007 }, + rects = "32488,32865,32492,32865 32472,32867,32472,32867 32479,32867,32482,32867 32471,32868,32473,32868 32478,32868,32482,32868 32484,32866,32493,32869 32471,32869,32482,32869 32470,32870,32482,32870 32484,32870,32494,32870 32484,32871,32495,32871 32467,32871,32482,32872 32487,32872,32495,32872 32467,32873,32495,32874 32468,32875,32495,32875 32498,32875,32500,32875 32461,32875,32465,32875 32461,32876,32494,32876 32497,32876,32501,32877 32460,32877,32494,32878 32496,32878,32501,32878 32458,32879,32501,32879 32457,32880,32501,32881 32457,32882,32502,32882 32458,32883,32502,32883 32459,32884,32502,32884 32460,32885,32502,32885 32469,32886,32502,32886 32460,32886,32467,32887 32470,32887,32502,32888 32460,32888,32468,32888 32456,32888,32457,32888 32483,32889,32507,32889 32455,32889,32458,32889 32460,32889,32481,32889 32486,32890,32516,32890 32455,32890,32481,32890 32487,32891,32518,32891 32456,32891,32481,32891 32487,32892,32519,32892 32459,32892,32485,32893 32501,32893,32519,32893 32487,32893,32498,32894 32503,32894,32519,32894 32460,32894,32485,32894 32373,32894,32381,32894 32505,32895,32519,32895 32372,32895,32383,32895 32488,32895,32498,32895 32461,32895,32485,32896 32400,32896,32401,32896 32488,32896,32500,32896 32503,32896,32520,32896 32371,32896,32384,32896 32371,32897,32385,32897 32462,32897,32485,32897 32488,32897,32520,32897 32399,32897,32402,32898 32367,32898,32369,32898 32462,32898,32480,32898 32371,32898,32386,32898 32487,32898,32520,32899 32366,32899,32386,32899 32462,32899,32478,32899 32352,32899,32354,32899 32359,32899,32359,32899 32393,32899,32396,32899 32399,32899,32403,32899 32480,32900,32521,32900 32461,32900,32478,32900 32366,32900,32387,32900 32344,32900,32345,32900 32351,32900,32355,32901 32392,32900,32403,32901 32358,32900,32360,32901 32461,32901,32467,32901 32363,32901,32388,32901 32469,32901,32478,32901 32343,32901,32346,32901 32480,32901,32522,32901 32350,32902,32389,32902 32461,32902,32466,32902 32342,32902,32346,32902 32392,32902,32404,32902 32510,32902,32522,32902 32480,32902,32508,32903 32392,32903,32405,32903 32349,32903,32389,32903 32342,32903,32345,32903 32511,32903,32522,32903 32462,32903,32466,32903 32470,32902,32478,32904 32392,32904,32411,32904 32511,32904,32521,32904 32343,32904,32346,32904 32463,32904,32465,32904 32480,32904,32507,32904 32349,32904,32388,32905 32343,32905,32347,32905 32510,32905,32519,32905 32480,32905,32508,32905 32471,32905,32478,32906 32392,32905,32412,32906 32480,32906,32519,32906 32343,32906,32388,32906 32472,32907,32478,32907 32392,32907,32411,32907 32480,32907,32492,32907 32497,32907,32520,32908 32342,32907,32388,32908 32472,32908,32477,32908 32480,32908,32494,32909 32473,32909,32476,32909 32499,32909,32520,32909 32343,32909,32388,32909 32392,32908,32409,32910 32481,32910,32521,32910 32343,32910,32385,32910 32390,32911,32410,32911 32343,32911,32384,32911 32480,32911,32521,32911 32387,32912,32411,32912 32344,32912,32383,32912 32479,32912,32521,32913 32386,32913,32411,32913 32344,32913,32381,32914 32415,32914,32415,32914 32480,32914,32520,32914 32385,32914,32411,32915 32363,32915,32381,32915 32345,32915,32359,32915 32481,32915,32519,32916 32414,32915,32416,32916 32385,32916,32412,32916 32348,32916,32359,32916 32361,32916,32381,32917 32385,32917,32417,32917 32350,32917,32357,32917 32481,32917,32518,32918 32351,32918,32357,32918 32359,32918,32381,32918 32390,32918,32418,32918 32353,32919,32357,32919 32394,32919,32418,32919 32481,32919,32519,32919 32359,32919,32383,32919 32395,32920,32417,32920 32366,32920,32387,32920 32483,32920,32519,32920 32361,32920,32362,32920 32395,32921,32418,32921 32353,32921,32359,32921 32484,32921,32519,32921 32523,32921,32523,32921 32522,32922,32524,32922 32511,32922,32520,32922 32395,32922,32420,32922 32353,32922,32364,32922 32487,32922,32509,32922 32366,32921,32392,32923 32395,32923,32422,32923 32350,32923,32364,32923 32488,32923,32504,32923 32511,32923,32524,32923 32343,32923,32345,32923 32507,32923,32509,32924 32342,32924,32346,32924 32369,32924,32392,32924 32395,32924,32423,32924 32349,32924,32364,32924 32488,32924,32505,32925 32395,32925,32406,32925 32410,32925,32423,32925 32425,32925,32429,32925 32342,32925,32390,32925 32511,32924,32525,32926 32410,32926,32431,32926 32488,32926,32494,32926 32394,32926,32408,32926 32497,32926,32509,32926 32341,32926,32389,32926 32518,32927,32521,32927 32410,32927,32432,32927 32392,32927,32408,32927 32489,32927,32492,32927 32511,32927,32516,32927 32340,32927,32389,32928 32499,32927,32509,32928 32511,32928,32514,32928 32392,32928,32432,32928 32337,32928,32338,32928 32460,32928,32460,32929 32340,32929,32386,32929 32499,32929,32505,32929 32336,32929,32338,32929 32393,32929,32431,32929 32458,32930,32461,32930 32498,32930,32503,32930 32340,32930,32384,32930 32393,32930,32430,32930 32335,32930,32338,32931 32498,32931,32502,32931 32344,32931,32383,32931 32457,32931,32462,32931 32392,32931,32431,32932 32349,32932,32383,32932 32455,32932,32464,32932 32344,32932,32346,32932 32336,32932,32342,32933 32454,32933,32464,32933 32498,32932,32501,32934 32391,32933,32432,32934 32350,32933,32384,32934 32336,32934,32347,32934 32453,32934,32464,32934 32337,32935,32385,32935 32452,32935,32464,32935 32390,32935,32431,32935 32451,32936,32463,32936 32337,32936,32430,32936 32337,32937,32369,32937 32450,32937,32461,32937 32373,32937,32430,32938 32338,32938,32371,32938 32450,32938,32460,32938 32450,32939,32461,32939 32451,32940,32462,32940 32338,32939,32429,32941 32452,32941,32462,32941 32453,32942,32461,32942 32337,32942,32428,32942 32456,32943,32461,32943 32336,32943,32424,32943 32457,32944,32460,32944 32336,32944,32425,32944 32334,32945,32425,32945 32331,32945,32332,32945 32330,32946,32425,32946 32330,32947,32393,32947 32397,32947,32425,32947 32399,32948,32425,32948 32367,32948,32393,32948 32331,32948,32363,32948 32367,32949,32394,32949 32527,32949,32527,32949 32350,32949,32365,32949 32430,32949,32431,32949 32399,32949,32424,32950 32371,32950,32395,32950 32346,32950,32365,32950 32429,32950,32432,32950 32331,32949,32344,32951 32526,32950,32528,32951 32522,32951,32524,32951 32371,32951,32424,32951 32429,32951,32433,32952 32346,32951,32369,32952 32332,32952,32344,32952 32521,32952,32529,32952 32375,32952,32425,32952 32513,32953,32514,32953 32504,32953,32505,32953 32427,32953,32433,32953 32521,32953,32531,32953 32333,32953,32341,32953 32343,32954,32344,32954 32503,32954,32507,32954 32334,32954,32335,32954 32512,32954,32515,32954 32520,32954,32532,32954 32536,32954,32538,32954 32346,32953,32425,32955 32519,32955,32532,32955 32535,32955,32539,32955 32427,32954,32434,32956 32339,32955,32344,32956 32503,32955,32515,32956 32519,32956,32539,32956 32348,32956,32425,32956 32339,32957,32346,32957 32519,32957,32540,32957 32351,32957,32420,32957 32503,32957,32514,32957 32427,32957,32433,32957 32422,32958,32433,32958 32339,32958,32420,32958 32518,32958,32540,32958 32543,32958,32545,32958 32503,32958,32515,32958 32339,32959,32403,32959 32422,32959,32432,32959 32504,32959,32539,32959 32406,32959,32420,32959 32340,32960,32402,32960 32423,32960,32433,32960 32505,32960,32540,32960 32407,32960,32419,32960 32542,32959,32546,32961 32506,32961,32540,32961 32339,32961,32404,32961 32423,32961,32434,32961 32408,32961,32419,32961 32408,32962,32420,32962 32511,32962,32540,32962 32422,32962,32435,32962 32338,32962,32406,32962 32543,32962,32546,32962 32544,32963,32545,32963 32511,32963,32526,32963 32530,32963,32541,32963 32338,32963,32355,32963 32360,32963,32435,32963 32359,32964,32434,32964 32511,32964,32528,32964 32531,32964,32542,32964 32339,32964,32355,32964 32506,32964,32509,32964 32338,32965,32354,32965 32501,32965,32509,32965 32358,32965,32436,32965 32516,32965,32543,32966 32358,32966,32437,32966 32498,32966,32509,32966 32338,32966,32351,32966 32496,32967,32511,32967 32359,32967,32437,32967 32339,32967,32349,32967 32516,32967,32542,32967 32386,32968,32436,32968 32344,32968,32348,32968 32495,32968,32511,32968 32516,32968,32541,32968 32359,32968,32384,32969 32495,32969,32541,32969 32389,32969,32434,32969 32440,32969,32440,32969 32495,32970,32542,32970 32389,32970,32435,32971 32359,32970,32387,32971 32546,32971,32549,32971 32495,32971,32544,32971 32439,32970,32441,32972 32495,32972,32550,32972 32389,32972,32436,32972 32495,32973,32533,32973 32389,32973,32424,32973 32359,32972,32386,32974 32535,32973,32551,32974 32430,32973,32442,32974 32494,32974,32533,32974 32426,32974,32428,32974 32388,32974,32420,32975 32366,32975,32386,32975 32360,32975,32363,32975 32494,32975,32532,32975 32537,32975,32551,32975 32436,32975,32441,32975 32430,32975,32432,32976 32493,32976,32532,32976 32534,32976,32552,32976 32366,32976,32385,32976 32388,32976,32419,32976 32437,32976,32441,32976 32364,32977,32372,32977 32439,32977,32440,32977 32490,32977,32490,32977 32492,32977,32545,32977 32376,32977,32377,32977 32430,32977,32431,32977 32422,32975,32428,32978 32388,32977,32418,32978 32548,32977,32552,32978 32503,32978,32504,32978 32489,32978,32500,32978 32506,32978,32544,32978 32361,32978,32371,32978 32379,32977,32385,32979 32549,32979,32551,32979 32506,32979,32542,32979 32489,32979,32501,32979 32360,32979,32371,32980 32388,32979,32428,32980 32508,32980,32517,32980 32380,32980,32385,32981 32519,32980,32542,32981 32489,32980,32503,32981 32391,32981,32427,32981 32506,32981,32515,32981 32360,32981,32370,32981 32489,32982,32514,32982 32361,32982,32370,32982 32520,32982,32543,32982 32380,32982,32384,32982 32393,32982,32427,32982 32519,32983,32543,32983 32398,32983,32427,32983 32364,32983,32369,32983 32393,32983,32396,32983 32491,32983,32516,32983 32379,32983,32383,32983 32412,32984,32427,32984 32400,32984,32410,32984 32394,32984,32395,32984 32518,32984,32543,32984 32379,32984,32381,32984 32492,32984,32516,32984 32492,32985,32543,32985 32412,32985,32426,32985 32379,32985,32382,32986 32493,32986,32494,32986 32496,32986,32542,32986 32408,32986,32422,32986 32497,32987,32542,32987 32380,32987,32381,32987 32408,32987,32421,32987 32399,32985,32406,32988 32410,32988,32419,32988 32497,32988,32541,32988 32400,32989,32408,32989 32497,32989,32540,32989 32416,32989,32419,32990 32497,32990,32539,32990 32401,32990,32408,32990 32402,32991,32408,32991 32417,32991,32418,32991 32498,32991,32538,32991 32410,32989,32414,32992 32499,32992,32538,32992 32404,32992,32408,32992 32500,32993,32523,32993 32525,32993,32526,32993 32410,32993,32413,32994 32529,32993,32538,32994 32405,32993,32408,32994 32510,32994,32523,32994 32500,32994,32506,32994 32511,32995,32525,32995 32527,32995,32537,32995 32404,32995,32407,32995 32501,32995,32505,32995 32411,32995,32414,32996 32403,32996,32407,32996 32511,32996,32537,32997 32412,32997,32413,32997 32402,32997,32407,32997 32512,32998,32537,32998 32402,32998,32406,32998 32507,32998,32509,32998 32403,32999,32405,32999 32502,32999,32537,32999 32501,33000,32537,33000 32501,33001,32536,33001 32501,33002,32535,33002 32506,33003,32518,33003 32521,33003,32535,33003 32501,33003,32504,33003 32523,33004,32534,33004 32508,33004,32517,33004 32502,33004,32503,33004 32509,33005,32517,33005 32525,33005,32534,33005 32511,33006,32516,33006 32526,33006,32534,33006 32527,33007,32533,33007 32512,33007,32515,33007", + }, + [101] = { -- Treasure Island (6446 tiles, 133 rects) + name = "Treasure Island", + mainArea = 17, + bbox = { x1 = 32095, y1 = 32900, x2 = 32212, y2 = 32996 }, + rects = "32136,32900,32137,32900 32135,32901,32138,32901 32121,32902,32122,32902 32120,32903,32123,32903 32135,32902,32141,32905 32120,32904,32124,32905 32106,32905,32109,32905 32119,32906,32123,32906 32105,32906,32110,32907 32119,32907,32122,32908 32134,32906,32142,32909 32105,32908,32111,32909 32126,32909,32127,32909 32120,32909,32122,32909 32120,32910,32128,32910 32106,32910,32110,32911 32134,32910,32143,32911 32120,32911,32129,32911 32106,32912,32109,32912 32147,32912,32149,32912 32121,32912,32143,32912 32106,32913,32113,32913 32121,32913,32150,32914 32105,32914,32114,32914 32117,32914,32118,32914 32105,32915,32149,32915 32103,32916,32149,32916 32102,32917,32150,32918 32102,32919,32151,32919 32103,32920,32151,32921 32101,32922,32153,32922 32100,32923,32154,32923 32100,32924,32155,32924 32186,32925,32187,32925 32101,32925,32156,32925 32103,32926,32160,32926 32185,32926,32188,32926 32103,32927,32161,32927 32184,32927,32188,32928 32102,32928,32162,32928 32101,32929,32164,32929 32176,32929,32177,32929 32180,32929,32188,32929 32191,32929,32193,32929 32101,32930,32165,32930 32175,32930,32195,32930 32174,32931,32197,32931 32101,32931,32166,32931 32102,32932,32170,32932 32174,32932,32198,32933 32103,32933,32171,32933 32103,32934,32199,32935 32104,32936,32199,32937 32103,32938,32201,32938 32102,32939,32202,32939 32102,32940,32203,32940 32103,32941,32203,32941 32102,32942,32203,32942 32101,32943,32203,32944 32101,32945,32206,32945 32096,32946,32098,32946 32100,32946,32209,32946 32095,32947,32210,32947 32095,32948,32211,32949 32096,32950,32210,32950 32109,32951,32208,32951 32097,32951,32107,32951 32102,32952,32106,32952 32109,32952,32207,32952 32104,32953,32105,32953 32109,32953,32208,32953 32110,32954,32208,32954 32110,32955,32209,32955 32109,32956,32210,32956 32108,32957,32210,32957 32105,32958,32211,32958 32104,32959,32212,32960 32104,32961,32211,32963 32100,32963,32101,32963 32209,32964,32210,32964 32099,32964,32102,32965 32105,32964,32206,32966 32100,32966,32102,32966 32100,32967,32127,32967 32135,32967,32139,32967 32142,32967,32206,32968 32101,32968,32109,32968 32112,32968,32127,32968 32113,32969,32127,32969 32143,32969,32206,32969 32104,32969,32108,32969 32143,32970,32205,32970 32104,32970,32107,32970 32113,32970,32126,32970 32105,32971,32106,32971 32142,32971,32205,32971 32114,32971,32124,32971 32115,32972,32123,32972 32141,32972,32205,32972 32115,32973,32119,32973 32140,32973,32204,32973 32140,32974,32201,32974 32115,32974,32118,32974 32116,32975,32117,32975 32141,32975,32201,32976 32142,32977,32195,32977 32137,32978,32195,32978 32197,32977,32201,32979 32136,32979,32195,32979 32198,32980,32200,32980 32136,32980,32194,32980 32137,32981,32190,32981 32142,32982,32189,32982 32143,32983,32144,32983 32149,32983,32188,32983 32150,32984,32188,32984 32151,32985,32188,32985 32161,32986,32187,32986 32153,32986,32159,32986 32152,32987,32158,32987 32165,32987,32187,32987 32152,32988,32159,32988 32165,32988,32186,32988 32153,32989,32159,32989 32165,32989,32184,32990 32153,32990,32158,32991 32165,32991,32185,32992 32154,32992,32157,32992 32166,32993,32185,32993 32167,32994,32179,32994 32181,32994,32184,32994 32167,32995,32175,32995 32168,32996,32174,32996", + }, + [102] = { -- Calassa (141 tiles, 7 rects) + name = "Calassa", + mainArea = 17, + bbox = { x1 = 31904, y1 = 32707, x2 = 31926, y2 = 32713 }, + rects = "31907,32707,31925,32707 31906,32708,31925,32708 31904,32709,31925,32709 31904,32710,31926,32710 31906,32711,31925,32711 31907,32712,31925,32712 31908,32713,31925,32713", + }, + [104] = { -- Jakundaf Desert (9773 tiles, 148 rects) + name = "Jakundaf Desert", + mainArea = 25, + bbox = { x1 = 32560, y1 = 32063, x2 = 32703, y2 = 32161 }, + rects = "32652,32063,32653,32063 32640,32063,32641,32063 32661,32064,32663,32064 32650,32064,32654,32064 32640,32064,32642,32064 32648,32065,32655,32065 32638,32065,32643,32065 32660,32065,32664,32065 32630,32066,32655,32066 32659,32066,32664,32066 32629,32067,32666,32067 32618,32067,32622,32067 32617,32068,32623,32068 32627,32068,32667,32068 32617,32069,32668,32069 32689,32069,32697,32069 32617,32070,32669,32070 32683,32070,32698,32070 32682,32071,32700,32071 32618,32071,32669,32073 32608,32073,32612,32073 32681,32072,32701,32074 32607,32074,32668,32074 32605,32075,32668,32075 32680,32075,32701,32076 32604,32076,32667,32076 32676,32077,32701,32077 32604,32077,32666,32077 32672,32078,32701,32078 32604,32078,32664,32078 32603,32079,32664,32079 32671,32079,32701,32079 32670,32080,32700,32080 32602,32080,32664,32080 32600,32081,32665,32081 32670,32081,32699,32081 32599,32082,32667,32082 32670,32082,32698,32082 32595,32083,32668,32083 32670,32083,32697,32084 32594,32084,32668,32084 32590,32085,32697,32085 32589,32086,32698,32086 32589,32087,32699,32087 32585,32088,32700,32088 32584,32089,32700,32089 32584,32090,32701,32090 32585,32091,32701,32091 32586,32092,32701,32096 32585,32097,32701,32097 32584,32098,32700,32098 32584,32099,32699,32099 32583,32100,32700,32104 32583,32105,32693,32105 32582,32106,32693,32107 32582,32108,32694,32108 32581,32109,32694,32109 32580,32110,32694,32110 32580,32111,32695,32111 32579,32112,32695,32112 32579,32113,32696,32113 32577,32114,32596,32114 32600,32114,32697,32114 32600,32115,32698,32115 32576,32115,32596,32116 32601,32116,32698,32116 32575,32117,32699,32119 32572,32120,32699,32120 32570,32121,32699,32121 32569,32122,32698,32122 32569,32123,32697,32123 32568,32124,32695,32124 32568,32125,32694,32125 32562,32126,32693,32126 32561,32127,32693,32127 32669,32128,32693,32128 32561,32128,32666,32128 32561,32129,32663,32129 32669,32129,32694,32129 32673,32130,32698,32130 32674,32131,32700,32131 32562,32130,32661,32132 32674,32132,32701,32132 32674,32133,32702,32133 32562,32133,32660,32134 32673,32134,32703,32134 32665,32133,32668,32135 32672,32135,32703,32135 32562,32135,32661,32136 32696,32136,32703,32136 32671,32136,32694,32136 32561,32137,32660,32137 32664,32136,32668,32138 32697,32137,32703,32138 32560,32138,32660,32138 32605,32139,32660,32139 32560,32139,32603,32139 32698,32139,32703,32139 32671,32137,32693,32140 32699,32140,32702,32140 32606,32140,32660,32140 32560,32140,32600,32141 32670,32141,32692,32141 32608,32141,32664,32141 32608,32142,32665,32142 32561,32142,32585,32142 32594,32142,32599,32142 32589,32142,32592,32142 32670,32142,32691,32142 32597,32143,32598,32143 32561,32143,32584,32143 32608,32143,32690,32144 32562,32144,32563,32144 32567,32144,32583,32144 32608,32145,32689,32145 32567,32145,32582,32146 32609,32146,32686,32146 32609,32147,32683,32147 32566,32147,32582,32147 32610,32148,32678,32148 32565,32148,32582,32149 32610,32149,32677,32149 32564,32150,32582,32150 32563,32151,32581,32151 32611,32150,32676,32152 32563,32152,32580,32152 32563,32153,32579,32153 32611,32153,32649,32153 32653,32153,32676,32153 32654,32154,32673,32154 32645,32154,32646,32154 32611,32154,32622,32154 32564,32154,32578,32154 32625,32154,32643,32154 32654,32155,32671,32155 32626,32155,32640,32155 32614,32155,32619,32155 32565,32155,32576,32155 32627,32156,32627,32156 32663,32156,32668,32156 32654,32156,32660,32156 32565,32156,32575,32157 32655,32157,32660,32157 32665,32157,32667,32157 32566,32158,32574,32158 32568,32159,32573,32159 32568,32160,32572,32160 32568,32161,32571,32161", + }, + [106] = { -- Ulderek's Rock (6593 tiles, 94 rects) + name = "Ulderek's Rock", + mainArea = 14, + bbox = { x1 = 32872, y1 = 31703, x2 = 32990, y2 = 31807 }, + rects = "32973,31703,32975,31703 32972,31704,32978,31704 32972,31705,32979,31705 32983,31706,32986,31706 32972,31706,32980,31706 32971,31707,32980,31707 32982,31707,32987,31707 32971,31708,32988,31711 32971,31712,32987,31712 32969,31713,32987,31713 32968,31714,32986,31714 32967,31715,32986,31716 32959,31716,32963,31716 32953,31717,32985,31717 32952,31718,32985,31718 32952,31719,32986,31719 32953,31720,32986,31720 32952,31721,32987,31723 32951,31724,32986,31725 32951,31726,32985,31727 32951,31728,32986,31728 32951,31729,32987,31729 32957,31730,32988,31731 32952,31730,32954,31731 32952,31732,32988,31732 32952,31733,32987,31733 32953,31734,32986,31734 32955,31735,32986,31735 32952,31736,32986,31737 32952,31738,32985,31739 32951,31740,32985,31742 32950,31743,32983,31749 32928,31748,32934,31749 32888,31748,32894,31749 32907,31748,32913,31749 32888,31750,32983,31752 32950,31753,32983,31753 32888,31753,32938,31754 32947,31754,32984,31754 32890,31755,32939,31755 32945,31755,32984,31755 32890,31756,32985,31756 32890,31757,32987,31757 32917,31758,32987,31758 32890,31758,32912,31759 32916,31759,32987,31760 32890,31760,32911,31762 32914,31761,32987,31762 32890,31763,32983,31763 32876,31763,32884,31763 32874,31764,32886,31764 32890,31764,32922,31764 32928,31764,32982,31764 32928,31765,32981,31765 32986,31763,32987,31766 32874,31765,32921,31766 32931,31766,32980,31766 32873,31767,32920,31767 32873,31768,32919,31768 32931,31767,32990,31769 32931,31770,32979,31770 32936,31771,32979,31771 32872,31769,32919,31773 32925,31772,32926,31773 32942,31772,32979,31775 32873,31774,32919,31776 32949,31776,32979,31776 32932,31776,32938,31777 32942,31776,32946,31777 32949,31777,32990,31777 32874,31777,32919,31777 32943,31778,32945,31778 32875,31778,32887,31778 32950,31778,32990,31778 32890,31778,32937,31779 32875,31779,32885,31779 32952,31779,32990,31779 32890,31780,32936,31780 32890,31781,32934,31782 32890,31783,32939,31783 32944,31783,32947,31783 32953,31780,32985,31784 32890,31784,32947,31784 32890,31785,32985,31789 32890,31790,32982,31791 32888,31792,32981,31795 32888,31796,32979,31796 32888,31797,32894,31798 32904,31797,32979,31800 32902,31801,32979,31805 32973,31806,32979,31806 32902,31806,32908,31807 32936,31806,32942,31807 32973,31807,32980,31807", + }, + [107] = { -- Kha'zeel Mountains (25430 tiles, 786 rects) + name = "Kha'zeel Mountains", + mainArea = 19, + bbox = { x1 = 32962, y1 = 32414, x2 = 33228, y2 = 32828 }, + rects = "33025,32414,33030,32414 33023,32415,33031,32415 33023,32416,33032,32416 33027,32417,33033,32417 33023,32417,33025,32418 33027,32418,33034,32418 33028,32419,33036,32419 33024,32419,33025,32420 33028,32420,33037,32420 33022,32421,33025,32421 33029,32421,33040,32421 33022,32422,33043,32422 33022,32423,33046,32423 33051,32424,33055,32424 33021,32424,33048,32425 33051,32425,33058,32425 33051,32426,33060,32426 33022,32426,33048,32426 33023,32427,33047,32427 33051,32427,33063,32427 33052,32428,33064,32428 33026,32428,33046,32428 33023,32428,33024,32429 33028,32429,33046,32429 33052,32429,33065,32429 33050,32430,33068,32430 33027,32430,33047,32430 33027,32431,33070,32431 33028,32432,33072,32432 33027,32433,33073,32433 33032,32434,33074,32434 33027,32434,33030,32435 33032,32435,33078,32435 33034,32436,33078,32436 33037,32437,33072,32437 33074,32437,33078,32437 33038,32438,33070,32438 33039,32439,33048,32439 33050,32439,33070,32439 33077,32439,33082,32439 33076,32440,33082,32440 33040,32440,33047,32440 33051,32440,33070,32440 33041,32441,33047,32441 33075,32441,33083,32441 33051,32441,33071,32441 33051,32442,33085,32442 33042,32442,33048,32442 33052,32443,33086,32443 33042,32443,33049,32443 33041,32444,33087,32444 33040,32445,33088,32445 33052,32446,33053,32446 33038,32446,33050,32446 33055,32446,33089,32446 33038,32447,33049,32447 33037,32448,33050,32448 33056,32447,33090,32449 33055,32450,33089,32450 33036,32449,33050,32451 33036,32452,33049,32452 33055,32451,33090,32453 33039,32453,33048,32454 33055,32454,33088,32454 33039,32455,33047,32455 33058,32455,33089,32455 33093,32455,33096,32455 33058,32456,33096,32456 33039,32456,33048,32457 33066,32457,33096,32457 33060,32457,33063,32457 33039,32458,33047,32458 33066,32458,33097,32459 33039,32459,33046,32459 33062,32458,33063,32460 33065,32460,33097,32461 33039,32460,33045,32461 33065,32462,33096,32462 33039,32462,33043,32462 33066,32463,33096,32463 33039,32463,33044,32463 33066,32464,33098,32464 33040,32464,33043,32464 33067,32465,33098,32465 33068,32466,33098,32466 33069,32467,33099,32467 33070,32468,33099,32468 33070,32469,33100,32469 33076,32470,33100,32470 33071,32470,33071,32471 33077,32471,33102,32471 33078,32472,33102,32474 33078,32475,33104,32476 33077,32477,33104,32477 33075,32478,33104,32480 33075,32481,33105,32482 33076,32483,33105,32483 33080,32484,33106,32484 33080,32485,33107,32485 33080,32486,33108,32486 33080,32487,33109,32487 33079,32488,33111,32488 33078,32489,33111,32489 33075,32490,33113,32490 33075,32491,33114,32491 33074,32492,33115,32493 33074,32494,33116,32494 33076,32495,33116,32495 33077,32496,33116,32496 33078,32497,33117,32497 33079,32498,33117,32498 33080,32499,33117,32499 33081,32500,33119,32501 33082,32502,33120,32502 33083,32503,33120,32504 33084,32505,33121,32505 33084,32506,33123,32506 33084,32507,33125,32507 33085,32508,33126,32509 33086,32510,33128,32510 33087,32511,33131,32511 33087,32512,33134,32512 33088,32513,33135,32514 33089,32515,33135,32515 33089,32516,33136,32516 33208,32516,33212,32516 33205,32517,33214,32517 33088,32517,33138,32517 33088,32518,33142,32518 33203,32518,33215,32518 33106,32519,33144,32519 33087,32519,33098,32519 33201,32519,33216,32519 33107,32520,33145,32520 33199,32520,33216,32520 33093,32520,33097,32520 33087,32520,33091,32521 33096,32521,33096,32521 33108,32521,33146,32521 33197,32521,33217,32521 33109,32522,33147,32522 33195,32522,33217,32522 33087,32522,33092,32523 33193,32523,33217,32523 33110,32523,33150,32523 33190,32524,33217,32524 33111,32524,33150,32524 33063,32524,33072,32524 33087,32524,33091,32525 33187,32525,33217,32525 33062,32525,33073,32526 33111,32525,33152,32526 33184,32526,33217,32526 33220,32527,33226,32527 33062,32527,33065,32527 33111,32527,33155,32527 33070,32527,33083,32527 33181,32527,33218,32527 33111,32528,33161,32528 33061,32528,33064,32528 33178,32528,33227,32528 33071,32528,33084,32528 33071,32529,33086,32529 33177,32529,33228,32529 33174,32529,33174,32529 33111,32529,33170,32529 33111,32530,33228,32530 33071,32530,33087,32531 33110,32531,33228,32531 33061,32529,33063,32532 33109,32532,33227,32532 33070,32532,33087,32532 33061,32533,33064,32533 33069,32533,33087,32533 33108,32533,33226,32533 33128,32534,33226,32534 33107,32534,33123,32534 33062,32534,33087,32534 33128,32535,33156,32535 33165,32535,33226,32535 33106,32535,33123,32535 33076,32535,33087,32535 33062,32535,33073,32535 33093,32535,33096,32535 33063,32536,33072,32536 33077,32536,33088,32536 33167,32536,33225,32536 33090,32536,33097,32536 33105,32536,33123,32536 33128,32536,33154,32536 33150,32537,33153,32537 33128,32537,33146,32537 33077,32537,33123,32537 33168,32537,33223,32538 33128,32538,33143,32538 33129,32539,33130,32539 33168,32539,33222,32539 33134,32539,33141,32539 33079,32538,33123,32540 33134,32540,33139,32540 33138,32541,33138,32541 33081,32541,33124,32541 33169,32540,33222,32542 33080,32542,33124,32543 33169,32543,33217,32543 33220,32543,33220,32543 33145,32543,33146,32543 33214,32544,33214,32544 33205,32544,33206,32544 33080,32544,33123,32544 33208,32544,33212,32544 33144,32544,33148,32544 33169,32544,33203,32544 33081,32545,33123,32545 33169,32545,33201,32545 33143,32545,33149,32546 33168,32546,33199,32546 33082,32546,33123,32546 33167,32547,33197,32547 33085,32547,33123,32547 33143,32547,33150,32547 33166,32548,33195,32548 33144,32548,33151,32548 33087,32548,33124,32548 33144,32549,33154,32549 33163,32549,33193,32549 33088,32549,33124,32549 33077,32550,33079,32550 33089,32550,33124,32550 33144,32550,33191,32550 33089,32551,33125,32551 33075,32551,33080,32551 33143,32551,33189,32551 33092,32552,33127,32552 33075,32552,33085,32552 33058,32552,33061,32552 33142,32552,33187,32552 33141,32553,33185,32553 33073,32553,33086,32553 33094,32553,33128,32553 33068,32553,33070,32553 33057,32553,33063,32553 33139,32554,33184,32554 33056,32554,33064,32554 33094,32554,33131,32554 33068,32554,33088,32555 33095,32555,33132,32555 33055,32555,33065,32555 33137,32555,33180,32555 33095,32556,33149,32556 33054,32556,33065,32556 33068,32556,33089,32556 33153,32556,33178,32557 33096,32557,33149,32557 33053,32557,33089,32558 33152,32558,33178,32558 33099,32558,33150,32558 33053,32559,33091,32559 33153,32559,33178,32559 33100,32559,33149,32559 33102,32560,33148,32560 33053,32560,33092,32560 33154,32560,33176,32560 33178,32560,33178,32560 33105,32561,33108,32561 33110,32561,33150,32561 33053,32561,33094,32561 33154,32561,33173,32562 33117,32562,33150,32562 33052,32562,33096,32562 33111,32562,33115,32562 33146,32563,33148,32563 33038,32563,33039,32563 33051,32563,33099,32563 33117,32563,33144,32563 33158,32563,33172,32563 33156,32563,33156,32563 33161,32564,33172,32564 33036,32564,33040,32564 33121,32564,33123,32564 33142,32564,33142,32564 33048,32564,33104,32564 33125,32564,33140,32564 33074,32565,33108,32565 33166,32565,33168,32565 33170,32565,33171,32565 33163,32565,33164,32565 33122,32565,33123,32565 33125,32565,33131,32565 33133,32565,33138,32565 33036,32565,33070,32565 33036,32566,33065,32566 33115,32566,33116,32566 33076,32566,33108,32566 33125,32566,33135,32566 33077,32567,33119,32567 33036,32567,33064,32567 33125,32567,33131,32567 33078,32568,33122,32568 33033,32568,33064,32568 33126,32568,33128,32568 33031,32569,33063,32569 33079,32569,33123,32569 33080,32570,33123,32570 33030,32570,33063,32570 33080,32571,33124,32571 33029,32571,33061,32571 33080,32572,33123,32572 33028,32572,33061,32572 33027,32573,33061,32573 33080,32573,33121,32573 33080,32574,33122,32574 33026,32574,33061,32574 33078,32575,33121,32575 33025,32575,33062,32575 33076,32576,33121,32576 33025,32576,33063,32576 33024,32577,33064,32577 33076,32577,33120,32577 33077,32578,33120,32578 33023,32578,33064,32578 33077,32579,33119,32579 33023,32579,33069,32580 33078,32580,33119,32580 33022,32581,33071,32581 33079,32581,33119,32581 33080,32582,33119,32582 33021,32582,33072,32582 33020,32583,33073,32583 33081,32583,33119,32584 33017,32584,33073,32584 33017,32585,33075,32585 33082,32585,33118,32586 33016,32586,33076,32586 33083,32587,33118,32587 33013,32587,33076,32587 33084,32588,33118,32588 33010,32588,33076,32589 33084,32589,33119,32592 33011,32590,33076,32592 33012,32593,33076,32593 33084,32593,33120,32594 33013,32594,33076,32594 33014,32595,33120,32595 33014,32596,33121,32596 33015,32597,33121,32597 33015,32598,33122,32598 33016,32599,33122,32601 33016,32602,33020,32602 33024,32602,33122,32603 33016,32603,33019,32603 33025,32604,33121,32604 33118,32605,33119,32605 33025,32605,33115,32605 33024,32606,33115,32606 33014,32606,33018,32606 33013,32607,33018,32607 33022,32607,33112,32607 33012,32608,33110,32608 33008,32609,33110,32609 33002,32610,33109,32610 32996,32611,33108,32611 32990,32611,32993,32611 32986,32612,33108,32612 32979,32613,33109,32613 32974,32614,33109,32614 32969,32615,33109,32615 32968,32616,33016,32616 33022,32616,33109,32616 33023,32617,33109,32617 32967,32617,33014,32617 32966,32618,33011,32618 33024,32618,33033,32618 33010,32619,33011,32619 32965,32619,32987,32619 32994,32619,33006,32619 33025,32619,33033,32619 33051,32618,33109,32620 32996,32620,33005,32620 32964,32620,32987,32620 32963,32621,32986,32621 33051,32621,33107,32621 32997,32621,33005,32622 32962,32622,32986,32623 33051,32622,33106,32623 33001,32623,33005,32623 33051,32624,33105,32624 33026,32620,33033,32625 32962,32624,32985,32625 33051,32625,33104,32625 33051,32626,33103,32626 33025,32626,33033,32626 32962,32626,32986,32627 33051,32627,33102,32627 33023,32627,33033,32627 33011,32627,33013,32627 33021,32628,33033,32628 32997,32628,33001,32628 33051,32628,33100,32628 33009,32628,33016,32628 32971,32628,32988,32629 32996,32629,33033,32629 32971,32630,32992,32630 32995,32630,33033,32630 33051,32629,33098,32631 32971,32631,33033,32631 32972,32632,33033,32632 33051,32632,33099,32634 32981,32633,33033,32634 32981,32635,33010,32635 33015,32635,33099,32635 32981,32636,33009,32636 33016,32636,33100,32636 33016,32637,33067,32637 33071,32637,33100,32637 32981,32637,33007,32637 32982,32638,33007,32638 33073,32638,33101,32638 33018,32638,33065,32638 33001,32639,33007,32639 33076,32639,33101,32639 32983,32639,32997,32639 33018,32639,33063,32640 33077,32640,33102,32640 33002,32640,33007,32640 33017,32641,33034,32641 33078,32641,33102,32641 32983,32640,32993,32642 33039,32641,33062,32642 33003,32641,33007,32642 33016,32642,33034,32642 33079,32642,33102,32642 33004,32643,33007,32643 33014,32643,33032,32643 33040,32643,33060,32643 32987,32643,32993,32644 33013,32644,33030,32644 33005,32644,33006,32644 33041,32644,33060,32644 33079,32643,33104,32645 32987,32645,32994,32645 33006,32645,33006,32645 33013,32645,33029,32645 33042,32645,33059,32646 33012,32646,33029,32646 33080,32646,33104,32646 32987,32646,32995,32647 33043,32647,33057,32647 32999,32647,32999,32647 33013,32647,33029,32648 33047,32648,33056,32648 32987,32648,33000,32648 32987,32649,33001,32649 33047,32649,33052,32649 33014,32649,33030,32649 33015,32650,33030,32650 32987,32650,32999,32650 33080,32647,33103,32651 33016,32651,33033,32651 33060,32651,33062,32651 32987,32651,32998,32651 33039,32651,33043,32652 32978,32652,32997,32652 33059,32652,33065,32652 33016,32652,33034,32652 33081,32652,33102,32653 33017,32653,33065,32653 33017,32654,33066,32654 32977,32653,32997,32655 33080,32654,33102,32655 33018,32655,33068,32655 33018,32656,33069,32656 33079,32656,33100,32656 32977,32656,32998,32656 33078,32657,33100,32657 33018,32657,33071,32657 33018,32658,33073,32658 33076,32658,33100,32658 32979,32657,32998,32659 33018,32659,33100,32659 32981,32660,32998,32660 33038,32660,33100,32660 33018,32660,33031,32660 33040,32661,33100,32661 33021,32661,33030,32661 32982,32661,32997,32662 33005,32662,33007,32662 33024,32662,33029,32662 33040,32662,33099,32663 32984,32663,32997,32663 33004,32663,33008,32663 33040,32664,33098,32664 33004,32664,33013,32664 33003,32665,33014,32665 33042,32665,33097,32665 32984,32664,32996,32666 33043,32666,33059,32666 33003,32666,33016,32666 33065,32666,33095,32666 33003,32667,33019,32667 32986,32667,32996,32667 33066,32667,33093,32667 33043,32667,33058,32668 33066,32668,33091,32668 33003,32668,33024,32668 32987,32668,32995,32669 33042,32669,33056,32669 33070,32669,33089,32669 33002,32669,33026,32669 33002,32670,33027,32670 33041,32670,33054,32670 33070,32670,33088,32670 32987,32670,32994,32671 33071,32671,33088,32671 33003,32671,33027,32671 33040,32671,33053,32671 33072,32672,33087,32672 33005,32672,33027,32672 32986,32672,32994,32672 33040,32672,33051,32672 33038,32673,33050,32673 32986,32673,32995,32673 33006,32673,33028,32673 33007,32674,33029,32674 32986,32674,32996,32674 33073,32673,33087,32675 33037,32674,33050,32675 32986,32675,32998,32675 33009,32675,33030,32675 32987,32676,33001,32676 33015,32676,33030,32676 33036,32676,33050,32676 32988,32677,33001,32677 33016,32677,33050,32677 33073,32676,33086,32678 33017,32678,33050,32678 32989,32678,33002,32678 33017,32679,33051,32679 33072,32679,33086,32680 33019,32680,33051,32680 32989,32679,33003,32681 33071,32681,33087,32681 33019,32681,33052,32681 33019,32682,33053,32682 33069,32682,33087,32682 32989,32682,33006,32682 33019,32683,33054,32683 32990,32683,33007,32683 33067,32683,33088,32683 33018,32684,33056,32684 32990,32684,33008,32684 33067,32684,33090,32684 33017,32685,33056,32685 33067,32685,33092,32685 32991,32685,33008,32686 33016,32686,33057,32686 33066,32686,33094,32686 33016,32687,33070,32687 33074,32687,33094,32687 32992,32687,33008,32687 32992,32688,33009,32688 33015,32688,33068,32688 33077,32688,33093,32689 33014,32689,33068,32689 32994,32689,33009,32689 32994,32690,33067,32690 33078,32690,33093,32690 32995,32691,33067,32691 33079,32691,33094,32692 33061,32692,33067,32692 32996,32692,33051,32692 33064,32693,33067,32693 33079,32693,33093,32693 32997,32693,33051,32694 33064,32694,33068,32694 33078,32694,33092,32694 33078,32695,33091,32695 32997,32695,33052,32695 33062,32695,33068,32696 33077,32696,33089,32696 33062,32697,33069,32697 33077,32697,33088,32697 33076,32698,33087,32698 33062,32698,33070,32698 32998,32696,33055,32699 33062,32699,33086,32699 33063,32700,33086,32700 32998,32700,33056,32700 33053,32701,33056,32701 33063,32701,33088,32702 33053,32702,33058,32702 33007,32701,33035,32703 33043,32701,33045,32705 33063,32703,33089,32705 33053,32703,33059,32705 33007,32704,33023,32708 33033,32704,33035,32709 33002,32709,33023,32709 33053,32706,33089,32711 33000,32710,33023,32711 33053,32712,33073,32712 33076,32712,33088,32712 33053,32713,33071,32713 33078,32713,33087,32713 33079,32714,33086,32714 33053,32714,33069,32714 32991,32712,33023,32715 33053,32715,33068,32715 33053,32716,33067,32716 33053,32717,33066,32717 32991,32716,33035,32718 33053,32718,33065,32718 32993,32719,33035,32719 33053,32719,33064,32719 32995,32720,33036,32720 33042,32720,33063,32720 33042,32721,33064,32721 32996,32721,33024,32721 33029,32721,33036,32721 32996,32722,33022,32722 33042,32722,33065,32722 33030,32722,33036,32722 32997,32723,33021,32723 33042,32723,33066,32723 33032,32723,33036,32723 33033,32724,33036,32724 33001,32724,33020,32724 33042,32724,33067,32725 33003,32725,33019,32725 33034,32725,33036,32725 33042,32726,33066,32726 33004,32726,33018,32727 33035,32726,33036,32727 33042,32727,33068,32730 33005,32728,33017,32730 33006,32731,33017,32732 33042,32731,33067,32732 33066,32733,33066,32733 33035,32733,33064,32733 33007,32733,33018,32734 33035,32734,33063,32734 33007,32735,33019,32735 33034,32735,33061,32735 33007,32736,33020,32736 33033,32736,33057,32736 33032,32737,33056,32737 33007,32737,33021,32737 33008,32738,33023,32738 33031,32738,33056,32738 33029,32739,33055,32739 33008,32739,33024,32739 33008,32740,33055,32740 33008,32741,33054,32743 33008,32744,33053,32745 33008,32746,33052,32746 33007,32747,33052,32749 33007,32750,33022,32750 33031,32750,33052,32750 33033,32751,33051,32751 33007,32751,33021,32752 33035,32752,33051,32753 33007,32753,33019,32753 33035,32754,33050,32755 33005,32754,33019,32755 33004,32756,33019,32756 33036,32756,33050,32756 33003,32757,33020,32757 33036,32757,33048,32758 33002,32758,33020,32758 33001,32759,33021,32759 33035,32759,33048,32760 32999,32760,33021,32760 33034,32761,33048,32761 32999,32761,33020,32761 32999,32762,33019,32762 33029,32762,33048,32762 32999,32763,33017,32763 33028,32763,33047,32763 33027,32764,33047,32764 33001,32764,33017,32764 33025,32765,33047,32765 33003,32765,33016,32765 33023,32766,33045,32766 33005,32766,33016,32767 33023,32767,33046,32768 33005,32768,33015,32768 33022,32769,33046,32769 33004,32769,33015,32769 33005,32770,33015,32770 33022,32770,33045,32770 33006,32771,33015,32771 33022,32771,33046,32771 33024,32772,33046,32772 33007,32772,33014,32772 33008,32773,33014,32773 33028,32773,33045,32773 33029,32774,33044,32774 33029,32775,33045,32775 33030,32776,33045,32776 33030,32777,33044,32777 33009,32774,33012,32778 33031,32778,33044,32779 33009,32779,33013,32779 33022,32779,33023,32779 33020,32780,33024,32780 33009,32780,33015,32780 33009,32781,33024,32781 33008,32782,33023,32782 33031,32780,33043,32783 33008,32783,33019,32783 33030,32784,33042,32784 33008,32784,33017,32784 33007,32785,33016,32785 33029,32785,33042,32785 33028,32786,33041,32786 33007,32786,33014,32787 33026,32787,33042,32787 33024,32788,33043,32788 33007,32788,33013,32788 33021,32789,33043,32789 33020,32790,33044,32790 33006,32789,33011,32791 33020,32791,33023,32791 33028,32791,33044,32791 33029,32792,33045,32792 33019,32792,33021,32792 33005,32792,33011,32793 33031,32793,33046,32793 33020,32793,33020,32793 33005,32794,33012,32794 33032,32794,33046,32794 33033,32795,33047,32795 33005,32795,33013,32795 33034,32796,33047,32796 33005,32796,33014,32796 33005,32797,33016,32797 33035,32797,33047,32797 33005,32798,33018,32798 33035,32798,33046,32799 33005,32799,33019,32799 33006,32800,33019,32800 33035,32800,33047,32800 33034,32801,33047,32801 33008,32801,33018,32801 33034,32802,33046,32802 33009,32802,33017,32802 33009,32803,33015,32803 33033,32803,33045,32803 33032,32804,33044,32804 33003,32804,33003,32805 33031,32805,33043,32805 33022,32805,33023,32805 33009,32804,33014,32806 33002,32806,33006,32806 33021,32806,33023,32806 33029,32806,33042,32806 33020,32807,33023,32807 33028,32807,33041,32807 33002,32807,33014,32808 33018,32808,33022,32808 33029,32808,33040,32808 33002,32809,33021,32809 33030,32809,33039,32809 33003,32810,33019,32810 33030,32810,33038,32810 33003,32811,33017,32811 33031,32811,33037,32813 33003,32812,33016,32814 33031,32814,33035,32814 33004,32815,33016,32815 33030,32815,33036,32815 33004,32816,33017,32816 33028,32816,33036,32816 33021,32816,33023,32816 33004,32817,33035,32817 33001,32818,33035,32819 33008,32820,33034,32820 33018,32821,33018,32821 33013,32821,33013,32821 33022,32821,33034,32822 33022,32823,33033,32823 33022,32824,33032,32825 33022,32826,33031,32826 33023,32827,33032,32827 33030,32828,33032,32828 33025,32828,33027,32828", + }, + [109] = { -- Nibelor (5368 tiles, 240 rects) + name = "Nibelor", + mainArea = 23, + bbox = { x1 = 32308, y1 = 31009, x2 = 32419, y2 = 31094 }, + rects = "32362,31009,32364,31009 32348,31010,32350,31010 32352,31010,32355,31010 32361,31010,32365,31010 32347,31011,32356,31012 32360,31011,32365,31013 32339,31013,32341,31013 32344,31013,32355,31013 32330,31013,32330,31014 32361,31014,32366,31014 32343,31014,32354,31015 32324,31015,32325,31015 32363,31015,32366,31015 32338,31015,32339,31015 32357,31015,32357,31015 32329,31015,32331,31016 32325,31016,32325,31016 32337,31016,32354,31016 32364,31016,32366,31016 32357,31016,32358,31016 32334,31017,32335,31017 32365,31017,32367,31017 32337,31017,32355,31017 32363,31018,32368,31018 32322,31018,32355,31018 32359,31018,32360,31018 32321,31019,32368,31019 32321,31020,32324,31020 32326,31020,32367,31020 32369,31020,32370,31021 32322,31021,32323,31021 32326,31021,32364,31022 32367,31022,32369,31022 32325,31023,32363,31023 32325,31024,32364,31024 32320,31024,32321,31024 32368,31024,32370,31024 32372,31024,32373,31024 32321,31025,32321,31025 32321,31026,32322,31026 32326,31025,32374,31027 32327,31028,32374,31028 32329,31029,32373,31029 32325,31030,32326,31030 32331,31030,32372,31030 32330,31031,32373,31031 32326,31031,32327,31031 32330,31032,32374,31032 32325,31033,32326,31033 32330,31033,32375,31033 32380,31034,32380,31034 32379,31035,32382,31035 32379,31036,32380,31036 32324,31034,32376,31037 32380,31037,32380,31037 32319,31038,32321,31038 32325,31038,32375,31039 32321,31039,32322,31039 32386,31039,32388,31039 32311,31039,32311,31039 32393,31039,32393,31040 32326,31040,32375,31040 32309,31040,32310,31040 32385,31040,32389,31040 32324,31041,32376,31041 32382,31041,32389,31041 32393,31041,32396,31041 32308,31041,32308,31041 32381,31042,32389,31042 32395,31042,32395,31042 32323,31042,32377,31042 32318,31043,32319,31043 32322,31043,32390,31043 32317,31044,32318,31044 32311,31044,32311,31044 32399,31044,32399,31044 32322,31044,32392,31045 32312,31045,32312,31045 32316,31045,32317,31045 32401,31046,32401,31046 32323,31046,32395,31046 32398,31046,32398,31046 32309,31046,32309,31047 32324,31047,32398,31047 32308,31048,32310,31048 32323,31048,32399,31048 32314,31048,32317,31048 32319,31049,32401,31049 32308,31049,32317,31049 32404,31050,32404,31050 32308,31050,32400,31050 32309,31051,32400,31051 32402,31051,32404,31052 32398,31052,32399,31052 32309,31052,32310,31052 32407,31052,32407,31052 32312,31052,32393,31052 32409,31052,32410,31052 32401,31053,32410,31053 32415,31053,32417,31053 32312,31053,32396,31053 32419,31053,32419,31053 32412,31053,32412,31053 32310,31054,32397,31054 32400,31054,32419,31054 32399,31055,32419,31055 32310,31055,32396,31055 32399,31056,32408,31056 32311,31056,32396,31056 32312,31057,32394,31057 32398,31057,32409,31057 32411,31056,32418,31058 32396,31058,32409,31058 32312,31058,32393,31058 32396,31059,32418,31059 32314,31059,32392,31059 32312,31060,32392,31060 32399,31060,32418,31060 32396,31061,32397,31061 32401,31061,32418,31061 32312,31061,32394,31061 32311,31062,32394,31062 32396,31062,32418,31062 32309,31063,32393,31063 32397,31063,32418,31063 32309,31064,32392,31064 32395,31064,32418,31065 32311,31065,32393,31065 32390,31066,32392,31066 32309,31066,32314,31066 32395,31066,32417,31066 32322,31066,32386,31066 32322,31067,32379,31067 32382,31067,32382,31067 32388,31067,32388,31067 32385,31067,32385,31067 32394,31067,32417,31067 32308,31067,32314,31068 32387,31068,32392,31068 32395,31068,32416,31068 32322,31068,32378,31068 32383,31068,32383,31068 32382,31069,32393,31069 32311,31069,32312,31069 32308,31069,32308,31069 32395,31069,32415,31069 32324,31069,32378,31070 32396,31070,32415,31070 32381,31070,32393,31070 32399,31071,32414,31071 32315,31071,32393,31071 32395,31072,32414,31072 32314,31072,32393,31073 32395,31073,32413,31073 32396,31074,32413,31074 32314,31074,32316,31075 32318,31074,32393,31075 32396,31075,32412,31076 32319,31076,32394,31076 32408,31077,32411,31077 32355,31077,32394,31077 32318,31077,32326,31077 32331,31077,32351,31077 32314,31077,32316,31078 32396,31077,32404,31078 32330,31078,32383,31078 32318,31078,32327,31078 32389,31078,32394,31078 32377,31079,32383,31079 32399,31079,32405,31079 32389,31079,32389,31079 32316,31079,32372,31079 32392,31079,32393,31079 32410,31078,32411,31080 32317,31080,32372,31080 32399,31080,32404,31080 32314,31080,32314,31080 32379,31080,32380,31080 32392,31080,32392,31081 32319,31081,32373,31081 32380,31081,32380,31081 32405,31081,32405,31081 32411,31081,32411,31081 32399,31081,32400,31081 32314,31081,32315,31082 32317,31082,32366,31082 32400,31082,32400,31082 32372,31082,32372,31082 32377,31082,32377,31083 32395,31083,32395,31083 32388,31083,32388,31083 32401,31083,32401,31083 32314,31083,32362,31083 32345,31084,32362,31084 32387,31084,32389,31084 32369,31084,32369,31084 32313,31084,32343,31084 32395,31084,32396,31084 32313,31085,32342,31085 32346,31085,32362,31085 32396,31085,32397,31085 32388,31085,32388,31085 32370,31085,32371,31085 32372,31086,32374,31086 32352,31086,32353,31086 32312,31086,32330,31086 32347,31086,32350,31086 32356,31086,32359,31086 32333,31086,32341,31087 32327,31087,32328,31087 32321,31087,32324,31087 32352,31087,32352,31087 32348,31087,32349,31087 32364,31087,32364,31087 32311,31087,32319,31087 32356,31087,32358,31088 32311,31088,32318,31088 32327,31088,32327,31088 32340,31088,32340,31088 32365,31088,32365,31088 32345,31088,32345,31088 32368,31088,32368,31088 32335,31088,32336,31088 32321,31088,32322,31089 32316,31089,32316,31089 32310,31089,32311,31089 32344,31089,32345,31089 32368,31089,32370,31090 32358,31089,32358,31090 32331,31090,32331,31090 32310,31090,32310,31090 32337,31091,32339,31091 32354,31091,32354,31091 32370,31091,32371,31091 32332,31091,32332,31091 32354,31092,32355,31092 32333,31092,32333,31092 32338,31092,32338,31093 32354,31093,32354,31093 32354,31094,32355,31094", + }, + [110] = { -- Okolnir (11180 tiles, 327 rects) + name = "Okolnir", + mainArea = 23, + bbox = { x1 = 32140, y1 = 31318, x2 = 32314, y2 = 31477 }, + rects = "32265,31318,32266,31318 32270,31318,32270,31318 32263,31318,32263,31318 32261,31318,32261,31318 32269,31319,32269,31319 32262,31319,32264,31319 32256,31319,32256,31320 32255,31321,32256,31321 32268,31321,32269,31321 32254,31322,32255,31322 32261,31322,32264,31322 32267,31322,32270,31323 32254,31323,32254,31323 32260,31323,32265,31323 32255,31324,32255,31324 32259,31324,32270,31324 32258,31325,32271,31326 32275,31326,32275,31326 32277,31326,32278,31326 32274,31327,32277,31327 32259,31327,32271,31327 32258,31328,32271,31328 32258,31329,32272,31329 32253,31329,32253,31329 32259,31330,32273,31330 32249,31330,32249,31330 32252,31330,32255,31330 32277,31330,32277,31330 32276,31331,32279,31331 32250,31331,32254,31331 32281,31331,32281,31331 32258,31331,32273,31331 32254,31332,32254,31332 32278,31332,32280,31332 32257,31332,32273,31333 32279,31333,32281,31333 32252,31334,32275,31334 32280,31334,32281,31334 32251,31335,32276,31335 32281,31335,32282,31336 32251,31336,32277,31336 32247,31336,32247,31337 32251,31337,32278,31337 32281,31337,32284,31337 32246,31338,32248,31338 32252,31338,32278,31338 32251,31339,32278,31339 32245,31339,32247,31339 32250,31340,32278,31340 32248,31341,32278,31341 32280,31341,32281,31341 32247,31342,32282,31343 32247,31344,32281,31344 32248,31345,32281,31345 32245,31346,32283,31346 32288,31346,32289,31347 32242,31347,32284,31347 32241,31348,32284,31349 32236,31349,32237,31349 32287,31350,32287,31350 32236,31350,32238,31350 32242,31350,32283,31350 32243,31351,32283,31351 32239,31351,32239,31351 32288,31351,32288,31352 32242,31352,32283,31352 32287,31353,32289,31353 32242,31353,32281,31353 32243,31354,32244,31354 32289,31354,32290,31354 32254,31354,32283,31354 32254,31355,32284,31355 32290,31355,32290,31355 32241,31355,32241,31355 32239,31356,32240,31356 32251,31356,32252,31356 32255,31356,32284,31356 32248,31356,32248,31356 32242,31356,32242,31356 32248,31357,32251,31357 32257,31357,32285,31357 32237,31357,32238,31357 32257,31358,32286,31358 32258,31359,32287,31359 32249,31360,32249,31360 32259,31360,32287,31361 32245,31361,32246,31361 32245,31362,32247,31362 32256,31362,32287,31362 32247,31363,32248,31363 32253,31363,32288,31363 32252,31364,32288,31364 32245,31364,32247,31364 32239,31365,32240,31365 32249,31365,32287,31365 32248,31366,32286,31366 32241,31366,32241,31366 32243,31367,32244,31367 32246,31367,32286,31367 32294,31367,32294,31367 32293,31368,32293,31368 32242,31368,32287,31368 32242,31369,32288,31370 32294,31369,32294,31370 32243,31371,32287,31371 32244,31372,32287,31372 32291,31373,32291,31373 32243,31373,32287,31373 32290,31374,32291,31374 32241,31374,32286,31374 32240,31375,32281,31375 32303,31375,32303,31375 32236,31376,32280,31376 32301,31376,32302,31376 32275,31377,32279,31377 32284,31377,32284,31377 32234,31377,32266,31377 32233,31378,32265,31378 32283,31378,32283,31378 32267,31378,32271,31378 32272,31379,32272,31379 32269,31379,32269,31379 32233,31379,32266,31379 32278,31379,32278,31379 32287,31379,32288,31379 32299,31379,32299,31379 32292,31379,32293,31379 32277,31380,32279,31380 32291,31380,32296,31380 32270,31380,32271,31380 32300,31380,32301,31380 32223,31380,32226,31380 32286,31380,32289,31380 32233,31380,32268,31380 32223,31381,32228,31381 32289,31381,32289,31381 32231,31381,32272,31381 32291,31381,32297,31381 32286,31381,32286,31381 32301,31381,32303,31381 32282,31382,32282,31382 32275,31382,32276,31382 32230,31382,32272,31382 32222,31382,32228,31382 32292,31382,32297,31383 32288,31383,32289,31383 32281,31383,32281,31383 32221,31383,32271,31383 32273,31383,32277,31383 32272,31384,32273,31384 32276,31384,32277,31384 32292,31384,32299,31384 32220,31384,32269,31384 32282,31384,32283,31384 32287,31384,32290,31384 32281,31385,32285,31385 32271,31385,32273,31385 32287,31385,32302,31385 32219,31385,32269,31386 32275,31386,32276,31386 32306,31386,32307,31386 32271,31386,32272,31386 32278,31386,32303,31386 32220,31387,32269,31387 32274,31387,32303,31387 32307,31387,32308,31387 32209,31387,32211,31387 32271,31387,32271,31387 32309,31388,32311,31388 32272,31388,32304,31388 32221,31388,32270,31388 32208,31388,32212,31389 32222,31389,32305,31389 32209,31390,32213,31390 32223,31390,32305,31390 32222,31391,32305,31391 32210,31391,32213,31391 32211,31392,32214,31392 32221,31392,32304,31392 32200,31392,32202,31392 32307,31392,32307,31393 32220,31393,32303,31393 32199,31393,32203,31393 32212,31393,32214,31394 32199,31394,32204,31394 32308,31394,32308,31394 32305,31394,32306,31394 32309,31395,32309,31395 32212,31395,32215,31395 32306,31395,32306,31395 32220,31394,32301,31396 32198,31395,32205,31396 32213,31396,32215,31396 32199,31397,32205,31397 32219,31397,32301,31397 32212,31397,32216,31397 32303,31398,32305,31398 32201,31398,32204,31398 32212,31398,32301,31398 32203,31399,32204,31399 32213,31399,32306,31400 32198,31400,32205,31400 32189,31400,32196,31400 32188,31401,32206,31401 32209,31401,32305,31401 32309,31402,32309,31402 32188,31402,32306,31402 32187,31403,32306,31403 32310,31403,32310,31403 32166,31404,32169,31404 32187,31404,32307,31404 32165,31405,32174,31405 32182,31405,32184,31405 32186,31405,32307,31405 32181,31406,32308,31406 32156,31407,32158,31407 32165,31406,32175,31408 32181,31407,32309,31408 32155,31408,32159,31409 32165,31409,32174,31409 32179,31409,32309,31409 32155,31410,32158,31410 32161,31410,32174,31410 32178,31410,32308,31410 32160,31411,32173,31411 32178,31411,32306,31411 32156,31411,32158,31411 32157,31412,32306,31412 32309,31413,32309,31413 32157,31413,32305,31413 32158,31414,32306,31414 32159,31415,32306,31415 32160,31416,32309,31416 32156,31417,32310,31417 32313,31418,32313,31418 32153,31418,32310,31418 32314,31419,32314,31419 32152,31419,32311,31420 32313,31421,32313,31421 32149,31421,32310,31421 32312,31422,32314,31422 32146,31422,32309,31422 32145,31423,32306,31423 32313,31423,32314,31423 32145,31424,32302,31425 32256,31426,32303,31426 32144,31426,32254,31426 32143,31427,32254,31427 32257,31427,32303,31427 32262,31428,32303,31428 32142,31428,32254,31428 32141,31429,32254,31429 32262,31429,32302,31429 32141,31430,32253,31430 32263,31430,32295,31430 32297,31430,32299,31430 32265,31431,32284,31431 32141,31431,32252,31431 32286,31431,32295,31432 32266,31432,32284,31432 32141,31432,32251,31432 32286,31433,32294,31433 32267,31433,32268,31433 32140,31433,32250,31433 32273,31433,32283,31433 32140,31434,32249,31434 32276,31434,32283,31434 32286,31434,32293,31434 32140,31435,32243,31435 32286,31435,32290,31435 32277,31435,32282,31435 32280,31436,32281,31436 32287,31436,32289,31436 32140,31436,32244,31437 32140,31438,32243,31438 32141,31439,32243,31439 32143,31440,32242,31440 32233,31441,32242,31441 32143,31441,32230,31441 32239,31442,32241,31442 32144,31442,32230,31442 32234,31442,32237,31442 32145,31443,32230,31443 32145,31444,32229,31444 32146,31445,32229,31445 32147,31446,32228,31446 32148,31447,32227,31447 32148,31448,32225,31448 32149,31449,32206,31449 32208,31449,32224,31449 32213,31450,32223,31450 32209,31450,32210,31450 32150,31450,32206,31451 32218,31451,32222,31451 32218,31452,32221,31452 32150,31452,32205,31452 32150,31453,32206,31454 32219,31453,32222,31455 32150,31455,32205,31455 32220,31456,32221,31456 32156,31456,32206,31456 32150,31456,32154,31456 32151,31457,32152,31457 32156,31457,32207,31458 32157,31459,32206,31459 32160,31460,32204,31460 32159,31461,32198,31461 32158,31462,32193,31462 32157,31463,32192,31463 32156,31464,32191,31465 32156,31466,32190,31466 32164,31467,32189,31467 32157,31467,32160,31467 32164,31468,32190,31469 32182,31470,32190,31470 32164,31470,32180,31470 32184,31471,32189,31471 32165,31471,32178,31471 32166,31472,32172,31472 32174,31472,32178,31472 32184,31472,32188,31472 32185,31473,32186,31473 32166,31473,32171,31473 32167,31474,32170,31474 32168,31475,32169,31475 32175,31473,32178,31476 32176,31477,32177,31477", + }, + [111] = { -- Helheim (2022 tiles, 141 rects) + name = "Helheim", + mainArea = 23, + bbox = { x1 = 32452, y1 = 31144, x2 = 32505, y2 = 31213 }, + rects = "32476,31144,32477,31144 32468,31144,32468,31144 32469,31145,32470,31145 32481,31145,32481,31145 32475,31145,32478,31146 32471,31146,32471,31146 32462,31146,32464,31146 32480,31146,32481,31147 32471,31147,32472,31147 32458,31147,32459,31147 32475,31147,32477,31147 32461,31147,32463,31147 32459,31148,32462,31148 32481,31148,32485,31148 32476,31148,32477,31148 32465,31149,32467,31149 32469,31149,32478,31149 32462,31150,32483,31150 32487,31151,32488,31151 32461,31151,32484,31152 32488,31152,32489,31152 32460,31153,32484,31153 32490,31153,32490,31153 32488,31153,32488,31153 32459,31154,32485,31154 32459,31155,32486,31155 32460,31156,32486,31156 32461,31157,32485,31157 32462,31158,32484,31158 32489,31159,32489,31159 32460,31159,32484,31159 32459,31160,32484,31160 32488,31160,32488,31160 32491,31161,32491,31161 32487,31161,32487,31161 32459,31161,32483,31161 32459,31162,32484,31162 32490,31162,32490,31163 32459,31163,32486,31163 32489,31164,32489,31164 32459,31164,32487,31164 32460,31165,32487,31165 32491,31165,32493,31165 32490,31166,32494,31166 32461,31166,32487,31166 32461,31167,32495,31167 32462,31168,32495,31169 32463,31170,32495,31170 32498,31170,32498,31170 32499,31171,32499,31171 32463,31171,32496,31171 32461,31172,32496,31172 32461,31173,32495,31173 32461,31174,32493,31174 32461,31175,32494,31175 32497,31175,32499,31175 32463,31176,32495,31176 32498,31176,32502,31176 32499,31177,32499,31177 32463,31177,32496,31177 32455,31177,32458,31177 32463,31178,32497,31178 32454,31178,32459,31179 32463,31179,32498,31179 32502,31180,32503,31180 32454,31180,32499,31180 32455,31181,32500,31181 32503,31181,32504,31181 32456,31182,32500,31182 32452,31182,32452,31182 32503,31182,32505,31183 32452,31183,32453,31183 32457,31183,32500,31184 32452,31184,32454,31184 32457,31185,32499,31185 32454,31185,32454,31185 32502,31186,32502,31186 32456,31186,32498,31186 32456,31187,32497,31187 32501,31187,32501,31187 32502,31188,32502,31188 32457,31188,32498,31188 32460,31189,32500,31189 32503,31189,32503,31189 32456,31192,32456,31192 32459,31190,32501,31193 32455,31193,32456,31193 32503,31193,32504,31193 32456,31194,32456,31194 32460,31194,32500,31194 32503,31194,32505,31194 32462,31195,32501,31195 32455,31195,32455,31195 32505,31195,32505,31195 32457,31195,32457,31195 32456,31196,32456,31196 32491,31196,32492,31196 32494,31196,32501,31196 32464,31196,32489,31196 32465,31197,32489,31197 32460,31197,32462,31197 32495,31197,32501,31197 32498,31198,32501,31198 32459,31198,32459,31198 32465,31198,32488,31198 32491,31198,32491,31198 32463,31198,32463,31198 32492,31199,32493,31199 32499,31199,32500,31199 32464,31199,32487,31200 32493,31200,32493,31200 32460,31201,32460,31201 32464,31201,32486,31201 32490,31201,32490,31201 32464,31202,32469,31202 32471,31202,32485,31202 32487,31202,32487,31203 32461,31203,32461,31203 32465,31203,32468,31203 32471,31203,32484,31203 32492,31203,32492,31203 32486,31204,32489,31204 32460,31204,32462,31204 32466,31204,32467,31204 32472,31204,32484,31204 32462,31205,32463,31205 32488,31205,32489,31205 32471,31205,32484,31206 32489,31206,32490,31206 32481,31207,32483,31207 32472,31207,32478,31207 32475,31208,32478,31208 32476,31209,32477,31209 32484,31210,32486,31210 32481,31210,32481,31210 32471,31210,32472,31211 32482,31211,32483,31211 32476,31211,32476,31211 32475,31212,32475,31212 32472,31212,32472,31212 32473,31213,32474,31213", + }, + [112] = { -- Grimlund (2264 tiles, 94 rects) + name = "Grimlund", + mainArea = 23, + bbox = { x1 = 32408, y1 = 31053, x2 = 32484, y2 = 31112 }, + rects = "32435,31053,32436,31053 32434,31054,32437,31054 32420,31054,32422,31054 32433,31055,32438,31055 32420,31055,32427,31055 32419,31056,32439,31057 32440,31059,32440,31059 32440,31060,32441,31060 32440,31061,32442,31061 32419,31058,32438,31062 32449,31063,32449,31063 32419,31063,32441,31063 32419,31064,32443,31064 32447,31064,32448,31064 32419,31065,32444,31065 32457,31065,32457,31065 32458,31066,32458,31066 32460,31066,32460,31066 32453,31066,32453,31066 32418,31066,32445,31067 32450,31067,32451,31067 32459,31067,32459,31067 32448,31068,32452,31068 32417,31068,32445,31068 32416,31069,32452,31069 32416,31070,32464,31070 32415,31071,32465,31072 32474,31072,32474,31072 32470,31073,32475,31073 32414,31073,32464,31073 32414,31074,32460,31074 32474,31074,32474,31074 32413,31075,32460,31076 32412,31077,32464,31077 32466,31077,32472,31077 32412,31078,32473,31081 32481,31081,32482,31081 32408,31082,32409,31082 32413,31082,32474,31082 32482,31082,32484,31082 32477,31082,32479,31082 32484,31083,32484,31083 32414,31083,32480,31083 32408,31083,32408,31083 32415,31084,32481,31084 32416,31085,32481,31085 32408,31086,32410,31086 32416,31086,32482,31087 32410,31087,32411,31088 32417,31088,32474,31088 32476,31088,32482,31088 32418,31089,32474,31089 32476,31089,32484,31089 32411,31089,32411,31089 32414,31090,32414,31090 32476,31090,32483,31090 32419,31090,32474,31090 32420,31091,32470,31091 32478,31091,32480,31091 32415,31091,32415,31091 32479,31092,32482,31092 32421,31092,32470,31092 32480,31093,32482,31093 32422,31093,32468,31093 32425,31094,32470,31094 32425,31095,32469,31095 32421,31096,32422,31096 32426,31096,32467,31096 32427,31097,32467,31097 32421,31097,32421,31097 32428,31098,32463,31098 32430,31099,32462,31099 32431,31100,32461,31100 32426,31100,32426,31100 32432,31101,32438,31101 32427,31101,32428,31101 32442,31101,32461,31101 32444,31102,32461,31102 32433,31102,32434,31102 32428,31102,32428,31103 32445,31103,32461,31103 32439,31103,32440,31103 32427,31104,32428,31104 32442,31104,32461,31104 32438,31104,32439,31104 32441,31105,32461,31105 32441,31106,32460,31106 32442,31107,32460,31107 32444,31108,32448,31108 32452,31108,32454,31108 32457,31108,32459,31108 32445,31109,32447,31109 32450,31110,32451,31110 32451,31111,32451,31112", + }, + [113] = { -- Tyrsung (20316 tiles, 445 rects) + name = "Tyrsung", + mainArea = 23, + bbox = { x1 = 32304, y1 = 31148, x2 = 32464, y2 = 31369 }, + rects = "32350,31148,32350,31149 32378,31149,32379,31149 32373,31149,32374,31149 32377,31150,32378,31150 32357,31150,32358,31150 32350,31150,32351,31150 32367,31150,32367,31151 32372,31150,32375,31151 32356,31151,32362,31151 32378,31151,32378,31151 32348,31151,32351,31151 32350,31152,32351,31152 32371,31152,32376,31152 32367,31152,32368,31152 32354,31152,32363,31152 32371,31153,32377,31153 32353,31153,32365,31153 32382,31154,32382,31155 32353,31154,32377,31155 32381,31156,32384,31156 32352,31156,32376,31157 32380,31157,32384,31157 32351,31158,32377,31158 32380,31158,32381,31158 32380,31159,32380,31159 32349,31159,32377,31159 32348,31160,32377,31160 32347,31161,32378,31161 32346,31162,32378,31162 32343,31163,32343,31163 32345,31163,32378,31164 32346,31165,32377,31165 32344,31166,32376,31166 32343,31167,32376,31168 32339,31168,32340,31168 32384,31169,32384,31169 32340,31169,32340,31169 32343,31169,32375,31169 32384,31170,32385,31170 32388,31170,32389,31170 32344,31170,32375,31171 32385,31171,32389,31171 32345,31172,32376,31172 32386,31172,32387,31172 32382,31173,32383,31173 32344,31173,32377,31173 32343,31174,32378,31174 32383,31174,32384,31174 32389,31174,32390,31174 32338,31174,32338,31175 32343,31175,32379,31175 32388,31175,32391,31175 32344,31176,32380,31176 32338,31176,32339,31176 32387,31176,32392,31176 32349,31177,32381,31177 32387,31177,32393,31177 32338,31177,32340,31177 32339,31178,32340,31178 32349,31178,32382,31178 32387,31178,32396,31178 32340,31179,32340,31179 32386,31179,32397,31179 32349,31179,32383,31179 32330,31179,32330,31179 32330,31180,32332,31180 32345,31180,32397,31180 32330,31181,32331,31181 32344,31181,32396,31181 32344,31182,32395,31182 32332,31183,32334,31183 32344,31183,32390,31183 32345,31184,32391,31184 32331,31184,32335,31185 32398,31184,32398,31185 32337,31185,32392,31185 32331,31186,32393,31186 32399,31186,32399,31186 32331,31187,32394,31187 32331,31188,32395,31188 32400,31187,32400,31189 32401,31190,32401,31190 32331,31189,32396,31191 32331,31192,32397,31192 32332,31193,32398,31193 32329,31194,32398,31194 32328,31195,32398,31195 32328,31196,32400,31196 32328,31197,32401,31197 32329,31198,32403,31198 32329,31199,32404,31199 32328,31200,32406,31200 32328,31201,32407,31202 32412,31202,32412,31203 32329,31203,32407,31203 32330,31204,32407,31204 32412,31204,32413,31205 32331,31205,32407,31205 32422,31206,32422,31206 32424,31206,32424,31206 32335,31206,32408,31206 32333,31207,32409,31207 32422,31207,32424,31207 32332,31208,32410,31208 32421,31208,32424,31208 32414,31208,32416,31208 32328,31208,32329,31209 32332,31209,32418,31209 32423,31209,32423,31209 32329,31210,32329,31210 32422,31210,32424,31210 32332,31210,32419,31211 32329,31211,32330,31211 32329,31212,32329,31212 32333,31212,32420,31213 32334,31214,32421,31214 32424,31215,32424,31215 32336,31215,32422,31215 32339,31216,32422,31216 32425,31216,32425,31217 32339,31217,32421,31218 32424,31218,32424,31219 32334,31219,32336,31219 32340,31219,32420,31219 32428,31219,32428,31219 32342,31220,32421,31220 32334,31220,32338,31220 32427,31220,32427,31220 32334,31221,32339,31222 32342,31221,32422,31222 32429,31222,32430,31222 32335,31223,32337,31223 32342,31223,32423,31223 32426,31223,32429,31223 32340,31224,32424,31224 32430,31224,32430,31224 32427,31224,32427,31224 32339,31225,32424,31225 32337,31226,32429,31226 32331,31226,32334,31227 32326,31227,32328,31227 32432,31227,32434,31227 32336,31227,32430,31227 32325,31228,32435,31228 32325,31229,32436,31229 32326,31230,32437,31230 32326,31231,32438,31231 32315,31231,32315,31232 32324,31232,32439,31232 32442,31232,32442,31232 32319,31232,32322,31232 32441,31233,32443,31233 32314,31233,32315,31233 32318,31233,32439,31233 32313,31234,32315,31234 32442,31234,32444,31234 32318,31234,32438,31235 32313,31235,32314,31235 32445,31236,32447,31236 32317,31236,32439,31236 32313,31236,32313,31236 32316,31237,32439,31237 32310,31237,32313,31237 32444,31237,32448,31237 32316,31238,32321,31238 32310,31238,32312,31239 32323,31238,32448,31239 32317,31239,32319,31239 32324,31240,32449,31241 32319,31241,32320,31241 32325,31242,32450,31242 32317,31242,32320,31242 32454,31242,32454,31242 32454,31243,32456,31243 32325,31243,32451,31243 32320,31243,32321,31243 32324,31244,32452,31244 32454,31244,32455,31244 32323,31245,32452,31245 32316,31245,32316,31245 32305,31245,32306,31245 32455,31245,32455,31246 32305,31246,32305,31246 32322,31246,32452,31246 32315,31246,32315,31246 32321,31247,32453,31247 32304,31247,32304,31247 32308,31248,32309,31248 32320,31248,32454,31248 32307,31249,32314,31249 32319,31249,32454,31249 32306,31250,32455,31250 32457,31251,32458,31251 32305,31251,32455,31251 32457,31252,32457,31252 32305,31252,32454,31252 32306,31253,32308,31253 32456,31253,32456,31253 32310,31253,32453,31254 32457,31254,32459,31254 32310,31255,32460,31255 32309,31256,32460,31256 32309,31257,32459,31257 32462,31257,32462,31257 32460,31258,32463,31258 32309,31258,32457,31258 32461,31259,32464,31259 32310,31259,32312,31259 32462,31260,32463,31260 32314,31259,32457,31261 32314,31262,32460,31262 32307,31262,32307,31262 32309,31262,32309,31262 32307,31263,32309,31263 32314,31263,32461,31264 32309,31264,32309,31264 32315,31265,32460,31265 32316,31266,32459,31266 32316,31267,32456,31267 32312,31268,32312,31268 32315,31268,32456,31268 32311,31269,32311,31269 32315,31269,32457,31270 32310,31270,32310,31270 32314,31271,32457,31271 32454,31272,32456,31272 32313,31272,32452,31272 32451,31275,32452,31275 32448,31275,32448,31275 32313,31273,32446,31276 32458,31276,32460,31276 32452,31276,32453,31276 32453,31277,32453,31277 32457,31277,32461,31277 32318,31277,32319,31277 32322,31277,32448,31277 32314,31277,32316,31277 32322,31278,32449,31279 32457,31278,32462,31279 32314,31279,32316,31279 32318,31279,32319,31279 32314,31280,32319,31280 32458,31280,32462,31280 32323,31280,32449,31280 32452,31280,32452,31280 32454,31280,32454,31280 32316,31281,32320,31281 32455,31281,32455,31281 32323,31281,32448,31281 32450,31281,32453,31281 32459,31281,32463,31282 32324,31282,32447,31282 32316,31282,32321,31283 32323,31283,32455,31283 32460,31283,32462,31283 32323,31284,32456,31284 32315,31284,32320,31284 32459,31284,32461,31285 32315,31285,32316,31285 32324,31285,32456,31285 32320,31285,32320,31285 32324,31286,32455,31286 32459,31286,32460,31286 32315,31286,32315,31286 32318,31287,32454,31287 32459,31287,32461,31287 32317,31288,32462,31288 32316,31289,32462,31289 32316,31290,32461,31290 32462,31291,32462,31291 32316,31291,32459,31291 32461,31292,32462,31292 32316,31292,32458,31292 32317,31293,32458,31293 32314,31293,32314,31293 32460,31293,32462,31293 32316,31294,32458,31294 32313,31294,32313,31294 32316,31295,32459,31296 32317,31297,32458,31297 32318,31298,32457,31298 32455,31300,32455,31300 32455,31301,32456,31301 32318,31299,32453,31302 32319,31303,32453,31303 32319,31304,32452,31304 32313,31305,32315,31305 32319,31305,32451,31305 32457,31305,32458,31305 32458,31306,32459,31306 32319,31306,32445,31306 32314,31306,32316,31306 32313,31307,32315,31307 32450,31307,32450,31307 32320,31307,32445,31307 32319,31308,32445,31308 32314,31308,32314,31309 32449,31308,32451,31309 32318,31309,32445,31309 32450,31310,32451,31310 32450,31311,32452,31311 32317,31310,32446,31312 32451,31312,32451,31312 32318,31313,32446,31314 32319,31315,32445,31315 32322,31316,32444,31317 32319,31318,32320,31318 32451,31318,32452,31318 32323,31318,32444,31318 32326,31319,32328,31319 32317,31319,32319,31319 32452,31319,32453,31319 32331,31319,32447,31319 32453,31320,32453,31320 32331,31320,32448,31320 32318,31320,32318,31320 32331,31321,32449,31321 32328,31322,32329,31322 32332,31322,32450,31322 32325,31322,32325,31322 32325,31323,32329,31323 32333,31323,32450,31323 32327,31324,32327,31324 32422,31324,32449,31324 32418,31324,32420,31324 32334,31324,32416,31324 32329,31324,32330,31324 32430,31325,32444,31325 32423,31325,32427,31325 32335,31325,32415,31325 32333,31326,32416,31326 32435,31326,32442,31326 32424,31326,32426,31326 32332,31327,32416,31327 32436,31327,32438,31327 32421,31327,32421,31327 32422,31328,32422,31328 32429,31328,32432,31328 32332,31328,32417,31329 32419,31329,32419,31329 32428,31329,32429,31329 32421,31329,32422,31329 32431,31329,32434,31329 32332,31330,32416,31330 32420,31330,32422,31330 32433,31330,32435,31330 32428,31330,32428,31330 32432,31331,32434,31331 32326,31331,32326,31331 32333,31331,32412,31331 32327,31332,32327,31332 32335,31332,32412,31332 32417,31332,32417,31332 32439,31332,32440,31333 32418,31333,32418,31333 32335,31333,32411,31333 32331,31333,32332,31333 32328,31333,32328,31333 32330,31334,32411,31335 32330,31336,32410,31336 32330,31337,32409,31337 32412,31337,32413,31338 32330,31338,32408,31338 32330,31339,32333,31339 32336,31339,32344,31339 32412,31339,32412,31339 32346,31339,32408,31339 32347,31340,32408,31340 32411,31340,32411,31340 32336,31340,32342,31340 32331,31340,32332,31340 32348,31341,32407,31341 32336,31341,32340,31342 32345,31342,32345,31342 32334,31342,32334,31342 32352,31342,32412,31342 32344,31343,32346,31343 32352,31343,32413,31343 32336,31343,32339,31343 32333,31343,32334,31343 32337,31344,32338,31344 32334,31344,32334,31344 32353,31344,32413,31344 32343,31344,32347,31344 32354,31345,32413,31345 32344,31345,32344,31345 32350,31345,32350,31345 32351,31346,32351,31346 32354,31346,32412,31346 32370,31347,32411,31347 32355,31347,32367,31347 32352,31347,32352,31347 32370,31348,32410,31348 32355,31348,32366,31348 32371,31349,32410,31349 32414,31349,32414,31349 32356,31349,32366,31349 32370,31350,32409,31350 32413,31350,32413,31350 32367,31350,32368,31350 32356,31350,32365,31350 32370,31351,32382,31351 32405,31351,32407,31351 32412,31351,32412,31351 32368,31351,32368,31351 32387,31351,32402,31351 32368,31352,32369,31352 32386,31352,32400,31352 32371,31352,32374,31352 32380,31352,32381,31352 32411,31352,32412,31352 32355,31351,32365,31354 32385,31353,32398,31354 32368,31353,32368,31354 32404,31354,32404,31354 32381,31354,32382,31354 32378,31354,32378,31354 32385,31355,32397,31355 32378,31355,32381,31355 32405,31355,32405,31355 32354,31355,32365,31356 32379,31356,32380,31356 32385,31356,32391,31356 32405,31356,32406,31356 32355,31357,32365,31357 32404,31357,32405,31357 32385,31357,32390,31357 32386,31358,32389,31358 32358,31358,32365,31358 32360,31359,32364,31359 32383,31359,32384,31359 32392,31359,32393,31359 32390,31360,32393,31360 32382,31360,32383,31360 32362,31360,32363,31360 32356,31361,32373,31361 32389,31361,32390,31361 32355,31362,32373,31362 32354,31363,32373,31363 32351,31364,32374,31364 32351,31365,32373,31365 32353,31366,32374,31366 32354,31367,32373,31367 32355,31368,32373,31368 32356,31369,32373,31369", + }, + [114] = { -- Formorgar Glacier (13677 tiles, 718 rects) + name = "Formorgar Glacier", + mainArea = 23, + bbox = { x1 = 31955, y1 = 31005, x2 = 32217, y2 = 31280 }, + rects = "32165,31005,32165,31006 32164,31007,32165,31007 32165,31008,32165,31008 32161,31011,32162,31011 32145,31011,32145,31011 32154,31011,32154,31011 32170,31012,32170,31012 32142,31012,32144,31012 32154,31012,32155,31012 32163,31012,32164,31013 32141,31013,32142,31013 32169,31013,32171,31013 32154,31013,32156,31013 32130,31013,32130,31014 32168,31014,32173,31014 32148,31014,32149,31014 32140,31014,32141,31014 32153,31014,32153,31014 32147,31015,32150,31015 32169,31015,32173,31015 32140,31015,32140,31015 32170,31016,32173,31016 32146,31016,32150,31016 32165,31017,32165,31017 32132,31017,32132,31017 32136,31017,32136,31017 32192,31017,32192,31017 32145,31017,32151,31017 32191,31018,32193,31018 32144,31018,32145,31018 32135,31018,32135,31018 32153,31018,32154,31018 32166,31018,32167,31018 32201,31018,32201,31018 32132,31018,32133,31018 32166,31019,32168,31019 32193,31019,32193,31019 32202,31019,32202,31019 32155,31019,32157,31019 32144,31019,32144,31019 32133,31019,32134,31019 32191,31019,32191,31019 32128,31020,32130,31020 32174,31021,32174,31021 32127,31021,32131,31022 32198,31021,32199,31022 32206,31022,32206,31022 32143,31022,32143,31022 32130,31023,32133,31023 32189,31023,32191,31023 32175,31023,32175,31023 32199,31023,32199,31024 32121,31024,32123,31024 32176,31024,32176,31024 32188,31024,32188,31025 32131,31024,32131,31025 32177,31025,32177,31025 32184,31025,32185,31025 32123,31025,32125,31025 32123,31026,32126,31026 32183,31026,32184,31026 32178,31026,32178,31026 32123,31027,32123,31027 32182,31027,32183,31027 32126,31027,32126,31028 32198,31028,32198,31028 32182,31028,32182,31028 32125,31029,32125,31029 32196,31029,32198,31029 32196,31030,32199,31030 32197,31031,32197,31031 32185,31031,32185,31031 32204,31031,32204,31031 32207,31030,32207,31032 32129,31030,32129,31032 32217,31031,32217,31032 32183,31032,32183,31032 32211,31032,32212,31032 32203,31032,32204,31032 32211,31033,32216,31033 32202,31033,32207,31033 32122,31034,32123,31034 32202,31034,32204,31034 32210,31034,32211,31035 32198,31036,32198,31036 32209,31037,32209,31038 32115,31039,32115,31039 32207,31039,32208,31039 32203,31040,32206,31040 32121,31042,32121,31042 32105,31043,32107,31043 32104,31044,32108,31044 32105,31045,32108,31045 32107,31046,32109,31046 32107,31047,32110,31047 32114,31047,32118,31047 32113,31048,32114,31048 32108,31048,32109,31048 32109,31049,32109,31049 32103,31053,32103,31054 32093,31054,32093,31054 32096,31054,32096,31054 32094,31055,32096,31055 32100,31055,32102,31055 32099,31056,32099,31056 32101,31056,32101,31056 32096,31056,32096,31056 32106,31057,32106,31057 32092,31057,32092,31057 32092,31058,32096,31058 32095,31059,32095,31059 32098,31060,32099,31061 32097,31062,32100,31062 32092,31062,32092,31062 32090,31063,32092,31063 32086,31064,32087,31064 32090,31064,32091,31064 32080,31065,32080,31065 32087,31065,32089,31065 32087,31066,32087,31066 32081,31066,32081,31067 32093,31067,32094,31068 32081,31068,32082,31068 32088,31069,32094,31069 32085,31069,32085,31069 32084,31070,32094,31070 32076,31070,32076,31070 32075,31071,32076,31071 32083,31071,32094,31071 32079,31071,32079,31071 32075,31072,32079,31072 32082,31072,32094,31073 32076,31073,32078,31073 32066,31073,32066,31073 32072,31073,32072,31073 32081,31074,32100,31074 32077,31074,32077,31074 32066,31074,32067,31074 32072,31074,32073,31074 32081,31075,32101,31075 32071,31075,32073,31075 32103,31075,32109,31075 32065,31075,32066,31075 32070,31076,32074,31076 32066,31076,32066,31076 32079,31076,32111,31077 32070,31077,32073,31077 32065,31077,32065,31077 32078,31078,32114,31078 32069,31078,32075,31079 32077,31079,32113,31080 32065,31080,32065,31080 32068,31080,32075,31080 32068,31081,32111,31081 32068,31082,32108,31082 32067,31083,32104,31083 32106,31083,32108,31083 32064,31084,32104,31084 32091,31085,32101,31085 32103,31085,32104,31085 32061,31085,32062,31085 32064,31085,32089,31085 32059,31086,32061,31086 32065,31086,32068,31086 32070,31086,32087,31086 32131,31087,32131,31087 32058,31087,32061,31087 32070,31087,32085,31087 32066,31087,32066,31087 32128,31087,32128,31088 32126,31088,32126,31088 32067,31088,32084,31088 32130,31088,32131,31088 32057,31088,32061,31088 32058,31089,32060,31089 32067,31089,32085,31090 32126,31089,32131,31090 32054,31090,32056,31090 32059,31090,32060,31090 32054,31091,32055,31091 32067,31091,32083,31091 32060,31091,32060,31092 32125,31091,32130,31092 32078,31092,32085,31092 32054,31092,32054,31092 32067,31092,32072,31092 32063,31091,32064,31093 32122,31093,32129,31093 32067,31093,32071,31093 32078,31093,32086,31093 32059,31093,32059,31093 32079,31094,32087,31094 32067,31094,32070,31094 32122,31094,32127,31094 32063,31094,32063,31094 32063,31095,32070,31095 32085,31095,32087,31095 32056,31095,32056,31095 32122,31095,32125,31096 32056,31096,32057,31096 32062,31096,32070,31096 32064,31097,32068,31097 32122,31097,32124,31097 32121,31098,32124,31098 32064,31098,32067,31098 32032,31099,32033,31099 32066,31099,32066,31099 32030,31099,32030,31099 32121,31099,32123,31100 32031,31100,32032,31100 32024,31100,32025,31101 32121,31101,32124,31101 32032,31101,32032,31101 32124,31102,32124,31102 32020,31102,32025,31102 32121,31102,32122,31102 32031,31102,32031,31102 32020,31103,32026,31103 32119,31103,32122,31104 32030,31103,32030,31104 32118,31105,32122,31105 32023,31104,32026,31106 32117,31106,32122,31106 32017,31106,32017,31106 32017,31107,32019,31107 32028,31107,32028,31107 32023,31107,32024,31108 32014,31108,32018,31108 32117,31107,32121,31109 32015,31109,32018,31109 32023,31109,32023,31109 32016,31110,32018,31110 32022,31110,32023,31110 32117,31110,32120,31110 32118,31111,32120,31112 32148,31112,32148,31112 32141,31112,32141,31112 32021,31111,32023,31113 32147,31113,32151,31113 32017,31113,32019,31113 32141,31113,32145,31113 32006,31113,32007,31113 32119,31113,32120,31114 32007,31114,32008,31114 32016,31114,32019,31114 32022,31114,32023,31115 32017,31115,32020,31115 32119,31115,32123,31115 31991,31115,31991,31115 32018,31116,32022,31116 31992,31116,31992,31116 32011,31116,32011,31116 32002,31116,32005,31116 32141,31114,32152,31117 32119,31116,32122,31117 31999,31117,32007,31117 31996,31117,31997,31117 32014,31117,32015,31117 32017,31117,32021,31117 32138,31118,32152,31118 32117,31118,32122,31118 32014,31118,32021,31118 31995,31118,32008,31118 32011,31117,32012,31119 32015,31119,32021,31119 32137,31119,32153,31119 31995,31119,32009,31119 32016,31120,32021,31120 32136,31120,32153,31120 31998,31120,32013,31120 31998,31121,32014,31121 32016,31121,32022,31121 32117,31119,32121,31122 31998,31122,32023,31122 32138,31121,32152,31123 31997,31123,32023,31123 31996,31124,32025,31124 32118,31123,32121,31125 31995,31125,32025,31125 32138,31124,32151,31126 31995,31126,32027,31126 32118,31126,32122,31127 31995,31127,32026,31127 32136,31127,32151,31128 31996,31128,32026,31128 31997,31129,32025,31129 32142,31129,32153,31129 32119,31128,32123,31130 32143,31130,32156,31130 32059,31130,32059,31130 31998,31130,32024,31130 32119,31131,32124,31131 32059,31131,32060,31131 31999,31131,32022,31131 32144,31131,32159,31132 32058,31132,32061,31132 32048,31132,32048,31132 32001,31132,32022,31132 32119,31132,32125,31133 32061,31133,32061,31133 32048,31133,32049,31133 32004,31133,32022,31133 32144,31133,32148,31133 32155,31133,32159,31133 32052,31133,32053,31133 32119,31134,32126,31134 32005,31134,32022,31134 32048,31134,32052,31134 32066,31134,32066,31134 32155,31134,32156,31135 32144,31134,32146,31135 32159,31134,32159,31135 32051,31135,32052,31135 32066,31135,32067,31135 32004,31135,32021,31135 32118,31135,32126,31136 32003,31136,32020,31136 32056,31136,32059,31136 32066,31136,32068,31136 32056,31137,32063,31137 32004,31137,32020,31137 32118,31137,32127,31137 32067,31137,32068,31138 32118,31138,32128,31138 32055,31138,32063,31138 32049,31139,32049,31139 32055,31139,32064,31139 32068,31139,32068,31139 32118,31139,32129,31139 32006,31138,32017,31140 32117,31140,32129,31140 32054,31140,32064,31141 32071,31140,32072,31141 32118,31141,32128,31141 32049,31140,32051,31142 32007,31141,32017,31142 32119,31142,32127,31142 32070,31142,32073,31142 32088,31140,32088,31143 32057,31142,32064,31143 32050,31143,32050,31143 32008,31143,32018,31143 32069,31143,32073,31143 32123,31143,32126,31144 32009,31144,32018,31144 32067,31144,32073,31145 32085,31144,32088,31145 32000,31145,32000,31145 32082,31146,32088,31146 32052,31146,32052,31146 32047,31146,32047,31146 32066,31146,32073,31146 32001,31146,32002,31146 32057,31144,32063,31147 32035,31146,32035,31147 32066,31147,32074,31147 32047,31147,32048,31147 32000,31147,32002,31147 32052,31147,32053,31147 32082,31147,32087,31148 32000,31148,32000,31148 32057,31148,32077,31148 32034,31148,32035,31148 32003,31148,32003,31148 32052,31148,32054,31148 31999,31149,31999,31149 32011,31145,32018,31150 32047,31148,32049,31150 32058,31149,32087,31150 32053,31149,32054,31150 32033,31149,32035,31151 32009,31151,32018,31151 32058,31151,32085,31151 32047,31151,32050,31151 32008,31152,32021,31152 32033,31152,32039,31152 32057,31152,32085,31153 32047,31152,32051,31153 32003,31152,32003,31153 32034,31153,32040,31153 32010,31153,32021,31153 32047,31154,32052,31154 32034,31154,32042,31154 32011,31154,32018,31154 32057,31154,32082,31155 32005,31155,32005,31155 32034,31155,32052,31155 32010,31155,32018,31156 32032,31156,32037,31156 32004,31156,32005,31156 32057,31156,32079,31156 32041,31156,32052,31157 32056,31157,32079,31157 32003,31157,32006,31157 32031,31157,32034,31157 32005,31158,32005,31158 32030,31158,32033,31158 32041,31158,32079,31158 32038,31159,32079,31159 32029,31159,32032,31159 32012,31157,32018,31160 32037,31160,32079,31160 32012,31161,32017,31161 32083,31160,32083,31162 32039,31161,32079,31163 32011,31162,32017,31163 32083,31163,32084,31163 32003,31163,32003,31163 32089,31164,32090,31164 32008,31164,32017,31164 31996,31164,32000,31164 32095,31161,32097,31165 32083,31164,32085,31165 32038,31164,32079,31165 31997,31165,32001,31165 32007,31165,32016,31166 31998,31166,32001,31166 32039,31166,32085,31166 32094,31166,32097,31167 31985,31167,31985,31167 32041,31167,32085,31167 32008,31167,32016,31167 32002,31167,32002,31167 32089,31165,32091,31168 32093,31168,32095,31168 32007,31168,32015,31168 31986,31168,31986,31168 32024,31167,32024,31169 32041,31168,32084,31169 32007,31169,32014,31169 31987,31169,31988,31169 32089,31169,32095,31169 32007,31170,32013,31170 32089,31170,32094,31170 32024,31170,32026,31170 31988,31170,31989,31170 32024,31171,32027,31171 32003,31171,32004,31171 32090,31171,32094,31171 32006,31171,32013,31171 31997,31171,31997,31171 32040,31170,32084,31172 32002,31172,32014,31172 32024,31172,32028,31172 31993,31172,31998,31172 32037,31173,32084,31173 31992,31173,31999,31173 32024,31173,32029,31173 32001,31173,32018,31173 31977,31173,31977,31173 32090,31172,32092,31174 32024,31174,32030,31174 31982,31174,31982,31174 31992,31174,32019,31174 32100,31175,32100,31175 31973,31175,31974,31175 31986,31175,31987,31175 31992,31175,32030,31175 32037,31174,32086,31176 31974,31176,31975,31176 31985,31176,32031,31176 32100,31176,32101,31177 31979,31176,31979,31177 31985,31177,32086,31177 32090,31175,32093,31178 31976,31177,31976,31178 32100,31178,32102,31178 31979,31178,32086,31178 31979,31179,32087,31179 32099,31179,32102,31180 32109,31180,32110,31180 31968,31180,31968,31180 31980,31180,32087,31180 32089,31179,32093,31181 31979,31181,32087,31181 31967,31181,31968,31181 32099,31181,32111,31181 31966,31182,31967,31182 31975,31182,32111,31182 31963,31183,31967,31183 31973,31183,32111,31184 31966,31184,31966,31184 31972,31185,32111,31185 31971,31186,32109,31187 31970,31188,32107,31188 31969,31189,32107,31190 31964,31190,31964,31190 31964,31191,31965,31191 31963,31192,31964,31192 31973,31191,32108,31193 31964,31193,31965,31193 31966,31194,31966,31194 31973,31194,32109,31194 31973,31195,32019,31195 32022,31195,32109,31195 32025,31196,32109,31196 31972,31196,32017,31196 31973,31197,32015,31197 32028,31197,32112,31197 32029,31198,32113,31198 31974,31198,32015,31198 31974,31199,32014,31199 31969,31199,31969,31199 32029,31199,32112,31199 31970,31200,31970,31200 31975,31200,32013,31201 31969,31201,31969,31201 32029,31200,32105,31202 31963,31202,31963,31202 31974,31202,32012,31202 32117,31202,32117,31203 31962,31203,31965,31203 31973,31203,32012,31203 32109,31204,32110,31204 31972,31204,32013,31204 31963,31204,31964,31204 32114,31204,32117,31204 31963,31205,31963,31205 32109,31205,32117,31205 31970,31205,32013,31205 32029,31203,32106,31206 31968,31206,32015,31206 32108,31206,32116,31206 32028,31207,32114,31207 31967,31207,32015,31207 31961,31208,31961,31208 31967,31208,32016,31208 32028,31208,32111,31208 31956,31209,31956,31209 32028,31209,32110,31209 31960,31209,31962,31209 31955,31210,31962,31210 32027,31210,32110,31210 32028,31211,32110,31211 31958,31211,31959,31211 31967,31209,32021,31212 32028,31212,32112,31212 32078,31213,32107,31213 32069,31213,32071,31213 32028,31213,32067,31213 32111,31213,32115,31213 31963,31213,32021,31213 32027,31214,32067,31214 31963,31214,32020,31214 32078,31214,32104,31215 32111,31214,32116,31215 32026,31215,32068,31215 31969,31215,32020,31215 32077,31216,32104,31216 32025,31216,32067,31216 31970,31216,32020,31216 32112,31216,32115,31216 32113,31217,32115,31217 32075,31217,32104,31217 31970,31217,32019,31218 32025,31217,32068,31218 32076,31218,32104,31218 32112,31218,32114,31219 32024,31219,32069,31219 31971,31219,32017,31219 32023,31220,32069,31220 31971,31220,32000,31220 32113,31220,32114,31221 31971,31221,31996,31221 32023,31221,32070,31221 32075,31219,32104,31222 31969,31222,31995,31222 32021,31222,32072,31223 31968,31223,31986,31223 31988,31223,31995,31223 32114,31222,32114,31224 32075,31223,32105,31224 32020,31224,32071,31224 31991,31224,31992,31224 32075,31225,32106,31226 31969,31224,31986,31227 32020,31225,32070,31227 32075,31227,32107,31227 31969,31228,31985,31228 32020,31228,32071,31228 32074,31228,32107,31228 32074,31229,32108,31229 32021,31229,32071,31230 32074,31230,32105,31230 32107,31230,32110,31230 31969,31229,31983,31231 32021,31231,32064,31231 32104,31231,32111,31231 32074,31231,32100,31232 31968,31232,31982,31232 32105,31232,32111,31232 32021,31232,32063,31233 32071,31231,32071,31234 32074,31233,32101,31234 32021,31234,32062,31234 31969,31233,31982,31235 32020,31235,32062,31235 32070,31235,32071,31235 32074,31235,32102,31237 32019,31236,32062,31237 32019,31238,32059,31238 32073,31238,32102,31238 32073,31239,32106,31239 32018,31239,32054,31239 31968,31236,31981,31240 32018,31240,32050,31240 32017,31241,32050,31241 31967,31241,31981,31241 32015,31242,32046,31242 31968,31242,31981,31242 32070,31236,32070,31243 32073,31240,32107,31243 32011,31243,32045,31243 31970,31243,31981,31243 32069,31244,32070,31244 32003,31244,32045,31244 31971,31244,31982,31244 32067,31245,32069,31245 31999,31245,32043,31245 31971,31245,31983,31245 32076,31244,32107,31246 31996,31246,32042,31246 32063,31246,32068,31246 31971,31246,31984,31246 31996,31247,32039,31247 31971,31247,31985,31247 32105,31247,32108,31247 32062,31247,32063,31247 32077,31247,32097,31248 32060,31248,32062,31248 31993,31248,32038,31248 32106,31248,32108,31248 31969,31248,31986,31249 32057,31249,32060,31249 32077,31249,32094,31249 31991,31249,32038,31249 32078,31250,32094,31250 31991,31250,32023,31250 32056,31250,32057,31250 31975,31250,31986,31251 31991,31251,32020,31251 32054,31251,32056,31251 32031,31250,32037,31252 32080,31251,32094,31252 32009,31252,32016,31252 31991,31252,32007,31252 32053,31252,32054,31252 31976,31252,31987,31253 32077,31252,32078,31253 32032,31253,32037,31253 32016,31253,32016,31253 32081,31253,32094,31253 31991,31253,32006,31253 32011,31253,32011,31253 32051,31253,32053,31253 32014,31253,32014,31254 32081,31254,32095,31254 32010,31254,32011,31254 31991,31254,32001,31254 32005,31254,32005,31254 32032,31254,32036,31254 31978,31254,31987,31254 32050,31254,32051,31254 31991,31255,31995,31255 31997,31255,32000,31255 31981,31255,31987,31255 32046,31255,32051,31255 32010,31255,32010,31255 32032,31255,32032,31255 32077,31254,32079,31256 32081,31255,32096,31256 31984,31256,31984,31256 31994,31256,31994,31256 31997,31256,32001,31256 32070,31257,32073,31257 32082,31257,32097,31257 32076,31257,32080,31258 32069,31258,32073,31258 32082,31258,32098,31259 32102,31259,32105,31259 32077,31259,32080,31259 32068,31259,32073,31260 32101,31260,32105,31260 32078,31260,32099,31260 32067,31261,32075,31261 32085,31261,32106,31261 32078,31261,32083,31261 32066,31262,32082,31262 32086,31262,32107,31263 32065,31263,32068,31263 32070,31263,32082,31263 32072,31264,32075,31264 32087,31264,32106,31264 32078,31264,32083,31264 32064,31264,32067,31264 32073,31265,32074,31265 32080,31265,32083,31265 32087,31265,32104,31265 32088,31266,32102,31266 32082,31266,32085,31267 32090,31267,32101,31267 32090,31268,32100,31268 32082,31268,32086,31268 32083,31269,32087,31269 32090,31269,32098,31269 32085,31270,32088,31270 32093,31270,32097,31270 32081,31270,32083,31270 32081,31271,32084,31271 32094,31271,32096,31271 32086,31271,32088,31271 32087,31272,32088,31272 32081,31272,32085,31272 32094,31272,32094,31272 32082,31273,32085,31276 32082,31277,32086,31277 32083,31278,32087,31279 32085,31280,32086,31280", + }, + [116] = { -- Krimhorn (11612 tiles, 197 rects) + name = "Krimhorn", + mainArea = 23, + bbox = { x1 = 31966, y1 = 31264, x2 = 32084, y2 = 31455 }, + rects = "32063,31264,32063,31264 32057,31265,32068,31265 32056,31266,32070,31266 32074,31267,32077,31267 32056,31267,32072,31267 32056,31268,32078,31268 32055,31269,32078,31269 32050,31270,32078,31272 32049,31273,32078,31273 32049,31274,32080,31276 32047,31277,32079,31278 32046,31279,32079,31279 32044,31280,32079,31280 32043,31281,32079,31281 32041,31281,32041,31281 32040,31282,32079,31282 32039,31283,32079,31284 32038,31285,32079,31286 32037,31287,32079,31287 32036,31288,32079,31288 32034,31289,32079,31289 32033,31290,32079,31290 32033,31291,32080,31291 32032,31292,32080,31293 32019,31293,32022,31294 32031,31294,32080,31294 32017,31295,32080,31295 32017,31296,32081,31298 32018,31299,32081,31299 32020,31300,32082,31301 32021,31302,32082,31302 32021,31303,32084,31303 32022,31304,32084,31304 32023,31305,32084,31306 32024,31307,32084,31307 32024,31308,32083,31308 32023,31309,32083,31309 32021,31310,32082,31310 32015,31310,32017,31310 32014,31311,32066,31311 32070,31311,32082,31311 32014,31312,32065,31312 32071,31312,32082,31313 32014,31313,32064,31314 32072,31314,32083,31314 32012,31315,32063,31315 32076,31315,32083,31315 32076,31316,32082,31316 32011,31316,32059,31316 32076,31317,32081,31317 32010,31317,32059,31318 32077,31318,32081,31318 32011,31319,32060,31319 32078,31319,32081,31319 32011,31320,32061,31321 32010,31322,32060,31322 32009,31323,32057,31323 32006,31324,32056,31324 32005,31325,32055,31327 32001,31328,32002,31328 32005,31328,32056,31328 32000,31329,32058,31329 32000,31330,32059,31331 32061,31331,32065,31331 32000,31332,32066,31333 32001,31334,32066,31334 32002,31335,32067,31335 32003,31336,32068,31336 32003,31337,32069,31337 32004,31338,32069,31338 32003,31339,32069,31339 32002,31340,32068,31340 32001,31341,32067,31341 32000,31342,32068,31342 32000,31343,32069,31343 32000,31344,32070,31344 32000,31345,32071,31346 32001,31347,32071,31347 32002,31348,32071,31348 32004,31349,32070,31349 32005,31350,32070,31350 32005,31351,32069,31351 32005,31352,32068,31352 32004,31353,32067,31353 32002,31354,32066,31354 32001,31355,32064,31355 32001,31356,32062,31356 32002,31357,32063,31357 32008,31358,32064,31358 32004,31358,32005,31358 32009,31359,32064,31359 32006,31360,32063,31360 32003,31361,32061,31361 31999,31362,32061,31362 31998,31363,32061,31363 31997,31364,32062,31364 31996,31365,32062,31365 31996,31366,32064,31366 31997,31367,32065,31367 31998,31368,32065,31368 31998,31369,32061,31369 32063,31369,32064,31369 31998,31370,32059,31370 31994,31370,31995,31370 31984,31371,32056,31371 31983,31372,32054,31372 31983,31373,32053,31373 31983,31374,32052,31375 31982,31376,32052,31377 31983,31378,32052,31379 31982,31380,32051,31380 31981,31381,32050,31382 31981,31383,32051,31383 32053,31383,32056,31383 31981,31384,32057,31384 31982,31385,32057,31385 31984,31386,32057,31386 31983,31387,32062,31387 31982,31388,32063,31389 31983,31390,32062,31391 32052,31392,32062,31392 31983,31392,32049,31392 31982,31393,32049,31393 32052,31393,32063,31394 31981,31394,32049,31394 32053,31395,32063,31395 31980,31395,32050,31396 31975,31396,31977,31396 32057,31396,32063,31396 31980,31397,32049,31397 31974,31397,31978,31397 32060,31397,32063,31398 31973,31398,32050,31398 31970,31399,31971,31399 31967,31399,31968,31399 31973,31399,32051,31399 32061,31399,32062,31399 31966,31400,32052,31401 31967,31402,32052,31405 31968,31406,32051,31406 31968,31407,32049,31407 31968,31408,32048,31408 31969,31409,32047,31409 31970,31410,32047,31410 31971,31411,32047,31411 31971,31412,32049,31412 31972,31413,32050,31414 31971,31415,32051,31416 31972,31417,32051,31417 31975,31418,32051,31418 31973,31419,32051,31419 31972,31420,32051,31421 31973,31422,32052,31422 31974,31423,31975,31423 31977,31423,32053,31424 31978,31425,32054,31425 32058,31426,32059,31426 31977,31426,32054,31426 32057,31427,32060,31427 31977,31427,32055,31427 31977,31428,32061,31428 31978,31429,32061,31429 31984,31430,32061,31430 31984,31431,32055,31431 32059,31431,32060,31431 32052,31432,32053,31432 31984,31432,32050,31433 31984,31434,32051,31435 31985,31436,32050,31436 31985,31437,31991,31437 31994,31437,32046,31437 31994,31438,32045,31438 31994,31439,32044,31439 31986,31438,31990,31440 31995,31440,32037,31440 32040,31440,32042,31440 31996,31441,32036,31441 31987,31441,31989,31441 31996,31442,32037,31442 31996,31443,32038,31443 31997,31444,32039,31444 31999,31445,32039,31445 32000,31446,32040,31446 32001,31447,32005,31447 32008,31447,32040,31448 32002,31448,32004,31448 32009,31449,32041,31449 32013,31450,32022,31450 32026,31450,32041,31450 32035,31451,32040,31451 32026,31451,32032,31451 32013,31451,32016,31451 32014,31452,32015,31452 32036,31452,32037,31452 32027,31452,32032,31453 32028,31454,32031,31454 32029,31455,32030,31455", + }, + [117] = { -- Svargrond Surroundings (5199 tiles, 435 rects) + name = "Svargrond Surroundings", + mainArea = 23, + bbox = { x1 = 32165, y1 = 31002, x2 = 32312, y2 = 31247 }, + rects = "32214,31002,32214,31002 32215,31003,32216,31003 32215,31004,32217,31004 32216,31005,32219,31005 32229,31005,32229,31005 32217,31006,32219,31006 32223,31006,32224,31006 32229,31006,32230,31007 32222,31007,32225,31007 32237,31007,32239,31007 32234,31006,32234,31008 32229,31008,32231,31008 32224,31008,32224,31008 32238,31008,32241,31008 32240,31009,32240,31009 32228,31009,32230,31009 32234,31009,32235,31009 32224,31010,32224,31010 32233,31010,32235,31010 32249,31010,32250,31010 32222,31011,32226,31011 32244,31011,32244,31011 32249,31011,32251,31011 32222,31012,32227,31012 32245,31012,32245,31012 32249,31012,32250,31012 32239,31011,32239,31013 32241,31012,32241,31013 32246,31013,32246,31013 32222,31013,32229,31013 32232,31011,32236,31014 32222,31014,32230,31014 32274,31014,32275,31014 32241,31014,32242,31014 32219,31015,32237,31015 32241,31015,32244,31015 32273,31015,32276,31016 32268,31016,32269,31016 32250,31016,32251,31016 32219,31016,32225,31016 32227,31016,32246,31017 32250,31017,32252,31017 32267,31017,32271,31017 32217,31017,32225,31017 32273,31017,32278,31017 32228,31018,32243,31018 32218,31018,32225,31018 32267,31018,32279,31019 32229,31019,32243,31019 32219,31019,32225,31019 32221,31020,32225,31020 32268,31020,32279,31020 32227,31020,32245,31020 32269,31021,32279,31021 32222,31021,32249,31021 32267,31022,32279,31022 32222,31022,32248,31022 32258,31021,32258,31023 32216,31021,32216,31023 32221,31023,32247,31023 32265,31023,32279,31023 32250,31023,32251,31024 32264,31024,32278,31024 32258,31024,32259,31024 32220,31024,32248,31024 32253,31024,32254,31025 32264,31025,32277,31025 32220,31025,32251,31025 32215,31024,32216,31026 32257,31025,32259,31026 32264,31026,32278,31026 32220,31026,32221,31026 32226,31026,32251,31026 32253,31026,32253,31026 32232,31027,32253,31027 32226,31027,32227,31027 32258,31027,32258,31027 32265,31027,32278,31027 32232,31028,32254,31028 32227,31028,32227,31028 32268,31028,32278,31028 32272,31029,32278,31029 32236,31029,32254,31029 32237,31030,32254,31030 32259,31030,32260,31030 32276,31030,32277,31030 32258,31031,32261,31031 32237,31031,32255,31032 32257,31032,32262,31032 32237,31033,32262,31033 32270,31034,32272,31034 32237,31034,32259,31034 32238,31035,32257,31035 32269,31035,32276,31035 32239,31036,32257,31036 32262,31036,32263,31036 32269,31036,32277,31037 32263,31037,32264,31037 32239,31037,32259,31037 32270,31038,32276,31038 32242,31038,32259,31038 32270,31039,32275,31039 32245,31039,32261,31039 32243,31039,32243,31039 32282,31040,32284,31040 32248,31040,32261,31040 32278,31040,32279,31040 32270,31040,32274,31040 32257,31041,32262,31041 32284,31041,32286,31041 32270,31041,32272,31041 32277,31041,32280,31041 32266,31041,32267,31041 32258,31042,32262,31042 32265,31042,32280,31042 32302,31042,32302,31042 32286,31042,32286,31042 32258,31043,32283,31043 32305,31044,32306,31044 32302,31044,32302,31044 32260,31044,32284,31045 32306,31045,32306,31045 32277,31046,32284,31046 32291,31046,32292,31046 32261,31046,32270,31046 32290,31047,32291,31047 32304,31047,32304,31047 32276,31047,32283,31047 32262,31047,32267,31047 32296,31047,32296,31048 32290,31048,32290,31048 32300,31048,32300,31048 32264,31048,32266,31048 32303,31048,32305,31048 32275,31048,32283,31049 32265,31049,32265,31049 32300,31049,32301,31049 32303,31049,32306,31049 32275,31050,32282,31050 32293,31050,32293,31050 32286,31050,32286,31050 32299,31050,32306,31051 32294,31051,32294,31051 32276,31051,32282,31051 32288,31052,32288,31052 32293,31052,32293,31052 32295,31052,32295,31052 32277,31052,32283,31052 32299,31052,32307,31052 32295,31053,32307,31053 32287,31053,32288,31053 32276,31053,32283,31053 32275,31054,32281,31054 32295,31054,32308,31055 32286,31054,32289,31055 32272,31055,32280,31056 32295,31056,32305,31056 32285,31056,32290,31056 32271,31057,32305,31057 32307,31057,32309,31057 32307,31058,32310,31058 32270,31058,32305,31058 32270,31059,32310,31059 32268,31060,32310,31060 32268,31061,32309,31061 32267,31062,32307,31062 32306,31063,32307,31063 32267,31063,32303,31063 32267,31064,32304,31064 32307,31064,32307,31064 32267,31065,32305,31065 32267,31066,32306,31069 32269,31070,32305,31070 32298,31071,32299,31071 32302,31071,32303,31071 32269,31071,32294,31072 32298,31072,32298,31072 32302,31072,32302,31072 32311,31073,32311,31073 32308,31073,32308,31073 32268,31073,32294,31075 32269,31076,32295,31076 32307,31077,32307,31077 32298,31077,32298,31077 32271,31077,32295,31077 32311,31074,32312,31078 32305,31076,32305,31078 32271,31078,32293,31078 32298,31078,32299,31078 32307,31078,32308,31078 32271,31079,32291,31079 32295,31079,32312,31079 32293,31080,32312,31080 32271,31080,32286,31080 32289,31080,32290,31081 32309,31081,32312,31081 32292,31081,32307,31081 32272,31081,32287,31082 32294,31082,32307,31082 32311,31082,32312,31082 32272,31083,32288,31083 32291,31083,32309,31083 32297,31084,32311,31084 32273,31084,32288,31084 32290,31084,32295,31085 32287,31085,32288,31085 32273,31085,32282,31085 32298,31085,32310,31085 32273,31086,32285,31086 32290,31086,32290,31086 32299,31086,32309,31087 32289,31087,32290,31087 32273,31087,32287,31088 32293,31088,32295,31088 32299,31088,32308,31088 32289,31088,32291,31088 32273,31089,32285,31089 32299,31089,32305,31089 32293,31089,32296,31089 32299,31090,32304,31090 32287,31090,32290,31090 32292,31090,32296,31090 32274,31090,32283,31091 32292,31091,32304,31091 32285,31091,32290,31091 32281,31092,32281,31092 32285,31092,32302,31092 32275,31092,32275,31093 32283,31093,32303,31093 32285,31094,32304,31095 32275,31095,32275,31095 32276,31096,32276,31096 32283,31096,32297,31096 32287,31097,32287,31098 32282,31102,32282,31102 32279,31103,32280,31103 32196,31156,32199,31156 32176,31156,32181,31156 32176,31157,32183,31157 32192,31157,32199,31157 32186,31157,32189,31158 32175,31158,32184,31158 32175,31159,32189,31159 32172,31160,32189,31160 32171,31161,32189,31161 32191,31158,32199,31162 32171,31162,32173,31162 32175,31162,32188,31162 32172,31163,32188,31163 32190,31163,32199,31164 32173,31164,32188,31164 32190,31165,32198,31165 32173,31165,32187,31165 32186,31166,32187,31166 32173,31166,32182,31166 32189,31166,32195,31167 32173,31167,32184,31167 32187,31167,32187,31167 32173,31168,32185,31168 32191,31168,32195,31168 32190,31169,32195,31170 32173,31169,32188,31171 32191,31171,32195,31171 32174,31172,32189,31172 32191,31172,32202,31172 32194,31173,32204,31173 32175,31173,32189,31173 32191,31173,32191,31173 32193,31174,32205,31174 32176,31174,32187,31174 32192,31175,32206,31176 32175,31175,32190,31176 32195,31177,32206,31177 32173,31177,32188,31177 32190,31178,32193,31178 32196,31178,32206,31178 32171,31178,32187,31178 32172,31179,32186,31180 32188,31180,32188,31181 32172,31181,32184,31181 32190,31179,32206,31182 32195,31183,32206,31183 32190,31183,32192,31183 32172,31182,32188,31184 32194,31184,32207,31184 32172,31185,32187,31185 32190,31185,32191,31185 32193,31185,32209,31186 32172,31186,32191,31187 32193,31187,32210,31187 32171,31188,32189,31189 32194,31188,32210,31189 32191,31189,32192,31189 32169,31190,32186,31190 32188,31190,32189,31190 32168,31191,32186,31191 32191,31190,32210,31193 32165,31192,32189,31194 32192,31194,32207,31194 32165,31195,32183,31195 32191,31195,32206,31195 32187,31195,32187,31195 32190,31196,32206,31196 32165,31196,32185,31196 32165,31197,32187,31197 32189,31197,32206,31197 32189,31198,32207,31198 32167,31198,32186,31199 32188,31199,32209,31199 32188,31200,32189,31200 32191,31200,32207,31200 32185,31200,32186,31200 32166,31200,32183,31201 32191,31201,32208,31201 32187,31202,32208,31202 32166,31202,32185,31202 32212,31202,32212,31202 32215,31203,32215,31203 32187,31203,32187,31203 32166,31203,32183,31204 32189,31203,32208,31204 32214,31204,32215,31204 32185,31204,32185,31204 32210,31205,32211,31205 32166,31205,32186,31205 32188,31205,32208,31205 32214,31205,32214,31206 32188,31206,32210,31206 32168,31206,32186,31206 32188,31207,32188,31207 32190,31207,32197,31207 32217,31207,32217,31207 32169,31207,32186,31207 32199,31207,32210,31208 32192,31208,32196,31208 32170,31208,32182,31208 32218,31208,32219,31208 32185,31208,32186,31208 32171,31209,32183,31209 32198,31209,32210,31209 32213,31209,32214,31209 32220,31209,32220,31209 32188,31209,32196,31209 32187,31210,32196,31210 32171,31210,32185,31210 32198,31210,32214,31210 32172,31211,32185,31212 32187,31211,32211,31213 32172,31213,32183,31213 32216,31213,32218,31213 32172,31214,32182,31214 32217,31214,32219,31214 32188,31214,32212,31214 32218,31215,32220,31215 32189,31215,32213,31215 32184,31215,32186,31215 32173,31215,32181,31215 32189,31216,32193,31216 32173,31216,32179,31217 32218,31216,32221,31217 32192,31217,32193,31217 32195,31216,32211,31218 32183,31216,32187,31218 32193,31218,32193,31218 32173,31218,32180,31218 32189,31219,32191,31219 32196,31219,32211,31219 32173,31219,32181,31220 32183,31219,32186,31220 32214,31219,32214,31221 32199,31220,32207,31221 32189,31220,32194,31221 32173,31221,32179,31221 32183,31221,32187,31221 32196,31221,32197,31222 32190,31222,32194,31222 32212,31222,32214,31222 32184,31222,32187,31222 32205,31222,32206,31222 32199,31222,32202,31222 32173,31222,32180,31222 32190,31223,32197,31223 32173,31223,32182,31223 32210,31223,32210,31223 32185,31223,32186,31223 32199,31223,32201,31224 32205,31223,32205,31224 32174,31224,32184,31224 32209,31224,32209,31224 32187,31224,32197,31224 32210,31225,32210,31225 32176,31225,32197,31225 32203,31225,32203,31225 32205,31225,32206,31225 32199,31225,32199,31225 32206,31226,32207,31226 32177,31226,32195,31226 32178,31227,32194,31227 32200,31228,32201,31228 32197,31228,32197,31228 32179,31228,32193,31228 32196,31229,32196,31229 32181,31229,32193,31229 32200,31229,32200,31229 32209,31229,32209,31229 32202,31229,32202,31229 32205,31229,32205,31229 32205,31230,32209,31230 32179,31230,32190,31230 32179,31231,32188,31231 32208,31231,32209,31231 32205,31231,32205,31231 32197,31232,32197,31232 32182,31232,32189,31232 32194,31232,32195,31232 32191,31232,32191,31232 32191,31233,32192,31233 32195,31233,32198,31233 32183,31233,32189,31235 32192,31234,32192,31235 32183,31236,32188,31236 32182,31237,32187,31237 32190,31238,32192,31238 32182,31238,32186,31238 32187,31239,32189,31239 32182,31239,32185,31240 32190,31240,32190,31240 32187,31240,32187,31240 32181,31241,32185,31242 32190,31242,32195,31242 32187,31242,32188,31242 32181,31243,32196,31244 32182,31245,32196,31245 32183,31246,32196,31246 32185,31247,32189,31247", + }, + [120] = { -- Isle of Destiny (3005 tiles, 78 rects) + name = "Isle of Destiny", + mainArea = 24, + bbox = { x1 = 31940, y1 = 31962, x2 = 32126, y2 = 32968 }, + rects = "32093,31962,32104,31962 32092,31963,32104,31963 32092,31964,32105,31964 32093,31965,32104,31965 32094,31966,32104,31966 32107,31969,32108,31969 32105,31970,32109,31970 32104,31971,32110,31972 32097,31972,32098,31972 32103,31973,32111,31973 32097,31973,32099,31973 32091,31974,32093,31974 32096,31974,32112,31974 32090,31975,32113,31975 32087,31976,32113,31976 32085,31977,32114,31977 32082,31977,32083,31977 32080,31978,32115,31978 32080,31979,32116,31979 32079,31980,32116,31981 32079,31982,32117,31982 32078,31983,32117,31983 32077,31984,32117,31984 32076,31985,32118,31985 32075,31986,32119,31986 32073,31987,32120,31987 32072,31988,32121,31988 32072,31989,32123,31989 32071,31990,32124,31993 32071,31994,32123,31994 32071,31995,32120,31995 32072,31996,32119,31997 32072,31998,32120,31999 32072,32000,32123,32000 32072,32001,32124,32001 32074,32002,32124,32002 32074,32003,32125,32004 32069,32004,32072,32004 32069,32005,32126,32005 32063,32006,32126,32006 32063,32007,32125,32007 32064,32008,32125,32008 32065,32009,32124,32010 32060,32010,32061,32010 32060,32011,32121,32012 32060,32013,32122,32013 32062,32014,32122,32015 32063,32016,32122,32016 32062,32017,32124,32017 32061,32018,32124,32018 32061,32019,32123,32019 32119,32020,32123,32020 32100,32020,32115,32020 32061,32020,32095,32021 32101,32021,32115,32021 32061,32022,32097,32022 32104,32022,32113,32022 32061,32023,32098,32023 32104,32023,32112,32023 32062,32024,32099,32024 32063,32025,32102,32025 32066,32026,32102,32026 32067,32027,32102,32027 32069,32028,32102,32029 32070,32030,32099,32030 32078,32031,32098,32031 32081,32032,32097,32032 32080,32033,32097,32034 32080,32035,32089,32035 32093,32035,32096,32036 32079,32036,32087,32036 32094,32037,32095,32037 32078,32037,32087,32037 32078,32038,32086,32038 32078,32039,32085,32039 32079,32040,32084,32040 32080,32041,32083,32041 31940,32967,31941,32968", + }, + [125] = { -- Vengoth (20620 tiles, 243 rects) + name = "Vengoth", + mainArea = 8, + bbox = { x1 = 32856, y1 = 31408, x2 = 33081, y2 = 31586 }, + rects = "32968,31408,32968,31408 33003,31408,33004,31408 32963,31408,32965,31408 32985,31408,32987,31408 32991,31409,32994,31409 33002,31409,33005,31409 32960,31409,32969,31409 32984,31409,32988,31409 32957,31410,32969,31410 33002,31410,33006,31410 32984,31410,32995,31410 32998,31410,33000,31410 32967,31411,32974,31411 32982,31411,33006,31411 32980,31412,33007,31412 32967,31412,32975,31412 32967,31413,33008,31413 32967,31414,33009,31415 32967,31416,33010,31417 32967,31418,33011,31419 32967,31420,33012,31420 32967,31421,33011,31421 32967,31422,33010,31423 32967,31424,33009,31425 32953,31426,33009,31426 32953,31427,33010,31427 32954,31428,33011,31428 32955,31429,33011,31429 32956,31430,33011,31430 32961,31431,33010,31431 32961,31432,33009,31432 32961,31433,33008,31433 32958,31434,33007,31434 32957,31435,33007,31436 32958,31437,33006,31438 32954,31439,33007,31439 32953,31440,33007,31440 32951,31441,33007,31441 32950,31442,33007,31442 32950,31443,33008,31443 32951,31444,33009,31444 32952,31445,33009,31446 32937,31446,32945,31446 32930,31446,32931,31446 32951,31447,33010,31447 32929,31447,32933,31447 32935,31447,32946,31447 32950,31448,33011,31448 32928,31448,32948,31448 32928,31449,33011,31449 32927,31450,33012,31450 32926,31451,33012,31451 32926,31452,33014,31452 32922,31453,32923,31453 32925,31453,33015,31453 32921,31454,33017,31455 32921,31456,33018,31457 32922,31458,33019,31459 32923,31460,33020,31460 32924,31461,33019,31461 32922,31462,33019,31462 32921,31463,33018,31464 32903,31464,32906,31464 32901,31465,32906,31465 32921,31465,33017,31466 32900,31466,32908,31466 32919,31467,33016,31467 32914,31467,32916,31467 32900,31467,32909,31469 32913,31468,33016,31469 32900,31470,32908,31470 32913,31470,33015,31471 32900,31471,32909,31472 32912,31472,33014,31472 32901,31473,32908,31473 32911,31473,33014,31474 32902,31474,32908,31474 32900,31475,33014,31475 32899,31476,33013,31476 32893,31476,32896,31476 32892,31477,33013,31478 32892,31479,33012,31479 32893,31480,33011,31480 32895,31481,33011,31483 32895,31484,33012,31484 32896,31485,33012,31485 32895,31486,33013,31486 32894,31487,33014,31487 32892,31488,33014,31488 32891,31489,33015,31489 32889,31490,33017,31490 32888,31491,33020,31491 32882,31494,32884,31494 32888,31492,33021,31495 32881,31495,32885,31495 32881,31496,33022,31496 32880,31497,33023,31498 32878,31499,33022,31499 33035,31500,33037,31500 32877,31500,33022,31500 33041,31501,33043,31501 32877,31501,33023,31501 33029,31501,33031,31501 33034,31501,33039,31501 33028,31502,33044,31502 32878,31502,33025,31502 32879,31503,33046,31503 33051,31503,33053,31503 33050,31504,33055,31504 33058,31504,33060,31504 32880,31504,33047,31504 32879,31505,33060,31505 32879,31506,33061,31506 32879,31507,33062,31507 32879,31508,33063,31508 32878,31509,33065,31509 32877,31510,33065,31510 32877,31511,33066,31511 32878,31512,33067,31512 32879,31513,33068,31513 32880,31514,33069,31514 32880,31515,33072,31515 32879,31516,33073,31516 32879,31517,33076,31517 32877,31518,33079,31518 32876,31519,33080,31520 32876,31521,33079,31521 32876,31522,33078,31523 32875,31524,33079,31524 32874,31525,33079,31525 32873,31526,33080,31526 32872,31527,33081,31528 32872,31529,33080,31529 32868,31529,32870,31529 32867,31530,33079,31530 32866,31531,33079,31531 32865,31532,33079,31534 32866,31535,33079,31535 32867,31536,33077,31536 32869,31537,33077,31537 32870,31538,33076,31538 32871,31539,33076,31540 32870,31541,33076,31542 32869,31543,33071,31543 32865,31544,33071,31544 32864,31545,33070,31545 33067,31546,33069,31546 32863,31546,33065,31546 32857,31547,33065,31547 32856,31548,33062,31548 33038,31549,33062,31549 32856,31549,33036,31550 33039,31550,33061,31550 32858,31551,33036,31551 33039,31551,33060,31552 32862,31552,33036,31552 33039,31553,33059,31553 32919,31553,33035,31553 32865,31553,32916,31553 32975,31554,33034,31554 33040,31554,33057,31554 32922,31554,32972,31554 32866,31554,32915,31554 32976,31555,33033,31555 32923,31555,32971,31555 33040,31555,33060,31555 32867,31555,32899,31555 32906,31555,32915,31556 33030,31556,33033,31556 32865,31556,32899,31556 32923,31556,32970,31556 33039,31556,33061,31557 32979,31556,33028,31557 32864,31557,32898,31557 33031,31557,33032,31557 32907,31557,32914,31558 32980,31558,32984,31558 32864,31558,32892,31558 33054,31558,33060,31558 32987,31558,33026,31558 32921,31557,32969,31559 33039,31558,33042,31559 32908,31559,32909,31559 32981,31559,32982,31559 32987,31559,32992,31559 32999,31559,33024,31559 32912,31559,32913,31559 32995,31559,32996,31559 32865,31559,32892,31559 32922,31560,32969,31560 33000,31560,33024,31560 32988,31560,32991,31560 33040,31560,33041,31560 32867,31560,32892,31561 33005,31561,33024,31561 32989,31561,32990,31561 32922,31561,32968,31562 32868,31562,32891,31562 33006,31562,33023,31562 32868,31563,32890,31563 33007,31563,33009,31563 32922,31563,32966,31563 33014,31563,33023,31563 32927,31564,32966,31564 32869,31564,32890,31564 32923,31564,32925,31564 33015,31564,33023,31565 32869,31565,32889,31565 32927,31565,32967,31565 33016,31566,33022,31566 32868,31566,32887,31566 32927,31566,32968,31566 32878,31567,32886,31567 32928,31567,32968,31567 32868,31567,32874,31567 32928,31568,32967,31568 32878,31568,32882,31568 32869,31568,32874,31568 32870,31569,32874,31569 32879,31569,32881,31569 32928,31569,32966,31569 32929,31570,32965,31570 32871,31570,32873,31570 32929,31571,32963,31571 32930,31572,32963,31572 32932,31573,32964,31573 32933,31574,32964,31574 32932,31575,32965,31576 32933,31577,32952,31577 32954,31577,32964,31578 32934,31578,32947,31578 32935,31579,32946,31579 32954,31579,32963,31580 32936,31580,32944,31580 32960,31581,32963,31581 32938,31581,32944,31581 32954,31581,32957,31581 32955,31582,32956,31582 32961,31582,32962,31582 32938,31582,32945,31583 32939,31584,32944,31584 32941,31585,32944,31585 32942,31586,32943,31586", + }, + [127] = { -- Yalahar Trade Quarter (5621 tiles, 143 rects) + name = "Yalahar Trade Quarter", + mainArea = 27, + bbox = { x1 = 32766, y1 = 31270, x2 = 32872, y2 = 31373 }, + rects = "32837,31270,32839,31270 32833,31271,32839,31271 32831,31272,32839,31272 32823,31273,32839,31280 32823,31281,32846,31290 32807,31291,32846,31291 32798,31292,32846,31295 32798,31296,32854,31296 32796,31297,32854,31302 32788,31303,32854,31303 32787,31304,32854,31304 32786,31305,32854,31306 32785,31307,32854,31313 32785,31314,32872,31316 32780,31317,32872,31319 32776,31320,32872,31323 32847,31324,32872,31324 32776,31324,32842,31325 32848,31325,32872,31326 32772,31326,32842,31327 32772,31328,32832,31328 32849,31327,32872,31329 32837,31328,32842,31329 32827,31329,32832,31329 32772,31329,32822,31330 32828,31330,32831,31331 32837,31330,32840,31331 32855,31330,32872,31331 32772,31331,32805,31331 32807,31331,32822,31331 32842,31330,32842,31332 32849,31330,32850,31332 32857,31332,32870,31332 32837,31332,32839,31332 32809,31332,32821,31332 32772,31332,32801,31333 32866,31333,32869,31333 32857,31333,32858,31333 32828,31332,32830,31334 32837,31333,32850,31334 32811,31333,32821,31334 32868,31334,32869,31334 32772,31334,32799,31334 32772,31335,32798,31335 32828,31335,32838,31336 32804,31332,32805,31337 32812,31335,32819,31337 32772,31336,32786,31337 32828,31337,32830,31337 32862,31333,32864,31338 32849,31335,32850,31338 32852,31338,32857,31338 32804,31338,32807,31338 32772,31338,32784,31339 32814,31338,32830,31339 32847,31339,32864,31339 32796,31336,32797,31340 32804,31339,32805,31340 32817,31340,32818,31340 32836,31337,32838,31341 32840,31340,32872,31341 32825,31340,32827,31342 32796,31341,32818,31342 32836,31342,32872,31342 32772,31340,32783,31343 32796,31343,32806,31343 32821,31343,32827,31344 32794,31344,32806,31344 32789,31343,32789,31345 32810,31343,32810,31345 32772,31344,32781,31345 32793,31345,32808,31345 32836,31343,32862,31346 32769,31346,32808,31347 32817,31343,32818,31348 32825,31345,32827,31348 32831,31346,32832,31348 32835,31347,32862,31348 32793,31348,32808,31348 32769,31348,32781,31350 32825,31349,32862,31350 32797,31349,32810,31350 32816,31349,32819,31350 32769,31351,32773,31351 32836,31351,32872,31352 32797,31351,32827,31352 32767,31352,32775,31352 32847,31353,32862,31353 32797,31353,32820,31353 32831,31351,32831,31354 32825,31353,32827,31354 32836,31353,32838,31354 32786,31348,32788,31355 32766,31353,32776,31355 32842,31353,32843,31355 32797,31354,32819,31355 32778,31354,32778,31355 32825,31355,32838,31355 32847,31354,32859,31356 32766,31356,32788,31357 32853,31357,32859,31357 32797,31356,32818,31358 32836,31356,32838,31358 32847,31357,32849,31358 32853,31358,32858,31358 32825,31356,32827,31359 32831,31356,32831,31359 32836,31359,32849,31359 32855,31359,32858,31359 32766,31358,32776,31360 32791,31358,32791,31360 32786,31358,32788,31360 32796,31359,32817,31360 32825,31360,32849,31360 32856,31360,32857,31361 32784,31361,32809,31361 32812,31361,32817,31361 32767,31361,32776,31361 32825,31361,32838,31361 32867,31353,32868,31362 32786,31362,32809,31362 32768,31362,32775,31362 32813,31362,32816,31362 32864,31360,32864,31363 32832,31362,32832,31363 32770,31363,32773,31363 32825,31362,32827,31364 32797,31363,32809,31364 32847,31361,32849,31366 32836,31362,32838,31366 32792,31363,32792,31366 32797,31365,32827,31366 32786,31363,32788,31367 32797,31367,32807,31367 32810,31367,32811,31368 32825,31367,32827,31368 32807,31368,32807,31368 32797,31368,32804,31368 32822,31369,32827,31369 32807,31369,32811,31369 32825,31370,32827,31370 32801,31369,32803,31371 32810,31370,32811,31373", + }, + [128] = { -- Yalahar Sunken Quarter (2778 tiles, 89 rects) + name = "Yalahar Sunken Quarter", + mainArea = 27, + bbox = { x1 = 32867, y1 = 31158, x2 = 32977, y2 = 31253 }, + rects = "32889,31158,32899,31158 32887,31159,32899,31159 32882,31160,32898,31161 32880,31162,32898,31162 32880,31163,32897,31165 32876,31166,32897,31167 32876,31168,32896,31168 32867,31169,32896,31171 32868,31172,32896,31173 32869,31174,32896,31174 32870,31175,32896,31175 32870,31176,32895,31178 32949,31179,32952,31179 32948,31180,32953,31180 32872,31179,32895,31181 32913,31182,32916,31182 32940,31181,32944,31183 32947,31181,32954,31183 32873,31182,32895,31183 32912,31183,32917,31183 32948,31184,32953,31184 32949,31185,32952,31185 32911,31184,32918,31186 32873,31184,32896,31187 32912,31187,32917,31187 32913,31188,32916,31188 32874,31188,32896,31192 32904,31192,32906,31192 32874,31193,32897,31194 32903,31193,32907,31195 32904,31196,32906,31196 32875,31195,32897,31198 32913,31198,32917,31200 32877,31199,32897,31201 32901,31202,32906,31202 32913,31201,32915,31203 32875,31202,32897,31203 32900,31203,32901,31203 32906,31203,32907,31203 32874,31204,32897,31204 32907,31204,32907,31206 32900,31204,32900,31206 32900,31207,32901,31207 32906,31207,32907,31207 32901,31208,32906,31208 32874,31205,32896,31215 32873,31216,32898,31219 32907,31219,32908,31220 32874,31220,32898,31222 32905,31221,32909,31222 32917,31221,32918,31223 32882,31223,32899,31223 32904,31223,32909,31223 32916,31224,32919,31225 32882,31224,32910,31225 32882,31226,32911,31226 32916,31226,32922,31227 32888,31227,32911,31227 32916,31228,32921,31228 32888,31228,32913,31228 32933,31228,32934,31229 32916,31229,32920,31229 32897,31229,32913,31229 32888,31229,32892,31230 32897,31230,32920,31230 32926,31230,32927,31231 32933,31230,32935,31231 32902,31231,32921,31231 32902,31232,32927,31232 32933,31232,32936,31232 32939,31233,32940,31233 32944,31233,32947,31233 32902,31233,32936,31233 32968,31234,32973,31234 32902,31234,32947,31235 32956,31235,32957,31235 32965,31235,32973,31235 32914,31236,32947,31236 32951,31236,32973,31236 32914,31237,32948,31237 32951,31237,32974,31237 32914,31238,32975,31238 32928,31239,32975,31241 32943,31242,32975,31242 32943,31243,32977,31245 32943,31246,32976,31247 32960,31248,32976,31248 32960,31249,32975,31249 32960,31250,32972,31253", + }, + [129] = { -- Yalahar Factory Quarter (9451 tiles, 122 rects) + name = "Yalahar Factory Quarter", + mainArea = 27, + bbox = { x1 = 32840, y1 = 31223, x2 = 32978, y2 = 31359 }, + rects = "32874,31223,32881,31224 32872,31225,32881,31226 32872,31227,32887,31229 32893,31229,32896,31230 32871,31230,32887,31230 32871,31231,32901,31232 32870,31233,32901,31235 32869,31236,32913,31238 32868,31239,32927,31241 32867,31242,32942,31242 32865,31243,32942,31244 32864,31245,32942,31246 32863,31247,32942,31247 32862,31248,32959,31249 32861,31250,32959,31253 32861,31254,32970,31256 32855,31257,32970,31258 32854,31259,32970,31259 32853,31260,32969,31260 32975,31261,32977,31261 32852,31261,32967,31261 32974,31262,32978,31262 32851,31262,32969,31262 32850,31263,32978,31263 32849,31264,32977,31264 32847,31265,32976,31265 32845,31266,32975,31266 32843,31267,32938,31267 32940,31267,32975,31268 32843,31268,32937,31268 32841,31269,32936,31269 32941,31269,32974,31269 32940,31270,32972,31270 32840,31270,32936,31270 32940,31271,32971,31271 32840,31271,32935,31271 32840,31272,32966,31275 32840,31276,32967,31276 32840,31277,32933,31277 32942,31277,32967,31277 32840,31278,32932,31278 32960,31278,32967,31278 32840,31279,32931,31279 32942,31278,32957,31280 32840,31280,32928,31280 32961,31279,32968,31281 32941,31281,32957,31281 32961,31282,32967,31282 32847,31281,32928,31283 32941,31282,32956,31283 32961,31283,32965,31283 32962,31284,32964,31284 32942,31284,32955,31284 32847,31284,32927,31284 32847,31285,32928,31285 32943,31285,32955,31285 32949,31286,32954,31286 32944,31286,32947,31286 32847,31286,32929,31287 32943,31287,32947,31287 32847,31288,32928,31288 32943,31288,32946,31288 32944,31289,32945,31289 32847,31289,32926,31290 32847,31291,32925,31292 32847,31293,32924,31293 32847,31294,32923,31295 32919,31296,32922,31296 32920,31298,32922,31298 32919,31299,32924,31299 32855,31296,32915,31300 32920,31300,32922,31300 32917,31300,32917,31300 32855,31301,32916,31304 32927,31304,32928,31304 32926,31305,32929,31305 32923,31306,32929,31306 32922,31307,32929,31307 32855,31305,32915,31308 32918,31308,32928,31308 32855,31309,32927,31313 32873,31314,32927,31314 32929,31314,32931,31314 32873,31315,32932,31315 32873,31316,32933,31317 32931,31318,32932,31318 32873,31318,32926,31321 32873,31322,32927,31324 32873,31325,32928,31325 32873,31326,32929,31326 32873,31327,32931,31327 32873,31328,32935,31328 32873,31329,32936,31331 32873,31332,32938,31332 32927,31333,32939,31333 32873,31333,32923,31333 32873,31334,32921,31334 32932,31334,32939,31335 32873,31335,32919,31335 32932,31336,32938,31336 32873,31336,32918,31339 32932,31337,32937,31339 32931,31340,32936,31340 32873,31340,32917,31340 32873,31341,32910,31341 32930,31341,32935,31341 32907,31342,32909,31342 32873,31342,32903,31344 32929,31342,32934,31345 32873,31345,32902,31345 32873,31346,32898,31346 32930,31346,32933,31346 32873,31347,32890,31347 32873,31348,32889,31348 32873,31349,32888,31351 32873,31352,32887,31352 32873,31353,32886,31353 32873,31354,32884,31355 32873,31356,32885,31357 32873,31358,32879,31358 32883,31358,32886,31359 32873,31359,32877,31359", + }, + [130] = { -- Yalahar Magician Quarter (15506 tiles, 120 rects) + name = "Yalahar Magician Quarter", + mainArea = 27, + bbox = { x1 = 32799, y1 = 31013, x2 = 32947, y2 = 31168 }, + rects = "32813,31013,32813,31013 32908,31013,32916,31013 32907,31014,32917,31014 32813,31014,32815,31014 32906,31015,32917,31015 32813,31015,32816,31015 32813,31016,32817,31016 32905,31016,32917,31016 32903,31017,32917,31018 32870,31018,32871,31018 32869,31019,32875,31019 32902,31019,32917,31019 32813,31017,32818,31020 32869,31020,32877,31020 32841,31020,32847,31020 32901,31020,32917,31021 32813,31021,32817,31021 32835,31021,32847,31021 32867,31021,32884,31021 32860,31022,32861,31022 32866,31022,32886,31022 32834,31022,32856,31022 32899,31022,32916,31022 32813,31022,32816,31023 32897,31023,32907,31023 32865,31023,32886,31023 32833,31023,32862,31023 32865,31024,32888,31024 32813,31024,32817,31024 32895,31024,32906,31024 32831,31024,32863,31024 32830,31025,32888,31025 32813,31025,32818,31025 32895,31025,32905,31025 32830,31026,32904,31026 32830,31027,32903,31027 32813,31026,32819,31028 32821,31028,32825,31028 32828,31028,32902,31028 32813,31029,32901,31032 32813,31033,32903,31034 32813,31035,32907,31035 32813,31036,32906,31039 32813,31040,32895,31040 32813,31041,32894,31042 32813,31043,32893,31045 32899,31040,32906,31047 32813,31046,32892,31049 32898,31048,32921,31049 32897,31050,32921,31051 32810,31050,32892,31052 32810,31053,32893,31053 32896,31052,32921,31054 32810,31054,32894,31054 32810,31055,32921,31058 32823,31059,32921,31059 32810,31059,32819,31059 32810,31060,32818,31062 32824,31060,32921,31062 32823,31063,32921,31063 32810,31063,32819,31063 32810,31064,32921,31070 32810,31071,32925,31074 32810,31075,32931,31090 32805,31091,32931,31092 32805,31093,32934,31099 32804,31100,32934,31100 32802,31101,32934,31101 32802,31102,32940,31105 32804,31106,32940,31116 32804,31117,32947,31117 32804,31118,32940,31118 32799,31119,32941,31124 32943,31118,32947,31125 32799,31125,32930,31127 32799,31128,32929,31128 32799,31129,32928,31129 32934,31126,32947,31130 32799,31130,32926,31130 32799,31131,32921,31131 32934,31131,32938,31132 32799,31132,32919,31135 32818,31136,32918,31136 32922,31133,32938,31137 32822,31137,32918,31137 32824,31138,32907,31138 32910,31138,32917,31138 32913,31139,32917,31139 32826,31139,32907,31139 32828,31140,32907,31140 32922,31138,32926,31141 32830,31141,32907,31141 32832,31142,32904,31143 32909,31142,32926,31143 32837,31144,32904,31144 32838,31145,32901,31145 32908,31144,32926,31146 32840,31146,32901,31146 32842,31147,32900,31147 32908,31147,32913,31148 32844,31148,32900,31148 32846,31149,32899,31149 32849,31150,32899,31151 32851,31152,32897,31152 32902,31149,32913,31153 32852,31153,32897,31153 32853,31154,32906,31154 32854,31155,32906,31156 32856,31157,32906,31157 32857,31158,32888,31158 32900,31158,32906,31158 32858,31159,32886,31159 32859,31160,32881,31160 32860,31161,32881,31161 32860,31162,32879,31162 32861,31163,32879,31163 32862,31164,32879,31165 32864,31166,32875,31166 32865,31167,32875,31167 32866,31168,32875,31168", + }, + [131] = { -- Yalahar Cemetery Quarter (9498 tiles, 86 rects) + name = "Yalahar Cemetery Quarter", + mainArea = 27, + bbox = { x1 = 32702, y1 = 31009, x2 = 32812, y2 = 31146 }, + rects = "32740,31009,32745,31009 32740,31010,32747,31010 32787,31011,32788,31011 32738,31011,32750,31011 32786,31012,32789,31012 32792,31012,32794,31012 32738,31012,32752,31012 32738,31013,32753,31013 32808,31013,32812,31013 32805,31013,32806,31013 32785,31013,32795,31013 32780,31014,32795,31014 32739,31014,32754,31014 32804,31014,32812,31014 32740,31015,32754,31015 32778,31015,32793,31015 32803,31015,32812,31016 32777,31016,32793,31016 32740,31016,32755,31017 32775,31017,32812,31017 32739,31018,32756,31018 32774,31018,32812,31019 32738,31019,32756,31019 32758,31019,32760,31019 32738,31020,32761,31021 32773,31020,32812,31022 32766,31022,32768,31022 32737,31022,32761,31023 32765,31023,32812,31023 32737,31024,32812,31026 32735,31027,32812,31027 32734,31028,32812,31030 32729,31031,32730,31031 32733,31031,32812,31032 32728,31032,32731,31032 32728,31033,32812,31034 32733,31035,32812,31035 32729,31035,32731,31035 32734,31036,32812,31036 32735,31037,32812,31039 32736,31040,32812,31040 32735,31041,32812,31042 32736,31043,32812,31043 32737,31044,32812,31044 32736,31045,32812,31047 32735,31048,32812,31048 32732,31049,32812,31049 32731,31050,32809,31050 32727,31050,32729,31050 32721,31051,32723,31051 32726,31051,32809,31051 32720,31052,32809,31052 32713,31055,32715,31055 32719,31053,32809,31056 32712,31056,32716,31056 32712,31057,32809,31057 32711,31058,32809,31058 32703,31058,32704,31058 32702,31059,32809,31062 32703,31063,32809,31063 32705,31064,32809,31064 32706,31065,32809,31065 32707,31066,32809,31066 32708,31067,32809,31071 32714,31072,32809,31081 32721,31082,32809,31090 32721,31091,32804,31092 32732,31093,32804,31099 32732,31100,32803,31100 32732,31101,32801,31105 32732,31106,32803,31106 32743,31107,32803,31110 32741,31111,32803,31115 32743,31116,32803,31118 32750,31119,32798,31129 32756,31130,32798,31135 32756,31136,32784,31136 32756,31137,32782,31137 32761,31138,32774,31139 32761,31140,32773,31140 32761,31141,32771,31141 32761,31142,32768,31142 32761,31143,32766,31143 32761,31144,32765,31144 32761,31145,32763,31145 32761,31146,32762,31146", + }, + [132] = { -- Yalahar Alchemist Quarter (12424 tiles, 135 rects) + name = "Yalahar Alchemist Quarter", + mainArea = 27, + bbox = { x1 = 32623, y1 = 31065, x2 = 32760, y2 = 31201 }, + rects = "32683,31065,32684,31065 32692,31065,32693,31065 32691,31066,32693,31066 32688,31066,32689,31066 32683,31066,32685,31066 32683,31067,32693,31067 32681,31068,32693,31068 32681,31069,32694,31069 32698,31070,32700,31070 32682,31070,32695,31070 32705,31070,32707,31071 32697,31071,32702,31071 32673,31071,32674,31071 32683,31071,32695,31071 32673,31072,32675,31072 32683,31072,32702,31072 32664,31072,32668,31072 32705,31072,32713,31073 32672,31073,32675,31073 32681,31073,32703,31073 32663,31073,32669,31073 32657,31074,32660,31074 32663,31074,32675,31074 32681,31074,32713,31075 32656,31075,32675,31076 32653,31076,32654,31076 32683,31076,32713,31077 32652,31077,32674,31077 32652,31078,32673,31078 32682,31078,32713,31079 32652,31079,32676,31079 32652,31080,32677,31080 32642,31080,32644,31081 32683,31080,32713,31081 32651,31081,32677,31081 32650,31082,32677,31082 32642,31082,32645,31082 32682,31082,32720,31082 32640,31083,32647,31083 32650,31083,32720,31083 32640,31084,32720,31084 32641,31085,32720,31086 32644,31087,32720,31087 32645,31088,32720,31088 32644,31089,32720,31090 32645,31091,32720,31091 32644,31092,32720,31092 32644,31093,32731,31093 32643,31094,32731,31094 32641,31095,32731,31095 32640,31096,32731,31096 32637,31097,32731,31099 32640,31100,32731,31100 32646,31101,32731,31101 32640,31101,32642,31101 32648,31102,32649,31102 32652,31102,32731,31106 32645,31106,32647,31106 32644,31107,32649,31107 32652,31107,32742,31107 32639,31107,32641,31108 32633,31108,32634,31108 32643,31108,32742,31109 32626,31108,32629,31109 32631,31109,32635,31109 32638,31109,32641,31109 32623,31110,32635,31110 32638,31110,32742,31110 32623,31111,32740,31112 32625,31113,32740,31113 32626,31114,32740,31115 32625,31116,32742,31117 32627,31118,32742,31118 32628,31119,32749,31119 32629,31120,32749,31120 32631,31121,32749,31121 32630,31122,32749,31128 32632,31129,32749,31129 32632,31130,32755,31130 32630,31131,32755,31133 32632,31134,32755,31134 32633,31135,32755,31136 32634,31137,32755,31137 32634,31138,32760,31139 32635,31140,32760,31140 32631,31141,32760,31142 32632,31143,32760,31143 32634,31144,32760,31145 32633,31146,32760,31146 32633,31147,32757,31147 32629,31148,32757,31148 32628,31149,32755,31149 32628,31150,32753,31150 32628,31151,32752,31151 32628,31152,32750,31153 32629,31154,32748,31154 32630,31155,32633,31155 32635,31155,32747,31155 32636,31156,32745,31156 32636,31157,32741,31157 32635,31158,32741,31159 32640,31160,32741,31161 32637,31162,32740,31162 32636,31163,32739,31163 32633,31164,32739,31164 32633,31165,32737,31165 32634,31166,32737,31166 32635,31167,32736,31167 32638,31168,32736,31168 32638,31169,32735,31169 32638,31170,32734,31171 32639,31172,32734,31172 32639,31173,32733,31174 32640,31175,32733,31175 32640,31176,32731,31177 32639,31178,32730,31179 32639,31180,32729,31181 32640,31182,32728,31182 32641,31183,32728,31183 32639,31184,32728,31184 32638,31185,32711,31186 32636,31187,32711,31187 32635,31188,32711,31188 32629,31189,32697,31189 32686,31190,32690,31190 32629,31190,32681,31190 32628,31191,32681,31192 32625,31193,32681,31193 32624,31194,32681,31194 32624,31195,32666,31195 32625,31196,32666,31196 32627,31197,32666,31198 32626,31199,32666,31199 32627,31200,32666,31200 32628,31201,32653,31201", + }, + [133] = { -- Yalahar Arena Quarter (7073 tiles, 80 rects) + name = "Yalahar Arena Quarter", + mainArea = 27, + bbox = { x1 = 32606, y1 = 31185, x2 = 32735, y2 = 31274 }, + rects = "32712,31185,32727,31188 32698,31189,32727,31189 32691,31190,32727,31190 32682,31190,32685,31190 32682,31191,32727,31194 32667,31195,32727,31199 32613,31199,32617,31199 32667,31200,32725,31200 32612,31200,32621,31200 32611,31201,32621,31201 32654,31201,32725,31201 32609,31202,32622,31202 32628,31202,32725,31202 32608,31203,32622,31203 32628,31203,32727,31204 32606,31204,32623,31204 32606,31205,32727,31208 32608,31209,32727,31209 32609,31210,32727,31211 32610,31212,32727,31212 32611,31213,32728,31213 32624,31214,32728,31214 32613,31214,32620,31214 32615,31215,32618,31216 32626,31215,32728,31216 32626,31217,32729,31217 32627,31218,32729,31218 32628,31219,32729,31219 32629,31220,32729,31220 32629,31221,32730,31221 32630,31222,32730,31223 32624,31224,32730,31224 32629,31225,32731,31225 32630,31226,32731,31227 32629,31228,32732,31228 32624,31225,32624,31229 32628,31229,32732,31230 32624,31230,32626,31230 32626,31231,32733,31231 32623,31232,32733,31232 32622,31233,32734,31233 32621,31234,32734,31234 32621,31235,32735,31236 32621,31237,32725,31239 32622,31240,32725,31240 32622,31241,32717,31241 32624,31242,32717,31243 32620,31243,32622,31243 32625,31244,32717,31245 32619,31244,32623,31245 32618,31246,32622,31246 32626,31246,32717,31247 32618,31247,32621,31247 32626,31248,32702,31248 32616,31249,32702,31249 32621,31250,32702,31254 32644,31255,32702,31255 32622,31255,32632,31255 32635,31255,32639,31255 32616,31250,32616,31256 32693,31256,32693,31256 32623,31256,32625,31256 32635,31256,32638,31256 32630,31256,32631,31256 32645,31256,32647,31256 32635,31257,32637,31257 32616,31257,32625,31257 32649,31256,32688,31258 32635,31258,32636,31259 32650,31259,32688,31260 32651,31261,32688,31261 32649,31262,32688,31262 32648,31263,32688,31263 32647,31264,32688,31264 32646,31265,32688,31265 32646,31266,32673,31267 32647,31268,32673,31269 32648,31270,32673,31270 32650,31271,32673,31271 32651,31272,32673,31274", + }, + [134] = { -- Yalahar Foreigner Quarter (12076 tiles, 97 rects) + name = "Yalahar Foreigner Quarter", + mainArea = 27, + bbox = { x1 = 32629, y1 = 31237, x2 = 32783, y2 = 31382 }, + rects = "32726,31237,32735,31237 32726,31238,32736,31238 32726,31239,32737,31239 32726,31240,32738,31240 32718,31241,32739,31241 32718,31242,32740,31242 32718,31243,32741,31243 32718,31244,32742,31245 32718,31246,32743,31246 32718,31247,32745,31247 32703,31248,32745,31248 32703,31249,32746,31250 32703,31251,32747,31251 32703,31252,32748,31255 32689,31256,32692,31256 32694,31256,32748,31256 32689,31257,32748,31257 32689,31258,32754,31258 32689,31259,32756,31259 32689,31260,32757,31260 32689,31261,32758,31261 32689,31262,32759,31262 32689,31263,32760,31264 32689,31265,32762,31265 32674,31266,32763,31266 32674,31267,32764,31267 32674,31268,32765,31268 32674,31269,32767,31269 32674,31270,32768,31270 32674,31271,32769,31271 32674,31272,32771,31272 32674,31273,32773,31273 32674,31274,32775,31274 32650,31275,32783,31278 32634,31279,32783,31279 32630,31280,32783,31282 32629,31283,32783,31284 32652,31285,32783,31287 32647,31287,32649,31287 32640,31287,32640,31288 32639,31289,32641,31289 32638,31290,32642,31290 32637,31291,32643,31291 32652,31288,32779,31294 32646,31288,32650,31296 32648,31297,32648,31297 32652,31295,32777,31298 32654,31299,32777,31302 32654,31303,32772,31307 32636,31292,32644,31309 32654,31308,32764,31310 32640,31310,32640,31310 32629,31285,32634,31311 32662,31311,32764,31312 32657,31312,32659,31312 32662,31313,32759,31315 32662,31316,32757,31321 32656,31313,32660,31323 32677,31322,32757,31323 32677,31324,32755,31325 32677,31326,32718,31326 32722,31326,32755,31326 32721,31327,32755,31327 32720,31328,32755,31329 32677,31327,32717,31330 32721,31330,32755,31330 32722,31331,32755,31331 32677,31331,32718,31332 32640,31331,32653,31332 32720,31332,32755,31333 32688,31333,32718,31333 32688,31334,32755,31337 32630,31329,32635,31339 32640,31333,32682,31339 32686,31338,32755,31340 32698,31341,32755,31343 32630,31340,32682,31345 32700,31344,32755,31345 32655,31346,32682,31346 32686,31341,32688,31348 32660,31347,32682,31349 32703,31346,32752,31350 32692,31351,32752,31351 32692,31352,32747,31353 32703,31354,32747,31359 32703,31360,32748,31360 32715,31361,32749,31361 32707,31361,32709,31365 32715,31362,32750,31365 32700,31366,32709,31368 32724,31366,32750,31369 32724,31370,32749,31370 32744,31371,32747,31371 32719,31371,32737,31373 32707,31369,32709,31374 32733,31374,32735,31382 32719,31374,32721,31382", + }, + [135] = { -- Mistrock (2807 tiles, 225 rects) + name = "Mistrock", + mainArea = 27, + bbox = { x1 = 32528, y1 = 31390, x2 = 32642, y2 = 31477 }, + rects = "32563,31390,32564,31390 32562,31391,32565,31391 32577,31392,32580,31392 32582,31392,32582,31392 32617,31392,32617,31392 32561,31392,32565,31392 32575,31393,32584,31393 32599,31393,32602,31393 32617,31393,32622,31393 32561,31393,32566,31393 32593,31394,32602,31394 32560,31394,32566,31395 32577,31394,32584,31395 32591,31395,32602,31395 32616,31394,32622,31396 32576,31396,32583,31396 32591,31396,32600,31397 32559,31396,32566,31397 32616,31397,32623,31397 32577,31397,32584,31398 32626,31398,32626,31398 32591,31398,32602,31398 32616,31398,32624,31398 32558,31398,32567,31398 32565,31399,32567,31399 32577,31399,32585,31399 32616,31399,32626,31399 32575,31399,32575,31399 32591,31399,32603,31400 32616,31400,32629,31400 32565,31400,32584,31400 32565,31401,32583,31401 32614,31401,32629,31401 32591,31401,32604,31401 32585,31401,32585,31401 32614,31402,32628,31402 32565,31402,32580,31402 32594,31402,32604,31403 32565,31403,32579,31403 32613,31403,32628,31403 32594,31404,32607,31404 32609,31404,32617,31404 32565,31404,32578,31404 32594,31405,32616,31405 32565,31405,32575,31405 32565,31406,32572,31406 32594,31406,32613,31406 32623,31404,32628,31407 32566,31407,32568,31407 32595,31407,32613,31407 32567,31408,32568,31408 32594,31408,32609,31408 32583,31408,32588,31408 32601,31409,32609,31409 32594,31409,32594,31409 32621,31408,32628,31410 32582,31409,32582,31410 32585,31409,32588,31410 32604,31410,32604,31410 32580,31410,32580,31410 32609,31410,32609,31410 32620,31411,32624,31411 32576,31411,32587,31411 32572,31412,32587,31412 32617,31412,32624,31412 32616,31413,32624,31413 32573,31413,32591,31413 32568,31414,32571,31414 32573,31414,32589,31414 32591,31414,32591,31414 32607,31414,32624,31414 32564,31414,32566,31414 32562,31414,32562,31414 32562,31415,32565,31415 32606,31415,32624,31415 32567,31415,32589,31415 32563,31416,32587,31416 32601,31416,32624,31416 32562,31417,32588,31417 32601,31417,32623,31417 32562,31418,32571,31418 32624,31418,32624,31418 32578,31418,32587,31418 32600,31418,32622,31418 32600,31419,32624,31419 32562,31419,32568,31419 32583,31419,32588,31419 32581,31419,32581,31419 32570,31419,32570,31419 32608,31420,32613,31420 32562,31420,32570,31420 32615,31420,32620,31420 32600,31420,32605,31420 32584,31420,32588,31420 32622,31420,32623,31420 32614,31421,32623,31421 32561,31421,32567,31421 32583,31421,32588,31421 32608,31421,32610,31421 32599,31421,32605,31422 32562,31422,32566,31422 32616,31422,32620,31422 32614,31422,32614,31422 32584,31422,32588,31422 32599,31423,32604,31423 32561,31423,32564,31423 32585,31423,32588,31423 32584,31424,32588,31424 32574,31424,32575,31424 32600,31424,32604,31424 32573,31425,32577,31425 32599,31425,32604,31425 32584,31425,32587,31425 32572,31426,32577,31426 32584,31426,32588,31427 32599,31426,32603,31427 32572,31427,32576,31427 32600,31428,32603,31428 32597,31428,32598,31428 32567,31428,32576,31429 32583,31428,32588,31429 32597,31429,32603,31430 32574,31430,32576,31430 32569,31430,32572,31430 32583,31430,32589,31431 32598,31431,32603,31432 32569,31431,32576,31433 32569,31434,32577,31434 32615,31434,32617,31434 32584,31432,32589,31435 32599,31433,32603,31435 32615,31435,32622,31435 32567,31435,32577,31435 32604,31436,32604,31436 32634,31436,32641,31436 32599,31436,32602,31436 32613,31436,32628,31436 32565,31436,32577,31436 32584,31436,32591,31437 32600,31437,32604,31437 32565,31437,32576,31437 32609,31437,32631,31437 32606,31437,32607,31437 32633,31437,32642,31438 32600,31438,32631,31438 32584,31438,32592,31438 32560,31438,32576,31439 32583,31439,32591,31439 32600,31439,32630,31439 32635,31439,32641,31439 32584,31440,32593,31440 32635,31440,32638,31440 32599,31440,32630,31440 32560,31440,32571,31441 32600,31441,32631,31441 32636,31441,32638,31442 32585,31441,32592,31442 32602,31442,32631,31442 32560,31442,32567,31442 32602,31443,32630,31443 32585,31443,32593,31444 32543,31443,32546,31444 32618,31444,32624,31444 32602,31444,32609,31444 32623,31445,32624,31445 32602,31445,32608,31445 32543,31445,32551,31445 32586,31445,32594,31445 32606,31446,32608,31446 32543,31446,32553,31446 32585,31446,32594,31447 32542,31447,32554,31448 32586,31448,32594,31449 32541,31449,32563,31449 32541,31450,32568,31450 32570,31450,32570,31450 32586,31450,32597,31451 32541,31451,32570,31451 32572,31451,32579,31451 32586,31452,32599,31452 32541,31452,32580,31453 32586,31453,32601,31454 32540,31454,32580,31454 32603,31454,32603,31454 32586,31455,32603,31455 32575,31455,32577,31455 32566,31455,32566,31455 32563,31455,32563,31455 32539,31455,32555,31456 32585,31456,32597,31456 32600,31456,32602,31456 32538,31457,32554,31458 32585,31457,32596,31458 32570,31458,32570,31458 32570,31459,32571,31459 32536,31459,32554,31459 32584,31459,32591,31459 32583,31460,32590,31460 32567,31460,32577,31460 32536,31460,32551,31461 32567,31461,32590,31461 32534,31462,32551,31462 32568,31462,32590,31462 32584,31463,32590,31463 32568,31463,32581,31463 32534,31463,32547,31464 32568,31464,32579,31464 32587,31464,32590,31465 32569,31465,32579,31465 32531,31465,32543,31465 32530,31466,32543,31466 32569,31466,32575,31467 32555,31467,32556,31468 32569,31468,32573,31468 32528,31467,32540,31469 32570,31469,32573,31470 32548,31469,32558,31470 32571,31471,32573,31471 32546,31471,32558,31471 32528,31470,32536,31472 32572,31472,32573,31472 32546,31472,32559,31473 32543,31474,32559,31475 32544,31476,32561,31476 32550,31477,32561,31477", + }, + [136] = { -- Fenrock (2279 tiles, 71 rects) + name = "Fenrock", + mainArea = 27, + bbox = { x1 = 32513, y1 = 31256, x2 = 32568, y2 = 31324 }, + rects = "32535,31256,32537,31256 32534,31257,32538,31257 32531,31258,32539,31258 32530,31259,32539,31259 32527,31259,32528,31261 32530,31260,32538,31261 32527,31262,32539,31262 32527,31263,32541,31263 32527,31264,32542,31264 32550,31264,32552,31264 32546,31264,32547,31264 32527,31265,32553,31265 32523,31265,32524,31265 32522,31266,32553,31266 32522,31267,32552,31268 32520,31269,32552,31269 32519,31270,32553,31271 32557,31271,32558,31271 32520,31272,32553,31272 32556,31272,32559,31272 32519,31273,32553,31273 32556,31273,32560,31273 32518,31274,32561,31274 32515,31275,32561,31275 32514,31276,32562,31277 32513,31278,32562,31279 32513,31280,32561,31280 32514,31281,32561,31281 32515,31282,32561,31282 32516,31283,32560,31283 32518,31284,32560,31284 32517,31285,32560,31285 32516,31286,32560,31287 32517,31288,32560,31288 32517,31289,32559,31289 32519,31290,32559,31290 32522,31291,32560,31291 32562,31292,32563,31292 32523,31292,32560,31292 32523,31293,32564,31293 32521,31294,32564,31294 32520,31295,32564,31295 32519,31296,32565,31297 32518,31298,32565,31298 32517,31299,32565,31299 32517,31300,32564,31300 32517,31301,32565,31302 32518,31303,32566,31303 32519,31304,32567,31304 32519,31305,32568,31305 32528,31306,32568,31306 32522,31306,32526,31306 32522,31307,32525,31307 32529,31307,32568,31307 32542,31308,32568,31308 32530,31308,32540,31308 32531,31309,32538,31309 32544,31309,32568,31309 32543,31310,32567,31310 32536,31310,32537,31310 32543,31311,32565,31312 32544,31313,32565,31314 32545,31315,32562,31315 32550,31316,32562,31316 32549,31317,32562,31317 32548,31318,32561,31319 32549,31320,32561,31320 32551,31321,32562,31321 32552,31322,32562,31322 32556,31323,32561,31323 32558,31324,32559,31324", + }, + [138] = { -- Isle of Evil (2164 tiles, 164 rects) + name = "Isle of Evil", + mainArea = 27, + bbox = { x1 = 32665, y1 = 31425, x2 = 32769, y2 = 31509 }, + rects = "32703,31425,32705,31425 32702,31426,32706,31426 32700,31427,32707,31427 32699,31428,32707,31428 32699,31429,32709,31429 32698,31430,32713,31430 32695,31431,32713,31431 32693,31432,32716,31432 32691,31433,32716,31433 32691,31434,32717,31434 32729,31434,32730,31434 32727,31435,32731,31435 32691,31435,32719,31435 32693,31436,32720,31436 32726,31436,32731,31437 32694,31437,32720,31437 32726,31438,32732,31438 32736,31438,32745,31438 32694,31438,32712,31439 32726,31439,32748,31439 32728,31440,32748,31440 32693,31440,32710,31441 32687,31441,32687,31441 32730,31441,32744,31441 32731,31442,32743,31442 32686,31442,32709,31442 32685,31443,32709,31443 32733,31443,32742,31443 32734,31444,32741,31444 32684,31444,32709,31444 32667,31444,32667,31444 32682,31445,32709,31445 32667,31445,32668,31446 32735,31445,32739,31446 32681,31446,32710,31446 32681,31447,32712,31447 32666,31447,32668,31447 32736,31447,32736,31447 32680,31448,32714,31448 32666,31448,32669,31448 32665,31449,32669,31449 32679,31449,32715,31449 32698,31450,32716,31450 32679,31450,32692,31450 32700,31451,32702,31451 32707,31451,32716,31451 32679,31451,32691,31451 32751,31452,32754,31452 32679,31452,32690,31452 32708,31452,32716,31452 32677,31453,32690,31453 32708,31453,32717,31453 32750,31453,32755,31454 32709,31454,32716,31454 32675,31454,32690,31454 32709,31455,32717,31455 32675,31455,32689,31455 32709,31456,32718,31456 32674,31456,32689,31456 32665,31450,32670,31457 32748,31455,32756,31457 32675,31457,32688,31457 32674,31458,32685,31458 32666,31458,32670,31458 32709,31457,32717,31459 32676,31459,32685,31459 32748,31458,32757,31460 32733,31460,32734,31460 32677,31460,32685,31460 32709,31460,32716,31460 32710,31461,32716,31461 32677,31461,32684,31461 32732,31461,32734,31461 32666,31459,32669,31462 32747,31461,32757,31462 32678,31462,32681,31462 32732,31462,32735,31462 32681,31463,32682,31463 32748,31463,32758,31463 32727,31463,32735,31464 32749,31464,32758,31465 32725,31465,32736,31465 32710,31462,32714,31466 32724,31466,32736,31466 32750,31466,32758,31466 32710,31467,32715,31467 32750,31467,32757,31467 32723,31467,32736,31467 32709,31468,32716,31468 32722,31468,32737,31468 32751,31468,32757,31468 32752,31469,32757,31469 32708,31469,32738,31469 32682,31469,32691,31469 32752,31470,32756,31470 32705,31470,32738,31470 32681,31470,32692,31470 32702,31471,32725,31471 32754,31471,32754,31471 32681,31471,32693,31471 32731,31471,32738,31471 32732,31472,32739,31472 32700,31472,32721,31472 32686,31472,32694,31472 32698,31472,32698,31472 32687,31473,32711,31473 32715,31473,32721,31473 32733,31473,32739,31473 32717,31474,32718,31474 32735,31474,32740,31475 32688,31474,32710,31475 32718,31475,32718,31475 32768,31476,32769,31476 32736,31476,32740,31476 32687,31476,32710,31476 32736,31477,32741,31477 32688,31477,32708,31477 32764,31478,32765,31478 32689,31478,32706,31478 32737,31478,32742,31479 32689,31479,32705,31479 32689,31480,32704,31480 32736,31480,32741,31481 32689,31481,32703,31481 32690,31482,32690,31482 32693,31482,32697,31482 32760,31482,32760,31482 32695,31483,32697,31483 32759,31483,32760,31484 32737,31482,32741,31485 32759,31485,32759,31485 32736,31486,32740,31486 32736,31487,32739,31487 32714,31487,32717,31488 32735,31488,32738,31488 32752,31489,32756,31489 32714,31489,32718,31489 32733,31489,32737,31489 32732,31490,32736,31490 32753,31490,32755,31490 32715,31490,32718,31490 32753,31491,32754,31491 32729,31491,32736,31491 32715,31491,32719,31491 32727,31492,32736,31492 32723,31492,32723,31492 32740,31492,32742,31492 32714,31492,32721,31492 32714,31493,32736,31493 32739,31493,32742,31494 32714,31494,32737,31494 32715,31495,32744,31496 32715,31497,32743,31497 32714,31498,32742,31498 32714,31499,32741,31499 32714,31500,32738,31500 32715,31501,32717,31501 32722,31501,32737,31501 32723,31502,32736,31502 32725,31503,32735,31503 32730,31504,32734,31505 32731,31506,32734,31507 32731,31508,32733,31508 32732,31509,32733,31509", + }, + [141] = { -- Zao Orc Fortress (3505 tiles, 114 rects) + name = "Zao Orc Fortress", + mainArea = 8, + bbox = { x1 = 33017, y1 = 31266, x2 = 33105, y2 = 31368 }, + rects = "33031,31266,33032,31266 33030,31267,33033,31267 33029,31268,33035,31268 33028,31269,33036,31270 33028,31271,33038,31271 33026,31272,33039,31272 33025,31273,33040,31274 33044,31274,33047,31274 33023,31275,33041,31275 33043,31275,33048,31275 33023,31276,33048,31276 33022,31277,33048,31277 33020,31278,33049,31279 33018,31280,33049,31280 33017,31281,33048,31281 33018,31282,33048,31282 33020,31283,33048,31283 33022,31284,33048,31284 33022,31285,33049,31285 33057,31286,33059,31286 33052,31286,33055,31286 33023,31286,33050,31286 33023,31287,33060,31287 33024,31288,33061,31288 33064,31288,33065,31288 33024,31289,33066,31289 33024,31290,33067,31290 33024,31291,33068,31292 33025,31293,33068,31293 33025,31294,33067,31294 33026,31295,33067,31295 33029,31296,33069,31296 33034,31297,33070,31297 33034,31298,33072,31298 33035,31299,33073,31299 33036,31300,33073,31300 33037,31301,33072,31301 33038,31302,33071,31302 33039,31303,33071,31303 33040,31304,33071,31304 33039,31305,33071,31305 33039,31306,33070,31306 33038,31307,33070,31307 33037,31308,33070,31308 33037,31309,33069,31309 33038,31310,33069,31310 33038,31311,33070,31312 33039,31313,33070,31313 33041,31314,33043,31314 33045,31314,33071,31315 33069,31316,33070,31316 33045,31316,33064,31318 33076,31319,33079,31319 33046,31319,33063,31319 33074,31320,33080,31320 33054,31320,33061,31320 33048,31320,33052,31320 33050,31321,33051,31321 33073,31321,33080,31321 33056,31321,33061,31321 33058,31322,33063,31322 33073,31322,33079,31323 33057,31323,33063,31324 33074,31324,33079,31324 33058,31325,33065,31325 33072,31325,33078,31325 33057,31326,33079,31326 33056,31327,33080,31327 33055,31328,33083,31328 33053,31329,33084,31329 33052,31330,33085,31330 33046,31331,33048,31331 33051,31331,33086,31331 33092,31332,33093,31332 33045,31332,33086,31332 33097,31333,33103,31333 33045,31333,33087,31333 33091,31333,33094,31333 33046,31334,33088,31334 33091,31334,33104,31334 33037,31336,33039,31336 33046,31335,33104,31337 33036,31337,33041,31337 33047,31338,33103,31338 33036,31338,33042,31339 33053,31339,33103,31339 33056,31340,33103,31340 33037,31340,33041,31340 33056,31341,33102,31341 33056,31342,33103,31343 33054,31344,33104,31344 33053,31345,33104,31345 33053,31346,33105,31346 33054,31347,33105,31347 33052,31348,33105,31348 33049,31349,33102,31349 33048,31350,33100,31351 33048,31352,33099,31353 33049,31354,33098,31354 33050,31355,33051,31355 33053,31355,33098,31355 33053,31356,33094,31356 33053,31357,33092,31357 33058,31358,33091,31358 33054,31358,33055,31358 33060,31359,33090,31359 33060,31360,33088,31360 33061,31361,33088,31361 33060,31362,33087,31363 33060,31364,33085,31364 33061,31365,33084,31366 33076,31367,33081,31367 33062,31367,33072,31367 33078,31368,33080,31368", + }, + [142] = { -- Zao Steppe (55542 tiles, 580 rects) + name = "Zao Steppe", + mainArea = 8, + bbox = { x1 = 33007, y1 = 31298, x2 = 33402, y2 = 31571 }, + rects = "33102,31298,33104,31298 33099,31299,33107,31300 33098,31301,33106,31301 33097,31302,33107,31303 33098,31304,33106,31304 33098,31305,33105,31305 33097,31306,33104,31306 33096,31307,33102,31307 33096,31308,33100,31309 33097,31310,33101,31310 33098,31311,33102,31312 33099,31313,33101,31313 33099,31314,33102,31315 33098,31316,33103,31316 33098,31317,33104,31317 33099,31318,33104,31318 33101,31319,33107,31319 33101,31320,33108,31322 33101,31323,33107,31323 33101,31324,33106,31324 33117,31325,33120,31325 33102,31325,33107,31325 33101,31326,33107,31326 33116,31326,33122,31326 33101,31327,33108,31327 33116,31327,33123,31327 33113,31328,33125,31328 33101,31328,33109,31329 33112,31329,33126,31330 33102,31330,33108,31330 33113,31331,33126,31331 33103,31331,33108,31331 33138,31331,33140,31331 33136,31332,33140,31332 33112,31332,33127,31332 33104,31332,33108,31333 33112,31333,33128,31333 33135,31333,33140,31333 33105,31334,33129,31334 33134,31334,33142,31335 33105,31335,33130,31335 33150,31335,33150,31335 33133,31336,33143,31336 33149,31336,33150,31336 33105,31336,33131,31336 33105,31337,33144,31337 33158,31337,33159,31337 33177,31337,33177,31337 33182,31337,33185,31337 33146,31337,33150,31337 33158,31338,33160,31338 33175,31338,33187,31338 33157,31339,33161,31339 33104,31338,33151,31340 33173,31339,33187,31340 33171,31340,33171,31340 33156,31340,33163,31340 33103,31341,33163,31341 33171,31341,33187,31342 33104,31342,33163,31343 33170,31343,33188,31344 33200,31344,33200,31344 33105,31344,33163,31344 33193,31344,33196,31344 33170,31345,33196,31345 33105,31345,33164,31345 33200,31345,33205,31345 33170,31346,33206,31347 33106,31346,33165,31348 33213,31348,33213,31348 33168,31348,33206,31348 33103,31349,33208,31349 33212,31349,33219,31351 33101,31350,33208,31351 33100,31352,33220,31352 33100,31353,33221,31353 33231,31353,33231,31353 33231,31354,33232,31354 33228,31354,33229,31354 33099,31354,33221,31354 33099,31355,33222,31355 33037,31355,33038,31355 33228,31355,33232,31355 33035,31356,33040,31356 33095,31356,33232,31356 33033,31357,33040,31357 33093,31357,33232,31357 33242,31357,33250,31357 33033,31358,33039,31358 33092,31358,33233,31358 33242,31358,33251,31358 33091,31359,33233,31359 33240,31359,33252,31359 33033,31359,33038,31360 33089,31360,33234,31360 33238,31360,33253,31360 33258,31360,33263,31361 33034,31361,33038,31361 33089,31361,33253,31361 33041,31361,33045,31361 33033,31362,33046,31362 33257,31362,33263,31362 33088,31362,33253,31362 33028,31362,33030,31362 33026,31363,33031,31363 33275,31363,33276,31363 33033,31363,33047,31363 33088,31363,33263,31363 33086,31364,33263,31364 33268,31364,33276,31364 33025,31364,33048,31365 33050,31365,33051,31365 33085,31365,33278,31365 33024,31366,33052,31366 33085,31366,33283,31366 33082,31367,33286,31367 33073,31367,33075,31367 33023,31367,33053,31367 33021,31368,33054,31368 33062,31368,33077,31368 33081,31368,33299,31368 33062,31369,33301,31369 33314,31369,33316,31369 33020,31369,33054,31370 33312,31370,33317,31370 33062,31370,33303,31370 33020,31371,33056,31371 33307,31371,33318,31371 33062,31371,33305,31371 33062,31372,33319,31372 33021,31372,33057,31372 33023,31373,33059,31373 33061,31373,33329,31373 33024,31374,33330,31374 33023,31375,33331,31376 33022,31377,33330,31377 33022,31378,33328,31379 33023,31380,33328,31380 33025,31381,33329,31382 33024,31383,33329,31383 33024,31384,33328,31384 33024,31385,33322,31385 33325,31385,33327,31385 33025,31386,33322,31386 33024,31387,33322,31387 33024,31388,33324,31388 33023,31389,33324,31390 33023,31391,33321,31391 33022,31392,33321,31393 33021,31394,33321,31394 33021,31395,33319,31395 33021,31396,33318,31396 33021,31397,33317,31398 33333,31398,33334,31398 33022,31399,33317,31399 33332,31399,33335,31399 33332,31400,33337,31400 33022,31400,33318,31400 33332,31401,33338,31401 33022,31401,33319,31401 33345,31402,33347,31402 33333,31402,33338,31402 33334,31403,33339,31403 33342,31403,33348,31403 33023,31402,33320,31404 33335,31404,33350,31404 33335,31405,33351,31405 33023,31405,33321,31406 33332,31406,33352,31406 33332,31407,33353,31407 33024,31407,33320,31407 33024,31408,33318,31408 33331,31408,33353,31408 33330,31409,33352,31409 33025,31409,33317,31409 33025,31410,33316,31410 33329,31410,33351,31410 33328,31411,33346,31411 33024,31411,33315,31412 33328,31412,33347,31412 33328,31413,33348,31413 33021,31413,33315,31413 33327,31414,33349,31414 33020,31414,33317,31414 33019,31415,33318,31415 33325,31415,33349,31415 33324,31416,33349,31416 33017,31416,33318,31416 33013,31417,33318,31417 33323,31417,33347,31417 33012,31418,33314,31418 33323,31418,33348,31418 33012,31419,33348,31419 33013,31420,33347,31420 33012,31421,33347,31421 33011,31422,33346,31422 33011,31423,33345,31423 33010,31424,33344,31424 33010,31425,33335,31425 33339,31425,33343,31425 33010,31426,33336,31426 33340,31426,33341,31426 33011,31427,33336,31427 33012,31428,33336,31429 33012,31430,33323,31430 33326,31430,33327,31431 33011,31431,33323,31431 33331,31430,33335,31432 33010,31432,33328,31432 33009,31433,33328,31433 33331,31434,33338,31434 33008,31434,33329,31434 33008,31435,33339,31436 33007,31437,33339,31438 33008,31439,33338,31439 33008,31440,33337,31440 33008,31441,33336,31441 33008,31442,33334,31442 33347,31442,33348,31442 33352,31443,33353,31443 33346,31443,33350,31443 33009,31443,33334,31443 33346,31444,33354,31444 33010,31444,33334,31445 33346,31445,33355,31446 33010,31446,33337,31446 33346,31447,33354,31447 33011,31447,33340,31447 33012,31448,33353,31449 33013,31450,33352,31450 33013,31451,33353,31451 33015,31452,33354,31452 33016,31453,33354,31453 33383,31454,33384,31454 33018,31454,33354,31455 33382,31455,33384,31455 33380,31456,33385,31456 33387,31456,33390,31456 33019,31456,33355,31457 33379,31457,33390,31457 33392,31458,33394,31458 33379,31458,33389,31458 33020,31458,33355,31459 33379,31459,33390,31459 33402,31459,33402,31459 33392,31459,33397,31459 33393,31460,33397,31460 33021,31460,33355,31460 33374,31460,33376,31460 33378,31460,33390,31460 33401,31460,33401,31460 33374,31461,33396,31461 33399,31461,33401,31461 33020,31461,33355,31462 33375,31462,33395,31462 33400,31462,33400,31462 33377,31463,33394,31463 33019,31463,33355,31464 33377,31464,33393,31464 33396,31465,33399,31465 33377,31465,33394,31465 33018,31465,33354,31466 33378,31466,33400,31467 33017,31467,33358,31467 33379,31468,33401,31468 33017,31468,33359,31469 33379,31469,33402,31469 33377,31470,33402,31470 33016,31470,33359,31470 33016,31471,33360,31471 33375,31471,33402,31471 33375,31472,33401,31472 33015,31472,33361,31472 33364,31472,33365,31472 33376,31473,33400,31474 33015,31473,33366,31475 33377,31475,33401,31475 33014,31476,33366,31476 33375,31476,33401,31476 33014,31477,33361,31477 33373,31477,33401,31477 33364,31477,33365,31477 33372,31478,33400,31478 33014,31478,33362,31478 33013,31479,33363,31479 33371,31479,33400,31479 33371,31480,33399,31480 33012,31480,33363,31480 33372,31481,33399,31481 33374,31482,33396,31482 33012,31481,33362,31483 33375,31483,33396,31483 33375,31484,33395,31484 33013,31484,33364,31484 33376,31485,33388,31485 33013,31485,33365,31485 33390,31485,33395,31485 33014,31486,33365,31486 33391,31486,33394,31486 33375,31486,33378,31486 33382,31486,33388,31486 33393,31487,33394,31487 33375,31487,33377,31487 33015,31487,33364,31487 33383,31487,33386,31487 33015,31488,33361,31488 33384,31488,33385,31488 33016,31489,33361,31489 33018,31490,33361,31490 33312,31491,33361,31491 33021,31491,33299,31491 33312,31492,33360,31492 33022,31492,33299,31492 33022,31493,33294,31493 33317,31493,33355,31493 33117,31494,33119,31494 33317,31494,33352,31494 33022,31494,33115,31494 33123,31494,33294,31494 33317,31495,33351,31495 33022,31495,33114,31495 33124,31495,33294,31495 33324,31496,33350,31496 33023,31496,33115,31496 33125,31496,33294,31497 33024,31497,33115,31498 33324,31497,33344,31498 33126,31498,33288,31498 33127,31499,33288,31499 33023,31499,33114,31499 33329,31499,33343,31500 33038,31500,33113,31500 33128,31500,33288,31500 33023,31500,33034,31500 33334,31501,33342,31501 33129,31501,33288,31501 33024,31501,33028,31501 33044,31501,33114,31501 33032,31501,33033,31501 33040,31501,33040,31501 33026,31502,33027,31502 33141,31502,33282,31502 33334,31502,33341,31502 33128,31502,33137,31502 33045,31502,33114,31502 33047,31503,33050,31503 33054,31503,33115,31503 33048,31504,33049,31504 33061,31504,33115,31504 33056,31504,33057,31504 33127,31503,33136,31505 33061,31505,33116,31505 33142,31503,33282,31506 33128,31506,33136,31506 33062,31506,33117,31506 33063,31507,33117,31507 33143,31507,33282,31507 33064,31508,33116,31508 33144,31508,33277,31508 33145,31509,33277,31509 33128,31507,33137,31510 33066,31509,33115,31510 33147,31510,33277,31510 33125,31511,33136,31511 33147,31511,33154,31511 33156,31511,33277,31511 33067,31511,33114,31511 33147,31512,33153,31512 33165,31512,33277,31512 33068,31512,33113,31512 33123,31512,33135,31512 33158,31512,33160,31512 33069,31513,33113,31513 33166,31513,33167,31513 33169,31513,33274,31513 33148,31513,33149,31513 33122,31513,33134,31513 33070,31514,33113,31514 33121,31514,33133,31514 33171,31514,33274,31515 33073,31515,33113,31515 33121,31515,33132,31515 33121,31516,33128,31516 33074,31516,33113,31516 33171,31516,33269,31516 33139,31517,33145,31517 33077,31517,33112,31517 33122,31517,33128,31517 33080,31518,33112,31518 33137,31518,33147,31518 33126,31518,33127,31518 33135,31519,33149,31519 33081,31519,33111,31519 33172,31517,33269,31520 33081,31520,33113,31520 33134,31520,33150,31521 33173,31521,33269,31521 33080,31521,33114,31521 33079,31522,33114,31522 33178,31522,33269,31522 33133,31522,33151,31522 33138,31523,33146,31523 33149,31523,33151,31523 33133,31523,33135,31523 33079,31523,33113,31523 33179,31523,33269,31523 33180,31524,33269,31524 33080,31524,33113,31524 33150,31524,33152,31524 33132,31524,33134,31524 33137,31524,33147,31524 33132,31525,33133,31525 33151,31525,33152,31525 33080,31525,33116,31525 33136,31525,33148,31525 33179,31525,33263,31525 33179,31526,33182,31526 33149,31526,33149,31526 33138,31526,33146,31526 33081,31526,33116,31526 33135,31526,33135,31526 33152,31526,33152,31527 33132,31526,33132,31527 33184,31526,33263,31527 33136,31527,33137,31527 33150,31527,33150,31527 33139,31527,33145,31527 33147,31527,33148,31527 33134,31527,33134,31527 33082,31527,33110,31528 33178,31527,33181,31528 33132,31528,33133,31528 33151,31528,33152,31528 33137,31528,33147,31528 33185,31528,33263,31528 33136,31529,33136,31529 33081,31529,33110,31529 33138,31529,33146,31529 33179,31529,33180,31529 33148,31529,33148,31529 33149,31530,33149,31530 33139,31530,33145,31530 33135,31530,33135,31530 33080,31530,33109,31530 33137,31530,33137,31530 33147,31530,33147,31530 33152,31529,33152,31531 33132,31529,33132,31531 33150,31531,33150,31531 33080,31531,33107,31531 33138,31531,33146,31531 33134,31531,33134,31531 33184,31529,33263,31532 33132,31532,33133,31532 33151,31532,33152,31532 33137,31532,33137,31532 33080,31532,33105,31532 33147,31532,33147,31532 33139,31532,33145,31533 33136,31533,33137,31533 33080,31533,33104,31533 33147,31533,33148,31533 33185,31533,33263,31533 33132,31533,33132,31534 33152,31533,33152,31534 33149,31534,33149,31534 33146,31534,33146,31534 33184,31534,33225,31534 33227,31534,33263,31534 33135,31534,33135,31534 33140,31534,33144,31534 33138,31534,33138,31534 33080,31534,33103,31535 33184,31535,33223,31535 33139,31535,33145,31535 33150,31535,33152,31535 33132,31535,33134,31535 33228,31535,33263,31535 33137,31535,33137,31535 33147,31535,33147,31535 33083,31536,33102,31536 33133,31536,33134,31536 33146,31536,33146,31536 33228,31536,33258,31536 33183,31536,33222,31536 33140,31536,33144,31536 33138,31536,33138,31536 33150,31536,33151,31536 33150,31537,33150,31537 33139,31537,33139,31537 33229,31537,33258,31537 33145,31537,33145,31537 33134,31537,33134,31537 33141,31537,33143,31537 33137,31537,33137,31537 33181,31537,33222,31537 33084,31537,33103,31537 33147,31537,33147,31537 33148,31538,33150,31538 33232,31538,33258,31538 33134,31538,33136,31538 33146,31538,33146,31538 33180,31538,33223,31538 33087,31538,33103,31538 33140,31538,33144,31538 33138,31538,33138,31538 33180,31539,33224,31539 33088,31539,33102,31539 33139,31539,33139,31539 33145,31539,33145,31539 33135,31539,33136,31540 33234,31539,33258,31540 33148,31539,33149,31540 33141,31539,33143,31540 33146,31540,33146,31540 33098,31540,33101,31540 33180,31540,33225,31540 33138,31540,33138,31540 33088,31540,33096,31540 33087,31541,33095,31541 33099,31541,33100,31541 33179,31541,33225,31541 33146,31541,33148,31541 33239,31541,33254,31541 33142,31541,33142,31541 33136,31541,33138,31541 33235,31541,33237,31541 33087,31542,33091,31542 33178,31542,33224,31542 33240,31542,33254,31542 33137,31542,33147,31542 33088,31543,33089,31543 33137,31543,33139,31543 33178,31543,33223,31543 33241,31543,33254,31543 33145,31543,33147,31543 33242,31544,33249,31544 33251,31544,33254,31544 33177,31544,33223,31544 33090,31545,33092,31545 33243,31545,33249,31545 33176,31545,33222,31546 33243,31546,33248,31546 33243,31547,33247,31547 33175,31547,33221,31547 33089,31546,33093,31548 33095,31548,33096,31548 33244,31548,33246,31548 33175,31548,33217,31548 33090,31549,33097,31549 33174,31549,33216,31550 33092,31550,33097,31550 33093,31551,33096,31551 33174,31551,33217,31551 33094,31552,33095,31552 33174,31552,33218,31552 33175,31553,33218,31553 33175,31554,33217,31554 33175,31555,33216,31555 33172,31556,33216,31556 33171,31557,33210,31557 33212,31557,33216,31557 33171,31558,33209,31558 33213,31558,33215,31558 33172,31559,33202,31559 33204,31559,33207,31559 33205,31560,33207,31560 33174,31560,33200,31560 33174,31561,33199,31561 33175,31562,33198,31562 33173,31563,33197,31563 33193,31564,33195,31564 33172,31564,33188,31564 33172,31565,33189,31566 33173,31567,33174,31567 33180,31567,33188,31567 33181,31568,33188,31568 33186,31569,33187,31569 33181,31569,33184,31570 33182,31571,33183,31571", + }, + [143] = { -- Zzaion (6568 tiles, 175 rects) + name = "Zzaion", + mainArea = 8, + bbox = { x1 = 33253, y1 = 31491, x2 = 33362, y2 = 31624 }, + rects = "33300,31491,33311,31492 33295,31493,33316,31495 33295,31496,33323,31497 33289,31498,33323,31498 33289,31499,33328,31500 33289,31501,33333,31501 33283,31502,33333,31502 33283,31503,33341,31503 33283,31504,33342,31504 33283,31505,33343,31505 33339,31506,33343,31506 33283,31506,33337,31507 33339,31507,33342,31507 33340,31508,33341,31508 33278,31508,33337,31512 33275,31513,33338,31515 33270,31516,33339,31517 33298,31518,33338,31518 33270,31518,33296,31518 33299,31519,33334,31519 33270,31519,33295,31520 33300,31520,33331,31520 33305,31521,33330,31522 33300,31521,33302,31523 33270,31521,33296,31524 33305,31523,33331,31525 33264,31525,33295,31525 33298,31524,33302,31526 33264,31526,33294,31526 33306,31526,33331,31526 33264,31527,33293,31527 33296,31527,33303,31528 33310,31527,33331,31528 33264,31528,33294,31529 33311,31529,33331,31529 33297,31529,33306,31529 33264,31530,33293,31530 33315,31530,33330,31530 33298,31530,33307,31530 33315,31531,33329,31531 33264,31531,33308,31531 33316,31532,33328,31532 33264,31532,33309,31532 33264,31533,33310,31533 33316,31533,33327,31533 33264,31534,33293,31534 33316,31534,33328,31534 33298,31534,33312,31534 33297,31535,33328,31535 33264,31535,33292,31535 33296,31536,33327,31536 33259,31536,33291,31536 33296,31537,33324,31537 33259,31537,33289,31537 33316,31538,33323,31538 33297,31538,33312,31538 33259,31538,33287,31539 33297,31539,33310,31539 33317,31539,33321,31539 33259,31540,33288,31540 33255,31541,33288,31541 33296,31540,33309,31542 33292,31541,33293,31542 33318,31540,33319,31543 33306,31543,33309,31543 33291,31543,33294,31543 33312,31543,33313,31543 33297,31543,33303,31543 33255,31542,33287,31544 33325,31544,33326,31544 33290,31544,33294,31544 33311,31544,33319,31544 33298,31544,33302,31545 33307,31544,33308,31545 33290,31545,33295,31545 33311,31545,33326,31545 33253,31545,33286,31545 33307,31546,33326,31546 33330,31546,33331,31546 33253,31546,33295,31547 33298,31546,33299,31547 33330,31547,33339,31547 33305,31547,33326,31547 33254,31548,33299,31548 33303,31548,33327,31548 33330,31548,33340,31548 33302,31549,33327,31549 33329,31549,33340,31549 33256,31549,33285,31549 33290,31549,33299,31549 33257,31550,33285,31550 33290,31550,33340,31550 33291,31551,33341,31551 33257,31551,33284,31551 33258,31552,33284,31552 33291,31552,33343,31552 33264,31553,33283,31553 33259,31553,33262,31553 33291,31553,33344,31554 33271,31554,33282,31554 33260,31554,33261,31554 33264,31554,33269,31555 33277,31555,33281,31555 33271,31555,33273,31555 33292,31555,33344,31556 33278,31556,33280,31556 33265,31556,33268,31556 33292,31557,33345,31558 33293,31559,33344,31559 33294,31560,33346,31560 33293,31561,33348,31561 33293,31562,33349,31562 33294,31563,33349,31563 33295,31564,33349,31564 33299,31565,33349,31565 33300,31566,33350,31566 33301,31567,33351,31567 33300,31568,33351,31568 33300,31569,33350,31569 33305,31570,33349,31570 33301,31570,33303,31570 33305,31571,33350,31574 33305,31575,33349,31576 33309,31577,33349,31577 33306,31577,33307,31577 33312,31578,33348,31578 33311,31579,33348,31579 33311,31580,33349,31580 33309,31581,33351,31581 33309,31582,33352,31583 33310,31584,33354,31584 33311,31585,33354,31586 33310,31587,33354,31587 33309,31588,33354,31588 33309,31589,33352,31589 33310,31590,33350,31590 33311,31591,33351,31591 33311,31592,33353,31592 33310,31593,33354,31593 33310,31594,33358,31594 33311,31595,33360,31596 33311,31597,33359,31597 33311,31598,33358,31598 33325,31599,33359,31599 33312,31599,33323,31599 33313,31600,33323,31600 33325,31600,33361,31600 33313,31601,33322,31601 33325,31601,33326,31601 33328,31601,33362,31601 33327,31602,33362,31602 33315,31602,33322,31602 33326,31603,33362,31603 33314,31603,33319,31604 33321,31603,33322,31604 33326,31604,33361,31604 33327,31605,33361,31605 33315,31605,33319,31605 33326,31606,33361,31606 33325,31607,33361,31607 33316,31606,33318,31608 33325,31608,33362,31608 33326,31609,33362,31610 33329,31611,33361,31612 33330,31613,33361,31613 33331,31614,33361,31615 33331,31616,33359,31617 33331,31618,33358,31618 33335,31619,33358,31619 33339,31620,33356,31620 33335,31620,33337,31621 33340,31621,33356,31621 33341,31622,33353,31622 33347,31623,33352,31623 33347,31624,33350,31624", + }, + [144] = { -- Dragonblaze Peaks (18909 tiles, 218 rects) + name = "Dragonblaze Peaks", + mainArea = 8, + bbox = { x1 = 33114, y1 = 31245, x2 = 33339, y2 = 31372 }, + rects = "33134,31245,33135,31245 33133,31246,33136,31246 33132,31247,33138,31248 33133,31249,33138,31249 33134,31250,33138,31250 33182,31248,33184,31251 33135,31251,33139,31252 33181,31252,33185,31253 33312,31253,33312,31253 33135,31253,33138,31254 33180,31254,33186,31254 33310,31254,33312,31254 33149,31254,33152,31254 33320,31255,33321,31255 33179,31255,33186,31255 33135,31255,33142,31255 33309,31255,33313,31255 33148,31255,33152,31255 33135,31256,33143,31256 33319,31256,33322,31256 33249,31256,33252,31256 33147,31256,33155,31256 33309,31256,33316,31256 33179,31256,33188,31256 33179,31257,33189,31257 33146,31257,33156,31257 33132,31257,33142,31257 33230,31257,33232,31257 33248,31257,33252,31258 33309,31257,33323,31258 33229,31258,33237,31258 33199,31258,33201,31258 33179,31258,33188,31258 33146,31258,33158,31258 33131,31258,33144,31258 33309,31259,33324,31259 33162,31259,33166,31259 33195,31259,33201,31259 33248,31259,33253,31259 33130,31259,33160,31259 33195,31260,33202,31260 33215,31260,33220,31260 33309,31260,33323,31260 33130,31260,33167,31260 33247,31260,33254,31260 33178,31259,33188,31261 33226,31259,33238,31261 33297,31261,33322,31261 33192,31261,33201,31261 33130,31261,33168,31261 33247,31261,33255,31261 33277,31261,33280,31261 33214,31261,33222,31261 33285,31261,33289,31261 33277,31262,33281,31262 33247,31262,33256,31262 33172,31262,33201,31262 33242,31262,33245,31262 33226,31262,33239,31262 33285,31262,33322,31262 33129,31262,33168,31262 33208,31262,33222,31263 33273,31263,33323,31263 33224,31263,33258,31263 33128,31263,33201,31264 33208,31264,33259,31264 33266,31264,33323,31264 33265,31265,33322,31265 33208,31265,33260,31265 33131,31265,33202,31266 33319,31266,33321,31266 33207,31266,33315,31266 33130,31267,33315,31267 33130,31268,33317,31268 33131,31269,33318,31269 33132,31270,33318,31271 33132,31272,33319,31272 33133,31273,33323,31273 33133,31274,33325,31274 33136,31275,33326,31275 33137,31276,33326,31277 33139,31278,33328,31279 33139,31280,33327,31280 33137,31281,33327,31281 33134,31282,33328,31282 33133,31283,33328,31283 33132,31284,33323,31284 33326,31284,33327,31284 33132,31285,33320,31285 33130,31286,33320,31286 33129,31287,33321,31287 33127,31288,33323,31288 33126,31289,33323,31289 33124,31290,33323,31290 33123,31291,33324,31291 33122,31292,33327,31292 33122,31293,33330,31293 33122,31294,33331,31295 33123,31296,33331,31296 33123,31297,33332,31297 33123,31298,33333,31298 33122,31299,33333,31299 33122,31300,33332,31300 33120,31301,33331,31301 33119,31302,33331,31302 33119,31303,33332,31303 33117,31304,33332,31304 33116,31305,33327,31305 33330,31305,33331,31305 33116,31306,33326,31306 33118,31307,33325,31308 33115,31309,33325,31309 33114,31310,33325,31310 33114,31311,33330,31311 33114,31312,33331,31312 33115,31313,33334,31313 33122,31314,33337,31314 33116,31314,33119,31314 33123,31315,33338,31317 33123,31318,33339,31318 33125,31319,33339,31320 33126,31321,33339,31321 33129,31322,33338,31323 33129,31324,33339,31324 33128,31325,33339,31325 33128,31326,33334,31326 33337,31326,33338,31326 33128,31327,33333,31328 33128,31329,33317,31329 33321,31329,33333,31329 33322,31330,33333,31330 33128,31330,33316,31330 33322,31331,33335,31331 33127,31331,33137,31331 33141,31331,33315,31332 33325,31332,33337,31332 33128,31332,33135,31332 33141,31333,33314,31333 33326,31333,33337,31333 33129,31333,33134,31333 33143,31334,33314,31334 33130,31334,33133,31334 33327,31334,33337,31334 33329,31335,33336,31335 33131,31335,33133,31335 33143,31335,33149,31335 33151,31335,33314,31336 33132,31336,33132,31336 33144,31336,33148,31336 33330,31336,33335,31337 33160,31337,33176,31337 33178,31337,33181,31337 33186,31337,33314,31337 33151,31337,33157,31337 33145,31337,33145,31337 33188,31338,33313,31338 33152,31338,33157,31338 33161,31338,33174,31338 33331,31338,33333,31338 33188,31339,33312,31339 33152,31339,33156,31339 33162,31339,33172,31339 33152,31340,33155,31340 33172,31340,33172,31340 33188,31340,33311,31341 33164,31340,33170,31342 33188,31342,33309,31342 33189,31343,33308,31343 33164,31343,33169,31344 33201,31344,33308,31344 33189,31344,33192,31344 33197,31344,33199,31345 33165,31345,33169,31345 33206,31345,33309,31345 33207,31346,33311,31346 33314,31346,33317,31346 33166,31346,33169,31347 33207,31347,33322,31347 33214,31348,33325,31348 33166,31348,33167,31348 33207,31348,33212,31348 33220,31349,33326,31349 33220,31350,33327,31350 33209,31349,33211,31351 33220,31351,33328,31351 33221,31352,33328,31352 33232,31353,33327,31353 33222,31353,33230,31353 33233,31354,33325,31354 33230,31354,33230,31354 33222,31354,33227,31354 33223,31355,33227,31355 33233,31355,33324,31356 33251,31357,33326,31357 33233,31357,33241,31357 33252,31358,33326,31358 33234,31358,33241,31358 33234,31359,33239,31359 33253,31359,33327,31359 33235,31360,33237,31360 33264,31360,33330,31361 33254,31360,33257,31361 33254,31362,33256,31362 33264,31362,33331,31362 33264,31363,33274,31363 33277,31363,33334,31364 33264,31364,33267,31364 33279,31365,33334,31365 33284,31366,33334,31366 33287,31367,33333,31367 33300,31368,33332,31368 33317,31369,33330,31369 33302,31369,33313,31369 33318,31370,33329,31370 33304,31370,33311,31370 33319,31371,33327,31371 33306,31371,33306,31371 33320,31372,33327,31372", + }, + [145] = { -- Muggy Plains (21977 tiles, 333 rects) + name = "Muggy Plains", + mainArea = 8, + bbox = { x1 = 33139, y1 = 31091, x2 = 33371, y2 = 31266 }, + rects = "33290,31091,33294,31091 33287,31092,33295,31092 33286,31093,33296,31093 33285,31094,33296,31095 33277,31095,33277,31095 33300,31096,33302,31096 33283,31096,33295,31096 33277,31096,33280,31096 33278,31097,33292,31097 33299,31097,33303,31097 33279,31098,33292,31098 33298,31098,33303,31098 33297,31099,33303,31099 33251,31099,33270,31099 33281,31099,33294,31100 33242,31100,33248,31100 33296,31100,33303,31100 33250,31100,33270,31100 33281,31101,33303,31101 33241,31101,33276,31101 33239,31102,33277,31102 33281,31102,33302,31102 33305,31103,33306,31103 33238,31103,33302,31104 33304,31104,33307,31104 33238,31105,33307,31105 33238,31106,33306,31108 33343,31109,33346,31109 33341,31110,33347,31110 33239,31109,33305,31111 33337,31111,33347,31111 33351,31112,33352,31112 33238,31112,33304,31112 33334,31112,33348,31112 33238,31113,33303,31113 33332,31113,33357,31113 33239,31114,33304,31114 33331,31114,33358,31114 33330,31115,33359,31115 33366,31115,33367,31115 33244,31115,33304,31115 33329,31116,33360,31116 33363,31116,33368,31116 33329,31117,33368,31117 33244,31116,33303,31118 33324,31118,33368,31118 33323,31119,33367,31119 33245,31119,33305,31119 33244,31120,33306,31120 33322,31120,33367,31120 33321,31121,33366,31121 33244,31121,33307,31121 33321,31122,33365,31122 33245,31122,33310,31122 33320,31123,33366,31123 33316,31124,33367,31124 33246,31123,33311,31125 33315,31125,33369,31125 33314,31126,33370,31126 33247,31126,33311,31127 33313,31127,33370,31127 33247,31128,33371,31129 33248,31130,33371,31130 33368,31131,33370,31131 33249,31131,33366,31132 33248,31133,33366,31133 33248,31134,33365,31134 33248,31135,33364,31135 33248,31136,33365,31136 33326,31137,33365,31137 33249,31137,33322,31138 33362,31138,33365,31138 33326,31138,33359,31138 33249,31139,33358,31139 33363,31139,33364,31139 33248,31140,33354,31140 33352,31141,33353,31141 33248,31141,33349,31141 33249,31142,33349,31142 33247,31143,33350,31143 33235,31144,33236,31144 33246,31144,33350,31144 33234,31145,33237,31145 33246,31145,33349,31146 33233,31146,33238,31146 33231,31147,33239,31147 33245,31147,33348,31148 33228,31148,33239,31148 33244,31149,33348,31149 33226,31149,33239,31149 33225,31150,33239,31150 33258,31150,33342,31150 33346,31150,33347,31150 33225,31151,33240,31151 33258,31151,33343,31151 33244,31150,33254,31152 33257,31152,33343,31152 33225,31152,33241,31152 33225,31153,33343,31154 33226,31155,33342,31156 33224,31157,33345,31157 33221,31158,33346,31158 33220,31159,33347,31159 33219,31160,33347,31161 33219,31162,33346,31162 33217,31163,33345,31163 33216,31164,33241,31164 33246,31164,33345,31164 33213,31165,33241,31165 33247,31165,33347,31165 33208,31165,33210,31165 33247,31166,33348,31166 33208,31166,33241,31167 33245,31167,33349,31167 33208,31168,33350,31168 33209,31169,33350,31171 33205,31171,33206,31171 33205,31172,33207,31172 33210,31172,33350,31172 33211,31173,33352,31173 33205,31173,33208,31173 33355,31174,33357,31174 33211,31174,33353,31174 33206,31174,33208,31174 33212,31175,33358,31175 33205,31175,33209,31175 33195,31175,33197,31175 33213,31176,33359,31176 33194,31176,33198,31176 33181,31177,33184,31177 33213,31177,33220,31177 33227,31177,33359,31177 33194,31177,33199,31177 33205,31176,33210,31178 33180,31178,33187,31178 33214,31178,33218,31178 33194,31178,33200,31178 33230,31178,33231,31178 33239,31178,33359,31178 33203,31179,33211,31179 33180,31179,33192,31179 33250,31179,33358,31179 33240,31179,33246,31179 33228,31179,33229,31179 33194,31179,33201,31179 33215,31179,33216,31179 33222,31179,33225,31179 33234,31178,33236,31180 33240,31180,33243,31180 33219,31180,33232,31180 33249,31180,33358,31180 33179,31180,33212,31180 33217,31181,33238,31181 33249,31181,33359,31181 33244,31181,33245,31181 33179,31181,33214,31181 33243,31182,33246,31182 33175,31182,33239,31182 33249,31182,33360,31183 33243,31183,33247,31183 33174,31183,33240,31183 33252,31184,33360,31184 33244,31184,33247,31184 33174,31184,33241,31184 33170,31185,33242,31185 33252,31185,33355,31185 33250,31186,33356,31186 33169,31186,33246,31186 33249,31187,33358,31187 33168,31187,33246,31187 33166,31188,33359,31188 33163,31189,33359,31189 33162,31190,33360,31191 33162,31192,33359,31192 33161,31193,33357,31193 33160,31194,33356,31194 33160,31195,33355,31195 33327,31196,33353,31196 33160,31196,33325,31196 33328,31197,33352,31197 33161,31197,33325,31197 33350,31198,33351,31198 33161,31198,33324,31198 33329,31198,33348,31198 33330,31199,33348,31199 33162,31199,33321,31199 33164,31200,33314,31200 33316,31200,33318,31200 33329,31200,33349,31201 33164,31201,33313,31202 33328,31202,33335,31202 33337,31202,33347,31202 33328,31203,33334,31203 33337,31203,33345,31203 33164,31203,33312,31204 33342,31204,33345,31204 33329,31204,33333,31204 33338,31204,33339,31204 33343,31205,33344,31205 33163,31205,33313,31205 33328,31205,33333,31205 33162,31206,33313,31206 33328,31206,33332,31206 33162,31207,33318,31207 33329,31207,33331,31207 33162,31208,33319,31208 33163,31209,33319,31209 33163,31210,33318,31210 33163,31211,33317,31211 33320,31212,33321,31212 33162,31212,33316,31212 33162,31213,33322,31213 33250,31214,33322,31214 33163,31214,33245,31214 33166,31215,33244,31215 33247,31215,33249,31215 33251,31215,33322,31215 33252,31216,33321,31216 33168,31216,33244,31217 33247,31216,33250,31217 33252,31217,33320,31217 33252,31218,33309,31218 33169,31218,33245,31218 33248,31218,33250,31218 33311,31218,33318,31218 33169,31219,33247,31219 33251,31219,33308,31219 33313,31219,33316,31219 33169,31220,33307,31220 33170,31221,33306,31221 33175,31222,33307,31222 33154,31223,33161,31223 33176,31223,33307,31223 33299,31224,33306,31224 33176,31224,33297,31224 33153,31224,33162,31225 33293,31225,33296,31225 33175,31225,33289,31225 33301,31225,33304,31225 33174,31226,33289,31226 33154,31226,33162,31226 33174,31227,33290,31227 33155,31227,33162,31227 33156,31228,33163,31228 33174,31228,33291,31228 33155,31229,33163,31229 33173,31229,33291,31229 33173,31230,33293,31230 33155,31230,33162,31230 33157,31231,33162,31231 33174,31231,33294,31232 33155,31232,33163,31232 33174,31233,33295,31234 33154,31233,33163,31234 33156,31235,33162,31235 33175,31235,33294,31235 33159,31236,33161,31237 33174,31236,33294,31237 33171,31238,33295,31238 33159,31238,33164,31238 33300,31239,33301,31239 33159,31239,33165,31239 33170,31239,33295,31239 33170,31240,33296,31240 33159,31240,33167,31240 33299,31240,33301,31240 33148,31241,33149,31241 33170,31241,33302,31241 33159,31241,33168,31241 33146,31242,33150,31242 33159,31242,33302,31243 33143,31243,33152,31243 33142,31244,33302,31244 33141,31245,33299,31245 33140,31246,33298,31246 33139,31247,33297,31247 33139,31248,33181,31250 33185,31248,33297,31251 33303,31250,33306,31251 33140,31251,33181,31251 33186,31252,33297,31252 33140,31252,33180,31252 33299,31252,33307,31252 33186,31253,33308,31253 33139,31253,33180,31253 33153,31254,33179,31254 33139,31254,33148,31254 33187,31254,33308,31255 33153,31255,33178,31255 33143,31255,33147,31255 33156,31256,33178,31256 33189,31256,33248,31256 33144,31256,33146,31256 33157,31257,33178,31257 33143,31257,33145,31257 33233,31257,33247,31257 33190,31257,33229,31257 33253,31256,33308,31258 33202,31258,33228,31258 33159,31258,33178,31258 33238,31258,33247,31258 33145,31258,33145,31258 33189,31258,33198,31258 33202,31259,33225,31259 33167,31259,33177,31259 33254,31259,33308,31259 33239,31259,33247,31259 33161,31259,33161,31259 33189,31259,33194,31260 33203,31260,33214,31260 33168,31260,33177,31260 33221,31260,33225,31260 33255,31260,33308,31260 33239,31260,33246,31261 33281,31261,33284,31261 33202,31261,33213,31261 33189,31261,33191,31261 33290,31261,33296,31261 33169,31261,33177,31261 33256,31261,33276,31261 33223,31261,33225,31262 33240,31262,33241,31262 33246,31262,33246,31262 33169,31262,33171,31262 33282,31262,33284,31262 33257,31262,33276,31262 33259,31263,33272,31263 33223,31263,33223,31263 33202,31262,33207,31264 33260,31264,33265,31264 33203,31265,33207,31265 33261,31265,33264,31265 33203,31266,33206,31266", + }, + [148] = { -- Razachai (16826 tiles, 185 rects) + name = "Razachai", + mainArea = 8, + bbox = { x1 = 32986, y1 = 31062, x2 = 33125, y2 = 31287 }, + rects = "33078,31062,33081,31062 33077,31063,33082,31063 33073,31064,33082,31064 33107,31065,33109,31065 33072,31065,33083,31065 33106,31066,33110,31066 33072,31066,33084,31066 33076,31067,33084,31067 33073,31067,33074,31067 33105,31067,33110,31067 33104,31068,33109,31068 33076,31068,33083,31068 33104,31069,33107,31069 33076,31069,33082,31070 33103,31070,33106,31070 33076,31071,33083,31071 33099,31071,33105,31071 33094,31072,33105,31072 33077,31072,33084,31072 33093,31073,33105,31073 33092,31074,33115,31074 33079,31073,33085,31075 33087,31075,33115,31075 33063,31077,33064,31077 33041,31077,33042,31077 33074,31076,33115,31078 33040,31078,33052,31078 33062,31078,33065,31078 33060,31079,33065,31079 33072,31079,33115,31079 33038,31079,33052,31079 33037,31080,33115,31080 33036,31081,33115,31082 33037,31083,33115,31083 33039,31084,33115,31084 33040,31085,33115,31086 33040,31087,33112,31087 33040,31088,33093,31088 33098,31088,33112,31089 33040,31089,33091,31090 33040,31091,33089,31091 33037,31092,33063,31092 33036,31093,33057,31093 33036,31094,33054,31094 33036,31095,33053,31095 33037,31096,33053,31097 33038,31098,33039,31098 33041,31098,33053,31098 33042,31099,33053,31099 33042,31100,33052,31102 33041,31103,33052,31103 33101,31090,33112,31104 33100,31105,33112,31106 33099,31107,33112,31107 33098,31108,33112,31109 33027,31104,33052,31112 33027,31113,33053,31116 33030,31117,33053,31119 33098,31110,33115,31120 33030,31120,33054,31120 33097,31121,33115,31121 33029,31121,33054,31122 33096,31122,33115,31122 33095,31123,33115,31123 33029,31123,33055,31124 33070,31124,33080,31124 33093,31124,33112,31125 33029,31125,33056,31125 33069,31125,33081,31125 33029,31126,33057,31126 33068,31126,33082,31126 33091,31126,33112,31126 33089,31127,33112,31127 33029,31127,33059,31127 33067,31127,33083,31127 33029,31128,33112,31130 33028,31131,33112,31131 33026,31132,33112,31134 33027,31135,33112,31135 33026,31136,33112,31136 33025,31137,33112,31140 33026,31141,33112,31141 33029,31142,33112,31143 33029,31144,33125,31157 33029,31158,33122,31158 33027,31159,33122,31165 33026,31166,33122,31166 33025,31167,33122,31170 32994,31170,33018,31170 32993,31171,33018,31171 33026,31171,33122,31171 33028,31172,33032,31172 32992,31172,33018,31172 33029,31173,33029,31173 32991,31173,33018,31173 33038,31172,33122,31174 32990,31174,33018,31174 32989,31175,33019,31175 32986,31176,33018,31177 32988,31178,33018,31178 32989,31179,33019,31179 32990,31180,33018,31180 32991,31181,33018,31181 33032,31175,33122,31182 32992,31182,33018,31182 33031,31183,33122,31183 32993,31183,33018,31184 33030,31184,33122,31184 33028,31185,33030,31185 33032,31185,33122,31185 33027,31186,33122,31186 33030,31187,33122,31187 33027,31187,33028,31187 33025,31188,33122,31195 33023,31196,33122,31196 33023,31197,33023,31197 33025,31197,33122,31197 33022,31198,33122,31198 33020,31199,33122,31199 33021,31200,33122,31200 33022,31201,33122,31201 33023,31202,33122,31202 33025,31203,33122,31206 33024,31207,33122,31207 33023,31208,33122,31210 33022,31211,33122,31211 33021,31212,33122,31212 33020,31213,33122,31213 33019,31214,33122,31214 33025,31215,33122,31215 33017,31215,33023,31215 33019,31216,33122,31216 33013,31216,33013,31216 33023,31217,33122,31217 33025,31218,33122,31224 33023,31225,33122,31226 33022,31227,33027,31227 33029,31227,33122,31228 33021,31228,33022,31228 33025,31228,33026,31228 32996,31228,33016,31228 32995,31229,33016,31229 33021,31229,33021,31229 33028,31229,33122,31230 32994,31230,33016,31230 33020,31230,33020,31230 32992,31231,33016,31231 33018,31231,33018,31231 32992,31232,33017,31232 33027,31231,33122,31233 32994,31233,33016,31233 32995,31234,33016,31234 32996,31235,33016,31235 33028,31234,33122,31236 32997,31236,33016,31236 33029,31237,33122,31237 33030,31238,33122,31238 33035,31239,33122,31239 33038,31240,33122,31240 33039,31241,33125,31241 33045,31242,33125,31242 33044,31243,33125,31244 33043,31245,33125,31248 33042,31249,33125,31249 33041,31250,33125,31251 33042,31252,33125,31252 33043,31253,33125,31253 33043,31254,33113,31254 33117,31254,33120,31254 33044,31255,33113,31255 33046,31256,33113,31259 33048,31260,33113,31260 33060,31261,33113,31261 33050,31261,33057,31261 33061,31262,33113,31262 33063,31263,33113,31268 33063,31269,33115,31271 33075,31272,33115,31281 33075,31282,33103,31282 33075,31283,33102,31283 33075,31284,33100,31284 33096,31285,33098,31285 33086,31285,33093,31285 33086,31286,33092,31286 33087,31287,33089,31287", + }, + [149] = { -- Corrupted Gardens (9581 tiles, 162 rects) + name = "Corrupted Gardens", + mainArea = 8, + bbox = { x1 = 33113, y1 = 31068, x2 = 33237, y2 = 31234 }, + rects = "33135,31068,33142,31068 33136,31069,33142,31069 33133,31070,33141,31070 33132,31071,33140,31071 33144,31072,33146,31072 33131,31072,33140,31072 33126,31073,33140,31073 33143,31073,33147,31073 33125,31074,33147,31075 33150,31075,33150,31075 33126,31076,33147,31076 33149,31076,33151,31076 33127,31077,33152,31077 33127,31078,33153,31078 33158,31078,33159,31078 33127,31079,33154,31079 33116,31079,33116,31079 33156,31079,33160,31079 33116,31080,33118,31080 33127,31080,33160,31081 33123,31081,33124,31081 33116,31081,33119,31081 33116,31082,33161,31082 33178,31082,33180,31082 33169,31083,33169,31083 33177,31083,33182,31083 33116,31083,33163,31083 33177,31084,33196,31084 33167,31084,33170,31084 33116,31084,33164,31084 33176,31085,33198,31085 33116,31085,33172,31085 33116,31086,33173,31086 33175,31086,33215,31086 33113,31087,33215,31090 33113,31091,33214,31092 33113,31093,33213,31093 33216,31094,33216,31094 33221,31094,33222,31094 33113,31094,33211,31095 33215,31095,33218,31095 33220,31095,33223,31095 33214,31096,33223,31096 33113,31096,33209,31096 33211,31097,33225,31097 33113,31097,33208,31097 33113,31098,33226,31098 33113,31099,33227,31099 33113,31100,33226,31100 33113,31101,33225,31101 33113,31102,33224,31102 33113,31103,33222,31103 33211,31104,33221,31104 33113,31104,33205,31104 33113,31105,33206,31105 33216,31105,33219,31105 33113,31106,33208,31106 33113,31107,33211,31107 33113,31108,33212,31108 33113,31109,33216,31109 33116,31110,33218,31110 33116,31111,33219,31111 33221,31111,33221,31111 33116,31112,33223,31112 33235,31112,33237,31112 33234,31113,33237,31113 33116,31113,33224,31114 33233,31114,33237,31114 33116,31115,33226,31115 33232,31115,33237,31115 33231,31116,33236,31116 33116,31116,33228,31116 33116,31117,33235,31117 33232,31118,33234,31118 33116,31118,33229,31118 33116,31119,33226,31120 33116,31121,33227,31123 33113,31124,33228,31125 33222,31126,33227,31126 33113,31126,33220,31126 33225,31127,33226,31127 33113,31127,33219,31127 33113,31128,33218,31129 33113,31130,33220,31130 33113,31131,33222,31131 33113,31132,33223,31132 33113,31133,33224,31134 33113,31135,33223,31136 33113,31137,33222,31137 33113,31138,33220,31138 33213,31139,33219,31139 33113,31139,33208,31140 33213,31140,33218,31140 33201,31141,33207,31141 33214,31141,33216,31141 33113,31141,33199,31142 33202,31142,33206,31142 33113,31143,33198,31143 33203,31143,33205,31143 33126,31144,33198,31145 33126,31146,33197,31146 33126,31147,33196,31151 33126,31152,33195,31152 33126,31153,33191,31153 33183,31154,33191,31155 33126,31154,33179,31156 33184,31156,33191,31156 33126,31157,33178,31157 33189,31157,33190,31157 33123,31158,33172,31158 33123,31159,33171,31160 33123,31161,33170,31161 33123,31162,33172,31162 33123,31163,33173,31163 33123,31164,33174,31167 33123,31168,33173,31168 33123,31169,33169,31169 33123,31170,33160,31171 33123,31172,33161,31174 33123,31175,33162,31177 33123,31178,33161,31179 33123,31180,33160,31180 33123,31181,33143,31181 33145,31181,33159,31182 33137,31182,33138,31182 33141,31182,33142,31182 33123,31182,33135,31183 33153,31183,33159,31183 33144,31183,33150,31183 33154,31184,33159,31184 33123,31184,33136,31184 33144,31184,33149,31184 33156,31185,33158,31185 33145,31185,33148,31185 33123,31185,33137,31186 33123,31187,33136,31189 33123,31190,33137,31193 33140,31193,33141,31193 33123,31194,33142,31194 33123,31195,33143,31196 33123,31197,33142,31201 33123,31202,33143,31204 33123,31205,33142,31205 33123,31206,33140,31208 33123,31209,33131,31209 33136,31209,33139,31210 33123,31210,33130,31211 33137,31211,33138,31211 33123,31212,33131,31212 33123,31213,33132,31216 33123,31217,33131,31217 33123,31218,33130,31218 33123,31219,33129,31219 33123,31220,33132,31220 33123,31221,33133,31224 33123,31225,33132,31225 33123,31226,33131,31227 33123,31228,33130,31228 33123,31229,33128,31229 33123,31230,33129,31232 33123,31233,33128,31233 33123,31234,33124,31234", + }, + [150] = { -- Emperor's Castle (1548 tiles, 25 rects) + name = "Emperor's Castle", + mainArea = 8, + bbox = { x1 = 33053, y1 = 31088, x2 = 33100, y2 = 31127 }, + rects = "33094,31088,33097,31088 33092,31089,33097,31089 33092,31090,33100,31090 33090,31091,33100,31091 33064,31092,33100,31092 33058,31093,33100,31093 33055,31094,33100,31094 33054,31095,33100,31099 33053,31100,33100,31104 33053,31105,33099,31106 33053,31107,33098,31107 33053,31108,33097,31112 33054,31113,33097,31119 33055,31120,33097,31120 33055,31121,33096,31121 33055,31122,33095,31122 33056,31123,33094,31123 33081,31124,33092,31124 33056,31124,33069,31124 33057,31125,33068,31125 33082,31125,33092,31125 33058,31126,33067,31126 33083,31126,33090,31126 33084,31127,33088,31127 33060,31127,33066,31127", + }, + [151] = { -- Chazorai (2059 tiles, 69 rects) + name = "Chazorai", + mainArea = 8, + bbox = { x1 = 33046, y1 = 31009, x2 = 33114, y2 = 31060 }, + rects = "33066,31009,33067,31009 33080,31010,33081,31010 33084,31010,33085,31010 33065,31010,33068,31011 33079,31011,33085,31011 33063,31012,33068,31012 33078,31012,33085,31012 33077,31013,33084,31013 33062,31013,33069,31013 33062,31014,33070,31014 33087,31014,33088,31014 33076,31014,33084,31014 33049,31015,33050,31015 33063,31015,33073,31015 33077,31015,33089,31016 33053,31016,33074,31016 33049,31016,33051,31016 33077,31017,33090,31017 33049,31017,33074,31017 33077,31018,33091,31018 33048,31018,33073,31018 33047,31019,33073,31019 33076,31019,33092,31019 33047,31020,33092,31020 33048,31021,33092,31021 33049,31022,33092,31022 33048,31023,33093,31023 33048,31024,33094,31024 33049,31025,33095,31025 33048,31026,33096,31028 33098,31028,33099,31028 33047,31029,33100,31029 33046,31030,33100,31030 33046,31031,33101,31031 33046,31032,33103,31032 33047,31033,33049,31033 33111,31033,33113,31033 33051,31033,33104,31034 33110,31034,33114,31035 33107,31035,33108,31035 33050,31035,33105,31035 33050,31036,33114,31036 33051,31037,33113,31037 33050,31038,33111,31038 33050,31039,33108,31039 33050,31040,33107,31041 33051,31042,33108,31042 33052,31043,33108,31043 33053,31044,33056,31044 33058,31044,33109,31044 33054,31045,33055,31045 33059,31045,33109,31045 33063,31046,33109,31047 33064,31048,33072,31048 33075,31048,33108,31048 33065,31049,33071,31049 33076,31049,33107,31049 33078,31050,33106,31050 33081,31051,33105,31051 33080,31052,33103,31052 33080,31053,33104,31053 33080,31054,33085,31054 33088,31054,33105,31055 33081,31055,33083,31055 33089,31056,33105,31056 33093,31057,33105,31057 33094,31058,33105,31058 33095,31059,33104,31059 33096,31060,33100,31060", + }, + [152] = { -- Spirittrails (12534 tiles, 217 rects) + name = "Spirittrails", + mainArea = 8, + bbox = { x1 = 33125, y1 = 31008, x2 = 33336, y2 = 31116 }, + rects = "33186,31008,33187,31008 33199,31008,33200,31008 33247,31008,33248,31008 33163,31008,33165,31008 33236,31008,33239,31008 33185,31009,33188,31009 33247,31009,33249,31009 33243,31009,33244,31009 33162,31009,33172,31009 33198,31009,33200,31010 33235,31009,33239,31010 33162,31010,33173,31010 33194,31010,33195,31010 33185,31010,33189,31010 33243,31010,33249,31010 33161,31011,33174,31011 33184,31011,33189,31011 33243,31011,33248,31011 33236,31011,33240,31011 33193,31011,33195,31011 33198,31011,33201,31011 33236,31012,33248,31012 33192,31012,33205,31012 33184,31012,33188,31012 33161,31012,33176,31012 33254,31012,33259,31012 33181,31013,33188,31013 33161,31013,33179,31013 33192,31013,33206,31013 33234,31013,33260,31014 33191,31014,33206,31014 33162,31014,33188,31014 33163,31015,33205,31015 33233,31015,33260,31015 33228,31015,33229,31015 33233,31016,33262,31016 33266,31016,33269,31016 33228,31016,33230,31016 33163,31016,33204,31017 33233,31017,33263,31017 33227,31017,33231,31017 33265,31017,33270,31018 33163,31018,33206,31018 33227,31018,33263,31018 33151,31019,33153,31019 33163,31019,33208,31019 33226,31019,33271,31019 33150,31020,33156,31020 33226,31020,33272,31021 33163,31020,33209,31021 33149,31021,33157,31022 33163,31022,33210,31022 33133,31022,33134,31022 33226,31022,33270,31022 33162,31023,33210,31023 33219,31023,33220,31023 33132,31023,33136,31023 33226,31023,33269,31024 33162,31024,33212,31024 33274,31024,33275,31024 33132,31024,33137,31024 33149,31023,33156,31025 33132,31025,33141,31025 33146,31025,33147,31025 33226,31025,33270,31025 33162,31025,33213,31025 33274,31025,33277,31025 33218,31024,33221,31026 33226,31026,33278,31026 33133,31026,33157,31026 33163,31026,33215,31026 33132,31027,33158,31027 33226,31027,33279,31027 33164,31027,33221,31028 33225,31028,33280,31028 33132,31028,33159,31029 33225,31029,33281,31029 33163,31029,33220,31029 33162,31030,33220,31030 33133,31030,33159,31030 33133,31031,33220,31033 33225,31030,33282,31034 33133,31034,33221,31034 33226,31035,33283,31035 33132,31035,33221,31035 33131,31036,33221,31036 33226,31036,33284,31036 33226,31037,33285,31037 33130,31037,33221,31038 33226,31038,33290,31038 33226,31039,33292,31039 33131,31039,33221,31040 33225,31040,33292,31041 33132,31041,33221,31042 33224,31042,33291,31042 33224,31043,33290,31043 33132,31043,33220,31044 33133,31045,33220,31045 33224,31044,33289,31046 33134,31046,33220,31046 33293,31046,33294,31046 33223,31047,33290,31047 33135,31047,33220,31047 33292,31047,33294,31047 33223,31048,33295,31048 33134,31048,33219,31048 33133,31049,33219,31049 33222,31049,33296,31050 33133,31050,33218,31050 33134,31051,33296,31051 33135,31052,33296,31052 33136,31053,33297,31053 33135,31054,33298,31054 33133,31055,33298,31055 33128,31056,33299,31056 33127,31057,33300,31057 33127,31058,33301,31058 33126,31059,33304,31059 33125,31060,33306,31060 33125,31061,33307,31062 33126,31063,33127,31063 33129,31063,33307,31064 33130,31065,33310,31065 33131,31066,33311,31066 33134,31067,33311,31067 33143,31068,33311,31069 33142,31070,33311,31070 33141,31071,33312,31071 33147,31072,33312,31072 33141,31072,33143,31072 33141,31073,33142,31073 33148,31073,33313,31074 33148,31075,33149,31075 33151,31075,33313,31075 33152,31076,33313,31076 33148,31076,33148,31076 33153,31077,33313,31077 33154,31078,33157,31078 33160,31078,33316,31078 33323,31078,33328,31078 33155,31079,33155,31079 33161,31079,33318,31079 33321,31079,33330,31079 33161,31080,33332,31080 33161,31081,33333,31081 33181,31082,33334,31082 33162,31082,33177,31082 33298,31083,33303,31083 33170,31083,33176,31083 33164,31083,33168,31083 33183,31083,33294,31083 33306,31083,33335,31084 33289,31084,33294,31084 33171,31084,33176,31084 33299,31084,33302,31084 33197,31084,33286,31084 33165,31084,33166,31084 33173,31085,33175,31085 33290,31085,33293,31085 33199,31085,33286,31085 33307,31085,33336,31086 33174,31086,33174,31086 33216,31086,33285,31086 33216,31087,33282,31087 33308,31087,33336,31087 33216,31088,33281,31088 33309,31088,33336,31089 33216,31089,33278,31089 33216,31090,33277,31090 33310,31090,33336,31090 33312,31091,33336,31091 33215,31091,33278,31092 33313,31092,33336,31092 33314,31093,33335,31093 33214,31093,33278,31093 33223,31094,33278,31094 33313,31094,33335,31094 33217,31094,33220,31094 33212,31094,33215,31094 33219,31095,33219,31095 33313,31095,33334,31095 33212,31095,33214,31095 33224,31095,33276,31096 33314,31096,33333,31096 33210,31096,33213,31096 33314,31097,33332,31097 33226,31097,33277,31097 33209,31097,33210,31097 33319,31098,33330,31098 33227,31098,33278,31098 33315,31098,33316,31098 33323,31099,33328,31099 33228,31099,33250,31099 33271,31099,33280,31100 33249,31100,33249,31100 33227,31100,33241,31100 33277,31101,33280,31101 33226,31101,33240,31101 33278,31102,33280,31102 33225,31102,33238,31102 33223,31103,33237,31103 33222,31104,33237,31104 33206,31104,33210,31104 33207,31105,33215,31105 33220,31105,33237,31105 33209,31106,33237,31106 33212,31107,33237,31107 33213,31108,33237,31108 33217,31109,33238,31109 33219,31110,33238,31110 33222,31111,33238,31111 33220,31111,33220,31111 33224,31112,33234,31112 33225,31113,33233,31113 33225,31114,33232,31114 33227,31115,33231,31115 33229,31116,33230,31116", + }, + [167] = { -- Hive Pools (3606 tiles, 89 rects) + name = "Hive Pools", + mainArea = 11, + bbox = { x1 = 33436, y1 = 31212, x2 = 33508, y2 = 31302 }, + rects = "33471,31212,33472,31212 33480,31212,33480,31212 33482,31213,33482,31213 33488,31213,33488,31213 33470,31213,33474,31213 33479,31213,33480,31213 33485,31213,33485,31213 33479,31214,33489,31214 33467,31214,33475,31214 33466,31215,33489,31216 33491,31216,33492,31216 33466,31217,33493,31217 33467,31218,33498,31218 33468,31219,33498,31219 33457,31220,33462,31220 33468,31220,33500,31220 33467,31221,33500,31221 33466,31222,33505,31223 33466,31224,33506,31224 33456,31221,33463,31226 33465,31225,33508,31226 33456,31227,33508,31229 33457,31230,33508,31230 33459,31231,33507,31231 33458,31232,33506,31232 33458,31233,33504,31233 33457,31234,33503,31234 33456,31235,33503,31235 33456,31236,33502,31236 33456,31237,33501,31237 33456,31238,33500,31238 33454,31239,33500,31239 33452,31240,33499,31240 33451,31241,33498,31241 33449,31242,33496,31242 33448,31243,33496,31243 33447,31244,33496,31245 33448,31246,33496,31246 33447,31247,33494,31249 33448,31250,33449,31250 33451,31250,33492,31253 33449,31254,33492,31254 33448,31255,33492,31256 33447,31257,33492,31257 33446,31258,33492,31258 33445,31259,33492,31259 33444,31260,33492,31260 33443,31261,33492,31263 33444,31264,33492,31264 33445,31265,33492,31267 33446,31268,33492,31268 33447,31269,33492,31270 33445,31271,33492,31271 33444,31272,33491,31272 33444,31273,33490,31276 33444,31277,33489,31278 33474,31279,33489,31279 33444,31279,33469,31279 33440,31280,33469,31280 33474,31280,33488,31281 33439,31281,33470,31282 33474,31282,33487,31282 33475,31283,33486,31283 33439,31283,33460,31284 33480,31284,33485,31284 33463,31283,33470,31285 33480,31285,33482,31285 33438,31285,33460,31285 33464,31286,33469,31286 33437,31286,33460,31286 33480,31286,33481,31287 33463,31287,33468,31287 33437,31287,33459,31288 33463,31288,33466,31288 33481,31288,33481,31288 33436,31289,33458,31289 33464,31289,33465,31290 33436,31290,33459,31290 33436,31291,33458,31294 33437,31295,33458,31295 33438,31296,33458,31296 33457,31297,33457,31297 33438,31297,33455,31297 33439,31298,33453,31298 33440,31299,33451,31299 33441,31300,33445,31300 33448,31300,33451,31300 33449,31301,33451,31301 33451,31302,33451,31302", + }, + [168] = { -- Hive Pyramids (7772 tiles, 172 rects) + name = "Hive Pyramids", + mainArea = 11, + bbox = { x1 = 33486, y1 = 31224, x2 = 33606, y2 = 31368 }, + rects = "33509,31224,33509,31226 33513,31227,33513,31227 33509,31227,33510,31227 33509,31228,33513,31230 33508,31231,33514,31231 33507,31232,33514,31232 33505,31233,33515,31233 33504,31234,33515,31234 33504,31235,33514,31235 33503,31236,33515,31236 33517,31236,33517,31236 33502,31237,33517,31237 33501,31238,33518,31238 33501,31239,33519,31239 33522,31240,33522,31240 33500,31240,33520,31240 33499,31241,33522,31241 33497,31242,33522,31242 33497,31243,33523,31243 33497,31244,33524,31244 33497,31245,33525,31245 33497,31246,33526,31246 33495,31247,33528,31247 33574,31248,33574,31248 33495,31248,33529,31249 33573,31249,33576,31249 33532,31250,33532,31250 33572,31250,33577,31250 33493,31250,33528,31250 33572,31251,33581,31251 33493,31251,33532,31252 33571,31252,33582,31252 33570,31253,33583,31253 33567,31253,33568,31253 33493,31253,33533,31253 33564,31254,33583,31254 33551,31254,33554,31254 33559,31254,33560,31255 33493,31254,33537,31255 33545,31254,33548,31255 33551,31255,33555,31255 33564,31255,33584,31255 33542,31255,33542,31255 33564,31256,33585,31256 33541,31256,33561,31256 33493,31256,33539,31256 33592,31259,33596,31259 33493,31257,33588,31260 33603,31259,33606,31260 33601,31260,33601,31260 33592,31260,33599,31260 33493,31261,33606,31262 33493,31263,33605,31263 33493,31264,33603,31264 33493,31265,33604,31265 33493,31266,33605,31268 33493,31269,33604,31270 33493,31271,33603,31271 33492,31272,33603,31272 33491,31273,33602,31275 33491,31276,33601,31276 33490,31277,33600,31277 33490,31278,33599,31279 33489,31280,33598,31280 33489,31281,33597,31281 33488,31282,33596,31282 33487,31283,33596,31283 33486,31284,33595,31285 33486,31286,33498,31286 33502,31286,33595,31286 33525,31287,33595,31287 33498,31287,33498,31287 33486,31287,33495,31287 33503,31287,33522,31287 33525,31288,33594,31288 33487,31288,33495,31289 33504,31288,33519,31290 33524,31289,33593,31290 33493,31290,33495,31290 33487,31290,33488,31291 33492,31291,33496,31291 33524,31291,33592,31291 33504,31291,33517,31291 33521,31292,33590,31292 33503,31292,33515,31292 33493,31292,33498,31292 33521,31293,33589,31293 33494,31293,33497,31293 33501,31293,33515,31294 33520,31294,33586,31294 33520,31295,33585,31295 33506,31295,33516,31295 33521,31296,33584,31296 33509,31296,33515,31296 33521,31297,33583,31297 33525,31298,33583,31298 33521,31298,33521,31298 33529,31299,33584,31299 33520,31299,33520,31299 33525,31299,33527,31299 33525,31300,33525,31300 33530,31300,33586,31300 33530,31301,33587,31301 33530,31302,33588,31302 33529,31303,33589,31303 33530,31304,33590,31304 33531,31305,33590,31305 33532,31306,33589,31306 33531,31307,33587,31307 33530,31308,33587,31308 33530,31309,33588,31309 33529,31310,33588,31310 33529,31311,33587,31311 33529,31312,33584,31313 33529,31314,33583,31314 33530,31315,33578,31315 33580,31315,33582,31315 33529,31316,33577,31316 33530,31317,33576,31317 33531,31318,33575,31318 33531,31319,33574,31320 33531,31321,33573,31321 33532,31322,33573,31322 33532,31323,33572,31323 33532,31324,33571,31324 33532,31325,33570,31325 33533,31326,33567,31327 33532,31328,33568,31328 33529,31329,33530,31329 33532,31329,33569,31329 33529,31330,33570,31330 33567,31331,33570,31331 33568,31332,33569,31332 33527,31331,33565,31333 33525,31334,33525,31334 33527,31334,33564,31334 33524,31335,33525,31335 33527,31335,33559,31335 33525,31336,33559,31337 33526,31338,33558,31338 33526,31339,33557,31339 33527,31340,33555,31340 33528,31341,33555,31341 33525,31342,33554,31342 33524,31343,33554,31344 33524,31345,33553,31345 33523,31346,33552,31346 33522,31347,33551,31347 33522,31348,33550,31348 33522,31349,33549,31349 33522,31350,33543,31350 33547,31350,33548,31350 33523,31351,33543,31353 33523,31354,33542,31354 33523,31355,33540,31355 33522,31356,33539,31356 33518,31356,33520,31356 33517,31357,33539,31358 33518,31359,33539,31359 33517,31360,33539,31360 33516,31361,33533,31361 33535,31361,33539,31361 33536,31362,33538,31362 33516,31362,33532,31362 33515,31363,33531,31363 33514,31364,33530,31364 33526,31365,33529,31365 33513,31365,33524,31365 33513,31366,33523,31366 33527,31366,33528,31366 33514,31367,33522,31367 33517,31368,33519,31368", + }, + [169] = { -- Hive Secondary Structure (6567 tiles, 134 rects) + name = "Hive Secondary Structure", + mainArea = 11, + bbox = { x1 = 33468, y1 = 31165, x2 = 33617, y2 = 31260 }, + rects = "33514,31165,33515,31165 33518,31166,33519,31166 33513,31166,33516,31166 33513,31167,33520,31167 33508,31168,33521,31168 33507,31169,33523,31169 33503,31169,33503,31169 33502,31170,33524,31172 33501,31173,33523,31173 33500,31174,33523,31175 33495,31176,33498,31176 33528,31176,33532,31176 33500,31176,33524,31176 33491,31177,33492,31177 33494,31177,33532,31177 33490,31178,33533,31178 33490,31179,33535,31182 33490,31183,33534,31183 33490,31184,33533,31184 33489,31185,33534,31185 33489,31186,33535,31187 33489,31188,33534,31188 33488,31189,33535,31189 33484,31190,33536,31190 33483,31191,33537,31192 33483,31193,33538,31193 33483,31194,33539,31194 33478,31195,33539,31195 33476,31196,33538,31196 33541,31197,33545,31197 33475,31197,33538,31197 33470,31198,33471,31198 33541,31198,33547,31198 33475,31198,33539,31198 33469,31199,33547,31199 33468,31200,33548,31201 33469,31202,33470,31202 33474,31202,33547,31202 33474,31203,33548,31205 33576,31205,33577,31205 33575,31206,33577,31206 33473,31206,33547,31206 33575,31207,33580,31207 33473,31207,33546,31208 33577,31208,33581,31209 33476,31209,33546,31209 33577,31210,33582,31210 33477,31210,33548,31210 33592,31211,33597,31211 33586,31211,33590,31211 33480,31211,33549,31211 33577,31211,33584,31211 33481,31212,33549,31212 33577,31212,33599,31212 33489,31213,33549,31213 33555,31213,33558,31213 33486,31213,33487,31213 33481,31213,33481,31213 33483,31213,33484,31213 33577,31213,33600,31214 33572,31214,33574,31214 33554,31214,33559,31214 33490,31214,33549,31215 33553,31215,33559,31215 33571,31215,33601,31215 33568,31215,33569,31215 33562,31216,33602,31216 33553,31216,33560,31216 33493,31216,33549,31216 33490,31216,33490,31216 33553,31217,33603,31217 33494,31217,33550,31217 33499,31218,33603,31219 33609,31219,33611,31219 33501,31220,33603,31220 33606,31220,33612,31220 33501,31221,33612,31221 33506,31222,33612,31222 33506,31223,33613,31223 33507,31224,33508,31224 33510,31224,33614,31226 33511,31227,33512,31227 33514,31227,33614,31228 33514,31229,33616,31230 33515,31231,33617,31231 33515,31232,33616,31232 33516,31233,33617,31234 33515,31235,33617,31235 33518,31236,33616,31236 33516,31236,33516,31236 33518,31237,33613,31237 33519,31238,33611,31238 33520,31239,33612,31239 33523,31240,33612,31240 33521,31240,33521,31240 33523,31241,33613,31242 33524,31243,33613,31243 33525,31244,33614,31244 33526,31245,33615,31245 33527,31246,33615,31246 33529,31247,33615,31247 33530,31248,33573,31248 33575,31248,33615,31248 33530,31249,33572,31249 33577,31249,33615,31249 33578,31250,33615,31250 33529,31250,33531,31250 33533,31250,33571,31251 33582,31251,33615,31251 33583,31252,33614,31252 33533,31252,33570,31252 33584,31253,33607,31253 33534,31253,33566,31253 33569,31253,33569,31253 33610,31253,33613,31254 33555,31254,33558,31254 33584,31254,33606,31254 33538,31254,33544,31254 33549,31254,33550,31255 33561,31254,33563,31255 33556,31255,33558,31255 33538,31255,33541,31255 33543,31255,33544,31255 33585,31255,33605,31255 33611,31255,33612,31255 33540,31256,33540,31256 33562,31256,33563,31256 33586,31256,33604,31256 33589,31257,33604,31257 33589,31258,33605,31258 33597,31259,33602,31259 33589,31259,33591,31260 33602,31260,33602,31260 33600,31260,33600,31260", + }, + [184] = { -- Southern Terramite Tunnels (91 tiles, 7 rects) + name = "Southern Terramite Tunnels", + mainArea = 2, + bbox = { x1 = 33052, y1 = 32692, x2 = 33063, y2 = 32705 }, + rects = "33052,32692,33060,32692 33052,32693,33063,32694 33053,32695,33061,32695 33056,32696,33061,32699 33057,32700,33062,32701 33059,32702,33062,32702 33060,32703,33062,32705", + }, + [192] = { -- Rorc Plains (11568 tiles, 207 rects) + name = "Rorc Plains", + mainArea = 14, + bbox = { x1 = 32741, y1 = 31703, x2 = 32883, y2 = 31877 }, + rects = "32806,31703,32809,31703 32805,31704,32811,31704 32804,31705,32812,31705 32804,31706,32813,31706 32802,31707,32813,31707 32801,31708,32814,31709 32802,31710,32814,31710 32802,31711,32813,31711 32803,31712,32812,31712 32801,31713,32810,31713 32770,31713,32771,31713 32765,31714,32772,31714 32800,31714,32808,31714 32799,31715,32808,31715 32765,31715,32773,31715 32775,31715,32776,31715 32798,31716,32808,31716 32764,31716,32777,31716 32763,31717,32777,31717 32798,31717,32809,31717 32797,31718,32809,31718 32762,31718,32776,31718 32762,31719,32779,31719 32797,31719,32810,31719 32763,31720,32783,31720 32794,31720,32810,31720 32763,31721,32785,31721 32793,31721,32810,31722 32762,31722,32789,31722 32761,31723,32810,31724 32760,31725,32811,31726 32760,31727,32812,31727 32760,31728,32813,31728 32759,31729,32813,31730 32758,31731,32813,31731 32757,31732,32813,31732 32754,31733,32813,31733 32753,31734,32813,31734 32751,31735,32813,31735 32750,31736,32813,31738 32749,31739,32813,31739 32748,31740,32813,31741 32748,31742,32814,31742 32747,31743,32814,31744 32748,31745,32814,31745 32749,31746,32814,31746 32751,31747,32814,31748 32751,31749,32813,31749 32752,31750,32811,31750 32754,31751,32811,31751 32756,31752,32811,31752 32758,31753,32811,31753 32759,31754,32811,31755 32757,31756,32811,31756 32756,31757,32812,31757 32756,31758,32813,31758 32747,31759,32749,31759 32754,31759,32813,31759 32746,31760,32813,31763 32747,31764,32813,31764 32745,31765,32813,31765 32744,31766,32814,31766 32743,31767,32815,31767 32743,31768,32816,31769 32743,31770,32746,31770 32744,31771,32745,31771 32748,31770,32819,31772 32749,31773,32821,31773 32748,31774,32821,31774 32747,31775,32822,31775 32747,31776,32823,31777 32747,31778,32824,31778 32748,31779,32825,31780 32745,31781,32825,31781 32744,31782,32825,31782 32743,31783,32826,31784 32743,31785,32827,31786 32742,31787,32827,31787 32741,31788,32827,31788 32741,31789,32831,31789 32742,31790,32744,31790 32749,31790,32832,31790 32750,31791,32833,31791 32754,31792,32834,31792 32756,31793,32834,31793 32756,31794,32835,31794 32757,31795,32835,31795 32759,31796,32835,31796 32763,31797,32836,31798 32763,31799,32839,31799 32762,31800,32840,31800 32762,31801,32842,31801 32763,31802,32843,31802 32763,31803,32844,31803 32763,31804,32845,31804 32764,31805,32851,31805 32765,31806,32852,31806 32765,31807,32853,31807 32765,31808,32816,31808 32821,31808,32854,31808 32821,31809,32855,31809 32765,31809,32815,31809 32821,31810,32858,31810 32817,31810,32818,31810 32766,31810,32813,31810 32821,31811,32861,31811 32821,31812,32862,31812 32768,31811,32819,31813 32822,31813,32862,31813 32822,31814,32864,31814 32822,31815,32865,31816 32768,31814,32820,31817 32822,31817,32866,31818 32767,31818,32820,31819 32822,31819,32865,31819 32767,31820,32771,31820 32768,31821,32770,31821 32822,31820,32864,31822 32774,31820,32820,31823 32822,31823,32865,31823 32773,31824,32820,31824 32822,31824,32866,31824 32822,31825,32867,31825 32772,31825,32820,31826 32822,31826,32871,31826 32822,31827,32872,31827 32772,31827,32819,31828 32821,31828,32873,31828 32821,31829,32874,31829 32772,31829,32818,31829 32821,31830,32875,31830 32772,31830,32817,31830 32773,31831,32817,31831 32820,31831,32876,31832 32774,31832,32817,31833 32821,31833,32879,31833 32773,31834,32818,31834 32826,31834,32880,31834 32772,31835,32823,31835 32826,31835,32881,31835 32826,31836,32882,31838 32772,31836,32824,31838 32779,31839,32824,31839 32773,31839,32776,31839 32780,31840,32824,31840 32826,31839,32883,31841 32782,31841,32824,31842 32826,31842,32882,31842 32789,31843,32824,31843 32827,31843,32881,31843 32829,31844,32881,31844 32790,31844,32824,31844 32791,31845,32827,31845 32831,31845,32881,31846 32791,31846,32828,31846 32876,31847,32879,31847 32831,31847,32872,31847 32791,31847,32829,31847 32792,31848,32829,31848 32877,31848,32878,31848 32832,31848,32872,31848 32833,31849,32872,31849 32799,31849,32829,31849 32799,31850,32830,31850 32799,31851,32831,31851 32833,31850,32873,31852 32800,31852,32831,31852 32833,31853,32872,31853 32803,31853,32830,31853 32833,31854,32871,31854 32832,31855,32869,31855 32866,31856,32869,31856 32831,31856,32864,31856 32803,31854,32829,31857 32831,31857,32863,31857 32867,31857,32868,31857 32804,31858,32828,31858 32831,31858,32859,31858 32830,31859,32859,31859 32847,31860,32864,31860 32848,31861,32865,31861 32830,31860,32844,31862 32849,31862,32865,31862 32849,31863,32864,31863 32830,31863,32843,31863 32849,31864,32862,31864 32830,31864,32842,31864 32805,31859,32828,31865 32849,31865,32861,31865 32831,31865,32839,31865 32832,31866,32835,31866 32847,31866,32857,31866 32805,31866,32827,31866 32833,31867,32834,31867 32846,31867,32855,31867 32804,31867,32824,31867 32845,31868,32853,31868 32804,31868,32823,31868 32804,31869,32820,31869 32845,31869,32849,31869 32804,31870,32819,31870 32846,31870,32847,31870 32804,31871,32818,31871 32804,31872,32817,31872 32803,31873,32813,31873 32803,31874,32809,31876 32804,31877,32808,31877", + }, + [195] = { -- Upper Roshamuul (29000 tiles, 319 rects) + name = "Upper Roshamuul", + mainArea = 22, + bbox = { x1 = 33530, y1 = 32255, x2 = 33743, y2 = 32459 }, + rects = "33624,32255,33625,32255 33624,32256,33626,32256 33625,32257,33629,32257 33699,32258,33702,32258 33622,32258,33630,32258 33695,32259,33702,32259 33622,32259,33631,32259 33623,32260,33631,32260 33695,32260,33703,32262 33626,32261,33632,32262 33684,32261,33687,32262 33713,32261,33713,32262 33681,32262,33682,32262 33693,32262,33693,32262 33604,32262,33606,32262 33675,32262,33676,32263 33672,32262,33673,32263 33603,32263,33607,32263 33693,32263,33703,32263 33685,32263,33687,32263 33652,32263,33652,32263 33682,32263,33683,32263 33624,32263,33633,32264 33713,32263,33714,32264 33689,32263,33689,32264 33672,32264,33678,32264 33601,32264,33607,32264 33681,32264,33687,32264 33652,32264,33653,32264 33695,32264,33703,32264 33693,32265,33703,32265 33624,32265,33632,32265 33712,32265,33715,32265 33601,32265,33609,32265 33653,32265,33654,32265 33668,32265,33689,32265 33720,32265,33720,32266 33654,32266,33657,32266 33690,32266,33701,32266 33667,32266,33688,32266 33622,32266,33630,32266 33601,32266,33610,32266 33713,32266,33716,32266 33665,32267,33701,32267 33715,32267,33717,32267 33719,32267,33720,32267 33601,32267,33613,32267 33621,32267,33629,32267 33655,32267,33660,32267 33665,32268,33702,32268 33717,32268,33720,32268 33655,32268,33661,32268 33617,32268,33631,32268 33602,32268,33613,32268 33601,32269,33631,32269 33655,32269,33656,32269 33658,32269,33702,32269 33597,32270,33598,32270 33707,32270,33710,32270 33601,32270,33632,32270 33659,32270,33703,32270 33718,32269,33720,32271 33707,32271,33712,32271 33660,32271,33703,32271 33597,32271,33632,32271 33735,32272,33736,32272 33596,32272,33633,32272 33707,32272,33714,32272 33661,32272,33705,32272 33719,32272,33722,32272 33733,32273,33736,32273 33708,32273,33714,32273 33595,32273,33634,32273 33645,32273,33645,32273 33720,32273,33723,32273 33660,32273,33705,32273 33659,32274,33705,32274 33718,32274,33724,32274 33594,32274,33634,32274 33733,32274,33735,32274 33645,32274,33647,32274 33709,32274,33714,32275 33593,32275,33636,32275 33638,32275,33639,32275 33659,32275,33706,32275 33730,32275,33735,32275 33716,32275,33726,32275 33644,32275,33648,32275 33644,32276,33649,32276 33659,32276,33726,32276 33728,32276,33734,32276 33590,32276,33639,32276 33654,32276,33654,32276 33586,32277,33641,32277 33645,32277,33649,32277 33654,32277,33655,32277 33658,32277,33734,32277 33645,32278,33650,32278 33585,32278,33641,32278 33654,32278,33735,32278 33644,32279,33650,32279 33654,32279,33737,32279 33581,32279,33642,32279 33654,32280,33739,32280 33580,32280,33651,32280 33579,32281,33740,32282 33580,32283,33740,32283 33580,32284,33739,32284 33582,32285,33740,32285 33583,32286,33588,32286 33743,32287,33743,32287 33583,32287,33587,32287 33595,32286,33740,32288 33742,32288,33743,32288 33584,32288,33584,32289 33596,32289,33742,32289 33596,32290,33741,32290 33601,32291,33739,32292 33602,32293,33740,32293 33603,32294,33740,32294 33604,32295,33740,32295 33605,32296,33741,32296 33605,32297,33739,32297 33604,32298,33740,32298 33603,32299,33740,32299 33602,32300,33738,32300 33601,32301,33739,32302 33600,32303,33739,32303 33600,32304,33740,32304 33599,32305,33740,32305 33599,32306,33741,32307 33598,32308,33741,32308 33598,32309,33740,32309 33597,32310,33740,32310 33601,32311,33729,32311 33731,32311,33738,32311 33601,32312,33728,32312 33732,32312,33735,32312 33602,32313,33730,32313 33602,32314,33735,32314 33603,32315,33735,32315 33602,32316,33735,32316 33599,32317,33734,32317 33596,32318,33733,32318 33592,32319,33738,32319 33590,32320,33733,32320 33589,32321,33731,32321 33588,32322,33730,32323 33587,32324,33730,32324 33582,32325,33732,32325 33732,32326,33735,32326 33582,32326,33730,32326 33581,32327,33730,32327 33579,32328,33731,32329 33730,32330,33731,32330 33579,32330,33727,32330 33579,32331,33726,32331 33577,32332,33726,32332 33577,32333,33725,32333 33577,32334,33717,32334 33720,32334,33722,32334 33575,32335,33717,32335 33722,32335,33723,32336 33574,32336,33711,32336 33713,32336,33717,32336 33569,32337,33570,32337 33715,32337,33716,32337 33574,32337,33709,32337 33568,32338,33709,32338 33713,32339,33715,32339 33568,32339,33708,32339 33566,32340,33707,32340 33710,32340,33718,32340 33709,32341,33718,32341 33566,32341,33705,32342 33708,32342,33719,32342 33564,32343,33705,32343 33707,32343,33719,32344 33563,32344,33705,32344 33563,32345,33719,32345 33563,32346,33720,32348 33562,32349,33719,32349 33565,32350,33719,32350 33565,32351,33718,32352 33566,32353,33718,32353 33567,32354,33718,32354 33567,32355,33719,32355 33568,32356,33714,32356 33567,32357,33713,32357 33566,32358,33713,32358 33565,32359,33712,32359 33564,32360,33712,32360 33563,32361,33709,32361 33559,32362,33709,32363 33559,32364,33708,32364 33715,32364,33716,32364 33541,32364,33542,32365 33559,32365,33707,32365 33714,32365,33716,32365 33552,32365,33553,32365 33713,32366,33716,32366 33541,32366,33544,32366 33552,32366,33710,32366 33713,32367,33715,32367 33551,32367,33710,32367 33540,32367,33544,32368 33549,32368,33715,32368 33719,32368,33721,32369 33538,32369,33715,32369 33538,32370,33716,32370 33718,32370,33720,32370 33545,32371,33721,32371 33723,32372,33724,32372 33564,32372,33721,32372 33564,32373,33724,32374 33726,32374,33728,32374 33564,32375,33728,32375 33564,32376,33727,32377 33730,32376,33733,32377 33564,32378,33733,32378 33564,32379,33735,32379 33564,32380,33736,32382 33735,32383,33736,32383 33564,32383,33732,32383 33564,32384,33729,32384 33564,32385,33727,32386 33564,32387,33728,32389 33552,32389,33554,32390 33564,32390,33726,32390 33542,32391,33725,32391 33542,32392,33723,32392 33536,32393,33722,32393 33537,32394,33726,32394 33538,32395,33727,32395 33539,32396,33727,32396 33540,32397,33725,32397 33540,32398,33724,32398 33539,32399,33725,32399 33534,32400,33723,32400 33531,32401,33722,32401 33536,32402,33722,32403 33536,32404,33723,32404 33537,32405,33724,32405 33540,32406,33719,32406 33537,32406,33538,32406 33724,32406,33725,32407 33540,32407,33718,32408 33725,32408,33727,32408 33538,32409,33718,32409 33726,32409,33726,32409 33538,32410,33717,32410 33726,32410,33727,32410 33536,32411,33717,32411 33532,32411,33534,32411 33727,32411,33727,32412 33531,32412,33717,32412 33532,32413,33716,32413 33533,32414,33716,32414 33530,32415,33720,32415 33530,32416,33721,32416 33531,32417,33721,32418 33531,32419,33720,32419 33532,32420,33715,32420 33533,32421,33714,32421 33534,32422,33712,32423 33715,32423,33717,32423 33535,32424,33717,32424 33535,32425,33716,32425 33535,32426,33715,32426 33535,32427,33716,32427 33534,32428,33716,32428 33533,32429,33717,32429 33532,32430,33718,32430 33531,32431,33719,32432 33531,32433,33716,32433 33531,32434,33715,32435 33531,32436,33714,32436 33532,32437,33713,32437 33532,32438,33712,32438 33535,32439,33552,32439 33558,32439,33714,32439 33559,32440,33717,32440 33537,32440,33541,32440 33543,32440,33551,32440 33546,32441,33550,32441 33561,32441,33717,32441 33568,32442,33717,32442 33562,32442,33565,32442 33548,32442,33550,32442 33575,32443,33719,32443 33576,32444,33668,32444 33674,32444,33719,32444 33708,32445,33708,32445 33701,32445,33701,32445 33675,32445,33685,32445 33689,32445,33690,32445 33578,32445,33662,32445 33666,32445,33668,32445 33711,32445,33716,32445 33667,32446,33668,32446 33659,32446,33661,32446 33579,32446,33654,32446 33715,32446,33715,32446 33682,32446,33683,32446 33675,32446,33679,32447 33578,32447,33654,32447 33579,32448,33654,32448 33580,32449,33654,32449 33580,32450,33607,32450 33587,32451,33606,32451 33582,32451,33585,32452 33588,32452,33590,32452 33593,32452,33606,32453 33594,32454,33606,32454 33596,32455,33604,32455 33597,32456,33604,32456 33597,32457,33603,32457 33596,32458,33601,32458 33597,32459,33601,32459", + }, + [198] = { -- Lower Roshamuul (22034 tiles, 343 rects) + name = "Lower Roshamuul", + mainArea = 22, + bbox = { x1 = 33482, y1 = 32437, x2 = 33736, y2 = 32579 }, + rects = "33530,32437,33531,32438 33529,32439,33534,32439 33553,32439,33557,32439 33552,32440,33558,32440 33517,32440,33520,32440 33528,32440,33536,32440 33542,32440,33542,32440 33551,32441,33560,32441 33526,32441,33545,32441 33517,32441,33522,32441 33551,32442,33561,32442 33518,32442,33547,32442 33566,32442,33567,32442 33517,32443,33574,32443 33514,32444,33575,32444 33669,32444,33673,32444 33513,32445,33577,32445 33686,32445,33688,32445 33702,32445,33707,32445 33691,32445,33700,32445 33709,32445,33710,32445 33663,32445,33665,32445 33508,32445,33510,32445 33669,32445,33674,32446 33507,32446,33578,32446 33680,32446,33681,32446 33684,32446,33714,32446 33655,32446,33658,32446 33662,32446,33666,32446 33507,32447,33577,32447 33655,32447,33674,32447 33680,32447,33714,32447 33505,32448,33578,32448 33655,32448,33714,32448 33717,32449,33718,32449 33731,32449,33732,32449 33655,32449,33715,32449 33504,32449,33579,32450 33608,32450,33718,32450 33730,32450,33732,32450 33727,32450,33728,32450 33726,32451,33732,32451 33504,32451,33581,32451 33586,32451,33586,32451 33607,32451,33718,32451 33607,32452,33717,32452 33503,32452,33581,32452 33586,32452,33587,32452 33591,32452,33592,32452 33724,32452,33731,32453 33607,32453,33716,32453 33499,32453,33592,32453 33724,32454,33733,32454 33607,32454,33717,32454 33499,32454,33593,32454 33725,32455,33733,32455 33500,32455,33595,32455 33605,32455,33717,32455 33501,32456,33596,32456 33605,32456,33720,32456 33725,32456,33732,32456 33723,32457,33730,32457 33500,32457,33596,32457 33604,32457,33720,32457 33500,32458,33595,32458 33602,32458,33729,32458 33499,32459,33596,32459 33602,32459,33728,32459 33499,32460,33729,32460 33500,32461,33729,32461 33500,32462,33728,32462 33499,32463,33728,32463 33499,32464,33727,32465 33500,32466,33728,32467 33500,32468,33730,32468 33499,32469,33730,32469 33499,32470,33663,32470 33665,32470,33731,32470 33498,32471,33733,32471 33498,32472,33735,32472 33496,32473,33735,32473 33496,32474,33736,32474 33497,32475,33728,32475 33730,32475,33736,32475 33734,32476,33735,32476 33499,32476,33727,32476 33500,32477,33727,32477 33500,32478,33716,32478 33721,32478,33726,32478 33722,32479,33725,32479 33500,32479,33714,32479 33724,32480,33725,32480 33499,32480,33711,32481 33497,32482,33710,32483 33498,32484,33711,32484 33497,32485,33712,32485 33496,32486,33712,32486 33496,32487,33711,32487 33498,32488,33710,32489 33498,32490,33709,32490 33497,32491,33711,32491 33496,32492,33711,32492 33496,32493,33710,32493 33494,32494,33711,32494 33493,32495,33711,32495 33539,32496,33709,32496 33492,32496,33532,32496 33534,32496,33535,32496 33491,32497,33532,32497 33540,32497,33708,32497 33542,32498,33545,32498 33547,32498,33707,32498 33491,32498,33531,32498 33491,32499,33526,32499 33542,32499,33544,32499 33549,32499,33709,32500 33490,32500,33525,32500 33542,32500,33543,32500 33554,32501,33708,32501 33517,32501,33517,32501 33551,32501,33552,32501 33490,32501,33510,32501 33521,32501,33523,32501 33515,32501,33515,32501 33504,32502,33506,32502 33491,32502,33498,32502 33555,32502,33705,32502 33551,32502,33551,32502 33505,32503,33505,32503 33556,32503,33705,32503 33492,32503,33495,32503 33557,32504,33704,32504 33558,32505,33706,32505 33702,32506,33706,32506 33559,32506,33699,32507 33704,32507,33707,32507 33544,32508,33544,32508 33507,32508,33507,32508 33563,32508,33698,32508 33521,32508,33521,32508 33501,32508,33501,32508 33705,32508,33707,32508 33528,32508,33529,32508 33560,32508,33561,32508 33542,32509,33545,32509 33560,32509,33560,32509 33528,32509,33528,32509 33494,32509,33498,32509 33501,32509,33502,32509 33519,32509,33522,32509 33505,32509,33507,32509 33530,32509,33530,32509 33564,32509,33696,32509 33525,32509,33526,32509 33542,32510,33548,32510 33494,32510,33511,32510 33514,32510,33515,32510 33519,32510,33523,32510 33517,32510,33517,32510 33525,32510,33536,32510 33564,32510,33695,32510 33567,32511,33696,32511 33541,32511,33548,32511 33517,32511,33537,32511 33493,32511,33514,32511 33566,32512,33698,32512 33492,32512,33550,32512 33569,32513,33698,32513 33566,32513,33566,32513 33491,32513,33552,32514 33568,32514,33697,32514 33492,32515,33553,32515 33569,32515,33696,32515 33492,32516,33555,32516 33568,32516,33569,32516 33571,32516,33571,32516 33573,32516,33696,32516 33560,32516,33561,32516 33492,32517,33556,32517 33572,32517,33695,32517 33559,32517,33560,32517 33574,32518,33694,32518 33571,32518,33572,32518 33491,32518,33559,32518 33570,32519,33571,32519 33491,32519,33561,32519 33575,32519,33575,32519 33577,32519,33692,32519 33492,32520,33562,32520 33578,32520,33691,32521 33565,32521,33565,32521 33491,32521,33563,32521 33489,32522,33565,32522 33579,32522,33691,32522 33689,32523,33691,32523 33487,32523,33566,32523 33581,32523,33687,32523 33487,32524,33565,32524 33568,32524,33568,32524 33570,32524,33570,32524 33580,32524,33686,32525 33488,32525,33570,32525 33581,32526,33684,32526 33572,32526,33572,32526 33489,32526,33569,32526 33582,32527,33685,32527 33488,32527,33572,32527 33487,32528,33573,32528 33584,32528,33687,32528 33587,32529,33687,32529 33583,32529,33585,32529 33486,32529,33573,32529 33584,32530,33584,32530 33586,32530,33687,32530 33486,32530,33574,32530 33486,32531,33492,32531 33587,32531,33587,32531 33495,32531,33577,32531 33589,32531,33687,32531 33590,32532,33685,32532 33486,32532,33490,32532 33586,32532,33587,32532 33495,32532,33576,32533 33591,32533,33675,32533 33680,32533,33686,32533 33487,32533,33489,32533 33591,32534,33672,32534 33674,32534,33675,32534 33488,32534,33489,32534 33681,32534,33686,32534 33494,32534,33577,32535 33683,32535,33685,32535 33590,32535,33671,32535 33579,32535,33579,32535 33592,32536,33671,32536 33495,32536,33579,32536 33494,32537,33580,32537 33589,32537,33671,32537 33592,32538,33670,32538 33617,32539,33671,32539 33591,32539,33615,32539 33583,32539,33583,32539 33493,32538,33579,32540 33591,32540,33613,32540 33618,32540,33671,32540 33581,32540,33585,32540 33596,32541,33609,32541 33592,32541,33593,32541 33619,32541,33668,32541 33670,32541,33671,32541 33492,32541,33584,32541 33620,32542,33668,32542 33491,32542,33585,32542 33597,32542,33608,32542 33490,32543,33585,32543 33622,32543,33667,32543 33599,32543,33606,32543 33601,32544,33605,32544 33623,32544,33667,32544 33489,32544,33584,32545 33625,32545,33667,32545 33602,32545,33605,32545 33626,32546,33663,32546 33665,32546,33667,32546 33604,32546,33605,32546 33490,32546,33584,32546 33486,32547,33487,32547 33490,32547,33581,32547 33626,32547,33661,32547 33628,32548,33660,32548 33491,32548,33580,32548 33486,32548,33489,32548 33648,32549,33659,32549 33629,32549,33645,32549 33486,32549,33580,32549 33488,32550,33579,32550 33651,32550,33658,32550 33628,32550,33641,32550 33488,32551,33578,32551 33628,32551,33638,32551 33652,32551,33658,32551 33626,32552,33637,32552 33656,32552,33657,32552 33653,32552,33654,32552 33487,32552,33580,32552 33486,32553,33580,32553 33624,32553,33635,32554 33485,32554,33579,32554 33631,32555,33635,32555 33484,32555,33579,32555 33626,32555,33629,32555 33563,32556,33576,32556 33484,32556,33561,32556 33626,32556,33628,32556 33634,32556,33635,32556 33565,32557,33576,32557 33484,32557,33560,32557 33626,32557,33627,32557 33485,32558,33560,32558 33569,32558,33577,32558 33572,32559,33578,32559 33485,32559,33559,32559 33569,32559,33570,32559 33573,32560,33579,32560 33484,32560,33557,32560 33574,32561,33579,32561 33490,32561,33557,32561 33484,32561,33487,32561 33484,32562,33485,32562 33491,32562,33555,32562 33575,32562,33582,32563 33483,32563,33486,32563 33538,32563,33552,32563 33491,32563,33515,32563 33519,32563,33534,32563 33538,32564,33547,32564 33482,32564,33487,32564 33576,32564,33583,32564 33533,32564,33533,32564 33519,32564,33528,32564 33492,32564,33513,32564 33539,32565,33540,32565 33492,32565,33508,32565 33574,32565,33583,32565 33544,32565,33545,32565 33521,32565,33527,32565 33511,32565,33512,32565 33574,32566,33582,32566 33521,32566,33525,32566 33492,32566,33501,32566 33507,32566,33508,32566 33492,32567,33496,32567 33498,32567,33500,32567 33575,32567,33581,32567 33523,32567,33525,32568 33493,32568,33495,32568 33576,32568,33581,32568 33498,32568,33499,32568 33577,32569,33580,32569 33523,32569,33524,32569 33493,32569,33494,32570 33482,32565,33488,32578 33485,32579,33485,32579", + }, + [200] = { -- Roshamuul Mountains (5053 tiles, 119 rects) + name = "Roshamuul Mountains", + mainArea = 22, + bbox = { x1 = 33502, y1 = 32280, x2 = 33604, y2 = 32392 }, + rects = "33573,32280,33579,32280 33572,32281,33578,32281 33571,32282,33578,32282 33570,32283,33579,32283 33565,32284,33579,32284 33564,32285,33581,32285 33589,32286,33594,32286 33563,32286,33582,32287 33588,32287,33594,32287 33562,32288,33583,32288 33585,32288,33594,32288 33557,32289,33583,32289 33585,32289,33595,32289 33556,32290,33595,32290 33553,32291,33600,32291 33551,32292,33600,32292 33551,32293,33601,32293 33552,32294,33602,32294 33555,32295,33603,32295 33556,32296,33604,32296 33557,32297,33604,32297 33557,32298,33603,32298 33557,32299,33602,32299 33557,32300,33601,32300 33557,32301,33600,32301 33556,32302,33600,32302 33555,32303,33599,32304 33554,32305,33598,32305 33553,32306,33598,32306 33552,32307,33598,32307 33550,32308,33597,32308 33549,32309,33597,32309 33548,32310,33596,32310 33547,32311,33600,32311 33546,32312,33600,32312 33545,32313,33601,32313 33543,32314,33601,32314 33541,32315,33602,32315 33540,32316,33601,32316 33540,32317,33598,32317 33540,32318,33595,32318 33539,32319,33591,32319 33539,32320,33589,32320 33540,32321,33588,32321 33539,32322,33587,32322 33538,32323,33587,32323 33537,32324,33586,32324 33537,32325,33581,32325 33536,32326,33581,32326 33536,32327,33580,32327 33537,32328,33578,32328 33535,32329,33578,32329 33533,32330,33578,32330 33531,32331,33578,32331 33531,32332,33576,32334 33530,32335,33574,32335 33530,32336,33573,32336 33529,32337,33568,32337 33571,32337,33573,32337 33528,32338,33567,32339 33516,32339,33517,32339 33515,32340,33517,32340 33528,32340,33565,32340 33527,32341,33565,32341 33515,32341,33518,32341 33516,32342,33520,32342 33525,32342,33565,32342 33517,32343,33563,32343 33517,32344,33562,32344 33513,32345,33562,32346 33512,32347,33562,32347 33511,32348,33562,32348 33510,32349,33561,32349 33509,32350,33564,32350 33506,32351,33564,32352 33505,32353,33565,32353 33505,32354,33566,32354 33506,32355,33566,32355 33507,32356,33567,32356 33508,32357,33566,32357 33506,32358,33565,32358 33505,32359,33564,32359 33505,32360,33563,32360 33505,32361,33562,32361 33506,32362,33558,32363 33506,32364,33540,32364 33543,32364,33558,32364 33543,32365,33551,32365 33505,32365,33540,32365 33554,32365,33558,32365 33545,32366,33551,32366 33503,32366,33540,32366 33545,32367,33550,32367 33503,32367,33539,32368 33545,32368,33548,32368 33511,32369,33537,32369 33502,32369,33508,32369 33513,32370,33537,32370 33502,32370,33507,32370 33515,32371,33544,32371 33503,32371,33505,32371 33503,32372,33504,32372 33516,32372,33563,32372 33515,32373,33563,32374 33515,32375,33520,32375 33522,32375,33563,32376 33515,32376,33518,32376 33515,32377,33516,32377 33523,32377,33563,32377 33525,32378,33563,32379 33524,32380,33563,32380 33523,32381,33563,32385 33522,32386,33563,32387 33523,32388,33563,32388 33524,32389,33551,32389 33555,32389,33563,32390 33534,32390,33551,32390 33525,32390,33526,32391 33534,32391,33541,32392", + }, + [201] = { -- Chyllfroest Chakoya Caves (4376 tiles, 425 rects) + name = "Chyllfroest Chakoya Caves", + mainArea = 23, + bbox = { x1 = 31991, y1 = 30993, x2 = 32111, y2 = 31093 }, + rects = "32093,30993,32093,30993 32092,30994,32092,30994 32089,30995,32089,30995 32047,30995,32047,30995 32089,30996,32090,30996 32044,30996,32045,30997 32088,30997,32088,30997 32043,30998,32044,30998 32086,30998,32086,30998 32041,30999,32042,30999 32044,30999,32044,30999 32085,30999,32086,31000 32038,31000,32039,31000 32085,31001,32085,31001 32078,31001,32079,31001 32036,31001,32039,31001 32037,31002,32038,31002 32084,31002,32085,31002 32079,31002,32079,31002 32079,31003,32080,31003 32034,31003,32034,31003 32083,31003,32086,31003 32040,31003,32041,31003 32032,31004,32033,31004 32073,31004,32073,31004 32040,31004,32042,31004 32080,31004,32086,31005 32032,31005,32032,31005 32071,31005,32071,31005 32095,31005,32096,31005 32076,31006,32076,31006 32101,31006,32101,31006 32081,31006,32087,31006 32070,31006,32071,31006 32058,31006,32058,31006 32093,31006,32096,31006 32056,31007,32057,31007 32068,31007,32069,31007 32092,31007,32096,31007 32099,31007,32101,31007 32031,31007,32031,31007 32077,31007,32089,31007 32067,31008,32069,31008 32091,31008,32096,31008 32098,31008,32100,31008 32056,31008,32058,31008 32050,31008,32050,31008 32111,31008,32111,31008 32076,31008,32089,31008 32030,31008,32031,31009 32076,31009,32098,31009 32106,31009,32106,31009 32055,31009,32055,31009 32046,31009,32046,31009 32109,31009,32109,31009 32052,31010,32052,31010 32074,31010,32097,31010 32045,31010,32045,31010 32072,31010,32072,31010 32035,31010,32035,31010 32106,31010,32108,31010 32031,31010,32031,31010 32059,31011,32062,31011 32029,31011,32029,31011 32065,31011,32065,31011 32073,31011,32093,31011 32067,31011,32068,31011 32103,31011,32106,31011 32051,31011,32052,31011 32044,31011,32045,31011 32033,31011,32034,31011 32103,31012,32105,31012 32056,31012,32060,31012 32050,31012,32051,31012 32064,31012,32096,31012 32029,31012,32034,31012 32029,31013,32033,31013 32049,31013,32050,31013 32039,31013,32040,31013 32064,31013,32097,31013 32023,31013,32023,31013 32053,31013,32057,31013 32061,31014,32094,31014 32101,31014,32101,31014 32023,31014,32027,31014 32043,31014,32045,31014 32038,31014,32039,31014 32030,31014,32032,31014 32049,31014,32057,31014 32062,31015,32094,31015 32036,31015,32037,31015 32042,31015,32044,31015 32099,31015,32100,31015 32024,31015,32032,31015 32048,31015,32058,31015 32035,31016,32037,31016 32041,31016,32043,31016 32015,31016,32015,31016 32047,31016,32093,31016 32098,31016,32099,31016 32026,31016,32031,31016 32033,31016,32033,31016 32105,31017,32105,31017 32046,31017,32093,31017 32038,31017,32044,31017 32027,31017,32036,31017 32016,31017,32017,31017 32103,31018,32103,31018 32024,31018,32094,31018 32096,31018,32097,31018 32016,31018,32018,31018 32021,31019,32022,31019 32102,31019,32102,31019 32026,31019,32097,31019 32025,31020,32097,31020 32023,31020,32023,31020 32100,31020,32102,31020 32023,31021,32101,31021 32110,31021,32110,31021 32012,31021,32014,31021 32018,31022,32018,31022 32020,31022,32100,31022 32010,31022,32010,31022 32014,31022,32016,31022 32108,31022,32108,31022 32019,31023,32098,31023 32015,31023,32017,31023 32105,31023,32107,31023 32017,31024,32041,31024 32043,31024,32098,31024 32106,31024,32106,31024 32108,31024,32109,31024 32100,31024,32101,31024 32018,31025,32038,31025 32043,31025,32045,31025 32047,31025,32099,31025 32101,31025,32101,31025 32020,31026,32034,31026 32048,31026,32099,31026 32014,31026,32014,31026 32036,31026,32040,31027 32106,31027,32106,31027 32021,31027,32034,31027 32047,31027,32099,31027 32020,31028,32033,31028 32039,31028,32040,31028 32012,31028,32012,31028 32053,31028,32057,31028 32060,31028,32099,31029 32047,31028,32051,31029 32012,31029,32013,31029 32053,31029,32055,31029 32010,31029,32010,31029 32019,31029,32032,31029 32104,31029,32105,31029 32039,31029,32041,31030 32046,31030,32048,31030 32103,31030,32105,31030 32016,31030,32031,31030 32050,31030,32051,31030 32060,31030,32100,31030 32011,31030,32013,31030 32096,31031,32097,31031 32003,31031,32004,31031 32103,31031,32103,31031 32046,31031,32046,31031 32050,31031,32050,31031 32019,31031,32031,31031 32061,31031,32093,31032 32095,31032,32097,31032 32107,31032,32107,31032 32046,31032,32050,31032 32020,31032,32032,31032 32003,31032,32005,31032 32009,31032,32009,31033 32021,31033,32033,31033 32106,31033,32106,31033 32061,31033,32096,31033 32003,31033,32003,31033 32014,31034,32014,31034 32019,31034,32027,31034 32008,31034,32011,31034 32060,31034,32095,31034 32032,31034,32033,31034 32100,31034,32100,31034 32105,31034,32106,31034 32002,31034,32002,31034 32059,31035,32091,31035 32016,31035,32016,31035 32093,31035,32094,31035 32020,31035,32026,31035 32103,31035,32103,31035 32009,31035,32013,31035 32098,31035,32101,31036 32020,31036,32025,31036 32011,31036,32017,31036 32059,31036,32093,31036 32011,31037,32025,31037 32057,31037,32094,31037 32099,31037,32099,31037 32006,31038,32007,31038 32057,31038,32093,31038 32009,31038,32025,31038 32005,31039,32027,31039 32001,31039,32002,31039 32059,31039,32093,31039 32035,31040,32035,31040 32004,31040,32026,31040 32059,31040,32084,31040 32000,31040,32002,31040 32086,31040,32092,31040 32099,31040,32099,31041 32000,31041,32001,31041 32060,31041,32092,31041 32003,31041,32003,31041 32006,31041,32026,31041 32034,31041,32035,31041 32096,31040,32097,31042 31999,31042,31999,31042 32080,31042,32088,31042 32090,31042,32091,31042 32005,31042,32026,31042 32001,31042,32001,31042 32031,31042,32035,31042 31997,31042,31997,31042 32060,31042,32078,31043 32090,31043,32090,31043 32081,31043,32087,31043 32005,31043,32035,31043 32094,31043,32096,31043 31998,31044,31998,31044 32094,31044,32094,31044 32060,31044,32081,31044 32004,31044,32035,31044 32085,31044,32086,31044 32053,31044,32057,31044 32083,31044,32083,31045 32085,31045,32085,31045 32001,31045,32005,31045 31995,31045,31996,31045 32053,31045,32080,31045 32007,31045,32035,31045 32093,31045,32093,31045 32053,31046,32075,31046 32002,31046,32035,31046 32078,31046,32079,31046 31994,31046,31995,31046 32078,31047,32078,31047 32055,31047,32071,31047 32006,31047,32035,31048 32088,31048,32088,31048 32056,31048,32070,31048 32077,31048,32078,31048 32085,31049,32087,31049 32072,31049,32072,31049 32005,31049,32035,31049 32077,31049,32077,31049 32055,31049,32070,31049 32002,31049,32002,31049 32053,31050,32065,31050 32004,31050,32004,31050 32084,31050,32087,31050 32070,31050,32070,31050 32000,31050,32002,31050 32006,31050,32035,31050 31999,31051,32001,31051 32005,31051,32042,31051 32052,31051,32064,31051 32083,31051,32086,31051 32047,31051,32050,31051 32068,31050,32068,31052 32004,31052,32044,31052 32047,31052,32063,31052 32082,31052,32082,31052 31997,31052,32002,31052 32075,31052,32076,31052 31995,31053,31995,31053 31999,31053,31999,31053 32063,31053,32063,31053 32003,31053,32061,31053 32074,31053,32077,31053 32073,31054,32075,31054 32002,31054,32060,31054 31999,31055,32061,31055 32068,31055,32068,31055 32071,31055,32074,31055 32067,31056,32067,31056 31997,31056,31999,31056 32003,31056,32060,31056 32072,31056,32072,31056 32002,31057,32061,31057 32066,31057,32067,31058 31995,31058,31995,31058 31999,31058,31999,31058 32001,31058,32001,31058 32003,31058,32060,31058 32061,31059,32062,31059 32069,31059,32069,31059 31994,31059,31995,31059 32002,31059,32057,31059 31997,31059,31997,31059 31993,31060,31995,31060 32061,31060,32063,31060 32001,31060,32055,31060 31991,31060,31991,31060 32063,31061,32064,31061 32000,31061,32055,31061 31993,31061,31993,31061 31995,31062,31995,31062 32053,31062,32057,31062 31998,31062,32051,31062 32057,31063,32057,31063 31994,31063,32050,31063 32053,31063,32054,31063 31996,31064,32050,31064 32052,31064,32053,31064 32057,31064,32058,31064 31995,31065,32052,31065 32052,31066,32052,31066 31992,31066,31992,31066 31994,31066,31996,31066 31998,31066,32050,31066 31999,31067,32049,31067 31993,31067,31995,31067 32052,31068,32053,31068 31992,31068,31993,31068 32048,31068,32049,31068 31998,31068,32039,31068 32041,31068,32044,31069 31997,31069,32039,31069 32049,31069,32054,31069 31991,31069,31991,31069 32050,31070,32054,31070 31998,31070,31998,31070 32000,31070,32034,31070 32037,31070,32045,31071 32035,31071,32035,31071 32050,31071,32053,31071 32001,31071,32033,31071 32004,31072,32044,31072 32051,31072,32054,31072 31999,31072,32002,31072 32051,31073,32053,31073 32004,31073,32023,31073 31994,31073,31994,31073 32025,31073,32047,31073 31998,31073,31999,31073 31993,31074,31995,31074 32052,31074,32052,31074 32003,31074,32022,31074 31997,31074,31997,31074 32026,31074,32047,31074 32000,31075,32020,31075 32054,31075,32054,31075 32022,31075,32023,31075 31994,31075,31994,31075 32029,31075,32044,31075 31999,31076,32016,31076 31992,31076,31992,31076 32031,31076,32042,31076 32052,31076,32055,31076 32027,31077,32027,31077 32001,31077,32016,31077 32030,31077,32036,31077 31998,31077,31999,31077 32038,31077,32041,31077 32054,31077,32055,31078 32031,31078,32033,31078 32000,31078,32019,31078 32025,31078,32026,31078 32040,31078,32041,31078 32057,31078,32057,31078 32021,31078,32022,31078 32037,31078,32038,31079 32056,31079,32057,31079 32030,31079,32031,31079 32041,31079,32042,31079 31996,31079,31998,31079 32026,31079,32026,31079 32002,31079,32003,31079 32012,31079,32021,31079 32008,31079,32009,31079 32001,31080,32002,31080 32018,31080,32018,31080 32036,31080,32037,31080 32043,31080,32043,31080 32029,31080,32029,31080 32054,31080,32057,31080 32010,31080,32016,31080 31994,31080,31994,31080 31996,31080,31997,31080 32007,31080,32008,31080 32020,31080,32021,31080 32021,31081,32021,31081 32035,31081,32036,31081 32028,31081,32029,31081 32007,31081,32013,31081 32055,31081,32055,31081 32027,31082,32027,31082 32020,31082,32020,31082 32035,31082,32035,31082 32012,31082,32012,31082 32007,31082,32008,31082 32007,31083,32007,31083 32040,31083,32041,31083 32014,31083,32014,31084 32039,31084,32041,31084 32018,31084,32018,31084 32032,31084,32032,31084 32025,31084,32025,31084 32006,31084,32006,31084 32016,31085,32019,31085 32024,31085,32026,31085 32030,31085,32031,31085 32004,31085,32004,31085 32012,31085,32012,31085 32039,31085,32039,31085 32017,31086,32018,31086 32023,31086,32025,31086 32029,31086,32030,31086 32010,31087,32010,31087 32009,31088,32011,31088 32008,31089,32010,31089 32007,31091,32007,31091 32005,31093,32005,31093", + }, + [202] = { -- Chyllfroest Icefire Caves (577 tiles, 43 rects) + name = "Chyllfroest Icefire Caves", + mainArea = 23, + bbox = { x1 = 32026, y1 = 31024, x2 = 32060, y2 = 31052 }, + rects = "32042,31024,32042,31024 32039,31025,32042,31025 32046,31025,32046,31025 32041,31026,32047,31026 32035,31026,32035,31027 32041,31027,32046,31028 32058,31028,32059,31028 32034,31028,32038,31028 32052,31028,32052,31029 32042,31029,32046,31029 32033,31029,32038,31029 32056,31029,32059,31029 32032,31030,32038,31030 32042,31030,32045,31030 32052,31030,32059,31030 32032,31031,32045,31031 32051,31031,32060,31032 32033,31032,32045,31032 32034,31033,32060,31033 32028,31034,32031,31034 32034,31034,32059,31034 32027,31035,32058,31035 32026,31036,32038,31036 32040,31036,32058,31036 32026,31037,32056,31037 32051,31038,32056,31038 32026,31038,32048,31038 32050,31039,32058,31039 32028,31039,32048,31039 32036,31040,32058,31040 32027,31040,32034,31040 32027,31041,32033,31041 32027,31042,32030,31042 32036,31041,32059,31043 32058,31044,32059,31044 32036,31044,32052,31046 32036,31047,32054,31047 32036,31048,32055,31048 32036,31049,32054,31049 32036,31050,32052,31050 32051,31051,32051,31051 32043,31051,32046,31051 32045,31052,32046,31052", + }, + [208] = { -- Rathleton Slum (10980 tiles, 333 rects) + name = "Rathleton Slum", + mainArea = 20, + bbox = { x1 = 33491, y1 = 31846, x2 = 33605, y2 = 32006 }, + rects = "33542,31846,33543,31846 33546,31847,33547,31847 33544,31848,33545,31848 33539,31849,33540,31849 33554,31849,33554,31849 33543,31849,33544,31850 33553,31850,33555,31850 33553,31851,33554,31851 33546,31851,33546,31851 33542,31851,33544,31851 33543,31852,33546,31852 33565,31852,33568,31852 33553,31852,33553,31853 33544,31853,33546,31853 33565,31853,33569,31853 33552,31854,33553,31854 33566,31854,33570,31855 33545,31854,33547,31856 33552,31855,33556,31856 33545,31857,33549,31857 33543,31857,33543,31857 33565,31856,33570,31858 33548,31858,33549,31858 33543,31858,33546,31858 33552,31857,33554,31859 33533,31859,33534,31859 33564,31859,33571,31859 33542,31859,33550,31859 33561,31860,33572,31860 33534,31860,33534,31860 33543,31860,33554,31860 33535,31861,33536,31861 33549,31861,33553,31861 33542,31861,33547,31861 33561,31861,33570,31861 33541,31862,33552,31862 33563,31862,33570,31862 33531,31862,33531,31862 33534,31862,33537,31862 33532,31863,33537,31863 33551,31863,33553,31863 33530,31863,33530,31863 33546,31863,33549,31863 33566,31863,33570,31863 33541,31863,33544,31863 33552,31864,33553,31864 33529,31864,33540,31864 33567,31864,33570,31864 33542,31864,33550,31864 33542,31865,33560,31865 33532,31865,33540,31865 33568,31865,33569,31865 33565,31866,33569,31866 33537,31866,33540,31866 33552,31866,33561,31866 33542,31866,33550,31866 33538,31867,33569,31867 33538,31868,33572,31868 33577,31868,33578,31868 33576,31869,33578,31869 33539,31869,33572,31869 33594,31870,33594,31870 33514,31870,33515,31870 33541,31870,33578,31870 33592,31871,33594,31871 33516,31871,33516,31871 33543,31871,33580,31871 33600,31871,33602,31871 33585,31872,33585,31872 33518,31872,33518,31872 33589,31872,33594,31872 33544,31872,33545,31872 33549,31872,33580,31872 33598,31872,33602,31872 33549,31873,33602,31873 33525,31873,33525,31873 33518,31873,33519,31873 33522,31873,33523,31873 33523,31874,33524,31874 33519,31874,33521,31874 33548,31874,33603,31875 33521,31875,33526,31875 33549,31876,33603,31876 33522,31876,33526,31876 33514,31877,33514,31877 33523,31877,33531,31877 33533,31877,33539,31877 33558,31877,33603,31877 33551,31877,33555,31877 33558,31878,33604,31878 33552,31878,33553,31878 33525,31878,33543,31878 33515,31878,33515,31878 33526,31879,33544,31879 33558,31879,33605,31879 33524,31879,33524,31879 33569,31880,33604,31880 33506,31880,33508,31880 33531,31880,33546,31880 33510,31880,33510,31880 33559,31880,33561,31880 33515,31880,33515,31880 33564,31880,33565,31881 33531,31881,33548,31881 33506,31881,33510,31881 33575,31881,33603,31881 33568,31881,33571,31881 33512,31881,33516,31882 33534,31882,33551,31882 33568,31882,33572,31882 33509,31882,33510,31882 33506,31882,33507,31882 33574,31882,33603,31882 33509,31883,33517,31883 33579,31883,33603,31883 33533,31883,33534,31883 33570,31883,33577,31883 33537,31883,33551,31883 33534,31884,33534,31884 33515,31884,33517,31884 33579,31884,33581,31884 33571,31884,33577,31884 33553,31884,33554,31884 33511,31884,33513,31884 33532,31884,33532,31884 33537,31884,33550,31885 33584,31884,33603,31885 33566,31884,33567,31885 33507,31884,33508,31885 33570,31885,33580,31885 33517,31885,33519,31885 33531,31885,33531,31885 33533,31885,33533,31885 33553,31885,33556,31886 33517,31886,33521,31886 33498,31886,33498,31886 33530,31886,33531,31886 33602,31886,33603,31886 33523,31886,33523,31886 33569,31886,33580,31886 33535,31886,33550,31886 33583,31886,33598,31886 33568,31887,33597,31887 33498,31887,33499,31887 33518,31887,33524,31888 33535,31887,33558,31888 33573,31888,33597,31888 33532,31888,33533,31888 33499,31888,33500,31888 33567,31888,33570,31888 33532,31889,33560,31889 33517,31889,33524,31889 33501,31889,33501,31889 33566,31889,33570,31889 33573,31889,33596,31889 33496,31890,33496,31890 33518,31890,33525,31890 33566,31890,33571,31890 33531,31890,33562,31890 33527,31890,33527,31890 33499,31890,33501,31890 33573,31890,33593,31890 33566,31891,33587,31891 33591,31891,33591,31891 33522,31891,33562,31891 33501,31891,33503,31891 33513,31891,33513,31891 33508,31890,33509,31892 33502,31892,33503,31892 33523,31892,33585,31892 33502,31893,33509,31893 33523,31893,33584,31893 33503,31894,33509,31894 33523,31894,33583,31894 33522,31895,33524,31895 33504,31895,33510,31896 33522,31896,33523,31896 33527,31895,33580,31897 33504,31897,33513,31897 33504,31898,33505,31898 33508,31898,33515,31898 33523,31898,33580,31898 33508,31899,33581,31899 33502,31899,33505,31899 33501,31900,33501,31900 33509,31900,33581,31900 33497,31901,33497,31901 33512,31901,33581,31901 33514,31902,33581,31902 33515,31903,33581,31903 33491,31906,33491,31906 33515,31904,33583,31907 33494,31907,33495,31907 33494,31908,33496,31908 33513,31908,33583,31909 33495,31909,33499,31909 33511,31910,33581,31910 33500,31910,33500,31910 33504,31911,33505,31911 33502,31911,33502,31911 33508,31911,33580,31911 33511,31912,33580,31912 33507,31912,33508,31912 33511,31913,33579,31914 33509,31914,33509,31914 33509,31915,33579,31915 33510,31916,33579,31916 33510,31917,33577,31917 33511,31918,33577,31918 33507,31918,33507,31918 33504,31918,33504,31918 33505,31919,33576,31919 33505,31920,33577,31920 33509,31921,33577,31921 33511,31922,33577,31922 33511,31923,33575,31924 33510,31925,33577,31925 33494,31925,33494,31925 33495,31926,33495,31926 33506,31926,33577,31926 33502,31926,33503,31926 33507,31927,33577,31927 33503,31927,33504,31927 33496,31927,33497,31927 33502,31928,33504,31928 33506,31928,33577,31928 33496,31928,33498,31928 33497,31929,33504,31929 33507,31929,33579,31929 33502,31930,33579,31930 33498,31930,33499,31930 33498,31931,33500,31931 33507,31931,33580,31931 33503,31931,33505,31931 33503,31932,33580,31933 33501,31934,33580,31934 33497,31935,33497,31935 33501,31935,33579,31935 33495,31936,33578,31936 33493,31937,33494,31937 33582,31937,33586,31937 33496,31937,33578,31937 33497,31938,33501,31938 33581,31938,33586,31938 33503,31938,33579,31938 33498,31939,33500,31939 33503,31939,33586,31939 33503,31940,33585,31941 33590,31941,33598,31941 33504,31942,33600,31942 33503,31943,33600,31943 33503,31944,33603,31944 33501,31945,33603,31945 33501,31946,33501,31947 33499,31947,33499,31947 33504,31946,33603,31949 33499,31948,33500,31949 33503,31950,33603,31950 33498,31950,33499,31950 33493,31950,33493,31950 33503,31951,33602,31951 33491,31951,33493,31951 33498,31951,33498,31951 33491,31952,33494,31952 33496,31952,33497,31952 33491,31953,33493,31953 33496,31953,33498,31953 33501,31952,33602,31954 33491,31954,33492,31954 33496,31954,33499,31954 33496,31955,33600,31955 33498,31956,33600,31957 33500,31958,33600,31958 33502,31959,33600,31960 33504,31961,33600,31962 33501,31963,33600,31963 33500,31964,33600,31967 33502,31968,33600,31968 33505,31969,33600,31969 33506,31970,33600,31970 33507,31971,33600,31971 33508,31972,33600,31972 33509,31973,33600,31973 33510,31974,33600,31975 33511,31976,33600,31976 33512,31977,33600,31978 33510,31979,33600,31980 33510,31981,33511,31981 33514,31981,33600,31981 33515,31982,33600,31984 33514,31985,33600,31986 33513,31987,33600,31988 33514,31989,33600,31989 33515,31990,33600,31991 33516,31992,33600,31992 33517,31993,33600,31995 33510,31995,33511,31995 33514,31996,33514,31996 33519,31996,33600,31996 33511,31996,33511,31996 33517,31997,33541,31997 33567,31997,33567,31997 33559,31997,33559,31997 33513,31997,33515,31997 33543,31997,33543,31997 33563,31997,33563,31997 33571,31997,33571,31997 33555,31997,33555,31997 33547,31997,33547,31997 33551,31997,33551,31997 33515,31998,33541,31998 33516,31999,33540,31999 33516,32000,33539,32000 33574,31997,33600,32001 33513,32001,33539,32001 33575,32002,33575,32002 33521,32002,33537,32002 33591,32002,33591,32002 33595,32002,33595,32002 33599,32002,33599,32002 33583,32002,33583,32002 33587,32002,33587,32002 33513,32002,33513,32002 33579,32002,33579,32002 33524,32003,33531,32003 33533,32003,33536,32003 33520,32003,33520,32003 33521,32004,33521,32004 33528,32004,33530,32004 33524,32004,33524,32004 33522,32005,33522,32005 33527,32005,33529,32005 33529,32006,33529,32006", + }, + [209] = { -- Oramond Mountain Hideout (4753 tiles, 204 rects) + name = "Oramond Mountain Hideout", + mainArea = 20, + bbox = { x1 = 33591, y1 = 31806, x2 = 33711, y2 = 31923 }, + rects = "33631,31806,33631,31806 33629,31807,33631,31807 33651,31807,33651,31807 33650,31808,33651,31808 33628,31808,33631,31808 33627,31809,33632,31809 33656,31809,33657,31809 33646,31809,33652,31809 33645,31810,33660,31810 33626,31810,33632,31810 33637,31811,33660,31811 33625,31811,33632,31812 33636,31812,33660,31812 33624,31813,33661,31813 33666,31813,33666,31813 33624,31814,33666,31814 33622,31814,33622,31814 33680,31815,33681,31815 33672,31815,33673,31816 33679,31816,33682,31816 33678,31817,33682,31817 33671,31817,33673,31817 33622,31815,33666,31818 33677,31818,33681,31818 33699,31818,33699,31818 33670,31818,33673,31818 33622,31819,33681,31819 33696,31819,33696,31819 33698,31819,33701,31819 33622,31820,33680,31820 33695,31820,33704,31820 33622,31821,33679,31821 33695,31821,33705,31822 33622,31822,33680,31823 33695,31823,33707,31823 33695,31824,33708,31824 33610,31824,33611,31824 33623,31824,33681,31824 33608,31825,33611,31825 33623,31825,33682,31825 33694,31825,33709,31826 33607,31826,33611,31826 33626,31826,33683,31827 33695,31827,33710,31827 33606,31827,33614,31828 33626,31828,33685,31828 33704,31828,33710,31828 33694,31828,33699,31828 33695,31829,33710,31829 33605,31829,33613,31829 33625,31829,33685,31830 33604,31830,33613,31830 33695,31830,33711,31830 33603,31831,33613,31831 33623,31831,33685,31831 33711,31831,33711,31831 33695,31831,33709,31831 33685,31832,33685,31832 33623,31832,33681,31832 33603,31832,33615,31832 33694,31832,33709,31832 33617,31832,33618,31833 33622,31833,33681,31833 33602,31833,33615,31833 33695,31833,33701,31833 33703,31833,33708,31833 33697,31834,33708,31834 33601,31834,33681,31834 33695,31834,33695,31834 33695,31835,33708,31835 33599,31835,33682,31835 33597,31836,33682,31836 33696,31836,33707,31836 33696,31837,33705,31837 33597,31837,33663,31837 33669,31837,33682,31837 33596,31838,33662,31838 33670,31838,33683,31838 33698,31838,33702,31838 33699,31839,33702,31839 33673,31839,33686,31839 33594,31839,33660,31840 33673,31840,33688,31840 33701,31840,33701,31840 33672,31841,33688,31841 33594,31841,33658,31841 33708,31841,33709,31841 33593,31842,33657,31842 33707,31842,33708,31842 33671,31842,33689,31842 33705,31843,33707,31843 33671,31843,33690,31843 33591,31843,33656,31844 33702,31844,33706,31844 33673,31844,33691,31844 33701,31845,33704,31845 33675,31845,33678,31845 33592,31845,33655,31845 33681,31845,33692,31845 33675,31846,33677,31846 33699,31846,33703,31846 33682,31846,33695,31846 33592,31846,33654,31847 33676,31847,33676,31847 33685,31847,33694,31847 33670,31847,33671,31847 33698,31847,33703,31847 33686,31848,33695,31848 33668,31848,33672,31848 33697,31848,33703,31848 33592,31848,33653,31849 33698,31849,33698,31849 33689,31849,33695,31849 33700,31849,33703,31849 33666,31849,33673,31849 33665,31850,33676,31850 33690,31850,33694,31850 33698,31850,33702,31850 33593,31850,33653,31851 33663,31851,33675,31851 33693,31851,33694,31851 33698,31851,33701,31851 33707,31852,33707,31852 33659,31852,33674,31852 33593,31852,33654,31852 33705,31853,33707,31853 33594,31853,33674,31853 33595,31854,33674,31854 33700,31854,33707,31854 33596,31855,33674,31855 33681,31856,33682,31856 33618,31856,33675,31856 33605,31856,33609,31856 33597,31856,33600,31856 33699,31855,33706,31857 33619,31857,33682,31857 33700,31858,33706,31858 33619,31858,33678,31858 33704,31859,33704,31859 33700,31859,33702,31859 33703,31860,33704,31860 33701,31860,33701,31860 33690,31860,33690,31860 33618,31859,33678,31861 33680,31861,33681,31861 33684,31861,33690,31861 33617,31862,33690,31862 33616,31863,33692,31864 33639,31865,33692,31865 33618,31865,33635,31865 33618,31866,33633,31866 33640,31866,33691,31866 33641,31867,33692,31867 33619,31867,33633,31867 33619,31868,33630,31868 33641,31868,33669,31868 33673,31868,33693,31868 33675,31869,33690,31869 33622,31869,33630,31869 33643,31869,33667,31869 33677,31870,33690,31870 33644,31870,33665,31870 33626,31870,33630,31870 33678,31871,33685,31871 33689,31871,33690,31871 33627,31871,33628,31871 33646,31871,33664,31871 33648,31872,33659,31872 33679,31872,33685,31873 33652,31873,33658,31873 33656,31874,33658,31874 33679,31874,33684,31874 33680,31875,33684,31876 33680,31877,33682,31877 33680,31878,33681,31880 33679,31881,33681,31881 33679,31882,33682,31883 33679,31884,33683,31887 33680,31888,33683,31888 33681,31889,33684,31891 33680,31892,33683,31892 33679,31893,33682,31893 33677,31894,33681,31894 33675,31895,33681,31895 33674,31896,33680,31896 33673,31897,33679,31897 33672,31898,33677,31898 33671,31899,33674,31899 33670,31900,33673,31900 33669,31901,33671,31901 33668,31902,33670,31902 33667,31903,33670,31903 33669,31904,33670,31904 33669,31905,33671,31906 33668,31907,33670,31909 33669,31910,33670,31910 33669,31911,33671,31911 33670,31912,33672,31915 33670,31916,33671,31916 33669,31917,33671,31917 33668,31918,33671,31918 33667,31919,33669,31919 33666,31920,33668,31921 33665,31922,33666,31923", + }, + [210] = { -- Oramond Minotaur Camp (6796 tiles, 138 rects) + name = "Oramond Minotaur Camp", + mainArea = 20, + bbox = { x1 = 33663, y1 = 31858, x2 = 33744, y2 = 31999 }, + rects = "33709,31858,33709,31858 33709,31859,33712,31859 33709,31860,33714,31860 33706,31861,33706,31861 33708,31861,33714,31861 33705,31862,33715,31862 33704,31863,33716,31863 33702,31864,33716,31864 33706,31865,33716,31865 33702,31865,33703,31865 33707,31866,33716,31866 33707,31867,33719,31867 33706,31868,33720,31868 33705,31869,33723,31869 33706,31870,33725,31870 33707,31871,33728,31871 33707,31872,33730,31873 33707,31874,33736,31874 33707,31875,33737,31875 33704,31876,33738,31877 33702,31878,33738,31879 33700,31880,33739,31880 33700,31881,33741,31881 33701,31882,33742,31882 33694,31883,33694,31883 33702,31883,33742,31884 33693,31884,33694,31884 33693,31885,33698,31885 33702,31885,33743,31885 33693,31886,33743,31886 33697,31887,33743,31887 33697,31888,33744,31889 33695,31890,33744,31890 33693,31891,33744,31891 33692,31892,33744,31893 33691,31894,33744,31895 33690,31896,33743,31896 33690,31897,33740,31897 33688,31898,33740,31898 33686,31899,33741,31900 33685,31901,33741,31901 33684,31902,33741,31902 33684,31903,33740,31903 33739,31904,33739,31904 33684,31904,33737,31905 33679,31906,33737,31906 33678,31907,33736,31907 33676,31908,33736,31909 33677,31910,33737,31910 33679,31911,33737,31911 33680,31912,33737,31913 33680,31914,33736,31914 33680,31915,33737,31915 33680,31916,33738,31916 33676,31917,33738,31917 33676,31918,33736,31919 33675,31920,33736,31920 33676,31921,33735,31921 33676,31922,33733,31923 33672,31924,33733,31924 33669,31925,33732,31926 33667,31927,33732,31928 33667,31929,33731,31929 33667,31930,33730,31931 33667,31932,33731,31932 33667,31933,33732,31934 33667,31935,33729,31935 33667,31936,33728,31936 33667,31937,33727,31937 33663,31938,33727,31938 33663,31939,33726,31940 33663,31941,33727,31941 33663,31942,33725,31942 33726,31943,33727,31943 33663,31943,33724,31943 33663,31944,33727,31944 33663,31945,33730,31945 33663,31946,33729,31946 33663,31947,33727,31950 33663,31951,33728,31951 33670,31952,33729,31953 33670,31954,33728,31954 33670,31955,33727,31955 33670,31956,33726,31956 33665,31957,33725,31958 33734,31957,33735,31958 33735,31959,33735,31959 33665,31959,33726,31960 33731,31960,33731,31960 33666,31961,33727,31961 33730,31961,33731,31961 33730,31962,33732,31962 33667,31962,33727,31962 33668,31963,33732,31963 33670,31964,33733,31964 33667,31965,33731,31965 33667,31966,33726,31966 33666,31967,33726,31967 33665,31968,33726,31968 33666,31969,33725,31969 33669,31970,33723,31970 33669,31971,33719,31971 33667,31972,33717,31972 33667,31973,33716,31974 33668,31975,33716,31976 33668,31977,33714,31977 33667,31978,33711,31978 33667,31979,33710,31980 33664,31981,33710,31981 33665,31982,33704,31982 33665,31983,33703,31983 33664,31984,33702,31984 33664,31985,33701,31985 33664,31986,33700,31986 33667,31987,33699,31987 33666,31988,33696,31988 33664,31989,33695,31989 33664,31990,33694,31990 33669,31991,33693,31991 33664,31991,33665,31991 33669,31992,33687,31992 33691,31992,33693,31992 33669,31993,33685,31993 33669,31994,33682,31994 33715,31994,33717,31994 33710,31994,33712,31994 33705,31995,33706,31995 33671,31995,33678,31995 33708,31995,33717,31995 33678,31996,33679,31996 33704,31996,33716,31996 33672,31996,33676,31996 33673,31997,33674,31997 33703,31997,33716,31997 33704,31998,33716,31998 33707,31999,33708,31999 33711,31999,33712,31999 33705,31999,33705,31999", + }, + [213] = { -- Oramond Marshes (7179 tiles, 222 rects) + name = "Oramond Marshes", + mainArea = 20, + bbox = { x1 = 33465, y1 = 31968, x2 = 33709, y2 = 32072 }, + rects = "33467,31968,33468,31969 33466,31970,33469,31970 33486,31974,33488,31974 33486,31975,33489,31975 33487,31976,33489,31976 33488,31977,33490,31977 33487,31978,33492,31978 33487,31979,33493,31979 33484,31980,33494,31980 33482,31981,33494,31981 33475,31981,33477,31981 33479,31981,33480,31981 33482,31982,33495,31982 33475,31982,33480,31983 33483,31983,33499,31983 33476,31984,33499,31984 33465,31971,33471,31985 33479,31985,33498,31985 33468,31986,33468,31986 33479,31986,33497,31987 33483,31988,33498,31988 33479,31988,33480,31988 33486,31989,33498,31989 33487,31990,33497,31990 33485,31991,33495,31991 33485,31992,33496,31992 33491,31993,33496,31993 33611,31994,33613,31994 33615,31994,33617,31994 33607,31994,33609,31994 33604,31994,33605,31994 33619,31994,33621,31994 33492,31994,33493,31994 33604,31995,33624,31995 33604,31996,33623,31996 33560,31997,33562,31997 33544,31997,33546,31997 33572,31997,33573,31997 33605,31997,33623,31997 33552,31997,33554,31997 33556,31997,33558,31997 33542,31997,33542,31997 33564,31997,33566,31997 33568,31997,33570,31997 33548,31997,33550,31997 33542,31998,33573,31998 33604,31998,33623,31999 33541,31999,33573,31999 33604,32000,33624,32000 33540,32000,33573,32001 33605,32001,33625,32001 33584,32002,33586,32002 33592,32002,33594,32002 33596,32002,33598,32002 33576,32002,33578,32002 33538,32002,33574,32002 33588,32002,33590,32002 33604,32002,33625,32002 33580,32002,33582,32002 33600,32002,33602,32002 33630,32003,33631,32003 33532,32003,33532,32003 33537,32003,33625,32003 33501,32004,33501,32004 33531,32004,33631,32004 33502,32005,33502,32005 33530,32005,33631,32006 33504,32006,33504,32006 33505,32007,33508,32007 33633,32007,33634,32007 33523,32007,33631,32007 33505,32008,33509,32008 33524,32008,33634,32008 33527,32009,33634,32009 33506,32009,33510,32009 33506,32010,33511,32010 33528,32010,33634,32010 33529,32011,33634,32011 33506,32011,33514,32011 33530,32012,33635,32012 33516,32012,33516,32012 33509,32012,33514,32012 33507,32012,33507,32012 33510,32013,33511,32013 33514,32013,33515,32013 33529,32013,33637,32013 33515,32014,33516,32014 33528,32014,33637,32014 33527,32015,33636,32015 33516,32015,33516,32015 33531,32016,33633,32016 33533,32017,33633,32017 33534,32018,33632,32019 33534,32020,33538,32020 33542,32020,33635,32020 33517,32021,33518,32021 33542,32021,33636,32021 33539,32022,33637,32022 33518,32022,33518,32022 33539,32023,33639,32023 33519,32023,33521,32023 33539,32024,33640,32024 33521,32024,33521,32024 33521,32025,33525,32025 33527,32025,33527,32025 33540,32025,33641,32025 33522,32026,33527,32026 33703,32026,33709,32026 33692,32026,33693,32026 33646,32026,33648,32026 33541,32026,33641,32026 33690,32027,33693,32027 33702,32027,33709,32027 33646,32027,33649,32027 33522,32027,33529,32027 33543,32027,33641,32027 33702,32028,33707,32028 33646,32028,33650,32028 33522,32028,33530,32028 33543,32028,33642,32028 33690,32028,33695,32028 33690,32029,33697,32029 33523,32029,33523,32029 33702,32029,33706,32029 33548,32029,33638,32029 33525,32029,33532,32029 33647,32029,33650,32029 33543,32029,33544,32029 33640,32029,33642,32030 33531,32030,33533,32030 33647,32030,33649,32030 33703,32030,33705,32030 33549,32030,33637,32030 33689,32030,33697,32030 33549,32031,33636,32031 33689,32031,33696,32031 33704,32031,33705,32031 33547,32032,33639,32032 33690,32032,33696,32032 33691,32033,33695,32033 33539,32033,33541,32033 33546,32033,33640,32034 33694,32034,33695,32034 33539,32034,33543,32034 33540,32035,33641,32035 33685,32035,33686,32036 33542,32036,33643,32036 33680,32036,33683,32036 33544,32037,33643,32037 33680,32037,33686,32038 33546,32038,33644,32038 33549,32039,33645,32039 33680,32039,33685,32040 33549,32040,33646,32040 33549,32041,33556,32041 33558,32041,33647,32041 33681,32041,33685,32041 33555,32042,33556,32042 33560,32042,33649,32042 33683,32042,33684,32042 33671,32042,33673,32042 33546,32042,33551,32043 33670,32043,33673,32043 33558,32043,33650,32043 33558,32044,33651,32044 33549,32044,33552,32044 33670,32044,33674,32045 33549,32045,33553,32045 33563,32045,33651,32045 33662,32045,33663,32046 33564,32046,33652,32046 33670,32046,33673,32046 33654,32046,33657,32046 33551,32046,33555,32047 33565,32047,33658,32047 33661,32047,33663,32047 33665,32047,33673,32047 33566,32048,33646,32048 33649,32048,33672,32048 33553,32048,33556,32049 33651,32049,33672,32049 33567,32049,33647,32049 33564,32049,33564,32050 33555,32050,33556,32050 33671,32050,33672,32050 33654,32050,33668,32050 33566,32050,33648,32050 33566,32051,33651,32051 33658,32051,33667,32051 33566,32052,33652,32052 33658,32052,33659,32052 33661,32052,33663,32052 33567,32053,33652,32053 33570,32054,33653,32056 33571,32057,33650,32057 33566,32058,33567,32058 33573,32058,33651,32059 33574,32060,33650,32060 33580,32061,33581,32061 33583,32061,33649,32061 33583,32062,33648,32062 33588,32063,33648,32063 33584,32063,33585,32063 33589,32064,33645,32064 33639,32065,33641,32065 33590,32065,33636,32065 33643,32065,33644,32065 33592,32066,33636,32066 33579,32067,33579,32067 33619,32067,33633,32067 33593,32067,33616,32067 33594,32068,33605,32068 33577,32068,33579,32068 33609,32068,33610,32068 33627,32068,33633,32068 33614,32068,33616,32068 33621,32068,33624,32068 33629,32069,33632,32069 33615,32069,33615,32069 33596,32069,33604,32070 33597,32071,33604,32071 33600,32072,33603,32072", + }, + [214] = { -- Rathleton Workshops (3516 tiles, 88 rects) + name = "Rathleton Workshops", + mainArea = 20, + bbox = { x1 = 33601, y1 = 31924, x2 = 33669, y2 = 32006 }, + rects = "33665,31924,33666,31925 33663,31926,33666,31926 33662,31927,33666,31932 33656,31933,33666,31933 33653,31934,33666,31934 33644,31935,33666,31936 33643,31937,33666,31937 33641,31938,33662,31942 33619,31942,33631,31942 33607,31943,33607,31943 33619,31943,33662,31944 33609,31944,33609,31944 33606,31944,33607,31944 33614,31944,33614,31944 33604,31945,33662,31950 33603,31951,33662,31951 33603,31952,33669,31954 33601,31955,33669,31956 33601,31957,33664,31960 33601,31961,33665,31961 33601,31962,33666,31962 33601,31963,33667,31963 33601,31964,33669,31964 33601,31965,33666,31966 33601,31967,33665,31967 33601,31968,33664,31968 33601,31969,33665,31969 33601,31970,33668,31971 33601,31972,33666,31974 33601,31975,33667,31977 33601,31978,33666,31980 33601,31981,33663,31981 33601,31982,33664,31982 33638,31983,33664,31983 33638,31984,33663,31984 33601,31983,33635,31985 33642,31985,33663,31985 33644,31986,33663,31986 33601,31986,33634,31986 33652,31987,33666,31987 33601,31987,33631,31987 33644,31987,33648,31987 33652,31988,33665,31988 33645,31988,33648,31988 33639,31988,33640,31988 33639,31989,33641,31989 33645,31989,33649,31989 33601,31988,33628,31990 33652,31989,33663,31990 33647,31990,33649,31990 33638,31990,33642,31990 33601,31991,33626,31991 33653,31991,33663,31991 33648,31991,33649,31991 33601,31992,33625,31992 33653,31992,33654,31992 33656,31992,33662,31993 33601,31993,33624,31993 33637,31991,33643,31994 33633,31993,33634,31994 33618,31994,33618,31994 33606,31994,33606,31994 33657,31994,33663,31994 33610,31994,33610,31994 33614,31994,33614,31994 33622,31994,33624,31994 33638,31995,33643,31995 33647,31995,33648,31995 33659,31995,33661,31995 33601,31994,33603,31996 33633,31995,33635,31996 33639,31996,33643,31996 33647,31996,33651,31996 33640,31997,33641,31997 33601,31997,33604,31997 33648,31997,33651,31997 33645,31997,33646,31998 33637,31998,33639,31998 33642,31998,33643,31999 33637,31999,33640,31999 33601,31998,33603,32000 33646,31999,33647,32000 33637,32000,33643,32000 33601,32001,33604,32001 33637,32001,33645,32002 33603,32002,33603,32002 33637,32003,33643,32005 33640,32006,33640,32006", + }, + [217] = { -- Lion's Rock (86 tiles, 17 rects) + name = "Lion's Rock", + mainArea = 4, + bbox = { x1 = 33136, y1 = 32351, x2 = 33153, y2 = 32368 }, + rects = "33137,32351,33138,32351 33136,32352,33138,32354 33137,32355,33139,32355 33138,32356,33139,32357 33137,32358,33140,32358 33153,32359,33153,32359 33138,32359,33140,32359 33138,32360,33141,32360 33152,32360,33153,32360 33149,32361,33153,32361 33138,32361,33144,32361 33148,32362,33153,32362 33139,32362,33145,32362 33143,32363,33153,32363 33144,32364,33151,32364 33147,32365,33150,32365 33148,32366,33149,32368", + }, + [228] = { -- Vandura Quara Caves (408 tiles, 37 rects) + name = "Vandura Quara Caves", + mainArea = 17, + bbox = { x1 = 32189, y1 = 32872, x2 = 32217, y2 = 32901 }, + rects = "32200,32872,32205,32872 32197,32873,32206,32873 32195,32874,32205,32874 32195,32875,32206,32875 32194,32876,32207,32876 32192,32877,32206,32877 32190,32878,32207,32878 32189,32879,32207,32880 32190,32881,32192,32881 32194,32881,32207,32881 32195,32882,32208,32882 32195,32883,32209,32883 32194,32884,32210,32884 32194,32885,32211,32885 32196,32886,32213,32886 32196,32887,32215,32887 32197,32888,32215,32888 32198,32889,32216,32889 32212,32890,32215,32890 32196,32890,32210,32891 32213,32891,32215,32891 32212,32892,32216,32892 32196,32892,32209,32892 32198,32893,32200,32893 32212,32893,32217,32893 32202,32893,32209,32893 32213,32894,32217,32894 32203,32894,32210,32894 32205,32895,32211,32895 32214,32895,32216,32895 32215,32896,32216,32896 32207,32896,32212,32896 32208,32897,32213,32897 32210,32898,32214,32898 32209,32899,32214,32899 32209,32900,32212,32900 32210,32901,32211,32901", + }, + [235] = { -- Asura Palace (935 tiles, 9 rects) + name = "Asura Palace", + mainArea = 19, + bbox = { x1 = 32924, y1 = 32669, x2 = 32966, y2 = 32693 }, + rects = "32932,32669,32966,32673 32924,32674,32966,32674 32924,32675,32928,32676 32933,32675,32966,32676 32924,32677,32966,32680 32924,32681,32928,32681 32933,32681,32966,32681 32924,32682,32966,32682 32932,32683,32966,32693", + }, + [238] = { -- Medusa Tower (699 tiles, 24 rects) + name = "Medusa Tower", + mainArea = 19, + bbox = { x1 = 32852, y1 = 32817, x2 = 32882, y2 = 32848 }, + rects = "32864,32817,32866,32817 32863,32818,32867,32818 32869,32818,32871,32818 32861,32819,32873,32819 32859,32820,32874,32820 32858,32821,32875,32821 32857,32822,32877,32822 32856,32823,32877,32823 32855,32824,32878,32824 32855,32825,32880,32825 32854,32826,32880,32826 32853,32827,32881,32827 32852,32828,32882,32831 32852,32832,32880,32833 32853,32834,32881,32837 32853,32838,32880,32838 32855,32839,32879,32840 32856,32841,32879,32842 32858,32843,32879,32843 32859,32844,32875,32844 32861,32845,32874,32845 32862,32846,32869,32846 32862,32847,32865,32847 32862,32848,32864,32848", + }, + [239] = { -- Gloom Caverns (1562 tiles, 47 rects) + name = "Gloom Caverns", + mainArea = 25, + bbox = { x1 = 32666, y1 = 31931, x2 = 32721, y2 = 31971 }, + rects = "32700,31931,32709,31931 32698,31932,32710,31932 32693,31933,32710,31933 32716,31934,32716,31934 32692,31934,32711,31934 32686,31935,32716,31935 32685,31936,32717,31936 32684,31937,32717,31937 32670,31938,32675,31938 32681,31938,32718,31938 32669,31939,32718,31939 32667,31940,32718,31940 32666,31941,32719,31941 32667,31942,32719,31942 32668,31943,32720,31943 32669,31944,32720,31944 32691,31945,32720,31945 32669,31945,32688,31945 32670,31946,32687,31946 32671,31947,32686,31947 32671,31948,32685,31948 32689,31946,32721,31949 32671,31949,32686,31950 32688,31950,32721,31950 32687,31951,32719,31951 32672,31951,32685,31952 32687,31952,32718,31952 32672,31953,32716,31953 32672,31954,32715,31954 32673,31955,32715,31955 32673,31956,32714,31956 32673,31957,32715,31957 32675,31958,32715,31958 32676,31959,32716,31959 32677,31960,32716,31961 32678,31962,32716,31962 32679,31963,32716,31963 32679,31964,32715,31964 32680,31965,32714,31965 32680,31966,32712,31966 32682,31967,32711,31967 32683,31968,32710,31968 32700,31969,32705,31969 32684,31969,32696,31969 32685,31970,32693,31970 32702,31970,32703,31970 32687,31971,32691,31971", + }, + [242] = { -- Edron Hero Fortress (145 tiles, 22 rects) + name = "Edron Hero Fortress", + mainArea = 7, + bbox = { x1 = 33217, y1 = 31646, x2 = 33232, y2 = 31660 }, + rects = "33218,31646,33224,31646 33226,31646,33230,31646 33220,31647,33227,31647 33229,31647,33230,31648 33220,31648,33225,31648 33228,31649,33230,31649 33220,31649,33226,31649 33218,31647,33218,31650 33221,31650,33230,31650 33223,31651,33229,31651 33218,31651,33220,31651 33218,31652,33228,31652 33218,31653,33223,31653 33219,31654,33223,31654 33230,31652,33230,31655 33218,31655,33223,31655 33230,31656,33232,31656 33217,31656,33225,31657 33230,31657,33230,31657 33217,31658,33230,31658 33217,31659,33224,31659 33218,31660,33222,31660", + }, + [243] = { -- Grimvale (881 tiles, 46 rects) + name = "Grimvale", + mainArea = 7, + bbox = { x1 = 33317, y1 = 31664, x2 = 33359, y2 = 31700 }, + rects = "33350,31664,33351,31664 33332,31665,33333,31665 33348,31665,33352,31665 33346,31666,33353,31666 33331,31666,33334,31666 33330,31667,33337,31667 33345,31667,33354,31667 33330,31668,33355,31668 33330,31669,33357,31669 33331,31670,33359,31671 33330,31672,33359,31672 33329,31673,33355,31673 33358,31673,33359,31673 33327,31674,33354,31674 33326,31675,33354,31675 33323,31676,33353,31676 33322,31677,33352,31677 33321,31678,33352,31678 33318,31679,33352,31679 33317,31680,33352,31680 33317,31681,33353,31681 33323,31682,33353,31682 33317,31682,33321,31682 33324,31683,33354,31683 33318,31683,33319,31683 33326,31684,33354,31685 33325,31686,33355,31687 33324,31688,33355,31688 33324,31689,33354,31689 33323,31690,33354,31691 33324,31692,33333,31692 33337,31692,33354,31692 33325,31693,33333,31693 33340,31693,33354,31693 33341,31694,33342,31694 33351,31694,33353,31694 33344,31694,33346,31694 33326,31694,33332,31694 33328,31695,33330,31695 33351,31695,33352,31695 33335,31695,33336,31695 33334,31696,33337,31696 33333,31697,33337,31697 33333,31698,33338,31698 33334,31699,33338,31699 33334,31700,33335,31700", + }, + [254] = { -- Krailos Steppe (37315 tiles, 831 rects) + name = "Krailos Steppe", + mainArea = 16, + bbox = { x1 = 33488, y1 = 31552, x2 = 33753, y2 = 31790 }, + rects = "33543,31552,33545,31552 33558,31552,33566,31552 33593,31552,33596,31552 33543,31553,33546,31553 33591,31553,33599,31553 33559,31553,33565,31553 33560,31554,33567,31554 33543,31554,33547,31554 33591,31554,33602,31554 33582,31555,33582,31555 33596,31555,33608,31555 33561,31555,33570,31555 33543,31555,33548,31555 33532,31555,33532,31556 33561,31556,33571,31556 33598,31556,33610,31556 33544,31556,33548,31556 33583,31556,33583,31557 33545,31557,33547,31557 33561,31557,33572,31557 33549,31557,33549,31557 33599,31557,33612,31557 33531,31557,33531,31558 33600,31558,33613,31558 33584,31558,33584,31558 33546,31558,33552,31558 33561,31558,33573,31558 33601,31559,33614,31559 33584,31559,33589,31559 33548,31559,33555,31559 33561,31559,33574,31559 33602,31560,33615,31560 33548,31560,33557,31560 33561,31560,33575,31560 33584,31560,33585,31560 33587,31560,33589,31560 33527,31560,33533,31561 33549,31561,33577,31561 33584,31561,33589,31561 33603,31561,33617,31561 33584,31562,33590,31562 33527,31562,33534,31562 33604,31562,33618,31562 33550,31562,33579,31562 33604,31563,33619,31563 33528,31563,33535,31563 33550,31563,33592,31564 33605,31564,33620,31564 33532,31564,33536,31564 33606,31565,33622,31565 33533,31565,33537,31565 33549,31565,33592,31565 33546,31566,33592,31566 33533,31566,33540,31566 33606,31566,33624,31567 33534,31567,33590,31567 33638,31568,33640,31568 33605,31568,33624,31568 33535,31568,33592,31568 33535,31569,33593,31569 33604,31569,33625,31569 33638,31569,33641,31570 33536,31570,33594,31570 33603,31570,33626,31570 33603,31571,33630,31571 33536,31571,33595,31571 33639,31571,33644,31571 33641,31572,33645,31572 33537,31572,33596,31572 33601,31572,33632,31572 33538,31573,33633,31573 33642,31573,33646,31573 33507,31574,33507,31574 33538,31574,33634,31574 33642,31574,33647,31574 33508,31575,33508,31575 33659,31575,33660,31575 33512,31575,33512,31575 33643,31575,33648,31576 33538,31575,33637,31576 33658,31576,33662,31576 33510,31576,33511,31576 33501,31576,33507,31576 33513,31576,33515,31576 33501,31577,33518,31577 33643,31577,33649,31577 33636,31577,33637,31577 33520,31577,33520,31577 33538,31577,33634,31577 33658,31577,33663,31577 33644,31578,33650,31578 33502,31578,33518,31578 33659,31578,33665,31578 33520,31578,33521,31578 33539,31578,33637,31578 33539,31579,33638,31579 33502,31579,33519,31579 33492,31579,33493,31579 33675,31579,33677,31579 33663,31579,33666,31579 33497,31579,33499,31579 33522,31579,33522,31579 33644,31579,33651,31580 33538,31580,33640,31580 33675,31580,33678,31580 33663,31580,33668,31580 33491,31580,33522,31580 33676,31581,33679,31581 33644,31581,33652,31581 33538,31581,33568,31581 33502,31581,33526,31581 33490,31581,33500,31581 33585,31581,33641,31581 33664,31581,33669,31581 33665,31582,33669,31582 33537,31582,33568,31582 33489,31582,33527,31582 33586,31582,33652,31582 33677,31582,33680,31583 33489,31583,33528,31583 33536,31583,33568,31583 33589,31583,33654,31583 33663,31583,33670,31584 33524,31584,33528,31584 33533,31584,33568,31584 33589,31584,33658,31584 33490,31584,33522,31584 33677,31584,33681,31585 33490,31585,33505,31585 33525,31585,33568,31585 33591,31585,33671,31585 33508,31585,33523,31585 33592,31586,33673,31586 33526,31586,33568,31586 33489,31586,33523,31586 33677,31586,33682,31587 33592,31587,33674,31587 33527,31587,33568,31587 33489,31587,33525,31587 33529,31588,33568,31588 33489,31588,33526,31588 33489,31589,33527,31589 33531,31589,33568,31589 33590,31588,33683,31590 33489,31590,33529,31590 33533,31590,33568,31590 33534,31591,33568,31591 33493,31591,33531,31591 33488,31591,33488,31591 33590,31591,33684,31592 33493,31592,33532,31592 33536,31592,33568,31592 33495,31593,33568,31593 33588,31593,33683,31594 33496,31594,33497,31594 33538,31594,33568,31594 33500,31594,33535,31594 33588,31595,33682,31595 33539,31595,33541,31595 33501,31595,33536,31595 33543,31595,33568,31595 33499,31595,33499,31595 33501,31596,33542,31596 33498,31596,33499,31596 33544,31596,33681,31596 33503,31597,33543,31597 33498,31597,33501,31597 33545,31597,33681,31598 33506,31598,33543,31598 33498,31598,33502,31598 33498,31599,33504,31599 33547,31599,33680,31599 33507,31599,33545,31599 33499,31600,33545,31600 33697,31600,33699,31600 33547,31600,33679,31600 33498,31601,33679,31601 33697,31601,33700,31601 33697,31602,33701,31602 33528,31602,33678,31602 33510,31602,33526,31602 33498,31602,33507,31602 33497,31603,33509,31603 33698,31603,33702,31603 33512,31603,33678,31603 33715,31603,33719,31604 33744,31604,33747,31604 33513,31604,33677,31604 33497,31604,33510,31604 33699,31604,33703,31604 33497,31605,33511,31605 33714,31605,33716,31605 33718,31605,33719,31605 33743,31605,33747,31605 33513,31605,33676,31605 33700,31605,33703,31605 33742,31606,33746,31606 33533,31606,33675,31606 33700,31606,33704,31606 33714,31606,33718,31606 33501,31606,33513,31606 33516,31606,33531,31606 33516,31607,33674,31607 33715,31607,33719,31607 33740,31607,33745,31607 33698,31607,33705,31607 33733,31607,33734,31607 33501,31607,33514,31608 33716,31608,33720,31608 33698,31608,33706,31608 33731,31608,33744,31608 33516,31608,33673,31608 33502,31609,33514,31609 33697,31609,33706,31609 33742,31609,33745,31609 33717,31609,33720,31609 33730,31609,33740,31609 33516,31609,33672,31609 33519,31610,33672,31610 33698,31610,33707,31610 33729,31610,33745,31610 33502,31610,33517,31610 33717,31610,33721,31610 33716,31611,33721,31611 33728,31611,33743,31611 33503,31611,33518,31611 33520,31611,33534,31611 33536,31611,33672,31611 33698,31611,33708,31611 33714,31612,33721,31612 33727,31612,33741,31612 33523,31612,33673,31612 33503,31612,33519,31612 33697,31612,33708,31612 33524,31613,33527,31613 33726,31613,33739,31613 33712,31613,33722,31613 33529,31613,33674,31613 33694,31613,33709,31613 33504,31613,33521,31613 33725,31614,33738,31614 33693,31614,33722,31614 33504,31614,33675,31615 33690,31615,33740,31615 33688,31616,33740,31616 33503,31616,33676,31616 33685,31617,33741,31617 33503,31617,33677,31617 33504,31618,33678,31618 33683,31618,33742,31618 33504,31619,33744,31619 33503,31620,33745,31620 33502,31621,33746,31621 33502,31622,33748,31623 33503,31624,33748,31624 33504,31625,33748,31625 33503,31626,33741,31626 33745,31626,33747,31626 33503,31627,33739,31627 33504,31628,33738,31628 33504,31629,33737,31629 33748,31629,33749,31629 33589,31630,33737,31630 33504,31630,33587,31630 33747,31630,33749,31630 33590,31631,33737,31631 33508,31631,33586,31631 33746,31631,33749,31632 33589,31632,33738,31632 33509,31632,33584,31632 33586,31633,33739,31633 33510,31633,33583,31633 33744,31633,33749,31633 33743,31634,33748,31634 33511,31634,33583,31634 33585,31634,33740,31634 33512,31635,33747,31635 33514,31636,33746,31636 33516,31637,33744,31637 33517,31638,33743,31638 33517,31639,33742,31639 33592,31640,33741,31640 33518,31640,33590,31640 33593,31641,33739,31641 33518,31641,33588,31641 33519,31642,33589,31642 33592,31642,33738,31642 33745,31643,33745,31643 33592,31643,33737,31643 33520,31643,33589,31643 33744,31644,33747,31644 33520,31644,33736,31644 33520,31645,33735,31645 33742,31645,33747,31645 33656,31646,33735,31646 33638,31646,33654,31646 33519,31646,33615,31646 33741,31646,33746,31646 33658,31647,33736,31647 33497,31647,33497,31647 33740,31647,33746,31647 33639,31647,33654,31647 33518,31647,33615,31647 33660,31648,33741,31648 33498,31648,33498,31648 33515,31648,33615,31648 33497,31649,33498,31649 33661,31649,33741,31649 33513,31649,33615,31649 33512,31650,33615,31650 33498,31650,33499,31650 33661,31650,33740,31650 33661,31651,33739,31651 33588,31651,33615,31651 33511,31651,33585,31651 33499,31651,33500,31652 33750,31652,33750,31652 33746,31652,33747,31652 33589,31652,33615,31652 33509,31652,33585,31652 33661,31652,33738,31653 33745,31653,33750,31653 33507,31653,33585,31653 33588,31653,33615,31653 33500,31653,33502,31654 33504,31654,33615,31654 33743,31654,33750,31654 33662,31654,33738,31654 33501,31655,33615,31655 33665,31655,33739,31655 33741,31655,33750,31655 33665,31656,33750,31656 33502,31656,33615,31657 33665,31657,33748,31657 33665,31658,33743,31658 33503,31658,33615,31658 33665,31659,33742,31659 33504,31659,33615,31659 33665,31660,33741,31660 33505,31660,33615,31661 33506,31662,33615,31662 33501,31662,33501,31662 33497,31662,33497,31662 33507,31663,33615,31663 33497,31663,33502,31663 33665,31661,33740,31664 33498,31664,33503,31664 33505,31664,33615,31664 33665,31665,33739,31665 33500,31665,33615,31665 33509,31666,33575,31666 33500,31666,33504,31666 33506,31666,33507,31666 33579,31666,33615,31666 33577,31667,33615,31667 33513,31667,33574,31667 33502,31667,33503,31667 33514,31668,33615,31668 33515,31669,33615,31669 33516,31670,33615,31670 33506,31670,33508,31670 33665,31666,33736,31671 33502,31671,33502,31671 33506,31671,33509,31671 33518,31671,33615,31671 33753,31671,33753,31671 33520,31672,33615,31672 33751,31672,33752,31672 33507,31672,33511,31672 33502,31672,33503,31672 33508,31673,33511,31673 33750,31673,33750,31673 33509,31674,33511,31674 33502,31673,33505,31675 33521,31673,33615,31675 33749,31675,33749,31675 33510,31675,33511,31675 33748,31676,33749,31676 33511,31676,33513,31676 33522,31676,33615,31676 33504,31676,33505,31676 33665,31672,33737,31677 33512,31677,33515,31677 33746,31677,33748,31677 33505,31677,33506,31677 33501,31677,33503,31677 33523,31677,33615,31678 33745,31678,33747,31678 33501,31678,33507,31678 33513,31678,33518,31678 33501,31679,33508,31679 33513,31679,33615,31679 33743,31679,33747,31679 33665,31678,33738,31680 33503,31680,33509,31680 33512,31680,33615,31680 33741,31680,33746,31680 33507,31681,33615,31681 33665,31681,33746,31681 33509,31682,33615,31682 33665,31682,33745,31683 33507,31683,33615,31684 33665,31684,33744,31684 33752,31684,33752,31684 33751,31685,33751,31685 33508,31685,33615,31685 33665,31685,33743,31686 33512,31686,33615,31686 33662,31687,33742,31687 33748,31687,33748,31687 33514,31687,33615,31687 33662,31688,33743,31688 33518,31688,33615,31688 33746,31688,33747,31688 33503,31688,33503,31688 33521,31689,33615,31689 33506,31689,33507,31689 33662,31689,33747,31689 33523,31690,33615,31690 33506,31690,33508,31690 33631,31690,33747,31691 33524,31691,33615,31691 33507,31691,33511,31691 33631,31692,33745,31692 33523,31692,33615,31692 33512,31692,33512,31692 33520,31693,33615,31693 33516,31693,33517,31693 33631,31693,33741,31693 33514,31693,33514,31693 33523,31694,33615,31694 33630,31694,33742,31694 33519,31694,33520,31695 33516,31695,33517,31695 33523,31695,33742,31695 33516,31696,33521,31696 33523,31696,33739,31696 33741,31696,33743,31696 33507,31697,33507,31697 33516,31697,33738,31697 33741,31697,33745,31697 33513,31697,33514,31697 33534,31698,33737,31698 33741,31698,33748,31698 33493,31698,33495,31698 33506,31698,33510,31698 33513,31698,33531,31698 33500,31698,33502,31698 33742,31699,33748,31699 33492,31699,33496,31699 33499,31699,33505,31699 33507,31699,33509,31699 33533,31699,33737,31699 33511,31699,33531,31699 33509,31700,33530,31700 33541,31700,33737,31700 33532,31700,33539,31700 33751,31700,33751,31700 33744,31700,33748,31700 33492,31700,33506,31700 33531,31701,33538,31701 33745,31701,33747,31701 33751,31701,33752,31701 33540,31701,33739,31701 33492,31701,33519,31701 33521,31701,33528,31701 33544,31702,33740,31702 33539,31702,33541,31702 33530,31702,33536,31702 33493,31702,33517,31702 33753,31702,33753,31702 33521,31702,33521,31702 33519,31703,33523,31703 33543,31703,33742,31703 33526,31703,33541,31703 33494,31703,33516,31703 33490,31703,33491,31704 33521,31704,33533,31704 33737,31704,33739,31704 33741,31704,33742,31704 33543,31704,33733,31704 33536,31704,33540,31704 33518,31704,33519,31704 33494,31704,33515,31705 33490,31705,33492,31705 33724,31705,33733,31705 33520,31705,33531,31705 33533,31705,33539,31705 33551,31705,33718,31705 33542,31705,33547,31705 33517,31705,33518,31705 33519,31706,33538,31706 33727,31706,33727,31706 33541,31706,33542,31706 33489,31706,33514,31706 33730,31706,33734,31706 33551,31706,33717,31706 33550,31707,33716,31707 33540,31707,33541,31707 33488,31707,33536,31707 33731,31707,33735,31707 33538,31708,33540,31708 33549,31708,33554,31708 33557,31708,33715,31708 33731,31708,33736,31709 33496,31708,33535,31709 33548,31709,33554,31709 33537,31709,33538,31709 33746,31709,33747,31709 33558,31709,33714,31709 33559,31710,33714,31710 33730,31710,33736,31710 33747,31710,33748,31710 33496,31710,33523,31710 33550,31710,33552,31710 33526,31710,33532,31710 33545,31710,33548,31710 33529,31711,33530,31711 33561,31711,33713,31711 33557,31711,33559,31711 33544,31711,33545,31711 33730,31711,33734,31711 33550,31711,33551,31711 33534,31711,33535,31711 33496,31711,33522,31711 33520,31712,33522,31712 33533,31712,33534,31712 33550,31712,33550,31712 33496,31712,33504,31712 33527,31712,33527,31712 33562,31712,33713,31712 33556,31712,33558,31712 33730,31712,33731,31712 33509,31712,33515,31712 33520,31713,33521,31713 33551,31713,33551,31713 33555,31713,33557,31713 33509,31713,33509,31713 33543,31713,33543,31713 33513,31713,33515,31713 33527,31713,33529,31713 33564,31713,33712,31713 33729,31713,33730,31713 33496,31713,33499,31713 33542,31714,33543,31714 33513,31714,33513,31714 33549,31714,33552,31714 33563,31714,33712,31714 33510,31714,33510,31714 33729,31714,33729,31714 33529,31714,33529,31714 33519,31714,33519,31714 33562,31715,33563,31715 33547,31715,33549,31715 33566,31715,33713,31715 33728,31715,33728,31715 33541,31715,33541,31715 33497,31714,33500,31716 33554,31714,33557,31716 33567,31716,33714,31716 33561,31716,33562,31716 33547,31716,33547,31716 33551,31715,33551,31717 33498,31717,33499,31717 33554,31717,33555,31717 33561,31717,33561,31717 33568,31717,33715,31717 33549,31718,33550,31718 33560,31718,33560,31718 33743,31718,33744,31718 33568,31718,33716,31718 33549,31719,33549,31719 33569,31719,33716,31719 33559,31719,33560,31719 33742,31719,33744,31720 33488,31708,33494,31721 33569,31720,33715,31721 33564,31721,33564,31721 33742,31721,33743,31721 33555,31721,33556,31721 33738,31722,33738,31722 33564,31722,33566,31722 33569,31722,33716,31722 33491,31722,33491,31722 33554,31722,33554,31722 33566,31723,33717,31723 33737,31723,33741,31724 33568,31724,33717,31725 33737,31725,33740,31725 33556,31726,33557,31726 33538,31726,33538,31726 33738,31726,33739,31726 33567,31726,33718,31726 33734,31727,33734,31727 33566,31727,33718,31727 33557,31727,33559,31727 33541,31727,33542,31727 33541,31728,33543,31728 33564,31728,33719,31728 33559,31728,33560,31728 33733,31728,33734,31728 33560,31729,33561,31729 33542,31729,33546,31729 33739,31729,33741,31729 33563,31729,33720,31729 33731,31729,33734,31730 33547,31730,33547,31730 33561,31730,33721,31730 33738,31730,33742,31731 33729,31731,33733,31731 33551,31731,33552,31731 33560,31731,33721,31731 33549,31731,33549,31731 33555,31731,33555,31731 33554,31732,33555,31732 33726,31732,33733,31732 33737,31732,33741,31732 33558,31732,33720,31732 33736,31733,33741,31733 33556,31733,33721,31733 33723,31733,33733,31733 33551,31734,33732,31734 33553,31735,33732,31735 33554,31736,33730,31736 33554,31737,33728,31737 33549,31738,33550,31738 33553,31738,33725,31738 33550,31739,33723,31739 33542,31739,33543,31739 33544,31740,33544,31740 33549,31740,33722,31740 33739,31741,33739,31741 33559,31741,33721,31741 33544,31741,33545,31741 33548,31741,33554,31741 33560,31742,33721,31742 33552,31742,33553,31742 33545,31742,33545,31742 33738,31743,33738,31743 33551,31743,33552,31743 33559,31743,33722,31743 33567,31744,33723,31744 33558,31744,33561,31744 33550,31744,33551,31744 33557,31745,33560,31745 33734,31745,33734,31745 33573,31745,33724,31745 33567,31745,33571,31745 33558,31746,33558,31746 33553,31746,33554,31746 33732,31746,33735,31746 33567,31746,33724,31746 33592,31747,33726,31747 33578,31747,33582,31747 33730,31747,33733,31747 33553,31747,33553,31747 33584,31747,33585,31747 33556,31747,33558,31747 33589,31747,33590,31747 33565,31747,33574,31747 33556,31748,33557,31748 33593,31748,33733,31748 33571,31748,33572,31748 33552,31748,33553,31748 33580,31748,33581,31748 33565,31748,33568,31748 33589,31748,33589,31748 33583,31748,33584,31749 33565,31749,33567,31749 33594,31749,33733,31749 33551,31749,33552,31749 33549,31749,33549,31749 33570,31749,33571,31749 33588,31749,33589,31749 33578,31750,33579,31750 33550,31750,33550,31750 33595,31750,33733,31750 33587,31750,33588,31750 33582,31750,33584,31750 33571,31750,33571,31750 33565,31750,33568,31750 33571,31751,33572,31751 33563,31751,33568,31751 33717,31751,33722,31751 33587,31751,33587,31751 33579,31751,33584,31751 33727,31751,33731,31751 33595,31751,33713,31752 33573,31752,33573,31752 33583,31752,33584,31752 33561,31752,33568,31752 33719,31752,33722,31752 33560,31753,33561,31753 33597,31753,33713,31753 33595,31753,33595,31753 33722,31753,33722,31753 33564,31753,33565,31753 33572,31753,33573,31753 33579,31753,33579,31754 33598,31754,33712,31754 33563,31754,33565,31754 33571,31754,33572,31754 33593,31754,33594,31754 33591,31754,33591,31754 33559,31754,33560,31754 33558,31755,33559,31755 33562,31755,33563,31755 33598,31755,33714,31755 33571,31755,33571,31755 33590,31755,33590,31755 33589,31756,33590,31756 33600,31756,33716,31756 33597,31756,33598,31756 33564,31756,33564,31757 33596,31757,33597,31757 33713,31757,33716,31757 33588,31757,33588,31758 33594,31758,33596,31758 33714,31758,33715,31758 33601,31757,33710,31759 33594,31759,33594,31759 33601,31760,33672,31760 33677,31760,33709,31760 33599,31761,33670,31761 33674,31761,33674,31761 33677,31761,33708,31761 33634,31762,33660,31762 33603,31762,33631,31762 33691,31762,33698,31762 33598,31762,33600,31762 33702,31762,33709,31762 33664,31762,33669,31762 33676,31762,33688,31763 33595,31763,33598,31763 33702,31763,33708,31763 33665,31763,33668,31763 33692,31763,33697,31763 33635,31763,33659,31763 33700,31763,33700,31763 33604,31763,33631,31763 33607,31764,33631,31764 33702,31764,33702,31764 33594,31764,33595,31764 33664,31764,33667,31764 33674,31764,33687,31764 33705,31764,33707,31764 33636,31764,33643,31765 33692,31764,33696,31765 33646,31764,33659,31765 33608,31765,33617,31765 33674,31765,33686,31765 33594,31765,33594,31765 33663,31765,33666,31765 33621,31765,33631,31765 33637,31766,33643,31766 33674,31766,33675,31766 33647,31766,33658,31766 33608,31766,33616,31766 33663,31766,33664,31766 33679,31766,33686,31766 33621,31766,33622,31766 33591,31766,33593,31766 33692,31766,33695,31766 33701,31765,33702,31767 33693,31767,33694,31767 33621,31767,33621,31767 33673,31767,33675,31767 33648,31767,33658,31767 33680,31767,33686,31767 33638,31767,33644,31767 33627,31766,33632,31768 33607,31767,33615,31768 33639,31768,33644,31768 33681,31768,33686,31768 33700,31768,33702,31768 33601,31768,33602,31768 33649,31768,33657,31768 33672,31768,33675,31768 33640,31769,33644,31769 33670,31769,33675,31769 33650,31769,33656,31769 33602,31769,33604,31769 33606,31769,33613,31769 33626,31769,33632,31769 33700,31769,33703,31769 33682,31769,33686,31769 33625,31770,33633,31770 33683,31770,33685,31770 33596,31770,33597,31770 33641,31770,33645,31770 33609,31770,33613,31770 33669,31770,33675,31770 33699,31770,33703,31770 33605,31770,33606,31770 33602,31770,33603,31770 33651,31770,33656,31770 33684,31771,33684,31771 33609,31771,33610,31771 33642,31771,33645,31771 33698,31771,33703,31771 33651,31771,33654,31771 33668,31771,33676,31771 33597,31771,33602,31771 33625,31771,33634,31771 33599,31772,33600,31772 33622,31772,33634,31772 33667,31772,33676,31772 33696,31772,33702,31772 33642,31772,33644,31772 33651,31772,33653,31772 33694,31773,33701,31773 33666,31773,33675,31773 33598,31773,33598,31773 33621,31773,33635,31773 33653,31773,33653,31773 33693,31774,33700,31774 33620,31774,33635,31774 33666,31774,33674,31775 33620,31775,33632,31775 33692,31775,33699,31775 33619,31776,33630,31776 33668,31776,33674,31776 33693,31776,33697,31776 33669,31777,33674,31777 33694,31777,33696,31777 33620,31777,33625,31777 33622,31778,33623,31778 33694,31778,33695,31778 33674,31778,33675,31778 33726,31784,33726,31784 33599,31790,33600,31790", + }, + [256] = { -- Krailos Ruins (303 tiles, 7 rects) + name = "Krailos Ruins", + mainArea = 16, + bbox = { x1 = 33569, y1 = 31581, x2 = 33591, y2 = 31595 }, + rects = "33569,31581,33584,31581 33569,31582,33585,31582 33569,31583,33588,31584 33569,31585,33590,31585 33569,31586,33591,31587 33569,31588,33589,31592 33569,31593,33587,31595", + }, + [271] = { -- Carlin City (9786 tiles, 327 rects) + name = "Carlin City", + mainArea = 3, + bbox = { x1 = 32131, y1 = 31590, x2 = 32533, y2 = 31854 }, + rects = "32527,31590,32533,31590 32527,31591,32527,31591 32533,31591,32533,31591 32529,31591,32531,31591 32522,31590,32525,31593 32527,31592,32533,31593 32527,31594,32527,31594 32533,31594,32533,31594 32529,31594,32531,31594 32524,31594,32524,31594 32527,31595,32533,31596 32522,31595,32525,31597 32527,31597,32527,31597 32533,31597,32533,31597 32529,31597,32531,31597 32527,31598,32533,31598 32524,31598,32524,31598 32493,31599,32497,31599 32530,31599,32530,31599 32522,31599,32525,31599 32521,31600,32525,31600 32527,31600,32531,31600 32492,31600,32497,31601 32521,31601,32533,31601 32491,31602,32497,31602 32527,31602,32533,31602 32522,31602,32525,31602 32500,31599,32505,31603 32492,31603,32497,31603 32503,31604,32503,31604 32463,31606,32465,31607 32467,31606,32470,31607 32502,31607,32502,31607 32475,31607,32480,31608 32463,31608,32470,31608 32475,31609,32481,31609 32467,31609,32470,31609 32475,31610,32480,31610 32468,31610,32468,31610 32463,31610,32465,31611 32467,31611,32470,31611 32463,31612,32470,31612 32499,31608,32504,31613 32475,31612,32480,31613 32468,31613,32468,31613 32475,31614,32481,31614 32475,31615,32480,31615 32153,31653,32156,31654 32152,31655,32156,31655 32153,31656,32156,31656 32145,31655,32148,31657 32145,31658,32149,31658 32171,31658,32171,31658 32173,31658,32175,31659 32170,31659,32171,31659 32177,31658,32179,31660 32145,31659,32148,31660 32170,31660,32175,31660 32158,31658,32161,31661 32153,31658,32156,31661 32170,31661,32171,31661 32174,31661,32174,31661 32178,31661,32178,31661 32171,31662,32171,31662 32160,31662,32160,31662 32155,31662,32155,31662 32173,31662,32179,31663 32170,31663,32171,31663 32169,31664,32179,31664 32294,31663,32303,31665 32136,31665,32136,31665 32158,31665,32158,31665 32173,31665,32179,31666 32170,31665,32171,31666 32297,31666,32297,31666 32154,31666,32158,31667 32160,31666,32162,31667 32289,31663,32292,31668 32301,31667,32303,31668 32294,31667,32299,31668 32154,31668,32162,31668 32134,31666,32137,31669 32154,31669,32158,31669 32289,31669,32303,31669 32160,31669,32162,31669 32301,31670,32303,31670 32134,31670,32135,31670 32294,31670,32299,31671 32132,31671,32132,31671 32302,31671,32302,31671 32289,31670,32292,31672 32301,31672,32303,31672 32296,31672,32297,31673 32146,31672,32149,31673 32299,31673,32303,31673 32289,31673,32294,31673 32145,31674,32149,31674 32297,31674,32297,31674 32131,31672,32135,31675 32146,31675,32149,31675 32141,31676,32141,31676 32139,31677,32143,31679 32134,31677,32137,31679 32134,31680,32143,31680 32139,31681,32143,31682 32134,31681,32137,31682 32260,31694,32263,31696 32271,31694,32275,31696 32272,31697,32272,31697 32263,31697,32263,31697 32265,31702,32265,31702 32263,31703,32266,31705 32327,31721,32328,31721 32327,31722,32329,31722 32326,31723,32330,31723 32276,31723,32279,31723 32325,31724,32330,31724 32274,31724,32280,31724 32274,31725,32281,31726 32327,31725,32330,31726 32276,31727,32278,31727 32327,31727,32329,31727 32277,31728,32277,31728 32338,31745,32344,31745 32311,31746,32351,31750 32328,31751,32356,31751 32311,31751,32326,31751 32311,31752,32325,31752 32311,31753,32326,31753 32329,31752,32356,31754 32311,31754,32325,31754 32328,31755,32356,31755 32311,31755,32326,31755 32365,31755,32370,31756 32303,31756,32356,31756 32303,31757,32370,31758 32303,31759,32372,31759 32420,31759,32424,31760 32426,31759,32430,31760 32420,31761,32431,31761 32303,31760,32373,31762 32404,31760,32409,31762 32268,31761,32272,31762 32426,31762,32431,31762 32426,31763,32430,31763 32281,31763,32282,31763 32420,31762,32424,31764 32296,31763,32373,31764 32428,31764,32428,31764 32269,31763,32274,31765 32279,31764,32282,31765 32296,31765,32380,31765 32423,31765,32423,31765 32296,31766,32385,31766 32279,31766,32283,31766 32272,31766,32272,31766 32426,31765,32430,31767 32420,31766,32424,31767 32279,31767,32282,31767 32296,31767,32386,31767 32296,31768,32387,31768 32420,31768,32430,31768 32280,31768,32282,31768 32420,31769,32424,31769 32426,31769,32430,31769 32292,31769,32394,31769 32404,31763,32410,31770 32292,31770,32395,31770 32407,31771,32407,31771 32292,31771,32396,31777 32290,31778,32396,31780 32290,31781,32395,31781 32397,31782,32398,31783 32293,31782,32395,31783 32291,31782,32291,31784 32290,31785,32291,31785 32293,31784,32398,31786 32289,31786,32290,31786 32291,31787,32395,31787 32288,31787,32289,31787 32397,31787,32398,31788 32288,31788,32395,31789 32288,31790,32396,31790 32291,31791,32397,31791 32288,31791,32289,31791 32291,31792,32400,31792 32290,31793,32401,31793 32289,31794,32401,31794 32289,31795,32402,31795 32289,31796,32406,31796 32289,31797,32408,31798 32289,31799,32410,31799 32289,31800,32411,31802 32288,31803,32410,31803 32287,31804,32408,31804 32287,31805,32397,31805 32287,31806,32389,31806 32391,31806,32397,31806 32391,31807,32396,31807 32287,31807,32388,31807 32392,31808,32395,31808 32288,31808,32355,31809 32363,31808,32388,31809 32365,31810,32388,31811 32311,31810,32353,31811 32288,31810,32295,31811 32298,31811,32308,31811 32312,31812,32353,31812 32297,31812,32309,31812 32362,31812,32387,31813 32296,31813,32309,31813 32288,31812,32294,31814 32296,31814,32310,31814 32481,31813,32485,31815 32313,31813,32353,31815 32289,31815,32294,31815 32363,31814,32387,31816 32297,31815,32311,31816 32481,31816,32482,31816 32484,31816,32485,31816 32313,31816,32356,31816 32478,31812,32479,31817 32289,31816,32295,31817 32363,31817,32386,31817 32481,31817,32485,31817 32297,31817,32356,31817 32289,31818,32294,31818 32297,31818,32380,31818 32478,31818,32485,31818 32383,31819,32393,31819 32296,31819,32380,31819 32483,31819,32483,31819 32288,31819,32294,31820 32382,31820,32393,31820 32481,31820,32485,31821 32296,31820,32374,31821 32288,31821,32293,31821 32381,31821,32393,31821 32487,31812,32488,31822 32478,31819,32479,31822 32289,31822,32292,31822 32382,31822,32393,31822 32296,31822,32373,31822 32383,31823,32393,31823 32478,31823,32488,31823 32294,31823,32294,31823 32301,31823,32371,31823 32280,31824,32280,31824 32299,31824,32370,31824 32483,31824,32483,31824 32486,31824,32487,31824 32479,31824,32480,31824 32293,31824,32297,31824 32282,31823,32285,31825 32275,31823,32277,31825 32296,31825,32338,31825 32279,31825,32280,31825 32293,31825,32294,31825 32341,31825,32370,31825 32275,31826,32285,31826 32293,31826,32339,31826 32341,31826,32371,31826 32295,31827,32339,31827 32293,31827,32293,31827 32341,31827,32375,31827 32279,31827,32280,31827 32282,31827,32285,31827 32275,31827,32277,31827 32280,31828,32280,31828 32293,31828,32338,31828 32341,31828,32376,31828 32296,31829,32338,31829 32293,31829,32294,31829 32279,31829,32285,31830 32275,31829,32277,31830 32294,31830,32299,31830 32340,31829,32377,31831 32275,31831,32285,31831 32310,31830,32338,31832 32341,31832,32376,31832 32279,31832,32285,31832 32275,31832,32277,31832 32359,31833,32376,31833 32345,31833,32354,31833 32345,31834,32353,31834 32364,31834,32367,31834 32309,31833,32338,31835 32369,31834,32376,31835 32309,31836,32339,31836 32345,31835,32352,31837 32368,31836,32376,31837 32308,31837,32339,31837 32349,31838,32351,31838 32346,31838,32347,31838 32369,31838,32376,31838 32305,31838,32330,31838 32333,31838,32339,31839 32370,31839,32371,31839 32373,31839,32376,31839 32305,31839,32327,31839 32305,31840,32326,31840 32374,31840,32375,31840 32332,31840,32339,31840 32305,31841,32325,31841 32331,31841,32339,31841 32331,31842,32340,31842 32306,31842,32323,31843 32331,31843,32341,31843 32330,31844,32342,31844 32306,31844,32324,31845 32315,31846,32315,31846 32317,31846,32323,31846 32312,31846,32313,31846 32330,31845,32343,31847 32306,31846,32310,31847 32312,31847,32316,31847 32319,31847,32321,31847 32331,31848,32332,31848 32336,31848,32343,31848 32314,31848,32315,31848 32337,31849,32346,31850 32346,31851,32346,31851 32339,31851,32341,31851 32341,31852,32341,31852 32343,31852,32346,31853 32339,31853,32341,31853 32339,31854,32346,31854", + }, + [272] = { -- Kazordoon City (331 tiles, 65 rects) + name = "Kazordoon City", + mainArea = 14, + bbox = { x1 = 32558, y1 = 31852, x2 = 32766, y2 = 32238 }, + rects = "32558,31852,32559,31852 32558,31853,32558,31853 32558,31854,32559,31854 32559,31855,32559,31855 32635,31881,32636,31881 32635,31882,32637,31882 32637,31883,32637,31883 32636,31884,32637,31884 32631,31886,32635,31887 32630,31888,32635,31888 32631,31889,32635,31889 32589,31897,32593,31899 32561,31906,32563,31908 32581,31908,32582,31912 32587,31908,32588,31912 32624,31919,32626,31921 32602,31923,32603,31925 32575,31947,32578,31950 32591,31957,32592,31957 32589,31958,32594,31958 32588,31959,32596,31960 32587,31961,32594,31961 32587,31962,32592,31963 32588,31964,32590,31964 32588,31965,32589,31965 32643,32026,32644,32026 32642,32027,32645,32027 32647,32027,32650,32027 32642,32028,32650,32028 32649,32029,32649,32029 32644,32029,32644,32029 32642,32030,32645,32030 32647,32030,32650,32030 32642,32031,32650,32031 32642,32032,32645,32032 32647,32032,32650,32032 32649,32033,32649,32033 32644,32033,32644,32033 32642,32034,32645,32035 32647,32034,32650,32035 32761,32129,32762,32130 32764,32130,32766,32130 32757,32130,32759,32130 32757,32131,32766,32131 32762,32132,32762,32132 32764,32132,32766,32132 32757,32132,32759,32132 32759,32133,32759,32133 32765,32133,32765,32133 32761,32133,32762,32133 32757,32134,32766,32134 32762,32135,32762,32135 32759,32135,32759,32135 32765,32135,32765,32135 32764,32136,32766,32139 32757,32136,32759,32139 32761,32136,32762,32139 32643,32204,32644,32204 32663,32210,32663,32210 32651,32211,32652,32211 32657,32211,32664,32212 32650,32212,32652,32212 32651,32213,32652,32213 32660,32233,32660,32235 32660,32238,32660,32238", + }, + [273] = { -- Ab'Dendriel City (13339 tiles, 227 rects) + name = "Ab'Dendriel City", + mainArea = 1, + bbox = { x1 = 32541, y1 = 31571, x2 = 32738, y2 = 31772 }, + rects = "32649,31571,32664,31571 32655,31572,32664,31573 32649,31572,32653,31573 32649,31574,32664,31575 32655,31576,32664,31577 32649,31576,32653,31578 32688,31578,32690,31578 32657,31578,32664,31578 32688,31579,32692,31579 32651,31579,32651,31579 32649,31579,32649,31579 32655,31579,32664,31580 32686,31580,32692,31580 32649,31580,32653,31580 32686,31581,32696,31581 32649,31581,32664,31582 32684,31582,32699,31582 32653,31583,32653,31583 32655,31583,32662,31583 32683,31583,32699,31583 32678,31584,32699,31584 32653,31584,32662,31584 32654,31585,32662,31585 32674,31585,32699,31585 32654,31586,32663,31586 32673,31586,32700,31587 32654,31587,32664,31587 32654,31588,32666,31588 32673,31588,32701,31588 32653,31589,32667,31589 32674,31589,32703,31589 32652,31590,32668,31590 32673,31590,32703,31590 32673,31591,32705,31591 32652,31591,32671,31591 32653,31592,32705,31592 32646,31592,32647,31592 32645,31593,32648,31593 32654,31593,32705,31593 32644,31594,32648,31594 32654,31594,32706,31594 32638,31595,32649,31595 32654,31595,32707,31596 32637,31596,32651,31596 32655,31597,32707,31597 32632,31597,32633,31597 32637,31597,32652,31597 32637,31598,32706,31598 32631,31598,32634,31598 32626,31598,32628,31599 32630,31599,32707,31599 32625,31600,32707,31601 32624,31602,32707,31603 32625,31604,32707,31604 32628,31605,32708,31605 32629,31606,32709,31606 32723,31606,32724,31606 32629,31607,32710,31607 32721,31607,32725,31607 32629,31608,32711,31608 32718,31608,32726,31608 32628,31609,32711,31609 32717,31609,32727,31609 32716,31610,32727,31610 32628,31610,32710,31610 32629,31611,32709,31611 32713,31611,32727,31611 32711,31612,32727,31612 32629,31612,32708,31613 32710,31613,32727,31613 32626,31614,32708,31614 32710,31614,32726,31615 32625,31615,32707,31615 32625,31616,32706,31616 32710,31616,32725,31616 32708,31617,32726,31617 32624,31617,32705,31618 32625,31619,32705,31619 32624,31620,32704,31620 32707,31618,32726,31621 32624,31621,32703,31621 32625,31622,32702,31622 32706,31622,32726,31622 32705,31623,32726,31623 32630,31623,32693,31624 32696,31624,32725,31624 32689,31625,32692,31625 32695,31625,32724,31625 32630,31625,32687,31625 32690,31626,32691,31626 32694,31626,32723,31626 32629,31626,32685,31627 32694,31627,32720,31627 32622,31628,32684,31628 32729,31628,32734,31628 32694,31628,32718,31628 32691,31629,32718,31629 32621,31629,32684,31629 32727,31629,32736,31629 32620,31630,32683,31630 32689,31630,32717,31630 32619,31631,32682,31631 32688,31631,32718,31632 32720,31632,32723,31632 32618,31632,32680,31632 32727,31630,32737,31633 32682,31633,32725,31633 32618,31633,32672,31633 32680,31634,32738,31634 32617,31634,32674,31634 32679,31635,32718,31635 32617,31635,32675,31635 32720,31635,32738,31635 32720,31636,32737,31636 32614,31636,32717,31636 32724,31637,32737,31637 32614,31637,32719,31637 32721,31637,32722,31637 32614,31638,32720,31638 32725,31638,32737,31638 32613,31639,32720,31639 32726,31639,32737,31639 32728,31640,32736,31640 32612,31640,32720,31641 32732,31641,32735,31641 32611,31642,32720,31642 32611,31643,32719,31644 32611,31645,32718,31645 32610,31646,32718,31646 32542,31651,32545,31652 32609,31647,32718,31653 32544,31653,32549,31653 32549,31654,32550,31654 32543,31654,32547,31654 32610,31654,32718,31654 32610,31655,32715,31655 32543,31655,32551,31655 32610,31656,32716,31656 32542,31656,32543,31656 32546,31656,32547,31656 32549,31657,32552,31657 32541,31657,32547,31657 32610,31657,32717,31658 32541,31658,32552,31658 32733,31657,32734,31659 32610,31659,32716,31659 32541,31659,32544,31659 32546,31659,32552,31659 32732,31660,32735,31660 32609,31660,32716,31661 32541,31660,32547,31661 32549,31661,32552,31661 32606,31662,32716,31662 32543,31662,32551,31663 32597,31663,32716,31663 32592,31664,32716,31664 32545,31664,32549,31664 32590,31665,32716,31665 32546,31665,32547,31665 32589,31666,32717,31666 32589,31667,32724,31669 32588,31670,32724,31671 32719,31672,32723,31672 32587,31672,32716,31672 32586,31673,32714,31673 32720,31673,32721,31673 32586,31674,32716,31674 32587,31675,32716,31675 32588,31676,32717,31677 32731,31661,32737,31678 32588,31678,32718,31678 32734,31679,32734,31679 32589,31679,32718,31679 32590,31680,32718,31680 32591,31681,32718,31684 32704,31685,32718,31685 32591,31685,32701,31686 32705,31686,32717,31686 32591,31687,32700,31687 32706,31687,32717,31687 32707,31688,32717,31688 32591,31688,32701,31688 32708,31689,32716,31689 32591,31689,32702,31690 32710,31690,32712,31690 32592,31691,32703,31692 32593,31693,32702,31693 32605,31694,32705,31694 32611,31695,32706,31695 32611,31696,32707,31696 32612,31697,32707,31697 32613,31698,32707,31700 32614,31701,32706,31701 32615,31702,32705,31702 32616,31703,32704,31703 32616,31704,32702,31705 32617,31706,32702,31706 32622,31707,32702,31707 32627,31708,32701,31708 32665,31709,32698,31709 32630,31709,32654,31709 32680,31710,32682,31710 32693,31710,32697,31710 32634,31710,32649,31712 32696,31760,32704,31760 32695,31761,32705,31761 32696,31762,32704,31762 32698,31763,32698,31763 32707,31763,32708,31763 32697,31764,32698,31764 32694,31764,32695,31764 32706,31764,32708,31765 32700,31764,32704,31765 32694,31765,32698,31765 32697,31766,32708,31766 32697,31767,32698,31767 32700,31767,32704,31767 32694,31766,32695,31768 32706,31767,32708,31768 32698,31768,32698,31768 32703,31768,32703,31768 32702,31769,32704,31769 32697,31769,32700,31769 32697,31770,32704,31770 32702,31771,32704,31771 32697,31771,32700,31771 32698,31772,32698,31772", + }, + [274] = { -- Stonehome (2687 tiles, 97 rects) + name = "Stonehome", + mainArea = 7, + bbox = { x1 = 33262, y1 = 31743, x2 = 33341, y2 = 31800 }, + rects = "33273,31743,33279,31743 33271,31744,33285,31744 33270,31745,33287,31745 33313,31745,33315,31745 33302,31746,33304,31746 33270,31746,33289,31746 33309,31746,33322,31746 33301,31747,33323,31747 33269,31747,33290,31748 33301,31748,33315,31748 33320,31748,33323,31748 33325,31748,33327,31748 33296,31749,33306,31749 33268,31749,33291,31749 33320,31749,33328,31749 33312,31749,33315,31751 33320,31750,33322,31751 33312,31752,33317,31752 33319,31752,33322,31752 33327,31750,33328,31753 33267,31750,33306,31753 33313,31753,33322,31753 33331,31748,33334,31754 33325,31754,33329,31754 33266,31754,33323,31754 33266,31755,33335,31755 33265,31756,33335,31756 33265,31757,33339,31757 33264,31758,33340,31758 33264,31759,33341,31760 33334,31761,33341,31761 33263,31761,33332,31761 33334,31762,33334,31762 33263,31762,33330,31762 33337,31762,33337,31762 33341,31762,33341,31763 33263,31763,33288,31763 33297,31763,33330,31763 33294,31763,33294,31764 33262,31764,33288,31764 33297,31764,33335,31764 33337,31764,33341,31764 33334,31765,33334,31765 33262,31765,33287,31765 33297,31765,33330,31766 33294,31766,33294,31767 33297,31767,33334,31767 33262,31766,33288,31768 33334,31768,33334,31768 33294,31768,33330,31768 33262,31769,33330,31769 33341,31765,33341,31770 33334,31770,33334,31770 33263,31770,33330,31770 33263,31771,33341,31771 33264,31772,33322,31772 33324,31772,33331,31772 33264,31773,33321,31773 33328,31773,33330,31773 33264,31774,33320,31774 33264,31775,33317,31775 33265,31776,33318,31776 33265,31777,33287,31777 33301,31777,33318,31778 33266,31778,33287,31778 33295,31777,33297,31779 33301,31779,33317,31779 33269,31779,33287,31779 33295,31780,33298,31780 33300,31780,33316,31780 33271,31780,33293,31780 33274,31781,33316,31781 33276,31782,33315,31782 33300,31783,33314,31783 33295,31783,33298,31783 33277,31783,33293,31783 33277,31784,33287,31784 33301,31784,33314,31785 33295,31784,33295,31786 33278,31785,33287,31786 33301,31786,33316,31786 33278,31787,33317,31787 33278,31788,33278,31788 33281,31788,33318,31788 33284,31789,33318,31789 33286,31790,33312,31790 33287,31791,33312,31792 33314,31790,33318,31793 33287,31793,33311,31793 33315,31794,33317,31794 33289,31794,33306,31794 33291,31795,33305,31795 33293,31796,33305,31796 33298,31797,33305,31797 33300,31798,33305,31798 33301,31799,33305,31799 33303,31800,33304,31800", + }, + [275] = { -- Edron Castle (13142 tiles, 369 rects) + name = "Edron Castle", + mainArea = 7, + bbox = { x1 = 33140, y1 = 31748, x2 = 33340, y2 = 32021 }, + rects = "33316,31748,33319,31751 33307,31749,33311,31752 33318,31752,33318,31752 33323,31750,33326,31753 33307,31753,33312,31753 33324,31754,33324,31754 33333,31761,33333,31761 33170,31761,33186,31761 33338,31762,33340,31762 33335,31762,33336,31762 33331,31762,33333,31762 33169,31762,33186,31762 33166,31763,33186,31763 33331,31763,33340,31763 33295,31763,33296,31764 33289,31763,33293,31764 33166,31764,33187,31764 33336,31764,33336,31764 33335,31765,33340,31765 33168,31765,33186,31765 33331,31765,33333,31765 33288,31765,33296,31765 33169,31766,33186,31766 33331,31766,33340,31766 33295,31766,33296,31767 33170,31767,33186,31767 33289,31766,33293,31768 33335,31767,33340,31768 33331,31768,33333,31768 33331,31769,33340,31769 33335,31770,33340,31770 33144,31770,33145,31770 33331,31770,33333,31770 33143,31771,33146,31771 33142,31772,33146,31773 33172,31773,33186,31773 33191,31774,33194,31774 33142,31774,33151,31774 33172,31774,33187,31774 33172,31775,33199,31775 33142,31775,33152,31775 33170,31776,33201,31776 33141,31776,33153,31777 33170,31777,33205,31777 33168,31778,33208,31778 33298,31777,33300,31779 33288,31777,33294,31779 33142,31778,33154,31779 33142,31780,33155,31780 33299,31780,33299,31780 33294,31780,33294,31780 33142,31781,33156,31781 33163,31779,33219,31782 33142,31782,33158,31782 33294,31783,33294,31783 33163,31783,33221,31783 33299,31783,33299,31783 33142,31783,33159,31783 33143,31784,33159,31784 33288,31784,33294,31786 33296,31784,33300,31786 33144,31785,33159,31786 33163,31784,33230,31787 33164,31788,33230,31788 33164,31789,33231,31789 33144,31787,33160,31790 33165,31790,33231,31790 33165,31791,33232,31791 33143,31791,33160,31792 33165,31792,33234,31792 33142,31793,33160,31793 33165,31793,33235,31793 33141,31794,33160,31794 33165,31794,33234,31795 33140,31795,33161,31795 33165,31796,33235,31796 33140,31796,33162,31796 33140,31797,33235,31798 33141,31799,33235,31799 33142,31800,33235,31801 33142,31802,33236,31802 33142,31803,33237,31805 33142,31806,33238,31807 33142,31808,33239,31808 33242,31808,33244,31808 33143,31809,33244,31810 33144,31811,33245,31812 33144,31813,33246,31813 33146,31814,33248,31814 33146,31815,33249,31817 33147,31818,33249,31818 33149,31819,33249,31820 33275,31821,33277,31821 33258,31821,33260,31821 33149,31821,33250,31821 33150,31822,33251,31822 33258,31822,33261,31822 33274,31822,33278,31822 33151,31823,33251,31823 33273,31823,33279,31825 33258,31823,33262,31825 33151,31824,33252,31825 33152,31826,33252,31826 33258,31826,33261,31826 33274,31826,33278,31826 33275,31827,33277,31827 33258,31827,33260,31827 33154,31827,33252,31827 33156,31828,33251,31828 33267,31830,33269,31830 33157,31829,33251,31831 33281,31831,33283,31831 33266,31831,33271,31831 33282,31832,33283,31832 33156,31832,33252,31832 33264,31832,33272,31833 33282,31833,33282,31833 33285,31833,33285,31833 33279,31833,33280,31833 33155,31833,33252,31835 33279,31834,33285,31835 33263,31834,33273,31836 33156,31836,33252,31836 33280,31836,33284,31836 33281,31837,33283,31837 33257,31837,33257,31837 33157,31837,33251,31837 33264,31837,33272,31838 33254,31838,33255,31838 33257,31838,33258,31838 33158,31838,33250,31838 33265,31839,33271,31839 33158,31839,33251,31840 33267,31840,33269,31840 33253,31839,33255,31841 33257,31839,33259,31841 33161,31841,33251,31841 33166,31842,33251,31842 33254,31842,33255,31842 33280,31842,33282,31842 33257,31842,33258,31842 33279,31843,33283,31843 33167,31843,33251,31843 33255,31843,33255,31843 33257,31843,33257,31843 33168,31844,33252,31844 33267,31844,33269,31844 33266,31845,33270,31845 33169,31845,33253,31845 33278,31844,33284,31846 33169,31846,33254,31846 33279,31847,33283,31847 33265,31846,33271,31848 33170,31847,33255,31848 33280,31848,33282,31848 33257,31848,33259,31849 33266,31849,33270,31849 33171,31849,33255,31849 33267,31850,33269,31850 33171,31850,33260,31851 33173,31852,33264,31852 33281,31852,33283,31852 33286,31852,33288,31852 33274,31852,33278,31852 33271,31853,33288,31853 33174,31853,33265,31854 33267,31854,33289,31854 33174,31855,33290,31855 33173,31856,33291,31857 33174,31858,33291,31858 33174,31859,33197,31859 33213,31859,33291,31860 33175,31860,33197,31860 33199,31859,33204,31861 33206,31859,33211,31861 33213,31861,33279,31861 33283,31861,33289,31861 33178,31861,33197,31861 33284,31862,33289,31862 33179,31862,33279,31862 33180,31863,33279,31863 33285,31863,33289,31863 33181,31864,33278,31864 33285,31864,33288,31864 33181,31865,33279,31865 33286,31865,33287,31865 33182,31866,33279,31866 33183,31867,33279,31867 33271,31868,33278,31868 33183,31868,33265,31868 33263,31869,33264,31869 33272,31869,33274,31869 33184,31869,33260,31869 33276,31869,33277,31869 33186,31870,33260,31870 33186,31871,33190,31871 33193,31871,33260,31872 33187,31872,33189,31872 33192,31873,33260,31873 33191,31874,33261,31876 33193,31877,33263,31877 33194,31878,33264,31878 33195,31879,33264,31879 33194,31880,33264,31880 33193,31881,33252,31881 33261,31881,33263,31881 33193,31882,33251,31882 33193,31883,33250,31883 33193,31884,33249,31884 33193,31885,33248,31886 33195,31887,33250,31888 33192,31889,33250,31890 33191,31891,33250,31891 33190,31892,33249,31892 33190,31893,33250,31893 33189,31894,33251,31894 33184,31895,33252,31897 33184,31898,33251,31898 33184,31899,33253,31899 33185,31900,33254,31900 33186,31901,33254,31902 33186,31903,33253,31903 33242,31904,33252,31904 33186,31904,33240,31904 33185,31905,33239,31905 33248,31905,33250,31905 33243,31905,33246,31905 33244,31906,33245,31906 33185,31906,33238,31906 33233,31907,33236,31907 33229,31907,33231,31907 33185,31907,33227,31907 33186,31908,33227,31908 33234,31908,33235,31908 33188,31909,33194,31909 33202,31909,33226,31909 33202,31910,33224,31910 33188,31910,33193,31910 33203,31911,33224,31911 33189,31911,33193,31912 33204,31912,33225,31912 33210,31913,33225,31913 33210,31914,33224,31914 33211,31915,33222,31915 33212,31916,33222,31916 33216,31917,33222,31917 33216,31918,33225,31918 33217,31919,33226,31920 33217,31921,33225,31921 33217,31922,33224,31923 33217,31924,33223,31924 33217,31925,33221,31926 33218,31927,33221,31927 33219,31928,33220,31928 33300,31957,33304,31958 33300,31959,33305,31960 33320,31960,33320,31960 33310,31960,33310,31960 33314,31960,33314,31960 33300,31961,33304,31961 33301,31962,33303,31962 33317,31961,33321,31963 33309,31961,33311,31963 33313,31961,33315,31963 33320,31964,33320,31964 33311,31964,33311,31964 33315,31964,33315,31964 33289,31965,33295,31967 33320,31967,33320,31967 33315,31967,33315,31967 33311,31967,33311,31967 33289,31968,33296,31968 33309,31968,33311,31970 33317,31968,33321,31970 33313,31968,33315,31970 33289,31969,33295,31970 33292,31971,33292,31971 33319,31971,33319,31971 33314,31971,33314,31971 33310,31971,33310,31971 33267,31971,33271,31971 33270,31972,33271,31972 33266,31972,33268,31972 33291,31973,33291,31973 33265,31973,33272,31974 33308,31974,33308,31974 33269,31975,33270,31975 33272,31975,33272,31975 33265,31975,33267,31975 33265,31976,33270,31976 33274,31976,33274,31976 33289,31974,33293,31977 33306,31975,33311,31977 33268,31977,33270,31977 33265,31977,33266,31977 33288,31978,33293,31978 33269,31978,33270,31978 33265,31978,33267,31978 33305,31978,33312,31978 33272,31977,33276,31979 33266,31979,33270,31979 33306,31979,33312,31979 33289,31979,33293,31980 33272,31980,33277,31980 33306,31980,33311,31981 33292,31981,33292,31981 33272,31981,33276,31981 33290,31981,33290,31981 33309,31982,33309,31982 33272,31982,33277,31982 33274,31983,33274,31983 33283,31986,33283,31986 33297,31987,33297,31987 33281,31987,33285,31987 33281,31988,33286,31988 33300,31988,33303,31989 33296,31988,33298,31989 33280,31989,33285,31989 33296,31990,33303,31990 33281,31990,33286,31990 33291,31988,33294,31991 33296,31991,33298,31991 33300,31991,33303,31991 33297,31992,33297,31992 33301,31992,33301,31992 33292,31992,33292,31992 33281,31991,33285,31993 33292,31993,33302,31994 33281,31994,33286,31994 33281,31995,33285,31995 33292,31995,33303,31996 33280,31996,33286,31996 33281,31997,33285,31999 33291,31997,33303,32000 33281,32000,33286,32000 33280,32001,33285,32001 33281,32002,33286,32002 33281,32003,33285,32003 33283,32004,33283,32004 33305,32006,33305,32006 33294,32006,33294,32006 33302,32007,33308,32008 33292,32007,33297,32009 33302,32009,33309,32009 33292,32010,33298,32010 33302,32010,33308,32010 33281,32010,33281,32010 33302,32011,33309,32011 33279,32011,33284,32011 33292,32011,33297,32011 33296,32012,33296,32012 33302,32012,33308,32012 33279,32012,33285,32012 33294,32012,33294,32012 33308,32013,33308,32013 33304,32013,33304,32013 33290,32013,33290,32013 33279,32013,33284,32014 33288,32014,33288,32014 33292,32013,33297,32015 33281,32015,33281,32015 33286,32015,33289,32016 33286,32017,33290,32017 33286,32018,33289,32018 33286,32019,33290,32019 33279,32016,33284,32020 33286,32020,33289,32020 33288,32021,33288,32021 33281,32021,33281,32021", + }, + [276] = { -- Venore City (17207 tiles, 270 rects) + name = "Venore City", + mainArea = 25, + bbox = { x1 = 32857, y1 = 31992, x2 = 33028, y2 = 32165 }, + rects = "32889,31992,32890,31992 32888,31993,32891,31993 32887,31994,32891,31994 32887,31995,32892,31995 32888,31996,32892,31996 32889,31997,32892,31997 32888,31998,32892,31999 32886,32000,32892,32000 32885,32001,32891,32001 32882,32002,32890,32002 32881,32003,32890,32003 32880,32004,32890,32004 32880,32005,32889,32005 32880,32006,32887,32006 32880,32007,32886,32007 32931,32007,32932,32008 32879,32008,32886,32008 32931,32009,32933,32009 32876,32009,32886,32009 32930,32010,32933,32010 32891,32010,32892,32010 32897,32010,32898,32010 32875,32010,32886,32011 32890,32011,32909,32012 32875,32012,32887,32012 32875,32013,32913,32013 32874,32014,32913,32014 32872,32015,32895,32015 32904,32015,32913,32015 32869,32016,32895,32016 32899,32018,32910,32018 32946,32018,32966,32018 32945,32019,32966,32019 32898,32019,32910,32020 32944,32020,32966,32020 32941,32021,32966,32021 32899,32021,32910,32021 32900,32022,32910,32022 32941,32022,32967,32022 32944,32023,32966,32023 32945,32024,32966,32024 32929,32011,32935,32025 32868,32017,32895,32025 32999,32025,32999,32025 32946,32025,32966,32026 32999,32026,33002,32026 32903,32026,32904,32026 32932,32026,32932,32026 32867,32026,32895,32026 32865,32027,32909,32027 32918,32027,32919,32027 32999,32027,33004,32027 32917,32028,32920,32028 33000,32028,33005,32028 32864,32028,32910,32028 33000,32029,33007,32029 32863,32029,32909,32029 32933,32029,32958,32029 32916,32029,32920,32029 32862,32030,32909,32030 32927,32030,32929,32030 32915,32030,32920,32031 33000,32030,33008,32031 32922,32031,32930,32031 32933,32030,32959,32032 32862,32031,32906,32032 32999,32032,33009,32032 32967,32031,32988,32033 32915,32032,32930,32033 32998,32033,33009,32033 32863,32033,32905,32033 32941,32033,32959,32034 32862,32034,32900,32034 32914,32034,32930,32034 32997,32034,33010,32034 32966,32034,32993,32035 32941,32035,32960,32035 32995,32035,33011,32035 32861,32035,32900,32035 32903,32035,32907,32035 32912,32035,32930,32035 32939,32036,32960,32036 32861,32036,32899,32036 32912,32036,32932,32036 32902,32036,32908,32036 32967,32036,32992,32036 32995,32036,33013,32036 32901,32037,32909,32037 32994,32037,33018,32037 32939,32037,32992,32037 32911,32037,32936,32037 32862,32037,32892,32038 32896,32038,32937,32038 32993,32038,33020,32038 32939,32038,32991,32038 32927,32039,32937,32039 32895,32039,32921,32039 32863,32039,32890,32039 32939,32039,32988,32039 32993,32039,33023,32039 32991,32040,33025,32040 32895,32040,32922,32040 32930,32040,32987,32040 32864,32040,32888,32040 32892,32041,32922,32041 32991,32041,33027,32041 32864,32041,32886,32041 32930,32041,32986,32041 32990,32042,33027,32042 32889,32042,32922,32042 32929,32042,32986,32042 32865,32042,32886,32042 32888,32043,32922,32043 32866,32043,32885,32043 32989,32043,33027,32043 32928,32043,32985,32043 32924,32043,32926,32043 32887,32044,32985,32044 32868,32044,32884,32044 32988,32044,33028,32045 32870,32045,32882,32045 32886,32045,32977,32045 32987,32046,33028,32046 32871,32046,32882,32046 32885,32046,32972,32046 32873,32047,32882,32047 32982,32047,33028,32047 32884,32047,32972,32047 32974,32048,32976,32048 32980,32048,33028,32048 32875,32048,32881,32048 32884,32048,32971,32048 32974,32049,33028,32049 32884,32049,32970,32049 32877,32049,32878,32049 32974,32050,33027,32050 32883,32050,32970,32051 32884,32052,32970,32052 32885,32053,32970,32053 32973,32051,33027,32058 32886,32054,32969,32058 32880,32059,32969,32059 32879,32060,32969,32060 32972,32059,33027,32061 32878,32061,32969,32062 32972,32062,33026,32063 32878,32063,32968,32064 32972,32064,33025,32064 32971,32065,33024,32065 32878,32065,32958,32065 32961,32065,32966,32065 32964,32066,32965,32066 32876,32066,32956,32066 32970,32066,33024,32066 32875,32067,32953,32067 32970,32067,33022,32067 32958,32068,32965,32068 32875,32068,32952,32068 32970,32068,33021,32068 32955,32069,32965,32069 32875,32069,32951,32069 32969,32069,33019,32069 32946,32070,32950,32070 32875,32070,32941,32070 32954,32070,33019,32070 32870,32071,32940,32071 32951,32071,33019,32072 32869,32072,32940,32074 32950,32073,33019,32074 32868,32075,32940,32075 32949,32075,33018,32076 32868,32076,32939,32076 32949,32077,33017,32077 32867,32077,32938,32077 32867,32078,32940,32078 32950,32078,33016,32078 32949,32079,32960,32079 32962,32079,33015,32079 32866,32079,32944,32079 32947,32080,33014,32080 32866,32080,32945,32080 32866,32081,33013,32081 32865,32082,33012,32083 32865,32084,33011,32086 32866,32087,33010,32088 32866,32089,33009,32089 32867,32090,33009,32090 32868,32091,33008,32091 32870,32092,33008,32092 32871,32093,33008,32093 32872,32094,33008,32094 32873,32095,33008,32096 32874,32097,33008,32098 32875,32099,33008,32100 32876,32101,33008,32101 32875,32102,33008,32104 32874,32105,33008,32105 32874,32106,33007,32106 32873,32107,33007,32108 32873,32109,33006,32109 32911,32110,33006,32110 32873,32110,32908,32110 32872,32111,33006,32111 32870,32112,33006,32112 32869,32113,33005,32113 32868,32114,33004,32114 32866,32115,33003,32115 32864,32116,33002,32116 32862,32117,33000,32117 32862,32118,32999,32118 32862,32119,32996,32119 32861,32120,32994,32120 32861,32121,32993,32121 32860,32122,32992,32122 32858,32123,32990,32123 32857,32124,32986,32124 32857,32125,32982,32125 32857,32126,32980,32126 32857,32127,32978,32127 32857,32128,32977,32128 32857,32129,32976,32129 32857,32130,32975,32130 32858,32131,32974,32131 32859,32132,32974,32132 32885,32133,32972,32133 32860,32133,32882,32134 32885,32134,32967,32134 32886,32135,32961,32135 32861,32135,32881,32135 32863,32136,32878,32136 32887,32136,32953,32136 32865,32137,32878,32137 32887,32137,32952,32137 32887,32138,32950,32138 32868,32138,32876,32138 32886,32139,32949,32139 32885,32140,32949,32140 32885,32141,32948,32141 32884,32142,32948,32142 32883,32143,32947,32143 32882,32144,32947,32145 32883,32146,32947,32146 32884,32147,32947,32147 32885,32148,32947,32148 32886,32149,32947,32149 32887,32150,32947,32150 32888,32151,32947,32151 32889,32152,32947,32153 32993,32153,32993,32154 32891,32154,32896,32154 32903,32154,32947,32154 32892,32155,32894,32155 32913,32155,32947,32155 32991,32155,32993,32155 32990,32156,32994,32156 32917,32156,32947,32156 32920,32157,32947,32157 32990,32157,32995,32157 32993,32158,32993,32158 32924,32158,32946,32158 32926,32159,32946,32159 32992,32159,32997,32159 32991,32160,32996,32160 32928,32160,32945,32160 32929,32161,32945,32161 32929,32162,32944,32162 32992,32161,32997,32163 32930,32163,32943,32163 32932,32164,32942,32164 32935,32165,32939,32165", + }, + [279] = { -- Ice Islands (2150 tiles, 107 rects) + name = "Ice Islands", + mainArea = 3, + bbox = { x1 = 32098, y1 = 31571, x2 = 32262, y2 = 31753 }, + rects = "32126,31571,32130,31571 32125,31572,32131,31573 32116,31573,32117,31573 32123,31574,32131,31574 32114,31574,32120,31574 32257,31574,32258,31574 32244,31575,32246,31575 32112,31575,32133,31575 32256,31575,32259,31576 32111,31576,32134,31576 32230,31576,32231,31576 32243,31576,32248,31576 32111,31577,32136,31577 32242,31577,32249,31577 32229,31577,32233,31577 32240,31578,32253,31578 32111,31578,32139,31578 32256,31577,32258,31579 32228,31578,32234,31579 32239,31579,32254,31579 32112,31579,32140,31579 32144,31579,32146,31579 32239,31580,32258,31580 32228,31580,32236,31580 32114,31580,32147,31580 32115,31581,32149,31581 32228,31581,32258,31581 32229,31582,32257,31582 32116,31582,32150,31583 32229,31583,32258,31583 32229,31584,32259,31584 32117,31584,32150,31585 32230,31585,32235,31585 32237,31585,32259,31586 32118,31586,32149,31586 32120,31587,32151,31587 32237,31587,32260,31587 32119,31588,32152,31588 32237,31588,32261,31588 32238,31589,32261,31589 32118,31589,32152,31590 32239,31590,32261,31590 32119,31591,32151,31591 32238,31591,32261,31591 32120,31592,32150,31592 32237,31592,32261,31593 32121,31593,32149,31593 32237,31594,32262,31594 32120,31594,32148,31594 32119,31595,32148,31595 32238,31595,32262,31595 32237,31596,32261,31596 32118,31596,32148,31597 32237,31597,32240,31597 32244,31597,32260,31597 32246,31598,32260,31598 32238,31598,32239,31598 32118,31598,32147,31598 32119,31599,32147,31599 32256,31599,32259,31599 32247,31599,32254,31599 32120,31600,32146,31600 32249,31600,32254,31601 32125,31601,32142,31601 32126,31602,32142,31602 32249,31602,32253,31602 32129,31603,32142,31603 32250,31603,32251,31603 32129,31604,32141,31604 32129,31605,32139,31605 32130,31606,32139,31606 32132,31607,32138,31607 32132,31608,32136,31608 32133,31609,32135,31609 32106,31724,32107,31724 32113,31725,32114,31725 32105,31725,32108,31725 32103,31726,32109,31726 32111,31726,32115,31726 32102,31727,32120,31727 32101,31728,32121,31728 32100,31729,32121,31729 32100,31730,32124,31730 32100,31731,32126,31731 32099,31732,32127,31732 32098,31733,32128,31733 32098,31734,32108,31734 32099,31735,32107,31735 32110,31734,32128,31736 32100,31736,32104,31736 32106,31737,32128,31737 32100,31737,32103,31738 32101,31739,32102,31739 32105,31738,32127,31741 32103,31742,32126,31742 32102,31743,32125,31743 32102,31744,32124,31744 32102,31745,32122,31745 32102,31746,32121,31746 32103,31747,32120,31747 32105,31748,32119,31748 32106,31749,32120,31749 32106,31750,32121,31750 32107,31751,32121,31751 32117,31752,32121,31752 32110,31752,32113,31752 32119,31753,32120,31753", + }, + [280] = { -- Vega (3106 tiles, 93 rects) + name = "Vega", + mainArea = 3, + bbox = { x1 = 31936, y1 = 31673, x2 = 32026, y2 = 31741 }, + rects = "31979,31673,31982,31673 31978,31674,31983,31674 31976,31675,31984,31675 31993,31675,31994,31675 31997,31675,31998,31675 31992,31676,31999,31676 31975,31676,31985,31676 31989,31676,31990,31676 32004,31677,32006,31677 31975,31677,32000,31677 32003,31678,32007,31678 31975,31678,32001,31678 31975,31679,32007,31679 31976,31680,32007,31680 31977,31681,32007,31681 31976,31682,32007,31683 31976,31684,32008,31684 31976,31685,32009,31685 31974,31686,32010,31686 31973,31687,32010,31688 32016,31688,32019,31688 31973,31689,32013,31689 32015,31689,32020,31689 31970,31690,32026,31690 31969,31691,32026,31693 31970,31694,32026,31694 31971,31695,32019,31695 31972,31696,32018,31696 31964,31697,31966,31697 31976,31697,32017,31697 31974,31698,32016,31698 31962,31698,31967,31698 31973,31699,32015,31699 31961,31699,31968,31699 31961,31700,31969,31700 31972,31700,32014,31701 31961,31701,31970,31701 31961,31702,32014,31702 31951,31703,31958,31703 31960,31703,32015,31703 31949,31704,32016,31704 31948,31705,32016,31705 31943,31706,31945,31706 31948,31706,32015,31706 31940,31707,32015,31707 31939,31708,32016,31708 31938,31709,32016,31710 31939,31711,32016,31711 31936,31712,32016,31713 31936,31714,32015,31714 31938,31715,32001,31715 32003,31715,32014,31715 31936,31715,31936,31715 31939,31716,32001,31716 32004,31716,32013,31716 31944,31717,32000,31717 32005,31717,32010,31717 31942,31718,31987,31718 31991,31718,31996,31718 32006,31718,32010,31718 31941,31719,31984,31720 31992,31719,31996,31720 32008,31719,32011,31720 31993,31721,31997,31721 32009,31721,32010,31721 31940,31721,31984,31721 31994,31722,31998,31722 31940,31722,31983,31722 31994,31723,31999,31723 31940,31723,31982,31723 31939,31724,31982,31724 31995,31724,31999,31724 31997,31725,31998,31725 31939,31725,31981,31725 31940,31726,31981,31726 31942,31727,31975,31727 31978,31727,31981,31728 31943,31728,31976,31728 31944,31729,31982,31729 31945,31730,31982,31730 31945,31731,31973,31731 31978,31731,31982,31732 31946,31732,31972,31732 31945,31733,31970,31733 31979,31733,31981,31733 31944,31734,31967,31734 31944,31735,31965,31735 31945,31736,31964,31736 31946,31737,31959,31737 31946,31738,31954,31738 31947,31739,31954,31739 31948,31740,31954,31740 31950,31741,31953,31741", + }, + [281] = { -- Senja (2967 tiles, 122 rects) + name = "Senja", + mainArea = 3, + bbox = { x1 = 32117, y1 = 31615, x2 = 32201, y2 = 31689 }, + rects = "32174,31615,32179,31615 32170,31616,32180,31616 32190,31617,32191,31617 32169,31617,32180,31618 32189,31618,32192,31618 32186,31618,32187,31618 32185,31619,32193,31619 32168,31619,32180,31619 32183,31620,32194,31620 32167,31620,32180,31621 32182,31621,32195,31621 32167,31622,32196,31623 32159,31624,32196,31624 32157,31625,32196,31625 32156,31626,32196,31626 32154,31627,32196,31627 32153,31628,32197,31628 32152,31629,32198,31629 32150,31630,32199,31630 32149,31631,32199,31631 32149,31632,32200,31632 32150,31633,32200,31635 32150,31636,32199,31636 32151,31637,32199,31637 32150,31638,32198,31638 32150,31639,32200,31639 32151,31640,32201,31640 32152,31641,32201,31641 32149,31642,32195,31642 32197,31642,32200,31642 32143,31643,32146,31643 32148,31643,32194,31643 32142,31644,32191,31644 32142,31645,32192,31645 32139,31646,32192,31646 32137,31647,32192,31647 32136,31648,32191,31648 32136,31649,32190,31649 32136,31650,32191,31650 32135,31651,32192,31651 32134,31652,32193,31652 32127,31653,32130,31653 32157,31653,32193,31654 32134,31653,32152,31654 32120,31654,32121,31654 32124,31654,32131,31654 32119,31655,32132,31655 32157,31655,32192,31655 32149,31655,32151,31655 32134,31655,32144,31655 32157,31656,32194,31656 32149,31656,32152,31656 32118,31656,32144,31656 32149,31657,32182,31657 32185,31657,32194,31657 32117,31657,32144,31658 32150,31658,32152,31658 32191,31658,32194,31658 32162,31658,32170,31658 32172,31658,32172,31659 32118,31659,32144,31659 32180,31658,32180,31660 32176,31658,32176,31660 32149,31659,32152,31660 32120,31660,32144,31660 32157,31658,32157,31661 32162,31659,32169,31661 32172,31661,32173,31661 32179,31661,32180,31661 32123,31661,32152,31661 32175,31661,32177,31661 32127,31662,32154,31662 32156,31662,32159,31662 32161,31662,32170,31662 32172,31662,32172,31663 32123,31663,32169,31663 32180,31662,32180,31664 32124,31664,32168,31664 32137,31665,32157,31665 32180,31665,32181,31665 32124,31665,32135,31665 32159,31665,32169,31665 32172,31665,32172,31666 32163,31666,32169,31666 32124,31666,32133,31666 32180,31666,32182,31666 32159,31666,32159,31667 32163,31667,32181,31667 32123,31667,32133,31667 32163,31668,32170,31668 32175,31668,32176,31668 32138,31666,32153,31669 32163,31669,32167,31669 32159,31669,32159,31669 32131,31668,32133,31670 32136,31670,32167,31670 32131,31671,32131,31671 32133,31671,32168,31671 32150,31672,32168,31672 32136,31672,32145,31673 32150,31673,32170,31673 32136,31674,32144,31674 32150,31674,32171,31675 32136,31675,32145,31675 32131,31676,32140,31676 32142,31676,32170,31676 32144,31677,32168,31677 32138,31677,32138,31679 32144,31678,32167,31680 32144,31681,32163,31681 32138,31681,32138,31682 32144,31682,32162,31682 32134,31683,32146,31683 32151,31683,32162,31683 32152,31684,32162,31684 32132,31684,32146,31685 32154,31685,32161,31685 32157,31686,32159,31686 32132,31686,32143,31686 32132,31687,32142,31687 32133,31688,32141,31688 32134,31689,32140,31689", + }, + [282] = { -- Goroma (11102 tiles, 248 rects) + name = "Goroma", + mainArea = 17, + bbox = { x1 = 32009, y1 = 32515, x2 = 32165, y2 = 32659 }, + rects = "32108,32515,32109,32515 32107,32516,32110,32516 32106,32517,32111,32517 32106,32518,32112,32518 32107,32519,32112,32519 32116,32519,32117,32519 32110,32520,32118,32521 32111,32522,32118,32522 32115,32523,32118,32524 32136,32524,32140,32524 32113,32525,32117,32525 32135,32525,32141,32525 32125,32525,32126,32525 32124,32526,32127,32526 32112,32526,32120,32526 32135,32526,32142,32527 32111,32527,32127,32527 32134,32528,32142,32528 32110,32528,32128,32529 32134,32529,32141,32529 32131,32530,32142,32530 32111,32530,32128,32530 32111,32531,32142,32531 32107,32532,32142,32532 32106,32533,32142,32533 32105,32534,32142,32534 32101,32535,32141,32535 32145,32536,32147,32536 32073,32536,32074,32536 32100,32536,32142,32537 32144,32537,32148,32537 32072,32537,32077,32537 32096,32538,32148,32538 32071,32538,32077,32538 32095,32539,32149,32539 32070,32539,32077,32539 32151,32540,32152,32540 32070,32540,32079,32540 32094,32540,32149,32540 32071,32541,32079,32541 32093,32541,32153,32541 32072,32542,32079,32542 32091,32542,32154,32542 32090,32543,32154,32544 32060,32544,32061,32544 32091,32545,32157,32545 32057,32545,32062,32545 32073,32543,32079,32546 32093,32546,32161,32546 32053,32546,32063,32546 32073,32547,32082,32547 32093,32547,32162,32548 32052,32547,32064,32548 32066,32548,32084,32548 32094,32549,32161,32549 32088,32550,32090,32550 32092,32550,32162,32550 32034,32550,32035,32550 32053,32549,32085,32551 32033,32551,32036,32551 32087,32551,32163,32551 32045,32552,32049,32552 32052,32552,32164,32552 32032,32552,32037,32553 32052,32553,32165,32553 32044,32553,32050,32553 32040,32553,32041,32553 32032,32554,32042,32554 32033,32555,32042,32555 32044,32554,32165,32556 32034,32556,32042,32556 32034,32557,32165,32557 32033,32558,32165,32558 32031,32559,32165,32559 32030,32560,32165,32560 32030,32561,32155,32561 32030,32562,32154,32562 32031,32563,32154,32564 32032,32565,32154,32565 32031,32566,32154,32567 32157,32561,32165,32569 32031,32568,32155,32569 32023,32570,32024,32570 32031,32570,32165,32570 32021,32571,32025,32571 32031,32571,32161,32571 32028,32572,32161,32572 32020,32572,32026,32572 32157,32573,32161,32573 32020,32573,32154,32573 32021,32574,32154,32574 32158,32574,32160,32574 32020,32575,32153,32576 32020,32577,32152,32577 32021,32578,32152,32579 32022,32580,32151,32580 32021,32581,32150,32581 32021,32582,32149,32582 32021,32583,32140,32583 32143,32583,32146,32583 32021,32584,32139,32585 32060,32586,32139,32586 32021,32586,32057,32586 32071,32587,32129,32587 32020,32587,32053,32587 32060,32587,32067,32587 32135,32587,32139,32588 32060,32588,32065,32588 32017,32588,32053,32588 32014,32588,32015,32588 32074,32588,32128,32588 32060,32589,32064,32589 32136,32589,32138,32589 32076,32589,32128,32589 32013,32589,32053,32590 32077,32590,32127,32590 32060,32590,32065,32591 32078,32591,32127,32591 32013,32591,32050,32591 32078,32592,32126,32592 32061,32592,32065,32592 32014,32592,32050,32593 32010,32593,32011,32593 32078,32593,32115,32593 32118,32593,32123,32593 32119,32594,32123,32594 32077,32594,32115,32594 32009,32594,32050,32595 32075,32595,32115,32595 32120,32595,32123,32595 32121,32596,32122,32596 32082,32596,32115,32596 32010,32596,32054,32596 32075,32596,32078,32596 32062,32593,32065,32597 32084,32597,32115,32597 32074,32597,32078,32597 32009,32597,32054,32598 32085,32598,32114,32598 32073,32598,32078,32598 32010,32599,32055,32599 32073,32599,32077,32599 32073,32600,32076,32600 32011,32600,32043,32600 32052,32600,32054,32600 32086,32599,32113,32601 32012,32601,32044,32601 32086,32602,32112,32602 32014,32602,32044,32603 32086,32603,32114,32603 32013,32604,32045,32604 32087,32604,32115,32605 32079,32605,32082,32605 32124,32605,32125,32605 32119,32606,32121,32606 32123,32606,32126,32606 32077,32606,32115,32606 32077,32607,32114,32607 32118,32607,32126,32607 32012,32605,32045,32608 32077,32608,32126,32608 32079,32609,32127,32609 32013,32609,32047,32610 32080,32610,32127,32610 32014,32611,32054,32611 32083,32611,32126,32611 32084,32612,32124,32612 32014,32612,32027,32612 32029,32612,32054,32613 32085,32613,32124,32613 32014,32613,32026,32613 32029,32614,32055,32614 32085,32614,32123,32614 32015,32614,32018,32614 32021,32614,32024,32614 32030,32615,32046,32615 32050,32615,32056,32615 32085,32615,32120,32615 32051,32616,32056,32616 32085,32616,32118,32617 32052,32617,32056,32617 32053,32618,32056,32618 32084,32618,32118,32618 32033,32616,32046,32619 32083,32619,32119,32619 32070,32618,32073,32620 32082,32620,32119,32620 32021,32620,32024,32620 32033,32620,32048,32621 32078,32621,32119,32621 32070,32621,32076,32621 32020,32621,32025,32621 32031,32622,32049,32622 32070,32622,32119,32622 32020,32622,32026,32622 32019,32623,32055,32623 32070,32623,32118,32624 32019,32624,32057,32624 32025,32625,32057,32625 32020,32625,32023,32625 32070,32625,32117,32625 32069,32626,32117,32626 32021,32626,32022,32626 32025,32626,32059,32626 32026,32627,32062,32627 32068,32627,32117,32627 32028,32628,32116,32628 32028,32629,32115,32630 32028,32631,32116,32631 32029,32632,32031,32632 32108,32632,32116,32632 32036,32632,32103,32633 32110,32633,32118,32633 32037,32634,32104,32634 32033,32635,32104,32635 32111,32634,32119,32636 32032,32636,32104,32636 32032,32637,32103,32637 32112,32637,32119,32637 32039,32638,32102,32638 32033,32638,32036,32638 32113,32638,32118,32638 32114,32639,32118,32639 32039,32639,32100,32640 32116,32640,32117,32640 32040,32641,32100,32641 32040,32642,32101,32642 32039,32643,32101,32645 32075,32646,32096,32646 32098,32646,32100,32646 32040,32646,32073,32647 32093,32647,32095,32647 32076,32647,32087,32647 32049,32648,32073,32648 32077,32648,32085,32648 32041,32648,32045,32648 32052,32649,32073,32649 32060,32650,32073,32650 32061,32651,32073,32652 32062,32653,32066,32653 32070,32653,32073,32653 32071,32654,32074,32654 32062,32654,32065,32654 32071,32655,32075,32655 32063,32655,32064,32655 32071,32656,32076,32657 32071,32658,32075,32658 32072,32659,32073,32659", + }, + [283] = { -- Ramoa (4682 tiles, 105 rects) + name = "Ramoa", + mainArea = 17, + bbox = { x1 = 31882, y1 = 32531, x2 = 31981, y2 = 32609 }, + rects = "31910,32531,31911,32531 31931,32531,31933,32531 31942,32532,31945,32532 31930,32532,31934,32532 31909,32532,31912,32533 31916,32533,31919,32533 31928,32533,31934,32533 31941,32533,31946,32533 31927,32534,31934,32534 31915,32534,31920,32534 31941,32534,31948,32534 31938,32534,31939,32534 31910,32534,31912,32534 31926,32535,31934,32535 31936,32535,31949,32535 31910,32535,31920,32535 31910,32536,31921,32536 31926,32536,31950,32536 31911,32537,31922,32538 31925,32537,31951,32538 31958,32539,31959,32539 31911,32539,31950,32539 31957,32540,31960,32540 31912,32540,31950,32540 31914,32541,31961,32541 31913,32542,31961,32543 31906,32543,31911,32543 31905,32544,31962,32544 31904,32545,31962,32545 31902,32546,31963,32546 31901,32547,31963,32548 31900,32549,31962,32549 31899,32550,31964,32550 31899,32551,31968,32551 31898,32552,31969,32552 31894,32553,31895,32553 31897,32553,31969,32553 31893,32554,31968,32554 31893,32555,31969,32555 31893,32556,31970,32556 31892,32557,31970,32557 31892,32558,31971,32558 31893,32559,31894,32559 31896,32559,31972,32560 31896,32561,31971,32562 31895,32563,31971,32563 31894,32564,31971,32564 31893,32565,31972,32567 31894,32568,31973,32568 31895,32569,31974,32569 31896,32570,31978,32570 31902,32571,31979,32571 31902,32572,31980,32572 31902,32573,31981,32573 31901,32574,31981,32574 31897,32575,31981,32575 31896,32576,31981,32578 31895,32579,31980,32579 31894,32580,31974,32580 31893,32581,31974,32581 31892,32582,31974,32582 31892,32583,31973,32583 31967,32584,31968,32584 31963,32584,31965,32584 31892,32584,31961,32584 31893,32585,31961,32585 31893,32586,31960,32586 31885,32586,31888,32586 31893,32587,31957,32587 31884,32587,31889,32587 31883,32588,31889,32588 31893,32588,31958,32588 31882,32589,31891,32589 31893,32589,31959,32589 31882,32590,31959,32591 31957,32592,31958,32592 31883,32592,31888,32592 31892,32592,31905,32592 31907,32592,31955,32592 31907,32593,31950,32593 31952,32593,31953,32593 31893,32593,31896,32593 31898,32593,31905,32593 31898,32594,31904,32594 31908,32594,31947,32594 31907,32595,31947,32595 31899,32595,31902,32595 31907,32596,31946,32596 31907,32597,31945,32597 31908,32598,31944,32598 31910,32599,31944,32599 31910,32600,31945,32601 31935,32602,31945,32602 31910,32602,31931,32602 31911,32603,31931,32603 31935,32603,31938,32603 31941,32603,31945,32603 31914,32604,31920,32604 31922,32604,31932,32604 31936,32604,31937,32604 31943,32604,31944,32604 31923,32605,31933,32605 31924,32606,31933,32607 31924,32608,31932,32608 31925,32609,31930,32609", + }, + [284] = { -- Malada (3213 tiles, 115 rects) + name = "Malada", + mainArea = 17, + bbox = { x1 = 31974, y1 = 32674, x2 = 32052, y2 = 32743 }, + rects = "32018,32674,32019,32674 32017,32675,32020,32676 32009,32677,32011,32677 32014,32677,32015,32677 32017,32677,32021,32677 32008,32678,32022,32678 32007,32679,32023,32679 32007,32680,32024,32680 32008,32681,32026,32681 32008,32682,32028,32682 32006,32683,32029,32683 32005,32684,32029,32684 31998,32685,31999,32685 32004,32685,32029,32685 32019,32686,32029,32686 31997,32686,32000,32686 32003,32686,32016,32687 32019,32687,32028,32687 31996,32687,32001,32687 31996,32688,32016,32688 32042,32688,32045,32688 32021,32688,32028,32689 31995,32689,32017,32689 31987,32690,31988,32690 31994,32690,32020,32690 32022,32690,32037,32690 32041,32689,32046,32691 31994,32691,32038,32691 31986,32691,31989,32692 31991,32692,32038,32692 32042,32692,32046,32692 31986,32693,32045,32693 31987,32694,32045,32694 31988,32695,32046,32695 32002,32696,32046,32696 32004,32697,32047,32697 31989,32696,31996,32698 32004,32698,32048,32699 31990,32699,31998,32699 32005,32700,32049,32700 31991,32700,32001,32700 31990,32701,32001,32701 32005,32701,32050,32701 31989,32702,32050,32703 31990,32704,32049,32704 31989,32705,32033,32705 32035,32705,32045,32705 32035,32706,32046,32706 31989,32706,32032,32706 32035,32707,32051,32707 32019,32707,32030,32707 31989,32707,32016,32707 32018,32708,32030,32708 32035,32708,32052,32708 31988,32708,32016,32708 31975,32708,31977,32708 31974,32709,31978,32709 31988,32709,32013,32709 32018,32709,32052,32709 31987,32710,32051,32710 31986,32711,32050,32711 31984,32712,32049,32712 31974,32710,31979,32713 31981,32713,32049,32713 31974,32714,32049,32714 31974,32715,31994,32715 32000,32715,32049,32715 32000,32716,32048,32716 31974,32716,31978,32716 31981,32716,31994,32716 31981,32717,31997,32717 31975,32717,31978,32717 32000,32717,32045,32717 31976,32718,31977,32718 31980,32718,32045,32718 31980,32719,32044,32719 32015,32720,32042,32720 31980,32720,32013,32721 32016,32721,32042,32722 31979,32722,32011,32722 32016,32723,32041,32723 31978,32723,32010,32724 32032,32724,32041,32724 32016,32724,32029,32724 32015,32725,32027,32725 32035,32725,32042,32725 31979,32725,32010,32725 31980,32726,32026,32726 32036,32726,32042,32726 31983,32727,31992,32727 31994,32727,32025,32728 32036,32727,32043,32728 31984,32728,31991,32728 32035,32729,32043,32729 31994,32729,32027,32729 31985,32729,31990,32729 32032,32730,32043,32730 31988,32730,31989,32730 31993,32730,32029,32730 31993,32731,32043,32734 31991,32735,32036,32735 32040,32735,32042,32735 31990,32736,32033,32736 31999,32737,32032,32737 31990,32737,31997,32737 32004,32738,32023,32738 31991,32738,31994,32738 32025,32738,32032,32738 32026,32739,32031,32739 32005,32739,32022,32739 32004,32740,32021,32740 32004,32741,32020,32741 32005,32742,32009,32742 32012,32742,32013,32742 32006,32743,32008,32743", + }, + [285] = { -- Kharos (1801 tiles, 62 rects) + name = "Kharos", + mainArea = 17, + bbox = { x1 = 32097, y1 = 32663, x2 = 32148, y2 = 32720 }, + rects = "32118,32663,32119,32663 32117,32664,32120,32664 32117,32665,32121,32665 32116,32666,32121,32666 32115,32667,32124,32667 32115,32668,32126,32668 32109,32668,32111,32668 32128,32668,32129,32668 32108,32669,32130,32670 32107,32671,32130,32671 32136,32671,32139,32671 32106,32672,32131,32672 32135,32672,32140,32672 32134,32673,32140,32673 32106,32673,32132,32673 32105,32674,32140,32675 32098,32675,32099,32675 32097,32676,32140,32677 32097,32678,32142,32678 32097,32679,32143,32681 32098,32682,32142,32682 32100,32683,32144,32683 32102,32684,32145,32684 32101,32685,32145,32685 32100,32686,32145,32686 32099,32687,32145,32687 32098,32688,32147,32688 32098,32689,32148,32689 32099,32690,32148,32690 32099,32691,32147,32691 32100,32692,32146,32692 32101,32693,32144,32693 32100,32694,32144,32695 32101,32696,32143,32696 32102,32697,32142,32697 32104,32698,32141,32698 32105,32699,32141,32699 32107,32700,32140,32701 32103,32702,32141,32702 32102,32703,32141,32703 32134,32704,32140,32704 32102,32704,32132,32704 32136,32705,32139,32705 32101,32705,32132,32705 32100,32706,32131,32706 32099,32707,32131,32707 32109,32708,32132,32708 32099,32708,32107,32709 32112,32709,32132,32709 32114,32710,32132,32710 32100,32710,32106,32710 32114,32711,32130,32711 32102,32711,32106,32712 32114,32712,32119,32712 32123,32712,32124,32712 32126,32712,32130,32712 32103,32713,32105,32713 32115,32713,32120,32715 32116,32716,32120,32716 32117,32717,32121,32717 32118,32718,32121,32719 32119,32720,32120,32720", + }, + [286] = { -- Cormaya (8168 tiles, 343 rects) + name = "Cormaya", + mainArea = 7, + bbox = { x1 = 33249, y1 = 31941, x2 = 33369, y2 = 32058 }, + rects = "33296,31941,33298,31941 33295,31942,33299,31942 33295,31943,33300,31943 33295,31944,33301,31944 33315,31944,33317,31944 33322,31945,33326,31945 33312,31945,33320,31945 33294,31945,33301,31946 33310,31946,33327,31946 33295,31947,33301,31947 33309,31947,33327,31947 33296,31948,33302,31948 33308,31948,33327,31948 33307,31949,33327,31949 33298,31949,33303,31949 33307,31950,33329,31950 33299,31950,33303,31950 33300,31951,33332,31951 33300,31952,33333,31952 33299,31953,33333,31954 33287,31954,33287,31954 33300,31955,33333,31955 33275,31955,33278,31955 33299,31956,33333,31956 33274,31956,33283,31956 33305,31957,33332,31957 33271,31957,33284,31957 33266,31957,33267,31957 33335,31957,33338,31957 33334,31958,33339,31958 33305,31958,33331,31958 33286,31955,33288,31959 33299,31957,33299,31959 33270,31958,33284,31959 33265,31958,33268,31959 33306,31959,33331,31959 33292,31959,33296,31959 33333,31959,33339,31960 33321,31960,33331,31960 33265,31960,33284,31960 33315,31960,33319,31960 33311,31960,33313,31960 33306,31960,33309,31960 33291,31960,33299,31961 33286,31961,33287,31961 33265,31961,33283,31961 33322,31961,33331,31961 33305,31961,33308,31961 33333,31961,33338,31962 33285,31962,33288,31962 33291,31962,33300,31962 33304,31962,33308,31962 33266,31962,33283,31962 33312,31961,33312,31963 33316,31961,33316,31963 33322,31962,33330,31963 33332,31963,33337,31963 33285,31963,33289,31963 33292,31963,33308,31963 33268,31963,33283,31963 33271,31964,33283,31964 33332,31964,33339,31964 33285,31964,33310,31964 33316,31964,33319,31964 33321,31964,33329,31964 33312,31964,33314,31964 33342,31965,33344,31965 33347,31965,33348,31965 33351,31965,33357,31965 33331,31965,33340,31965 33296,31965,33329,31966 33272,31965,33283,31966 33296,31967,33310,31967 33316,31967,33319,31967 33321,31967,33329,31967 33273,31967,33283,31967 33312,31967,33314,31967 33285,31965,33288,31968 33331,31966,33358,31968 33297,31968,33308,31968 33322,31968,33329,31968 33277,31968,33283,31968 33286,31969,33288,31969 33322,31969,33328,31969 33312,31968,33312,31970 33316,31968,33316,31970 33296,31969,33308,31970 33276,31969,33283,31970 33331,31969,33357,31970 33287,31970,33288,31970 33362,31970,33363,31970 33322,31970,33325,31970 33327,31971,33359,31971 33287,31971,33291,31971 33320,31971,33324,31971 33311,31971,33313,31971 33361,31971,33364,31971 33293,31971,33309,31971 33276,31971,33284,31971 33315,31971,33318,31971 33276,31972,33285,31972 33326,31972,33368,31972 33287,31972,33323,31972 33292,31973,33319,31973 33287,31973,33290,31973 33277,31973,33285,31973 33325,31973,33369,31973 33322,31974,33369,31974 33294,31974,33307,31974 33278,31974,33285,31974 33309,31974,33319,31974 33277,31975,33285,31975 33321,31975,33368,31975 33271,31975,33271,31975 33271,31976,33273,31976 33275,31976,33285,31976 33287,31974,33288,31977 33312,31975,33319,31977 33294,31975,33305,31977 33321,31976,33367,31977 33294,31978,33304,31978 33287,31978,33287,31978 33313,31978,33319,31978 33277,31977,33285,31979 33321,31978,33357,31979 33361,31978,33366,31979 33313,31979,33318,31979 33287,31979,33288,31980 33294,31979,33305,31980 33361,31980,33365,31980 33278,31980,33284,31980 33320,31980,33357,31981 33312,31980,33318,31981 33362,31981,33364,31981 33287,31981,33289,31981 33277,31981,33283,31981 33293,31981,33305,31981 33291,31981,33291,31981 33271,31977,33271,31982 33278,31982,33308,31982 33310,31982,33317,31982 33320,31982,33358,31983 33271,31983,33273,31983 33275,31983,33315,31983 33319,31984,33359,31984 33273,31984,33311,31984 33318,31985,33359,31985 33266,31985,33269,31985 33274,31985,33309,31985 33265,31986,33271,31986 33318,31986,33358,31986 33274,31986,33282,31986 33284,31986,33309,31986 33312,31986,33314,31986 33258,31987,33259,31987 33286,31987,33296,31987 33298,31987,33308,31987 33274,31987,33280,31988 33311,31987,33357,31988 33265,31987,33272,31988 33304,31988,33308,31988 33287,31988,33290,31988 33257,31988,33261,31988 33299,31988,33299,31989 33304,31989,33357,31989 33286,31989,33290,31989 33257,31989,33271,31989 33274,31989,33279,31989 33258,31990,33271,31990 33304,31990,33356,31990 33287,31990,33290,31990 33295,31988,33295,31991 33275,31990,33280,31991 33259,31991,33272,31991 33286,31991,33290,31991 33304,31991,33336,31991 33342,31991,33355,31991 33299,31991,33299,31991 33259,31992,33273,31992 33302,31992,33336,31992 33298,31992,33300,31992 33348,31992,33354,31992 33293,31992,33296,31992 33286,31992,33291,31993 33276,31992,33280,31993 33342,31993,33346,31993 33260,31993,33274,31993 33303,31993,33337,31993 33287,31994,33291,31994 33303,31994,33338,31994 33263,31994,33274,31994 33277,31994,33280,31994 33341,31994,33353,31994 33286,31995,33291,31995 33262,31995,33275,31995 33279,31995,33280,31995 33279,31996,33279,31996 33262,31996,33276,31996 33287,31996,33291,31996 33304,31995,33339,31997 33341,31995,33354,31998 33262,31997,33277,31998 33279,31997,33280,31998 33332,31998,33338,31998 33286,31997,33290,31999 33304,31998,33329,31999 33262,31999,33280,31999 33341,31999,33355,31999 33287,32000,33290,32000 33261,32000,33280,32000 33304,32000,33355,32000 33286,32001,33355,32001 33261,32001,33279,32001 33287,32002,33354,32002 33261,32002,33280,32002 33286,32003,33354,32003 33255,32003,33280,32003 33284,32004,33353,32004 33254,32004,33282,32004 33252,32005,33353,32005 33264,32006,33293,32006 33306,32006,33353,32006 33250,32006,33262,32006 33295,32006,33304,32006 33338,32007,33352,32007 33249,32007,33255,32007 33257,32007,33261,32007 33309,32007,33336,32008 33260,32008,33261,32008 33355,32008,33357,32008 33343,32008,33350,32008 33298,32007,33301,32009 33265,32007,33291,32009 33249,32008,33254,32009 33310,32009,33341,32009 33352,32009,33358,32009 33282,32010,33291,32010 33249,32010,33253,32010 33299,32010,33301,32010 33309,32010,33358,32010 33264,32010,33280,32010 33298,32011,33301,32011 33250,32011,33251,32011 33310,32011,33359,32011 33285,32011,33291,32011 33263,32011,33278,32011 33295,32012,33295,32012 33309,32012,33359,32012 33297,32012,33301,32012 33286,32012,33293,32012 33271,32012,33278,32012 33262,32012,33267,32013 33285,32013,33289,32013 33309,32013,33360,32013 33305,32013,33307,32013 33298,32013,33303,32013 33269,32013,33278,32013 33291,32013,33291,32013 33289,32014,33291,32014 33261,32014,33278,32014 33285,32014,33287,32014 33298,32014,33361,32015 33282,32015,33285,32015 33290,32015,33291,32015 33268,32015,33280,32015 33260,32015,33266,32016 33290,32016,33360,32016 33261,32017,33266,32017 33291,32017,33359,32017 33290,32018,33357,32018 33264,32018,33265,32018 33291,32019,33354,32019 33268,32016,33278,32020 33285,32016,33285,32020 33290,32020,33353,32020 33289,32021,33353,32021 33282,32021,33287,32021 33267,32021,33280,32021 33267,32022,33355,32022 33267,32023,33356,32023 33268,32024,33358,32024 33360,32024,33361,32024 33270,32025,33362,32025 33269,32026,33362,32027 33268,32028,33362,32028 33267,32029,33362,32030 33268,32031,33361,32031 33269,32032,33361,32032 33268,32033,33361,32033 33267,32034,33360,32034 33345,32035,33362,32035 33266,32035,33341,32035 33347,32036,33363,32036 33265,32036,33343,32036 33348,32037,33363,32037 33265,32037,33344,32037 33264,32038,33345,32038 33349,32038,33362,32038 33264,32039,33346,32039 33355,32039,33363,32040 33263,32040,33346,32040 33355,32041,33364,32041 33262,32041,33345,32041 33261,32042,33344,32042 33356,32042,33364,32042 33261,32043,33312,32044 33320,32043,33344,32044 33314,32044,33317,32044 33356,32043,33365,32045 33262,32045,33264,32045 33321,32045,33343,32045 33269,32045,33318,32046 33338,32046,33342,32046 33357,32046,33365,32046 33325,32046,33332,32046 33330,32047,33331,32047 33269,32047,33323,32047 33334,32047,33335,32047 33358,32047,33364,32047 33269,32048,33328,32048 33333,32048,33336,32048 33359,32048,33364,32048 33270,32049,33336,32049 33360,32049,33363,32049 33289,32050,33336,32050 33339,32050,33343,32050 33297,32051,33344,32051 33292,32051,33295,32051 33293,32052,33294,32052 33298,32052,33318,32052 33322,32052,33344,32052 33322,32053,33343,32053 33310,32053,33318,32053 33307,32053,33308,32053 33298,32053,33299,32053 33323,32054,33342,32054 33323,32055,33341,32055 33315,32054,33318,32056 33324,32056,33335,32056 33328,32057,33334,32057 33325,32057,33326,32057 33316,32057,33317,32057 33329,32058,33331,32058", + }, + [287] = { -- Inukaya (1326 tiles, 61 rects) + name = "Inukaya", + mainArea = 23, + bbox = { x1 = 32461, y1 = 31084, x2 = 32507, y2 = 31130 }, + rects = "32494,31084,32495,31084 32486,31084,32488,31084 32493,31085,32496,31085 32485,31085,32490,31085 32483,31086,32491,31086 32493,31086,32497,31086 32483,31087,32497,31088 32485,31089,32498,31089 32475,31088,32475,31090 32484,31090,32498,31090 32471,31091,32477,31091 32481,31091,32498,31091 32483,31092,32498,31092 32471,31092,32478,31092 32501,31092,32501,31093 32469,31093,32479,31093 32483,31093,32497,31093 32471,31094,32498,31094 32470,31095,32499,31095 32468,31096,32499,31096 32468,31097,32500,31097 32464,31098,32500,31098 32463,31099,32501,31099 32504,31099,32504,31100 32504,31101,32505,31101 32504,31102,32507,31102 32462,31100,32501,31104 32505,31103,32505,31104 32462,31105,32502,31105 32461,31106,32502,31106 32462,31107,32503,31107 32462,31108,32504,31109 32462,31110,32503,31110 32463,31111,32500,31111 32465,31112,32499,31113 32466,31114,32498,31114 32465,31115,32497,31115 32465,31116,32496,31116 32464,31117,32494,31117 32500,31116,32500,31118 32464,31118,32495,31118 32465,31119,32496,31119 32499,31119,32500,31119 32499,31120,32499,31120 32468,31120,32496,31120 32469,31121,32496,31121 32468,31122,32495,31123 32469,31124,32494,31124 32476,31125,32484,31125 32486,31125,32491,31125 32472,31126,32473,31126 32487,31126,32490,31126 32477,31126,32482,31126 32484,31127,32485,31127 32478,31127,32481,31127 32470,31127,32475,31127 32474,31128,32475,31128 32485,31128,32486,31128 32479,31128,32480,31128 32485,31129,32487,31129 32474,31129,32474,31130", + }, + [288] = { -- Isle of the Kings (1680 tiles, 56 rects) + name = "Isle of the Kings", + mainArea = 3, + bbox = { x1 = 32152, y1 = 31915, x2 = 32200, y2 = 31963 }, + rects = "32168,31915,32169,31915 32185,31916,32188,31916 32167,31916,32171,31916 32184,31917,32189,31917 32167,31917,32172,31917 32167,31918,32173,31918 32183,31918,32189,31918 32163,31919,32164,31919 32158,31919,32160,31919 32167,31919,32176,31919 32183,31919,32188,31919 32157,31920,32177,31920 32182,31920,32186,31920 32156,31921,32178,31921 32181,31921,32186,31921 32155,31922,32187,31923 32189,31924,32191,31924 32156,31924,32187,31924 32156,31925,32193,31925 32155,31926,32194,31926 32154,31927,32195,31928 32154,31929,32196,31929 32157,31930,32196,31931 32158,31932,32197,31932 32157,31933,32198,31933 32156,31934,32199,31935 32157,31936,32199,31936 32157,31937,32198,31940 32158,31941,32199,31941 32160,31942,32200,31943 32159,31944,32200,31944 32158,31945,32199,31945 32158,31946,32198,31946 32154,31947,32199,31947 32153,31948,32199,31948 32152,31949,32200,31950 32196,31951,32199,31951 32152,31951,32191,31951 32197,31952,32198,31952 32152,31952,32190,31952 32153,31953,32189,31953 32155,31954,32188,31954 32155,31955,32194,31955 32156,31956,32194,31956 32160,31957,32195,31957 32161,31958,32164,31958 32167,31958,32194,31958 32173,31959,32179,31959 32167,31959,32171,31959 32186,31959,32194,31959 32173,31960,32178,31960 32168,31960,32170,31960 32181,31959,32184,31961 32173,31961,32177,31962 32183,31962,32184,31962 32174,31963,32176,31963", + }, + [289] = { -- Bittermor (8488 tiles, 229 rects) + name = "Bittermor", + mainArea = 23, + bbox = { x1 = 31901, y1 = 31195, x2 = 32070, y2 = 31362 }, + rects = "32020,31195,32021,31195 32018,31196,32024,31196 32016,31197,32027,31197 32016,31198,32028,31198 32015,31199,32028,31199 32014,31200,32028,31201 32013,31202,32028,31203 32014,31204,32028,31205 32016,31206,32028,31206 32016,31207,32027,31207 32017,31208,32027,31208 32022,31209,32027,31209 32022,31210,32026,31210 32022,31211,32027,31213 32021,31214,32026,31214 32021,31215,32025,31215 32021,31216,32024,31216 32020,31217,32024,31218 32018,31219,32023,31219 32001,31220,32022,31220 31997,31221,32022,31221 31996,31222,32020,31223 31987,31223,31987,31223 31987,31224,31990,31224 31993,31224,32019,31224 31987,31225,32019,31227 31986,31228,32019,31228 31984,31229,32020,31231 32065,31231,32070,31231 32064,31232,32070,31233 31983,31232,32020,31234 32063,31234,32070,31234 31983,31235,32019,31235 32063,31235,32069,31237 31982,31236,32018,31238 32060,31238,32069,31238 32055,31239,32069,31239 31982,31239,32017,31240 32051,31240,32069,31241 31982,31241,32016,31241 32047,31242,32069,31242 31982,31242,32014,31242 32046,31243,32069,31243 31982,31243,32010,31243 31983,31244,32002,31244 32046,31244,32068,31244 32044,31245,32066,31245 31984,31245,31998,31245 31985,31246,31995,31246 32043,31246,32062,31246 32040,31247,32061,31247 31986,31247,31995,31247 31987,31248,31992,31248 32039,31248,32059,31248 32039,31249,32056,31249 31955,31249,31956,31249 31954,31250,31957,31250 31962,31250,31963,31250 32024,31250,32030,31250 32038,31250,32055,31250 31968,31250,31974,31250 31987,31249,31990,31251 32021,31251,32030,31251 32038,31251,32053,31251 31948,31251,31964,31251 31966,31251,31974,31251 32017,31252,32030,31252 32008,31252,32008,31252 32038,31252,32052,31252 31947,31252,31975,31252 32015,31253,32015,31253 31946,31253,31975,31253 32007,31253,32010,31253 32017,31253,32031,31253 32038,31253,32050,31253 32012,31253,32013,31254 32015,31254,32031,31254 32002,31254,32004,31254 32037,31254,32049,31254 32006,31254,32009,31254 31946,31254,31977,31254 31988,31252,31990,31255 32011,31255,32031,31255 32033,31255,32044,31255 32001,31255,32009,31255 31946,31255,31980,31255 31996,31255,31996,31255 31946,31256,31983,31256 31985,31256,31993,31256 31995,31256,31996,31256 32002,31256,32043,31256 31946,31257,32042,31257 31945,31258,32042,31258 31945,31259,32036,31259 32041,31259,32046,31259 31944,31260,32036,31260 32042,31260,32045,31262 31943,31261,32035,31262 32042,31263,32044,31263 31943,31263,32033,31263 31944,31264,32033,31264 32040,31264,32044,31265 31945,31265,32032,31265 32038,31266,32044,31266 31946,31266,32030,31267 32038,31267,32038,31267 32041,31267,32045,31267 31943,31268,32029,31268 32044,31268,32045,31268 32044,31269,32046,31269 31942,31269,32029,31269 31941,31270,32026,31270 32044,31270,32045,31271 31941,31271,32024,31272 32041,31272,32045,31272 32040,31273,32044,31273 31940,31273,32022,31273 32039,31274,32045,31274 31939,31274,32022,31275 32037,31275,32042,31275 32035,31276,32040,31276 31939,31276,32021,31277 31931,31277,31933,31277 32035,31277,32039,31277 32035,31278,32040,31278 31930,31278,31934,31278 31940,31278,32021,31279 31930,31279,31935,31279 32034,31279,32040,31279 31940,31280,32020,31280 32039,31280,32041,31280 32032,31280,32034,31280 31930,31280,31936,31280 31929,31281,31936,31281 32039,31281,32040,31281 31939,31281,32020,31282 32032,31281,32032,31282 31929,31282,31937,31282 32039,31282,32039,31282 31921,31282,31923,31282 31929,31283,32006,31283 31920,31283,31924,31284 32020,31283,32020,31285 31929,31284,32004,31285 31917,31285,31924,31285 31916,31286,32003,31286 31916,31287,32002,31287 32016,31287,32016,31287 31917,31288,31999,31288 32015,31288,32017,31288 32015,31289,32016,31290 31917,31289,31996,31290 31918,31291,31995,31291 31919,31292,31995,31292 31916,31293,31995,31293 31915,31294,31994,31294 31915,31295,31989,31295 31916,31296,31988,31297 31916,31298,31990,31298 31911,31299,31991,31299 31910,31300,31991,31301 31910,31302,31990,31302 31910,31303,31987,31303 31911,31304,31987,31304 31912,31305,31966,31305 31971,31305,31986,31305 31971,31306,31980,31306 31911,31306,31964,31306 31911,31307,31963,31307 31971,31307,31979,31307 31911,31308,31962,31308 31971,31308,31978,31309 31911,31309,31961,31309 31912,31310,31961,31310 31913,31311,31961,31311 31971,31310,31973,31312 31972,31313,31972,31313 31913,31312,31962,31314 31912,31315,31963,31315 31911,31316,31963,31316 31910,31317,31963,31318 31911,31319,31963,31319 31913,31320,31963,31321 31910,31322,31911,31322 31913,31322,31964,31322 31909,31323,31963,31323 31908,31324,31962,31325 31909,31326,31961,31326 31911,31327,31960,31327 31911,31328,31956,31328 31910,31329,31956,31330 31939,31331,31954,31331 31910,31331,31937,31331 31910,31332,31934,31332 31940,31332,31941,31332 31944,31332,31953,31332 31944,31333,31950,31333 31945,31334,31950,31334 31911,31333,31935,31335 31946,31335,31950,31335 31947,31336,31949,31336 31906,31336,31934,31336 31905,31337,31934,31337 31904,31338,31934,31338 31904,31339,31935,31339 31904,31340,31936,31340 31903,31341,31939,31341 31903,31342,31940,31343 31903,31344,31939,31344 31903,31345,31936,31347 31902,31348,31936,31348 31901,31349,31937,31349 31901,31350,31938,31351 31902,31352,31938,31352 31901,31353,31939,31353 31901,31354,31940,31354 31901,31355,31941,31355 31902,31356,31941,31356 31933,31357,31940,31357 31903,31357,31931,31357 31904,31358,31927,31358 31934,31358,31939,31358 31934,31359,31938,31359 31905,31359,31906,31359 31920,31359,31927,31359 31909,31359,31917,31359 31921,31360,31925,31360 31922,31361,31926,31361 31923,31362,31925,31362", + }, + [290] = { -- Ragnir (6417 tiles, 224 rects) + name = "Ragnir", + mainArea = 23, + bbox = { x1 = 32086, y1 = 31251, x2 = 32214, y2 = 31405 }, + rects = "32206,31251,32206,31251 32207,31253,32207,31253 32210,31256,32210,31256 32211,31257,32211,31257 32211,31258,32212,31259 32210,31260,32210,31260 32212,31260,32213,31260 32212,31261,32214,31261 32107,31264,32107,31264 32210,31264,32210,31264 32207,31264,32207,31264 32209,31265,32211,31265 32105,31265,32107,31265 32210,31266,32210,31266 32103,31266,32107,31266 32211,31267,32211,31267 32102,31267,32108,31267 32101,31268,32108,31268 32099,31269,32110,31269 32098,31270,32113,31270 32097,31271,32115,31271 32205,31271,32205,31271 32207,31271,32207,31271 32095,31272,32116,31272 32206,31272,32207,31272 32096,31273,32117,31273 32096,31274,32118,31274 32096,31275,32121,31275 32202,31277,32202,31277 32202,31278,32203,31278 32096,31276,32123,31279 32206,31282,32206,31282 32202,31283,32202,31283 32205,31283,32205,31283 32096,31280,32126,31284 32202,31284,32204,31284 32197,31287,32198,31287 32097,31285,32127,31288 32196,31288,32196,31288 32196,31289,32197,31289 32096,31289,32128,31290 32197,31290,32197,31290 32096,31291,32129,31291 32096,31292,32130,31293 32096,31294,32131,31294 32096,31295,32129,31296 32096,31297,32128,31297 32092,31298,32128,31298 32092,31299,32129,31299 32093,31300,32132,31300 32190,31300,32190,31300 32189,31301,32191,31301 32188,31302,32190,31302 32094,31301,32133,31303 32189,31303,32189,31303 32196,31304,32196,31304 32093,31304,32133,31304 32195,31305,32196,31305 32196,31306,32196,31306 32092,31305,32134,31308 32091,31309,32133,31309 32091,31310,32131,31310 32090,31311,32130,31312 32199,31311,32199,31312 32090,31313,32131,31313 32198,31313,32198,31314 32090,31314,32132,31314 32201,31314,32201,31314 32086,31315,32133,31315 32199,31315,32199,31316 32086,31316,32134,31316 32088,31317,32134,31317 32088,31318,32133,31319 32089,31320,32133,31320 32089,31321,32134,31321 32089,31322,32138,31322 32151,31322,32157,31322 32150,31323,32159,31323 32088,31323,32138,31323 32087,31324,32138,31324 32149,31324,32160,31324 32203,31324,32204,31324 32087,31325,32139,31325 32204,31325,32205,31325 32148,31325,32160,31326 32088,31326,32140,31326 32204,31326,32206,31326 32089,31327,32141,31327 32205,31327,32206,31327 32206,31328,32206,31328 32149,31327,32161,31329 32089,31328,32143,31329 32089,31330,32093,31330 32096,31330,32144,31330 32096,31331,32145,31331 32149,31330,32162,31332 32096,31332,32146,31332 32097,31333,32161,31333 32103,31334,32154,31334 32106,31335,32154,31335 32196,31335,32196,31335 32195,31336,32195,31336 32197,31336,32199,31336 32107,31336,32154,31337 32198,31337,32198,31337 32191,31337,32191,31337 32107,31338,32156,31338 32190,31338,32193,31338 32106,31339,32157,31339 32102,31339,32103,31339 32190,31339,32192,31340 32101,31340,32153,31340 32101,31341,32152,31342 32188,31341,32192,31342 32102,31343,32155,31343 32187,31343,32192,31343 32102,31344,32156,31344 32185,31344,32192,31344 32196,31342,32196,31345 32184,31345,32191,31345 32102,31345,32158,31346 32182,31346,32189,31346 32195,31346,32195,31346 32103,31347,32159,31347 32194,31347,32194,31347 32181,31347,32189,31347 32174,31348,32188,31348 32102,31348,32160,31348 32102,31349,32161,31349 32174,31349,32186,31350 32190,31350,32190,31350 32103,31350,32162,31350 32172,31351,32185,31351 32189,31351,32189,31351 32102,31351,32163,31351 32101,31352,32165,31352 32168,31352,32184,31352 32188,31352,32188,31352 32187,31353,32188,31353 32101,31353,32183,31353 32177,31354,32183,31354 32101,31354,32173,31354 32187,31354,32187,31354 32102,31355,32172,31355 32178,31355,32183,31355 32185,31356,32186,31356 32174,31356,32175,31356 32180,31356,32183,31356 32102,31356,32171,31356 32102,31357,32166,31357 32169,31357,32170,31357 32176,31357,32176,31357 32179,31357,32187,31358 32176,31358,32177,31358 32102,31358,32160,31358 32192,31358,32192,31358 32162,31358,32165,31358 32103,31359,32160,31359 32191,31359,32192,31359 32175,31359,32176,31359 32179,31359,32186,31360 32156,31360,32159,31360 32174,31360,32175,31360 32103,31360,32152,31360 32190,31360,32190,31360 32167,31360,32167,31361 32180,31361,32185,31361 32102,31361,32152,31361 32165,31361,32165,31361 32173,31361,32174,31361 32189,31361,32191,31362 32102,31362,32151,31362 32166,31362,32166,31362 32191,31363,32191,31363 32188,31363,32188,31363 32098,31363,32099,31363 32101,31363,32151,31363 32181,31364,32181,31364 32096,31364,32151,31364 32182,31365,32182,31365 32179,31365,32180,31365 32095,31365,32152,31366 32094,31367,32153,31367 32093,31368,32153,31369 32093,31370,32154,31370 32094,31371,32155,31371 32093,31372,32155,31373 32093,31374,32152,31374 32094,31375,32151,31375 32098,31376,32152,31376 32099,31377,32152,31377 32100,31378,32152,31378 32101,31379,32151,31379 32099,31380,32150,31380 32097,31381,32149,31381 32096,31382,32147,31383 32097,31384,32148,31384 32096,31385,32148,31386 32096,31387,32147,31387 32097,31388,32142,31388 32099,31389,32142,31389 32100,31390,32142,31390 32101,31391,32107,31391 32110,31391,32141,31391 32102,31392,32105,31392 32111,31392,32141,31392 32127,31393,32140,31393 32103,31393,32105,31393 32112,31393,32122,31393 32128,31394,32138,31394 32113,31394,32122,31395 32102,31394,32105,31395 32129,31395,32138,31395 32130,31396,32137,31396 32103,31396,32104,31396 32114,31396,32121,31396 32128,31397,32135,31397 32127,31398,32133,31398 32127,31399,32131,31399 32128,31400,32131,31400 32127,31401,32131,31401 32126,31402,32131,31403 32126,31404,32130,31404 32127,31405,32129,31405", + }, + [291] = { -- Meluna (3589 tiles, 99 rects) + name = "Meluna", + mainArea = 24, + bbox = { x1 = 32012, y1 = 32401, x2 = 32108, y2 = 32473 }, + rects = "32086,32401,32094,32401 32080,32402,32100,32402 32079,32403,32100,32403 32076,32403,32077,32403 32073,32404,32100,32404 32072,32405,32100,32406 32071,32407,32100,32410 32067,32411,32100,32411 32066,32412,32101,32412 32063,32412,32064,32412 32062,32413,32102,32414 32061,32415,32103,32416 32048,32417,32051,32417 32060,32417,32103,32417 32059,32418,32103,32418 32047,32418,32052,32418 32059,32419,32104,32419 32046,32419,32052,32420 32058,32420,32104,32420 32058,32421,32105,32421 32047,32421,32052,32421 32057,32422,32106,32422 32046,32422,32052,32423 32069,32423,32106,32423 32056,32423,32064,32423 32046,32424,32063,32424 32070,32424,32106,32424 32071,32425,32106,32425 32046,32425,32062,32427 32071,32426,32105,32428 32046,32428,32063,32428 32046,32429,32104,32429 32046,32430,32102,32430 32046,32431,32100,32431 32047,32432,32102,32432 32047,32433,32103,32433 32046,32434,32103,32434 32046,32435,32105,32435 32046,32436,32106,32437 32045,32438,32107,32438 32045,32439,32108,32439 32044,32440,32108,32440 32043,32441,32107,32441 32043,32442,32104,32442 32044,32443,32102,32443 32045,32444,32099,32444 32046,32445,32099,32445 32022,32446,32023,32446 32017,32446,32019,32446 32046,32446,32100,32447 32016,32447,32024,32447 32015,32448,32027,32448 32047,32448,32101,32449 32015,32449,32028,32449 32099,32450,32100,32450 32014,32450,32029,32450 32047,32450,32097,32450 32013,32451,32030,32451 32046,32451,32097,32451 32012,32452,32030,32452 32046,32452,32096,32453 32012,32453,32031,32453 32013,32454,32032,32454 32046,32454,32097,32455 32013,32455,32034,32455 32046,32456,32096,32456 32013,32456,32035,32457 32046,32457,32095,32457 32046,32458,32093,32458 32013,32458,32034,32458 32046,32459,32058,32459 32061,32459,32093,32460 32046,32460,32057,32460 32062,32461,32092,32461 32047,32461,32056,32461 32013,32459,32035,32462 32050,32462,32053,32462 32064,32462,32091,32462 32080,32463,32091,32463 32051,32463,32052,32463 32064,32463,32077,32463 32013,32463,32034,32463 32072,32464,32076,32464 32014,32464,32034,32464 32065,32464,32069,32464 32014,32465,32033,32465 32073,32465,32074,32465 32081,32464,32091,32466 32015,32466,32032,32466 32015,32467,32031,32467 32082,32467,32091,32467 32083,32468,32091,32468 32015,32468,32030,32468 32014,32469,32027,32470 32083,32469,32090,32470 32084,32471,32090,32471 32015,32471,32025,32471 32016,32472,32024,32472 32017,32473,32021,32473", + }, + [292] = { -- Travora (231 tiles, 35 rects) + name = "Travora", + mainArea = 24, + bbox = { x1 = 32047, y1 = 32352, x2 = 32072, y2 = 32372 }, + rects = "32059,32352,32061,32352 32058,32353,32062,32353 32068,32353,32070,32353 32066,32354,32070,32354 32058,32354,32063,32355 32066,32355,32069,32355 32059,32356,32061,32356 32067,32356,32068,32356 32059,32357,32060,32357 32063,32358,32065,32358 32058,32359,32060,32359 32053,32359,32054,32360 32063,32359,32066,32360 32056,32360,32060,32360 32056,32361,32059,32361 32063,32361,32064,32361 32057,32362,32058,32362 32064,32362,32066,32363 32061,32363,32062,32364 32067,32364,32069,32364 32064,32364,32065,32364 32067,32365,32070,32365 32050,32365,32064,32365 32049,32366,32064,32366 32067,32366,32072,32366 32068,32367,32072,32367 32047,32367,32064,32367 32047,32368,32065,32368 32071,32368,32072,32368 32067,32369,32069,32369 32049,32369,32064,32369 32066,32370,32069,32370 32050,32370,32064,32370 32051,32371,32069,32371 32065,32372,32068,32372", + }, + [293] = { -- Temple of Light (7187 tiles, 208 rects) + name = "Temple of Light", + mainArea = 24, + bbox = { x1 = 31910, y1 = 31975, x2 = 32029, y2 = 32100 }, + rects = "31989,31975,31990,31975 31988,31976,31991,31977 32006,31977,32007,31977 31989,31978,31992,31978 32005,31978,32008,31979 31998,31979,32002,31979 31990,31979,31993,31980 31995,31980,32007,31980 31990,31981,32008,31981 32014,31981,32015,31981 32012,31982,32016,31982 31991,31982,32009,31982 32018,31983,32020,31983 31992,31983,32016,31983 31994,31984,32022,31984 31994,31985,32024,31985 31988,31986,31992,31986 31994,31986,32025,31986 31987,31987,32025,31987 31987,31988,32026,31988 31987,31989,32027,31989 31986,31990,32028,31991 31968,31991,31975,31991 31985,31992,32027,31992 31968,31992,31976,31992 31983,31993,32027,31993 31982,31994,32028,31996 31950,31997,31952,31997 31983,31997,32027,31997 31967,31993,31978,31998 31963,31998,31965,31998 31984,31998,32025,31998 31948,31998,31955,31998 31946,31999,31956,31999 31968,31999,31978,31999 31961,31999,31966,31999 31984,31999,32023,31999 31961,32000,31976,32000 31984,32000,32024,32000 31945,32000,31956,32000 31982,32001,32024,32001 31980,32002,32028,32002 31945,32001,31957,32003 31960,32001,31977,32003 31979,32003,32029,32004 31944,32004,31977,32004 31979,32005,32028,32005 31943,32005,31977,32006 31979,32006,32024,32007 31944,32007,31977,32007 31979,32008,32023,32008 31945,32008,31977,32008 31948,32009,31977,32009 31980,32009,32022,32010 31981,32011,32024,32011 31948,32010,31978,32013 31981,32012,32025,32013 31947,32014,32024,32014 31946,32015,32022,32016 31947,32017,32021,32017 31947,32018,32007,32018 32009,32018,32021,32019 31950,32019,32007,32020 32010,32020,32021,32020 31956,32021,32007,32021 32013,32021,32015,32021 32019,32021,32020,32021 31950,32021,31951,32022 31958,32022,32008,32022 31961,32023,32009,32023 31962,32024,32010,32024 31947,32025,31948,32025 31942,32025,31944,32025 31960,32025,32010,32026 31937,32026,31948,32026 31960,32027,32013,32027 31936,32027,31953,32028 31963,32028,32014,32028 31955,32028,31957,32028 31937,32029,31957,32029 31964,32029,32014,32029 31937,32030,31958,32030 31964,32030,31999,32030 32003,32030,32015,32030 31966,32031,31999,32031 32002,32031,32016,32031 31937,32031,31959,32032 32008,32032,32017,32032 31967,32032,31999,32032 32001,32032,32006,32033 31967,32033,31998,32033 32010,32033,32017,32033 31938,32033,31960,32034 32011,32034,32018,32035 31966,32034,31998,32035 31939,32035,31961,32035 32000,32034,32006,32036 32012,32036,32017,32036 31940,32036,31961,32036 31968,32036,31998,32037 32000,32037,32008,32037 31939,32037,31962,32037 31969,32038,31997,32038 31938,32038,31962,32038 32000,32038,32009,32038 32001,32039,32009,32039 31938,32039,31964,32039 31966,32039,31997,32040 31937,32040,31964,32040 32003,32040,32008,32040 31936,32041,31997,32041 31936,32042,32007,32042 31932,32043,31934,32043 31937,32043,32008,32044 31931,32044,31935,32044 31938,32045,32009,32045 31930,32045,31935,32046 31940,32046,32009,32046 31940,32047,32008,32047 31931,32047,31937,32047 31941,32048,32008,32048 31934,32048,31938,32048 31941,32049,32009,32049 31934,32049,31939,32049 31982,32050,32009,32050 31942,32050,31979,32050 31931,32050,31939,32050 31983,32051,32008,32051 31943,32051,31979,32051 31930,32051,31940,32051 31929,32052,31941,32052 31984,32052,32008,32052 31944,32052,31979,32052 31984,32053,31985,32053 31929,32053,31942,32053 31945,32053,31980,32054 31923,32054,31925,32054 31988,32053,32007,32055 31945,32055,31981,32055 31929,32054,31943,32056 31922,32055,31926,32056 31945,32056,31982,32056 31988,32056,32006,32056 31992,32057,32003,32057 31921,32057,31926,32057 31929,32057,31983,32057 31921,32058,31984,32058 31993,32058,32003,32058 31921,32059,31985,32059 31994,32059,32003,32059 31921,32060,31986,32060 31998,32060,32003,32060 31994,32060,31995,32060 31921,32061,31988,32061 31999,32061,32002,32061 31921,32062,31989,32062 31920,32063,31991,32063 31919,32064,31993,32064 31918,32065,31993,32065 31917,32066,31993,32066 31916,32067,31995,32067 31914,32068,31960,32068 31962,32068,31996,32069 31913,32069,31960,32069 31988,32070,31995,32070 31911,32070,31959,32070 31963,32070,31964,32070 31989,32071,31995,32071 31910,32071,31958,32071 31968,32070,31983,32072 31992,32072,31994,32072 31910,32072,31957,32072 31911,32073,31956,32073 31967,32073,31982,32073 31967,32074,31981,32074 31911,32074,31957,32075 31967,32075,31980,32075 31967,32076,31978,32076 31912,32076,31957,32076 31913,32077,31957,32077 31968,32077,31978,32077 31969,32078,31978,32078 31913,32078,31958,32079 31970,32079,31977,32079 31972,32080,31976,32080 31912,32080,31958,32081 31973,32081,31975,32081 31916,32082,31958,32082 31913,32082,31914,32082 31955,32083,31957,32083 31917,32083,31952,32083 31920,32084,31952,32084 31920,32085,31951,32086 31921,32087,31951,32087 31924,32088,31952,32088 31923,32089,31953,32089 31923,32090,31947,32090 31949,32090,31953,32090 31923,32091,31946,32091 31950,32091,31953,32091 31951,32092,31952,32092 31923,32092,31945,32092 31924,32093,31944,32093 31925,32094,31926,32094 31928,32094,31944,32094 31930,32095,31943,32096 31931,32097,31942,32099 31932,32100,31941,32100", + }, + [295] = { -- Greenshore (7805 tiles, 244 rects) + name = "Greenshore", + mainArea = 24, + bbox = { x1 = 32197, y1 = 32008, x2 = 32317, y2 = 32115 }, + rects = "32262,32008,32283,32008 32261,32009,32261,32009 32260,32010,32260,32010 32259,32011,32259,32011 32283,32009,32283,32012 32255,32012,32258,32012 32283,32013,32284,32013 32271,32013,32271,32013 32279,32013,32279,32013 32263,32013,32263,32013 32255,32013,32257,32013 32257,32014,32258,32014 32259,32015,32259,32015 32260,32016,32260,32016 32283,32014,32283,32017 32221,32017,32222,32017 32261,32017,32261,32017 32252,32018,32256,32018 32261,32018,32283,32018 32244,32018,32246,32018 32220,32018,32223,32018 32217,32019,32223,32019 32251,32019,32257,32020 32216,32020,32223,32020 32239,32019,32241,32021 32243,32019,32247,32021 32215,32021,32223,32021 32264,32021,32267,32021 32263,32022,32268,32022 32243,32022,32248,32022 32238,32022,32241,32022 32215,32022,32222,32022 32252,32021,32257,32023 32216,32023,32222,32023 32237,32023,32241,32023 32263,32023,32269,32023 32216,32024,32221,32024 32252,32024,32271,32024 32243,32023,32249,32025 32217,32025,32221,32025 32230,32025,32231,32025 32226,32025,32227,32025 32236,32024,32240,32026 32252,32025,32272,32026 32243,32026,32250,32027 32217,32026,32232,32027 32252,32027,32273,32027 32236,32027,32241,32028 32217,32028,32234,32028 32243,32028,32273,32029 32218,32029,32241,32030 32265,32030,32274,32030 32217,32031,32242,32031 32265,32031,32276,32031 32266,32032,32276,32032 32244,32030,32259,32033 32216,32032,32242,32033 32265,32033,32274,32033 32279,32033,32279,32033 32276,32033,32277,32034 32215,32034,32242,32034 32244,32034,32274,32035 32284,32034,32284,32035 32286,32035,32286,32035 32215,32035,32241,32036 32245,32036,32274,32036 32280,32036,32281,32036 32286,32036,32291,32036 32266,32037,32277,32037 32261,32037,32261,32037 32214,32037,32241,32037 32279,32037,32292,32037 32247,32037,32256,32037 32280,32038,32280,32038 32213,32038,32241,32038 32249,32038,32256,32039 32266,32038,32274,32039 32285,32038,32292,32039 32212,32039,32246,32039 32261,32039,32261,32039 32212,32040,32247,32040 32260,32040,32274,32040 32249,32040,32258,32040 32280,32040,32280,32040 32285,32040,32295,32040 32285,32041,32296,32041 32213,32041,32247,32041 32249,32041,32275,32041 32277,32041,32280,32041 32212,32042,32247,32042 32285,32042,32300,32042 32249,32042,32274,32042 32280,32042,32280,32042 32277,32042,32277,32042 32212,32043,32246,32043 32264,32043,32274,32043 32249,32043,32262,32043 32285,32043,32301,32043 32277,32044,32301,32044 32211,32044,32246,32044 32266,32044,32275,32044 32260,32044,32260,32044 32210,32045,32246,32045 32248,32044,32256,32046 32266,32045,32301,32046 32260,32046,32260,32046 32201,32046,32203,32046 32208,32046,32246,32046 32282,32047,32282,32047 32286,32047,32300,32047 32200,32047,32204,32047 32207,32047,32246,32047 32285,32048,32301,32048 32199,32048,32246,32048 32281,32048,32283,32048 32286,32049,32303,32049 32283,32049,32283,32049 32198,32049,32246,32049 32248,32047,32279,32050 32286,32050,32305,32050 32197,32050,32246,32051 32249,32051,32279,32051 32286,32051,32310,32052 32251,32052,32278,32052 32198,32052,32246,32052 32204,32053,32248,32053 32251,32053,32310,32054 32204,32054,32249,32054 32251,32055,32311,32055 32203,32055,32249,32055 32313,32055,32316,32055 32202,32056,32317,32056 32201,32057,32249,32057 32251,32057,32317,32058 32200,32058,32249,32058 32251,32059,32266,32059 32200,32059,32248,32059 32201,32060,32247,32060 32273,32059,32317,32061 32250,32060,32266,32061 32205,32061,32246,32061 32248,32062,32266,32062 32294,32062,32316,32062 32274,32062,32283,32062 32287,32062,32287,32063 32289,32062,32289,32063 32205,32062,32245,32063 32294,32063,32294,32063 32296,32063,32311,32064 32273,32063,32283,32064 32247,32063,32266,32064 32292,32064,32294,32064 32289,32064,32290,32064 32285,32064,32287,32064 32204,32064,32245,32064 32247,32065,32283,32065 32296,32065,32310,32065 32203,32065,32245,32066 32287,32065,32287,32066 32296,32066,32309,32066 32248,32066,32283,32066 32204,32067,32246,32067 32296,32067,32308,32067 32277,32067,32283,32068 32201,32068,32246,32068 32287,32068,32287,32068 32248,32067,32266,32069 32270,32067,32270,32069 32274,32067,32274,32069 32296,32068,32307,32069 32200,32069,32246,32069 32291,32069,32292,32069 32278,32069,32283,32069 32287,32069,32289,32069 32270,32070,32272,32070 32274,32070,32275,32070 32248,32070,32268,32070 32200,32070,32245,32071 32271,32071,32271,32072 32201,32072,32245,32072 32277,32070,32307,32074 32247,32071,32266,32074 32271,32074,32271,32074 32202,32073,32245,32075 32247,32075,32307,32075 32203,32076,32245,32076 32248,32076,32306,32076 32204,32077,32246,32077 32249,32077,32304,32078 32203,32078,32247,32079 32250,32079,32303,32079 32267,32080,32303,32080 32203,32080,32264,32083 32266,32081,32302,32084 32203,32084,32263,32086 32202,32087,32263,32088 32265,32085,32302,32090 32203,32089,32263,32090 32266,32091,32303,32091 32204,32091,32263,32091 32209,32092,32263,32092 32269,32092,32303,32092 32205,32092,32206,32092 32209,32093,32264,32094 32206,32095,32263,32095 32271,32093,32303,32096 32244,32096,32248,32096 32253,32096,32254,32096 32206,32096,32234,32097 32256,32097,32268,32097 32272,32097,32303,32097 32245,32097,32246,32097 32250,32097,32251,32097 32236,32097,32238,32097 32205,32098,32241,32098 32249,32098,32269,32098 32248,32099,32270,32099 32205,32099,32242,32099 32273,32098,32303,32100 32273,32101,32304,32101 32273,32102,32305,32103 32274,32104,32305,32104 32205,32100,32271,32105 32261,32106,32272,32106 32205,32106,32253,32106 32275,32105,32304,32107 32206,32107,32252,32107 32262,32107,32272,32107 32276,32108,32282,32108 32207,32108,32246,32108 32265,32108,32271,32108 32297,32108,32304,32109 32269,32109,32270,32109 32207,32109,32242,32109 32208,32110,32210,32110 32220,32110,32225,32110 32231,32110,32238,32110 32298,32110,32304,32110 32232,32111,32237,32111 32298,32111,32305,32112 32298,32113,32306,32113 32300,32114,32305,32114 32304,32115,32304,32115 32301,32115,32301,32115", + }, + [296] = { -- Darashia City (9662 tiles, 142 rects) + name = "Darashia City", + mainArea = 4, + bbox = { x1 = 33187, y1 = 32378, x2 = 33297, y2 = 32515 }, + rects = "33206,32378,33213,32378 33204,32379,33215,32379 33225,32379,33225,32380 33203,32380,33216,32380 33224,32381,33225,32381 33224,32382,33226,32382 33223,32383,33226,32383 33202,32381,33217,32384 33233,32383,33234,32384 33222,32384,33227,32384 33202,32385,33236,32385 33279,32385,33280,32385 33202,32386,33238,32386 33278,32386,33280,32386 33263,32387,33263,32387 33270,32387,33281,32387 33202,32387,33241,32387 33268,32388,33281,32388 33202,32388,33244,32388 33262,32388,33265,32388 33203,32389,33247,32389 33261,32389,33281,32389 33255,32390,33256,32390 33260,32390,33281,32390 33203,32390,33250,32390 33203,32391,33282,32391 33204,32392,33282,32392 33206,32393,33282,32393 33210,32394,33283,32394 33200,32394,33204,32394 33189,32395,33208,32395 33211,32395,33283,32395 33189,32396,33209,32396 33211,32396,33281,32396 33189,32397,33281,32398 33212,32399,33229,32399 33233,32399,33281,32400 33189,32399,33210,32400 33213,32400,33229,32400 33189,32401,33281,32402 33190,32403,33281,32403 33191,32404,33281,32409 33190,32410,33281,32410 33189,32411,33281,32411 33189,32412,33286,32412 33188,32413,33286,32413 33187,32414,33288,32414 33188,32415,33289,32415 33189,32416,33290,32423 33287,32424,33290,32424 33189,32424,33285,32424 33189,32425,33290,32425 33190,32426,33290,32429 33188,32430,33290,32430 33192,32431,33290,32435 33192,32436,33284,32436 33193,32437,33283,32437 33193,32438,33282,32439 33192,32440,33282,32440 33191,32441,33286,32441 33190,32442,33287,32442 33193,32443,33287,32445 33192,32446,33287,32446 33190,32447,33286,32447 33189,32448,33286,32448 33189,32449,33285,32449 33189,32450,33283,32450 33189,32451,33269,32452 33275,32451,33283,32452 33271,32452,33273,32452 33190,32453,33283,32453 33271,32454,33273,32454 33275,32454,33283,32456 33202,32454,33269,32456 33271,32456,33273,32456 33190,32454,33196,32458 33202,32457,33283,32458 33190,32459,33283,32459 33192,32460,33283,32460 33193,32461,33283,32461 33195,32462,33283,32462 33196,32463,33283,32464 33196,32465,33284,32465 33291,32465,33295,32466 33196,32466,33283,32466 33196,32467,33280,32467 33287,32467,33295,32467 33196,32468,33295,32469 33197,32470,33294,32470 33225,32471,33280,32471 33197,32471,33222,32471 33285,32471,33296,32472 33224,32472,33280,32472 33197,32472,33221,32472 33286,32473,33297,32473 33197,32473,33222,32473 33224,32473,33279,32473 33287,32474,33297,32474 33292,32475,33295,32475 33197,32474,33277,32476 33293,32476,33294,32476 33205,32477,33277,32477 33198,32477,33201,32477 33229,32478,33272,32478 33285,32478,33296,32478 33206,32478,33225,32478 33274,32478,33276,32478 33230,32479,33271,32479 33213,32479,33222,32479 33284,32479,33296,32479 33207,32479,33208,32479 33216,32480,33218,32480 33230,32480,33272,32480 33281,32480,33296,32480 33281,32481,33297,32481 33231,32481,33272,32482 33283,32482,33296,32482 33284,32483,33296,32483 33285,32484,33296,32484 33231,32483,33271,32486 33232,32487,33268,32487 33233,32488,33268,32488 33233,32489,33245,32489 33248,32489,33251,32489 33256,32489,33264,32489 33257,32490,33263,32490 33248,32490,33249,32490 33233,32490,33244,32491 33258,32491,33261,32491 33232,32492,33244,32493 33231,32494,33243,32494 33231,32495,33242,32495 33230,32496,33241,32497 33229,32498,33245,32498 33227,32499,33246,32499 33226,32500,33246,32501 33225,32502,33246,32505 33226,32506,33246,32511 33226,32512,33245,32512 33227,32513,33232,32513 33227,32514,33231,32514 33227,32515,33229,32515", + }, + [297] = { -- Ankrahmun City (18492 tiles, 164 rects) + name = "Ankrahmun City", + mainArea = 2, + bbox = { x1 = 33055, y1 = 32761, x2 = 33250, y2 = 32893 }, + rects = "33145,32761,33161,32765 33126,32765,33131,32765 33169,32765,33174,32765 33126,32766,33174,32768 33184,32768,33189,32768 33103,32768,33108,32768 33103,32769,33189,32777 33201,32777,33206,32777 33103,32778,33182,32778 33185,32778,33206,32778 33103,32779,33206,32780 33225,32780,33230,32780 33200,32781,33230,32781 33103,32781,33197,32781 33200,32782,33217,32782 33091,32782,33197,32782 33084,32783,33089,32783 33091,32783,33217,32783 33226,32782,33230,32784 33081,32784,33217,32785 33226,32785,33231,32785 33227,32786,33231,32788 33076,32786,33217,32788 33076,32789,33219,32791 33225,32789,33231,32791 33227,32792,33231,32794 33076,32792,33217,32794 33222,32794,33222,32794 33076,32795,33231,32797 33076,32798,33248,32798 33072,32799,33248,32802 33061,32802,33066,32802 33061,32803,33248,32803 33061,32804,33247,32807 33062,32808,33205,32808 33207,32808,33247,32808 33062,32809,33247,32820 33059,32821,33247,32831 33059,32832,33250,32832 33055,32833,33250,32837 33055,32838,33248,32838 33060,32839,33247,32839 33061,32840,33246,32840 33062,32841,33245,32841 33062,32842,33244,32842 33062,32843,33241,32843 33062,32844,33234,32844 33061,32845,33233,32845 33060,32846,33232,32846 33060,32847,33231,32847 33059,32848,33231,32848 33056,32849,33231,32849 33055,32850,33230,32850 33055,32851,33228,32851 33055,32852,33229,32852 33055,32853,33230,32853 33057,32854,33232,32854 33060,32855,33232,32856 33060,32857,33231,32857 33060,32858,33230,32858 33061,32859,33106,32859 33108,32859,33229,32860 33062,32860,33106,32860 33064,32861,33106,32861 33109,32861,33228,32861 33064,32862,33105,32862 33111,32862,33229,32862 33063,32863,33105,32863 33112,32863,33230,32863 33102,32864,33104,32864 33111,32864,33231,32864 33061,32864,33099,32864 33111,32865,33127,32865 33132,32865,33231,32866 33096,32865,33099,32866 33060,32865,33091,32866 33111,32866,33126,32866 33217,32867,33230,32867 33112,32867,33125,32867 33133,32867,33212,32867 33097,32867,33098,32867 33059,32867,33091,32867 33217,32868,33229,32868 33112,32868,33123,32868 33135,32868,33211,32869 33059,32868,33092,32869 33113,32869,33122,32869 33218,32869,33228,32869 33060,32870,33092,32870 33220,32870,33227,32870 33134,32870,33211,32870 33114,32870,33122,32871 33134,32871,33210,32871 33061,32871,33092,32872 33135,32872,33209,32872 33114,32872,33121,32872 33136,32873,33208,32873 33060,32873,33091,32873 33115,32873,33118,32874 33060,32874,33092,32874 33164,32874,33168,32874 33137,32874,33162,32874 33172,32874,33208,32874 33116,32875,33117,32875 33059,32875,33092,32875 33137,32875,33161,32875 33165,32875,33168,32875 33174,32875,33209,32875 33166,32876,33167,32876 33137,32876,33157,32876 33090,32876,33093,32876 33175,32876,33210,32876 33059,32876,33087,32877 33089,32877,33094,32877 33177,32877,33211,32877 33137,32877,33156,32878 33059,32878,33095,32878 33177,32878,33212,32878 33080,32879,33096,32879 33137,32879,33155,32879 33176,32879,33213,32879 33061,32879,33077,32879 33130,32880,33131,32880 33063,32880,33077,32880 33175,32880,33213,32881 33063,32881,33078,32881 33137,32880,33151,32882 33129,32881,33132,32882 33062,32882,33078,32882 33176,32882,33212,32882 33195,32883,33211,32883 33136,32883,33150,32883 33178,32883,33193,32883 33061,32883,33078,32883 33130,32883,33131,32883 33136,32884,33149,32884 33197,32884,33201,32884 33178,32884,33192,32884 33206,32884,33208,32884 33061,32884,33077,32884 33136,32885,33140,32885 33179,32885,33191,32885 33142,32885,33148,32885 33063,32885,33077,32885 33137,32886,33139,32886 33181,32886,33191,32886 33142,32886,33147,32886 33063,32886,33078,32887 33182,32887,33197,32887 33143,32887,33148,32888 33183,32888,33197,32888 33063,32888,33077,32888 33063,32889,33075,32889 33144,32889,33148,32889 33185,32889,33197,32889 33186,32890,33197,32890 33064,32890,33074,32890 33187,32891,33196,32891 33065,32891,33073,32891 33088,32880,33096,32892 33191,32892,33193,32892 33066,32892,33072,32892 33092,32893,33092,32893 33069,32893,33071,32893", + }, + [298] = { -- Svargrond City (12055 tiles, 565 rects) + name = "Svargrond City", + mainArea = 23, + bbox = { x1 = 32143, y1 = 31042, x2 = 32359, y2 = 31250 }, + rects = "32176,31042,32181,31044 32224,31044,32224,31044 32218,31044,32219,31044 32226,31044,32226,31044 32216,31044,32216,31044 32222,31044,32222,31044 32218,31045,32220,31045 32184,31046,32197,31046 32216,31046,32216,31046 32218,31046,32226,31047 32176,31045,32176,31048 32221,31048,32221,31048 32218,31048,32219,31048 32216,31048,32216,31048 32223,31048,32226,31048 32226,31049,32226,31049 32225,31050,32226,31050 32231,31050,32231,31050 32233,31050,32234,31051 32224,31051,32225,31051 32229,31051,32229,31051 32224,31052,32234,31052 32184,31052,32184,31052 32186,31052,32193,31053 32228,31053,32234,31053 32225,31053,32226,31053 32228,31054,32229,31054 32233,31054,32234,31055 32147,31055,32147,31055 32228,31055,32228,31055 32143,31055,32143,31055 32145,31055,32145,31055 32149,31055,32149,31055 32231,31055,32231,31055 32224,31054,32226,31056 32198,31048,32198,31057 32157,31057,32157,31057 32225,31057,32226,31057 32143,31057,32149,31057 32231,31057,32231,31057 32233,31057,32234,31058 32224,31058,32225,31058 32229,31058,32229,31058 32178,31052,32178,31059 32224,31059,32234,31059 32157,31059,32157,31059 32228,31060,32234,31060 32177,31060,32178,31060 32224,31060,32226,31060 32184,31054,32193,31061 32198,31060,32203,31061 32225,31061,32226,31061 32228,31061,32229,31061 32233,31061,32234,31062 32171,31061,32171,31062 32228,31062,32228,31062 32221,31062,32221,31062 32188,31062,32188,31062 32223,31062,32226,31062 32231,31062,32231,31062 32219,31063,32226,31063 32170,31063,32171,31064 32219,31064,32225,31064 32231,31064,32231,31064 32233,31064,32234,31065 32229,31065,32229,31065 32219,31065,32226,31065 32219,31066,32234,31066 32191,31066,32191,31066 32177,31066,32177,31066 32179,31066,32186,31067 32193,31066,32200,31067 32219,31067,32225,31067 32228,31067,32234,31067 32228,31068,32229,31068 32220,31068,32223,31068 32205,31062,32205,31069 32233,31068,32234,31069 32228,31069,32228,31069 32231,31069,32231,31069 32171,31065,32171,31070 32219,31069,32223,31070 32220,31071,32222,31071 32170,31071,32171,31073 32220,31072,32223,31074 32167,31074,32171,31074 32205,31074,32206,31074 32177,31068,32186,31075 32191,31068,32200,31075 32219,31075,32226,31075 32195,31076,32195,31076 32181,31076,32181,31076 32218,31076,32226,31077 32222,31078,32222,31078 32218,31078,32219,31079 32225,31078,32226,31079 32218,31080,32220,31080 32170,31080,32170,31080 32198,31080,32198,31080 32184,31080,32184,31080 32224,31080,32226,31080 32212,31075,32212,31081 32186,31080,32193,31081 32172,31080,32179,31081 32200,31080,32207,31081 32225,31081,32226,31081 32218,31081,32219,31081 32219,31082,32219,31082 32225,31082,32225,31082 32222,31082,32222,31082 32234,31082,32235,31083 32237,31082,32243,31084 32212,31082,32213,31084 32219,31083,32225,31084 32245,31084,32245,31084 32232,31084,32235,31085 32245,31085,32246,31085 32237,31085,32239,31086 32231,31086,32235,31086 32241,31085,32243,31087 32221,31085,32223,31087 32245,31086,32247,31087 32231,31087,32239,31087 32164,31085,32164,31088 32222,31088,32223,31088 32170,31082,32179,31089 32198,31082,32207,31089 32184,31082,32193,31089 32231,31088,32232,31089 32234,31088,32239,31090 32241,31088,32248,31090 32221,31089,32223,31090 32188,31090,32188,31090 32202,31090,32202,31090 32174,31090,32174,31090 32230,31090,32232,31091 32246,31091,32248,31091 32314,31092,32314,31092 32317,31092,32317,31092 32230,31092,32236,31093 32314,31093,32316,31093 32305,31094,32305,31094 32205,31094,32205,31094 32163,31094,32163,31094 32191,31094,32191,31094 32222,31094,32222,31094 32177,31094,32177,31094 32307,31094,32309,31094 32238,31092,32249,31095 32179,31094,32186,31095 32207,31094,32214,31095 32193,31094,32200,31095 32165,31094,32172,31095 32305,31095,32316,31095 32219,31095,32232,31096 32302,31096,32317,31096 32238,31096,32240,31096 32234,31094,32236,31097 32328,31095,32328,31097 32226,31097,32231,31097 32219,31097,32221,31097 32223,31097,32224,31097 32302,31097,32319,31097 32238,31097,32247,31098 32303,31098,32320,31098 32326,31098,32328,31098 32157,31093,32157,31099 32219,31098,32219,31099 32230,31098,32236,31099 32306,31099,32320,31099 32327,31099,32329,31099 32244,31099,32245,31099 32329,31100,32331,31100 32306,31100,32319,31100 32231,31100,32236,31100 32261,31100,32265,31100 32238,31099,32239,31101 32241,31099,32242,31101 32156,31100,32157,31101 32259,31101,32266,31101 32306,31101,32326,31101 32328,31101,32330,31101 32235,31101,32236,31101 32255,31102,32268,31102 32177,31096,32186,31103 32205,31096,32214,31103 32163,31096,32172,31103 32191,31096,32200,31103 32254,31103,32268,31103 32195,31104,32195,31104 32181,31104,32181,31104 32330,31104,32332,31104 32209,31104,32209,31104 32253,31104,32268,31104 32167,31104,32167,31104 32157,31102,32157,31105 32306,31102,32327,31105 32336,31105,32349,31105 32331,31105,32332,31105 32251,31105,32270,31106 32335,31106,32349,31106 32330,31106,32332,31106 32238,31106,32241,31106 32156,31106,32157,31107 32305,31106,32327,31107 32334,31107,32349,31107 32233,31107,32242,31107 32332,31107,32332,31107 32249,31107,32270,31107 32157,31108,32212,31108 32231,31108,32243,31108 32248,31108,32277,31108 32334,31108,32350,31108 32305,31108,32328,31108 32205,31109,32208,31109 32334,31109,32349,31109 32157,31109,32160,31109 32248,31109,32278,31109 32172,31109,32178,31109 32165,31109,32166,31109 32184,31109,32191,31109 32198,31109,32198,31109 32295,31109,32329,31109 32230,31109,32244,31110 32248,31110,32285,31110 32335,31110,32349,31110 32294,31110,32330,31110 32185,31110,32186,31110 32173,31110,32174,31110 32230,31111,32285,31111 32336,31111,32349,31111 32221,31111,32223,31111 32292,31111,32330,31111 32216,31112,32224,31112 32229,31112,32287,31112 32291,31112,32330,31112 32340,31112,32341,31113 32215,31113,32331,31113 32207,31114,32345,31116 32206,31117,32345,31117 32205,31118,32345,31119 32195,31119,32200,31119 32204,31120,32329,31120 32200,31120,32201,31120 32339,31121,32358,31121 32201,31121,32329,31121 32197,31121,32199,31122 32338,31122,32358,31122 32203,31122,32329,31122 32195,31120,32195,31123 32198,31123,32198,31123 32335,31123,32358,31123 32206,31123,32329,31123 32335,31124,32359,31124 32201,31124,32204,31124 32206,31124,32328,31124 32197,31124,32199,31124 32197,31125,32204,31125 32337,31125,32358,31125 32206,31125,32327,31125 32194,31124,32195,31126 32330,31125,32331,31126 32201,31126,32327,31126 32338,31126,32358,31126 32197,31126,32199,31126 32339,31127,32358,31127 32330,31127,32332,31127 32193,31127,32195,31127 32206,31127,32327,31127 32191,31128,32327,31128 32330,31128,32333,31128 32331,31129,32333,31129 32203,31129,32326,31130 32191,31129,32191,31130 32200,31130,32201,31131 32190,31131,32191,31131 32203,31131,32327,31131 32193,31130,32198,31132 32200,31132,32327,31132 32203,31133,32327,31133 32329,31133,32329,31133 32193,31133,32201,31133 32191,31132,32191,31134 32193,31134,32198,31134 32200,31134,32201,31134 32329,31134,32330,31134 32203,31134,32326,31135 32191,31135,32192,31135 32329,31135,32331,31135 32192,31136,32325,31136 32329,31136,32330,31136 32329,31137,32329,31137 32195,31137,32209,31137 32211,31137,32324,31138 32206,31138,32209,31139 32197,31139,32198,31139 32200,31139,32204,31139 32211,31139,32323,31139 32197,31140,32320,31140 32195,31138,32195,31141 32206,31141,32319,31141 32325,31141,32325,31141 32200,31141,32204,31142 32206,31142,32318,31142 32195,31142,32198,31142 32202,31143,32202,31143 32320,31143,32321,31143 32206,31143,32317,31144 32321,31144,32321,31144 32200,31144,32204,31145 32207,31145,32290,31145 32293,31145,32316,31145 32297,31146,32315,31146 32206,31146,32290,31146 32198,31143,32198,31147 32298,31147,32315,31147 32200,31147,32289,31147 32198,31148,32290,31148 32298,31148,32314,31149 32294,31149,32294,31149 32326,31149,32329,31149 32199,31149,32290,31149 32299,31150,32313,31150 32199,31150,32291,31150 32300,31151,32303,31151 32310,31151,32311,31151 32199,31151,32292,31152 32301,31152,32303,31152 32325,31150,32330,31153 32295,31152,32297,31153 32302,31153,32304,31153 32198,31153,32291,31153 32307,31153,32307,31153 32198,31154,32290,31154 32325,31154,32328,31154 32296,31154,32298,31154 32308,31154,32308,31154 32301,31154,32304,31155 32297,31155,32298,31155 32197,31155,32288,31155 32302,31156,32303,31156 32200,31156,32287,31157 32326,31155,32326,31158 32200,31158,32288,31158 32230,31159,32289,31159 32200,31159,32228,31159 32291,31160,32291,31160 32200,31160,32289,31161 32291,31161,32292,31161 32292,31162,32292,31162 32200,31162,32288,31162 32200,31163,32289,31164 32199,31165,32289,31165 32291,31166,32291,31166 32196,31166,32289,31167 32283,31168,32288,31168 32285,31169,32288,31169 32291,31169,32293,31169 32292,31170,32294,31170 32196,31168,32281,31171 32286,31170,32289,31171 32292,31171,32295,31171 32283,31172,32283,31172 32203,31172,32281,31172 32294,31172,32296,31172 32287,31172,32288,31172 32205,31173,32280,31173 32295,31173,32297,31173 32284,31173,32285,31173 32206,31174,32279,31174 32285,31174,32286,31174 32207,31175,32279,31176 32274,31177,32279,31177 32207,31177,32269,31177 32277,31178,32278,31178 32207,31178,32267,31178 32271,31179,32273,31179 32207,31179,32266,31180 32272,31180,32275,31180 32273,31181,32276,31181 32207,31181,32267,31182 32275,31182,32276,31183 32207,31183,32266,31183 32208,31184,32266,31184 32274,31184,32276,31184 32210,31185,32265,31186 32211,31187,32266,31190 32211,31191,32265,31191 32251,31192,32259,31192 32211,31192,32247,31193 32261,31193,32261,31193 32208,31194,32212,31194 32241,31194,32247,31194 32249,31194,32249,31194 32221,31194,32239,31194 32262,31194,32262,31194 32214,31194,32219,31194 32252,31193,32259,31195 32242,31195,32246,31195 32210,31195,32211,31195 32215,31195,32218,31195 32249,31195,32250,31196 32225,31195,32238,31196 32252,31196,32258,31196 32220,31196,32220,31196 32211,31197,32211,31197 32239,31197,32240,31197 32230,31197,32232,31197 32218,31197,32222,31197 32250,31197,32251,31197 32235,31197,32237,31197 32226,31197,32228,31197 32254,31197,32257,31198 32211,31198,32212,31198 32234,31198,32238,31198 32240,31198,32240,31198 32251,31198,32251,31198 32221,31198,32222,31198 32222,31199,32223,31199 32233,31199,32237,31199 32231,31200,32239,31200 32236,31201,32239,31201 32233,31201,32233,31201 32237,31202,32240,31203 32238,31204,32240,31204 32230,31204,32230,31204 32237,31205,32241,31205 32245,31205,32245,31205 32231,31205,32231,31205 32235,31206,32240,31206 32244,31206,32245,31206 32234,31207,32240,31207 32234,31208,32238,31208 32234,31209,32237,31209 32230,31210,32230,31210 32233,31210,32238,31210 32231,31211,32239,31211 32226,31212,32226,31212 32253,31212,32253,31212 32229,31212,32241,31212 32226,31213,32242,31213 32251,31213,32252,31213 32244,31214,32246,31214 32225,31214,32241,31214 32254,31214,32255,31214 32251,31214,32251,31214 32255,31215,32256,31215 32224,31215,32245,31215 32252,31215,32253,31215 32253,31216,32256,31216 32224,31216,32246,31216 32257,31217,32258,31217 32225,31217,32248,31217 32254,31218,32255,31218 32225,31218,32249,31218 32255,31219,32256,31219 32225,31219,32248,31219 32224,31220,32248,31220 32252,31221,32252,31221 32224,31221,32250,31221 32250,31222,32250,31222 32223,31222,32247,31222 32256,31223,32257,31223 32224,31223,32246,31223 32225,31224,32245,31224 32255,31224,32258,31224 32252,31224,32252,31225 32256,31225,32258,31225 32224,31225,32246,31225 32223,31226,32245,31226 32257,31226,32260,31226 32253,31226,32253,31226 32257,31227,32257,31227 32223,31227,32244,31227 32259,31227,32259,31227 32253,31227,32254,31227 32257,31228,32258,31228 32224,31228,32243,31228 32261,31228,32261,31228 32223,31229,32244,31229 32249,31229,32249,31229 32258,31229,32258,31229 32246,31229,32246,31229 32260,31229,32260,31229 32222,31230,32222,31230 32226,31230,32245,31230 32258,31230,32259,31230 32250,31230,32250,31231 32257,31231,32257,31231 32225,31231,32245,31231 32260,31231,32262,31231 32227,31232,32227,31232 32229,31232,32242,31232 32260,31232,32260,31232 32244,31232,32244,31232 32257,31233,32259,31233 32235,31233,32241,31233 32263,31233,32263,31233 32231,31233,32231,31233 32251,31232,32251,31234 32249,31233,32249,31234 32261,31234,32262,31234 32242,31234,32242,31234 32233,31234,32233,31234 32256,31234,32257,31234 32237,31234,32238,31234 32248,31235,32250,31235 32243,31235,32243,31235 32252,31235,32252,31235 32258,31235,32261,31235 32245,31235,32245,31235 32238,31235,32238,31235 32232,31235,32234,31235 32262,31236,32263,31236 32247,31236,32247,31236 32232,31236,32236,31236 32255,31236,32258,31236 32244,31236,32245,31236 32252,31236,32253,31236 32250,31237,32250,31237 32259,31237,32262,31237 32246,31237,32246,31237 32248,31237,32248,31237 32253,31237,32255,31237 32233,31237,32235,31237 32231,31237,32231,31237 32249,31238,32249,31238 32234,31238,32234,31238 32236,31238,32237,31238 32251,31238,32251,31238 32250,31239,32250,31239 32252,31239,32252,31239 32236,31239,32236,31239 32263,31239,32263,31239 32250,31240,32251,31240 32262,31240,32262,31240 32253,31240,32253,31240 32251,31241,32252,31241 32261,31241,32262,31241 32254,31241,32256,31241 32257,31242,32261,31242 32252,31242,32254,31242 32263,31243,32263,31243 32254,31243,32255,31243 32260,31243,32260,31243 32273,31244,32274,31244 32261,31244,32263,31244 32255,31244,32259,31244 32262,31245,32262,31245 32273,31245,32273,31245 32273,31246,32274,31246 32261,31246,32264,31246 32263,31247,32263,31247 32272,31247,32274,31247 32265,31247,32266,31247 32269,31248,32269,31248 32263,31248,32264,31248 32271,31248,32271,31248 32266,31248,32267,31248 32261,31248,32261,31248 32269,31249,32272,31249 32265,31249,32265,31249 32263,31249,32263,31249 32267,31249,32267,31250 32270,31250,32270,31250", + }, + [299] = { -- Yalahar Centre (16327 tiles, 157 rects) + name = "Yalahar Centre", + mainArea = 27, + bbox = { x1 = 32726, y1 = 31136, x2 = 32876, y2 = 31282 }, + rects = "32785,31136,32817,31136 32783,31137,32821,31137 32775,31138,32823,31138 32775,31139,32825,31139 32774,31140,32827,31140 32772,31141,32829,31141 32769,31142,32831,31142 32767,31143,32831,31143 32766,31144,32836,31144 32764,31145,32837,31145 32763,31146,32839,31146 32758,31147,32841,31147 32758,31148,32843,31148 32756,31149,32845,31149 32754,31150,32848,31150 32753,31151,32848,31151 32751,31152,32850,31152 32751,31153,32851,31153 32810,31154,32852,31154 32749,31154,32806,31154 32810,31155,32853,31155 32748,31155,32805,31155 32746,31156,32806,31156 32811,31156,32853,31156 32811,31157,32855,31157 32742,31157,32807,31157 32812,31158,32856,31158 32812,31159,32857,31159 32742,31158,32808,31160 32813,31160,32858,31160 32742,31161,32807,31161 32813,31161,32859,31162 32741,31162,32807,31162 32812,31163,32860,31163 32740,31163,32807,31163 32812,31164,32861,31164 32740,31164,32808,31164 32811,31165,32861,31165 32738,31165,32808,31165 32738,31166,32863,31166 32737,31167,32864,31167 32737,31168,32865,31168 32736,31169,32866,31169 32735,31170,32866,31171 32735,31172,32867,31172 32734,31173,32867,31173 32734,31174,32868,31174 32734,31175,32869,31175 32732,31176,32869,31177 32731,31178,32869,31178 32731,31179,32871,31179 32787,31180,32871,31180 32730,31180,32782,31180 32730,31181,32781,31181 32788,31181,32871,31181 32788,31182,32872,31183 32729,31182,32781,31183 32787,31184,32872,31184 32729,31184,32782,31184 32728,31185,32872,31187 32728,31188,32873,31191 32752,31192,32873,31192 32728,31192,32750,31192 32728,31193,32749,31193 32753,31193,32873,31193 32752,31194,32873,31194 32728,31194,32750,31194 32728,31195,32874,31198 32728,31199,32876,31199 32726,31200,32876,31201 32726,31202,32874,31202 32803,31203,32874,31203 32728,31203,32801,31203 32804,31204,32873,31204 32728,31204,32800,31204 32803,31205,32873,31205 32728,31205,32801,31205 32728,31206,32873,31209 32787,31210,32873,31211 32728,31210,32784,31212 32801,31212,32802,31212 32788,31212,32796,31212 32806,31212,32873,31212 32729,31213,32784,31214 32789,31213,32873,31214 32806,31215,32873,31215 32729,31215,32797,31215 32800,31215,32803,31216 32729,31216,32798,31216 32805,31216,32872,31216 32730,31217,32872,31219 32730,31220,32873,31220 32731,31221,32873,31224 32732,31225,32871,31227 32733,31228,32871,31229 32733,31230,32870,31230 32734,31231,32870,31231 32851,31232,32870,31232 32734,31232,32849,31232 32852,31233,32869,31233 32735,31233,32848,31233 32735,31234,32849,31234 32851,31234,32869,31234 32736,31235,32869,31235 32736,31236,32868,31237 32737,31238,32868,31238 32738,31239,32867,31239 32739,31240,32867,31240 32740,31241,32867,31241 32741,31242,32866,31242 32742,31243,32864,31243 32743,31244,32864,31244 32743,31245,32863,31245 32744,31246,32863,31246 32746,31247,32862,31247 32746,31248,32861,31248 32747,31249,32861,31249 32747,31250,32860,31250 32748,31251,32860,31251 32749,31252,32860,31256 32749,31257,32854,31257 32755,31258,32854,31258 32757,31259,32853,31259 32758,31260,32852,31260 32759,31261,32851,31261 32760,31262,32783,31262 32824,31262,32850,31262 32816,31262,32817,31263 32824,31263,32849,31263 32802,31262,32803,31264 32761,31263,32783,31264 32816,31264,32818,31264 32824,31264,32848,31264 32824,31265,32846,31265 32763,31265,32792,31265 32801,31265,32804,31265 32800,31266,32805,31266 32764,31266,32792,31266 32824,31266,32844,31266 32765,31267,32786,31267 32824,31267,32842,31268 32766,31268,32786,31268 32768,31269,32786,31269 32824,31269,32840,31269 32769,31270,32786,31270 32824,31270,32836,31270 32824,31271,32832,31271 32770,31271,32792,31271 32824,31272,32830,31272 32772,31272,32792,31272 32774,31273,32783,31273 32786,31273,32788,31273 32776,31274,32790,31274 32784,31275,32790,31280 32799,31267,32807,31281 32814,31265,32820,31282 32803,31282,32803,31282", + }, + [301] = { -- Rathleton City (5804 tiles, 81 rects) + name = "Rathleton City", + mainArea = 20, + bbox = { x1 = 33576, y1 = 31865, x2 = 33680, y2 = 31944 }, + rects = "33636,31865,33638,31865 33634,31866,33639,31866 33634,31867,33640,31867 33631,31868,33640,31868 33670,31868,33672,31868 33668,31869,33674,31869 33621,31869,33621,31869 33631,31869,33642,31869 33621,31870,33625,31870 33666,31870,33676,31870 33631,31870,33643,31870 33629,31871,33645,31871 33665,31871,33677,31871 33617,31871,33626,31871 33615,31872,33647,31872 33660,31872,33678,31872 33613,31873,33651,31873 33659,31873,33678,31874 33612,31874,33655,31874 33611,31875,33679,31875 33609,31876,33679,31876 33607,31877,33679,31877 33605,31878,33679,31878 33606,31879,33679,31879 33605,31880,33679,31880 33604,31881,33678,31886 33599,31886,33601,31886 33598,31887,33678,31887 33598,31888,33679,31888 33597,31889,33680,31889 33594,31890,33680,31890 33592,31891,33680,31891 33588,31891,33590,31891 33586,31892,33679,31892 33585,31893,33678,31893 33584,31894,33676,31894 33581,31895,33674,31895 33581,31896,33673,31896 33581,31897,33672,31897 33581,31898,33671,31898 33582,31899,33670,31899 33582,31900,33669,31900 33582,31901,33668,31901 33582,31902,33667,31902 33582,31903,33666,31903 33584,31904,33668,31906 33584,31907,33667,31909 33582,31910,33668,31910 33581,31911,33668,31911 33581,31912,33669,31912 33580,31913,33669,31916 33578,31917,33668,31917 33578,31918,33667,31918 33577,31919,33666,31919 33578,31920,33665,31921 33578,31922,33664,31922 33576,31923,33664,31924 33578,31925,33664,31925 33578,31926,33662,31926 33578,31927,33661,31928 33580,31929,33661,31930 33581,31931,33661,31932 33581,31933,33655,31933 33581,31934,33652,31934 33580,31935,33643,31935 33579,31936,33643,31936 33587,31937,33642,31937 33579,31937,33581,31937 33580,31938,33580,31938 33587,31938,33640,31939 33586,31940,33640,31940 33599,31941,33640,31941 33586,31941,33589,31941 33601,31942,33618,31942 33632,31942,33640,31942 33608,31943,33618,31943 33601,31943,33606,31943 33610,31944,33613,31944 33604,31944,33605,31944 33615,31944,33618,31944 33608,31944,33608,31944", + }, + [302] = { -- Gray Beach (3708 tiles, 120 rects) + name = "Gray Beach", + mainArea = 11, + bbox = { x1 = 33432, y1 = 31279, x2 = 33532, y2 = 31357 }, + rects = "33470,31279,33473,31280 33471,31281,33473,31282 33471,31283,33474,31283 33461,31283,33462,31285 33471,31284,33479,31285 33483,31285,33485,31285 33461,31286,33463,31286 33470,31286,33479,31286 33499,31286,33501,31286 33482,31286,33485,31287 33496,31287,33497,31287 33469,31287,33479,31287 33499,31287,33502,31287 33523,31287,33524,31287 33460,31287,33462,31288 33482,31288,33486,31288 33467,31288,33480,31288 33520,31288,33524,31288 33459,31289,33463,31289 33496,31288,33503,31290 33466,31289,33486,31290 33520,31289,33523,31290 33460,31290,33463,31290 33489,31290,33492,31290 33459,31291,33486,31291 33489,31291,33491,31291 33497,31291,33503,31291 33518,31291,33523,31291 33499,31292,33502,31292 33459,31292,33492,31292 33516,31292,33520,31293 33498,31293,33500,31293 33459,31293,33493,31293 33516,31294,33519,31294 33459,31294,33500,31294 33517,31295,33519,31295 33459,31295,33505,31295 33459,31296,33508,31296 33516,31296,33520,31296 33458,31297,33520,31297 33456,31297,33456,31297 33522,31298,33524,31298 33454,31298,33520,31298 33528,31299,33528,31299 33452,31299,33519,31299 33521,31299,33524,31299 33452,31300,33524,31300 33526,31300,33529,31300 33448,31301,33448,31301 33452,31301,33529,31302 33441,31302,33450,31302 33440,31303,33528,31303 33440,31304,33529,31304 33440,31305,33530,31305 33440,31306,33531,31306 33439,31307,33530,31307 33438,31308,33529,31308 33437,31309,33529,31309 33437,31310,33528,31310 33435,31311,33528,31311 33434,31312,33528,31313 33504,31314,33528,31314 33500,31314,33502,31314 33433,31314,33497,31314 33508,31315,33529,31315 33490,31315,33497,31315 33432,31315,33488,31316 33508,31316,33528,31316 33490,31316,33496,31317 33509,31317,33529,31317 33432,31317,33487,31317 33433,31318,33487,31318 33510,31318,33530,31320 33435,31319,33487,31320 33484,31321,33486,31321 33509,31321,33530,31321 33435,31321,33480,31322 33509,31322,33531,31323 33434,31323,33479,31325 33510,31324,33531,31325 33435,31326,33480,31326 33511,31326,33532,31326 33491,31318,33496,31327 33513,31327,33532,31327 33436,31327,33480,31327 33437,31328,33480,31328 33514,31328,33531,31328 33531,31329,33531,31329 33515,31329,33528,31329 33439,31329,33480,31329 33518,31330,33528,31330 33439,31330,33473,31330 33439,31331,33472,31331 33440,31332,33469,31332 33518,31331,33526,31333 33440,31333,33468,31333 33524,31334,33524,31334 33440,31334,33463,31334 33519,31334,33521,31334 33526,31334,33526,31335 33440,31335,33462,31335 33441,31336,33460,31336 33442,31337,33460,31339 33440,31340,33460,31340 33440,31341,33459,31342 33440,31343,33458,31343 33441,31344,33459,31344 33448,31345,33459,31345 33442,31345,33446,31345 33443,31346,33445,31346 33450,31346,33459,31346 33451,31347,33459,31347 33452,31348,33459,31348 33452,31349,33460,31351 33452,31352,33462,31352 33452,31353,33463,31353 33453,31354,33463,31354 33454,31355,33463,31355 33457,31356,33463,31356 33457,31357,33462,31357", + }, + [303] = { -- Ogre Village (2138 tiles, 10 rects) + name = "Ogre Village", + mainArea = 16, + bbox = { x1 = 33616, y1 = 31646, x2 = 33664, y2 = 31694 }, + rects = "33616,31646,33637,31646 33616,31647,33638,31647 33658,31648,33659,31648 33616,31648,33655,31648 33616,31649,33660,31653 33616,31654,33661,31654 33616,31655,33664,31686 33616,31687,33661,31689 33616,31690,33630,31693 33616,31694,33629,31694", + }, + [306] = { -- Boss Lairs (682 tiles, 14 rects) + name = "Boss Lairs", + mainArea = 305, + bbox = { x1 = 33578, y1 = 31177, x2 = 33735, y2 = 31354 }, + rects = "33720,31177,33735,31177 33711,31177,33716,31177 33710,31178,33735,31178 33709,31179,33735,31179 33708,31180,33735,31180 33707,31181,33735,31181 33706,31182,33735,31182 33705,31183,33735,31183 33706,31184,33735,31184 33707,31185,33735,31185 33708,31186,33735,31186 33709,31187,33735,31187 33710,31188,33735,31189 33578,31336,33594,31354", + }, + [307] = { -- Adventurers' Guild (1714 tiles, 75 rects) + name = "Adventurers' Guild", + mainArea = 24, + bbox = { x1 = 32145, y1 = 32265, x2 = 32217, y2 = 32319 }, + rects = "32202,32265,32203,32265 32202,32266,32204,32266 32203,32267,32206,32268 32205,32269,32209,32269 32204,32270,32211,32270 32203,32271,32213,32271 32203,32272,32214,32272 32202,32273,32215,32273 32199,32274,32215,32275 32200,32276,32212,32276 32201,32277,32213,32277 32202,32278,32215,32279 32202,32280,32214,32282 32202,32283,32213,32283 32202,32284,32210,32284 32212,32284,32213,32284 32206,32285,32210,32286 32200,32287,32210,32287 32188,32287,32190,32287 32192,32287,32194,32287 32159,32288,32165,32288 32187,32288,32210,32288 32156,32289,32168,32289 32186,32289,32211,32289 32186,32290,32215,32290 32155,32290,32169,32290 32151,32291,32170,32291 32187,32291,32215,32291 32150,32292,32170,32292 32187,32292,32214,32293 32150,32293,32171,32293 32188,32294,32215,32294 32151,32294,32172,32294 32152,32295,32172,32295 32186,32295,32215,32295 32184,32296,32215,32297 32152,32296,32176,32297 32147,32298,32148,32298 32152,32298,32177,32298 32153,32299,32178,32299 32146,32299,32149,32299 32184,32298,32216,32300 32146,32300,32178,32301 32183,32301,32217,32302 32145,32302,32177,32302 32145,32303,32176,32303 32146,32304,32176,32304 32184,32303,32217,32305 32149,32305,32177,32305 32149,32306,32178,32306 32186,32306,32216,32306 32187,32307,32216,32307 32150,32307,32179,32307 32187,32308,32215,32308 32151,32308,32180,32309 32187,32309,32214,32309 32150,32310,32179,32310 32187,32310,32211,32311 32150,32311,32174,32312 32190,32312,32210,32312 32205,32313,32208,32313 32195,32313,32203,32313 32151,32313,32173,32313 32171,32314,32172,32314 32206,32314,32207,32314 32153,32314,32167,32314 32197,32314,32201,32314 32162,32315,32163,32315 32199,32315,32200,32315 32165,32315,32166,32315 32153,32315,32157,32315 32152,32316,32156,32316 32151,32317,32155,32317 32151,32318,32154,32318 32152,32319,32153,32319", + }, + [308] = { -- Fae Village (1913 tiles, 49 rects) + name = "Fae Village", + mainArea = 9, + bbox = { x1 = 33470, y1 = 32212, x2 = 33535, y2 = 32258 }, + rects = "33492,32212,33498,32212 33489,32213,33499,32213 33488,32214,33500,32214 33486,32215,33501,32215 33484,32216,33503,32216 33483,32217,33506,32217 33483,32218,33511,32218 33482,32219,33511,32219 33481,32220,33512,32220 33480,32221,33513,32221 33479,32222,33513,32222 33477,32223,33514,32223 33476,32224,33515,32224 33474,32225,33518,32225 33474,32226,33519,32226 33473,32227,33520,32227 33472,32228,33521,32228 33471,32229,33521,32229 33471,32230,33522,32230 33471,32231,33523,32231 33470,32232,33523,32232 33470,32233,33524,32233 33530,32234,33531,32234 33470,32234,33525,32234 33470,32235,33533,32235 33471,32236,33533,32236 33471,32237,33534,32237 33471,32238,33535,32238 33472,32239,33535,32239 33472,32240,33533,32240 33473,32241,33532,32241 33474,32242,33531,32242 33475,32243,33530,32243 33476,32244,33528,32244 33476,32245,33527,32245 33477,32246,33526,32246 33479,32247,33526,32247 33480,32248,33525,32248 33481,32249,33525,32249 33483,32250,33525,32250 33484,32251,33525,32251 33487,32252,33524,32252 33488,32253,33524,32253 33503,32254,33523,32254 33491,32254,33494,32254 33508,32255,33522,32255 33512,32256,33521,32256 33513,32257,33520,32257 33517,32258,33520,32258", + }, + [309] = { -- Port Hope City (8053 tiles, 248 rects) + name = "Port Hope City", + mainArea = 19, + bbox = { x1 = 32520, y1 = 32695, x2 = 32746, y2 = 32819 }, + rects = "32743,32695,32745,32696 32743,32697,32746,32697 32620,32721,32633,32721 32614,32722,32633,32722 32602,32723,32633,32730 32602,32731,32638,32731 32602,32732,32649,32732 32663,32727,32675,32737 32604,32733,32649,32737 32657,32738,32676,32738 32603,32738,32649,32738 32589,32739,32692,32739 32579,32740,32692,32746 32579,32747,32669,32747 32685,32747,32692,32747 32689,32748,32692,32748 32579,32748,32667,32748 32579,32749,32666,32749 32571,32750,32664,32750 32674,32750,32681,32750 32671,32751,32686,32751 32571,32751,32663,32751 32670,32752,32688,32752 32571,32752,32662,32753 32670,32753,32693,32753 32571,32754,32661,32754 32669,32754,32695,32754 32571,32755,32659,32755 32666,32755,32697,32755 32665,32756,32697,32756 32540,32756,32545,32756 32571,32756,32658,32757 32663,32757,32673,32757 32539,32757,32548,32757 32680,32757,32692,32757 32536,32757,32537,32757 32662,32758,32672,32758 32683,32758,32691,32758 32571,32758,32657,32758 32535,32758,32550,32759 32571,32759,32656,32759 32661,32759,32669,32759 32535,32760,32552,32760 32571,32760,32655,32760 32660,32760,32663,32760 32536,32761,32555,32761 32659,32761,32662,32761 32571,32761,32654,32761 32659,32762,32661,32762 32539,32762,32556,32762 32570,32762,32654,32762 32677,32762,32679,32762 32540,32763,32544,32763 32697,32763,32697,32763 32546,32763,32556,32763 32676,32763,32681,32763 32659,32763,32660,32763 32570,32763,32653,32763 32672,32764,32685,32764 32696,32764,32697,32764 32566,32764,32652,32764 32536,32764,32537,32764 32541,32764,32543,32764 32546,32764,32557,32764 32567,32765,32650,32765 32547,32765,32559,32765 32693,32765,32697,32765 32667,32765,32686,32765 32535,32765,32537,32766 32567,32766,32649,32766 32549,32766,32559,32766 32692,32766,32697,32766 32666,32766,32686,32766 32543,32766,32545,32766 32551,32767,32560,32767 32665,32767,32685,32767 32572,32767,32649,32767 32691,32767,32697,32767 32540,32767,32545,32767 32567,32767,32570,32767 32552,32768,32560,32768 32690,32768,32697,32768 32664,32768,32684,32768 32573,32768,32649,32768 32539,32768,32549,32768 32663,32769,32683,32769 32538,32769,32549,32769 32552,32769,32556,32769 32689,32769,32697,32769 32573,32769,32648,32769 32658,32769,32660,32769 32562,32770,32565,32770 32688,32770,32697,32770 32658,32770,32680,32770 32575,32770,32646,32770 32558,32769,32558,32771 32535,32770,32550,32771 32687,32771,32698,32771 32657,32771,32677,32771 32561,32771,32568,32771 32576,32771,32644,32771 32539,32772,32550,32772 32634,32772,32643,32772 32656,32772,32671,32772 32576,32772,32631,32772 32554,32772,32570,32772 32686,32772,32698,32772 32639,32773,32641,32773 32684,32773,32699,32773 32656,32773,32669,32773 32577,32773,32587,32773 32542,32773,32549,32773 32592,32773,32625,32773 32553,32773,32571,32774 32544,32774,32547,32774 32682,32774,32695,32774 32656,32774,32668,32774 32599,32774,32612,32774 32578,32774,32583,32774 32601,32775,32611,32775 32676,32775,32687,32775 32552,32775,32571,32775 32658,32775,32667,32775 32579,32775,32582,32775 32551,32776,32570,32776 32649,32776,32653,32776 32663,32776,32665,32776 32675,32776,32686,32776 32673,32777,32684,32777 32648,32777,32654,32777 32539,32777,32541,32777 32601,32776,32604,32778 32548,32777,32567,32778 32647,32778,32655,32778 32670,32778,32682,32778 32538,32778,32543,32779 32549,32779,32566,32779 32590,32779,32594,32779 32574,32779,32575,32779 32669,32779,32681,32779 32602,32779,32603,32779 32627,32779,32629,32779 32635,32779,32637,32779 32643,32779,32660,32779 32614,32780,32630,32780 32540,32780,32544,32780 32634,32780,32681,32780 32552,32780,32564,32780 32573,32780,32577,32780 32587,32780,32595,32780 32524,32781,32539,32781 32541,32781,32545,32781 32552,32781,32562,32781 32613,32781,32681,32781 32570,32781,32596,32781 32553,32782,32555,32782 32569,32782,32597,32782 32611,32782,32681,32782 32523,32782,32539,32782 32541,32782,32547,32782 32606,32783,32681,32783 32520,32783,32539,32783 32568,32783,32598,32783 32541,32783,32548,32783 32520,32784,32540,32784 32566,32784,32598,32784 32556,32784,32562,32784 32543,32784,32548,32784 32606,32784,32675,32785 32545,32785,32548,32785 32555,32785,32562,32785 32565,32785,32600,32785 32522,32785,32541,32785 32552,32786,32561,32786 32565,32786,32674,32786 32547,32786,32548,32786 32523,32786,32542,32786 32524,32787,32542,32787 32551,32787,32560,32787 32565,32787,32672,32788 32532,32788,32542,32788 32547,32788,32559,32788 32564,32789,32672,32789 32546,32789,32559,32789 32532,32789,32543,32789 32546,32790,32558,32790 32563,32790,32672,32790 32533,32790,32543,32790 32534,32791,32544,32791 32562,32791,32672,32791 32546,32791,32556,32791 32535,32792,32544,32792 32547,32792,32548,32792 32561,32792,32672,32792 32560,32793,32672,32793 32536,32793,32543,32793 32537,32794,32542,32794 32550,32794,32556,32794 32560,32794,32597,32794 32602,32794,32672,32794 32602,32795,32642,32795 32546,32795,32556,32795 32537,32795,32541,32795 32560,32795,32594,32796 32537,32796,32540,32796 32615,32796,32642,32796 32544,32796,32555,32796 32543,32797,32555,32797 32538,32797,32539,32797 32559,32797,32594,32797 32616,32797,32642,32798 32575,32798,32593,32798 32537,32798,32539,32799 32559,32798,32564,32799 32542,32798,32555,32799 32586,32799,32591,32800 32538,32800,32539,32800 32541,32800,32553,32800 32558,32800,32564,32801 32541,32801,32552,32801 32628,32799,32642,32802 32587,32801,32591,32802 32540,32802,32552,32802 32557,32802,32564,32802 32657,32795,32672,32803 32540,32803,32551,32803 32556,32803,32564,32804 32541,32804,32551,32804 32542,32805,32550,32805 32555,32805,32564,32806 32538,32806,32550,32806 32554,32807,32564,32807 32538,32807,32549,32807 32539,32808,32564,32808 32540,32809,32548,32809 32553,32809,32564,32810 32538,32810,32547,32810 32537,32811,32545,32811 32552,32811,32564,32812 32534,32812,32544,32812 32534,32813,32543,32813 32550,32813,32564,32813 32534,32814,32540,32814 32548,32814,32563,32814 32551,32815,32557,32815 32533,32815,32539,32816 32551,32816,32556,32816 32535,32817,32538,32819", + }, + [312] = { -- Liberty Bay City (15258 tiles, 221 rects) + name = "Liberty Bay City", + mainArea = 17, + bbox = { x1 = 32248, y1 = 32498, x2 = 32398, y2 = 32906 }, + rects = "32357,32498,32364,32500 32353,32501,32364,32505 32352,32506,32363,32506 32351,32507,32364,32507 32350,32508,32364,32508 32351,32509,32364,32509 32352,32510,32355,32510 32353,32511,32354,32511 32292,32550,32295,32550 32291,32551,32296,32551 32290,32552,32297,32555 32291,32556,32296,32556 32292,32557,32295,32557 32384,32572,32390,32572 32384,32573,32394,32573 32378,32574,32394,32575 32378,32576,32379,32576 32381,32576,32394,32576 32378,32577,32394,32577 32378,32578,32384,32578 32386,32578,32386,32578 32388,32578,32394,32578 32378,32579,32379,32579 32381,32579,32394,32579 32382,32580,32383,32580 32388,32580,32394,32580 32385,32580,32386,32580 32382,32581,32391,32581 32382,32582,32389,32582 32383,32583,32383,32583 32397,32707,32398,32707 32388,32707,32395,32707 32388,32708,32398,32708 32389,32709,32389,32709 32397,32709,32398,32715 32388,32710,32395,32715 32311,32750,32322,32750 32274,32751,32326,32751 32272,32752,32333,32752 32266,32753,32339,32753 32266,32754,32298,32754 32303,32754,32341,32754 32304,32755,32343,32755 32265,32755,32301,32755 32264,32756,32301,32756 32306,32756,32345,32756 32264,32757,32346,32757 32264,32758,32347,32758 32264,32759,32348,32759 32263,32760,32349,32761 32262,32762,32350,32762 32261,32763,32351,32764 32261,32765,32352,32765 32261,32766,32353,32766 32261,32767,32354,32767 32260,32768,32355,32768 32260,32769,32356,32769 32259,32770,32357,32770 32257,32771,32358,32771 32256,32772,32359,32772 32255,32773,32359,32773 32255,32774,32360,32774 32254,32775,32362,32775 32253,32776,32364,32776 32252,32777,32366,32777 32252,32778,32367,32778 32257,32779,32368,32779 32252,32779,32255,32780 32258,32780,32369,32781 32252,32781,32256,32782 32260,32782,32370,32782 32261,32783,32370,32783 32251,32783,32258,32783 32262,32784,32371,32784 32251,32784,32259,32784 32251,32785,32260,32785 32262,32785,32372,32785 32251,32786,32373,32786 32251,32787,32374,32788 32251,32789,32375,32789 32372,32790,32375,32790 32251,32790,32369,32791 32373,32791,32375,32791 32372,32792,32375,32792 32251,32792,32370,32792 32251,32793,32376,32793 32250,32794,32376,32794 32250,32795,32377,32795 32250,32796,32378,32796 32250,32797,32379,32797 32249,32798,32380,32798 32249,32799,32261,32799 32263,32799,32381,32799 32249,32800,32260,32800 32262,32800,32381,32800 32249,32801,32381,32801 32249,32802,32382,32805 32249,32806,32381,32806 32249,32807,32380,32809 32249,32810,32379,32811 32249,32812,32378,32812 32249,32813,32377,32813 32250,32814,32377,32814 32250,32815,32376,32815 32250,32816,32375,32818 32250,32819,32374,32819 32251,32820,32374,32820 32251,32821,32347,32821 32349,32821,32373,32822 32251,32822,32294,32822 32297,32822,32347,32822 32252,32823,32347,32823 32349,32823,32372,32823 32252,32824,32372,32836 32252,32837,32365,32837 32367,32837,32373,32838 32251,32838,32362,32838 32368,32839,32372,32839 32251,32839,32363,32840 32370,32840,32372,32840 32371,32841,32372,32841 32360,32841,32363,32841 32360,32842,32362,32842 32372,32842,32372,32842 32360,32843,32361,32844 32250,32841,32358,32846 32360,32845,32362,32847 32250,32847,32353,32847 32248,32848,32361,32849 32248,32850,32360,32850 32352,32851,32355,32851 32248,32851,32346,32851 32358,32851,32359,32851 32248,32852,32350,32852 32248,32853,32351,32854 32249,32855,32338,32855 32341,32855,32351,32855 32342,32856,32351,32857 32249,32856,32337,32857 32249,32858,32271,32858 32273,32858,32336,32858 32342,32858,32352,32858 32343,32859,32352,32859 32249,32859,32272,32859 32274,32859,32334,32859 32344,32860,32352,32860 32249,32860,32330,32860 32332,32860,32333,32860 32344,32861,32353,32861 32249,32861,32328,32862 32345,32862,32353,32862 32249,32863,32327,32863 32351,32863,32352,32863 32249,32864,32328,32865 32249,32866,32327,32866 32249,32867,32326,32867 32249,32868,32322,32868 32324,32868,32325,32868 32250,32869,32321,32869 32250,32870,32320,32870 32250,32871,32319,32874 32250,32875,32321,32875 32250,32876,32322,32876 32250,32877,32286,32877 32288,32877,32325,32877 32321,32878,32326,32878 32250,32878,32281,32878 32289,32878,32318,32878 32322,32879,32327,32879 32290,32879,32317,32879 32279,32879,32280,32879 32250,32879,32277,32880 32289,32880,32317,32880 32321,32880,32328,32880 32319,32881,32328,32881 32289,32881,32313,32881 32284,32881,32285,32882 32250,32881,32278,32882 32318,32882,32327,32882 32289,32882,32308,32882 32290,32883,32293,32883 32318,32883,32325,32883 32250,32883,32277,32883 32284,32883,32286,32883 32295,32883,32308,32883 32296,32884,32308,32884 32250,32884,32275,32884 32283,32884,32287,32884 32319,32884,32320,32884 32250,32885,32274,32885 32282,32885,32288,32885 32297,32885,32308,32885 32313,32885,32314,32886 32301,32886,32308,32886 32250,32886,32273,32886 32250,32887,32271,32887 32301,32887,32309,32887 32313,32887,32315,32887 32297,32887,32298,32888 32302,32888,32309,32888 32312,32888,32316,32888 32250,32888,32270,32888 32297,32889,32299,32889 32250,32889,32269,32889 32303,32889,32308,32889 32250,32890,32268,32890 32296,32890,32300,32890 32250,32891,32267,32892 32250,32893,32266,32894 32249,32895,32251,32895 32253,32895,32266,32895 32254,32896,32255,32896 32259,32896,32265,32896 32259,32897,32264,32897 32260,32898,32263,32898 32281,32886,32289,32903 32311,32889,32317,32903 32285,32904,32285,32904 32314,32904,32314,32904 32295,32891,32301,32905 32298,32906,32298,32906", + }, + [313] = { -- Krailos Mines (224 tiles, 47 rects) + name = "Krailos Mines", + mainArea = 16, + bbox = { x1 = 33604, y1 = 31781, x2 = 33684, y2 = 31800 }, + rects = "33605,31781,33605,31781 33607,31781,33610,31781 33605,31782,33609,31782 33604,31783,33605,31783 33607,31783,33608,31783 33604,31784,33607,31784 33605,31785,33609,31785 33606,31786,33609,31786 33644,31786,33645,31786 33640,31787,33644,31787 33648,31787,33651,31787 33680,31787,33680,31787 33646,31787,33646,31787 33678,31788,33679,31788 33640,31788,33651,31788 33678,31789,33678,31789 33640,31789,33657,31789 33639,31790,33657,31790 33634,31790,33635,31790 33676,31790,33678,31790 33637,31790,33637,31790 33658,31791,33658,31791 33662,31791,33663,31791 33674,31791,33678,31791 33635,31791,33653,31791 33639,31792,33652,31792 33673,31792,33678,31792 33664,31792,33665,31792 33658,31792,33661,31792 33641,31793,33643,31793 33666,31793,33666,31793 33672,31793,33684,31793 33660,31793,33661,31793 33647,31793,33651,31793 33648,31794,33649,31794 33671,31794,33682,31794 33667,31794,33668,31794 33642,31794,33643,31794 33681,31795,33681,31795 33647,31795,33648,31795 33669,31795,33670,31795 33672,31795,33678,31796 33647,31796,33647,31796 33674,31797,33678,31797 33676,31798,33679,31798 33679,31799,33679,31799 33680,31800,33680,31800", + }, + [314] = { -- Feyrist Meadows (19595 tiles, 441 rects) + name = "Feyrist Meadows", + mainArea = 9, + bbox = { x1 = 33376, y1 = 32148, x2 = 33604, y2 = 32334 }, + rects = "33462,32148,33464,32148 33547,32148,33549,32148 33523,32148,33528,32148 33523,32149,33530,32149 33545,32149,33549,32149 33461,32149,33465,32149 33461,32150,33466,32150 33543,32150,33549,32150 33524,32150,33534,32150 33460,32151,33467,32151 33526,32151,33534,32151 33540,32151,33550,32151 33459,32152,33467,32152 33528,32152,33551,32152 33458,32153,33468,32153 33529,32153,33552,32153 33457,32154,33469,32154 33530,32154,33552,32154 33530,32155,33553,32155 33457,32155,33470,32155 33456,32156,33471,32156 33528,32156,33553,32156 33527,32157,33554,32157 33455,32157,33471,32157 33525,32158,33554,32158 33454,32158,33472,32158 33520,32159,33556,32159 33452,32159,33472,32160 33520,32160,33557,32160 33520,32161,33559,32161 33452,32161,33471,32161 33508,32162,33512,32162 33521,32162,33559,32162 33453,32162,33471,32162 33506,32163,33516,32163 33522,32163,33559,32163 33455,32163,33470,32163 33523,32164,33559,32164 33458,32164,33469,32164 33506,32164,33517,32164 33460,32165,33467,32165 33524,32165,33559,32165 33508,32165,33519,32165 33509,32166,33520,32166 33461,32166,33465,32166 33525,32166,33558,32167 33462,32167,33464,32167 33510,32167,33521,32167 33526,32168,33558,32168 33511,32168,33522,32168 33512,32169,33523,32169 33526,32169,33557,32169 33565,32169,33568,32169 33526,32170,33559,32170 33563,32170,33568,32170 33513,32170,33523,32171 33525,32171,33569,32171 33512,32172,33523,32172 33525,32172,33570,32173 33511,32173,33522,32174 33524,32174,33571,32174 33510,32175,33521,32175 33524,32175,33573,32175 33576,32175,33578,32175 33603,32175,33604,32175 33509,32176,33521,32176 33523,32176,33578,32176 33602,32176,33604,32176 33509,32177,33520,32177 33523,32177,33577,32177 33600,32177,33604,32177 33597,32178,33603,32178 33522,32178,33577,32178 33500,32178,33501,32178 33508,32178,33519,32178 33521,32179,33578,32179 33594,32179,33603,32179 33499,32179,33503,32179 33506,32179,33517,32179 33519,32180,33578,32180 33592,32180,33602,32180 33499,32180,33516,32180 33591,32181,33601,32181 33498,32181,33515,32181 33518,32181,33579,32181 33589,32182,33601,32182 33497,32182,33580,32183 33585,32183,33601,32183 33496,32184,33579,32184 33584,32184,33602,32184 33583,32185,33602,32185 33495,32185,33579,32185 33495,32186,33578,32186 33582,32186,33601,32186 33580,32187,33600,32187 33494,32187,33577,32187 33579,32188,33600,32188 33480,32188,33484,32188 33494,32188,33576,32188 33479,32189,33485,32189 33493,32189,33600,32189 33479,32190,33487,32190 33493,32190,33601,32190 33481,32191,33488,32191 33492,32191,33601,32192 33481,32192,33489,32192 33491,32193,33600,32193 33478,32193,33489,32193 33441,32193,33445,32193 33478,32194,33600,32194 33440,32194,33446,32194 33475,32195,33600,32195 33438,32195,33450,32195 33473,32196,33599,32196 33437,32196,33452,32196 33434,32197,33452,32197 33472,32197,33598,32197 33458,32198,33461,32198 33471,32198,33598,32198 33434,32198,33451,32198 33433,32199,33451,32199 33457,32199,33464,32199 33469,32199,33597,32199 33456,32200,33597,32200 33432,32200,33451,32200 33455,32201,33596,32201 33431,32201,33451,32202 33454,32202,33596,32202 33453,32203,33596,32203 33430,32203,33450,32204 33376,32204,33378,32204 33419,32204,33420,32204 33429,32205,33449,32205 33376,32205,33379,32205 33418,32205,33421,32205 33452,32204,33596,32206 33418,32206,33422,32206 33376,32206,33380,32206 33428,32206,33448,32206 33417,32207,33423,32207 33451,32207,33596,32207 33427,32207,33445,32207 33377,32207,33381,32207 33377,32208,33382,32208 33416,32208,33443,32208 33447,32208,33596,32208 33415,32209,33596,32209 33378,32209,33384,32209 33379,32210,33386,32210 33409,32210,33595,32210 33379,32211,33388,32211 33407,32211,33595,32211 33499,32212,33595,32212 33380,32212,33392,32212 33407,32212,33491,32212 33500,32213,33594,32213 33381,32213,33397,32213 33408,32213,33488,32213 33381,32214,33401,32214 33408,32214,33487,32214 33501,32214,33593,32214 33409,32215,33485,32215 33382,32215,33403,32215 33502,32215,33593,32215 33382,32216,33406,32216 33504,32216,33592,32216 33411,32216,33483,32216 33383,32217,33408,32217 33507,32217,33592,32217 33413,32217,33482,32217 33512,32218,33591,32218 33383,32218,33409,32218 33414,32218,33482,32218 33384,32219,33412,32219 33415,32219,33481,32219 33512,32219,33590,32219 33384,32220,33480,32220 33513,32220,33590,32220 33385,32221,33479,32221 33514,32221,33589,32221 33514,32222,33588,32222 33386,32222,33478,32222 33386,32223,33476,32223 33515,32223,33587,32223 33387,32224,33475,32224 33516,32224,33586,32224 33387,32225,33473,32225 33519,32225,33584,32225 33388,32226,33473,32226 33520,32226,33583,32226 33389,32227,33472,32227 33521,32227,33582,32227 33392,32228,33471,32228 33522,32228,33580,32228 33392,32229,33470,32229 33522,32229,33579,32229 33391,32230,33470,32230 33523,32230,33577,32230 33387,32231,33470,32231 33524,32231,33576,32231 33387,32232,33469,32232 33524,32232,33575,32232 33397,32233,33469,32233 33390,32233,33391,32233 33525,32233,33574,32233 33526,32234,33529,32234 33532,32234,33574,32234 33398,32234,33469,32235 33534,32235,33539,32235 33543,32235,33573,32235 33546,32236,33572,32236 33534,32236,33538,32236 33396,32236,33470,32236 33535,32237,33538,32237 33549,32237,33572,32237 33395,32237,33470,32238 33551,32238,33572,32238 33536,32238,33537,32238 33552,32239,33572,32239 33397,32239,33471,32239 33403,32240,33471,32240 33553,32240,33572,32240 33554,32241,33571,32241 33404,32241,33472,32241 33541,32241,33542,32241 33544,32241,33545,32241 33540,32242,33546,32242 33405,32242,33473,32242 33555,32242,33571,32243 33539,32243,33546,32243 33405,32243,33474,32243 33537,32244,33546,32244 33406,32244,33475,32245 33556,32244,33571,32245 33536,32245,33545,32245 33536,32246,33544,32246 33407,32246,33476,32246 33555,32246,33571,32247 33408,32247,33478,32247 33537,32247,33543,32247 33554,32248,33572,32248 33537,32248,33542,32248 33408,32248,33479,32248 33408,32249,33480,32249 33554,32249,33573,32249 33538,32249,33542,32249 33553,32250,33573,32250 33539,32250,33541,32250 33407,32250,33413,32250 33420,32250,33482,32250 33423,32251,33483,32251 33406,32251,33413,32251 33552,32251,33573,32252 33406,32252,33411,32252 33525,32252,33525,32252 33425,32252,33486,32252 33552,32253,33574,32253 33427,32253,33487,32253 33405,32253,33409,32253 33525,32253,33526,32253 33495,32254,33502,32254 33552,32254,33575,32254 33430,32254,33490,32254 33405,32254,33407,32254 33524,32254,33526,32254 33421,32255,33425,32255 33431,32255,33507,32255 33523,32255,33527,32255 33551,32255,33576,32255 33421,32256,33428,32256 33431,32256,33511,32256 33551,32256,33577,32256 33534,32256,33535,32256 33522,32256,33528,32256 33521,32257,33538,32257 33420,32257,33512,32257 33551,32257,33580,32257 33540,32257,33542,32257 33521,32258,33544,32258 33549,32258,33582,32258 33418,32258,33516,32258 33418,32259,33584,32259 33419,32260,33588,32260 33592,32260,33593,32260 33419,32261,33589,32262 33591,32261,33594,32262 33419,32263,33588,32263 33590,32263,33594,32264 33420,32264,33587,32264 33588,32265,33593,32265 33421,32265,33586,32265 33587,32266,33593,32266 33422,32266,33576,32266 33580,32266,33581,32266 33577,32267,33579,32267 33422,32267,33575,32267 33583,32267,33594,32267 33576,32268,33595,32268 33421,32268,33574,32268 33575,32269,33596,32269 33570,32269,33573,32269 33421,32269,33567,32269 33421,32270,33566,32270 33574,32270,33596,32270 33568,32270,33569,32270 33567,32271,33596,32271 33422,32271,33565,32271 33423,32272,33564,32272 33566,32272,33595,32272 33566,32273,33594,32273 33424,32273,33563,32273 33564,32274,33593,32274 33425,32274,33562,32274 33426,32275,33592,32275 33425,32276,33589,32276 33426,32277,33557,32277 33559,32277,33585,32277 33559,32278,33584,32278 33425,32278,33555,32278 33555,32279,33580,32279 33424,32279,33553,32279 33555,32280,33572,32280 33424,32280,33445,32280 33449,32280,33552,32280 33554,32281,33571,32281 33424,32281,33442,32281 33452,32281,33551,32281 33424,32282,33441,32282 33553,32282,33570,32282 33455,32282,33550,32282 33552,32283,33569,32283 33424,32283,33440,32283 33456,32283,33549,32283 33550,32284,33564,32284 33424,32284,33439,32284 33456,32284,33548,32284 33550,32285,33563,32285 33424,32285,33437,32285 33425,32286,33436,32286 33457,32285,33547,32287 33549,32286,33562,32287 33426,32287,33433,32287 33548,32288,33561,32288 33457,32288,33546,32288 33548,32289,33556,32289 33456,32289,33546,32289 33455,32290,33545,32290 33547,32290,33555,32290 33547,32291,33552,32291 33454,32291,33545,32291 33548,32292,33550,32292 33454,32292,33544,32292 33546,32293,33550,32293 33453,32293,33544,32293 33453,32294,33479,32294 33546,32294,33551,32294 33485,32294,33544,32294 33453,32295,33477,32295 33547,32295,33554,32295 33486,32295,33544,32295 33488,32296,33545,32296 33452,32296,33476,32296 33550,32296,33555,32296 33551,32297,33556,32297 33452,32297,33475,32297 33488,32297,33546,32297 33489,32298,33548,32298 33451,32298,33473,32298 33552,32298,33556,32299 33489,32299,33549,32299 33450,32299,33470,32299 33449,32300,33467,32300 33553,32300,33556,32301 33490,32300,33550,32301 33449,32301,33462,32301 33554,32302,33555,32302 33448,32302,33461,32302 33490,32302,33549,32302 33490,32303,33548,32303 33553,32303,33554,32303 33448,32303,33458,32303 33551,32304,33554,32304 33448,32304,33457,32304 33489,32304,33547,32304 33550,32305,33553,32305 33448,32305,33456,32305 33489,32305,33545,32305 33488,32306,33544,32306 33546,32306,33552,32306 33447,32306,33454,32306 33546,32307,33551,32307 33447,32307,33453,32307 33447,32308,33452,32308 33545,32308,33549,32308 33487,32307,33543,32309 33545,32309,33548,32309 33447,32309,33450,32310 33544,32310,33547,32310 33486,32310,33535,32310 33540,32310,33542,32310 33447,32311,33449,32311 33485,32311,33534,32311 33536,32311,33538,32311 33544,32311,33546,32311 33535,32312,33538,32312 33543,32312,33545,32312 33485,32312,33533,32312 33535,32313,33539,32313 33541,32313,33544,32313 33535,32314,33542,32314 33484,32313,33533,32315 33536,32315,33540,32315 33537,32316,33539,32316 33483,32316,33534,32316 33483,32317,33535,32317 33539,32317,33539,32317 33482,32318,33537,32319 33482,32320,33503,32320 33508,32320,33536,32320 33483,32321,33500,32321 33509,32321,33536,32321 33512,32322,33536,32322 33483,32322,33498,32322 33513,32323,33535,32323 33483,32323,33497,32323 33484,32324,33494,32324 33517,32324,33534,32324 33484,32325,33492,32325 33519,32325,33534,32325 33485,32326,33491,32326 33520,32326,33533,32326 33485,32327,33489,32327 33521,32327,33533,32327 33522,32328,33532,32328 33486,32328,33487,32328 33523,32329,33531,32329 33524,32330,33530,32330 33524,32331,33529,32331 33524,32332,33528,32332 33525,32333,33527,32333 33526,32334,33527,32334", + }, + [315] = { -- Dawnport Centre (6642 tiles, 332 rects) + name = "Dawnport Centre", + mainArea = 5, + bbox = { x1 = 32014, y1 = 31845, x2 = 32119, y2 = 31945 }, + rects = "32077,31845,32078,31845 32076,31846,32078,31846 32076,31847,32077,31847 32075,31848,32078,31848 32075,31849,32079,31849 32074,31850,32079,31850 32073,31851,32078,31851 32038,31851,32039,31851 32082,31852,32084,31852 32036,31852,32039,31853 32055,31853,32055,31853 32080,31853,32084,31853 32073,31852,32077,31854 32044,31854,32044,31854 32079,31854,32083,31854 32051,31854,32052,31854 32037,31854,32039,31854 32068,31855,32068,31855 32059,31855,32060,31855 32052,31855,32052,31855 32072,31855,32083,31855 32072,31856,32082,31856 32091,31856,32092,31856 32053,31856,32053,31856 32059,31856,32061,31856 32064,31856,32067,31856 32042,31856,32042,31857 32091,31857,32093,31857 32061,31857,32067,31857 32054,31857,32059,31857 32049,31857,32051,31857 32071,31857,32080,31857 32070,31858,32079,31858 32082,31858,32083,31858 32042,31858,32043,31858 32085,31858,32087,31858 32047,31858,32064,31858 32092,31858,32093,31858 32045,31858,32045,31858 32067,31858,32067,31858 32065,31859,32080,31859 32042,31859,32061,31859 32082,31859,32087,31859 32091,31859,32094,31859 32097,31859,32099,31859 32063,31859,32063,31859 32039,31859,32040,31859 32040,31860,32080,31860 32091,31860,32102,31860 32083,31860,32086,31860 32090,31861,32104,31861 32042,31861,32061,31861 32063,31861,32086,31861 32041,31862,32061,31862 32063,31862,32087,31862 32089,31862,32105,31863 32062,31863,32087,31863 32041,31863,32060,31863 32104,31864,32105,31864 32038,31864,32039,31864 32061,31864,32068,31864 32041,31864,32059,31864 32070,31864,32096,31864 32098,31864,32099,31864 32040,31865,32096,31865 32041,31866,32095,31866 32112,31866,32113,31866 32107,31866,32108,31866 32101,31866,32103,31866 32040,31867,32058,31867 32111,31867,32114,31867 32106,31867,32108,31867 32060,31867,32103,31867 32109,31868,32116,31868 32104,31868,32107,31868 32040,31868,32101,31868 32038,31868,32038,31868 32098,31869,32100,31869 32093,31869,32094,31869 32103,31869,32116,31869 32039,31869,32090,31869 32040,31870,32092,31870 32098,31870,32115,31870 32040,31871,32093,31871 32097,31871,32117,31871 32030,31871,32035,31872 32095,31872,32118,31872 32039,31872,32093,31872 32039,31873,32092,31873 32094,31873,32118,31873 32031,31873,32035,31873 32040,31874,32116,31874 32039,31875,32104,31875 32106,31875,32107,31875 32110,31875,32115,31875 32038,31876,32103,31876 32112,31876,32116,31876 32033,31876,32034,31877 32113,31877,32116,31877 32108,31877,32109,31877 32036,31877,32103,31877 32024,31877,32025,31878 32035,31878,32104,31878 32029,31878,32031,31878 32106,31878,32109,31878 32114,31878,32116,31878 32029,31879,32108,31879 32024,31879,32027,31879 32115,31879,32116,31880 32025,31880,32109,31880 32112,31881,32113,31881 32022,31881,32109,31881 32019,31882,32069,31882 32072,31882,32113,31882 32019,31883,32070,31883 32074,31883,32115,31883 32075,31884,32109,31884 32112,31884,32115,31884 32019,31884,32072,31884 32112,31885,32113,31885 32076,31885,32110,31885 32019,31885,32073,31886 32075,31886,32105,31886 32108,31886,32111,31886 32109,31887,32112,31887 32018,31887,32071,31887 32074,31887,32104,31888 32018,31888,32072,31888 32111,31888,32112,31888 32078,31889,32103,31889 32106,31889,32107,31889 32019,31889,32072,31889 32105,31890,32108,31890 32023,31890,32071,31890 32020,31890,32021,31890 32073,31890,32074,31890 32083,31890,32103,31890 32072,31891,32075,31891 32081,31891,32082,31891 32084,31891,32108,31891 32025,31891,32069,31891 32085,31892,32105,31892 32024,31892,32037,31892 32079,31892,32082,31892 32040,31892,32069,31892 32108,31892,32109,31892 32112,31892,32113,31892 32071,31892,32075,31893 32024,31893,32025,31893 32027,31893,32034,31893 32077,31893,32083,31893 32041,31893,32069,31893 32086,31893,32088,31893 32111,31893,32113,31893 32093,31893,32109,31893 32036,31894,32037,31894 32040,31894,32065,31894 32072,31894,32087,31894 32098,31894,32112,31894 32029,31894,32032,31894 32074,31895,32090,31895 32097,31895,32111,31895 32025,31895,32026,31895 32035,31895,32064,31895 32067,31895,32068,31895 32115,31895,32116,31895 32032,31896,32063,31896 32024,31896,32030,31896 32095,31896,32110,31896 32114,31896,32116,31896 32118,31896,32119,31896 32066,31896,32093,31896 32113,31897,32119,31897 32024,31897,32063,31897 32065,31897,32111,31897 32098,31898,32118,31898 32027,31898,32063,31898 32065,31898,32095,31898 32117,31899,32118,31899 32065,31899,32098,31899 32026,31899,32062,31899 32101,31899,32115,31899 32063,31900,32101,31900 32104,31900,32111,31900 32020,31900,32022,31900 32026,31900,32060,31900 32027,31901,32060,31901 32104,31901,32114,31901 32020,31901,32024,31901 32067,31901,32102,31902 32063,31901,32065,31902 32104,31902,32116,31902 32021,31902,32060,31903 32108,31903,32117,31903 32063,31903,32103,31903 32109,31904,32114,31904 32116,31904,32117,31904 32020,31904,32103,31904 32019,31905,32107,31905 32110,31905,32113,31905 32111,31906,32112,31906 32018,31906,32107,31906 32017,31907,32109,31907 32114,31908,32116,31908 32017,31908,32110,31908 32020,31909,32041,31909 32044,31909,32116,31909 32023,31910,32041,31910 32044,31910,32117,31910 32023,31911,32042,31911 32045,31911,32117,31911 32024,31912,32042,31912 32111,31912,32117,31912 32045,31912,32108,31912 32031,31913,32104,31913 32113,31913,32115,31913 32106,31913,32109,31913 32024,31913,32028,31913 32030,31914,32104,31914 32107,31914,32109,31914 32019,31914,32021,31914 32017,31915,32022,31915 32033,31915,32105,31915 32025,31915,32027,31915 32029,31915,32031,31915 32108,31915,32110,31915 32017,31916,32106,31916 32109,31916,32110,31916 32018,31917,32106,31917 32017,31918,32054,31918 32060,31918,32102,31918 32104,31918,32107,31918 32058,31918,32058,31918 32015,31919,32056,31919 32060,31919,32103,31919 32105,31919,32107,31919 32106,31920,32107,31920 32059,31920,32103,31920 32014,31920,32056,31920 32014,31921,32055,31921 32058,31921,32102,31921 32015,31922,32053,31922 32057,31922,32102,31922 32020,31923,32051,31923 32015,31923,32017,31923 32055,31923,32103,31923 32015,31924,32016,31924 32042,31924,32049,31924 32019,31924,32024,31924 32027,31924,32039,31924 32051,31924,32105,31924 32051,31925,32100,31925 32026,31925,32039,31925 32103,31925,32106,31925 32019,31925,32023,31925 32041,31925,32049,31926 32051,31926,32101,31926 32026,31926,32029,31926 32031,31926,32038,31926 32020,31926,32021,31927 32105,31926,32106,31927 32027,31927,32028,31927 32031,31927,32037,31927 32040,31927,32048,31927 32051,31927,32065,31927 32067,31927,32102,31928 32040,31928,32049,31928 32051,31928,32064,31928 32030,31928,32035,31928 32029,31929,32035,31929 32066,31929,32083,31929 32026,31929,32027,31929 32038,31929,32049,31929 32085,31929,32100,31929 32052,31929,32063,31929 32085,31930,32101,31930 32026,31930,32033,31930 32052,31930,32055,31930 32058,31930,32064,31930 32037,31930,32048,31930 32066,31930,32082,31931 32057,31931,32064,31931 32036,31931,32047,31931 32085,31931,32102,31931 32027,31931,32032,31932 32053,31932,32063,31932 32035,31932,32045,31932 32066,31932,32081,31932 32084,31932,32103,31933 32047,31932,32048,31933 32067,31933,32080,31933 32027,31933,32028,31933 32051,31933,32064,31933 32035,31933,32044,31933 32031,31933,32032,31934 32085,31934,32104,31934 32037,31934,32043,31934 32068,31934,32081,31934 32050,31934,32065,31934 32036,31935,32041,31935 32058,31935,32065,31935 32050,31935,32055,31935 32069,31935,32074,31935 32076,31935,32082,31936 32040,31936,32041,31936 32057,31936,32066,31936 32036,31936,32037,31936 32048,31936,32054,31936 32070,31936,32074,31937 32077,31937,32081,31937 32048,31937,32053,31937 32056,31937,32067,31937 32071,31938,32075,31938 32055,31938,32068,31938 32050,31938,32051,31938 32084,31935,32104,31939 32078,31938,32080,31939 32055,31939,32075,31939 32067,31940,32070,31940 32079,31940,32080,31940 32073,31940,32075,31940 32061,31940,32065,31940 32055,31940,32058,31940 32084,31940,32105,31940 32056,31941,32057,31941 32064,31941,32066,31941 32074,31941,32075,31941 32065,31942,32066,31942 32084,31941,32103,31943 32098,31944,32101,31944 32085,31944,32095,31944 32086,31945,32087,31945", + }, + [317] = { -- Rookgaard (29134 tiles, 547 rects) + name = "Rookgaard", + mainArea = 24, + bbox = { x1 = 31956, y1 = 32078, x2 = 32190, y2 = 32299 }, + rects = "32082,32078,32083,32078 32086,32079,32087,32079 32079,32079,32084,32079 32068,32079,32073,32079 32065,32080,32074,32080 32078,32080,32088,32080 32078,32081,32089,32081 32064,32081,32075,32081 32092,32082,32094,32082 32062,32082,32090,32082 32099,32082,32100,32082 32098,32083,32103,32083 32061,32083,32095,32084 32057,32084,32059,32084 32056,32085,32095,32085 32098,32084,32104,32086 32051,32086,32095,32086 32099,32087,32103,32087 32049,32087,32095,32087 32100,32088,32102,32088 32048,32088,32097,32090 32047,32091,32096,32091 32047,32092,32095,32092 32046,32093,32094,32094 32043,32095,32044,32095 32047,32095,32093,32095 32042,32096,32093,32097 32041,32098,32093,32098 32101,32099,32102,32099 32040,32099,32093,32100 32099,32100,32103,32100 32098,32101,32109,32101 32029,32101,32033,32101 32041,32101,32092,32102 32028,32102,32034,32102 32098,32102,32110,32103 32027,32103,32035,32103 32040,32103,32096,32103 32026,32104,32035,32104 32039,32104,32110,32104 32025,32105,32109,32105 32021,32106,32108,32106 32020,32107,32108,32107 32020,32108,32110,32108 32019,32109,32111,32109 32018,32110,32111,32110 32018,32111,32112,32111 32017,32112,32092,32112 32100,32112,32113,32112 32009,32113,32011,32113 32101,32113,32113,32113 32017,32113,32091,32113 32094,32114,32096,32114 32102,32114,32113,32114 32008,32114,32012,32114 32017,32114,32090,32115 32153,32115,32154,32115 32103,32115,32114,32115 32093,32115,32099,32115 32001,32115,32012,32115 32104,32116,32115,32116 32123,32116,32124,32116 32152,32116,32155,32116 32018,32116,32090,32116 32000,32116,32014,32117 32092,32116,32100,32117 32019,32117,32090,32117 32105,32117,32119,32117 32122,32117,32125,32117 32107,32118,32108,32118 32110,32118,32120,32118 32001,32118,32017,32118 32021,32118,32089,32118 32093,32118,32100,32118 32122,32118,32126,32118 32151,32117,32156,32119 32093,32119,32101,32119 32022,32119,32089,32119 32000,32119,32019,32119 32112,32119,32128,32119 32022,32120,32088,32120 32152,32120,32158,32120 32113,32120,32129,32120 32093,32120,32103,32120 32135,32120,32137,32120 32000,32120,32020,32121 32116,32121,32130,32121 32151,32121,32159,32121 32140,32121,32141,32121 32023,32121,32087,32121 32143,32121,32144,32121 32133,32121,32138,32121 32093,32121,32104,32122 32090,32122,32091,32122 32000,32122,32021,32122 32024,32122,32085,32122 32132,32122,32159,32122 32117,32122,32130,32122 32117,32123,32158,32123 32001,32123,32022,32123 32024,32123,32084,32123 32089,32123,32104,32123 32089,32124,32105,32124 32116,32124,32157,32124 31989,32124,31990,32124 32024,32124,32083,32124 31992,32124,31993,32124 32116,32125,32156,32125 32087,32125,32105,32125 32025,32125,32083,32125 32002,32124,32022,32126 31988,32125,31994,32126 32116,32126,32154,32126 32086,32126,32105,32126 32029,32126,32083,32127 31987,32127,31995,32127 32086,32127,32155,32127 32000,32127,32026,32127 32030,32128,32082,32128 31999,32128,32027,32128 32085,32128,32155,32128 31987,32128,31997,32128 31979,32128,31980,32128 31970,32128,31974,32129 31987,32129,32028,32129 32032,32129,32082,32129 31978,32129,31982,32129 32085,32129,32154,32130 31969,32130,31983,32130 31985,32130,32029,32130 32032,32130,32083,32131 32086,32131,32155,32131 31968,32131,32030,32131 32032,32132,32084,32132 31966,32132,32030,32132 32087,32132,32155,32133 31965,32133,32084,32133 31965,32134,32082,32134 32086,32134,32159,32134 31966,32135,32080,32135 32085,32135,32160,32136 31969,32136,32078,32136 32086,32137,32160,32137 31968,32137,32076,32137 32082,32137,32083,32137 31967,32138,32075,32138 32087,32138,32160,32138 32081,32138,32085,32138 32079,32139,32160,32139 31967,32139,32074,32139 31966,32140,32073,32140 32077,32140,32159,32140 31965,32141,32073,32141 32076,32141,32158,32142 32077,32143,32158,32143 31964,32142,32073,32144 32078,32144,32157,32144 32076,32145,32158,32145 32178,32145,32179,32145 32174,32145,32175,32145 31965,32145,32072,32145 32075,32146,32162,32146 31964,32146,32073,32146 32173,32146,32180,32147 32075,32147,32164,32147 32168,32147,32169,32147 31963,32147,32073,32148 31957,32149,31958,32149 31964,32149,32073,32149 32075,32148,32180,32150 31956,32150,31959,32150 31962,32150,32073,32150 31956,32151,32072,32151 32076,32151,32180,32151 32074,32152,32180,32152 31957,32152,32072,32153 32074,32153,32179,32153 32075,32154,32176,32154 31957,32154,32073,32154 31965,32155,32073,32155 32075,32155,32175,32155 31958,32155,31963,32155 32075,32156,32172,32156 31959,32156,31962,32156 31965,32156,32072,32157 31960,32157,31961,32157 32075,32157,32171,32158 31965,32158,32071,32158 31964,32159,32071,32160 32074,32159,32172,32160 32074,32161,32171,32161 31963,32161,32071,32161 32175,32162,32176,32162 32074,32162,32172,32162 31962,32162,32072,32163 32075,32163,32177,32163 31963,32164,32073,32164 32076,32164,32178,32164 31964,32165,32073,32165 32077,32165,32178,32165 32077,32166,32177,32166 31962,32166,32073,32167 32076,32167,32176,32167 32075,32168,32177,32168 31960,32168,32073,32169 32075,32169,32178,32169 32063,32170,32073,32170 32075,32170,32179,32170 31960,32170,32054,32170 32067,32171,32072,32171 31960,32171,32053,32171 31960,32172,32052,32172 32068,32172,32071,32172 32058,32172,32065,32172 32075,32171,32180,32173 32054,32173,32065,32174 32067,32174,32068,32174 32071,32174,32179,32174 32054,32175,32178,32175 32054,32176,32177,32176 31963,32173,32052,32177 32054,32177,32173,32177 31963,32178,32051,32178 32053,32178,32172,32178 32014,32179,32051,32179 32187,32179,32189,32179 31963,32179,32012,32179 32053,32179,32176,32179 32016,32180,32019,32180 32186,32180,32190,32180 32053,32180,32177,32180 31962,32180,32008,32181 32024,32180,32051,32181 32016,32181,32020,32181 32026,32182,32050,32182 31963,32182,32008,32182 32057,32181,32190,32183 32016,32182,32021,32183 31967,32183,32008,32183 32026,32183,32049,32183 31968,32184,32007,32184 32026,32184,32044,32184 32017,32184,32020,32184 32057,32184,32189,32185 32026,32185,32043,32185 31990,32185,32006,32185 31970,32185,31988,32185 32057,32186,32182,32186 31972,32186,31987,32186 32185,32186,32189,32186 31991,32186,32006,32186 32027,32186,32043,32187 31972,32187,31982,32187 31988,32187,31990,32187 32058,32187,32182,32187 31984,32187,31986,32187 32186,32187,32188,32187 31996,32187,32007,32188 31971,32188,31980,32188 32060,32188,32181,32188 32029,32188,32042,32188 31982,32188,31984,32188 31987,32188,31993,32188 32048,32189,32052,32189 31997,32189,32007,32189 31981,32189,31993,32189 32064,32189,32179,32189 32033,32189,32042,32189 31977,32189,31979,32189 31971,32189,31975,32190 32010,32190,32021,32190 31999,32190,32006,32190 31980,32190,31992,32190 32025,32190,32027,32190 32038,32190,32058,32190 32065,32190,32179,32191 32039,32191,32040,32191 31977,32191,31991,32191 31972,32191,31974,32191 32042,32191,32061,32191 32008,32191,32032,32191 31999,32191,32003,32191 31973,32192,31990,32192 32005,32192,32038,32192 32186,32192,32187,32192 32040,32192,32181,32192 32176,32193,32182,32193 32005,32193,32174,32193 32185,32193,32188,32194 32005,32194,32061,32194 32178,32194,32183,32194 31973,32193,31991,32195 32065,32194,32167,32195 32005,32195,32053,32195 32057,32195,32058,32195 32178,32195,32189,32196 32006,32196,32050,32196 32065,32196,32166,32196 31974,32196,31993,32197 32179,32197,32189,32197 32066,32197,32165,32197 32005,32197,32054,32197 32169,32194,32174,32198 32066,32198,32166,32198 31974,32198,31994,32198 32180,32198,32189,32198 32004,32198,32055,32198 32182,32199,32188,32199 32065,32199,32166,32199 31975,32199,31995,32199 32003,32199,32055,32199 32065,32200,32165,32200 32182,32200,32187,32200 32058,32200,32063,32201 31976,32200,32055,32201 32065,32201,32164,32201 32183,32201,32188,32201 32058,32202,32062,32202 31975,32202,32055,32202 32065,32202,32162,32202 32184,32202,32188,32203 32065,32203,32157,32203 31975,32203,32062,32204 32184,32204,32187,32204 31976,32205,32062,32205 32185,32205,32186,32205 32058,32206,32062,32206 31979,32206,32055,32206 32065,32204,32156,32207 32059,32207,32062,32207 31981,32207,32055,32207 32064,32208,32155,32208 31982,32208,32055,32208 31983,32209,32055,32209 32067,32209,32068,32209 32070,32209,32159,32209 31982,32210,32052,32210 32058,32210,32059,32210 32063,32210,32162,32210 32056,32211,32060,32211 31981,32211,32047,32211 32063,32211,32164,32211 32053,32212,32061,32212 31979,32212,32047,32212 32063,32212,32167,32212 31976,32212,31977,32212 32063,32213,32168,32213 32052,32213,32061,32213 31976,32213,32048,32214 32052,32214,32168,32214 32052,32215,32167,32215 31975,32215,32048,32216 32165,32216,32166,32216 32052,32216,32163,32217 31979,32217,32048,32217 31978,32218,32048,32218 32052,32218,32162,32218 32052,32219,32157,32219 31978,32219,32042,32220 32052,32220,32158,32220 32048,32221,32138,32221 31978,32221,32038,32221 32141,32221,32158,32221 31977,32222,32031,32222 32048,32222,32135,32222 32144,32222,32157,32222 32145,32223,32157,32223 32125,32223,32133,32223 31976,32223,32031,32223 32044,32223,32122,32223 32037,32224,32121,32224 32126,32224,32132,32224 32144,32224,32157,32224 32032,32224,32035,32225 31975,32224,32030,32225 32037,32225,32122,32225 32127,32225,32130,32225 31974,32226,32030,32226 32143,32225,32157,32227 32032,32226,32122,32227 31974,32227,32029,32227 32033,32228,32119,32228 32143,32228,32156,32228 31974,32228,32030,32228 32143,32229,32148,32229 31974,32229,32031,32229 32034,32229,32127,32229 32037,32230,32128,32230 31975,32230,32032,32230 32144,32230,32148,32230 32145,32231,32147,32231 32036,32231,32128,32231 31982,32231,32032,32231 31975,32231,31979,32231 31983,32232,32128,32232 31984,32233,31995,32233 32032,32233,32128,32233 31997,32233,32030,32233 32031,32234,32128,32234 31997,32234,32028,32234 31989,32234,31994,32234 31990,32235,31994,32235 32029,32235,32128,32235 31996,32235,32027,32235 31996,32236,32026,32236 32028,32236,32128,32236 31995,32237,32128,32238 32009,32239,32128,32239 31994,32239,32007,32239 32006,32240,32028,32240 31994,32240,32004,32240 32030,32240,32128,32240 32034,32241,32128,32241 32006,32241,32032,32241 32036,32242,32118,32242 32012,32242,32034,32242 32123,32242,32124,32242 31994,32241,32002,32243 32014,32243,32048,32243 32051,32243,32118,32244 32016,32244,32048,32244 31995,32244,32002,32244 32016,32245,32047,32245 32050,32245,32081,32245 31996,32245,32000,32245 32085,32245,32087,32245 32089,32245,32119,32245 32086,32246,32087,32246 32050,32246,32080,32246 32091,32246,32119,32246 32018,32246,32047,32246 32004,32242,32010,32247 32049,32247,32077,32247 32041,32247,32046,32247 32094,32247,32119,32247 32018,32247,32039,32248 32041,32248,32044,32248 32049,32248,32069,32248 32008,32248,32010,32248 32095,32248,32119,32248 32004,32248,32006,32249 32096,32249,32119,32249 32049,32249,32066,32249 32018,32249,32040,32249 32019,32250,32040,32250 32049,32250,32065,32250 32096,32250,32118,32251 32049,32251,32064,32251 32039,32251,32040,32251 32020,32251,32036,32251 32096,32252,32102,32252 32051,32252,32059,32252 32107,32252,32117,32252 32031,32252,32035,32252 32061,32252,32064,32252 32109,32253,32115,32253 32034,32253,32035,32253 32083,32255,32088,32255 32082,32256,32090,32256 32071,32257,32090,32257 32067,32258,32093,32258 32036,32258,32039,32258 32036,32259,32040,32259 32058,32259,32094,32259 32050,32260,32095,32260 32035,32260,32040,32260 32035,32261,32095,32261 32033,32262,32097,32263 32032,32264,32097,32264 32023,32265,32099,32265 32019,32266,32099,32266 31987,32267,31995,32267 32016,32267,32102,32267 31986,32268,32004,32268 32015,32268,32102,32268 32101,32269,32102,32269 32014,32269,32097,32269 31985,32269,32005,32270 32012,32270,32096,32270 32011,32271,32093,32271 31981,32271,32004,32271 31978,32272,32003,32272 32008,32272,32092,32272 31977,32273,32003,32273 32008,32273,32090,32273 31970,32273,31971,32274 31975,32274,32002,32274 32007,32274,32089,32275 31974,32275,32002,32275 31969,32275,31972,32275 31969,32276,32002,32276 32006,32276,32089,32276 32052,32277,32089,32277 31969,32277,32047,32278 32055,32278,32089,32278 31975,32279,32047,32279 32056,32279,32090,32280 32006,32280,32047,32280 31975,32280,32002,32280 31980,32281,32002,32281 32006,32281,32017,32281 32021,32281,32046,32281 32058,32281,32090,32281 32038,32282,32046,32282 32025,32282,32030,32282 32058,32282,32091,32282 32007,32282,32017,32282 31981,32282,32002,32283 32038,32283,32043,32283 32056,32283,32093,32283 32014,32283,32016,32283 31969,32279,31973,32284 32007,32283,32010,32284 31982,32284,32002,32284 32054,32284,32095,32284 32037,32284,32043,32284 32053,32285,32095,32285 32035,32285,32043,32285 31983,32285,32002,32285 31971,32285,31971,32285 32090,32286,32093,32286 31985,32286,32003,32286 32035,32286,32044,32287 32052,32286,32088,32287 31994,32287,32003,32287 31988,32287,31989,32287 32036,32288,32044,32288 32052,32288,32056,32288 32059,32288,32089,32289 32038,32289,32042,32289 32052,32289,32053,32290 32088,32290,32089,32290 32059,32290,32085,32290 32038,32290,32041,32291 32059,32291,32083,32291 32067,32292,32083,32292 32059,32292,32064,32292 32081,32293,32083,32293 32067,32293,32074,32293 32057,32293,32062,32293 32056,32294,32061,32294 32069,32294,32073,32295 32081,32294,32084,32295 32056,32295,32059,32296 32070,32296,32072,32297 32055,32297,32059,32297 32055,32298,32057,32299", + }, + [319] = { -- Falcon Bastion (2557 tiles, 129 rects) + name = "Falcon Bastion", + mainArea = 8, + bbox = { x1 = 33341, y1 = 31278, x2 = 33392, y2 = 31378 }, + rects = "33385,31278,33385,31278 33387,31279,33388,31279 33384,31279,33385,31279 33378,31280,33380,31280 33383,31280,33388,31280 33377,31281,33387,31281 33376,31282,33390,31282 33375,31283,33391,31284 33376,31285,33390,31285 33376,31286,33392,31286 33375,31287,33392,31288 33376,31289,33390,31289 33377,31290,33390,31290 33378,31291,33390,31291 33379,31292,33390,31292 33381,31293,33383,31293 33387,31293,33391,31293 33389,31294,33390,31294 33380,31294,33382,31294 33390,31295,33390,31295 33366,31295,33368,31295 33365,31296,33368,31296 33363,31297,33369,31297 33362,31298,33369,31298 33361,31299,33370,31300 33361,31301,33369,31301 33355,31301,33358,31301 33353,31302,33357,31302 33362,31302,33368,31302 33363,31303,33367,31303 33351,31303,33358,31304 33364,31304,33364,31304 33347,31304,33349,31304 33366,31304,33366,31304 33347,31305,33360,31305 33375,31305,33377,31305 33374,31306,33382,31306 33364,31306,33367,31306 33370,31306,33371,31306 33348,31306,33361,31307 33363,31307,33371,31307 33373,31307,33382,31307 33348,31308,33385,31308 33346,31309,33386,31309 33345,31310,33387,31311 33345,31312,33386,31313 33346,31314,33384,31314 33346,31315,33383,31315 33346,31316,33382,31316 33349,31317,33380,31317 33349,31318,33379,31319 33350,31320,33381,31320 33350,31321,33382,31321 33351,31322,33383,31322 33352,31323,33385,31323 33353,31324,33385,31324 33354,31325,33385,31325 33353,31326,33385,31326 33352,31327,33384,31328 33353,31329,33384,31330 33354,31331,33383,31332 33382,31333,33382,31333 33355,31333,33380,31333 33355,31334,33378,31334 33353,31335,33379,31335 33352,31336,33379,31336 33352,31337,33380,31337 33349,31338,33381,31338 33348,31339,33381,31339 33348,31340,33383,31340 33348,31341,33386,31341 33348,31342,33385,31342 33347,31343,33386,31344 33346,31345,33386,31345 33344,31346,33386,31346 33344,31347,33385,31347 33344,31348,33384,31348 33345,31349,33385,31350 33343,31351,33385,31351 33341,31352,33386,31353 33341,31354,33385,31354 33343,31355,33372,31355 33376,31355,33386,31355 33344,31356,33371,31356 33386,31356,33386,31356 33377,31356,33384,31356 33378,31357,33384,31357 33345,31357,33370,31357 33379,31358,33383,31358 33346,31358,33370,31358 33374,31359,33377,31359 33346,31359,33369,31359 33380,31359,33382,31359 33347,31360,33368,31360 33372,31360,33378,31360 33347,31361,33356,31361 33358,31361,33367,31361 33371,31361,33378,31362 33347,31362,33355,31362 33362,31362,33363,31362 33366,31362,33366,31362 33371,31363,33377,31363 33362,31363,33362,31363 33348,31363,33355,31363 33349,31364,33354,31364 33371,31364,33376,31364 33366,31364,33368,31364 33350,31365,33352,31365 33364,31365,33369,31365 33371,31365,33375,31365 33359,31366,33360,31366 33363,31366,33369,31366 33372,31366,33372,31366 33355,31366,33357,31366 33354,31367,33368,31367 33354,31368,33367,31368 33353,31369,33367,31369 33353,31370,33368,31371 33352,31372,33367,31372 33351,31373,33367,31373 33350,31374,33367,31374 33350,31375,33352,31375 33354,31375,33367,31375 33351,31376,33351,31376 33354,31376,33356,31376 33358,31376,33366,31376 33358,31377,33364,31377 33354,31377,33354,31377 33361,31378,33362,31378", + }, + [327] = { -- Cake Keep Isle (2370 tiles, 60 rects) + name = "Cake Keep Isle", + mainArea = 7, + bbox = { x1 = 33271, y1 = 32059, x2 = 33344, y2 = 32120 }, + rects = "33299,32059,33310,32059 33297,32060,33313,32060 33295,32061,33316,32061 33294,32062,33319,32062 33292,32063,33322,32063 33291,32064,33323,32064 33290,32065,33325,32065 33290,32066,33327,32066 33289,32067,33328,32067 33288,32068,33329,32068 33288,32069,33330,32069 33287,32070,33330,32070 33287,32071,33331,32071 33286,32072,33331,32073 33286,32074,33332,32075 33337,32076,33342,32076 33285,32076,33333,32077 33336,32077,33343,32077 33275,32077,33279,32077 33284,32078,33343,32078 33273,32078,33279,32078 33283,32079,33344,32079 33272,32079,33280,32079 33272,32080,33344,32080 33271,32081,33344,32084 33272,32085,33343,32085 33272,32086,33281,32086 33283,32086,33343,32087 33272,32087,33280,32087 33284,32088,33335,32088 33272,32088,33278,32088 33337,32088,33342,32088 33337,32089,33341,32089 33275,32089,33278,32089 33285,32089,33333,32089 33285,32090,33332,32090 33286,32091,33332,32091 33286,32092,33331,32093 33287,32094,33330,32095 33288,32096,33329,32096 33288,32097,33328,32097 33289,32098,33328,32098 33290,32099,33327,32099 33291,32100,33326,32100 33292,32101,33325,32101 33293,32102,33324,32102 33295,32103,33323,32103 33296,32104,33322,32104 33298,32105,33320,32105 33300,32106,33317,32106 33302,32107,33314,32107 33305,32108,33313,32109 33304,32110,33312,32110 33304,32111,33314,32111 33303,32112,33314,32112 33302,32113,33315,32114 33302,32115,33316,32117 33304,32118,33314,32118 33304,32119,33311,32119 33307,32120,33311,32120", + }, + [354] = { -- Cobra Bastion (2878 tiles, 113 rects) + name = "Cobra Bastion", + mainArea = 2, + bbox = { x1 = 33359, y1 = 32621, x2 = 33414, y2 = 32706 }, + rects = "33392,32621,33393,32621 33392,32622,33394,32623 33391,32624,33395,32624 33385,32624,33385,32624 33390,32625,33394,32625 33386,32625,33386,32625 33402,32626,33403,32626 33385,32626,33394,32626 33384,32627,33394,32627 33401,32627,33404,32627 33373,32628,33374,32628 33385,32628,33396,32628 33400,32628,33404,32629 33372,32629,33374,32629 33386,32629,33398,32629 33385,32630,33403,32630 33372,32630,33375,32630 33384,32631,33404,32631 33372,32631,33376,32631 33383,32632,33405,32632 33372,32632,33377,32632 33383,32633,33407,32633 33373,32633,33378,32633 33373,32634,33379,32634 33382,32634,33407,32634 33373,32635,33408,32635 33372,32636,33409,32636 33368,32637,33409,32637 33376,32638,33409,32638 33367,32638,33373,32638 33365,32639,33372,32639 33379,32639,33410,32639 33381,32640,33410,32640 33364,32640,33372,32640 33363,32641,33371,32641 33381,32641,33409,32642 33363,32642,33372,32642 33362,32643,33372,32643 33382,32643,33409,32643 33382,32644,33411,32644 33361,32644,33372,32644 33359,32645,33374,32646 33382,32645,33412,32646 33382,32647,33413,32647 33360,32647,33373,32648 33381,32648,33412,32648 33361,32649,33373,32649 33381,32649,33411,32649 33380,32650,33410,32650 33361,32650,33372,32650 33362,32651,33372,32651 33380,32651,33411,32652 33364,32652,33371,32653 33379,32653,33414,32654 33366,32654,33370,32654 33378,32655,33414,32655 33367,32655,33370,32655 33377,32656,33413,32656 33368,32656,33371,32656 33377,32657,33411,32657 33376,32658,33410,32658 33375,32659,33411,32659 33375,32660,33412,32661 33374,32662,33413,32662 33373,32663,33413,32663 33373,32664,33414,32665 33373,32666,33413,32666 33374,32667,33412,32667 33373,32668,33411,32668 33372,32669,33412,32669 33371,32670,33412,32670 33370,32671,33411,32671 33362,32672,33363,32672 33369,32672,33411,32673 33361,32673,33365,32673 33361,32674,33412,32674 33362,32675,33414,32675 33363,32676,33414,32676 33363,32677,33408,32677 33411,32677,33413,32677 33411,32678,33412,32678 33362,32678,33407,32679 33361,32680,33407,32680 33361,32681,33406,32681 33362,32682,33405,32682 33365,32683,33404,32683 33366,32684,33403,32684 33367,32685,33402,32685 33368,32686,33402,32686 33368,32687,33401,32689 33368,32690,33402,32690 33365,32691,33402,32691 33365,32692,33401,32692 33365,32693,33402,32693 33367,32694,33403,32694 33369,32695,33396,32695 33398,32695,33403,32695 33394,32696,33395,32696 33369,32696,33391,32696 33398,32696,33402,32697 33370,32697,33391,32697 33399,32698,33401,32698 33370,32698,33389,32698 33372,32699,33389,32699 33400,32699,33400,32699 33373,32700,33373,32700 33378,32700,33388,32700 33378,32701,33386,32701 33380,32702,33385,32702 33380,32703,33384,32703 33381,32704,33384,32704 33382,32705,33384,32705 33383,32706,33384,32706", + }, + [356] = { -- Nykri Delta (8705 tiles, 393 rects) + name = "Nykri Delta", + mainArea = 355, + bbox = { x1 = 33708, y1 = 31430, x2 = 33893, y2 = 31543 }, + rects = "33878,31430,33882,31430 33877,31431,33882,31431 33889,31432,33892,31433 33877,31432,33880,31433 33883,31433,33887,31433 33877,31434,33891,31434 33876,31435,33890,31435 33872,31436,33888,31436 33870,31437,33887,31437 33864,31437,33867,31437 33863,31438,33887,31438 33862,31439,33887,31440 33802,31441,33803,31441 33861,31441,33886,31442 33800,31442,33804,31442 33860,31443,33885,31443 33799,31443,33804,31443 33799,31444,33803,31444 33860,31444,33886,31444 33858,31445,33886,31445 33798,31445,33803,31446 33848,31445,33852,31446 33857,31446,33885,31447 33848,31447,33850,31447 33795,31447,33802,31447 33793,31448,33802,31448 33891,31448,33892,31448 33846,31448,33850,31448 33881,31448,33882,31448 33857,31448,33878,31448 33890,31449,33893,31449 33845,31449,33878,31449 33791,31449,33800,31449 33785,31449,33786,31450 33842,31450,33874,31450 33790,31450,33800,31450 33888,31450,33893,31451 33837,31450,33839,31451 33881,31451,33882,31451 33809,31451,33810,31451 33784,31451,33787,31451 33789,31451,33800,31451 33842,31451,33873,31452 33808,31452,33811,31452 33880,31452,33882,31452 33836,31452,33839,31452 33784,31452,33799,31453 33886,31452,33890,31453 33836,31453,33873,31453 33879,31453,33882,31453 33802,31453,33803,31453 33807,31453,33812,31453 33837,31454,33873,31454 33887,31454,33888,31454 33878,31454,33881,31454 33801,31454,33814,31454 33786,31454,33799,31454 33876,31455,33880,31455 33784,31455,33799,31455 33801,31455,33815,31455 33839,31455,33873,31455 33777,31455,33778,31456 33876,31456,33879,31456 33801,31456,33818,31456 33783,31456,33799,31456 33839,31456,33872,31457 33782,31457,33799,31457 33875,31457,33879,31457 33777,31457,33779,31457 33802,31457,33819,31457 33840,31458,33871,31458 33875,31458,33878,31458 33777,31458,33819,31458 33802,31459,33819,31459 33840,31459,33870,31459 33874,31459,33877,31459 33778,31459,33800,31460 33874,31460,33876,31460 33839,31460,33869,31461 33803,31460,33819,31461 33777,31461,33801,31461 33755,31461,33758,31462 33771,31462,33772,31462 33821,31462,33822,31462 33839,31462,33868,31462 33804,31462,33818,31463 33776,31462,33801,31463 33820,31463,33822,31463 33756,31463,33758,31463 33872,31463,33873,31463 33771,31463,33773,31463 33838,31463,33868,31464 33752,31464,33759,31464 33820,31464,33823,31464 33805,31464,33817,31464 33771,31464,33802,31464 33871,31464,33873,31465 33819,31465,33824,31465 33752,31465,33762,31465 33771,31465,33803,31465 33838,31465,33867,31465 33805,31465,33816,31465 33772,31466,33803,31466 33806,31466,33815,31466 33818,31466,33825,31466 33837,31466,33866,31466 33751,31466,33763,31466 33870,31466,33872,31467 33750,31467,33762,31467 33835,31467,33865,31467 33817,31467,33826,31467 33806,31467,33814,31467 33773,31467,33804,31467 33834,31468,33864,31468 33776,31468,33804,31468 33807,31468,33813,31468 33816,31468,33829,31468 33750,31468,33766,31469 33869,31468,33871,31469 33776,31469,33805,31469 33808,31469,33813,31469 33815,31469,33864,31469 33751,31470,33768,31470 33808,31470,33812,31470 33815,31470,33863,31470 33776,31470,33806,31471 33868,31470,33870,31471 33814,31471,33863,31471 33750,31471,33768,31471 33809,31471,33812,31472 33776,31472,33807,31472 33814,31472,33862,31473 33750,31472,33769,31473 33775,31473,33807,31473 33810,31473,33811,31474 33813,31474,33862,31474 33751,31474,33770,31474 33774,31474,33808,31475 33866,31475,33867,31475 33812,31475,33862,31476 33751,31475,33771,31476 33774,31476,33809,31476 33866,31476,33868,31477 33812,31477,33861,31477 33775,31477,33810,31477 33752,31477,33772,31478 33813,31478,33861,31478 33775,31478,33811,31478 33776,31479,33811,31479 33813,31479,33860,31479 33752,31479,33773,31479 33753,31480,33774,31480 33777,31480,33811,31480 33777,31481,33812,31481 33814,31480,33859,31482 33753,31481,33775,31482 33778,31482,33812,31482 33815,31483,33858,31483 33778,31483,33813,31483 33753,31483,33776,31483 33739,31483,33740,31483 33816,31484,33857,31484 33778,31484,33814,31484 33754,31484,33776,31484 33779,31485,33815,31485 33756,31485,33776,31485 33751,31485,33752,31485 33817,31485,33857,31485 33738,31484,33742,31486 33819,31486,33857,31486 33751,31486,33754,31486 33779,31486,33816,31486 33757,31486,33777,31486 33820,31487,33857,31487 33738,31487,33741,31487 33779,31487,33818,31487 33750,31487,33755,31487 33758,31487,33777,31487 33821,31488,33857,31488 33759,31488,33819,31488 33749,31488,33756,31488 33738,31488,33740,31489 33760,31489,33777,31489 33748,31489,33757,31489 33822,31489,33857,31489 33779,31489,33820,31489 33736,31490,33737,31490 33746,31490,33759,31490 33762,31490,33777,31490 33779,31490,33821,31491 33823,31490,33857,31491 33764,31491,33776,31491 33734,31491,33737,31491 33742,31491,33761,31491 33741,31492,33763,31492 33765,31492,33776,31492 33733,31492,33736,31492 33824,31492,33856,31493 33778,31492,33822,31493 33724,31493,33728,31493 33766,31493,33776,31493 33741,31493,33764,31493 33733,31493,33738,31493 33825,31494,33856,31494 33779,31494,33823,31494 33733,31494,33739,31494 33742,31494,33765,31494 33724,31494,33729,31494 33767,31494,33776,31494 33732,31495,33741,31495 33768,31495,33777,31495 33826,31495,33856,31495 33724,31495,33730,31495 33743,31495,33765,31495 33744,31496,33764,31496 33728,31496,33742,31496 33766,31496,33767,31496 33773,31496,33777,31496 33769,31496,33769,31496 33779,31495,33824,31497 33745,31497,33763,31497 33775,31497,33776,31497 33765,31497,33772,31497 33728,31497,33743,31497 33826,31496,33855,31498 33725,31498,33744,31498 33747,31498,33761,31498 33719,31498,33720,31498 33764,31498,33774,31498 33778,31498,33823,31499 33762,31499,33775,31499 33751,31499,33760,31499 33825,31499,33855,31499 33719,31499,33745,31499 33719,31500,33750,31500 33758,31500,33759,31500 33779,31500,33823,31500 33761,31500,33776,31500 33825,31500,33854,31500 33760,31501,33777,31501 33720,31501,33756,31501 33758,31501,33758,31501 33780,31501,33823,31501 33826,31501,33854,31502 33782,31502,33824,31502 33723,31502,33778,31502 33717,31502,33719,31503 33784,31503,33824,31503 33721,31503,33780,31503 33826,31503,33853,31504 33786,31504,33824,31504 33717,31504,33782,31504 33826,31505,33852,31505 33788,31505,33824,31505 33718,31505,33784,31505 33813,31506,33824,31506 33718,31506,33786,31506 33790,31506,33808,31506 33826,31506,33851,31507 33792,31507,33805,31507 33718,31507,33788,31507 33815,31507,33824,31507 33826,31508,33848,31508 33818,31508,33823,31508 33796,31508,33799,31508 33715,31508,33788,31508 33825,31509,33847,31509 33799,31509,33801,31509 33849,31509,33850,31509 33790,31509,33794,31509 33820,31509,33823,31509 33713,31509,33788,31509 33713,31510,33784,31510 33848,31510,33850,31510 33789,31510,33801,31510 33821,31510,33822,31510 33825,31510,33845,31510 33825,31511,33844,31511 33717,31511,33782,31511 33846,31511,33850,31511 33785,31511,33801,31511 33713,31511,33715,31512 33845,31512,33850,31512 33825,31512,33843,31512 33783,31512,33800,31512 33717,31512,33780,31512 33826,31513,33842,31513 33781,31513,33799,31513 33717,31513,33779,31513 33844,31513,33850,31514 33840,31514,33840,31514 33717,31514,33778,31514 33780,31514,33798,31514 33827,31514,33836,31514 33712,31514,33714,31515 33716,31515,33777,31515 33845,31515,33849,31515 33779,31515,33797,31515 33837,31515,33843,31515 33828,31515,33835,31515 33712,31516,33712,31516 33778,31516,33795,31516 33836,31516,33844,31516 33716,31516,33776,31516 33846,31516,33850,31516 33829,31516,33833,31516 33834,31517,33845,31517 33830,31517,33832,31517 33711,31517,33712,31517 33847,31517,33850,31517 33777,31517,33794,31517 33716,31517,33775,31517 33746,31518,33773,31518 33833,31518,33846,31518 33848,31518,33850,31518 33711,31518,33736,31518 33776,31518,33793,31518 33834,31519,33847,31519 33849,31519,33850,31519 33774,31519,33791,31519 33712,31519,33732,31519 33747,31519,33772,31519 33773,31520,33790,31520 33835,31520,33848,31520 33748,31520,33770,31520 33714,31520,33729,31520 33748,31521,33767,31521 33770,31521,33789,31521 33836,31521,33848,31521 33715,31521,33728,31522 33768,31522,33788,31522 33837,31522,33848,31522 33749,31522,33766,31522 33749,31523,33765,31523 33838,31523,33848,31523 33767,31523,33787,31523 33712,31523,33728,31523 33766,31524,33786,31524 33711,31524,33728,31524 33839,31524,33848,31524 33749,31524,33764,31524 33840,31525,33847,31525 33748,31525,33763,31525 33709,31525,33727,31525 33765,31525,33786,31525 33842,31526,33846,31526 33748,31526,33762,31526 33764,31526,33785,31526 33708,31526,33727,31527 33748,31527,33784,31527 33843,31527,33846,31527 33747,31528,33760,31528 33844,31528,33846,31528 33713,31528,33728,31529 33763,31528,33783,31529 33746,31529,33760,31529 33845,31529,33846,31529 33763,31530,33782,31530 33756,31530,33759,31530 33743,31530,33751,31530 33714,31530,33728,31530 33780,31531,33781,31531 33762,31531,33773,31531 33757,31531,33759,31531 33742,31531,33749,31531 33715,31531,33729,31531 33741,31532,33748,31532 33713,31532,33729,31532 33758,31532,33759,31532 33761,31532,33770,31532 33714,31533,33729,31533 33766,31533,33767,31533 33741,31533,33747,31533 33761,31533,33763,31533 33734,31533,33737,31533 33744,31534,33745,31534 33714,31534,33730,31534 33734,31534,33738,31535 33712,31535,33730,31535 33712,31536,33732,31536 33719,31537,33734,31537 33737,31537,33740,31538 33712,31537,33714,31538 33719,31538,33735,31538 33710,31539,33711,31539 33723,31539,33740,31539 33724,31540,33740,31540 33711,31540,33712,31541 33723,31541,33740,31541 33723,31542,33736,31542 33735,31543,33736,31543 33729,31543,33731,31543 33724,31543,33726,31543", + }, + [357] = { -- Issavi (9126 tiles, 236 rects) + name = "Issavi", + mainArea = 355, + bbox = { x1 = 33854, y1 = 31457, x2 = 33979, y2 = 31578 }, + rects = "33941,31457,33942,31457 33939,31458,33943,31458 33896,31459,33908,31459 33883,31459,33886,31459 33938,31459,33945,31459 33954,31460,33955,31460 33895,31460,33908,31460 33881,31460,33888,31460 33937,31460,33946,31460 33881,31461,33890,31461 33953,31461,33955,31461 33936,31461,33947,31461 33893,31461,33908,31461 33952,31462,33956,31462 33935,31462,33949,31462 33893,31462,33909,31462 33880,31462,33891,31462 33925,31463,33928,31463 33934,31463,33956,31463 33895,31463,33908,31463 33879,31463,33892,31463 33896,31464,33908,31464 33966,31464,33967,31464 33934,31464,33957,31464 33878,31464,33893,31464 33924,31464,33929,31464 33897,31465,33908,31465 33923,31465,33957,31465 33965,31465,33967,31465 33878,31465,33894,31465 33964,31466,33967,31466 33877,31466,33895,31466 33920,31466,33958,31466 33919,31467,33959,31467 33963,31467,33966,31467 33876,31467,33896,31468 33918,31468,33966,31468 33917,31469,33966,31469 33876,31469,33897,31469 33876,31470,33898,31470 33916,31470,33967,31470 33915,31471,33968,31471 33875,31471,33899,31471 33914,31472,33969,31472 33874,31472,33900,31472 33914,31473,33970,31473 33873,31473,33900,31473 33913,31474,33971,31474 33912,31475,33972,31475 33872,31474,33900,31476 33912,31476,33973,31476 33911,31477,33975,31477 33871,31477,33901,31477 33911,31478,33976,31478 33871,31478,33902,31479 33911,31479,33977,31479 33870,31480,33902,31481 33910,31480,33977,31482 33869,31482,33902,31482 33868,31483,33901,31483 33909,31483,33976,31483 33908,31484,33975,31484 33867,31484,33900,31484 33866,31485,33899,31485 33907,31485,33975,31485 33906,31486,33974,31486 33865,31486,33898,31486 33864,31487,33897,31487 33905,31487,33974,31487 33904,31488,33973,31488 33864,31488,33896,31488 33863,31489,33895,31489 33903,31489,33926,31489 33933,31489,33935,31490 33959,31489,33972,31490 33946,31489,33948,31490 33902,31490,33926,31490 33901,31491,33971,31491 33900,31492,33970,31492 33899,31493,33969,31493 33899,31494,33968,31494 33863,31490,33894,31495 33899,31495,33967,31496 33899,31497,33966,31499 33899,31500,33967,31501 33977,31501,33979,31501 33975,31502,33979,31502 33899,31502,33968,31502 33899,31503,33969,31503 33973,31503,33978,31503 33899,31504,33977,31504 33899,31505,33976,31505 33862,31496,33894,31506 33899,31506,33975,31506 33899,31507,33974,31508 33861,31507,33894,31509 33899,31509,33973,31509 33899,31510,33972,31510 33896,31511,33896,31511 33860,31510,33894,31512 33917,31511,33972,31512 33915,31512,33915,31513 33917,31513,33973,31513 33899,31511,33912,31514 33917,31514,33975,31514 33896,31514,33896,31514 33859,31513,33894,31515 33899,31515,33975,31515 33899,31516,33974,31516 33899,31517,33971,31517 33975,31517,33975,31517 33857,31516,33894,31518 33899,31518,33969,31518 33975,31518,33978,31519 33899,31519,33970,31519 33856,31519,33894,31520 33899,31520,33971,31520 33976,31520,33978,31521 33899,31521,33972,31521 33855,31521,33894,31522 33854,31523,33865,31523 33899,31522,33974,31524 33854,31524,33875,31525 33899,31525,33971,31525 33854,31526,33858,31526 33899,31526,33970,31526 33862,31526,33867,31526 33871,31526,33875,31526 33899,31527,33967,31527 33970,31527,33973,31527 33854,31527,33875,31528 33899,31528,33965,31528 33970,31528,33974,31528 33899,31529,33964,31529 33854,31529,33860,31529 33969,31529,33974,31529 33969,31530,33972,31530 33899,31530,33962,31530 33854,31530,33859,31530 33877,31523,33894,31531 33854,31531,33858,31531 33899,31531,33958,31531 33899,31532,33957,31532 33877,31532,33893,31532 33854,31532,33856,31532 33877,31533,33892,31533 33899,31533,33955,31533 33864,31532,33866,31534 33898,31534,33953,31534 33854,31534,33856,31534 33877,31534,33891,31534 33854,31535,33858,31535 33877,31535,33890,31535 33897,31535,33950,31535 33877,31536,33889,31536 33854,31536,33859,31536 33896,31536,33947,31536 33870,31529,33875,31537 33854,31537,33860,31537 33895,31537,33943,31537 33877,31537,33888,31537 33894,31538,33941,31538 33877,31538,33887,31538 33945,31537,33945,31539 33893,31539,33933,31539 33877,31539,33886,31539 33941,31540,33941,31540 33937,31540,33937,31540 33877,31540,33885,31540 33892,31540,33929,31540 33891,31541,33928,31541 33944,31541,33944,31541 33934,31541,33934,31541 33877,31541,33884,31541 33854,31538,33875,31542 33890,31542,33928,31542 33877,31542,33883,31542 33862,31543,33862,31543 33871,31543,33871,31543 33859,31543,33859,31543 33868,31543,33868,31543 33941,31543,33941,31543 33937,31543,33937,31543 33877,31543,33882,31543 33889,31543,33927,31543 33864,31543,33866,31543 33888,31544,33926,31544 33854,31544,33881,31544 33887,31545,33924,31545 33854,31545,33880,31545 33941,31546,33941,31546 33886,31546,33923,31546 33944,31546,33944,31546 33937,31546,33937,31546 33854,31546,33879,31546 33934,31546,33934,31546 33854,31547,33877,31547 33885,31547,33921,31547 33884,31548,33920,31548 33855,31548,33875,31548 33883,31549,33917,31549 33856,31549,33873,31549 33856,31550,33871,31550 33882,31550,33913,31550 33880,31551,33911,31551 33857,31551,33869,31551 33857,31552,33867,31552 33878,31552,33910,31552 33858,31553,33865,31553 33876,31553,33909,31553 33860,31554,33863,31554 33874,31554,33908,31554 33872,31555,33908,31555 33870,31556,33907,31556 33868,31557,33906,31557 33866,31558,33906,31558 33864,31559,33905,31559 33862,31560,33904,31560 33862,31561,33903,31561 33862,31562,33901,31562 33862,31563,33900,31563 33862,31564,33898,31564 33862,31565,33897,31565 33862,31566,33896,31566 33863,31567,33893,31567 33863,31568,33889,31568 33864,31569,33886,31569 33864,31570,33883,31570 33864,31571,33880,31571 33865,31572,33879,31572 33865,31573,33877,31573 33866,31574,33876,31574 33866,31575,33875,31575 33867,31576,33873,31576 33868,31577,33872,31577 33869,31578,33871,31578", + }, + [360] = { -- Central Steppe (8783 tiles, 198 rects) + name = "Central Steppe", + mainArea = 355, + bbox = { x1 = 33756, y1 = 31508, x2 = 33871, y2 = 31672 }, + rects = "33808,31508,33813,31508 33805,31509,33815,31509 33804,31510,33818,31510 33803,31511,33819,31511 33802,31512,33821,31512 33801,31513,33823,31513 33800,31514,33824,31514 33799,31515,33825,31515 33798,31516,33826,31516 33796,31517,33827,31517 33795,31518,33828,31518 33794,31519,33832,31519 33791,31520,33833,31520 33791,31521,33834,31521 33790,31522,33835,31522 33789,31523,33836,31523 33788,31524,33837,31524 33788,31525,33838,31525 33787,31526,33840,31526 33786,31527,33841,31527 33785,31528,33842,31528 33784,31529,33843,31529 33784,31530,33844,31530 33784,31531,33845,31532 33783,31533,33845,31533 33782,31534,33845,31534 33781,31535,33845,31538 33782,31539,33845,31539 33782,31540,33846,31541 33778,31542,33846,31542 33777,31543,33846,31545 33776,31546,33847,31546 33775,31547,33847,31547 33772,31548,33847,31548 33772,31549,33774,31549 33779,31549,33848,31550 33773,31550,33774,31550 33780,31551,33848,31551 33781,31552,33849,31552 33782,31553,33849,31554 33780,31555,33850,31556 33779,31557,33850,31557 33770,31557,33771,31557 33770,31558,33772,31558 33779,31558,33851,31559 33770,31559,33773,31559 33771,31560,33773,31560 33777,31560,33852,31561 33774,31561,33775,31561 33773,31562,33818,31562 33822,31562,33853,31562 33773,31563,33817,31563 33823,31563,33853,31563 33775,31564,33815,31564 33823,31564,33854,31565 33775,31565,33813,31566 33822,31566,33854,31566 33821,31567,33855,31567 33773,31567,33814,31567 33772,31568,33815,31568 33820,31568,33855,31568 33772,31569,33856,31569 33771,31570,33856,31570 33765,31571,33767,31571 33759,31571,33761,31571 33770,31571,33857,31571 33759,31572,33857,31572 33760,31573,33858,31574 33759,31575,33859,31576 33758,31577,33859,31577 33758,31578,33860,31578 33757,31579,33860,31580 33757,31581,33861,31581 33758,31582,33861,31583 33810,31584,33861,31584 33758,31584,33806,31585 33812,31585,33861,31585 33813,31586,33861,31586 33759,31586,33805,31587 33814,31587,33862,31587 33760,31588,33805,31588 33815,31588,33862,31588 33760,31589,33806,31589 33818,31589,33862,31589 33818,31590,33863,31590 33759,31590,33806,31590 33758,31591,33806,31591 33818,31591,33864,31591 33816,31592,33820,31592 33824,31592,33868,31592 33757,31592,33808,31593 33816,31593,33818,31593 33846,31593,33846,31593 33849,31593,33869,31593 33834,31593,33842,31593 33838,31594,33842,31594 33812,31594,33818,31594 33855,31594,33870,31594 33856,31595,33870,31595 33813,31595,33816,31595 33756,31594,33807,31596 33856,31596,33871,31596 33758,31597,33761,31597 33763,31597,33807,31597 33857,31597,33871,31598 33764,31598,33808,31598 33759,31598,33761,31598 33860,31599,33869,31599 33759,31599,33760,31599 33764,31599,33807,31599 33764,31600,33806,31600 33861,31600,33866,31601 33765,31601,33806,31601 33766,31602,33806,31602 33767,31603,33805,31603 33768,31604,33805,31606 33769,31607,33781,31607 33772,31608,33779,31608 33773,31609,33778,31609 33784,31607,33805,31610 33773,31610,33777,31610 33783,31611,33805,31611 33781,31612,33805,31612 33780,31613,33806,31613 33769,31614,33771,31614 33778,31614,33806,31614 33769,31615,33809,31615 33765,31615,33767,31615 33765,31616,33809,31616 33765,31617,33810,31618 33767,31619,33810,31619 33766,31620,33811,31620 33765,31621,33812,31621 33764,31622,33813,31622 33764,31623,33814,31623 33767,31624,33814,31624 33768,31625,33815,31625 33773,31626,33817,31626 33776,31627,33816,31627 33774,31628,33815,31628 33774,31629,33813,31629 33776,31630,33814,31630 33777,31631,33781,31631 33783,31631,33814,31631 33777,31632,33779,31632 33783,31632,33813,31633 33782,31634,33812,31635 33786,31636,33816,31636 33787,31637,33821,31637 33826,31638,33826,31638 33787,31638,33824,31638 33788,31639,33827,31639 33787,31640,33827,31641 33788,31642,33827,31642 33772,31642,33773,31642 33789,31643,33827,31643 33772,31643,33774,31643 33790,31644,33827,31644 33771,31644,33775,31644 33791,31645,33827,31645 33771,31645,33776,31645 33794,31646,33827,31646 33770,31646,33777,31647 33795,31647,33826,31647 33770,31648,33779,31648 33797,31648,33826,31648 33768,31649,33779,31649 33798,31649,33826,31650 33768,31650,33780,31650 33799,31651,33826,31651 33770,31651,33781,31651 33769,31652,33783,31652 33800,31652,33827,31652 33769,31653,33784,31653 33801,31653,33820,31653 33774,31654,33785,31654 33804,31654,33819,31655 33773,31655,33786,31655 33772,31656,33787,31656 33806,31656,33818,31656 33811,31657,33811,31657 33813,31657,33815,31657 33806,31657,33809,31657 33771,31657,33787,31657 33770,31658,33787,31658 33769,31659,33786,31660 33769,31661,33785,31661 33776,31662,33785,31662 33776,31663,33784,31663 33775,31664,33783,31664 33774,31665,33783,31665 33773,31666,33782,31666 33772,31667,33780,31667 33770,31668,33780,31668 33769,31669,33780,31669 33769,31670,33778,31670 33769,31671,33776,31671 33775,31672,33776,31672", + }, + [361] = { -- Southern Steppe (6930 tiles, 144 rects) + name = "Southern Steppe", + mainArea = 355, + bbox = { x1 = 33772, y1 = 31651, x2 = 33919, y2 = 31767 }, + rects = "33844,31651,33844,31654 33845,31656,33845,31656 33846,31657,33846,31658 33846,31659,33847,31659 33847,31660,33847,31661 33848,31662,33849,31663 33848,31664,33851,31664 33850,31665,33851,31665 33808,31666,33808,31666 33811,31666,33814,31666 33850,31666,33852,31666 33801,31667,33815,31667 33849,31667,33853,31667 33849,31668,33856,31668 33799,31668,33818,31668 33850,31669,33859,31669 33797,31669,33820,31669 33796,31670,33822,31670 33850,31670,33860,31671 33795,31671,33822,31671 33897,31672,33901,31672 33794,31672,33822,31672 33850,31672,33864,31672 33874,31672,33874,31673 33892,31673,33908,31673 33850,31673,33867,31673 33793,31673,33823,31673 33792,31674,33822,31674 33851,31674,33880,31674 33882,31674,33886,31674 33888,31674,33910,31674 33791,31675,33821,31675 33852,31675,33916,31675 33852,31676,33917,31676 33790,31676,33820,31676 33851,31677,33917,31677 33789,31677,33821,31678 33853,31678,33918,31678 33789,31679,33820,31680 33854,31679,33919,31681 33786,31681,33820,31681 33786,31682,33821,31682 33853,31682,33914,31682 33916,31682,33919,31682 33785,31683,33821,31683 33783,31683,33783,31683 33853,31683,33912,31684 33782,31684,33821,31684 33851,31685,33912,31685 33786,31685,33822,31685 33852,31686,33911,31686 33786,31686,33823,31687 33852,31687,33909,31688 33785,31688,33824,31688 33906,31689,33907,31689 33852,31689,33904,31689 33784,31689,33826,31689 33784,31690,33828,31691 33852,31690,33903,31691 33784,31692,33826,31692 33852,31692,33904,31693 33781,31693,33824,31693 33780,31694,33824,31694 33779,31695,33824,31695 33852,31694,33902,31696 33778,31696,33825,31696 33851,31697,33902,31697 33778,31697,33826,31697 33851,31698,33900,31698 33774,31698,33824,31698 33773,31699,33828,31699 33832,31699,33832,31699 33851,31699,33899,31700 33773,31700,33832,31700 33850,31701,33898,31701 33773,31701,33833,31701 33850,31702,33893,31702 33895,31702,33896,31702 33772,31702,33834,31702 33773,31703,33835,31703 33850,31703,33890,31703 33776,31704,33835,31704 33848,31704,33890,31705 33777,31705,33835,31705 33847,31706,33890,31706 33845,31707,33889,31707 33779,31706,33835,31708 33844,31708,33887,31708 33844,31709,33885,31709 33779,31709,33836,31709 33838,31710,33840,31710 33842,31710,33885,31710 33777,31710,33836,31710 33779,31711,33878,31711 33782,31712,33878,31712 33783,31713,33877,31713 33787,31714,33875,31714 33790,31715,33873,31715 33790,31716,33871,31716 33790,31717,33869,31717 33791,31718,33870,31718 33792,31719,33874,31720 33793,31721,33872,31721 33794,31722,33872,31722 33796,31723,33797,31723 33801,31723,33872,31723 33802,31724,33873,31724 33803,31725,33874,31725 33803,31726,33875,31727 33803,31728,33876,31729 33806,31730,33874,31730 33806,31731,33872,31731 33807,31732,33871,31732 33808,31733,33865,31733 33808,31734,33864,31734 33808,31735,33861,31735 33809,31736,33861,31736 33809,31737,33860,31737 33813,31738,33858,31738 33815,31739,33858,31739 33815,31740,33857,31741 33814,31742,33857,31742 33814,31743,33856,31743 33814,31744,33855,31744 33815,31745,33856,31745 33820,31746,33858,31746 33820,31747,33861,31748 33822,31749,33860,31749 33822,31750,33859,31751 33823,31752,33858,31752 33829,31753,33857,31753 33829,31754,33856,31754 33830,31755,33855,31756 33830,31757,33856,31757 33832,31758,33856,31758 33832,31759,33857,31759 33833,31760,33839,31760 33842,31760,33857,31761 33845,31762,33857,31762 33846,31763,33856,31763 33847,31764,33857,31764 33848,31765,33857,31765 33851,31766,33857,31766 33852,31767,33856,31767", + }, + [362] = { -- Green Belt (8807 tiles, 231 rects) + name = "Green Belt", + mainArea = 355, + bbox = { x1 = 33846, y1 = 31539, x2 = 33979, y2 = 31683 }, + rects = "33964,31539,33966,31539 33959,31540,33967,31540 33957,31541,33969,31541 33955,31542,33971,31542 33952,31543,33971,31543 33950,31544,33974,31544 33948,31545,33975,31545 33946,31546,33975,31546 33933,31547,33975,31547 33930,31548,33971,31548 33973,31548,33976,31548 33973,31549,33978,31549 33928,31549,33971,31549 33975,31550,33979,31550 33927,31550,33971,31550 33926,31551,33969,31551 33977,31551,33979,31551 33924,31552,33966,31552 33921,31553,33963,31553 33966,31553,33966,31553 33918,31554,33963,31554 33916,31555,33963,31555 33915,31556,33962,31556 33914,31557,33960,31557 33913,31558,33960,31558 33963,31559,33967,31559 33912,31559,33961,31559 33965,31560,33967,31560 33912,31560,33963,31560 33911,31561,33966,31561 33958,31562,33964,31562 33910,31562,33955,31562 33959,31563,33963,31563 33909,31563,33955,31563 33908,31564,33955,31564 33960,31564,33961,31564 33948,31565,33953,31565 33907,31565,33945,31565 33948,31566,33951,31566 33906,31566,33944,31566 33904,31567,33943,31567 33948,31567,33950,31567 33947,31568,33950,31568 33903,31568,33942,31568 33949,31569,33949,31569 33901,31569,33941,31569 33947,31569,33947,31569 33899,31570,33941,31570 33947,31570,33949,31570 33895,31571,33941,31571 33891,31572,33943,31572 33889,31573,33943,31573 33888,31574,33943,31574 33885,31575,33944,31575 33883,31576,33946,31576 33882,31577,33946,31577 33881,31578,33946,31578 33880,31579,33944,31579 33879,31580,33944,31580 33878,31581,33942,31581 33877,31582,33941,31583 33877,31584,33939,31584 33877,31585,33938,31585 33877,31586,33937,31586 33879,31587,33936,31587 33879,31588,33934,31588 33879,31589,33932,31589 33879,31590,33931,31590 33880,31591,33929,31591 33880,31592,33928,31592 33880,31593,33930,31593 33881,31594,33932,31594 33882,31595,33932,31595 33882,31596,33933,31596 33882,31597,33934,31597 33883,31598,33934,31599 33884,31600,33935,31600 33885,31601,33936,31601 33887,31602,33937,31602 33943,31602,33945,31602 33942,31603,33945,31603 33888,31603,33938,31603 33888,31604,33945,31604 33889,31605,33944,31605 33891,31606,33944,31606 33875,31606,33876,31606 33892,31607,33943,31607 33872,31607,33877,31607 33893,31608,33943,31608 33871,31608,33878,31608 33868,31608,33869,31608 33865,31609,33879,31609 33894,31609,33943,31609 33866,31610,33880,31610 33895,31610,33941,31610 33895,31611,33940,31611 33865,31611,33882,31612 33896,31612,33940,31612 33897,31613,33938,31613 33864,31613,33882,31613 33864,31614,33884,31614 33897,31614,33936,31614 33896,31615,33935,31615 33863,31615,33886,31615 33863,31616,33887,31616 33896,31616,33934,31616 33900,31617,33933,31617 33862,31617,33888,31618 33901,31618,33932,31618 33901,31619,33933,31619 33862,31619,33889,31620 33902,31620,33933,31620 33903,31621,33934,31621 33862,31621,33890,31621 33904,31622,33935,31622 33862,31622,33891,31622 33904,31623,33936,31623 33862,31623,33892,31623 33905,31624,33936,31624 33862,31624,33893,31625 33905,31625,33937,31625 33862,31626,33894,31626 33904,31626,33939,31626 33904,31627,33941,31627 33861,31627,33894,31627 33860,31628,33893,31628 33896,31628,33897,31628 33907,31628,33942,31628 33860,31629,33897,31629 33908,31629,33946,31629 33908,31630,33947,31630 33859,31630,33898,31631 33909,31631,33948,31632 33859,31632,33899,31632 33910,31633,33947,31633 33858,31633,33899,31633 33857,31634,33900,31634 33911,31634,33947,31634 33912,31635,33947,31635 33857,31635,33901,31635 33857,31636,33902,31637 33912,31636,33946,31637 33914,31638,33948,31638 33856,31638,33903,31639 33914,31639,33954,31639 33956,31639,33957,31639 33855,31640,33904,31640 33915,31640,33957,31640 33857,31641,33904,31641 33915,31641,33959,31642 33857,31642,33905,31642 33916,31643,33961,31643 33856,31643,33907,31643 33916,31644,33962,31644 33857,31644,33908,31645 33846,31644,33846,31645 33916,31645,33963,31645 33846,31646,33847,31646 33916,31646,33966,31646 33857,31646,33909,31647 33916,31647,33967,31647 33847,31647,33847,31648 33916,31648,33968,31648 33858,31648,33909,31649 33917,31649,33970,31649 33847,31649,33849,31650 33917,31650,33971,31650 33858,31650,33910,31651 33918,31651,33973,31651 33859,31652,33910,31652 33847,31651,33850,31653 33917,31652,33973,31654 33859,31653,33911,31654 33848,31654,33850,31654 33969,31655,33972,31655 33917,31655,33963,31655 33971,31656,33972,31656 33859,31655,33910,31657 33848,31655,33851,31657 33917,31656,33960,31657 33860,31658,33910,31658 33917,31658,33961,31658 33849,31658,33852,31658 33916,31659,33962,31659 33861,31659,33909,31659 33850,31659,33853,31659 33859,31660,33909,31660 33916,31660,33963,31660 33850,31660,33854,31660 33857,31660,33857,31660 33915,31661,33964,31661 33850,31661,33908,31661 33853,31662,33906,31662 33915,31662,33965,31662 33854,31663,33904,31663 33914,31663,33965,31663 33913,31664,33962,31664 33856,31664,33903,31664 33858,31665,33902,31665 33913,31665,33959,31665 33859,31666,33900,31666 33913,31666,33957,31666 33860,31667,33897,31667 33954,31667,33955,31667 33912,31667,33952,31667 33941,31668,33952,31668 33865,31668,33894,31668 33912,31668,33939,31668 33878,31669,33892,31669 33913,31669,33936,31669 33869,31669,33871,31669 33944,31669,33951,31669 33866,31669,33867,31669 33915,31670,33935,31670 33882,31670,33886,31670 33946,31670,33949,31670 33879,31670,33880,31670 33874,31669,33874,31671 33946,31671,33947,31671 33917,31671,33934,31671 33918,31672,33934,31672 33918,31673,33933,31673 33919,31674,33933,31674 33921,31675,33934,31675 33922,31676,33935,31676 33924,31677,33935,31677 33925,31678,33936,31678 33927,31679,33937,31680 33928,31681,33937,31681 33929,31682,33937,31682 33931,31683,33937,31683", + }, + [365] = { -- Kilmaresh Mountains (4673 tiles, 147 rects) + name = "Kilmaresh Mountains", + mainArea = 355, + bbox = { x1 = 33786, y1 = 31584, x2 = 33875, y2 = 31710 }, + rects = "33807,31584,33809,31584 33807,31585,33811,31585 33806,31586,33812,31586 33806,31587,33813,31587 33806,31588,33814,31588 33807,31589,33817,31591 33821,31592,33823,31592 33809,31592,33815,31593 33819,31593,33833,31593 33843,31593,33845,31593 33847,31593,33848,31593 33819,31594,33837,31594 33808,31594,33811,31594 33843,31594,33854,31594 33817,31595,33855,31595 33808,31595,33812,31595 33808,31596,33855,31596 33808,31597,33856,31597 33809,31598,33856,31598 33870,31599,33872,31599 33808,31599,33859,31599 33867,31600,33873,31601 33807,31600,33860,31601 33807,31602,33873,31602 33806,31603,33874,31603 33806,31604,33875,31605 33806,31606,33874,31606 33806,31607,33871,31607 33806,31608,33867,31608 33870,31608,33870,31608 33806,31609,33864,31609 33806,31610,33865,31610 33806,31611,33864,31612 33807,31613,33863,31614 33810,31615,33862,31616 33811,31617,33861,31619 33812,31620,33861,31620 33813,31621,33861,31621 33814,31622,33861,31622 33815,31623,33861,31624 33816,31625,33861,31625 33818,31626,33861,31626 33817,31627,33860,31627 33816,31628,33859,31628 33814,31629,33859,31629 33815,31630,33858,31631 33814,31632,33858,31632 33814,31633,33857,31633 33813,31634,33856,31635 33817,31636,33856,31636 33822,31637,33856,31637 33825,31638,33825,31638 33827,31638,33855,31638 33828,31639,33855,31639 33828,31640,33854,31640 33828,31641,33856,31642 33828,31643,33855,31643 33828,31644,33844,31644 33847,31644,33856,31645 33828,31645,33842,31646 33791,31646,33793,31646 33848,31646,33856,31647 33827,31647,33842,31647 33791,31647,33794,31647 33791,31648,33796,31648 33848,31648,33857,31648 33791,31649,33797,31649 33850,31649,33857,31650 33793,31650,33797,31650 33827,31648,33843,31651 33851,31651,33857,31651 33793,31651,33798,31651 33792,31652,33799,31652 33828,31652,33843,31652 33792,31653,33800,31653 33821,31653,33843,31653 33851,31652,33858,31654 33820,31654,33843,31654 33792,31654,33803,31654 33793,31655,33796,31655 33798,31655,33803,31655 33820,31655,33844,31655 33819,31656,33844,31656 33852,31655,33858,31657 33798,31656,33805,31657 33816,31657,33845,31657 33810,31657,33810,31657 33812,31657,33812,31657 33797,31658,33845,31658 33853,31658,33859,31658 33794,31659,33845,31659 33854,31659,33860,31659 33858,31660,33858,31660 33791,31660,33846,31660 33855,31660,33856,31660 33790,31661,33846,31661 33790,31662,33847,31663 33795,31664,33847,31664 33795,31665,33849,31665 33809,31666,33810,31666 33792,31666,33807,31666 33815,31666,33849,31666 33816,31667,33848,31667 33790,31667,33800,31667 33819,31668,33848,31668 33790,31668,33798,31668 33790,31669,33796,31669 33821,31669,33849,31669 33791,31670,33795,31670 33789,31671,33794,31671 33823,31670,33849,31672 33789,31672,33793,31672 33787,31673,33792,31673 33824,31673,33849,31673 33823,31674,33850,31674 33787,31674,33791,31674 33822,31675,33851,31675 33787,31675,33790,31675 33821,31676,33851,31676 33786,31676,33789,31676 33822,31677,33850,31677 33822,31678,33852,31678 33786,31677,33788,31680 33821,31679,33853,31681 33822,31682,33852,31684 33823,31685,33850,31685 33824,31686,33851,31687 33825,31688,33851,31688 33827,31689,33851,31689 33829,31690,33851,31691 33827,31692,33851,31692 33825,31693,33851,31695 33826,31696,33851,31696 33827,31697,33850,31697 33825,31698,33850,31698 33829,31699,33831,31699 33833,31699,33850,31700 33834,31701,33849,31701 33835,31702,33849,31702 33836,31703,33849,31703 33836,31704,33847,31705 33836,31706,33846,31706 33836,31707,33844,31707 33836,31708,33843,31708 33837,31709,33843,31709 33837,31710,33837,31710 33841,31710,33841,31710", + }, + [388] = { -- Furious Crater (9194 tiles, 231 rects) + name = "Furious Crater", + mainArea = 355, + bbox = { x1 = 33795, y1 = 31809, x2 = 33915, y2 = 31939 }, + rects = "33844,31809,33845,31809 33842,31810,33845,31810 33841,31811,33844,31811 33861,31811,33862,31812 33839,31812,33843,31812 33870,31813,33872,31813 33860,31813,33862,31813 33839,31813,33841,31814 33861,31814,33862,31814 33877,31814,33878,31814 33869,31814,33871,31815 33855,31815,33855,31815 33862,31815,33862,31815 33839,31815,33840,31816 33876,31815,33878,31817 33851,31816,33856,31817 33859,31816,33862,31817 33827,31817,33828,31817 33834,31817,33834,31817 33868,31816,33871,31818 33838,31817,33840,31818 33832,31818,33835,31818 33827,31818,33829,31819 33844,31818,33862,31819 33875,31818,33878,31819 33864,31819,33872,31819 33832,31819,33840,31820 33843,31820,33878,31820 33826,31820,33829,31820 33819,31820,33821,31820 33819,31821,33822,31821 33826,31821,33877,31822 33880,31822,33881,31822 33819,31822,33823,31822 33887,31823,33892,31823 33819,31823,33881,31823 33821,31824,33884,31824 33886,31824,33894,31824 33822,31825,33894,31825 33822,31826,33889,31826 33813,31826,33814,31826 33812,31827,33889,31827 33813,31828,33889,31828 33808,31828,33810,31830 33814,31829,33888,31830 33809,31831,33811,31831 33814,31831,33889,31832 33809,31832,33812,31832 33810,31833,33889,31834 33891,31835,33893,31835 33810,31835,33888,31835 33890,31836,33894,31836 33810,31836,33887,31836 33803,31837,33804,31838 33810,31837,33894,31838 33811,31839,33896,31839 33803,31839,33807,31840 33811,31840,33897,31840 33810,31841,33898,31841 33805,31841,33807,31842 33809,31842,33899,31842 33805,31843,33903,31843 33803,31844,33903,31844 33803,31845,33902,31846 33801,31847,33904,31848 33796,31848,33798,31848 33795,31849,33904,31849 33795,31850,33897,31850 33797,31851,33896,31851 33903,31850,33905,31852 33799,31852,33896,31852 33904,31853,33904,31853 33801,31853,33895,31854 33802,31855,33892,31855 33800,31856,33888,31856 33897,31856,33901,31856 33860,31857,33887,31857 33800,31857,33849,31857 33896,31857,33902,31857 33800,31858,33800,31858 33862,31858,33902,31858 33802,31858,33848,31858 33863,31859,33904,31859 33802,31859,33847,31859 33802,31860,33846,31860 33864,31860,33905,31860 33865,31861,33905,31863 33801,31861,33845,31863 33865,31864,33904,31864 33807,31864,33845,31864 33799,31864,33803,31864 33798,31865,33803,31865 33908,31865,33909,31865 33865,31865,33900,31866 33904,31866,33909,31866 33798,31866,33800,31866 33808,31865,33845,31867 33865,31867,33908,31867 33809,31868,33845,31868 33865,31868,33907,31869 33811,31869,33845,31869 33800,31869,33802,31869 33815,31870,33845,31870 33865,31870,33908,31870 33800,31870,33803,31870 33864,31871,33907,31871 33813,31871,33846,31871 33802,31871,33803,31871 33863,31872,33907,31872 33795,31872,33798,31872 33801,31872,33805,31872 33808,31872,33847,31872 33795,31873,33848,31873 33862,31873,33907,31873 33861,31874,33908,31874 33796,31874,33849,31874 33798,31875,33908,31875 33800,31876,33915,31876 33801,31877,33803,31877 33805,31877,33915,31877 33806,31878,33915,31879 33804,31880,33907,31880 33913,31880,33914,31880 33807,31881,33907,31881 33803,31881,33804,31883 33808,31882,33907,31883 33803,31884,33805,31884 33808,31884,33910,31886 33802,31885,33804,31886 33802,31887,33803,31887 33808,31887,33908,31887 33806,31888,33907,31888 33805,31889,33846,31889 33850,31889,33904,31890 33805,31890,33845,31890 33849,31891,33904,31891 33806,31891,33842,31891 33807,31892,33840,31892 33849,31892,33905,31892 33908,31892,33911,31893 33848,31893,33906,31893 33809,31893,33831,31893 33833,31893,33839,31893 33834,31894,33838,31894 33848,31894,33911,31894 33846,31895,33910,31895 33811,31894,33831,31896 33845,31896,33906,31896 33834,31895,33837,31897 33845,31897,33905,31897 33813,31897,33829,31898 33844,31898,33903,31898 33834,31898,33836,31898 33843,31899,33900,31899 33814,31899,33829,31899 33815,31900,33829,31900 33843,31900,33899,31900 33842,31901,33900,31901 33816,31901,33828,31902 33842,31902,33901,31902 33816,31903,33826,31903 33841,31903,33906,31903 33900,31904,33907,31904 33815,31904,33825,31904 33840,31904,33898,31904 33839,31905,33896,31905 33814,31905,33825,31905 33904,31905,33908,31905 33907,31906,33908,31906 33809,31906,33825,31906 33809,31907,33823,31907 33839,31906,33894,31908 33811,31908,33818,31908 33821,31908,33823,31909 33812,31909,33812,31909 33814,31909,33816,31909 33839,31909,33889,31909 33838,31910,33889,31910 33822,31910,33823,31910 33838,31911,33888,31911 33837,31912,33888,31912 33837,31913,33864,31913 33867,31913,33889,31913 33836,31914,33860,31914 33867,31914,33888,31914 33867,31915,33885,31915 33837,31915,33858,31916 33867,31916,33884,31916 33861,31916,33864,31916 33867,31917,33882,31917 33868,31918,33881,31918 33837,31917,33864,31919 33868,31919,33882,31920 33838,31920,33864,31921 33868,31921,33883,31922 33838,31922,33863,31922 33838,31923,33862,31923 33867,31923,33883,31924 33837,31924,33861,31925 33866,31925,33884,31925 33865,31926,33885,31926 33837,31926,33860,31926 33880,31927,33880,31927 33883,31927,33885,31927 33841,31927,33860,31927 33864,31927,33876,31927 33841,31928,33859,31928 33884,31928,33884,31928 33863,31928,33876,31928 33862,31929,33878,31929 33841,31929,33858,31930 33861,31930,33880,31931 33840,31931,33858,31931 33861,31932,33879,31932 33840,31932,33847,31932 33850,31932,33853,31933 33855,31932,33856,31933 33840,31933,33844,31933 33865,31933,33879,31933 33850,31934,33852,31934 33865,31934,33878,31934 33841,31934,33844,31934 33866,31935,33877,31935 33842,31935,33844,31935 33850,31935,33851,31935 33866,31936,33876,31936 33867,31937,33868,31937 33870,31937,33876,31937 33867,31938,33867,31938 33871,31938,33876,31938 33876,31939,33876,31939", + }, + [391] = { -- Bounac (7813 tiles, 225 rects) + name = "Bounac", + mainArea = 17, + bbox = { x1 = 32343, y1 = 32439, x2 = 32485, y2 = 32543 }, + rects = "32437,32439,32438,32439 32435,32440,32439,32440 32444,32441,32445,32441 32434,32441,32438,32441 32421,32442,32422,32442 32443,32442,32445,32442 32434,32442,32436,32442 32443,32443,32446,32443 32435,32443,32436,32443 32421,32443,32424,32443 32443,32444,32448,32444 32423,32444,32426,32444 32424,32445,32430,32445 32446,32445,32448,32445 32444,32445,32444,32445 32421,32446,32431,32446 32447,32446,32447,32446 32422,32447,32432,32447 32421,32448,32434,32448 32417,32449,32435,32449 32353,32449,32356,32449 32416,32450,32436,32450 32453,32450,32453,32450 32441,32450,32444,32450 32353,32450,32357,32450 32453,32451,32457,32451 32352,32451,32356,32451 32375,32451,32377,32451 32407,32451,32408,32451 32413,32451,32445,32451 32387,32452,32388,32452 32401,32452,32401,32452 32406,32452,32409,32452 32369,32452,32378,32452 32353,32452,32355,32452 32411,32452,32444,32452 32454,32452,32457,32452 32354,32453,32354,32453 32367,32453,32378,32453 32386,32453,32391,32453 32400,32453,32444,32453 32455,32453,32456,32454 32363,32454,32379,32454 32385,32454,32395,32454 32398,32454,32444,32454 32361,32455,32443,32455 32360,32456,32442,32456 32461,32456,32466,32457 32358,32457,32440,32457 32451,32458,32454,32458 32461,32458,32465,32458 32357,32458,32438,32459 32462,32459,32465,32459 32450,32459,32454,32460 32356,32460,32437,32460 32463,32460,32465,32460 32356,32461,32436,32461 32451,32461,32453,32461 32346,32461,32346,32461 32345,32462,32347,32462 32355,32462,32433,32462 32452,32462,32452,32462 32356,32463,32430,32463 32344,32463,32347,32463 32453,32464,32454,32464 32357,32464,32427,32464 32344,32464,32348,32464 32441,32465,32441,32465 32356,32465,32427,32465 32452,32465,32455,32465 32345,32465,32349,32465 32445,32465,32445,32465 32344,32466,32350,32466 32451,32466,32454,32466 32356,32466,32425,32466 32437,32466,32446,32466 32343,32467,32350,32467 32436,32467,32446,32467 32356,32467,32421,32467 32450,32467,32453,32467 32344,32468,32350,32468 32434,32468,32452,32468 32355,32468,32419,32468 32354,32469,32417,32469 32430,32469,32451,32469 32346,32469,32349,32469 32429,32470,32450,32470 32462,32470,32462,32470 32354,32470,32415,32470 32457,32470,32458,32471 32346,32470,32348,32471 32355,32471,32415,32471 32461,32471,32463,32471 32429,32471,32449,32471 32457,32472,32463,32472 32355,32472,32416,32472 32346,32472,32346,32472 32427,32472,32449,32472 32426,32473,32449,32473 32456,32473,32462,32473 32356,32473,32417,32473 32358,32474,32449,32474 32454,32474,32462,32474 32358,32475,32450,32475 32453,32475,32463,32475 32347,32476,32348,32476 32356,32476,32463,32477 32346,32477,32350,32477 32356,32478,32464,32478 32346,32478,32351,32478 32345,32479,32352,32479 32356,32479,32465,32479 32356,32480,32466,32480 32344,32480,32352,32480 32357,32481,32468,32481 32346,32481,32351,32482 32357,32482,32469,32482 32347,32483,32348,32483 32358,32483,32469,32483 32350,32483,32350,32483 32361,32484,32470,32484 32348,32484,32348,32484 32362,32485,32470,32485 32363,32486,32471,32486 32363,32487,32472,32487 32363,32488,32473,32488 32361,32489,32473,32489 32360,32490,32471,32491 32473,32492,32485,32492 32359,32492,32470,32492 32359,32493,32468,32493 32472,32493,32485,32493 32360,32494,32467,32494 32471,32494,32485,32494 32472,32495,32485,32495 32360,32495,32466,32496 32474,32496,32485,32496 32361,32497,32478,32497 32365,32498,32478,32501 32365,32502,32475,32505 32364,32506,32476,32506 32374,32507,32376,32507 32365,32507,32369,32507 32378,32507,32477,32507 32375,32508,32375,32508 32380,32508,32455,32508 32457,32508,32479,32508 32365,32508,32367,32509 32387,32509,32479,32509 32382,32509,32384,32509 32362,32510,32362,32510 32366,32510,32366,32510 32390,32510,32459,32510 32462,32510,32477,32510 32463,32511,32477,32511 32390,32511,32458,32512 32463,32512,32472,32512 32386,32513,32386,32513 32389,32513,32460,32513 32464,32513,32471,32513 32385,32514,32387,32514 32465,32514,32468,32514 32389,32514,32461,32514 32390,32515,32462,32515 32385,32515,32388,32515 32466,32515,32467,32515 32381,32515,32382,32515 32390,32516,32463,32516 32381,32516,32381,32516 32384,32516,32387,32516 32385,32517,32386,32517 32389,32517,32463,32517 32386,32518,32386,32518 32388,32518,32463,32518 32388,32519,32458,32519 32387,32520,32454,32520 32388,32521,32454,32521 32387,32522,32453,32522 32388,32523,32452,32523 32385,32524,32451,32524 32385,32525,32415,32525 32419,32525,32450,32525 32386,32526,32386,32526 32408,32526,32414,32526 32388,32526,32405,32526 32420,32526,32449,32527 32408,32527,32413,32527 32389,32527,32402,32527 32387,32527,32387,32527 32387,32528,32388,32528 32410,32528,32413,32528 32419,32528,32448,32528 32391,32528,32400,32528 32391,32529,32399,32529 32388,32529,32388,32529 32411,32529,32413,32529 32418,32529,32446,32529 32417,32530,32446,32530 32392,32530,32398,32530 32417,32531,32445,32531 32393,32531,32395,32531 32393,32532,32394,32532 32417,32532,32444,32533 32394,32533,32394,32533 32417,32534,32443,32534 32397,32534,32399,32534 32398,32535,32399,32535 32417,32535,32442,32536 32403,32536,32403,32536 32398,32536,32398,32536 32402,32537,32404,32537 32418,32537,32434,32537 32440,32537,32441,32537 32401,32538,32405,32538 32421,32538,32431,32538 32410,32538,32412,32539 32424,32539,32428,32539 32402,32539,32406,32539 32426,32540,32427,32540 32402,32540,32404,32540 32409,32540,32413,32540 32410,32541,32413,32541 32403,32541,32403,32541 32411,32542,32414,32542 32412,32543,32414,32543", + }, + [394] = { -- Rascacoon (17088 tiles, 262 rects) + name = "Rascacoon", + mainArea = 355, + bbox = { x1 = 33640, y1 = 31251, x2 = 33939, y2 = 31403 }, + rects = "33693,31251,33699,31251 33748,31252,33751,31252 33692,31252,33700,31252 33692,31253,33701,31253 33747,31253,33752,31254 33691,31254,33702,31254 33691,31255,33703,31255 33746,31255,33753,31255 33733,31256,33738,31256 33745,31256,33754,31256 33691,31256,33704,31256 33745,31257,33756,31257 33730,31257,33738,31257 33690,31257,33705,31257 33745,31258,33757,31258 33730,31258,33739,31258 33689,31258,33706,31259 33727,31259,33739,31259 33745,31259,33759,31259 33724,31260,33739,31260 33767,31260,33770,31260 33689,31260,33707,31260 33745,31260,33761,31261 33690,31261,33708,31261 33724,31261,33740,31261 33766,31261,33771,31261 33765,31262,33774,31262 33746,31262,33761,31262 33692,31262,33710,31262 33722,31262,33740,31262 33720,31263,33741,31263 33765,31263,33775,31263 33692,31263,33711,31263 33747,31263,33762,31263 33717,31264,33742,31264 33693,31264,33713,31264 33747,31264,33775,31265 33691,31265,33743,31265 33689,31266,33743,31266 33748,31266,33775,31267 33689,31267,33745,31267 33689,31268,33746,31268 33749,31268,33774,31268 33690,31269,33746,31269 33750,31269,33773,31269 33750,31270,33774,31270 33691,31270,33746,31271 33749,31271,33775,31272 33692,31272,33745,31272 33693,31273,33776,31273 33694,31274,33776,31274 33694,31275,33777,31275 33694,31276,33778,31277 33695,31278,33778,31278 33697,31279,33778,31279 33698,31280,33777,31280 33783,31281,33787,31281 33698,31281,33778,31281 33782,31282,33788,31282 33697,31282,33779,31282 33782,31283,33793,31283 33695,31283,33779,31283 33694,31284,33795,31284 33692,31285,33796,31287 33692,31288,33799,31288 33693,31289,33800,31290 33693,31291,33802,31291 33694,31292,33802,31293 33695,31294,33802,31294 33694,31295,33803,31295 33694,31296,33804,31296 33693,31297,33804,31297 33679,31297,33683,31297 33678,31298,33683,31298 33693,31298,33805,31298 33693,31299,33808,31299 33675,31299,33683,31299 33674,31300,33683,31300 33693,31300,33809,31300 33694,31301,33810,31301 33673,31301,33683,31301 33695,31302,33811,31302 33671,31302,33681,31302 33670,31303,33681,31303 33694,31303,33811,31303 33692,31304,33811,31304 33670,31304,33680,31304 33668,31305,33680,31306 33690,31305,33811,31306 33689,31307,33811,31307 33667,31307,33679,31307 33666,31308,33678,31308 33688,31308,33811,31308 33686,31309,33811,31309 33663,31309,33676,31309 33684,31310,33810,31310 33682,31311,33810,31311 33663,31310,33674,31312 33681,31312,33810,31312 33680,31313,33808,31314 33664,31313,33674,31314 33665,31315,33673,31315 33679,31315,33806,31315 33665,31316,33672,31316 33677,31316,33806,31317 33666,31317,33672,31317 33666,31318,33673,31319 33677,31318,33805,31319 33678,31320,33805,31320 33667,31320,33674,31320 33680,31321,33810,31321 33680,31322,33811,31322 33667,31321,33675,31323 33681,31323,33813,31324 33665,31324,33675,31324 33664,31325,33674,31325 33682,31325,33813,31326 33664,31326,33673,31326 33684,31327,33813,31327 33663,31327,33672,31327 33683,31328,33813,31328 33663,31328,33671,31328 33819,31329,33821,31329 33681,31329,33816,31329 33663,31329,33669,31329 33663,31330,33667,31330 33680,31330,33822,31330 33678,31331,33822,31331 33676,31332,33823,31333 33675,31334,33823,31335 33674,31336,33823,31336 33674,31337,33822,31337 33673,31338,33821,31339 33671,31340,33820,31340 33670,31341,33820,31341 33670,31342,33819,31343 33669,31344,33818,31344 33668,31345,33818,31345 33666,31346,33818,31346 33665,31347,33818,31347 33663,31348,33818,31348 33660,31349,33818,31349 33659,31350,33818,31350 33654,31350,33657,31350 33653,31351,33818,31352 33653,31353,33819,31353 33652,31354,33819,31354 33651,31355,33819,31355 33924,31356,33929,31356 33651,31356,33820,31357 33922,31357,33932,31357 33920,31358,33933,31358 33918,31359,33934,31359 33650,31358,33820,31360 33918,31360,33937,31360 33777,31361,33820,31361 33650,31361,33775,31361 33918,31361,33939,31361 33650,31362,33774,31362 33779,31362,33819,31362 33917,31362,33939,31362 33917,31363,33938,31363 33649,31363,33772,31363 33780,31363,33817,31363 33781,31364,33816,31364 33648,31364,33772,31364 33917,31364,33937,31364 33783,31365,33814,31365 33647,31365,33770,31365 33916,31365,33937,31365 33916,31366,33936,31366 33647,31366,33769,31366 33784,31366,33800,31366 33802,31366,33811,31366 33678,31367,33768,31367 33647,31367,33675,31367 33805,31367,33810,31367 33785,31367,33800,31367 33916,31367,33935,31367 33646,31368,33674,31368 33924,31368,33935,31368 33678,31368,33767,31368 33916,31368,33922,31368 33806,31368,33809,31368 33785,31368,33799,31368 33917,31369,33935,31369 33644,31369,33674,31369 33786,31369,33798,31369 33677,31369,33766,31370 33788,31370,33797,31370 33642,31370,33673,31370 33918,31370,33934,31371 33676,31371,33766,31371 33790,31371,33796,31371 33641,31371,33673,31371 33792,31372,33795,31372 33640,31372,33672,31372 33676,31372,33767,31372 33919,31372,33933,31372 33931,31373,33933,31373 33693,31373,33768,31373 33926,31373,33928,31373 33676,31373,33690,31373 33920,31373,33921,31373 33932,31374,33933,31374 33692,31374,33768,31374 33676,31374,33689,31374 33640,31373,33671,31375 33676,31375,33688,31375 33691,31375,33770,31376 33640,31376,33670,31376 33678,31376,33687,31376 33689,31377,33770,31377 33679,31377,33686,31377 33642,31377,33670,31377 33689,31378,33769,31378 33643,31378,33667,31378 33679,31378,33683,31378 33661,31379,33665,31379 33644,31379,33656,31379 33689,31379,33768,31380 33781,31380,33805,31380 33644,31380,33653,31380 33646,31381,33649,31381 33690,31381,33766,31381 33780,31381,33805,31381 33757,31382,33765,31382 33779,31382,33805,31382 33691,31382,33752,31382 33691,31383,33750,31383 33778,31383,33805,31383 33759,31383,33764,31383 33701,31384,33750,31384 33777,31384,33805,31384 33693,31384,33699,31384 33776,31385,33805,31385 33693,31385,33696,31385 33704,31385,33749,31385 33775,31386,33805,31386 33704,31386,33750,31386 33776,31387,33805,31387 33705,31387,33750,31387 33777,31388,33805,31388 33706,31388,33750,31389 33778,31389,33805,31389 33707,31390,33750,31390 33779,31390,33805,31390 33708,31391,33749,31391 33780,31391,33805,31391 33781,31392,33805,31392 33708,31392,33710,31392 33714,31392,33749,31392 33739,31393,33747,31393 33739,31394,33746,31394 33714,31393,33733,31395 33743,31395,33746,31395 33716,31396,33733,31396 33717,31397,33733,31398 33717,31399,33731,31400 33718,31401,33731,31401 33719,31402,33730,31402 33721,31403,33726,31403", + }, + [397] = { -- The Wreckoning (5775 tiles, 97 rects) + name = "The Wreckoning", + mainArea = 355, + bbox = { x1 = 33835, y1 = 31178, x2 = 33936, y2 = 31264 }, + rects = "33905,31178,33908,31179 33893,31179,33900,31179 33893,31180,33908,31180 33884,31181,33887,31181 33892,31181,33908,31182 33884,31182,33888,31182 33884,31183,33905,31183 33884,31184,33915,31184 33875,31185,33916,31185 33874,31186,33917,31186 33873,31187,33918,31187 33872,31188,33917,31188 33868,31189,33917,31189 33867,31190,33918,31190 33852,31190,33858,31191 33866,31191,33919,31191 33852,31192,33920,31192 33852,31193,33921,31193 33851,31194,33922,31194 33850,31195,33923,31195 33849,31196,33924,31196 33848,31197,33925,31198 33848,31199,33924,31199 33848,31200,33927,31200 33848,31201,33928,31204 33847,31205,33928,31205 33846,31206,33928,31206 33845,31207,33928,31207 33844,31208,33928,31208 33843,31209,33928,31209 33842,31210,33928,31210 33841,31211,33928,31211 33841,31212,33927,31212 33841,31213,33926,31213 33841,31214,33925,31214 33841,31215,33922,31215 33840,31216,33921,31216 33840,31217,33924,31217 33840,31218,33925,31218 33836,31219,33925,31219 33835,31220,33925,31220 33835,31221,33928,31221 33835,31222,33929,31222 33835,31223,33930,31223 33835,31224,33931,31224 33835,31225,33932,31225 33835,31226,33933,31226 33835,31227,33934,31227 33835,31228,33935,31228 33835,31229,33936,31229 33836,31230,33935,31230 33836,31231,33934,31231 33836,31232,33933,31232 33844,31233,33931,31233 33837,31233,33841,31233 33844,31234,33921,31234 33838,31234,33840,31234 33848,31235,33921,31237 33844,31238,33921,31238 33843,31239,33920,31239 33843,31240,33921,31240 33845,31241,33921,31241 33846,31242,33857,31242 33862,31242,33921,31242 33847,31243,33856,31243 33862,31243,33920,31243 33848,31244,33856,31244 33862,31244,33919,31244 33862,31245,33918,31245 33849,31245,33856,31245 33850,31246,33856,31246 33862,31246,33917,31246 33862,31247,33916,31247 33851,31247,33856,31247 33862,31248,33915,31248 33852,31248,33856,31248 33866,31249,33908,31249 33910,31249,33915,31249 33866,31250,33907,31250 33865,31251,33909,31253 33863,31254,33909,31254 33862,31255,33909,31255 33861,31256,33909,31256 33860,31257,33909,31257 33859,31258,33867,31258 33878,31258,33909,31258 33858,31259,33866,31259 33878,31259,33898,31260 33857,31260,33865,31260 33879,31261,33880,31261 33883,31261,33898,31261 33857,31261,33864,31261 33884,31262,33898,31262 33858,31262,33863,31262 33859,31263,33862,31263 33885,31263,33898,31263 33860,31264,33861,31264", + }, + [437] = { -- Murmuring Wilderness (2401 tiles, 123 rects) + name = "Murmuring Wilderness", + mainArea = 434, + bbox = { x1 = 33679, y1 = 32654, x2 = 33805, y2 = 32706 }, + rects = "33710,32654,33710,32654 33709,32655,33711,32655 33708,32656,33712,32656 33707,32657,33712,32657 33707,32658,33713,32658 33708,32659,33714,32659 33782,32660,33782,32660 33710,32660,33714,32660 33761,32660,33761,32661 33712,32661,33713,32661 33777,32661,33782,32661 33778,32662,33784,32662 33760,32662,33761,32662 33713,32662,33713,32662 33759,32663,33762,32663 33781,32663,33787,32663 33781,32664,33789,32664 33757,32664,33762,32664 33714,32663,33714,32665 33755,32665,33763,32665 33780,32665,33790,32665 33712,32665,33712,32665 33780,32666,33793,32666 33753,32666,33764,32666 33711,32666,33714,32666 33753,32667,33765,32667 33710,32667,33715,32667 33780,32667,33797,32667 33781,32668,33801,32668 33777,32668,33777,32668 33709,32668,33718,32668 33752,32668,33765,32668 33708,32669,33721,32669 33776,32669,33802,32669 33751,32669,33766,32669 33749,32670,33766,32670 33707,32670,33725,32670 33775,32670,33778,32670 33739,32670,33739,32670 33781,32670,33803,32671 33705,32671,33729,32671 33748,32671,33767,32671 33736,32671,33741,32671 33774,32671,33777,32671 33782,32672,33805,32672 33773,32672,33776,32672 33704,32672,33768,32672 33782,32673,33804,32673 33703,32673,33776,32673 33702,32674,33769,32674 33783,32674,33803,32674 33774,32674,33775,32674 33701,32675,33770,32675 33784,32675,33803,32675 33784,32676,33802,32676 33700,32676,33770,32676 33699,32677,33771,32677 33783,32677,33801,32678 33698,32678,33771,32678 33782,32679,33800,32680 33697,32679,33771,32680 33781,32681,33800,32681 33696,32681,33750,32681 33754,32681,33771,32681 33695,32682,33749,32682 33781,32682,33796,32682 33757,32682,33771,32682 33752,32681,33752,32683 33758,32683,33771,32683 33782,32683,33790,32683 33694,32683,33748,32683 33693,32684,33747,32684 33752,32684,33754,32684 33782,32684,33788,32684 33691,32685,33747,32685 33751,32685,33754,32685 33782,32685,33787,32685 33760,32684,33772,32686 33690,32686,33746,32686 33689,32687,33745,32687 33761,32687,33772,32687 33750,32686,33756,32688 33761,32688,33771,32688 33688,32688,33744,32688 33681,32688,33681,32688 33681,32689,33725,32689 33751,32689,33755,32689 33728,32689,33741,32689 33760,32689,33771,32690 33752,32690,33755,32690 33682,32690,33720,32690 33730,32690,33741,32690 33739,32691,33742,32691 33759,32691,33770,32691 33753,32691,33754,32691 33682,32691,33718,32691 33731,32691,33736,32691 33758,32692,33770,32692 33682,32692,33716,32692 33740,32692,33742,32692 33682,32693,33714,32693 33742,32693,33742,32693 33757,32693,33769,32693 33755,32694,33769,32694 33679,32694,33712,32694 33679,32695,33709,32695 33756,32695,33768,32695 33681,32696,33706,32696 33758,32696,33767,32696 33758,32697,33764,32697 33687,32697,33704,32697 33681,32697,33681,32697 33687,32698,33700,32698 33688,32699,33696,32699 33764,32698,33764,32700 33690,32700,33694,32700 33763,32701,33764,32701 33691,32701,33693,32701 33764,32702,33764,32702 33688,32700,33688,32703 33765,32703,33765,32703 33766,32704,33766,32704 33767,32705,33767,32706", + }, + [438] = { -- Silent Waters (1391 tiles, 154 rects) + name = "Silent Waters", + mainArea = 434, + bbox = { x1 = 33681, y1 = 32693, x2 = 33751, y2 = 32749 }, + rects = "33741,32693,33741,32693 33723,32695,33726,32695 33741,32694,33742,32696 33722,32696,33728,32696 33739,32697,33740,32697 33720,32697,33730,32697 33738,32698,33740,32698 33719,32698,33731,32698 33717,32699,33739,32699 33713,32700,33739,32700 33712,32701,33739,32701 33707,32702,33739,32702 33732,32703,33736,32703 33707,32703,33725,32703 33689,32703,33689,32704 33710,32704,33723,32704 33733,32704,33735,32704 33740,32703,33740,32705 33688,32705,33690,32705 33713,32705,33721,32705 33687,32706,33691,32706 33739,32706,33740,32706 33714,32706,33720,32706 33739,32707,33745,32707 33716,32707,33718,32707 33686,32707,33691,32708 33725,32708,33726,32708 33717,32708,33718,32708 33739,32708,33746,32708 33718,32709,33718,32709 33685,32709,33691,32709 33738,32709,33747,32709 33724,32709,33728,32709 33704,32710,33704,32710 33723,32710,33729,32710 33685,32710,33690,32710 33737,32710,33748,32710 33735,32711,33736,32711 33702,32711,33706,32711 33684,32711,33690,32711 33723,32711,33730,32711 33719,32710,33719,32712 33739,32711,33751,32712 33684,32712,33689,32712 33735,32712,33735,32712 33702,32712,33708,32712 33721,32712,33731,32712 33695,32712,33696,32712 33717,32713,33734,32713 33740,32713,33751,32713 33694,32713,33697,32713 33702,32713,33711,32713 33683,32713,33689,32713 33682,32714,33689,32714 33741,32714,33751,32714 33702,32714,33732,32714 33693,32714,33698,32715 33702,32715,33734,32715 33743,32715,33751,32715 33682,32715,33688,32716 33744,32716,33750,32716 33702,32716,33737,32716 33694,32716,33698,32716 33745,32717,33749,32717 33695,32717,33697,32717 33682,32717,33687,32717 33703,32717,33737,32718 33695,32718,33695,32718 33681,32718,33685,32718 33689,32717,33689,32719 33704,32719,33737,32719 33694,32719,33695,32719 33682,32719,33684,32719 33692,32720,33697,32720 33703,32720,33737,32720 33700,32720,33701,32720 33683,32720,33683,32720 33688,32720,33689,32720 33687,32721,33689,32721 33708,32721,33736,32721 33700,32721,33703,32721 33692,32721,33698,32721 33693,32722,33703,32722 33687,32722,33690,32722 33711,32722,33736,32722 33712,32723,33736,32723 33688,32723,33690,32724 33714,32724,33735,32724 33694,32723,33702,32725 33715,32725,33735,32725 33689,32725,33691,32725 33716,32726,33735,32726 33689,32726,33702,32726 33708,32726,33710,32726 33696,32727,33710,32727 33717,32727,33735,32727 33690,32727,33693,32728 33717,32728,33734,32728 33696,32728,33703,32728 33708,32728,33710,32728 33718,32729,33728,32729 33691,32729,33693,32729 33697,32729,33704,32729 33735,32729,33736,32730 33697,32730,33705,32730 33692,32730,33694,32730 33720,32730,33725,32730 33737,32731,33738,32731 33693,32731,33693,32731 33710,32731,33710,32731 33698,32731,33706,32732 33735,32732,33739,32732 33729,32732,33729,32732 33699,32733,33707,32733 33722,32733,33723,32733 33734,32733,33741,32733 33705,32734,33708,32734 33722,32734,33725,32734 33701,32734,33703,32734 33732,32734,33742,32734 33712,32734,33712,32734 33722,32735,33727,32735 33702,32735,33708,32735 33730,32735,33742,32735 33706,32736,33706,32736 33702,32736,33702,32736 33724,32736,33745,32736 33747,32736,33747,32736 33722,32736,33722,32736 33708,32736,33709,32736 33723,32737,33742,32737 33746,32737,33747,32737 33708,32737,33708,32737 33701,32737,33701,32738 33724,32738,33741,32738 33704,32738,33704,32738 33700,32739,33700,32739 33708,32739,33708,32739 33725,32739,33741,32739 33726,32740,33740,32740 33728,32741,33738,32741 33707,32740,33709,32742 33730,32742,33736,32742 33744,32741,33744,32743 33740,32743,33742,32743 33731,32743,33734,32744 33740,32744,33743,32744 33740,32745,33742,32745 33732,32745,33734,32745 33733,32746,33734,32746 33741,32746,33741,32747 33734,32747,33734,32747 33735,32748,33740,32748 33737,32749,33737,32749", + }, + [439] = { -- Fading Isles (3176 tiles, 270 rects) + name = "Fading Isles", + mainArea = 434, + bbox = { x1 = 33617, y1 = 32693, x2 = 33691, y2 = 32825 }, + rects = "33678,32693,33678,32693 33676,32694,33678,32694 33671,32694,33673,32694 33670,32695,33678,32695 33670,32696,33680,32696 33669,32697,33680,32697 33668,32698,33680,32698 33665,32699,33679,32699 33664,32700,33678,32700 33663,32701,33678,32702 33662,32703,33678,32703 33659,32704,33678,32704 33658,32705,33678,32705 33658,32706,33677,32706 33660,32707,33676,32707 33663,32708,33676,32708 33665,32709,33674,32709 33663,32709,33663,32709 33668,32710,33673,32710 33662,32710,33663,32710 33670,32711,33672,32711 33662,32711,33664,32711 33662,32712,33665,32712 33661,32713,33666,32713 33662,32714,33665,32714 33663,32715,33665,32715 33657,32716,33659,32716 33664,32716,33665,32716 33656,32717,33665,32717 33640,32718,33644,32718 33654,32718,33665,32718 33639,32719,33647,32719 33663,32719,33667,32719 33651,32719,33658,32719 33665,32720,33668,32720 33639,32720,33657,32720 33640,32721,33655,32721 33666,32721,33668,32721 33641,32722,33655,32722 33668,32722,33668,32722 33668,32723,33669,32723 33642,32723,33655,32723 33643,32724,33655,32724 33660,32724,33662,32724 33668,32724,33670,32724 33667,32725,33668,32725 33643,32725,33663,32725 33670,32725,33670,32726 33674,32726,33675,32726 33644,32726,33667,32726 33676,32727,33676,32727 33644,32727,33665,32727 33671,32727,33673,32727 33635,32727,33637,32727 33645,32728,33665,32728 33634,32728,33638,32728 33633,32729,33638,32729 33645,32729,33664,32729 33634,32730,33639,32730 33646,32730,33663,32730 33644,32731,33660,32731 33635,32731,33640,32732 33643,32732,33659,32732 33634,32733,33641,32733 33643,32733,33658,32733 33634,32734,33658,32734 33648,32735,33658,32735 33633,32735,33646,32735 33632,32736,33644,32736 33648,32736,33659,32736 33649,32737,33659,32737 33632,32737,33643,32737 33631,32738,33642,32738 33650,32738,33661,32738 33652,32739,33662,32739 33630,32739,33641,32739 33628,32740,33640,32740 33655,32740,33661,32740 33652,32740,33652,32740 33657,32741,33660,32741 33648,32741,33651,32741 33626,32741,33640,32741 33646,32742,33649,32742 33625,32742,33640,32742 33624,32743,33641,32743 33645,32743,33649,32743 33623,32744,33632,32744 33635,32744,33650,32745 33622,32745,33632,32745 33621,32746,33631,32746 33654,32747,33654,32747 33660,32746,33662,32748 33620,32747,33630,32748 33638,32746,33651,32749 33619,32749,33629,32749 33618,32750,33628,32750 33655,32751,33655,32751 33637,32750,33650,32752 33617,32751,33627,32752 33655,32752,33657,32752 33636,32753,33650,32753 33618,32753,33626,32753 33655,32753,33656,32753 33654,32754,33655,32754 33635,32754,33650,32754 33618,32754,33625,32754 33662,32755,33662,32755 33656,32755,33656,32755 33635,32755,33654,32755 33670,32755,33670,32755 33619,32755,33625,32755 33634,32756,33652,32756 33669,32756,33671,32756 33619,32756,33624,32757 33668,32757,33671,32757 33633,32757,33656,32757 33633,32758,33660,32758 33666,32758,33672,32758 33620,32758,33624,32759 33633,32759,33672,32759 33621,32760,33624,32760 33632,32760,33670,32761 33622,32761,33624,32761 33624,32762,33627,32762 33632,32762,33668,32762 33632,32763,33667,32763 33624,32763,33629,32763 33625,32764,33666,32764 33628,32765,33663,32765 33671,32766,33672,32766 33629,32766,33660,32766 33631,32767,33657,32767 33668,32767,33672,32767 33660,32767,33660,32768 33634,32768,33656,32768 33666,32768,33671,32768 33668,32769,33671,32769 33659,32769,33661,32769 33666,32769,33666,32769 33637,32769,33654,32769 33634,32769,33634,32770 33638,32770,33653,32770 33658,32770,33665,32770 33676,32770,33676,32770 33657,32771,33661,32771 33674,32771,33677,32771 33640,32771,33653,32771 33665,32771,33665,32772 33642,32772,33652,32772 33658,32772,33661,32772 33673,32772,33677,32772 33664,32773,33668,32773 33644,32773,33652,32773 33659,32773,33660,32773 33640,32773,33641,32773 33637,32772,33637,32774 33675,32773,33678,32774 33664,32774,33669,32774 33645,32774,33652,32774 33639,32774,33640,32774 33661,32774,33661,32775 33676,32775,33678,32775 33666,32775,33670,32775 33673,32775,33673,32775 33648,32775,33648,32775 33641,32775,33641,32775 33662,32776,33662,32776 33667,32776,33670,32776 33679,32776,33680,32776 33660,32776,33660,32777 33675,32777,33675,32777 33646,32777,33646,32777 33679,32777,33681,32777 33667,32777,33673,32777 33667,32778,33674,32778 33660,32778,33661,32778 33637,32778,33637,32778 33677,32778,33684,32778 33667,32779,33686,32779 33658,32779,33662,32779 33659,32780,33661,32780 33667,32780,33688,32780 33646,32781,33646,32781 33661,32781,33661,32781 33666,32781,33689,32782 33665,32783,33689,32785 33664,32786,33688,32787 33663,32788,33687,32788 33640,32788,33642,32788 33639,32789,33642,32789 33677,32789,33687,32789 33662,32789,33675,32789 33638,32790,33642,32790 33679,32790,33688,32790 33660,32790,33675,32791 33680,32791,33689,32791 33637,32791,33641,32791 33636,32792,33641,32792 33659,32792,33674,32792 33686,32792,33691,32792 33679,32792,33683,32792 33677,32792,33677,32792 33645,32792,33647,32792 33680,32793,33681,32793 33636,32793,33640,32793 33688,32793,33691,32793 33645,32793,33648,32793 33653,32793,33674,32793 33653,32794,33673,32794 33689,32794,33691,32794 33634,32794,33649,32794 33634,32795,33640,32795 33654,32795,33671,32795 33690,32795,33690,32795 33644,32795,33652,32795 33676,32795,33676,32795 33655,32796,33670,32796 33645,32796,33649,32796 33633,32796,33640,32796 33679,32797,33679,32797 33657,32797,33658,32797 33633,32797,33641,32797 33645,32797,33647,32797 33663,32797,33667,32797 33670,32797,33670,32797 33632,32798,33642,32798 33646,32798,33647,32798 33669,32798,33669,32799 33671,32799,33673,32799 33632,32799,33643,32800 33669,32800,33674,32800 33679,32800,33679,32800 33629,32801,33644,32801 33668,32801,33674,32801 33666,32802,33674,32802 33629,32802,33645,32803 33663,32803,33674,32803 33661,32804,33674,32804 33629,32804,33647,32804 33660,32805,33674,32805 33629,32805,33649,32805 33658,32806,33674,32806 33631,32806,33652,32806 33631,32807,33674,32807 33633,32808,33674,32808 33634,32809,33674,32809 33635,32810,33674,32810 33636,32811,33674,32811 33637,32812,33673,32812 33638,32813,33673,32813 33640,32814,33672,32814 33679,32814,33679,32814 33678,32815,33678,32815 33680,32815,33680,32815 33682,32815,33684,32815 33641,32815,33674,32815 33644,32816,33671,32816 33674,32816,33677,32816 33681,32816,33681,32816 33646,32817,33671,32817 33649,32818,33670,32818 33676,32817,33676,32819 33652,32819,33669,32819 33655,32820,33668,32820 33656,32821,33668,32821 33675,32820,33677,32822 33657,32822,33667,32822 33658,32823,33665,32823 33658,32824,33662,32824 33660,32825,33662,32825", + }, + [440] = { -- Emerald Gardens (6102 tiles, 329 rects) + name = "Emerald Gardens", + mainArea = 434, + bbox = { x1 = 33783, y1 = 32658, x2 = 33918, y2 = 32797 }, + rects = "33873,32658,33879,32658 33872,32659,33879,32659 33871,32660,33883,32660 33867,32661,33884,32661 33867,32662,33885,32662 33866,32663,33885,32663 33866,32664,33886,32664 33872,32665,33888,32665 33882,32666,33888,32666 33865,32665,33870,32667 33883,32667,33889,32667 33864,32668,33870,32668 33884,32668,33889,32668 33885,32669,33889,32669 33863,32669,33869,32669 33882,32670,33884,32670 33864,32670,33869,32670 33886,32670,33889,32671 33882,32671,33882,32671 33865,32671,33869,32672 33885,32672,33889,32672 33884,32673,33889,32673 33866,32673,33870,32673 33867,32674,33870,32674 33883,32674,33888,32675 33868,32675,33871,32675 33869,32676,33872,32676 33881,32676,33887,32676 33878,32677,33880,32677 33875,32677,33876,32677 33869,32677,33873,32677 33882,32677,33886,32678 33870,32678,33874,32678 33877,32678,33877,32678 33871,32679,33873,32679 33882,32679,33887,32679 33878,32679,33878,32680 33882,32680,33888,32680 33872,32680,33872,32680 33883,32681,33889,32681 33877,32681,33880,32681 33865,32682,33868,32682 33883,32682,33890,32682 33876,32682,33881,32683 33884,32683,33893,32683 33840,32683,33841,32683 33895,32683,33899,32683 33865,32683,33869,32683 33839,32684,33843,32684 33876,32684,33882,32684 33866,32684,33871,32684 33885,32684,33899,32684 33839,32685,33844,32685 33886,32685,33899,32685 33867,32685,33883,32685 33868,32686,33884,32686 33834,32686,33845,32686 33887,32686,33899,32686 33869,32687,33899,32687 33832,32687,33846,32687 33870,32688,33899,32688 33831,32688,33847,32688 33830,32689,33848,32689 33871,32689,33899,32689 33829,32690,33852,32690 33876,32690,33885,32690 33887,32690,33899,32690 33801,32690,33803,32690 33871,32690,33874,32690 33870,32691,33872,32691 33822,32691,33822,32691 33889,32691,33898,32691 33827,32691,33852,32691 33877,32691,33887,32691 33798,32691,33803,32692 33890,32692,33897,32692 33869,32692,33870,32692 33826,32692,33831,32692 33834,32692,33854,32692 33882,32692,33884,32692 33836,32693,33855,32693 33825,32693,33830,32693 33868,32693,33869,32693 33815,32693,33818,32693 33797,32693,33804,32693 33866,32694,33867,32694 33814,32694,33819,32694 33794,32694,33805,32694 33823,32694,33830,32694 33836,32694,33856,32694 33822,32695,33830,32695 33790,32695,33806,32695 33809,32695,33819,32695 33865,32695,33866,32695 33837,32695,33858,32695 33788,32696,33820,32696 33837,32696,33859,32696 33863,32696,33864,32696 33823,32696,33830,32696 33786,32697,33829,32697 33838,32697,33864,32697 33845,32698,33864,32698 33838,32698,33843,32698 33786,32698,33828,32698 33785,32699,33831,32699 33846,32699,33864,32699 33839,32699,33842,32699 33784,32700,33832,32700 33847,32700,33865,32700 33887,32701,33887,32701 33846,32701,33865,32701 33886,32702,33888,32702 33845,32702,33866,32702 33877,32703,33877,32703 33887,32703,33887,32703 33844,32703,33865,32703 33783,32701,33832,32704 33844,32704,33864,32704 33880,32704,33880,32704 33879,32705,33879,32705 33846,32705,33863,32705 33784,32705,33833,32705 33837,32706,33841,32706 33788,32706,33833,32706 33849,32706,33860,32706 33850,32707,33858,32707 33875,32707,33877,32707 33790,32707,33842,32707 33862,32706,33862,32708 33875,32708,33878,32708 33791,32708,33843,32708 33850,32708,33857,32708 33850,32709,33855,32709 33792,32709,33843,32709 33885,32709,33889,32709 33872,32709,33881,32709 33863,32709,33863,32710 33876,32710,33890,32710 33793,32710,33845,32710 33872,32710,33872,32710 33848,32710,33853,32710 33863,32711,33864,32711 33877,32711,33891,32711 33869,32711,33869,32711 33871,32711,33871,32711 33794,32711,33853,32712 33879,32712,33892,32712 33870,32712,33871,32712 33864,32712,33864,32712 33864,32713,33870,32713 33795,32713,33853,32713 33879,32713,33894,32713 33862,32714,33862,32714 33880,32714,33894,32714 33795,32714,33852,32714 33865,32714,33867,32714 33894,32715,33895,32715 33880,32715,33887,32715 33795,32715,33854,32715 33865,32715,33865,32716 33795,32716,33855,32716 33895,32716,33896,32716 33881,32716,33887,32716 33864,32717,33864,32717 33886,32717,33886,32717 33882,32717,33884,32717 33896,32717,33896,32717 33800,32717,33855,32717 33862,32718,33864,32718 33799,32718,33855,32718 33896,32718,33897,32718 33882,32718,33886,32719 33860,32719,33862,32719 33800,32719,33854,32719 33897,32719,33898,32719 33892,32719,33893,32719 33858,32720,33860,32720 33886,32720,33887,32720 33803,32720,33853,32720 33892,32720,33894,32720 33898,32720,33898,32721 33804,32721,33852,32721 33858,32721,33858,32721 33800,32720,33800,32722 33892,32721,33895,32722 33887,32721,33888,32722 33804,32722,33848,32722 33898,32722,33899,32722 33855,32722,33858,32722 33893,32723,33896,32723 33855,32723,33857,32723 33888,32723,33888,32723 33899,32723,33900,32723 33863,32724,33864,32724 33800,32723,33806,32725 33809,32723,33848,32725 33894,32724,33896,32725 33854,32724,33857,32725 33888,32724,33889,32725 33899,32724,33901,32725 33862,32725,33866,32725 33799,32726,33857,32726 33894,32726,33895,32726 33861,32726,33866,32726 33888,32726,33890,32727 33899,32726,33900,32727 33894,32727,33894,32727 33808,32727,33866,32727 33798,32727,33803,32727 33809,32728,33866,32728 33797,32728,33802,32728 33793,32728,33794,32728 33888,32728,33891,32728 33815,32729,33866,32729 33887,32729,33891,32729 33793,32729,33801,32729 33810,32729,33812,32729 33794,32730,33801,32730 33887,32730,33892,32730 33816,32730,33866,32730 33885,32731,33894,32731 33819,32731,33866,32731 33794,32731,33800,32731 33795,32732,33800,32732 33820,32732,33867,32732 33885,32732,33893,32733 33797,32733,33800,32733 33821,32733,33868,32734 33886,32734,33892,32734 33799,32734,33800,32734 33822,32735,33868,32735 33887,32735,33891,32735 33889,32736,33890,32736 33822,32736,33872,32736 33889,32737,33889,32737 33823,32737,33872,32738 33885,32738,33889,32738 33881,32738,33883,32738 33878,32739,33885,32739 33824,32739,33873,32739 33827,32740,33873,32740 33877,32740,33879,32740 33881,32740,33883,32740 33886,32740,33886,32741 33884,32741,33884,32741 33828,32741,33876,32741 33884,32742,33885,32742 33830,32742,33874,32742 33830,32743,33876,32743 33831,32744,33877,32744 33834,32745,33878,32745 33835,32746,33879,32746 33836,32747,33881,32747 33837,32748,33881,32748 33839,32749,33882,32749 33841,32750,33882,32750 33842,32751,33883,32751 33843,32752,33883,32752 33844,32753,33885,32753 33845,32754,33887,32754 33846,32755,33888,32755 33847,32756,33888,32756 33848,32757,33889,32757 33849,32758,33889,32758 33899,32758,33899,32758 33849,32759,33890,32759 33905,32759,33908,32759 33903,32760,33909,32760 33850,32760,33890,32761 33903,32761,33911,32761 33903,32762,33913,32762 33851,32762,33890,32762 33853,32763,33892,32763 33901,32763,33914,32763 33900,32764,33914,32764 33854,32764,33893,32764 33855,32765,33914,32765 33916,32765,33917,32765 33916,32766,33918,32766 33854,32766,33914,32767 33916,32767,33917,32767 33860,32768,33914,32768 33897,32769,33914,32769 33861,32769,33892,32769 33897,32770,33912,32770 33864,32770,33891,32770 33897,32771,33913,32771 33864,32771,33864,32771 33866,32771,33890,32772 33868,32773,33890,32773 33897,32772,33912,32774 33869,32774,33889,32774 33870,32775,33889,32775 33870,32776,33888,32776 33896,32775,33912,32777 33871,32777,33892,32777 33896,32778,33911,32778 33891,32778,33891,32778 33871,32778,33888,32778 33895,32779,33911,32780 33895,32781,33910,32781 33872,32779,33887,32782 33895,32782,33909,32782 33916,32782,33917,32782 33916,32783,33916,32783 33894,32783,33908,32783 33872,32783,33886,32784 33894,32784,33907,32784 33893,32785,33906,32785 33872,32785,33884,32785 33871,32786,33883,32786 33893,32786,33904,32786 33892,32787,33903,32788 33870,32787,33883,32788 33890,32789,33902,32789 33871,32789,33882,32790 33889,32790,33901,32790 33872,32791,33882,32791 33888,32791,33900,32791 33872,32792,33881,32792 33888,32792,33899,32792 33873,32793,33897,32793 33873,32794,33879,32794 33887,32794,33894,32794 33888,32795,33895,32795 33873,32795,33877,32795 33873,32796,33874,32796 33888,32796,33894,32796 33889,32797,33893,32797", + }, + [441] = { -- Sparkling Lagoon (2319 tiles, 196 rects) + name = "Sparkling Lagoon", + mainArea = 434, + bbox = { x1 = 33821, y1 = 32796, x2 = 33908, y2 = 32870 }, + rects = "33875,32796,33876,32796 33872,32797,33876,32799 33872,32800,33877,32800 33871,32801,33878,32801 33870,32802,33879,32802 33881,32802,33882,32802 33870,32803,33884,32803 33852,32804,33856,32804 33869,32804,33884,32804 33867,32805,33885,32805 33852,32805,33857,32805 33850,32806,33859,32806 33865,32806,33885,32806 33864,32807,33884,32807 33849,32807,33859,32807 33848,32808,33884,32808 33848,32809,33883,32809 33846,32810,33883,32810 33834,32811,33835,32811 33845,32811,33883,32811 33836,32812,33836,32812 33844,32812,33884,32813 33836,32813,33839,32813 33840,32814,33884,32814 33844,32815,33884,32815 33843,32816,33883,32816 33836,32816,33836,32816 33880,32817,33883,32817 33843,32817,33878,32818 33889,32818,33890,32818 33880,32819,33881,32819 33844,32819,33878,32819 33890,32819,33891,32819 33891,32820,33891,32820 33880,32820,33882,32820 33837,32820,33837,32820 33845,32820,33878,32820 33902,32821,33903,32821 33844,32821,33884,32821 33843,32822,33885,32822 33900,32822,33905,32822 33898,32823,33906,32823 33844,32823,33883,32823 33898,32824,33907,32824 33845,32824,33883,32824 33864,32825,33883,32825 33845,32825,33860,32825 33897,32825,33907,32826 33845,32826,33858,32826 33865,32826,33882,32826 33839,32826,33839,32827 33886,32827,33886,32827 33845,32827,33856,32827 33897,32827,33908,32827 33866,32827,33881,32827 33866,32828,33879,32828 33839,32828,33841,32828 33896,32828,33896,32828 33845,32828,33855,32828 33898,32828,33898,32829 33838,32829,33854,32829 33894,32829,33895,32829 33866,32829,33878,32829 33903,32828,33908,32830 33866,32830,33876,32830 33839,32830,33856,32830 33898,32830,33899,32830 33894,32830,33894,32831 33899,32831,33908,32831 33838,32831,33853,32831 33857,32831,33862,32831 33866,32831,33877,32831 33886,32832,33886,32832 33836,32832,33853,32832 33902,32832,33908,32832 33875,32832,33877,32832 33858,32832,33873,32832 33893,32832,33894,32833 33902,32833,33906,32833 33876,32833,33877,32833 33834,32833,33834,32833 33839,32833,33853,32833 33836,32833,33837,32833 33858,32833,33871,32833 33841,32834,33854,32834 33858,32834,33872,32834 33893,32834,33896,32834 33831,32834,33831,32834 33833,32834,33833,32834 33877,32834,33878,32834 33903,32834,33906,32834 33838,32834,33839,32834 33830,32835,33831,32835 33904,32835,33905,32835 33871,32835,33873,32835 33878,32835,33879,32835 33836,32835,33838,32835 33841,32835,33869,32835 33892,32835,33899,32835 33872,32836,33874,32836 33842,32836,33869,32836 33879,32836,33879,32836 33898,32836,33902,32836 33835,32836,33837,32836 33832,32836,33833,32836 33892,32836,33893,32836 33872,32837,33875,32837 33831,32837,33832,32837 33898,32837,33903,32837 33840,32837,33869,32837 33880,32837,33880,32837 33891,32837,33892,32838 33839,32838,33876,32838 33880,32838,33881,32838 33898,32838,33902,32838 33880,32839,33882,32839 33892,32839,33892,32839 33896,32839,33901,32839 33841,32839,33876,32839 33841,32840,33845,32840 33889,32840,33899,32840 33847,32840,33881,32840 33888,32841,33889,32841 33862,32841,33867,32841 33843,32841,33844,32841 33870,32841,33881,32841 33893,32841,33898,32841 33850,32841,33858,32841 33894,32842,33896,32842 33862,32842,33864,32842 33889,32842,33889,32842 33871,32842,33881,32842 33851,32842,33858,32842 33857,32843,33861,32843 33890,32843,33890,32843 33885,32843,33886,32843 33872,32843,33881,32843 33887,32844,33889,32844 33895,32844,33895,32844 33859,32844,33860,32844 33889,32845,33889,32845 33841,32846,33842,32846 33873,32844,33884,32847 33840,32847,33840,32847 33843,32847,33843,32847 33873,32848,33885,32849 33841,32849,33842,32849 33840,32850,33843,32850 33872,32850,33885,32850 33839,32851,33844,32851 33834,32851,33837,32851 33872,32851,33884,32851 33839,32852,33846,32852 33833,32852,33835,32852 33870,32852,33884,32853 33832,32853,33834,32853 33838,32853,33847,32853 33870,32854,33883,32854 33838,32854,33848,32854 33831,32854,33833,32855 33838,32855,33849,32855 33869,32855,33883,32855 33851,32856,33851,32856 33837,32856,33849,32856 33832,32856,33832,32856 33868,32856,33882,32857 33836,32857,33850,32857 33835,32858,33851,32858 33867,32858,33882,32858 33834,32859,33852,32859 33866,32859,33882,32859 33826,32859,33826,32859 33827,32860,33828,32860 33865,32860,33881,32860 33833,32860,33853,32860 33864,32861,33880,32861 33829,32861,33829,32861 33832,32861,33853,32861 33821,32861,33821,32861 33829,32862,33853,32862 33864,32862,33879,32862 33831,32863,33860,32863 33863,32863,33878,32863 33843,32864,33853,32864 33831,32864,33839,32864 33860,32864,33876,32864 33861,32865,33874,32865 33833,32865,33838,32865 33844,32865,33853,32865 33846,32866,33853,32866 33864,32866,33873,32866 33865,32867,33873,32867 33847,32867,33852,32867 33865,32868,33872,32868 33866,32869,33870,32869 33867,32870,33869,32870", + }, + [442] = { -- Stardance Mountains (11063 tiles, 330 rects) + name = "Stardance Mountains", + mainArea = 434, + bbox = { x1 = 33671, y1 = 32707, x2 = 33852, y2 = 32837 }, + rects = "33768,32707,33768,32707 33769,32708,33769,32710 33774,32711,33774,32711 33772,32712,33776,32712 33768,32711,33768,32713 33770,32713,33777,32713 33768,32714,33779,32714 33766,32715,33780,32715 33765,32716,33781,32716 33764,32717,33782,32717 33763,32718,33783,32718 33681,32719,33681,32719 33762,32719,33783,32719 33761,32720,33784,32720 33680,32720,33682,32720 33760,32721,33784,32721 33679,32721,33682,32721 33680,32722,33682,32722 33759,32722,33785,32722 33758,32723,33785,32723 33680,32723,33684,32724 33757,32724,33786,32724 33757,32725,33787,32725 33679,32725,33685,32726 33755,32726,33787,32726 33678,32727,33686,32727 33754,32727,33790,32727 33753,32728,33790,32728 33677,32728,33686,32728 33678,32729,33687,32729 33753,32729,33791,32729 33677,32730,33687,32730 33752,32730,33793,32731 33676,32731,33688,32731 33751,32732,33794,32732 33676,32732,33689,32732 33750,32733,33796,32733 33675,32733,33689,32733 33750,32734,33798,32734 33675,32734,33690,32734 33704,32734,33704,32734 33748,32735,33800,32735 33674,32735,33691,32735 33723,32736,33723,32736 33707,32736,33707,32736 33674,32736,33692,32736 33748,32736,33802,32736 33750,32737,33803,32737 33674,32737,33693,32737 33674,32738,33694,32738 33751,32738,33803,32738 33708,32738,33708,32738 33753,32739,33804,32739 33674,32739,33698,32739 33674,32740,33700,32740 33757,32740,33805,32740 33759,32741,33806,32741 33673,32741,33701,32741 33673,32742,33702,32742 33760,32742,33806,32742 33760,32743,33807,32743 33672,32743,33703,32743 33672,32744,33705,32744 33761,32744,33809,32744 33762,32745,33810,32745 33715,32745,33723,32745 33672,32745,33708,32745 33714,32746,33726,32746 33763,32746,33811,32746 33671,32746,33710,32746 33671,32747,33729,32747 33764,32747,33811,32747 33765,32748,33812,32748 33671,32748,33731,32748 33766,32749,33813,32749 33671,32749,33732,32749 33767,32750,33814,32750 33671,32750,33733,32750 33768,32751,33815,32751 33671,32751,33735,32751 33769,32752,33815,32752 33671,32752,33736,32752 33769,32753,33816,32753 33672,32753,33743,32753 33770,32754,33817,32754 33671,32754,33744,32754 33671,32755,33745,32755 33770,32755,33818,32755 33672,32756,33747,32756 33770,32756,33819,32756 33672,32757,33748,32757 33770,32757,33820,32757 33673,32758,33750,32758 33771,32758,33823,32758 33675,32759,33751,32759 33771,32759,33824,32759 33772,32760,33825,32760 33675,32760,33752,32760 33677,32761,33753,32761 33773,32761,33825,32761 33678,32762,33754,32762 33771,32762,33827,32762 33679,32763,33755,32763 33774,32763,33829,32763 33770,32763,33770,32763 33769,32764,33769,32764 33775,32764,33830,32764 33679,32764,33756,32764 33776,32765,33831,32765 33680,32765,33757,32765 33768,32765,33769,32765 33766,32766,33768,32766 33777,32766,33832,32766 33681,32766,33757,32766 33778,32767,33833,32767 33765,32767,33766,32767 33682,32767,33758,32767 33763,32768,33764,32768 33682,32768,33759,32768 33780,32768,33833,32768 33684,32769,33763,32769 33781,32769,33834,32769 33771,32769,33773,32769 33782,32770,33834,32770 33769,32770,33777,32770 33685,32770,33760,32770 33686,32771,33761,32771 33768,32771,33778,32771 33784,32771,33835,32771 33768,32772,33779,32772 33687,32772,33761,32772 33785,32772,33835,32772 33689,32773,33762,32773 33787,32773,33835,32773 33768,32773,33780,32773 33769,32774,33780,32774 33691,32774,33762,32774 33789,32774,33835,32774 33792,32775,33835,32775 33770,32775,33780,32775 33692,32775,33762,32776 33793,32776,33835,32776 33771,32776,33777,32776 33774,32777,33775,32777 33759,32777,33761,32777 33794,32777,33835,32777 33691,32777,33755,32777 33783,32777,33783,32777 33771,32777,33772,32777 33781,32777,33781,32778 33692,32778,33755,32778 33778,32778,33778,32778 33759,32778,33760,32778 33784,32778,33785,32778 33794,32778,33834,32779 33760,32779,33761,32779 33693,32779,33755,32779 33780,32779,33782,32779 33784,32779,33786,32780 33763,32779,33778,32780 33694,32780,33755,32780 33781,32780,33781,32780 33843,32780,33844,32780 33794,32780,33833,32780 33793,32781,33833,32781 33695,32781,33755,32781 33763,32781,33779,32781 33783,32781,33786,32781 33842,32781,33846,32781 33792,32782,33832,32782 33758,32782,33785,32782 33695,32782,33756,32782 33841,32782,33847,32782 33840,32783,33849,32783 33791,32783,33832,32783 33695,32783,33784,32783 33791,32784,33830,32784 33847,32784,33849,32784 33695,32784,33783,32784 33840,32784,33845,32784 33790,32785,33825,32785 33694,32785,33782,32785 33849,32785,33850,32785 33838,32785,33842,32786 33693,32786,33781,32786 33789,32786,33824,32786 33844,32785,33844,32787 33849,32786,33851,32787 33837,32787,33842,32787 33788,32787,33823,32787 33776,32787,33780,32787 33692,32787,33760,32787 33762,32787,33766,32788 33777,32788,33779,32788 33849,32788,33852,32788 33787,32788,33822,32788 33843,32788,33844,32788 33837,32788,33840,32788 33691,32788,33760,32789 33844,32789,33844,32789 33847,32789,33852,32789 33836,32789,33839,32790 33787,32789,33821,32790 33692,32790,33761,32790 33844,32790,33852,32791 33836,32791,33840,32791 33692,32791,33762,32791 33786,32791,33821,32792 33837,32792,33852,32792 33692,32792,33768,32792 33786,32793,33822,32793 33838,32793,33851,32793 33692,32793,33773,32793 33786,32794,33823,32794 33692,32794,33775,32794 33838,32794,33850,32794 33838,32795,33849,32795 33787,32795,33823,32795 33691,32795,33776,32795 33839,32796,33849,32796 33690,32796,33777,32796 33787,32796,33824,32796 33788,32797,33808,32797 33689,32797,33778,32797 33840,32797,33848,32797 33840,32798,33840,32798 33842,32798,33844,32798 33846,32798,33847,32798 33817,32797,33825,32799 33688,32798,33779,32799 33789,32798,33808,32799 33797,32800,33808,32800 33688,32800,33745,32800 33817,32800,33826,32800 33791,32800,33791,32800 33747,32800,33779,32800 33747,32801,33747,32801 33749,32801,33780,32801 33817,32801,33830,32801 33798,32801,33808,32802 33688,32801,33743,32802 33817,32802,33831,32802 33746,32802,33747,32802 33750,32802,33780,32802 33799,32803,33832,32803 33689,32803,33742,32804 33751,32803,33779,32804 33799,32804,33833,32804 33746,32803,33746,32805 33689,32805,33740,32805 33752,32805,33779,32805 33799,32805,33834,32806 33688,32806,33739,32806 33745,32806,33747,32806 33752,32806,33778,32806 33744,32807,33748,32807 33793,32807,33834,32807 33687,32807,33739,32807 33753,32807,33778,32808 33792,32808,33834,32808 33687,32808,33738,32808 33742,32808,33749,32808 33687,32809,33741,32809 33754,32809,33777,32809 33744,32809,33749,32809 33743,32810,33750,32810 33755,32810,33776,32810 33791,32809,33833,32811 33686,32810,33738,32811 33755,32811,33775,32811 33742,32811,33750,32812 33755,32812,33774,32812 33791,32812,33821,32812 33685,32812,33738,32812 33825,32812,33833,32812 33828,32813,33830,32813 33742,32813,33749,32813 33755,32813,33773,32813 33685,32813,33737,32813 33792,32813,33820,32813 33725,32814,33736,32814 33792,32814,33819,32814 33685,32814,33722,32814 33755,32814,33772,32814 33742,32814,33750,32815 33793,32815,33817,32815 33756,32815,33771,32815 33727,32815,33735,32815 33685,32815,33721,32815 33794,32816,33817,32816 33686,32816,33721,32816 33759,32816,33770,32816 33743,32816,33749,32816 33728,32816,33734,32816 33795,32817,33816,32817 33744,32817,33748,32817 33762,32817,33768,32817 33728,32817,33732,32817 33687,32817,33721,32817 33796,32818,33816,32818 33729,32818,33731,32818 33688,32818,33721,32819 33796,32819,33815,32819 33797,32820,33815,32820 33689,32820,33721,32821 33799,32821,33815,32821 33800,32822,33817,32822 33690,32822,33720,32822 33690,32823,33707,32823 33712,32823,33718,32823 33802,32823,33818,32823 33691,32824,33706,32824 33713,32824,33717,32824 33804,32824,33818,32824 33805,32825,33818,32825 33692,32825,33705,32825 33807,32826,33818,32826 33693,32826,33704,32827 33809,32827,33817,32827 33694,32828,33704,32828 33810,32828,33815,32828 33815,32829,33815,32829 33695,32829,33704,32829 33695,32830,33705,32830 33696,32831,33705,32831 33697,32832,33705,32832 33698,32833,33704,32834 33699,32835,33704,32835 33700,32836,33703,32836 33702,32837,33703,32837", + }, + [443] = { -- Moonfall (48 tiles, 1 rects) + name = "Moonfall", + mainArea = 434, + bbox = { x1 = 33809, y1 = 32797, x2 = 33816, y2 = 32802 }, + rects = "33809,32797,33816,32802", + }, + [444] = { -- Silvertides (5008 tiles, 259 rects) + name = "Silvertides", + mainArea = 434, + bbox = { x1 = 33679, y1 = 32821, x2 = 33832, y2 = 32887 }, + rects = "33781,32821,33782,32821 33727,32822,33733,32822 33724,32822,33724,32822 33780,32822,33783,32822 33759,32823,33759,32823 33732,32823,33733,32823 33779,32823,33785,32823 33726,32823,33729,32823 33778,32824,33786,32824 33725,32824,33725,32824 33758,32824,33760,32824 33728,32824,33729,32824 33733,32824,33733,32825 33777,32825,33787,32825 33757,32825,33761,32825 33724,32825,33725,32826 33758,32826,33760,32826 33727,32826,33729,32826 33776,32826,33788,32826 33759,32827,33759,32827 33774,32827,33789,32827 33733,32827,33733,32827 33724,32827,33730,32827 33825,32828,33827,32828 33724,32828,33725,32828 33710,32828,33712,32828 33732,32828,33733,32828 33773,32828,33790,32828 33728,32828,33728,32829 33824,32829,33828,32829 33733,32829,33733,32829 33709,32829,33713,32829 33771,32829,33792,32829 33706,32830,33713,32830 33727,32830,33728,32830 33823,32830,33829,32830 33768,32830,33793,32830 33816,32830,33816,32831 33709,32831,33713,32831 33821,32831,33829,32831 33724,32831,33729,32831 33735,32831,33735,32831 33732,32831,33732,32831 33767,32831,33794,32832 33727,32832,33729,32832 33724,32832,33725,32832 33710,32832,33712,32832 33811,32832,33829,32832 33732,32832,33733,32833 33800,32833,33802,32833 33727,32833,33728,32833 33724,32833,33724,32833 33807,32833,33830,32833 33763,32833,33794,32833 33736,32833,33738,32834 33711,32833,33711,32834 33749,32834,33750,32834 33713,32834,33715,32834 33800,32834,33830,32834 33733,32834,33733,32834 33763,32834,33795,32834 33728,32834,33729,32834 33711,32835,33716,32835 33737,32835,33738,32835 33725,32835,33725,32835 33746,32835,33749,32835 33734,32835,33734,32835 33760,32835,33829,32835 33730,32835,33730,32835 33755,32836,33755,32836 33729,32836,33731,32836 33744,32836,33747,32836 33726,32836,33726,32836 33753,32836,33753,32836 33760,32836,33830,32836 33735,32836,33735,32836 33737,32836,33737,32837 33753,32837,33754,32837 33743,32837,33747,32837 33761,32837,33826,32837 33830,32837,33830,32837 33728,32837,33732,32837 33757,32837,33758,32837 33711,32836,33717,32838 33728,32838,33740,32838 33742,32838,33749,32838 33760,32838,33827,32838 33829,32838,33832,32838 33697,32838,33697,32838 33753,32838,33755,32838 33711,32839,33716,32839 33728,32839,33734,32839 33831,32839,33831,32839 33741,32839,33756,32839 33759,32839,33827,32839 33738,32839,33738,32839 33696,32839,33697,32839 33830,32840,33831,32840 33706,32840,33706,32840 33713,32840,33715,32840 33739,32840,33828,32840 33696,32840,33698,32840 33695,32841,33697,32841 33705,32841,33707,32841 33738,32841,33831,32841 33729,32840,33733,32842 33711,32840,33711,32842 33680,32841,33681,32842 33706,32842,33706,32842 33696,32842,33697,32842 33735,32842,33828,32842 33721,32842,33721,32842 33696,32843,33696,32843 33702,32843,33702,32843 33729,32843,33827,32843 33708,32843,33708,32843 33712,32843,33712,32844 33679,32843,33681,32845 33701,32844,33703,32845 33730,32844,33827,32845 33685,32845,33686,32845 33708,32845,33711,32845 33714,32845,33716,32845 33691,32845,33693,32845 33691,32846,33696,32846 33684,32846,33687,32846 33681,32846,33682,32846 33699,32846,33704,32846 33707,32846,33716,32846 33727,32846,33823,32846 33714,32847,33716,32847 33725,32847,33823,32847 33680,32847,33704,32847 33707,32847,33711,32848 33723,32848,33823,32849 33681,32848,33704,32849 33708,32849,33710,32849 33720,32849,33721,32849 33681,32850,33705,32850 33709,32850,33709,32850 33718,32850,33823,32850 33710,32851,33713,32851 33681,32851,33706,32851 33715,32851,33822,32851 33681,32852,33822,32852 33681,32853,33821,32854 33682,32855,33817,32855 33821,32855,33822,32855 33682,32856,33816,32856 33822,32856,33823,32856 33824,32857,33824,32857 33683,32857,33816,32857 33684,32858,33772,32858 33776,32858,33815,32858 33825,32858,33825,32858 33684,32859,33770,32859 33777,32859,33814,32859 33776,32860,33776,32860 33685,32860,33768,32860 33778,32860,33812,32860 33775,32861,33776,32861 33780,32861,33812,32861 33686,32861,33764,32861 33766,32861,33766,32862 33775,32862,33777,32862 33783,32862,33812,32862 33687,32862,33764,32862 33774,32863,33776,32863 33784,32863,33811,32863 33689,32863,33764,32863 33691,32864,33763,32864 33773,32864,33774,32864 33784,32864,33808,32864 33786,32865,33808,32865 33693,32865,33763,32865 33784,32866,33786,32866 33809,32866,33810,32866 33697,32866,33763,32866 33775,32866,33775,32866 33790,32866,33807,32866 33756,32867,33758,32867 33715,32867,33751,32867 33800,32867,33805,32867 33794,32867,33798,32867 33760,32867,33763,32867 33753,32867,33753,32867 33771,32867,33774,32867 33698,32867,33710,32867 33783,32867,33784,32868 33808,32867,33810,32868 33790,32867,33790,32868 33760,32868,33764,32868 33797,32868,33798,32868 33770,32868,33776,32868 33716,32868,33749,32868 33801,32868,33805,32868 33699,32868,33710,32868 33808,32869,33809,32869 33781,32869,33782,32869 33762,32869,33768,32869 33746,32869,33746,32869 33800,32869,33803,32869 33797,32869,33797,32869 33770,32869,33777,32869 33717,32869,33744,32870 33702,32869,33709,32870 33698,32870,33698,32870 33763,32870,33778,32870 33780,32870,33781,32870 33702,32871,33708,32871 33798,32871,33798,32871 33700,32871,33700,32871 33718,32871,33740,32871 33801,32871,33801,32871 33803,32871,33803,32871 33742,32871,33744,32871 33763,32871,33780,32871 33719,32872,33743,32872 33703,32872,33704,32872 33763,32872,33781,32872 33802,32872,33803,32872 33706,32872,33707,32872 33699,32872,33700,32872 33720,32873,33738,32873 33740,32873,33740,32873 33804,32873,33804,32873 33782,32873,33782,32873 33797,32873,33797,32873 33763,32873,33780,32873 33763,32874,33783,32874 33733,32874,33739,32874 33704,32874,33704,32874 33721,32874,33731,32874 33733,32875,33737,32875 33729,32875,33730,32875 33763,32875,33784,32875 33721,32875,33727,32875 33722,32876,33727,32876 33733,32876,33733,32876 33762,32876,33786,32876 33761,32877,33787,32877 33723,32877,33726,32877 33732,32877,33733,32877 33730,32876,33730,32878 33761,32878,33788,32878 33760,32879,33788,32879 33726,32879,33726,32880 33759,32880,33789,32880 33759,32881,33788,32881 33730,32881,33730,32881 33732,32881,33732,32881 33759,32882,33789,32882 33761,32883,33789,32883 33762,32884,33789,32884 33779,32885,33788,32885 33763,32885,33773,32885 33765,32886,33772,32886 33781,32886,33787,32886 33767,32887,33771,32887", + }, + [445] = { -- Ingol (13418 tiles, 365 rects) + name = "Ingol", + mainArea = 22, + bbox = { x1 = 33651, y1 = 32494, x2 = 33869, y2 = 32636 }, + rects = "33789,32494,33790,32494 33789,32495,33791,32495 33789,32496,33792,32496 33788,32497,33792,32497 33788,32498,33793,32498 33787,32499,33794,32499 33786,32500,33795,32500 33786,32501,33796,32501 33785,32502,33797,32502 33776,32502,33778,32503 33784,32503,33798,32503 33775,32504,33778,32504 33784,32504,33799,32504 33774,32505,33778,32505 33783,32505,33800,32506 33773,32506,33777,32506 33783,32507,33801,32507 33771,32507,33777,32507 33770,32508,33776,32508 33783,32508,33802,32509 33769,32509,33775,32509 33768,32510,33774,32510 33782,32510,33803,32511 33768,32511,33771,32511 33781,32512,33804,32512 33768,32512,33769,32512 33780,32513,33804,32513 33778,32514,33805,32514 33775,32515,33806,32515 33774,32516,33807,32516 33770,32517,33808,32517 33769,32518,33809,32518 33812,32518,33813,32518 33769,32519,33813,32519 33769,32520,33812,32520 33770,32521,33812,32521 33771,32522,33811,32525 33818,32523,33819,32525 33757,32526,33759,32526 33770,32526,33812,32526 33817,32526,33819,32526 33756,32527,33762,32527 33768,32527,33818,32527 33833,32528,33834,32528 33755,32528,33818,32528 33755,32529,33817,32529 33846,32529,33847,32529 33734,32529,33737,32529 33831,32529,33834,32529 33754,32530,33816,32530 33843,32530,33847,32530 33831,32530,33833,32530 33734,32530,33738,32530 33830,32531,33833,32531 33841,32531,33846,32531 33733,32531,33738,32531 33753,32531,33815,32531 33752,32532,33816,32532 33830,32532,33834,32532 33839,32532,33845,32532 33732,32532,33737,32533 33751,32533,33816,32533 33830,32533,33845,32534 33731,32534,33736,32534 33750,32534,33816,32534 33731,32535,33735,32535 33829,32535,33844,32535 33732,32536,33734,32536 33828,32536,33844,32536 33750,32535,33817,32537 33827,32537,33844,32537 33827,32538,33845,32538 33750,32538,33818,32539 33827,32539,33846,32539 33733,32539,33734,32539 33731,32540,33735,32540 33826,32540,33847,32540 33751,32540,33819,32540 33751,32541,33820,32541 33824,32541,33848,32541 33729,32541,33737,32541 33728,32542,33739,32542 33751,32542,33849,32542 33727,32543,33743,32543 33752,32543,33851,32543 33752,32544,33853,32544 33726,32544,33743,32544 33752,32545,33854,32545 33725,32545,33744,32546 33752,32546,33857,32546 33717,32547,33718,32547 33724,32547,33744,32547 33752,32547,33859,32547 33751,32548,33861,32548 33722,32548,33743,32548 33716,32548,33719,32548 33750,32549,33863,32549 33716,32549,33742,32549 33715,32550,33742,32550 33749,32550,33864,32550 33715,32551,33741,32551 33749,32551,33865,32551 33748,32552,33866,32552 33714,32552,33740,32552 33713,32553,33740,32553 33747,32553,33867,32553 33746,32554,33867,32554 33713,32554,33739,32555 33745,32555,33868,32555 33744,32556,33869,32556 33712,32556,33739,32557 33744,32557,33849,32557 33856,32557,33869,32557 33744,32558,33848,32558 33856,32558,33865,32558 33712,32558,33738,32558 33744,32559,33843,32559 33852,32559,33865,32559 33711,32559,33738,32559 33704,32559,33705,32559 33847,32559,33848,32559 33711,32560,33739,32560 33851,32560,33865,32560 33744,32560,33842,32560 33703,32560,33706,32561 33744,32561,33841,32561 33693,32561,33695,32561 33850,32561,33865,32561 33711,32561,33740,32561 33702,32562,33705,32562 33710,32562,33741,32562 33691,32562,33696,32562 33849,32562,33866,32562 33745,32562,33840,32562 33849,32563,33867,32563 33702,32563,33704,32563 33745,32563,33839,32563 33691,32563,33698,32563 33710,32563,33742,32563 33703,32564,33704,32564 33850,32564,33867,32564 33709,32564,33839,32564 33692,32564,33699,32565 33709,32565,33743,32565 33747,32565,33839,32565 33852,32565,33864,32565 33708,32566,33744,32566 33748,32566,33839,32566 33853,32566,33863,32566 33693,32566,33699,32566 33694,32567,33699,32567 33855,32567,33862,32567 33706,32567,33745,32567 33748,32567,33840,32567 33749,32568,33844,32568 33705,32568,33746,32568 33856,32568,33861,32568 33694,32568,33698,32568 33826,32569,33844,32569 33705,32569,33747,32569 33693,32569,33698,32569 33858,32569,33860,32569 33750,32569,33823,32569 33692,32570,33697,32570 33705,32570,33748,32570 33829,32570,33843,32570 33751,32570,33823,32571 33691,32571,33696,32571 33830,32571,33841,32571 33704,32571,33749,32572 33831,32572,33840,32572 33752,32572,33823,32572 33690,32572,33694,32572 33689,32573,33693,32573 33703,32573,33750,32573 33831,32573,33838,32573 33753,32573,33823,32574 33689,32574,33692,32574 33702,32574,33751,32574 33832,32574,33837,32574 33754,32575,33823,32575 33701,32575,33752,32575 33835,32575,33836,32575 33682,32575,33683,32575 33754,32576,33824,32576 33680,32576,33684,32576 33699,32576,33752,32576 33698,32577,33752,32577 33755,32577,33824,32577 33678,32577,33685,32578 33828,32578,33829,32578 33696,32578,33753,32578 33679,32579,33684,32579 33694,32579,33753,32579 33828,32579,33831,32579 33692,32580,33753,32580 33681,32580,33682,32580 33829,32580,33833,32580 33756,32578,33824,32581 33689,32581,33753,32581 33829,32581,33836,32581 33755,32582,33823,32582 33686,32582,33753,32582 33829,32582,33837,32582 33828,32583,33838,32583 33685,32583,33752,32583 33754,32583,33821,32583 33685,32584,33751,32584 33828,32584,33832,32584 33754,32584,33820,32584 33835,32584,33838,32584 33753,32585,33819,32585 33828,32585,33830,32585 33684,32585,33751,32585 33828,32586,33829,32586 33664,32586,33666,32586 33684,32586,33750,32586 33752,32586,33818,32586 33662,32587,33670,32587 33683,32587,33749,32587 33751,32587,33817,32588 33681,32588,33748,32588 33661,32588,33675,32588 33660,32589,33747,32589 33833,32589,33834,32589 33750,32589,33817,32589 33833,32590,33835,32590 33659,32590,33746,32590 33748,32590,33817,32590 33658,32591,33745,32591 33831,32591,33835,32591 33747,32591,33818,32591 33658,32592,33818,32592 33829,32592,33834,32592 33666,32593,33819,32593 33828,32593,33834,32593 33657,32593,33661,32593 33826,32594,33833,32594 33657,32594,33659,32594 33667,32594,33819,32594 33668,32595,33819,32595 33825,32595,33832,32595 33669,32596,33819,32596 33825,32596,33831,32596 33824,32597,33830,32597 33655,32597,33656,32597 33671,32597,33816,32597 33824,32598,33829,32598 33673,32598,33813,32598 33663,32598,33665,32598 33654,32598,33657,32598 33652,32599,33657,32599 33662,32599,33666,32599 33826,32599,33828,32599 33674,32599,33812,32599 33676,32600,33810,32600 33662,32600,33667,32601 33652,32600,33656,32601 33677,32601,33809,32601 33663,32602,33668,32602 33651,32602,33655,32602 33680,32602,33702,32602 33707,32602,33808,32602 33665,32603,33668,32603 33651,32603,33654,32603 33705,32603,33705,32603 33708,32603,33808,32603 33684,32603,33701,32603 33686,32604,33700,32604 33704,32604,33706,32604 33666,32604,33667,32604 33651,32604,33653,32604 33709,32604,33807,32605 33670,32605,33671,32605 33686,32605,33699,32606 33711,32606,33807,32606 33670,32606,33674,32606 33670,32607,33675,32607 33714,32607,33807,32607 33686,32607,33698,32607 33715,32608,33807,32608 33665,32608,33667,32608 33687,32608,33698,32608 33671,32608,33675,32609 33665,32609,33668,32609 33687,32609,33697,32609 33716,32609,33807,32610 33673,32610,33675,32610 33666,32610,33668,32610 33680,32610,33682,32610 33688,32610,33697,32610 33716,32611,33808,32611 33679,32611,33683,32611 33677,32612,33683,32612 33716,32612,33809,32612 33688,32611,33695,32613 33818,32613,33819,32613 33717,32613,33810,32613 33677,32613,33682,32613 33677,32614,33681,32614 33817,32614,33819,32614 33717,32614,33812,32614 33687,32614,33694,32614 33703,32605,33707,32615 33686,32615,33693,32615 33718,32615,33725,32615 33728,32615,33819,32615 33677,32615,33679,32615 33729,32616,33777,32616 33781,32616,33819,32616 33686,32616,33692,32616 33718,32616,33724,32617 33730,32617,33776,32617 33686,32617,33690,32617 33782,32617,33819,32617 33731,32618,33776,32618 33782,32618,33818,32618 33719,32618,33725,32618 33732,32619,33750,32619 33720,32619,33725,32619 33753,32619,33775,32619 33782,32619,33817,32619 33735,32620,33748,32620 33754,32620,33775,32620 33783,32620,33814,32620 33721,32620,33725,32620 33723,32621,33725,32621 33772,32621,33775,32621 33737,32621,33747,32621 33756,32621,33769,32621 33783,32621,33813,32621 33739,32622,33745,32622 33783,32622,33814,32622 33758,32622,33767,32622 33760,32623,33766,32623 33784,32623,33814,32623 33761,32624,33764,32624 33785,32624,33817,32624 33785,32625,33818,32625 33785,32626,33808,32626 33811,32626,33820,32626 33811,32627,33821,32627 33780,32627,33783,32627 33785,32627,33806,32627 33780,32628,33805,32628 33810,32628,33822,32628 33779,32629,33804,32629 33809,32629,33823,32630 33779,32630,33803,32630 33819,32631,33823,32631 33809,32631,33815,32631 33779,32631,33802,32631 33794,32632,33801,32632 33820,32632,33823,32632 33779,32632,33790,32632 33810,32632,33814,32632 33808,32632,33808,32632 33795,32633,33799,32633 33781,32633,33789,32633 33781,32634,33788,32634 33793,32634,33799,32634 33782,32635,33788,32635 33799,32635,33799,32635 33792,32635,33797,32635 33783,32636,33788,32636", + }, + [448] = { -- Kazordoon (10 tiles, 6 rects) + name = "Kazordoon", + mainArea = 14, + bbox = { x1 = 32483, y1 = 31816, x2 = 32580, y2 = 31984 }, + rects = "32483,31816,32483,31816 32487,31867,32487,31867 32487,31868,32488,31868 32488,31869,32490,31869 32490,31870,32491,31870 32580,31984,32580,31984", + }, + [449] = { -- Zao (32 tiles, 5 rects) + name = "Zao", + mainArea = 8, + bbox = { x1 = 33356, y1 = 31142, x2 = 33361, y2 = 31148 }, + rects = "33358,31142,33359,31142 33357,31143,33360,31143 33356,31144,33361,31146 33357,31147,33361,31147 33358,31148,33360,31148", + }, + [450] = { -- Roshamuul (59 tiles, 37 rects) + name = "Roshamuul", + mainArea = 22, + bbox = { x1 = 33527, y1 = 32260, x2 = 33742, y2 = 32568 }, + rects = "33713,32260,33713,32260 33712,32262,33712,32262 33714,32262,33714,32262 33715,32264,33715,32264 33712,32266,33712,32266 33721,32266,33721,32267 33661,32267,33661,32267 33714,32267,33714,32267 33715,32268,33715,32268 33656,32270,33656,32270 33742,32295,33742,32295 33741,32300,33741,32300 33734,32320,33738,32320 33732,32321,33735,32321 33731,32322,33732,32323 33731,32326,33731,32327 33734,32327,33736,32327 33728,32330,33729,32331 33731,32331,33732,32331 33728,32332,33728,32332 33728,32395,33728,32396 33727,32398,33729,32398 33728,32408,33728,32408 33728,32412,33728,32413 33664,32470,33664,32470 33548,32501,33548,32501 33543,32507,33543,32507 33527,32507,33527,32507 33562,32509,33562,32509 33589,32533,33589,32533 33582,32534,33582,32534 33581,32535,33581,32535 33583,32536,33583,32536 33582,32537,33582,32537 33535,32564,33535,32564 33534,32565,33534,32565 33535,32568,33535,32568", + }, + [451] = { -- Ab'Dendriel (67 tiles, 34 rects) + name = "Ab'Dendriel", + mainArea = 1, + bbox = { x1 = 32650, y1 = 31572, x2 = 32739, y2 = 31769 }, + rects = "32654,31572,32654,31573 32654,31576,32654,31577 32654,31578,32656,31578 32652,31579,32654,31579 32650,31579,32650,31579 32654,31580,32654,31580 32710,31597,32710,31597 32715,31600,32715,31601 32711,31602,32711,31603 32712,31606,32713,31606 32713,31607,32713,31607 32731,31627,32733,31627 32735,31628,32736,31628 32737,31629,32737,31629 32738,31632,32738,31632 32738,31633,32739,31633 32739,31634,32739,31635 32738,31636,32738,31636 32683,31710,32684,31710 32686,31710,32688,31710 32692,31710,32692,31710 32695,31760,32695,31760 32705,31760,32706,31760 32706,31761,32706,31761 32695,31762,32695,31762 32705,31762,32706,31762 32695,31763,32697,31763 32699,31763,32706,31763 32696,31764,32696,31764 32705,31764,32705,31765 32699,31764,32699,31765 32699,31767,32699,31767 32699,31768,32702,31768 32701,31769,32701,31769", + }, + [452] = { -- Northern Darama (21 tiles, 11 rects) + name = "Northern Darama", + mainArea = 4, + bbox = { x1 = 33222, y1 = 32451, x2 = 33274, y2 = 32473 }, + rects = "33270,32451,33274,32451 33274,32452,33274,32452 33270,32452,33270,32452 33274,32454,33274,32454 33270,32454,33270,32454 33270,32455,33274,32455 33274,32456,33274,32456 33270,32456,33270,32456 33223,32471,33224,32471 33222,32472,33223,32472 33223,32473,33223,32473", + }, + [453] = { -- Oramond (6005 tiles, 461 rects) + name = "Oramond", + mainArea = 20, + bbox = { x1 = 33567, y1 = 31778, x2 = 33736, y2 = 32028 }, + rects = "33709,31778,33709,31778 33597,31779,33597,31779 33708,31779,33710,31779 33596,31780,33598,31780 33707,31780,33710,31780 33597,31781,33598,31781 33716,31781,33717,31781 33705,31781,33712,31781 33704,31782,33717,31782 33701,31782,33702,31782 33598,31782,33598,31782 33700,31783,33717,31783 33700,31784,33718,31784 33725,31785,33726,31785 33699,31785,33719,31785 33723,31786,33725,31786 33697,31786,33719,31786 33620,31786,33620,31786 33695,31787,33719,31787 33602,31787,33604,31787 33721,31787,33724,31787 33617,31787,33620,31787 33614,31788,33621,31788 33694,31788,33724,31788 33596,31788,33596,31788 33603,31788,33604,31788 33694,31789,33723,31789 33604,31789,33607,31789 33613,31789,33623,31789 33596,31789,33597,31789 33597,31790,33598,31790 33604,31790,33624,31790 33693,31790,33723,31790 33693,31791,33721,31791 33599,31791,33625,31791 33600,31792,33625,31792 33692,31792,33718,31792 33602,31793,33625,31793 33628,31793,33629,31793 33692,31793,33715,31793 33604,31794,33629,31794 33691,31794,33715,31794 33690,31795,33715,31795 33606,31795,33628,31795 33638,31796,33638,31796 33653,31796,33655,31796 33633,31796,33634,31796 33687,31796,33713,31796 33609,31796,33629,31796 33636,31797,33639,31797 33632,31797,33633,31797 33685,31797,33712,31797 33610,31797,33629,31797 33719,31797,33721,31797 33652,31797,33656,31797 33684,31798,33712,31798 33611,31798,33643,31798 33650,31798,33659,31798 33716,31798,33720,31798 33648,31799,33665,31799 33612,31799,33645,31799 33684,31799,33711,31799 33714,31799,33719,31799 33613,31800,33676,31800 33713,31800,33717,31800 33682,31800,33710,31800 33682,31801,33715,31801 33613,31801,33678,31801 33617,31802,33713,31802 33615,31802,33615,31802 33616,31803,33706,31803 33711,31803,33714,31803 33599,31804,33599,31804 33619,31804,33705,31804 33713,31804,33714,31804 33600,31805,33601,31805 33714,31805,33715,31805 33660,31805,33704,31805 33619,31805,33656,31805 33610,31806,33610,31806 33601,31806,33602,31806 33621,31806,33630,31806 33604,31806,33604,31806 33613,31806,33614,31806 33632,31806,33656,31806 33659,31806,33703,31806 33623,31807,33628,31807 33612,31807,33612,31807 33617,31807,33618,31807 33632,31807,33650,31807 33652,31807,33702,31807 33614,31807,33614,31807 33601,31807,33605,31808 33612,31808,33616,31808 33632,31808,33649,31808 33652,31808,33700,31808 33622,31808,33627,31808 33633,31809,33645,31809 33653,31809,33655,31809 33622,31809,33626,31809 33600,31809,33605,31809 33658,31809,33702,31809 33608,31809,33615,31809 33621,31810,33625,31810 33661,31810,33701,31810 33598,31810,33614,31810 33633,31810,33644,31810 33661,31811,33699,31811 33616,31811,33616,31811 33600,31811,33614,31811 33711,31811,33711,31811 33620,31811,33624,31811 33633,31811,33636,31811 33598,31811,33598,31811 33661,31812,33700,31812 33711,31812,33712,31812 33633,31812,33635,31812 33599,31812,33624,31812 33710,31813,33710,31813 33667,31813,33699,31813 33701,31813,33701,31813 33662,31813,33665,31813 33597,31813,33623,31813 33623,31814,33623,31814 33707,31814,33707,31814 33597,31814,33621,31814 33667,31814,33701,31814 33699,31815,33700,31815 33705,31815,33705,31815 33674,31815,33679,31815 33599,31815,33621,31815 33682,31815,33697,31815 33667,31815,33671,31816 33683,31816,33700,31816 33674,31816,33678,31816 33598,31816,33621,31817 33707,31816,33707,31817 33716,31817,33716,31817 33709,31817,33709,31817 33674,31817,33677,31817 33667,31817,33670,31817 33705,31817,33705,31817 33683,31817,33702,31817 33713,31817,33713,31817 33713,31818,33715,31818 33682,31818,33698,31818 33674,31818,33676,31818 33667,31818,33669,31818 33700,31818,33707,31818 33597,31818,33621,31819 33711,31819,33712,31819 33682,31819,33695,31819 33595,31819,33595,31819 33697,31819,33697,31819 33714,31819,33714,31819 33702,31819,33707,31819 33681,31820,33694,31820 33710,31820,33713,31820 33595,31820,33621,31820 33705,31820,33708,31820 33680,31821,33694,31821 33594,31821,33621,31821 33706,31821,33709,31821 33711,31821,33713,31821 33720,31822,33720,31822 33706,31822,33712,31822 33595,31822,33621,31822 33681,31822,33694,31823 33708,31823,33710,31823 33717,31823,33717,31823 33593,31823,33621,31823 33719,31823,33720,31823 33590,31824,33609,31824 33719,31824,33719,31824 33712,31824,33712,31824 33716,31824,33717,31824 33709,31824,33710,31824 33682,31824,33694,31824 33612,31824,33622,31825 33590,31825,33590,31825 33683,31825,33693,31825 33715,31825,33719,31825 33710,31825,33712,31825 33592,31825,33607,31825 33588,31825,33588,31825 33582,31825,33582,31825 33612,31826,33625,31826 33719,31826,33719,31826 33684,31826,33693,31826 33587,31826,33606,31826 33582,31826,33583,31826 33714,31826,33717,31826 33710,31826,33711,31826 33711,31827,33715,31827 33717,31827,33718,31827 33577,31827,33577,31827 33588,31827,33588,31827 33585,31827,33585,31827 33684,31827,33694,31827 33582,31827,33582,31827 33615,31827,33625,31828 33590,31827,33605,31828 33700,31828,33703,31828 33686,31828,33693,31828 33585,31828,33586,31828 33581,31828,33583,31828 33716,31828,33717,31828 33711,31828,33713,31828 33711,31829,33716,31829 33589,31829,33604,31829 33577,31829,33578,31829 33581,31829,33581,31829 33586,31829,33587,31829 33614,31829,33624,31830 33591,31830,33603,31830 33576,31830,33579,31830 33712,31830,33717,31830 33587,31830,33589,31830 33686,31829,33694,31831 33583,31830,33583,31831 33710,31831,33710,31831 33579,31831,33580,31831 33712,31831,33715,31831 33614,31831,33622,31831 33586,31831,33602,31831 33577,31831,33577,31831 33686,31832,33693,31832 33619,31832,33622,31832 33575,31832,33580,31832 33582,31832,33602,31832 33682,31832,33684,31832 33573,31832,33573,31832 33710,31832,33714,31832 33616,31832,33616,31833 33709,31833,33715,31833 33575,31833,33579,31833 33702,31833,33702,31833 33619,31833,33621,31833 33583,31833,33601,31833 33682,31833,33694,31834 33696,31834,33696,31834 33709,31834,33710,31834 33576,31834,33581,31834 33712,31834,33714,31834 33583,31834,33600,31834 33683,31835,33694,31835 33709,31835,33713,31835 33577,31835,33598,31835 33708,31836,33710,31836 33577,31836,33596,31836 33683,31836,33695,31837 33716,31837,33716,31837 33664,31837,33668,31837 33578,31837,33596,31837 33569,31837,33569,31837 33706,31837,33710,31837 33684,31838,33697,31838 33578,31838,33595,31838 33569,31838,33570,31838 33714,31838,33715,31838 33663,31838,33669,31838 33703,31838,33711,31838 33571,31839,33571,31839 33579,31839,33593,31839 33687,31839,33698,31839 33703,31839,33715,31839 33661,31839,33672,31840 33702,31840,33716,31840 33689,31840,33700,31840 33577,31840,33593,31840 33572,31840,33572,31841 33689,31841,33707,31841 33710,31841,33716,31841 33659,31841,33671,31841 33576,31841,33593,31841 33690,31842,33706,31842 33576,31842,33592,31842 33658,31842,33670,31842 33714,31842,33715,31842 33570,31842,33570,31842 33709,31842,33710,31842 33573,31842,33573,31843 33657,31843,33670,31843 33577,31843,33590,31843 33708,31843,33709,31843 33691,31843,33704,31843 33570,31843,33571,31844 33567,31844,33567,31844 33692,31844,33701,31844 33573,31844,33590,31844 33707,31844,33708,31844 33657,31844,33672,31844 33567,31845,33571,31845 33656,31845,33674,31845 33693,31845,33700,31845 33679,31845,33680,31845 33705,31845,33707,31845 33574,31845,33591,31845 33571,31846,33571,31846 33655,31846,33674,31846 33568,31846,33569,31846 33704,31846,33705,31846 33573,31846,33591,31846 33696,31846,33698,31846 33678,31846,33681,31846 33695,31847,33697,31847 33677,31847,33684,31847 33655,31847,33669,31847 33672,31847,33675,31847 33569,31847,33591,31847 33704,31847,33704,31848 33654,31848,33667,31848 33696,31848,33696,31848 33708,31848,33709,31848 33571,31848,33572,31848 33673,31848,33685,31848 33574,31848,33591,31848 33570,31849,33591,31849 33696,31849,33697,31849 33699,31849,33699,31849 33704,31849,33710,31849 33654,31849,33665,31849 33674,31849,33688,31849 33654,31850,33664,31850 33703,31850,33710,31850 33677,31850,33689,31850 33695,31850,33697,31851 33676,31851,33692,31851 33702,31851,33709,31851 33654,31851,33662,31851 33717,31851,33717,31851 33569,31850,33592,31852 33675,31852,33706,31852 33655,31852,33658,31852 33675,31853,33704,31853 33714,31853,33716,31853 33570,31853,33593,31853 33708,31852,33708,31854 33675,31854,33699,31854 33571,31854,33594,31854 33712,31854,33715,31854 33571,31855,33595,31855 33707,31855,33715,31855 33723,31855,33723,31855 33675,31855,33698,31855 33676,31856,33680,31856 33610,31856,33617,31856 33571,31856,33596,31856 33707,31856,33714,31856 33601,31856,33604,31856 33722,31856,33722,31857 33683,31856,33698,31857 33707,31857,33717,31857 33571,31857,33618,31858 33707,31858,33708,31858 33710,31858,33720,31858 33679,31858,33699,31859 33572,31859,33617,31859 33703,31859,33703,31859 33713,31859,33721,31859 33705,31859,33708,31860 33691,31860,33700,31860 33573,31860,33617,31860 33679,31860,33689,31860 33702,31860,33702,31860 33715,31860,33721,31860 33715,31861,33720,31861 33682,31861,33683,31861 33679,31861,33679,31861 33691,31861,33705,31861 33571,31861,33617,31861 33707,31861,33707,31861 33571,31862,33616,31862 33691,31862,33704,31862 33716,31862,33720,31862 33693,31863,33703,31863 33726,31863,33726,31863 33717,31863,33720,31864 33571,31863,33615,31864 33725,31864,33727,31864 33693,31864,33701,31865 33732,31865,33732,31865 33717,31865,33722,31865 33704,31865,33705,31865 33724,31865,33727,31865 33570,31865,33617,31866 33729,31866,33733,31866 33717,31866,33727,31866 33692,31866,33706,31866 33720,31867,33733,31867 33693,31867,33706,31867 33570,31867,33618,31867 33694,31868,33705,31868 33579,31868,33618,31868 33721,31868,33734,31868 33573,31868,33576,31868 33573,31869,33575,31869 33724,31869,33735,31869 33579,31869,33620,31869 33691,31869,33704,31869 33691,31870,33705,31870 33726,31870,33735,31870 33595,31870,33620,31870 33579,31870,33593,31870 33686,31871,33688,31871 33581,31871,33591,31871 33603,31871,33616,31871 33691,31871,33706,31871 33595,31871,33599,31871 33729,31871,33736,31871 33581,31872,33584,31872 33603,31872,33614,31872 33586,31872,33588,31872 33595,31872,33597,31872 33731,31872,33735,31873 33686,31872,33706,31873 33603,31873,33612,31873 33604,31874,33611,31874 33685,31874,33706,31875 33604,31875,33610,31875 33685,31876,33703,31876 33604,31876,33608,31876 33604,31877,33606,31877 33683,31877,33703,31877 33682,31878,33701,31879 33682,31880,33699,31881 33683,31882,33700,31882 33683,31883,33693,31883 33695,31883,33701,31884 33699,31885,33701,31885 33684,31884,33692,31886 33684,31887,33696,31888 33685,31889,33696,31889 33685,31890,33694,31890 33685,31891,33692,31891 33684,31892,33691,31892 33683,31893,33691,31893 33682,31894,33690,31895 33681,31896,33689,31896 33680,31897,33689,31897 33678,31898,33687,31898 33675,31899,33685,31899 33674,31900,33685,31900 33672,31901,33684,31901 33671,31902,33683,31904 33672,31905,33683,31905 33672,31906,33678,31906 33671,31907,33677,31907 33671,31908,33675,31909 33671,31910,33676,31910 33672,31911,33678,31911 33673,31912,33679,31915 33672,31916,33679,31916 33672,31917,33675,31918 33670,31919,33675,31919 33669,31920,33674,31920 33669,31921,33675,31921 33667,31922,33675,31923 33667,31924,33671,31924 33667,31925,33668,31926 33651,32028,33651,32028", + }, + [454] = { -- Thais (35 tiles, 19 rects) + name = "Thais", + mainArea = 24, + bbox = { x1 = 32130, y1 = 32051, x2 = 32395, y2 = 32431 }, + rects = "32283,32051,32283,32051 32395,32176,32395,32176 32346,32203,32347,32203 32375,32211,32375,32211 32135,32364,32136,32365 32130,32367,32130,32367 32130,32368,32132,32368 32134,32368,32138,32368 32135,32369,32135,32369 32130,32369,32130,32369 32135,32371,32135,32371 32135,32372,32136,32372 32135,32373,32135,32373 32210,32428,32210,32428 32209,32429,32210,32429 32205,32429,32207,32429 32204,32430,32205,32430 32210,32430,32210,32431 32205,32431,32205,32431", + }, + [455] = { -- Edron (185 tiles, 83 rects) + name = "Edron", + mainArea = 7, + bbox = { x1 = 33198, y1 = 31821, x2 = 33322, y2 = 31978 }, + rects = "33278,31821,33278,31821 33261,31821,33261,31821 33262,31822,33262,31822 33279,31822,33279,31822 33263,31823,33263,31825 33280,31823,33280,31825 33279,31826,33280,31826 33273,31826,33273,31826 33262,31826,33263,31826 33278,31827,33279,31827 33274,31827,33274,31827 33261,31827,33262,31827 33317,31827,33319,31827 33258,31828,33261,31828 33275,31828,33278,31828 33317,31828,33320,31828 33317,31829,33321,31829 33270,31830,33270,31830 33319,31830,33322,31831 33272,31831,33272,31831 33265,31831,33265,31831 33284,31831,33284,31831 33321,31832,33322,31832 33284,31832,33285,31832 33280,31832,33281,31832 33273,31832,33273,31833 33281,31833,33281,31833 33283,31833,33284,31833 33286,31833,33286,31835 33274,31834,33274,31836 33285,31836,33286,31836 33279,31836,33279,31836 33255,31837,33256,31837 33263,31837,33263,31837 33284,31837,33285,31837 33273,31837,33274,31837 33280,31837,33280,31837 33258,31837,33258,31837 33259,31838,33259,31838 33281,31838,33284,31838 33273,31838,33273,31838 33272,31839,33273,31839 33264,31839,33264,31839 33265,31840,33266,31840 33270,31840,33272,31840 33260,31839,33260,31841 33320,31840,33321,31841 33267,31841,33270,31841 33283,31842,33283,31842 33259,31842,33260,31842 33319,31842,33320,31842 33253,31842,33253,31842 33256,31838,33256,31843 33258,31843,33259,31843 33284,31843,33284,31843 33254,31843,33254,31843 33315,31843,33320,31844 33270,31844,33270,31844 33255,31844,33258,31844 33317,31845,33319,31845 33271,31845,33271,31845 33285,31844,33285,31846 33278,31847,33278,31847 33284,31847,33285,31847 33272,31846,33272,31848 33283,31848,33284,31848 33279,31848,33279,31848 33280,31849,33283,31849 33265,31849,33265,31849 33271,31849,33272,31849 33270,31850,33271,31850 33266,31850,33266,31850 33267,31851,33270,31851 33212,31859,33212,31861 33205,31859,33205,31861 33198,31859,33198,31861 33287,31953,33287,31953 33288,31954,33288,31954 33286,31954,33286,31954 33269,31972,33269,31972 33268,31975,33268,31975 33267,31977,33267,31977 33268,31978,33268,31978", + }, + [456] = { -- Carlin (137 tiles, 47 rects) + name = "Carlin", + mainArea = 3, + bbox = { x1 = 32275, y1 = 31585, x2 = 32532, y2 = 31855 }, + rects = "32523,31585,32524,31585 32522,31586,32525,31586 32521,31587,32526,31587 32520,31588,32526,31588 32520,31589,32527,31589 32521,31590,32521,31590 32532,31591,32532,31591 32528,31591,32528,31591 32526,31590,32526,31593 32528,31594,32528,31594 32532,31594,32532,31594 32525,31594,32526,31594 32522,31594,32523,31594 32526,31595,32526,31597 32532,31597,32532,31597 32528,31597,32528,31597 32525,31598,32526,31598 32526,31599,32529,31599 32526,31600,32526,31600 32466,31606,32466,31607 32425,31762,32425,31763 32425,31764,32427,31764 32420,31765,32422,31765 32424,31765,32425,31765 32425,31766,32425,31767 32295,31823,32300,31823 32298,31824,32298,31824 32295,31825,32295,31825 32286,31823,32286,31827 32281,31827,32281,31827 32294,31827,32294,31827 32281,31828,32286,31828 32295,31829,32295,31829 32286,31829,32286,31832 32278,31832,32278,31832 32275,31833,32286,31833 32304,31839,32304,31840 32305,31843,32305,31844 32314,31846,32314,31846 32316,31846,32316,31846 32311,31846,32311,31846 32307,31848,32308,31848 32342,31851,32345,31851 32339,31852,32340,31852 32342,31852,32342,31853 32347,31849,32347,31854 32339,31855,32347,31855", + }, + [457] = { -- Southern Darama (2 tiles, 2 rects) + name = "Southern Darama", + mainArea = 2, + bbox = { x1 = 33206, y1 = 32786, x2 = 33222, y2 = 32808 }, + rects = "33222,32786,33222,32786 33206,32808,33206,32808", + }, + [458] = { -- Hrodmir (34881 tiles, 1267 rects) + name = "Hrodmir", + mainArea = 23, + bbox = { x1 = 31910, y1 = 31009, x2 = 32461, y2 = 31363 }, + rects = "32161,31009,32162,31009 32160,31010,32163,31010 32163,31011,32165,31011 32159,31011,32160,31011 32159,31012,32162,31013 32165,31012,32166,31013 32147,31013,32150,31013 32150,31014,32151,31014 32159,31014,32165,31014 32146,31014,32147,31014 32145,31015,32146,31015 32151,31015,32151,31015 32159,31015,32164,31015 32159,31016,32166,31016 32151,31016,32152,31016 32144,31016,32145,31016 32143,31017,32144,31017 32152,31017,32155,31017 32159,31017,32164,31017 32166,31017,32168,31017 32155,31018,32165,31018 32128,31018,32129,31018 32168,31018,32169,31018 32146,31018,32152,31018 32143,31018,32143,31019 32158,31019,32165,31019 32198,31019,32199,31019 32127,31019,32131,31019 32169,31019,32174,31019 32145,31019,32154,31019 32197,31020,32200,31020 32131,31020,32132,31020 32137,31020,32138,31020 32143,31020,32175,31020 32126,31020,32127,31020 32197,31021,32197,31021 32136,31021,32139,31021 32132,31021,32132,31021 32142,31021,32173,31021 32192,31021,32193,31021 32175,31021,32175,31021 32200,31021,32201,31022 32125,31021,32126,31022 32142,31022,32142,31022 32188,31022,32197,31022 32132,31022,32139,31022 32144,31022,32176,31022 32187,31023,32188,31023 32134,31023,32174,31023 32176,31023,32177,31023 32126,31023,32129,31023 32192,31023,32198,31023 32200,31023,32200,31024 32129,31024,32130,31024 32189,31024,32198,31024 32177,31024,32178,31024 32132,31024,32175,31024 32187,31024,32187,31025 32189,31025,32200,31025 32132,31025,32176,31025 32130,31025,32130,31025 32178,31025,32179,31025 32187,31026,32199,31026 32130,31026,32177,31026 32222,31026,32225,31026 32179,31026,32180,31026 32131,31027,32180,31027 32186,31027,32198,31027 32220,31027,32225,31027 32228,31027,32231,31028 32220,31028,32226,31028 32129,31028,32179,31028 32185,31028,32197,31028 32185,31029,32195,31029 32217,31029,32235,31029 32128,31029,32179,31029 32216,31030,32236,31030 32211,31030,32212,31030 32184,31030,32195,31030 32130,31030,32182,31030 32130,31031,32184,31031 32186,31031,32196,31031 32216,31031,32216,31031 32210,31031,32213,31031 32128,31030,32128,31032 32218,31031,32236,31032 32213,31032,32216,31032 32130,31032,32182,31032 32210,31032,32210,31032 32184,31032,32197,31032 32209,31033,32210,31033 32121,31033,32124,31033 32217,31033,32236,31033 32128,31033,32196,31033 32129,31034,32198,31034 32212,31034,32236,31034 32120,31034,32121,31034 32124,31034,32125,31034 32209,31034,32209,31035 32118,31035,32127,31035 32130,31035,32199,31035 32212,31035,32237,31035 32117,31036,32197,31036 32199,31036,32200,31036 32208,31036,32238,31036 32115,31037,32200,31037 32208,31037,32208,31037 32210,31037,32238,31037 32210,31038,32241,31038 32114,31038,32200,31038 32206,31038,32208,31038 32114,31039,32114,31039 32209,31039,32242,31039 32244,31039,32244,31039 32116,31039,32206,31039 32207,31040,32247,31040 32114,31040,32202,31040 32106,31041,32107,31041 32115,31041,32256,31041 32122,31042,32175,31042 32104,31042,32108,31042 32120,31042,32120,31042 32182,31042,32257,31043 32108,31043,32109,31043 32103,31043,32104,31043 32120,31043,32175,31043 32182,31044,32215,31044 32109,31044,32109,31044 32225,31044,32225,31044 32217,31044,32217,31044 32227,31044,32259,31044 32103,31044,32103,31044 32220,31044,32221,31044 32223,31044,32223,31044 32119,31044,32175,31045 32221,31045,32259,31045 32109,31045,32110,31045 32103,31045,32104,31045 32177,31045,32217,31045 32110,31046,32111,31046 32177,31046,32183,31046 32227,31046,32260,31046 32404,31046,32405,31046 32198,31046,32215,31046 32104,31046,32106,31046 32217,31046,32217,31046 32271,31046,32276,31046 32113,31046,32175,31046 32111,31047,32113,31047 32227,31047,32261,31047 32106,31047,32106,31047 32177,31047,32217,31047 32268,31047,32275,31047 32119,31047,32175,31047 32405,31047,32405,31048 32220,31048,32220,31048 32267,31048,32274,31048 32222,31048,32222,31048 32402,31048,32402,31048 32227,31048,32263,31048 32409,31048,32411,31048 32110,31048,32112,31048 32115,31048,32175,31048 32199,31048,32215,31048 32217,31048,32217,31048 32106,31048,32107,31048 32177,31048,32197,31048 32107,31049,32108,31049 32110,31049,32197,31049 32227,31049,32264,31049 32411,31049,32412,31049 32266,31049,32274,31049 32199,31049,32225,31049 32235,31050,32274,31050 32415,31050,32415,31050 32108,31050,32197,31050 32227,31050,32230,31050 32199,31050,32224,31050 32232,31050,32232,31050 32109,31051,32197,31051 32230,31051,32232,31051 32226,31051,32228,31051 32235,31051,32275,31051 32199,31051,32223,31052 32179,31052,32183,31052 32235,31052,32276,31052 32185,31052,32185,31052 32179,31053,32185,31053 32199,31053,32224,31053 32235,31053,32275,31053 32109,31052,32177,31054 32235,31054,32274,31054 32230,31054,32232,31054 32227,31053,32227,31055 32106,31055,32142,31055 32235,31055,32271,31055 32150,31055,32177,31055 32148,31055,32148,31055 32144,31055,32144,31055 32229,31055,32230,31055 32146,31055,32146,31055 32232,31055,32232,31055 32199,31054,32223,31056 32105,31056,32177,31056 32227,31056,32271,31056 32194,31052,32197,31057 32158,31057,32177,31057 32107,31057,32142,31057 32235,31057,32270,31057 32227,31057,32230,31057 32199,31057,32224,31057 32105,31057,32105,31057 32232,31057,32232,31057 32150,31057,32156,31057 32230,31058,32232,31058 32104,31058,32177,31058 32098,31058,32099,31058 32226,31058,32228,31058 32235,31058,32269,31059 32194,31058,32223,31059 32097,31059,32100,31059 32103,31059,32156,31059 32158,31059,32177,31059 32179,31054,32183,31060 32103,31060,32176,31060 32204,31060,32223,31060 32097,31060,32097,31060 32100,31060,32100,31060 32235,31060,32267,31061 32194,31060,32197,31061 32100,31061,32101,31061 32172,31061,32183,31061 32230,31061,32232,31061 32096,31061,32097,31061 32204,31061,32224,31061 32103,31061,32170,31061 32227,31060,32227,31062 32222,31062,32222,31062 32101,31062,32170,31062 32235,31062,32266,31062 32189,31062,32204,31062 32206,31062,32220,31062 32229,31062,32230,31062 32096,31062,32096,31062 32172,31062,32187,31062 32232,31062,32232,31062 32227,31063,32266,31063 32095,31063,32169,31063 32226,31064,32230,31064 32094,31064,32169,31064 32232,31064,32232,31064 32172,31063,32204,31065 32230,31065,32232,31065 32227,31065,32228,31065 32093,31065,32170,31065 32178,31066,32178,31066 32187,31066,32190,31066 32172,31066,32176,31066 32092,31066,32170,31066 32192,31066,32192,31066 32206,31063,32218,31067 32172,31067,32178,31067 32187,31067,32192,31067 32226,31067,32227,31067 32092,31067,32092,31068 32206,31068,32219,31068 32230,31068,32232,31068 32235,31064,32266,31069 32201,31066,32204,31069 32224,31068,32227,31069 32206,31069,32218,31069 32229,31069,32230,31069 32232,31069,32232,31069 32095,31067,32170,31070 32224,31070,32268,31070 32201,31070,32218,31070 32223,31071,32268,31071 32224,31072,32268,31072 32201,31071,32219,31073 32095,31071,32169,31073 32172,31068,32176,31074 32224,31073,32267,31074 32207,31074,32219,31074 32101,31074,32166,31074 32201,31074,32204,31074 32187,31068,32190,31075 32227,31075,32267,31075 32102,31075,32102,31075 32213,31075,32218,31075 32201,31075,32211,31075 32110,31075,32176,31075 32112,31076,32180,31076 32182,31076,32194,31076 32196,31076,32211,31076 32227,31076,32268,31076 32074,31077,32074,31077 32112,31077,32211,31077 32115,31078,32211,31078 32223,31078,32224,31078 32220,31078,32221,31078 32114,31079,32211,31079 32220,31079,32224,31079 32227,31077,32270,31080 32221,31080,32223,31080 32171,31080,32171,31080 32185,31080,32185,31080 32180,31080,32183,31080 32199,31080,32199,31080 32114,31080,32169,31080 32194,31080,32197,31080 32213,31076,32217,31081 32194,31081,32199,31081 32112,31081,32171,31081 32220,31081,32224,31081 32180,31081,32185,31081 32227,31081,32271,31081 32220,31082,32221,31082 32223,31082,32224,31082 32244,31082,32271,31083 32226,31082,32233,31083 32109,31082,32169,31083 32105,31083,32105,31083 32208,31080,32211,31084 32214,31082,32218,31084 32246,31084,32272,31084 32226,31084,32231,31084 32105,31084,32169,31084 32090,31085,32090,31085 32224,31085,32231,31085 32102,31085,32102,31085 32247,31085,32272,31085 32105,31085,32163,31085 32236,31082,32236,31086 32088,31086,32163,31086 32244,31084,32244,31087 32208,31085,32220,31087 32248,31086,32272,31087 32129,31087,32130,31087 32086,31087,32127,31087 32165,31085,32169,31088 32132,31087,32163,31088 32085,31088,32125,31088 32129,31088,32129,31088 32045,31088,32045,31088 32127,31088,32127,31088 32208,31088,32221,31088 32180,31082,32183,31089 32194,31082,32197,31089 32224,31086,32230,31089 32249,31088,32272,31089 32063,31089,32064,31089 32043,31089,32045,31089 32132,31089,32169,31089 32208,31089,32220,31089 32240,31085,32240,31090 32233,31088,32233,31090 32086,31089,32125,31090 32224,31090,32229,31090 32043,31090,32043,31090 32175,31090,32187,31090 32062,31090,32065,31090 32132,31090,32173,31090 32189,31090,32201,31090 32203,31090,32220,31090 32249,31090,32273,31091 32233,31091,32245,31091 32084,31091,32124,31091 32131,31091,32229,31092 32073,31092,32077,31092 32049,31092,32052,31092 32086,31092,32124,31092 32276,31092,32279,31092 32065,31091,32065,31093 32250,31092,32274,31093 32158,31093,32229,31093 32072,31093,32077,31093 32087,31093,32121,31093 32276,31093,32276,31093 32047,31093,32053,31093 32130,31093,32156,31093 32062,31091,32062,31094 32206,31094,32206,31094 32071,31094,32078,31094 32178,31094,32178,31094 32250,31094,32276,31094 32164,31094,32164,31094 32187,31094,32190,31094 32215,31094,32221,31094 32064,31094,32064,31094 32173,31094,32176,31094 32192,31094,32192,31094 32201,31094,32204,31094 32046,31094,32054,31094 32223,31094,32233,31094 32128,31094,32156,31094 32158,31094,32162,31094 32088,31094,32121,31095 32060,31095,32062,31095 32282,31095,32283,31095 32201,31095,32206,31095 32071,31095,32084,31095 32158,31095,32164,31095 32276,31095,32277,31095 32187,31095,32192,31095 32173,31095,32178,31095 32250,31095,32274,31095 32233,31095,32233,31096 32126,31095,32156,31096 32059,31096,32061,31096 32282,31096,32282,31096 32298,31096,32301,31096 32071,31096,32121,31096 32277,31096,32278,31096 32241,31096,32275,31096 32045,31095,32054,31097 32222,31097,32222,31097 32282,31097,32286,31097 32232,31097,32233,31097 32225,31097,32225,31097 32288,31097,32301,31097 32248,31097,32278,31097 32069,31097,32121,31097 32059,31097,32063,31098 32125,31097,32156,31098 32286,31098,32286,31098 32288,31098,32302,31098 32044,31098,32054,31098 32248,31098,32279,31098 32283,31098,32284,31098 32041,31098,32042,31098 32024,31098,32025,31098 32068,31098,32120,31098 32215,31095,32218,31099 32220,31098,32229,31099 32023,31099,32026,31099 32124,31099,32156,31099 32286,31099,32305,31099 32067,31099,32120,31099 32058,31099,32065,31099 32243,31099,32243,31099 32246,31099,32279,31099 32040,31099,32053,31100 32266,31100,32278,31100 32243,31100,32260,31100 32020,31100,32021,31100 32282,31100,32305,31100 32124,31100,32155,31100 32215,31100,32230,31100 32023,31100,32023,31100 32237,31092,32237,31101 32240,31099,32240,31101 32026,31100,32026,31101 32019,31101,32023,31101 32125,31101,32155,31101 32036,31101,32053,31101 32281,31101,32305,31101 32215,31101,32234,31101 32243,31101,32258,31101 32267,31101,32278,31101 32057,31100,32120,31102 32123,31102,32123,31102 32215,31102,32254,31102 32283,31102,32305,31102 32269,31102,32281,31102 32035,31102,32053,31102 32026,31102,32027,31102 32125,31102,32156,31102 32187,31096,32190,31103 32173,31096,32176,31103 32201,31096,32204,31103 32158,31096,32162,31103 32018,31102,32019,31103 32281,31103,32305,31103 32215,31103,32253,31103 32269,31103,32278,31103 32034,31103,32054,31103 32057,31103,32118,31103 32027,31103,32028,31104 32269,31104,32305,31104 32168,31104,32180,31104 32018,31104,32022,31104 32196,31104,32208,31104 32158,31104,32166,31104 32182,31104,32194,31104 32210,31104,32252,31104 32034,31104,32118,31104 32123,31103,32156,31105 32034,31105,32117,31105 32158,31105,32250,31105 32271,31105,32305,31105 32019,31105,32020,31105 32027,31105,32027,31105 32031,31106,32116,31106 32027,31106,32029,31106 32158,31106,32237,31106 32242,31106,32250,31106 32123,31106,32155,31106 32022,31105,32022,31107 32271,31106,32304,31107 32158,31107,32232,31107 32122,31107,32155,31107 32029,31107,32116,31107 32025,31107,32027,31107 32243,31107,32248,31107 32025,31108,32116,31108 32019,31108,32019,31108 32244,31108,32247,31108 32213,31108,32230,31108 32278,31108,32304,31108 32122,31108,32156,31109 32199,31109,32204,31109 32161,31109,32164,31109 32192,31109,32197,31109 32209,31109,32229,31109 32179,31109,32183,31109 32167,31109,32171,31109 32279,31109,32294,31109 32024,31109,32116,31110 32245,31109,32247,31110 32121,31110,32172,31110 32175,31110,32184,31110 32187,31110,32229,31110 32286,31110,32293,31110 32224,31111,32229,31111 32286,31111,32291,31111 32121,31111,32220,31111 32024,31111,32117,31112 32149,31112,32215,31112 32225,31112,32228,31112 32142,31112,32147,31112 32461,31112,32461,31112 32288,31112,32290,31112 32152,31113,32214,31113 32146,31113,32146,31113 32121,31112,32140,31114 32024,31113,32118,31115 32124,31115,32140,31115 32000,31115,32003,31115 31997,31115,31998,31115 32153,31114,32206,31116 32460,31116,32461,31116 31995,31116,32001,31116 32023,31116,32118,31116 32123,31116,32140,31117 31994,31117,31995,31117 32153,31117,32205,31117 32022,31117,32118,31117 31998,31117,31998,31117 32458,31117,32461,31118 32123,31118,32137,31118 32153,31118,32204,31118 31993,31118,31994,31119 32122,31119,32136,31119 32201,31119,32204,31119 32022,31118,32116,31120 32154,31119,32194,31120 32460,31119,32460,31120 32202,31120,32203,31120 31994,31120,31997,31120 32196,31120,32199,31120 32122,31120,32135,31120 32023,31121,32116,31121 31997,31121,31997,31121 32200,31121,32200,31121 32196,31121,32196,31122 31996,31122,31997,31122 32024,31122,32116,31122 32200,31122,32202,31122 32153,31121,32194,31123 32196,31123,32197,31123 32024,31123,32117,31123 31995,31123,31996,31123 32199,31123,32205,31123 32200,31124,32200,31124 31994,31124,31995,31124 32122,31121,32137,31125 32205,31124,32205,31125 32026,31124,32117,31125 32196,31124,32196,31126 32152,31124,32193,31126 32028,31126,32117,31126 32200,31126,32200,31126 32123,31126,32137,31126 31994,31125,31994,31127 32123,31127,32135,31127 32152,31127,32192,31127 32196,31127,32205,31127 32027,31127,32117,31127 32027,31128,32118,31128 32124,31128,32135,31128 32152,31128,32190,31128 31994,31128,31995,31128 32154,31129,32190,31129 31995,31129,31996,31129 32026,31129,32118,31129 32192,31129,32202,31129 32124,31129,32141,31129 32025,31130,32058,31130 32157,31130,32190,31130 32124,31130,32142,31130 31996,31130,31997,31130 32060,31130,32118,31130 32202,31130,32202,31131 32160,31131,32189,31131 32061,31131,32118,31131 32125,31131,32143,31131 31997,31131,31998,31131 32023,31131,32058,31131 32199,31130,32199,31132 31998,31132,32000,31132 32049,31132,32057,31132 32062,31132,32118,31133 32126,31132,32143,31133 31999,31133,32003,31133 32149,31133,32154,31133 32050,31133,32051,31133 32054,31133,32060,31133 32192,31130,32192,31134 32023,31132,32047,31134 32202,31133,32202,31134 32003,31134,32004,31134 32199,31134,32199,31134 32067,31134,32118,31134 32160,31132,32190,31135 32157,31134,32158,31135 32147,31134,32154,31135 32053,31134,32065,31135 32127,31134,32143,31135 32002,31135,32003,31135 32068,31135,32117,31135 32193,31135,32202,31135 32022,31135,32050,31135 32060,31136,32065,31136 32002,31136,32002,31136 32127,31136,32191,31136 32021,31136,32055,31137 32128,31137,32194,31137 32002,31137,32003,31137 32064,31137,32066,31138 32003,31138,32005,31138 32129,31138,32194,31138 32018,31138,32054,31138 32196,31138,32205,31138 32069,31136,32117,31139 32210,31137,32210,31139 32065,31139,32067,31139 32205,31139,32205,31139 32199,31139,32199,31139 32050,31139,32054,31139 32196,31139,32196,31140 32130,31139,32194,31140 32005,31139,32005,31140 32089,31140,32116,31140 32073,31140,32087,31141 32065,31140,32070,31141 32052,31140,32053,31141 32129,31141,32194,31141 32196,31141,32199,31141 32005,31141,32006,31141 32089,31141,32117,31141 32018,31139,32048,31142 32205,31141,32205,31142 32128,31142,32194,31142 32089,31142,32118,31142 32006,31142,32006,31142 32199,31142,32199,31142 32052,31142,32056,31142 32065,31142,32069,31142 32074,31142,32087,31143 32051,31143,32056,31143 32065,31143,32068,31143 32006,31143,32007,31143 32203,31143,32205,31143 32019,31143,32049,31143 32199,31143,32201,31143 32089,31143,32122,31144 32127,31143,32197,31144 32205,31144,32205,31144 32007,31144,32008,31144 32074,31144,32084,31145 32199,31144,32199,31145 32019,31144,32056,31145 32064,31144,32066,31145 32205,31145,32206,31145 32187,31145,32197,31145 32008,31145,32010,31145 32089,31145,32184,31146 32053,31146,32056,31146 32074,31146,32081,31146 32048,31146,32051,31146 32199,31146,32205,31146 32064,31146,32065,31147 32019,31146,32034,31147 32075,31147,32081,31147 32088,31147,32184,31147 32049,31147,32051,31147 32199,31147,32199,31147 32054,31147,32056,31147 32010,31146,32010,31148 32189,31146,32197,31148 32055,31148,32056,31148 32078,31148,32081,31148 32050,31148,32051,31148 32019,31148,32033,31148 32009,31149,32010,31149 32088,31148,32185,31150 32050,31149,32052,31150 32055,31149,32057,31150 32008,31150,32010,31150 32036,31146,32046,31151 32019,31149,32032,31151 32189,31149,32198,31151 32086,31151,32185,31151 32051,31151,32057,31151 32002,31151,32004,31151 32007,31151,32008,31151 32004,31152,32007,31152 32022,31152,32032,31152 32040,31152,32046,31152 32196,31152,32198,31152 32086,31152,32182,31153 32052,31152,32056,31153 32001,31152,32002,31153 32022,31153,32033,31153 32041,31153,32046,31153 32185,31153,32185,31153 32004,31153,32009,31153 32196,31153,32197,31154 32043,31154,32046,31154 32009,31154,32010,31154 32186,31154,32186,31154 32002,31154,32004,31154 32083,31154,32178,31155 32019,31154,32033,31155 32053,31154,32056,31156 32008,31155,32009,31156 32038,31156,32040,31156 32019,31156,32031,31156 32080,31156,32175,31157 32053,31157,32055,31157 32035,31157,32040,31157 32009,31157,32011,31157 32019,31157,32030,31157 32019,31158,32029,31158 32034,31158,32040,31158 32080,31158,32174,31159 32229,31159,32229,31159 32019,31159,32028,31159 32033,31159,32037,31159 32011,31158,32011,31160 32084,31160,32171,31160 32019,31160,32036,31160 32007,31161,32007,31161 32010,31161,32011,31161 32084,31161,32094,31162 32098,31161,32170,31162 32010,31162,32010,31162 32018,31161,32038,31163 32085,31163,32094,31163 32098,31163,32171,31163 32007,31163,32010,31163 32006,31164,32007,31164 32091,31164,32094,31164 32018,31164,32037,31164 32080,31160,32082,31165 32092,31165,32094,31165 32017,31165,32037,31165 32005,31165,32006,31166 32017,31166,32038,31166 32086,31164,32088,31167 32098,31164,32172,31167 32092,31166,32093,31167 32017,31167,32023,31167 32006,31167,32007,31167 32016,31168,32023,31168 32092,31168,32092,31168 32025,31167,32040,31169 32096,31168,32172,31169 32006,31168,32006,31169 32015,31169,32023,31169 32085,31168,32088,31170 32027,31170,32039,31170 31996,31170,31998,31170 32002,31170,32006,31170 32014,31170,32023,31171 32095,31170,32172,31171 32028,31171,32039,31171 31976,31171,31977,31171 31998,31171,31999,31171 31992,31171,31996,31171 32005,31171,32005,31171 32001,31171,32002,31171 31991,31172,31992,31172 32015,31172,32023,31172 32029,31172,32039,31172 31975,31172,31978,31172 32093,31172,32173,31172 31999,31172,32001,31172 32085,31171,32089,31173 31978,31173,31979,31173 32019,31173,32023,31173 31975,31173,31976,31173 32030,31173,32036,31173 32093,31173,32174,31173 32000,31173,32000,31173 31991,31173,31991,31173 32093,31174,32175,31174 32020,31174,32023,31174 31985,31174,31989,31174 31976,31174,31979,31174 32031,31174,32036,31175 32101,31175,32174,31175 31984,31175,31985,31175 31988,31175,31991,31175 31978,31175,31980,31175 32102,31176,32174,31176 31980,31176,31980,31176 32032,31176,32036,31176 31984,31176,31984,31176 31980,31177,31984,31177 32102,31177,32172,31177 32087,31174,32089,31178 32094,31175,32099,31178 32103,31178,32170,31178 31978,31176,31978,31179 32103,31179,32171,31179 31978,31180,31979,31180 31975,31180,31976,31180 32103,31180,32108,31180 32111,31180,32171,31180 32088,31179,32088,31181 32094,31179,32098,31181 31974,31181,31978,31181 31972,31182,31974,31182 31971,31183,31972,31184 32112,31181,32171,31185 31970,31185,31971,31185 31970,31186,31970,31186 32110,31186,32171,31187 31968,31187,31970,31187 31967,31188,31969,31188 32108,31188,32170,31189 31967,31189,31968,31189 32108,31190,32168,31190 31968,31190,31968,31190 31968,31191,31972,31191 32109,31191,32167,31191 31969,31192,31970,31192 32109,31192,32164,31193 32325,31193,32325,31193 31972,31192,31972,31194 32324,31194,32326,31194 31971,31195,31972,31195 32325,31195,32325,31195 32110,31194,32164,31196 31971,31196,31971,31196 31971,31197,31972,31197 32113,31197,32164,31197 32114,31198,32166,31198 31972,31198,31973,31198 32113,31199,32166,31199 31973,31199,31973,31199 32106,31200,32165,31201 31973,31200,31974,31201 32106,31202,32116,31202 31972,31202,31973,31202 31971,31203,31972,31203 32107,31203,32116,31203 32111,31204,32113,31204 31969,31204,31971,31204 32118,31202,32165,31205 32107,31204,32108,31205 31967,31205,31969,31205 32107,31206,32107,31206 31966,31206,31967,31206 32117,31206,32167,31206 32115,31207,32168,31207 31965,31207,31966,31208 32112,31208,32169,31208 32111,31209,32170,31210 31966,31209,31966,31211 32111,31211,32171,31211 32113,31212,32171,31212 31962,31212,31966,31212 32116,31213,32171,31213 32108,31213,32110,31213 32247,31213,32247,31213 31961,31213,31962,31214 32249,31214,32250,31214 32117,31214,32171,31214 32105,31214,32110,31215 31962,31215,31968,31215 32254,31215,32254,31215 32117,31215,32172,31215 32105,31216,32111,31216 31968,31216,31969,31216 32116,31216,32172,31217 32105,31217,32112,31217 31969,31217,31969,31218 32105,31218,32111,31219 31969,31219,31970,31219 32251,31220,32252,31220 31970,31220,31970,31220 32105,31220,32112,31221 32253,31221,32253,31221 31968,31221,31970,31221 31967,31222,31968,31222 32105,31222,32113,31222 32115,31218,32172,31223 31967,31223,31967,31223 32106,31223,32113,31224 32115,31224,32173,31224 31967,31224,31968,31224 32253,31225,32253,31225 32107,31225,32175,31225 32107,31226,32176,31226 32108,31227,32177,31227 32258,31227,32258,31227 32108,31228,32178,31228 31968,31225,31968,31229 32109,31229,32180,31229 31967,31230,31968,31230 32111,31230,32178,31230 32106,31230,32106,31230 32112,31231,32178,31231 32101,31231,32103,31231 31966,31231,31968,31231 32112,31232,32181,31232 31966,31232,31967,31232 32101,31232,32104,31232 31967,31233,31968,31233 32102,31233,32182,31234 31968,31234,31968,31234 31967,31235,31968,31235 32103,31235,32182,31236 32103,31237,32181,31238 31967,31236,31967,31239 32107,31239,32181,31239 31966,31240,31967,31240 32108,31240,32181,31240 31966,31241,31966,31241 31966,31242,31967,31242 31967,31243,31969,31243 32256,31243,32256,31243 32108,31241,32180,31244 31969,31244,31970,31244 31970,31245,31970,31245 32108,31245,32181,31245 32108,31246,32182,31246 31969,31246,31970,31246 32073,31246,32073,31246 32098,31247,32104,31247 32109,31247,32184,31247 32190,31247,32199,31247 32074,31247,32074,31247 31968,31247,31970,31247 32109,31248,32200,31248 32071,31248,32074,31248 32272,31248,32272,31248 32265,31248,32265,31248 32098,31248,32105,31248 31967,31248,31968,31249 32095,31249,32200,31249 32065,31249,32067,31250 32095,31250,32201,31252 32063,31251,32067,31252 32070,31249,32074,31253 32095,31253,32204,31253 32062,31253,32067,31253 32096,31254,32205,31254 32061,31254,32066,31255 32070,31254,32073,31255 32097,31255,32206,31255 32055,31255,32057,31256 32097,31256,32207,31256 32060,31256,32065,31256 32060,31257,32064,31257 32098,31257,32207,31257 32053,31257,32056,31258 32099,31258,32206,31258 32044,31258,32047,31258 32099,31259,32101,31259 32037,31259,32039,31259 32051,31259,32056,31259 32047,31259,32047,31259 32059,31258,32064,31260 32106,31259,32206,31260 32046,31260,32047,31260 32100,31260,32100,31260 32037,31260,32037,31260 32051,31260,32055,31261 32211,31260,32211,31261 32036,31261,32037,31261 32058,31261,32062,31261 32107,31261,32206,31261 32046,31261,32046,31262 32049,31262,32055,31262 32036,31262,32036,31262 32058,31262,32061,31262 32041,31262,32041,31262 32045,31263,32046,31263 32034,31263,32036,31263 32049,31263,32054,31263 32039,31263,32041,31263 32108,31262,32205,31264 32039,31264,32039,31264 32208,31264,32208,31264 32049,31264,32053,31264 32034,31264,32034,31264 32037,31265,32039,31265 32033,31265,32034,31265 32045,31264,32045,31266 32108,31265,32206,31266 32048,31265,32053,31266 32031,31266,32033,31266 32037,31266,32037,31266 32039,31267,32040,31267 32036,31267,32037,31267 32049,31267,32052,31267 32109,31267,32205,31267 32031,31267,32031,31267 32035,31268,32042,31268 32030,31268,32031,31268 32109,31268,32204,31268 32111,31269,32204,31269 32030,31269,32030,31269 32035,31269,32037,31269 32114,31270,32203,31270 32027,31270,32030,31270 32033,31270,32036,31271 32206,31271,32206,31271 32039,31271,32042,31271 32025,31271,32027,31271 32090,31271,32091,31271 32116,31271,32201,31271 32046,31270,32046,31272 32039,31272,32040,31272 32025,31272,32025,31272 32117,31272,32202,31272 32033,31272,32034,31272 32090,31272,32092,31273 32045,31273,32046,31273 32038,31273,32039,31273 32023,31273,32025,31273 32118,31273,32202,31273 32046,31274,32046,31274 32119,31274,32202,31274 32036,31274,32038,31274 32023,31274,32023,31275 32043,31275,32046,31275 32034,31275,32036,31275 32122,31275,32202,31275 32022,31276,32023,31276 32124,31276,32203,31276 32034,31276,32034,31276 32041,31276,32044,31276 32027,31275,32028,31277 32040,31277,32041,31277 32203,31277,32204,31277 32090,31274,32093,31278 32124,31277,32201,31278 32033,31277,32034,31278 32204,31278,32204,31278 32022,31277,32022,31279 32031,31279,32033,31279 32124,31279,32204,31279 32091,31279,32093,31279 32025,31278,32028,31280 32202,31280,32203,31280 32035,31280,32037,31280 32031,31280,32031,31281 32127,31280,32200,31281 32033,31281,32035,31281 32127,31282,32199,31282 32030,31282,32031,31282 32033,31282,32034,31282 32090,31282,32092,31283 32127,31283,32198,31283 32007,31283,32019,31283 32030,31283,32033,31283 32024,31281,32027,31284 32083,31284,32085,31284 32127,31284,32196,31284 32005,31284,32007,31284 32011,31284,32012,31284 32021,31280,32021,31285 32019,31284,32019,31285 32025,31285,32026,31285 32005,31285,32005,31285 32128,31285,32195,31285 32090,31284,32093,31286 32082,31285,32086,31286 32015,31286,32017,31286 32128,31286,32191,31286 32019,31286,32021,31286 32004,31286,32005,31286 32017,31287,32020,31287 32003,31287,32004,31287 32014,31287,32015,31287 32082,31287,32087,31288 32128,31287,32190,31288 32024,31288,32027,31288 32194,31288,32195,31288 32000,31288,32003,31288 32018,31288,32020,31288 32014,31288,32014,31289 31997,31289,32000,31289 32193,31289,32193,31289 32017,31289,32018,31289 32090,31287,32094,31290 32129,31289,32189,31290 32022,31289,32028,31290 31997,31290,31997,31290 32013,31290,32014,31290 32017,31290,32017,31290 32083,31289,32087,31291 32130,31291,32190,31291 32013,31291,32017,31291 31996,31291,31997,31291 32023,31291,32027,31291 32091,31291,32094,31292 32084,31292,32087,31292 32131,31292,32190,31293 31996,31292,31996,31293 32092,31293,32094,31293 32084,31293,32088,31293 32132,31294,32189,31294 31995,31294,31996,31294 31990,31295,31995,31295 32092,31294,32093,31296 32130,31295,32189,31296 31989,31296,31989,31296 32084,31294,32089,31297 31989,31297,31991,31297 32129,31297,32188,31297 31991,31298,31992,31298 32129,31298,32187,31298 32085,31298,32090,31299 32130,31299,32184,31299 32085,31300,32091,31300 32133,31300,32185,31300 31992,31299,31992,31301 32086,31301,32091,31301 31991,31302,31992,31302 31988,31303,31991,31303 32134,31301,32186,31304 31988,31304,31988,31304 32088,31302,32090,31305 32135,31305,32192,31305 31967,31305,31970,31305 31987,31305,31988,31305 31981,31306,31987,31306 32135,31306,32193,31306 31965,31306,31966,31306 32089,31306,32090,31307 31964,31307,31965,31307 31980,31307,31980,31307 32135,31307,32194,31308 31979,31308,31980,31308 31963,31308,31964,31308 31962,31309,31963,31309 31979,31309,31979,31309 32134,31309,32194,31309 31962,31310,31962,31310 31974,31310,31978,31310 32132,31310,32193,31310 32086,31310,32088,31310 31962,31311,31963,31311 31970,31306,31970,31312 32131,31311,32193,31312 31974,31311,31974,31312 32085,31311,32088,31312 31963,31312,31963,31313 31973,31313,31974,31313 31970,31313,31971,31313 32132,31313,32192,31313 32087,31313,32088,31313 32133,31314,32193,31314 31971,31314,31973,31314 31963,31314,31964,31314 32134,31315,32194,31315 32448,31316,32448,31316 32135,31316,32194,31317 31964,31315,31964,31318 32134,31318,32195,31318 32085,31318,32086,31318 32084,31319,32086,31319 32134,31319,32197,31319 32134,31320,32198,31320 32083,31320,32086,31320 31964,31319,31965,31321 31969,31321,31971,31321 32082,31321,32086,31321 32135,31321,32199,31321 32158,31322,32199,31322 32139,31322,32150,31322 31965,31322,31965,31322 32079,31322,32086,31322 31968,31322,31972,31323 31964,31323,31965,31323 32160,31323,32200,31323 32139,31323,32149,31323 32139,31324,32148,31324 31968,31324,31971,31324 31963,31324,31964,31324 32161,31324,32200,31324 32140,31325,32147,31325 31969,31325,31970,31325 31963,31325,31963,31325 32079,31323,32085,31326 32161,31325,32201,31326 31962,31326,31963,31326 32141,31326,32147,31326 32162,31327,32202,31327 32080,31327,32085,31327 31961,31327,31962,31327 32142,31327,32148,31327 32082,31328,32087,31328 31957,31328,31961,31328 32448,31328,32448,31328 32144,31328,32148,31329 32162,31328,32203,31329 31957,31329,31957,31329 32083,31329,32087,31329 32163,31330,32203,31330 32086,31330,32087,31330 32145,31330,32148,31330 32439,31330,32440,31330 32146,31331,32148,31331 32438,31331,32441,31331 32163,31331,32202,31331 32147,31332,32148,31332 32163,31332,32200,31332 32438,31332,32438,31333 32441,31332,32441,31333 32162,31333,32198,31333 32155,31334,32193,31334 32438,31334,32441,31334 32439,31335,32440,31335 32155,31335,32191,31335 32155,31336,32192,31336 32155,31337,32190,31337 32192,31337,32193,31337 32157,31338,32189,31338 32158,31339,32189,31339 32154,31340,32189,31340 32153,31341,32187,31342 32156,31343,32186,31343 32157,31344,32184,31344 32159,31345,32183,31345 32159,31346,32181,31346 32160,31347,32180,31347 32161,31348,32173,31348 32162,31349,32173,31349 32163,31350,32173,31350 32164,31351,32171,31351 32166,31352,32167,31352 31920,31360,31920,31360 31910,31360,31914,31360 31935,31360,31936,31360 31926,31360,31928,31360 31927,31361,31928,31361 31911,31361,31912,31361 31920,31361,31921,31361 31921,31362,31922,31362 31926,31362,31927,31362 31922,31363,31925,31363", + }, + [459] = { -- Tiquanda (193 tiles, 24 rects) + name = "Tiquanda", + mainArea = 19, + bbox = { x1 = 32687, y1 = 32551, x2 = 32995, y2 = 32884 }, + rects = "32688,32551,32689,32551 32687,32552,32690,32553 32688,32554,32689,32554 32993,32720,32994,32720 32993,32721,32995,32721 32896,32863,32898,32863 32895,32864,32898,32864 32894,32865,32898,32865 32893,32866,32898,32866 32893,32867,32897,32867 32892,32868,32897,32868 32891,32869,32897,32870 32890,32871,32896,32871 32888,32872,32896,32872 32887,32873,32896,32873 32886,32874,32896,32874 32885,32875,32896,32875 32884,32876,32895,32876 32883,32877,32894,32877 32883,32878,32893,32878 32882,32879,32892,32881 32883,32882,32892,32882 32887,32883,32890,32883 32888,32884,32889,32884", + }, + [460] = { -- Venore (108 tiles, 37 rects) + name = "Venore", + mainArea = 25, + bbox = { x1 = 32757, y1 = 32053, x2 = 33090, y2 = 32165 }, + rects = "33090,32053,33090,32053 32961,32079,32961,32079 32763,32130,32763,32130 32760,32130,32760,32130 32767,32130,32767,32132 32763,32132,32763,32132 32760,32132,32761,32132 32757,32133,32758,32133 32763,32133,32764,32133 32760,32133,32760,32133 32766,32133,32767,32133 32767,32134,32767,32134 32757,32135,32758,32135 32763,32135,32764,32135 32766,32135,32767,32135 32760,32135,32761,32135 32763,32136,32763,32139 32767,32136,32767,32139 32760,32136,32760,32139 32757,32140,32767,32140 32990,32153,32992,32154 32994,32153,32995,32155 32989,32155,32990,32155 32995,32156,32996,32156 32989,32156,32989,32157 32996,32157,32997,32157 32989,32158,32992,32158 32994,32158,32998,32158 32998,32159,32998,32159 32989,32159,32991,32159 32990,32160,32990,32160 32997,32160,32998,32160 32990,32161,32991,32162 32998,32161,32998,32163 32991,32163,32991,32163 32991,32164,32998,32164 32991,32165,32997,32165", + }, + [461] = { -- Yalahar (8518 tiles, 539 rects) + name = "Yalahar", + mainArea = 27, + bbox = { x1 = 32520, y1 = 31233, x2 = 32972, y2 = 31508 }, + rects = "32850,31233,32850,31233 32624,31244,32624,31244 32971,31254,32972,31254 32620,31382,32625,31382 32576,31384,32577,31384 32583,31384,32585,31384 32619,31383,32626,31385 32613,31385,32615,31385 32575,31385,32578,31385 32599,31385,32609,31385 32581,31385,32586,31385 32575,31386,32586,31386 32597,31386,32626,31386 32593,31387,32627,31387 32575,31387,32587,31387 32592,31388,32627,31388 32575,31388,32590,31388 32571,31388,32572,31388 32570,31389,32627,31389 32569,31390,32629,31390 32569,31391,32630,31391 32566,31392,32566,31392 32581,31392,32581,31392 32583,31392,32616,31392 32618,31392,32632,31392 32570,31392,32576,31392 32585,31393,32598,31393 32603,31393,32616,31393 32570,31393,32574,31393 32567,31393,32567,31394 32585,31394,32592,31394 32570,31394,32576,31394 32603,31394,32615,31395 32567,31395,32576,31395 32585,31395,32590,31395 32623,31393,32633,31396 32584,31396,32590,31396 32567,31396,32575,31396 32601,31396,32615,31397 32567,31397,32576,31397 32624,31397,32633,31397 32558,31397,32558,31397 32585,31397,32590,31398 32568,31398,32576,31398 32625,31398,32625,31398 32603,31398,32615,31398 32627,31398,32633,31399 32586,31399,32590,31399 32568,31399,32574,31399 32576,31399,32576,31399 32558,31399,32564,31400 32604,31399,32615,31400 32585,31400,32590,31400 32630,31400,32633,31400 32586,31401,32590,31401 32584,31401,32584,31401 32630,31401,32635,31401 32605,31401,32613,31402 32559,31401,32564,31402 32581,31402,32593,31402 32629,31402,32636,31403 32605,31403,32612,31403 32560,31403,32564,31403 32580,31403,32593,31403 32579,31404,32593,31404 32608,31404,32608,31404 32618,31404,32622,31404 32629,31404,32637,31405 32576,31405,32593,31405 32617,31405,32622,31405 32561,31404,32564,31406 32573,31406,32593,31406 32629,31406,32636,31406 32614,31406,32622,31407 32569,31407,32594,31407 32560,31407,32565,31407 32629,31407,32635,31407 32559,31408,32566,31408 32569,31408,32582,31408 32589,31408,32593,31409 32595,31409,32600,31409 32554,31409,32581,31409 32629,31408,32633,31410 32610,31408,32620,31410 32583,31409,32584,31410 32605,31410,32608,31410 32581,31410,32581,31410 32589,31410,32603,31410 32553,31410,32579,31410 32588,31411,32619,31411 32553,31411,32575,31411 32625,31411,32633,31412 32552,31412,32571,31412 32588,31412,32616,31412 32592,31413,32615,31413 32551,31413,32572,31413 32563,31414,32563,31414 32572,31414,32572,31414 32590,31414,32590,31414 32567,31414,32567,31414 32592,31414,32606,31414 32625,31413,32634,31415 32551,31414,32561,31415 32590,31415,32605,31415 32566,31415,32566,31415 32552,31416,32562,31416 32625,31416,32633,31416 32588,31416,32600,31416 32624,31417,32632,31417 32553,31417,32561,31417 32589,31417,32600,31417 32541,31418,32542,31418 32623,31418,32623,31418 32588,31418,32599,31418 32572,31418,32577,31418 32551,31418,32561,31418 32625,31418,32632,31419 32571,31419,32580,31419 32582,31419,32582,31419 32550,31419,32561,31419 32569,31419,32569,31419 32540,31419,32543,31420 32589,31419,32599,31420 32614,31420,32614,31420 32624,31420,32633,31420 32571,31420,32583,31420 32548,31420,32561,31420 32621,31420,32621,31420 32606,31420,32607,31421 32547,31421,32560,31421 32568,31421,32582,31421 32611,31421,32613,31421 32624,31421,32634,31421 32541,31421,32543,31421 32621,31422,32634,31422 32540,31422,32543,31422 32606,31422,32613,31422 32567,31422,32583,31422 32546,31422,32561,31422 32615,31422,32615,31422 32589,31421,32598,31423 32540,31423,32560,31423 32565,31423,32584,31423 32605,31423,32634,31423 32540,31424,32573,31424 32605,31424,32632,31424 32704,31424,32705,31424 32576,31424,32583,31424 32589,31424,32599,31424 32588,31425,32598,31425 32702,31425,32702,31425 32706,31425,32706,31425 32605,31425,32631,31425 32541,31425,32572,31425 32578,31425,32583,31426 32707,31426,32707,31426 32542,31426,32571,31426 32700,31426,32701,31426 32589,31426,32598,31427 32699,31427,32699,31427 32543,31427,32571,31427 32577,31427,32583,31427 32604,31426,32631,31428 32708,31428,32710,31428 32543,31428,32549,31428 32599,31428,32599,31428 32698,31428,32698,31429 32552,31428,32566,31429 32589,31428,32596,31429 32710,31429,32712,31429 32695,31430,32697,31430 32590,31430,32596,31430 32573,31430,32573,31430 32577,31428,32582,31431 32553,31430,32568,31431 32546,31431,32547,31431 32693,31431,32694,31431 32714,31431,32715,31431 32604,31429,32632,31432 32590,31431,32597,31432 32545,31432,32568,31432 32691,31432,32692,31432 32577,31432,32583,31433 32604,31433,32633,31433 32544,31433,32568,31433 32690,31433,32690,31434 32618,31434,32634,31434 32541,31434,32568,31434 32718,31434,32719,31434 32590,31433,32598,31435 32604,31434,32614,31435 32538,31435,32566,31435 32720,31435,32720,31435 32623,31435,32639,31435 32578,31434,32583,31436 32629,31436,32633,31436 32605,31436,32612,31436 32592,31436,32598,31436 32603,31436,32603,31436 32538,31436,32564,31437 32605,31437,32605,31437 32592,31437,32599,31437 32737,31437,32738,31437 32721,31437,32724,31437 32732,31437,32732,31437 32608,31437,32608,31437 32632,31437,32632,31438 32693,31437,32693,31438 32577,31437,32583,31438 32746,31438,32746,31438 32538,31438,32559,31438 32734,31438,32735,31438 32593,31438,32599,31438 32713,31438,32725,31439 32592,31439,32599,31439 32577,31439,32582,31439 32692,31439,32693,31439 32537,31439,32559,31440 32631,31439,32634,31440 32639,31440,32640,31440 32594,31440,32598,31440 32711,31440,32727,31440 32749,31440,32749,31440 32686,31440,32689,31440 32572,31440,32583,31440 32692,31440,32692,31440 32688,31441,32692,31441 32711,31441,32729,31441 32745,31441,32749,31441 32538,31441,32559,31441 32685,31441,32686,31441 32572,31441,32584,31441 32593,31441,32599,31441 32632,31441,32635,31442 32593,31442,32601,31442 32710,31442,32730,31442 32684,31442,32685,31442 32539,31442,32559,31442 32744,31442,32750,31442 32568,31442,32584,31442 32683,31443,32684,31443 32743,31443,32755,31443 32631,31443,32635,31443 32710,31443,32732,31443 32539,31443,32542,31443 32637,31443,32638,31443 32761,31443,32762,31443 32594,31443,32601,31444 32547,31443,32584,31444 32681,31444,32683,31444 32760,31444,32763,31444 32742,31444,32756,31444 32710,31444,32733,31444 32610,31444,32617,31444 32625,31444,32636,31445 32538,31444,32542,31445 32552,31445,32585,31445 32680,31445,32681,31445 32758,31445,32764,31445 32609,31445,32622,31445 32740,31445,32756,31445 32710,31445,32734,31445 32595,31445,32601,31445 32740,31446,32765,31446 32554,31446,32584,31446 32537,31446,32542,31446 32680,31446,32680,31446 32609,31446,32635,31446 32711,31446,32734,31446 32595,31446,32605,31446 32595,31447,32636,31447 32679,31447,32680,31447 32555,31447,32584,31447 32536,31447,32541,31447 32737,31447,32766,31447 32713,31447,32735,31447 32529,31447,32531,31447 32535,31448,32541,31448 32678,31448,32679,31448 32555,31448,32585,31448 32715,31448,32767,31448 32528,31448,32532,31448 32595,31448,32637,31448 32564,31449,32585,31449 32716,31449,32767,31449 32595,31449,32638,31449 32535,31449,32540,31449 32527,31449,32532,31449 32598,31450,32642,31450 32693,31450,32697,31450 32571,31450,32585,31450 32569,31450,32569,31450 32678,31449,32678,31451 32717,31450,32768,31451 32598,31451,32643,31451 32580,31451,32585,31451 32703,31451,32706,31451 32692,31451,32699,31451 32571,31451,32571,31451 32526,31450,32540,31452 32717,31452,32750,31452 32676,31452,32678,31452 32755,31452,32768,31452 32600,31452,32622,31452 32629,31452,32643,31452 32691,31452,32707,31453 32718,31453,32749,31453 32630,31453,32634,31453 32640,31453,32642,31453 32527,31453,32540,31453 32756,31453,32767,31453 32602,31453,32622,31453 32673,31453,32676,31453 32581,31452,32585,31454 32631,31454,32633,31454 32717,31454,32749,31454 32756,31454,32766,31454 32602,31454,32602,31454 32530,31454,32539,31454 32691,31454,32708,31454 32604,31454,32624,31455 32672,31454,32674,31455 32578,31455,32585,31455 32564,31455,32565,31455 32556,31455,32562,31455 32567,31455,32574,31455 32718,31455,32747,31455 32530,31455,32538,31455 32757,31455,32767,31456 32690,31455,32708,31456 32603,31456,32623,31456 32556,31456,32584,31456 32531,31456,32538,31456 32719,31456,32747,31456 32598,31456,32599,31456 32672,31456,32673,31456 32689,31457,32708,31457 32597,31457,32621,31457 32673,31457,32674,31457 32555,31457,32584,31457 32757,31457,32766,31457 32531,31457,32537,31458 32758,31458,32766,31458 32597,31458,32619,31458 32571,31458,32584,31458 32718,31457,32747,31459 32555,31458,32569,31459 32531,31459,32535,31459 32572,31459,32583,31459 32592,31459,32619,31459 32686,31458,32708,31460 32758,31459,32767,31460 32530,31460,32535,31460 32591,31460,32620,31460 32578,31460,32582,31460 32717,31460,32732,31460 32735,31460,32747,31460 32552,31460,32566,31461 32735,31461,32746,31461 32529,31461,32535,31461 32685,31461,32709,31461 32717,31461,32731,31461 32758,31461,32768,31462 32591,31461,32619,31462 32736,31462,32746,31462 32527,31462,32533,31462 32682,31462,32709,31462 32715,31462,32731,31462 32552,31462,32567,31462 32759,31463,32768,31463 32526,31463,32533,31463 32736,31463,32747,31463 32582,31463,32583,31463 32715,31463,32726,31464 32604,31463,32619,31464 32548,31463,32567,31464 32759,31464,32769,31464 32524,31464,32533,31464 32736,31464,32748,31464 32591,31463,32601,31465 32683,31463,32709,31465 32580,31464,32586,31465 32524,31465,32530,31465 32737,31465,32748,31465 32605,31465,32618,31465 32715,31465,32724,31465 32544,31465,32568,31466 32759,31465,32770,31466 32524,31466,32529,31466 32715,31466,32723,31466 32609,31466,32618,31466 32684,31466,32709,31466 32576,31466,32601,31467 32737,31466,32749,31467 32716,31467,32722,31467 32683,31467,32709,31467 32615,31467,32619,31467 32557,31467,32568,31468 32541,31467,32554,31468 32758,31467,32770,31468 32717,31468,32721,31468 32574,31468,32600,31468 32615,31468,32620,31468 32681,31468,32708,31468 32738,31468,32750,31468 32680,31469,32681,31469 32692,31469,32707,31469 32616,31469,32620,31469 32541,31469,32547,31469 32758,31469,32769,31469 32559,31469,32569,31470 32739,31469,32751,31470 32574,31469,32595,31470 32693,31470,32704,31470 32617,31470,32620,31470 32757,31470,32770,31470 32537,31470,32547,31470 32679,31470,32680,31471 32739,31471,32753,31471 32574,31471,32594,31471 32559,31471,32570,31471 32694,31471,32701,31471 32726,31471,32730,31471 32755,31471,32770,31471 32618,31471,32619,31471 32524,31467,32527,31472 32537,31471,32545,31472 32680,31472,32685,31472 32695,31472,32697,31472 32722,31472,32731,31472 32560,31472,32571,31472 32699,31472,32699,31472 32574,31472,32592,31472 32740,31472,32770,31473 32712,31473,32714,31473 32560,31473,32591,31473 32685,31473,32686,31473 32722,31473,32732,31473 32522,31473,32545,31473 32711,31474,32716,31474 32686,31474,32687,31474 32586,31474,32590,31474 32560,31474,32583,31474 32741,31474,32770,31475 32719,31474,32734,31475 32521,31474,32542,31475 32560,31475,32579,31475 32588,31475,32589,31475 32687,31475,32687,31475 32711,31475,32717,31475 32520,31476,32543,31476 32711,31476,32735,31476 32562,31476,32578,31476 32741,31476,32766,31476 32520,31477,32549,31477 32709,31477,32735,31477 32742,31477,32766,31477 32562,31477,32577,31477 32521,31478,32576,31478 32707,31478,32736,31478 32743,31478,32760,31479 32706,31479,32736,31479 32521,31479,32575,31479 32705,31480,32735,31480 32521,31480,32574,31481 32712,31481,32713,31481 32716,31481,32735,31481 32704,31481,32705,31481 32708,31481,32709,31481 32742,31480,32759,31482 32698,31482,32703,31482 32691,31482,32692,31482 32522,31482,32573,31482 32717,31482,32736,31483 32692,31483,32694,31483 32523,31483,32571,31483 32698,31483,32699,31483 32693,31484,32698,31484 32523,31484,32570,31484 32742,31483,32758,31485 32718,31484,32736,31485 32523,31485,32560,31485 32563,31485,32569,31485 32741,31486,32756,31486 32564,31486,32567,31486 32714,31486,32735,31486 32522,31486,32560,31487 32565,31487,32566,31487 32718,31487,32735,31487 32740,31487,32756,31487 32739,31488,32756,31488 32522,31488,32559,31488 32718,31488,32734,31488 32713,31487,32713,31489 32738,31489,32749,31489 32719,31489,32732,31489 32546,31489,32558,31489 32522,31489,32541,31490 32752,31490,32752,31490 32551,31490,32557,31490 32719,31490,32731,31490 32737,31490,32749,31490 32714,31490,32714,31491 32737,31491,32748,31491 32523,31491,32543,31491 32552,31491,32553,31491 32720,31491,32728,31491 32722,31492,32722,31492 32724,31492,32726,31492 32524,31492,32544,31492 32737,31492,32739,31492 32743,31492,32747,31493 32737,31493,32738,31493 32713,31492,32713,31494 32524,31493,32545,31494 32743,31494,32746,31494 32738,31494,32738,31494 32745,31495,32745,31495 32714,31495,32714,31495 32525,31495,32544,31495 32526,31496,32528,31496 32534,31496,32540,31496 32542,31496,32543,31496 32535,31497,32539,31497 32714,31497,32714,31497 32743,31498,32743,31498 32742,31499,32742,31499 32713,31498,32713,31500 32718,31501,32719,31501 32721,31501,32721,31501 32714,31501,32714,31501 32738,31501,32738,31501 32722,31502,32722,31502 32737,31502,32737,31502 32724,31503,32724,31503 32736,31503,32736,31503 32729,31504,32729,31504 32735,31504,32735,31504 32734,31508,32734,31508", + }, + [462] = { -- Vandura (184 tiles, 40 rects) + name = "Vandura", + mainArea = 17, + bbox = { x1 = 31903, y1 = 32576, x2 = 32467, y2 = 32926 }, + rects = "32380,32576,32380,32576 32387,32578,32387,32578 32385,32578,32385,32578 32387,32580,32387,32580 32384,32580,32384,32580 32390,32582,32390,32582 31940,32610,31941,32610 31939,32611,31942,32613 32009,32613,32010,32613 31940,32614,31943,32614 32008,32614,32011,32615 31941,32615,31944,32615 32009,32616,32010,32616 31940,32616,31944,32617 31941,32618,31943,32618 32026,32635,32027,32635 32025,32636,32028,32636 32024,32637,32028,32638 32025,32639,32028,32639 32026,32640,32027,32640 32156,32742,32157,32742 32458,32743,32459,32743 32153,32743,32158,32743 32152,32744,32158,32745 32457,32744,32460,32745 32457,32746,32466,32746 32153,32746,32157,32746 32458,32747,32467,32747 32462,32748,32467,32748 32463,32749,32466,32749 32348,32821,32348,32823 31905,32825,31906,32825 31904,32826,31907,32826 31903,32827,31908,32828 31904,32829,31908,32829 31906,32830,31907,32830 32025,32920,32026,32920 32095,32923,32096,32923 32094,32924,32097,32925 32095,32926,32096,32926", + }, + [463] = { -- Krailos (2529 tiles, 213 rects) + name = "Krailos", + mainArea = 16, + bbox = { x1 = 33599, y1 = 31751, x2 = 33730, y2 = 31801 }, + rects = "33714,31751,33716,31751 33723,31751,33726,31751 33714,31752,33718,31752 33723,31752,33730,31752 33723,31753,33729,31753 33714,31753,33721,31753 33713,31754,33729,31754 33715,31755,33726,31755 33717,31756,33725,31756 33711,31757,33712,31757 33717,31757,33721,31757 33711,31758,33713,31758 33716,31758,33720,31758 33711,31759,33720,31759 33710,31760,33719,31760 33673,31760,33676,31760 33709,31761,33716,31761 33671,31761,33673,31761 33675,31761,33676,31761 33689,31762,33690,31762 33661,31762,33663,31762 33670,31762,33675,31762 33699,31762,33701,31762 33632,31762,33633,31762 33710,31762,33713,31762 33660,31763,33664,31763 33698,31763,33699,31763 33632,31763,33634,31763 33669,31763,33675,31763 33709,31763,33712,31763 33689,31763,33691,31763 33701,31763,33701,31763 33708,31764,33712,31764 33660,31764,33663,31764 33668,31764,33673,31764 33703,31764,33704,31764 33688,31764,33691,31764 33697,31764,33701,31764 33632,31764,33635,31765 33644,31764,33645,31765 33697,31765,33700,31765 33667,31765,33673,31765 33703,31765,33711,31765 33660,31765,33662,31765 33618,31765,33620,31765 33687,31765,33691,31766 33659,31766,33662,31766 33676,31766,33678,31766 33623,31766,33626,31766 33696,31766,33700,31766 33665,31766,33673,31766 33644,31766,33646,31766 33703,31766,33710,31766 33633,31766,33636,31766 33617,31766,33620,31766 33622,31767,33626,31767 33695,31767,33700,31767 33687,31767,33692,31767 33633,31767,33637,31767 33645,31767,33647,31767 33616,31767,33620,31767 33676,31767,33679,31767 33659,31767,33672,31767 33703,31767,33707,31768 33645,31768,33648,31768 33633,31768,33638,31768 33676,31768,33680,31768 33658,31768,33671,31768 33616,31768,33626,31768 33687,31768,33699,31769 33676,31769,33681,31769 33614,31769,33625,31769 33657,31769,33669,31769 33633,31769,33639,31769 33645,31769,33649,31769 33657,31770,33668,31770 33686,31770,33698,31770 33614,31770,33624,31770 33634,31770,33640,31770 33676,31770,33682,31770 33704,31769,33707,31771 33646,31770,33650,31771 33655,31771,33667,31771 33677,31771,33683,31771 33611,31771,33624,31771 33685,31771,33697,31771 33635,31771,33641,31772 33677,31772,33695,31772 33645,31772,33650,31772 33611,31772,33621,31772 33703,31772,33707,31772 33654,31772,33666,31772 33654,31773,33665,31773 33715,31773,33715,31773 33676,31773,33693,31773 33636,31773,33652,31773 33611,31773,33620,31773 33702,31773,33708,31773 33701,31774,33709,31774 33675,31774,33692,31774 33636,31774,33665,31774 33713,31774,33715,31774 33611,31774,33619,31775 33675,31775,33691,31775 33700,31775,33709,31775 33712,31775,33714,31775 33633,31775,33665,31775 33675,31776,33692,31776 33610,31776,33618,31776 33631,31776,33667,31776 33698,31776,33714,31776 33626,31777,33668,31777 33697,31777,33713,31777 33607,31777,33619,31777 33675,31777,33693,31777 33723,31777,33724,31777 33624,31778,33673,31778 33676,31778,33693,31778 33721,31778,33724,31778 33696,31778,33708,31778 33605,31778,33621,31778 33710,31778,33713,31778 33711,31779,33713,31779 33717,31779,33723,31779 33604,31779,33707,31779 33603,31780,33706,31780 33711,31780,33721,31780 33599,31781,33600,31781 33606,31781,33606,31781 33713,31781,33715,31781 33611,31781,33704,31781 33602,31781,33604,31781 33718,31781,33720,31782 33610,31782,33700,31782 33703,31782,33703,31782 33599,31782,33604,31782 33609,31783,33699,31783 33599,31783,33603,31783 33606,31783,33606,31783 33718,31783,33719,31783 33608,31784,33699,31784 33719,31784,33719,31784 33600,31784,33603,31784 33601,31785,33604,31785 33610,31785,33698,31785 33646,31786,33696,31786 33610,31786,33619,31786 33621,31786,33643,31786 33602,31786,33605,31786 33681,31787,33694,31787 33621,31787,33639,31787 33645,31787,33645,31787 33605,31787,33616,31787 33652,31787,33679,31787 33647,31787,33647,31787 33652,31788,33677,31788 33680,31788,33693,31788 33605,31788,33613,31788 33622,31788,33639,31788 33624,31789,33639,31789 33608,31789,33612,31789 33658,31789,33677,31789 33679,31789,33693,31789 33625,31790,33633,31790 33638,31790,33638,31790 33658,31790,33675,31790 33636,31790,33636,31790 33679,31790,33692,31791 33659,31791,33661,31791 33654,31791,33657,31791 33664,31791,33673,31791 33626,31791,33634,31791 33662,31792,33663,31792 33653,31792,33657,31792 33626,31792,33638,31792 33666,31792,33672,31792 33679,31792,33691,31792 33667,31793,33671,31793 33662,31793,33665,31793 33644,31793,33646,31793 33630,31793,33640,31793 33626,31793,33627,31793 33685,31793,33691,31793 33652,31793,33659,31793 33683,31794,33690,31794 33669,31794,33670,31794 33630,31794,33641,31794 33644,31794,33647,31794 33650,31794,33666,31794 33671,31795,33671,31795 33682,31795,33689,31795 33679,31795,33680,31795 33629,31795,33646,31795 33649,31795,33668,31795 33630,31796,33632,31796 33679,31796,33686,31796 33635,31796,33637,31796 33639,31796,33646,31796 33648,31796,33652,31796 33656,31796,33671,31796 33679,31797,33684,31797 33634,31797,33635,31797 33640,31797,33651,31797 33630,31797,33631,31797 33657,31797,33673,31797 33644,31798,33649,31798 33660,31798,33675,31798 33680,31798,33683,31799 33666,31799,33678,31799 33646,31799,33647,31799 33681,31800,33681,31800 33677,31800,33679,31800 33679,31801,33681,31801", + }, + [475] = { -- Oskayaat (9308 tiles, 297 rects) + name = "Oskayaat", + mainArea = 19, + bbox = { x1 = 32937, y1 = 32889, x2 = 33117, y2 = 32999 }, + rects = "33014,32889,33019,32889 33013,32890,33024,32890 33012,32891,33027,32891 33034,32892,33036,32892 33011,32892,33028,32892 33034,32893,33037,32893 33033,32894,33037,32894 33011,32893,33029,32895 33033,32895,33038,32896 33011,32896,33028,32896 32996,32896,32998,32896 32995,32897,32999,32897 33034,32897,33040,32897 33010,32897,33028,32897 32994,32898,33000,32898 33008,32898,33028,32898 33034,32898,33044,32898 32993,32899,33002,32899 33007,32899,33028,32899 33035,32899,33044,32899 32992,32900,33029,32900 33037,32900,33043,32900 32991,32901,33030,32901 33038,32901,33042,32901 32991,32902,33031,32902 32990,32903,33032,32903 33048,32903,33049,32903 33047,32904,33049,32904 32990,32904,33034,32904 32990,32905,33049,32905 32989,32906,33050,32906 32989,32907,33051,32907 32989,32908,33052,32908 32988,32909,33054,32909 32988,32910,33055,32910 32977,32911,32979,32911 32987,32911,33056,32911 32986,32912,33056,32912 32976,32912,32979,32912 33061,32913,33064,32913 32975,32913,32978,32913 32986,32913,33057,32913 33081,32913,33083,32913 32937,32914,32938,32914 33074,32914,33075,32914 32974,32914,32977,32914 32985,32914,33065,32914 33080,32914,33084,32914 33080,32915,33087,32915 32973,32915,32976,32915 33072,32915,33076,32915 32985,32915,33066,32915 32937,32915,32939,32915 32937,32916,32940,32916 32972,32916,32976,32916 33081,32916,33087,32916 32984,32916,33077,32916 32970,32917,32977,32917 33082,32917,33086,32917 32983,32917,33077,32917 32938,32917,32941,32917 32968,32918,33076,32918 33083,32918,33085,32918 32938,32918,32942,32918 32967,32919,33076,32919 32939,32919,32945,32919 32939,32920,32947,32920 32966,32920,33077,32920 32965,32921,33077,32921 32939,32921,32950,32921 33085,32922,33088,32922 32963,32922,33077,32922 32939,32922,32954,32922 33094,32923,33096,32923 33083,32923,33088,32923 32961,32923,33077,32923 32939,32923,32956,32923 33082,32924,33088,32924 32939,32924,33076,32924 33093,32924,33097,32924 32940,32925,33075,32925 33093,32925,33098,32925 33082,32925,33087,32925 33092,32926,33099,32926 33081,32926,33086,32927 33091,32927,33100,32927 33103,32927,33105,32927 33090,32928,33106,32928 33080,32928,33085,32928 33080,32929,33084,32929 33089,32929,33107,32929 32940,32926,33073,32930 33079,32930,33083,32930 33088,32930,33108,32930 33079,32931,33082,32931 33088,32931,33109,32931 33087,32932,33110,32932 33079,32932,33081,32932 32939,32931,33073,32933 33086,32933,33111,32933 33116,32933,33117,32933 33085,32934,33112,32934 33115,32934,33117,32934 32940,32934,33072,32935 33117,32935,33117,32935 33084,32935,33115,32935 32941,32936,33071,32936 33083,32936,33117,32936 32942,32937,33070,32937 33083,32937,33116,32937 32945,32938,33069,32938 33082,32938,33115,32939 32946,32939,33068,32939 33081,32940,33114,32940 32947,32940,33067,32940 32947,32941,33066,32941 33081,32941,33113,32942 32947,32942,33065,32942 33080,32943,33112,32943 32946,32943,33064,32943 33079,32944,33111,32944 32945,32944,33064,32944 32940,32944,32941,32944 33072,32944,33074,32944 32944,32945,33064,32945 32939,32945,32941,32945 33071,32945,33110,32945 33069,32946,33110,32946 32939,32946,33064,32947 33067,32947,33079,32947 33083,32947,33109,32947 33084,32948,33109,32948 32939,32948,33073,32948 33084,32949,33108,32949 32940,32949,33072,32949 33084,32950,33107,32950 32941,32950,33071,32950 33083,32951,33105,32951 32943,32951,33071,32951 33082,32952,33103,32952 32944,32952,33070,32953 32940,32953,32941,32953 33081,32953,33101,32953 32940,32954,32984,32954 32989,32954,33069,32954 33080,32954,33100,32954 33002,32955,33068,32955 33079,32955,33098,32955 32990,32955,32999,32955 32940,32955,32981,32955 33079,32956,33085,32956 32991,32956,32998,32956 32942,32956,32979,32956 33003,32956,33068,32956 33092,32956,33096,32956 33004,32957,33067,32957 32944,32957,32978,32957 33081,32957,33083,32957 33074,32957,33075,32957 32945,32958,32978,32958 33047,32958,33066,32958 33005,32958,33045,32958 33073,32958,33075,32958 33046,32959,33065,32959 33072,32959,33075,32959 33005,32959,33043,32959 32950,32959,32977,32959 32952,32960,32977,32960 32997,32960,32999,32960 33006,32960,33042,32960 33044,32960,33064,32960 33071,32960,33075,32961 32952,32961,32976,32961 32981,32961,32991,32961 32996,32961,33000,32961 33006,32961,33041,32962 33043,32961,33063,32962 32980,32962,32991,32962 33071,32962,33074,32962 32961,32962,32975,32962 32995,32962,33001,32962 32951,32962,32955,32962 33069,32963,33070,32963 32949,32963,32954,32963 33072,32963,33073,32963 33007,32963,33040,32963 33042,32963,33062,32963 32980,32963,32992,32963 32994,32963,33002,32964 32962,32963,32975,32964 33041,32964,33060,32964 32949,32964,32953,32964 33010,32964,33039,32964 32980,32964,32991,32964 33068,32964,33071,32964 33012,32965,33039,32965 33067,32965,33071,32965 32982,32965,32991,32965 33041,32965,33058,32965 32995,32965,33003,32965 32962,32965,32974,32966 33013,32966,33038,32966 33040,32966,33056,32966 32997,32966,33005,32966 33066,32966,33071,32966 32998,32967,33005,32967 33065,32967,33070,32967 33039,32967,33053,32967 33014,32967,33037,32968 32963,32967,32974,32968 33039,32968,33051,32968 33065,32968,33069,32968 32998,32968,33004,32968 33038,32969,33049,32969 32999,32969,33003,32969 33066,32969,33068,32969 32964,32969,32975,32969 33014,32969,33036,32970 32966,32970,32975,32970 33000,32970,33001,32970 33038,32970,33048,32970 32969,32971,32976,32971 33061,32971,33064,32971 33037,32971,33045,32971 33015,32971,33035,32972 33059,32972,33064,32972 32971,32972,32976,32972 33037,32972,33044,32972 33014,32973,33033,32973 33036,32973,33043,32973 33057,32973,33064,32973 32972,32973,32977,32973 32973,32974,32978,32974 33055,32974,33063,32974 33035,32974,33041,32974 33013,32974,33032,32975 33055,32975,33061,32975 32976,32975,32978,32975 33035,32975,33039,32975 33054,32976,33060,32976 33035,32976,33038,32976 33048,32976,33051,32976 33012,32976,33031,32977 32980,32977,32983,32977 33034,32977,33037,32977 33054,32977,33058,32977 33046,32977,33051,32978 33034,32978,33036,32978 33011,32978,33030,32978 32978,32978,32985,32979 33010,32979,33030,32979 33044,32979,33051,32979 33034,32979,33035,32979 32971,32980,32971,32980 32978,32980,32986,32980 33043,32980,33050,32980 33009,32980,33028,32981 32974,32981,32975,32981 32988,32981,32989,32981 33041,32981,33048,32981 32979,32981,32986,32981 32970,32981,32972,32982 32988,32982,32991,32982 32974,32982,32976,32982 32980,32982,32986,32982 33040,32982,33046,32982 33009,32982,33027,32983 32983,32983,32986,32983 33040,32983,33044,32983 32970,32983,32976,32983 32974,32984,32976,32984 33041,32984,33043,32984 33008,32984,33027,32984 32988,32983,32992,32985 32995,32985,32998,32985 33008,32985,33026,32985 32990,32986,32992,32986 32995,32986,32999,32986 33007,32986,33025,32986 32970,32984,32972,32987 32995,32987,33000,32987 33007,32987,33015,32987 33020,32987,33023,32987 32997,32988,33000,32988 33008,32988,33011,32988 32998,32989,32999,32989 33005,32991,33007,32991 33004,32992,33007,32992 32993,32993,32997,32993 33002,32993,33008,32993 32993,32994,32998,32994 33001,32994,33008,32994 32994,32995,33007,32995 32995,32996,33006,32996 32996,32997,33005,32997 32998,32998,33004,32998 32999,32999,33003,32999", + }, + [478] = { -- Thais Peninsula (1192 tiles, 44 rects) + name = "Thais Peninsula", + mainArea = 24, + bbox = { x1 = 32452, y1 = 32277, x2 = 32521, y2 = 32310 }, + rects = "32473,32277,32477,32277 32485,32277,32486,32278 32490,32278,32493,32278 32472,32278,32482,32278 32472,32279,32493,32279 32510,32280,32515,32280 32472,32280,32494,32280 32472,32281,32515,32282 32471,32283,32514,32283 32468,32284,32514,32284 32467,32285,32513,32285 32514,32287,32517,32287 32466,32286,32512,32288 32514,32288,32518,32288 32462,32289,32519,32289 32453,32290,32520,32290 32452,32291,32521,32291 32500,32292,32521,32292 32484,32292,32498,32292 32452,32292,32482,32293 32484,32293,32521,32293 32491,32294,32521,32294 32452,32294,32455,32294 32457,32294,32468,32294 32458,32295,32464,32295 32452,32295,32454,32295 32515,32295,32521,32295 32491,32295,32513,32295 32484,32294,32489,32296 32517,32296,32521,32296 32474,32294,32478,32297 32485,32297,32489,32297 32491,32296,32514,32298 32493,32299,32516,32299 32494,32300,32517,32300 32496,32301,32518,32301 32497,32302,32518,32302 32498,32303,32519,32303 32502,32304,32519,32304 32505,32305,32519,32305 32507,32306,32520,32306 32509,32307,32520,32307 32510,32308,32520,32309 32515,32310,32519,32310", + }, + [496] = { -- Podzilla Maw (2529 tiles, 126 rects) + name = "Podzilla Maw", + mainArea = 20, + bbox = { x1 = 33793, y1 = 31969, x2 = 33865, y2 = 32030 }, + rects = "33812,31969,33812,31969 33817,31970,33818,31970 33840,31970,33841,31970 33811,31970,33813,31970 33816,31971,33822,31971 33803,31971,33803,31971 33838,31971,33840,31971 33812,31971,33814,31971 33824,31971,33824,31971 33813,31972,33827,31972 33830,31972,33831,31972 33802,31972,33805,31972 33836,31972,33839,31972 33814,31973,33841,31973 33801,31973,33808,31973 33803,31974,33810,31974 33813,31974,33841,31974 33814,31975,33840,31975 33799,31975,33800,31975 33802,31975,33811,31975 33799,31976,33811,31976 33813,31976,33839,31976 33849,31976,33849,31976 33797,31977,33797,31977 33800,31977,33840,31977 33848,31977,33849,31977 33846,31978,33848,31978 33796,31978,33798,31978 33800,31978,33841,31978 33845,31979,33849,31979 33797,31979,33841,31979 33797,31980,33848,31980 33836,31981,33849,31981 33797,31981,33833,31981 33796,31982,33832,31982 33836,31982,33850,31983 33797,31983,33831,31983 33798,31984,33830,31984 33836,31984,33849,31984 33836,31985,33848,31985 33799,31985,33827,31985 33797,31986,33797,31986 33835,31986,33848,31986 33801,31986,33828,31986 33800,31987,33829,31987 33796,31987,33798,31987 33836,31987,33848,31987 33836,31988,33846,31988 33797,31988,33830,31988 33798,31989,33830,31989 33837,31989,33845,31989 33797,31990,33831,31990 33838,31990,33845,31990 33840,31991,33845,31991 33797,31991,33832,31991 33796,31992,33832,31992 33840,31992,33843,31992 33795,31993,33826,31993 33829,31993,33831,31993 33829,31994,33832,31994 33796,31994,33825,31994 33795,31995,33825,31995 33831,31995,33832,31995 33795,31996,33824,31996 33794,31997,33824,31997 33793,31998,33824,31998 33794,31999,33825,31999 33794,32000,33828,32000 33796,32001,33828,32001 33834,32002,33835,32002 33798,32002,33827,32002 33841,32002,33841,32002 33844,32003,33846,32003 33833,32003,33837,32003 33839,32003,33842,32003 33797,32003,33824,32003 33796,32004,33823,32004 33794,32004,33794,32004 33833,32004,33846,32005 33793,32005,33822,32005 33794,32006,33822,32006 33833,32006,33845,32006 33832,32007,33839,32007 33842,32007,33844,32007 33795,32007,33823,32007 33796,32008,33825,32008 33831,32008,33837,32008 33795,32009,33838,32009 33848,32009,33865,32009 33794,32010,33838,32010 33847,32010,33865,32010 33846,32011,33865,32011 33793,32011,33840,32012 33848,32012,33865,32012 33849,32013,33865,32013 33794,32013,33840,32014 33795,32015,33839,32015 33846,32015,33847,32015 33845,32016,33848,32016 33796,32016,33838,32016 33843,32017,33848,32017 33798,32017,33838,32017 33842,32018,33850,32018 33800,32018,33837,32018 33841,32019,33851,32019 33801,32019,33838,32019 33799,32020,33839,32020 33841,32020,33848,32020 33850,32020,33850,32020 33800,32021,33847,32021 33799,32022,33846,32022 33799,32023,33844,32023 33799,32024,33843,32024 33798,32025,33800,32025 33803,32025,33841,32025 33804,32026,33841,32026 33807,32027,33819,32027 33823,32027,33842,32027 33810,32028,33816,32028 33825,32028,33843,32028 33809,32029,33813,32029 33827,32029,33844,32029 33832,32030,33833,32030 33810,32030,33811,32030 33839,32030,33840,32030 33843,32030,33845,32030", + }, + [498] = { -- Candia (6560 tiles, 244 rects) + name = "Candia", + mainArea = 9, + bbox = { x1 = 33323, y1 = 32093, x2 = 33456, y2 = 32189 }, + rects = "33377,32093,33379,32093 33376,32094,33380,32094 33446,32094,33449,32094 33445,32095,33450,32095 33376,32095,33382,32095 33444,32096,33451,32096 33377,32096,33384,32096 33387,32097,33389,32097 33378,32097,33384,32097 33386,32098,33391,32098 33380,32098,33384,32098 33386,32099,33393,32099 33381,32099,33383,32099 33386,32100,33396,32100 33443,32097,33452,32101 33388,32101,33397,32101 33415,32102,33420,32102 33390,32102,33398,32102 33441,32102,33452,32103 33390,32103,33400,32103 33412,32103,33420,32103 33441,32104,33453,32104 33411,32104,33419,32104 33391,32104,33400,32104 33409,32105,33417,32105 33433,32105,33435,32105 33441,32105,33454,32105 33443,32106,33455,32106 33431,32106,33435,32106 33408,32106,33417,32106 33392,32105,33401,32107 33407,32107,33416,32107 33443,32107,33456,32107 33430,32107,33434,32107 33428,32108,33434,32108 33391,32108,33401,32108 33406,32108,33415,32108 33442,32108,33456,32108 33391,32109,33400,32109 33427,32109,33433,32109 33441,32109,33456,32109 33405,32109,33416,32110 33391,32110,33399,32110 33426,32110,33456,32110 33390,32111,33400,32111 33443,32111,33455,32111 33405,32111,33417,32111 33425,32111,33433,32111 33424,32112,33433,32112 33404,32112,33417,32112 33390,32112,33402,32112 33444,32112,33455,32112 33423,32113,33432,32113 33446,32113,33454,32113 33389,32113,33417,32113 33369,32114,33372,32114 33348,32114,33351,32114 33447,32114,33452,32114 33422,32114,33433,32114 33386,32114,33417,32115 33447,32115,33450,32115 33421,32115,33434,32115 33359,32115,33362,32115 33367,32115,33374,32115 33346,32115,33352,32115 33344,32116,33354,32116 33448,32116,33449,32116 33385,32116,33435,32116 33359,32116,33378,32116 33383,32117,33438,32117 33343,32117,33381,32117 33331,32117,33334,32117 33330,32118,33335,32118 33342,32118,33440,32118 33330,32119,33338,32119 33361,32119,33442,32119 33341,32119,33353,32119 33330,32120,33352,32120 33363,32120,33442,32120 33365,32121,33443,32121 33331,32121,33351,32122 33372,32122,33443,32122 33330,32123,33350,32123 33433,32123,33442,32123 33372,32123,33428,32123 33372,32124,33426,32124 33430,32124,33431,32124 33435,32124,33441,32124 33330,32124,33349,32125 33437,32125,33439,32125 33371,32125,33425,32125 33428,32125,33432,32125 33370,32126,33424,32126 33363,32126,33365,32126 33355,32126,33359,32126 33329,32126,33348,32126 33427,32126,33433,32126 33426,32127,33435,32127 33354,32127,33423,32127 33329,32127,33347,32128 33425,32128,33436,32128 33353,32128,33423,32128 33328,32129,33345,32129 33352,32129,33437,32129 33327,32130,33345,32130 33351,32130,33438,32130 33447,32130,33449,32130 33445,32131,33449,32131 33325,32131,33344,32131 33350,32131,33441,32131 33350,32132,33449,32132 33324,32132,33343,32132 33349,32133,33449,32133 33323,32133,33340,32133 33323,32134,33337,32134 33348,32134,33449,32134 33323,32135,33336,32135 33346,32135,33449,32135 33323,32136,33335,32136 33345,32136,33449,32136 33344,32137,33373,32137 33323,32137,33330,32137 33375,32137,33448,32137 33333,32137,33335,32138 33341,32138,33373,32138 33376,32138,33447,32138 33324,32138,33327,32138 33376,32139,33445,32139 33339,32139,33373,32139 33331,32139,33335,32140 33339,32140,33372,32140 33376,32140,33443,32140 33368,32141,33370,32141 33331,32141,33363,32141 33332,32142,33362,32142 33376,32141,33441,32143 33333,32143,33362,32143 33334,32144,33341,32144 33354,32144,33362,32144 33344,32144,33351,32144 33375,32144,33441,32144 33357,32145,33361,32145 33347,32145,33350,32145 33373,32145,33442,32145 33367,32146,33444,32146 33366,32147,33445,32147 33365,32148,33447,32149 33358,32150,33446,32150 33356,32151,33402,32151 33405,32151,33446,32151 33356,32152,33403,32152 33407,32152,33446,32152 33408,32153,33446,32153 33355,32153,33404,32153 33354,32154,33405,32154 33348,32154,33350,32154 33409,32154,33445,32155 33347,32155,33350,32155 33354,32155,33406,32155 33354,32156,33407,32156 33410,32156,33444,32156 33346,32156,33351,32157 33410,32157,33443,32157 33380,32157,33407,32157 33354,32157,33378,32157 33411,32158,33442,32158 33355,32158,33378,32158 33345,32158,33352,32158 33380,32158,33408,32159 33345,32159,33353,32159 33412,32159,33440,32159 33356,32159,33377,32159 33344,32160,33354,32160 33381,32160,33409,32160 33356,32160,33378,32160 33414,32160,33439,32160 33382,32161,33411,32161 33357,32161,33379,32161 33343,32161,33354,32161 33416,32161,33438,32161 33417,32162,33438,32162 33383,32162,33413,32162 33358,32162,33380,32162 33343,32162,33355,32162 33343,32163,33356,32163 33384,32163,33414,32163 33418,32163,33437,32163 33359,32163,33381,32163 33343,32164,33357,32164 33419,32164,33436,32164 33359,32164,33382,32164 33387,32164,33416,32164 33344,32165,33382,32165 33388,32165,33417,32165 33420,32165,33435,32165 33389,32166,33418,32166 33421,32166,33434,32166 33345,32166,33382,32167 33423,32167,33434,32167 33389,32167,33419,32168 33345,32168,33381,32168 33425,32168,33432,32168 33426,32169,33431,32169 33390,32169,33401,32169 33406,32169,33419,32169 33346,32169,33381,32170 33390,32170,33399,32170 33428,32170,33431,32170 33407,32170,33419,32170 33428,32171,33430,32171 33412,32171,33419,32171 33391,32171,33397,32171 33347,32171,33381,32171 33429,32172,33430,32172 33348,32172,33380,32172 33391,32172,33393,32172 33415,32172,33419,32172 33349,32173,33380,32173 33417,32173,33419,32173 33390,32173,33392,32174 33350,32174,33382,32174 33351,32175,33383,32175 33352,32176,33383,32176 33354,32177,33383,32177 33401,32178,33405,32178 33355,32178,33384,32178 33399,32179,33405,32179 33357,32179,33385,32179 33398,32180,33404,32180 33358,32180,33386,32180 33363,32181,33389,32181 33397,32181,33404,32181 33364,32182,33392,32182 33396,32182,33403,32182 33366,32183,33393,32183 33395,32183,33402,32183 33395,32184,33400,32184 33368,32184,33393,32184 33396,32185,33399,32185 33370,32185,33393,32185 33370,32186,33391,32186 33372,32187,33390,32187 33374,32188,33387,32188 33376,32189,33384,32189", + }, + [504] = { -- Azzilon Castle (6573 tiles, 109 rects) + name = "Azzilon Castle", + mainArea = 7, + bbox = { x1 = 33784, y1 = 32315, x2 = 33883, y2 = 32419 }, + rects = "33836,32315,33839,32315 33834,32316,33841,32316 33832,32317,33851,32317 33803,32318,33808,32318 33830,32318,33853,32318 33829,32319,33855,32319 33801,32319,33810,32319 33827,32320,33858,32320 33801,32320,33815,32320 33825,32321,33858,32321 33800,32321,33817,32321 33823,32322,33866,32322 33799,32322,33821,32322 33798,32323,33866,32323 33797,32324,33867,32324 33795,32325,33866,32325 33794,32326,33866,32326 33792,32327,33868,32327 33791,32328,33869,32328 33791,32329,33870,32329 33790,32330,33874,32330 33788,32331,33874,32331 33788,32332,33875,32333 33789,32334,33875,32334 33790,32335,33874,32335 33791,32336,33874,32336 33792,32337,33872,32337 33793,32338,33871,32338 33794,32339,33869,32339 33794,32340,33868,32340 33794,32341,33869,32341 33793,32342,33869,32342 33792,32343,33870,32343 33791,32344,33871,32344 33790,32345,33873,32345 33790,32346,33876,32346 33791,32347,33878,32347 33792,32348,33880,32348 33793,32349,33882,32349 33795,32350,33883,32350 33796,32351,33883,32351 33797,32352,33883,32352 33798,32353,33882,32353 33798,32354,33881,32354 33797,32355,33881,32355 33797,32356,33879,32356 33796,32357,33878,32357 33795,32358,33877,32358 33794,32359,33876,32359 33793,32360,33874,32360 33792,32361,33873,32361 33791,32362,33872,32362 33791,32363,33871,32364 33790,32365,33870,32365 33789,32366,33870,32366 33789,32367,33871,32367 33788,32368,33871,32368 33787,32369,33870,32369 33786,32370,33870,32370 33786,32371,33869,32371 33787,32372,33869,32372 33788,32373,33869,32373 33788,32374,33868,32374 33789,32375,33868,32376 33789,32377,33867,32377 33788,32378,33867,32378 33787,32379,33867,32379 33786,32380,33867,32380 33785,32381,33866,32382 33784,32383,33864,32383 33784,32384,33861,32384 33785,32385,33858,32385 33786,32386,33856,32386 33786,32387,33855,32387 33788,32388,33855,32388 33795,32389,33854,32389 33789,32389,33791,32389 33805,32390,33854,32390 33797,32390,33802,32390 33806,32391,33853,32391 33798,32391,33801,32391 33807,32392,33853,32392 33809,32393,33853,32393 33810,32394,33814,32394 33819,32394,33853,32394 33812,32395,33813,32395 33820,32395,33854,32395 33822,32396,33855,32396 33825,32397,33855,32397 33826,32398,33856,32398 33827,32399,33861,32400 33828,32401,33861,32401 33829,32402,33862,32402 33830,32403,33864,32403 33830,32404,33865,32404 33831,32405,33865,32405 33832,32406,33865,32406 33832,32407,33839,32407 33842,32407,33864,32407 33834,32408,33835,32408 33843,32408,33864,32408 33845,32409,33864,32409 33846,32410,33865,32410 33847,32411,33865,32414 33848,32415,33865,32415 33849,32416,33864,32416 33851,32417,33862,32417 33851,32418,33859,32418 33852,32419,33857,32419", + }, + [507] = { -- Blue Valley (15460 tiles, 319 rects) + name = "Blue Valley", + mainArea = 11, + bbox = { x1 = 33506, y1 = 31379, x2 = 33689, y2 = 31536 }, + rects = "33573,31379,33573,31379 33572,31380,33575,31380 33593,31380,33596,31380 33587,31381,33596,31381 33570,31381,33576,31381 33550,31382,33551,31382 33579,31382,33581,31382 33586,31382,33600,31382 33571,31382,33577,31383 33585,31383,33602,31383 33579,31383,33582,31383 33549,31383,33551,31383 33619,31384,33621,31384 33549,31384,33550,31384 33572,31384,33603,31384 33618,31385,33622,31385 33573,31385,33604,31385 33617,31386,33623,31386 33571,31386,33607,31386 33613,31387,33623,31387 33565,31387,33608,31387 33564,31388,33609,31388 33612,31388,33623,31388 33558,31389,33622,31390 33541,31390,33541,31390 33557,31391,33623,31391 33542,31391,33543,31391 33540,31392,33544,31392 33553,31392,33623,31392 33553,31393,33624,31393 33541,31393,33545,31393 33521,31393,33521,31393 33542,31394,33545,31394 33551,31394,33625,31394 33522,31394,33524,31394 33551,31395,33626,31395 33522,31395,33522,31395 33543,31395,33547,31395 33545,31396,33626,31396 33533,31396,33533,31396 33522,31396,33523,31396 33543,31397,33628,31397 33532,31397,33532,31397 33545,31398,33630,31398 33532,31398,33534,31398 33531,31399,33536,31399 33545,31399,33634,31399 33530,31400,33536,31400 33540,31400,33634,31400 33531,31401,33634,31401 33533,31402,33636,31403 33532,31404,33636,31404 33532,31405,33635,31405 33524,31405,33525,31405 33531,31406,33635,31406 33523,31406,33526,31406 33530,31407,33635,31407 33523,31407,33527,31407 33642,31408,33644,31408 33521,31408,33636,31408 33521,31409,33638,31409 33642,31409,33646,31410 33520,31410,33638,31410 33521,31411,33638,31411 33642,31411,33647,31411 33522,31412,33647,31412 33523,31413,33647,31413 33523,31414,33645,31415 33515,31415,33515,31415 33524,31416,33646,31416 33516,31416,33517,31416 33524,31417,33648,31417 33521,31417,33521,31417 33517,31417,33517,31418 33519,31418,33521,31418 33524,31418,33649,31419 33520,31419,33522,31419 33520,31420,33654,31420 33519,31421,33654,31421 33520,31422,33655,31422 33522,31423,33658,31423 33520,31424,33658,31424 33520,31425,33666,31425 33518,31426,33667,31426 33512,31427,33512,31427 33517,31427,33667,31427 33516,31428,33667,31428 33512,31428,33513,31428 33670,31428,33673,31428 33510,31429,33673,31429 33511,31430,33673,31430 33512,31431,33672,31431 33511,31432,33672,31432 33513,31433,33670,31433 33516,31434,33671,31434 33517,31435,33673,31435 33517,31436,33675,31436 33515,31437,33675,31437 33513,31438,33675,31438 33514,31439,33672,31439 33515,31440,33671,31440 33682,31441,33682,31441 33513,31441,33670,31441 33512,31442,33670,31442 33682,31442,33683,31442 33509,31442,33509,31442 33682,31443,33685,31443 33510,31443,33669,31444 33683,31444,33685,31444 33511,31445,33669,31445 33513,31446,33672,31446 33513,31447,33673,31447 33512,31448,33675,31448 33511,31449,33675,31449 33511,31450,33676,31450 33511,31451,33677,31451 33512,31452,33679,31452 33514,31453,33679,31454 33518,31455,33679,31455 33518,31456,33680,31456 33508,31456,33508,31456 33506,31457,33507,31457 33520,31457,33680,31457 33519,31458,33683,31458 33506,31458,33508,31458 33519,31459,33684,31459 33507,31459,33508,31459 33518,31460,33685,31460 33516,31461,33687,31461 33514,31462,33683,31462 33688,31462,33689,31462 33514,31463,33680,31463 33515,31464,33680,31464 33521,31465,33678,31465 33524,31466,33678,31466 33525,31467,33678,31467 33525,31468,33677,31468 33526,31469,33675,31469 33526,31470,33674,31470 33526,31471,33671,31472 33526,31473,33670,31473 33527,31474,33670,31475 33528,31476,33532,31476 33536,31476,33670,31477 33527,31477,33531,31477 33528,31478,33530,31478 33537,31478,33669,31478 33517,31479,33519,31479 33538,31479,33669,31479 33516,31480,33517,31480 33645,31480,33668,31480 33538,31480,33642,31480 33639,31481,33642,31481 33518,31481,33519,31481 33539,31481,33634,31481 33646,31481,33667,31481 33516,31481,33516,31481 33647,31482,33667,31482 33518,31482,33518,31482 33539,31482,33633,31482 33665,31483,33667,31483 33542,31483,33633,31483 33651,31483,33661,31483 33669,31483,33671,31484 33543,31484,33628,31484 33631,31484,33632,31484 33658,31484,33661,31484 33666,31485,33671,31485 33544,31485,33627,31485 33666,31486,33668,31486 33542,31486,33627,31486 33666,31487,33670,31487 33542,31487,33628,31488 33534,31488,33534,31488 33668,31488,33670,31489 33543,31489,33548,31489 33551,31489,33629,31489 33533,31489,33535,31489 33534,31490,33535,31490 33550,31490,33550,31490 33553,31490,33629,31491 33553,31492,33626,31492 33561,31493,33626,31493 33558,31493,33559,31493 33555,31493,33556,31493 33561,31494,33561,31494 33555,31494,33555,31494 33563,31494,33625,31495 33563,31496,33626,31496 33549,31496,33551,31496 33574,31497,33626,31497 33542,31497,33542,31497 33547,31497,33553,31497 33537,31497,33537,31497 33561,31497,33571,31498 33547,31498,33552,31498 33536,31498,33538,31498 33541,31498,33541,31498 33575,31498,33625,31498 33534,31499,33538,31499 33547,31499,33551,31499 33580,31499,33624,31499 33561,31499,33570,31499 33540,31499,33540,31499 33535,31500,33538,31500 33581,31500,33623,31500 33549,31500,33550,31500 33559,31500,33570,31500 33583,31501,33594,31501 33602,31501,33622,31501 33562,31501,33570,31501 33597,31501,33599,31501 33534,31501,33536,31501 33586,31502,33594,31502 33533,31502,33536,31502 33603,31502,33622,31502 33557,31502,33570,31502 33628,31502,33628,31502 33573,31502,33575,31502 33557,31503,33564,31503 33627,31503,33627,31503 33587,31503,33592,31503 33605,31503,33621,31504 33567,31503,33575,31504 33556,31504,33562,31504 33554,31505,33559,31505 33609,31505,33622,31505 33567,31505,33577,31505 33552,31505,33552,31505 33566,31506,33577,31506 33551,31506,33557,31506 33611,31506,33625,31506 33565,31507,33577,31507 33552,31507,33560,31507 33613,31507,33627,31507 33546,31507,33547,31507 33546,31508,33548,31508 33553,31508,33559,31508 33613,31508,33628,31508 33613,31509,33623,31509 33627,31509,33629,31509 33547,31509,33548,31509 33554,31509,33558,31509 33564,31508,33577,31510 33613,31510,33615,31510 33634,31510,33635,31510 33632,31511,33636,31511 33565,31511,33577,31511 33634,31512,33636,31512 33565,31512,33578,31512 33565,31513,33565,31513 33558,31513,33558,31513 33635,31513,33635,31513 33567,31513,33581,31513 33550,31514,33551,31514 33568,31514,33582,31514 33556,31514,33559,31514 33550,31515,33552,31515 33576,31515,33582,31515 33570,31515,33574,31515 33556,31515,33560,31516 33569,31516,33572,31516 33551,31516,33551,31516 33576,31516,33585,31517 33570,31517,33572,31517 33557,31517,33559,31517 33589,31518,33589,31518 33571,31518,33571,31518 33577,31518,33585,31519 33587,31519,33588,31519 33587,31520,33592,31520 33564,31520,33566,31520 33574,31520,33585,31520 33576,31521,33576,31521 33565,31521,33566,31521 33579,31521,33595,31521 33590,31522,33598,31522 33564,31522,33569,31522 33577,31522,33578,31522 33581,31522,33587,31522 33566,31523,33569,31523 33590,31523,33600,31523 33611,31523,33612,31523 33580,31523,33588,31523 33606,31523,33607,31523 33578,31523,33578,31524 33587,31524,33601,31524 33606,31524,33606,31524 33566,31524,33568,31524 33611,31524,33615,31524 33580,31524,33583,31525 33609,31524,33609,31525 33604,31525,33604,31525 33611,31525,33611,31525 33587,31525,33602,31525 33606,31525,33607,31525 33581,31526,33584,31526 33589,31526,33604,31526 33581,31527,33585,31527 33591,31527,33606,31527 33587,31528,33589,31528 33595,31528,33606,31528 33582,31528,33585,31528 33589,31529,33589,31529 33607,31529,33607,31529 33595,31529,33597,31529 33600,31529,33604,31529 33603,31530,33605,31530 33593,31530,33593,31530 33590,31530,33590,31530 33609,31531,33609,31531 33607,31531,33607,31531 33592,31531,33592,31531 33603,31531,33604,31531 33609,31532,33611,31532 33611,31533,33611,31533 33613,31534,33613,31534 33613,31535,33615,31535 33617,31536,33617,31536", + }, + [511] = { -- Norcferatu Fortress (2204 tiles, 17 rects) + name = "Norcferatu Fortress", + mainArea = 8, + bbox = { x1 = 32898, y1 = 31406, x2 = 32966, y2 = 31463 }, + rects = "32924,31406,32949,31408 32912,31409,32949,31410 32909,31411,32966,31413 32904,31414,32966,31415 32902,31416,32966,31418 32900,31419,32966,31424 32898,31425,32966,31425 32898,31426,32944,31430 32898,31431,32940,31436 32898,31437,32924,31441 32898,31442,32920,31451 32898,31452,32919,31455 32898,31456,32917,31456 32898,31457,32918,31460 32899,31461,32914,31461 32903,31462,32912,31462 32903,31463,32910,31463", + }, + [514] = { -- Newhaven (9420 tiles, 160 rects) + name = "Newhaven", + mainArea = 24, + bbox = { x1 = 32504, y1 = 32406, x2 = 32634, y2 = 32522 }, + rects = "32547,32406,32554,32406 32578,32406,32581,32406 32587,32407,32592,32407 32546,32407,32555,32407 32576,32407,32585,32407 32544,32408,32560,32408 32571,32408,32596,32408 32539,32409,32563,32409 32570,32409,32598,32409 32568,32410,32599,32410 32538,32410,32565,32410 32536,32411,32600,32411 32531,32412,32601,32412 32528,32413,32602,32413 32525,32414,32603,32414 32608,32414,32614,32414 32608,32415,32618,32415 32523,32415,32605,32415 32522,32416,32620,32416 32521,32417,32592,32417 32595,32417,32620,32417 32595,32418,32621,32418 32520,32418,32593,32418 32518,32419,32621,32419 32518,32420,32574,32420 32516,32421,32574,32421 32576,32420,32622,32422 32515,32422,32574,32424 32576,32423,32623,32424 32504,32425,32506,32425 32575,32425,32624,32425 32514,32425,32573,32425 32514,32426,32626,32426 32504,32426,32507,32427 32513,32427,32627,32427 32513,32428,32628,32428 32504,32428,32508,32429 32512,32429,32628,32429 32505,32430,32628,32430 32506,32431,32628,32432 32507,32433,32628,32433 32508,32434,32628,32434 32509,32435,32628,32440 32509,32441,32627,32441 32509,32442,32626,32442 32510,32443,32628,32443 32510,32444,32629,32444 32511,32445,32630,32445 32511,32446,32631,32446 32512,32447,32632,32447 32513,32448,32633,32448 32519,32449,32634,32449 32514,32449,32517,32449 32520,32450,32634,32452 32521,32453,32633,32453 32522,32454,32632,32455 32523,32456,32632,32457 32523,32458,32613,32458 32615,32458,32631,32458 32524,32459,32612,32459 32615,32459,32628,32459 32615,32460,32627,32460 32525,32460,32612,32460 32525,32461,32611,32461 32614,32461,32626,32461 32525,32462,32610,32462 32613,32462,32625,32462 32611,32463,32622,32463 32525,32463,32609,32463 32525,32464,32608,32464 32610,32464,32621,32464 32526,32465,32607,32465 32610,32465,32620,32465 32610,32466,32619,32466 32527,32466,32606,32466 32604,32467,32619,32467 32527,32467,32591,32468 32596,32468,32621,32468 32527,32469,32590,32469 32594,32469,32622,32469 32594,32470,32623,32470 32527,32470,32588,32470 32527,32471,32623,32472 32544,32473,32622,32473 32529,32473,32541,32474 32544,32474,32621,32474 32530,32475,32611,32475 32615,32475,32620,32475 32530,32476,32606,32476 32536,32477,32602,32477 32540,32478,32600,32478 32541,32479,32600,32479 32542,32480,32599,32480 32548,32481,32596,32481 32543,32481,32546,32481 32544,32482,32594,32482 32545,32483,32593,32483 32545,32484,32592,32484 32545,32485,32591,32485 32545,32486,32590,32486 32546,32487,32588,32488 32543,32488,32544,32488 32542,32489,32545,32489 32547,32489,32587,32489 32541,32490,32545,32490 32547,32490,32586,32491 32541,32491,32544,32491 32541,32492,32542,32492 32547,32492,32585,32492 32548,32493,32585,32493 32548,32494,32584,32494 32554,32495,32583,32495 32548,32496,32583,32496 32548,32497,32584,32497 32547,32498,32584,32498 32544,32499,32585,32499 32543,32500,32586,32500 32543,32501,32587,32502 32517,32502,32521,32502 32515,32503,32523,32503 32543,32503,32588,32504 32514,32504,32525,32504 32513,32505,32526,32505 32542,32505,32588,32505 32541,32506,32588,32506 32513,32506,32528,32506 32511,32507,32528,32507 32540,32507,32588,32508 32510,32508,32529,32508 32510,32509,32530,32509 32540,32509,32587,32509 32540,32510,32586,32510 32511,32510,32530,32511 32533,32511,32536,32511 32540,32511,32585,32511 32541,32512,32582,32512 32511,32512,32529,32512 32512,32513,32529,32513 32542,32513,32580,32513 32542,32514,32576,32514 32532,32512,32539,32515 32513,32514,32528,32515 32542,32515,32572,32515 32514,32516,32526,32516 32542,32516,32570,32516 32533,32516,32539,32516 32515,32517,32524,32517 32542,32517,32569,32517 32534,32517,32538,32517 32517,32518,32523,32518 32564,32518,32567,32518 32542,32518,32561,32518 32535,32518,32536,32518 32542,32519,32560,32519 32518,32519,32521,32519 32542,32520,32559,32520 32548,32521,32555,32521 32543,32521,32545,32521 32552,32522,32553,32522 32543,32522,32544,32522", + }, + [515] = { -- Isle of Ada - Landing (759 tiles, 70 rects) + name = "Isle of Ada - Landing", + mainArea = 22, + bbox = { x1 = 33850, y1 = 32233, x2 = 33889, y2 = 32275 }, + rects = "33871,32233,33872,32234 33867,32235,33867,32235 33864,32235,33864,32235 33869,32235,33872,32235 33857,32235,33858,32235 33853,32236,33860,32236 33864,32236,33871,32236 33852,32237,33870,32237 33852,32238,33872,32238 33853,32239,33873,32239 33853,32240,33876,32240 33885,32240,33889,32240 33884,32241,33889,32241 33852,32241,33877,32242 33883,32242,33889,32242 33864,32243,33879,32243 33881,32243,33889,32243 33852,32243,33862,32243 33866,32244,33889,32244 33853,32244,33861,32244 33852,32245,33860,32245 33869,32245,33888,32245 33865,32246,33867,32246 33871,32246,33888,32246 33851,32246,33859,32246 33851,32247,33858,32247 33873,32247,33888,32248 33852,32248,33857,32248 33873,32249,33887,32249 33851,32249,33857,32250 33873,32250,33877,32250 33879,32250,33887,32250 33850,32251,33857,32251 33873,32251,33878,32251 33880,32251,33887,32251 33850,32252,33859,32252 33881,32252,33887,32253 33851,32253,33859,32253 33852,32254,33859,32254 33881,32254,33886,32254 33851,32255,33859,32255 33882,32255,33886,32256 33852,32256,33859,32256 33881,32257,33885,32257 33853,32257,33859,32257 33854,32258,33860,32258 33881,32258,33884,32259 33854,32259,33861,32259 33864,32247,33868,32260 33881,32260,33883,32260 33855,32260,33861,32260 33856,32261,33861,32261 33880,32261,33883,32262 33857,32262,33862,32262 33880,32263,33884,32263 33858,32263,33862,32263 33879,32264,33889,32264 33859,32264,33864,32264 33860,32265,33865,32265 33877,32265,33888,32265 33861,32266,33865,32266 33876,32266,33887,32266 33875,32267,33887,32267 33862,32267,33865,32267 33875,32268,33883,32268 33863,32268,33865,32268 33875,32269,33882,32270 33875,32271,33881,32271 33877,32272,33881,32272 33877,32273,33879,32275", + }, + [516] = { -- Isle of Ada - Adaean Mines (2306 tiles, 253 rects) + name = "Isle of Ada - Adaean Mines", + mainArea = 22, + bbox = { x1 = 33824, y1 = 32106, x2 = 33921, y2 = 32235 }, + rects = "33863,32107,33863,32109 33877,32106,33879,32110 33858,32110,33863,32110 33858,32111,33892,32111 33858,32112,33894,32112 33863,32113,33894,32113 33863,32114,33867,32114 33863,32115,33866,32115 33887,32116,33887,32116 33862,32116,33866,32116 33876,32114,33878,32117 33861,32117,33865,32117 33874,32118,33874,32118 33876,32118,33879,32118 33864,32118,33865,32119 33864,32120,33864,32120 33887,32123,33887,32123 33876,32119,33878,32125 33890,32114,33894,32126 33876,32126,33879,32126 33877,32127,33903,32129 33878,32130,33903,32130 33890,32131,33894,32132 33890,32133,33895,32138 33880,32138,33886,32138 33880,32139,33887,32139 33890,32139,33896,32139 33880,32140,33903,32142 33880,32143,33887,32143 33892,32143,33903,32143 33894,32144,33903,32144 33882,32144,33884,32144 33896,32145,33903,32145 33899,32146,33903,32146 33889,32147,33890,32147 33900,32147,33903,32147 33889,32148,33891,32148 33889,32149,33892,32149 33901,32148,33903,32150 33888,32150,33892,32150 33884,32151,33893,32151 33876,32151,33876,32151 33876,32152,33877,32152 33882,32152,33894,32152 33901,32151,33902,32153 33890,32153,33895,32153 33880,32153,33885,32153 33877,32153,33877,32153 33901,32154,33904,32154 33878,32154,33884,32154 33891,32154,33897,32154 33878,32155,33883,32155 33893,32155,33905,32156 33877,32156,33883,32156 33895,32157,33905,32157 33877,32157,33882,32158 33896,32158,33904,32158 33876,32159,33882,32159 33897,32159,33904,32160 33874,32160,33884,32160 33873,32161,33884,32161 33894,32161,33904,32161 33882,32162,33885,32162 33893,32162,33904,32162 33872,32162,33877,32162 33882,32163,33886,32163 33871,32163,33876,32163 33890,32163,33904,32163 33900,32164,33906,32164 33883,32164,33896,32164 33868,32164,33874,32164 33901,32165,33907,32165 33883,32165,33894,32165 33862,32165,33874,32165 33902,32166,33909,32166 33862,32166,33873,32166 33884,32166,33892,32166 33903,32167,33910,32167 33862,32167,33868,32167 33886,32167,33892,32168 33862,32168,33867,32168 33862,32169,33865,32169 33886,32169,33891,32169 33905,32168,33909,32170 33862,32170,33863,32170 33906,32171,33909,32172 33905,32173,33909,32173 33903,32174,33909,32175 33905,32176,33909,32176 33905,32177,33908,32177 33906,32178,33908,32180 33906,32181,33909,32181 33907,32182,33910,32182 33908,32183,33910,32184 33873,32185,33873,32185 33907,32185,33910,32185 33908,32186,33910,32186 33872,32186,33874,32186 33869,32187,33875,32187 33907,32187,33910,32187 33865,32188,33876,32188 33907,32188,33911,32188 33862,32189,33877,32189 33909,32189,33913,32190 33860,32190,33878,32190 33859,32191,33878,32191 33910,32191,33914,32191 33909,32192,33915,32192 33858,32192,33877,32192 33906,32193,33907,32193 33910,32193,33915,32193 33856,32193,33876,32193 33874,32194,33876,32194 33910,32194,33910,32194 33854,32194,33864,32194 33905,32194,33906,32195 33912,32194,33916,32195 33853,32195,33861,32195 33875,32195,33875,32195 33854,32196,33859,32196 33913,32196,33914,32197 33855,32197,33860,32198 33833,32198,33834,32198 33871,32198,33873,32198 33912,32198,33914,32198 33865,32198,33868,32198 33855,32199,33874,32199 33831,32199,33835,32199 33912,32199,33915,32199 33830,32200,33836,32200 33912,32200,33914,32200 33856,32200,33876,32200 33899,32200,33899,32201 33857,32201,33878,32201 33829,32201,33837,32201 33912,32201,33913,32202 33827,32202,33836,32202 33899,32202,33901,32202 33858,32202,33880,32202 33859,32203,33867,32203 33911,32203,33914,32203 33874,32203,33881,32203 33900,32203,33901,32203 33827,32203,33835,32203 33860,32204,33867,32204 33826,32204,33834,32204 33900,32204,33902,32204 33909,32204,33914,32204 33876,32204,33884,32204 33861,32205,33866,32205 33878,32205,33885,32205 33908,32205,33913,32205 33826,32205,33835,32205 33900,32205,33903,32205 33901,32206,33903,32206 33907,32206,33911,32206 33830,32206,33835,32206 33879,32206,33886,32206 33862,32206,33867,32207 33830,32207,33836,32207 33882,32207,33886,32207 33901,32207,33909,32207 33920,32207,33921,32208 33861,32208,33869,32208 33883,32208,33887,32208 33902,32208,33909,32208 33830,32208,33838,32209 33857,32209,33870,32209 33902,32209,33908,32209 33918,32209,33921,32209 33891,32209,33891,32209 33884,32209,33888,32209 33885,32210,33896,32210 33830,32210,33839,32210 33854,32210,33870,32210 33917,32210,33920,32210 33902,32210,33906,32210 33885,32211,33905,32211 33916,32211,33919,32211 33852,32211,33872,32211 33830,32211,33840,32211 33855,32212,33874,32212 33831,32212,33841,32212 33914,32212,33918,32212 33845,32212,33846,32212 33884,32212,33905,32212 33831,32213,33847,32213 33893,32213,33905,32213 33913,32213,33917,32213 33862,32213,33865,32213 33867,32213,33875,32213 33884,32213,33887,32214 33855,32213,33859,32214 33896,32214,33906,32214 33868,32214,33875,32214 33910,32214,33917,32214 33831,32214,33849,32214 33854,32215,33857,32215 33870,32215,33876,32215 33837,32215,33850,32215 33830,32215,33834,32215 33898,32215,33916,32215 33883,32215,33886,32215 33863,32214,33863,32216 33871,32216,33877,32216 33844,32216,33857,32216 33882,32216,33886,32216 33839,32216,33840,32216 33902,32216,33915,32216 33840,32217,33840,32217 33862,32217,33863,32217 33845,32217,33856,32217 33902,32217,33914,32217 33881,32217,33885,32217 33872,32217,33877,32217 33831,32216,33835,32218 33905,32218,33912,32218 33873,32218,33885,32218 33849,32218,33856,32218 33851,32219,33855,32219 33906,32219,33910,32219 33874,32219,33884,32219 33830,32219,33835,32219 33874,32220,33883,32220 33851,32220,33854,32221 33829,32220,33834,32221 33875,32221,33881,32221 33875,32222,33880,32222 33829,32222,33833,32222 33830,32223,33833,32223 33876,32223,33880,32223 33850,32222,33853,32224 33828,32224,33833,32224 33877,32224,33880,32224 33878,32225,33879,32225 33850,32225,33854,32225 33828,32225,33832,32225 33827,32226,33832,32226 33826,32227,33833,32227 33850,32226,33853,32228 33825,32228,33833,32228 33824,32229,33827,32229 33832,32229,33834,32230 33850,32229,33854,32230 33824,32230,33826,32231 33833,32231,33835,32232 33851,32231,33856,32232 33824,32232,33825,32232 33834,32233,33835,32233 33852,32233,33856,32233 33853,32234,33857,32234 33835,32234,33835,32234 33853,32235,33856,32235", + }, + [518] = { -- Isle of Ada - Outskirts (221 tiles, 22 rects) + name = "Isle of Ada - Outskirts", + mainArea = 22, + bbox = { x1 = 33906, y1 = 32123, x2 = 33931, y2 = 32141 }, + rects = "33917,32123,33917,32123 33916,32124,33917,32124 33913,32125,33917,32125 33910,32126,33917,32126 33910,32127,33916,32127 33924,32128,33927,32128 33920,32128,33921,32128 33909,32128,33916,32128 33908,32129,33916,32129 33918,32129,33931,32130 33907,32130,33915,32130 33919,32131,33931,32131 33906,32131,33915,32132 33920,32132,33931,32132 33922,32133,33922,32133 33907,32133,33915,32133 33908,32134,33923,32134 33908,32135,33925,32135 33909,32136,33925,32137 33910,32138,33915,32139 33914,32140,33915,32140 33915,32141,33915,32141", + }, + [519] = { -- Isle of Ada - Bastion (53 tiles, 7 rects) + name = "Isle of Ada - Bastion", + mainArea = 22, + bbox = { x1 = 33859, y1 = 32133, x2 = 33871, y2 = 32140 }, + rects = "33862,32133,33871,32133 33860,32134,33870,32134 33860,32135,33869,32135 33859,32136,33864,32137 33859,32138,33863,32138 33859,32139,33861,32139 33859,32140,33860,32140", + }, + [521] = { -- Isle of Ada - Warlock Tower (196 tiles, 1 rects) + name = "Isle of Ada - Warlock Tower", + mainArea = 22, + bbox = { x1 = 33831, y1 = 32135, x2 = 33844, y2 = 32148 }, + rects = "33831,32135,33844,32148", + }, + [522] = { -- Isle of Ada (13220 tiles, 635 rects) + name = "Isle of Ada", + mainArea = 22, + bbox = { x1 = 33783, y1 = 32085, x2 = 33928, y2 = 32274 }, + rects = "33878,32085,33880,32085 33878,32086,33881,32086 33877,32087,33881,32087 33875,32088,33881,32088 33892,32089,33895,32089 33867,32089,33869,32090 33874,32089,33881,32090 33854,32090,33857,32090 33891,32090,33895,32091 33867,32091,33871,32091 33853,32091,33857,32091 33873,32091,33881,32091 33862,32091,33865,32092 33853,32092,33858,32092 33890,32092,33895,32092 33869,32092,33882,32092 33870,32093,33882,32093 33852,32093,33858,32093 33862,32093,33866,32093 33885,32093,33893,32093 33851,32094,33882,32094 33884,32094,33894,32094 33851,32095,33894,32095 33850,32096,33894,32097 33849,32098,33895,32098 33897,32098,33899,32098 33849,32099,33900,32100 33848,32101,33900,32101 33848,32102,33899,32102 33848,32103,33902,32104 33849,32105,33905,32105 33849,32106,33876,32106 33880,32106,33903,32106 33910,32107,33912,32107 33880,32107,33904,32108 33851,32107,33862,32108 33909,32108,33912,32108 33880,32109,33906,32109 33847,32109,33862,32109 33909,32109,33913,32109 33864,32107,33876,32110 33909,32110,33914,32110 33880,32110,33907,32110 33893,32111,33908,32111 33910,32111,33914,32111 33846,32110,33857,32112 33895,32112,33914,32112 33845,32113,33862,32113 33895,32113,33913,32114 33868,32114,33875,32114 33879,32114,33889,32115 33844,32114,33862,32115 33895,32115,33912,32115 33919,32115,33921,32115 33867,32115,33875,32116 33844,32116,33861,32116 33888,32116,33889,32116 33879,32116,33886,32116 33914,32116,33922,32116 33895,32116,33911,32117 33845,32117,33860,32117 33879,32117,33889,32117 33866,32117,33875,32117 33913,32117,33922,32117 33846,32118,33863,32118 33895,32118,33922,32118 33866,32118,33873,32118 33875,32118,33875,32118 33880,32118,33889,32118 33866,32119,33875,32119 33895,32119,33920,32120 33850,32119,33863,32120 33865,32120,33875,32120 33895,32121,33919,32121 33850,32121,33875,32121 33879,32119,33889,32122 33848,32122,33875,32122 33842,32122,33845,32122 33895,32122,33918,32122 33888,32123,33889,32123 33879,32123,33886,32123 33895,32123,33916,32123 33895,32124,33915,32124 33842,32123,33875,32125 33879,32124,33889,32125 33918,32124,33918,32125 33895,32125,33912,32125 33843,32126,33875,32126 33880,32126,33889,32126 33895,32126,33909,32126 33845,32127,33876,32127 33904,32127,33909,32127 33904,32128,33908,32128 33846,32128,33876,32128 33848,32129,33876,32129 33904,32129,33907,32129 33904,32130,33906,32130 33848,32130,33877,32130 33847,32131,33889,32132 33895,32131,33905,32132 33839,32133,33843,32133 33847,32133,33861,32133 33872,32133,33889,32133 33896,32133,33906,32133 33830,32134,33845,32134 33871,32134,33889,32134 33847,32134,33859,32134 33896,32134,33907,32135 33845,32135,33845,32135 33870,32135,33889,32135 33849,32135,33859,32135 33845,32136,33846,32136 33849,32136,33858,32136 33896,32136,33908,32137 33865,32136,33889,32137 33845,32137,33847,32137 33830,32135,33830,32138 33845,32138,33848,32138 33887,32138,33889,32138 33864,32138,33879,32138 33896,32138,33909,32138 33853,32137,33858,32139 33897,32139,33909,32139 33888,32139,33889,32139 33862,32139,33879,32139 33852,32140,33858,32140 33861,32140,33866,32140 33869,32140,33879,32140 33904,32140,33913,32140 33845,32139,33849,32141 33904,32141,33914,32141 33868,32141,33879,32141 33852,32141,33865,32141 33829,32139,33830,32142 33904,32142,33915,32142 33852,32142,33864,32142 33867,32142,33879,32142 33866,32143,33879,32143 33852,32143,33863,32143 33888,32143,33891,32143 33827,32143,33830,32144 33885,32144,33893,32144 33850,32144,33859,32144 33865,32144,33881,32144 33845,32142,33848,32145 33826,32145,33830,32145 33863,32145,33895,32145 33850,32145,33858,32145 33904,32143,33917,32146 33862,32146,33898,32146 33825,32146,33830,32146 33845,32146,33857,32147 33904,32147,33916,32147 33891,32147,33899,32147 33861,32147,33888,32147 33824,32147,33830,32147 33845,32148,33849,32148 33892,32148,33900,32148 33823,32148,33830,32148 33859,32148,33888,32148 33904,32148,33915,32149 33858,32149,33888,32149 33821,32149,33849,32149 33893,32149,33900,32150 33904,32150,33914,32150 33852,32150,33887,32150 33821,32150,33844,32150 33877,32151,33883,32151 33894,32151,33900,32151 33821,32151,33842,32151 33852,32151,33875,32151 33903,32151,33912,32152 33821,32152,33841,32152 33851,32152,33875,32152 33878,32152,33881,32152 33895,32152,33900,32152 33849,32153,33876,32153 33903,32153,33911,32153 33878,32153,33879,32153 33896,32153,33900,32153 33822,32153,33841,32153 33886,32153,33889,32153 33847,32154,33877,32154 33905,32154,33910,32154 33885,32154,33890,32154 33822,32154,33838,32154 33898,32154,33900,32154 33845,32155,33877,32155 33906,32155,33909,32155 33822,32155,33837,32155 33884,32155,33892,32156 33844,32156,33876,32156 33912,32156,33915,32156 33822,32156,33832,32156 33906,32156,33907,32156 33906,32157,33906,32157 33840,32157,33876,32157 33909,32157,33915,32157 33883,32157,33894,32157 33822,32157,33831,32157 33826,32158,33831,32158 33883,32158,33895,32158 33839,32158,33876,32158 33883,32159,33896,32159 33833,32159,33875,32159 33826,32159,33829,32159 33817,32160,33820,32160 33885,32160,33896,32160 33832,32160,33873,32160 33810,32161,33820,32161 33831,32161,33872,32161 33885,32161,33893,32161 33905,32158,33915,32162 33830,32162,33871,32162 33801,32162,33820,32162 33886,32162,33892,32162 33878,32162,33881,32162 33905,32163,33917,32163 33887,32163,33889,32163 33830,32163,33870,32163 33877,32163,33881,32163 33799,32163,33820,32163 33828,32164,33867,32164 33897,32164,33899,32164 33907,32164,33917,32164 33799,32164,33818,32165 33875,32164,33882,32165 33908,32165,33917,32165 33895,32165,33900,32165 33893,32166,33901,32166 33910,32166,33915,32166 33799,32166,33815,32166 33874,32166,33883,32166 33828,32165,33861,32167 33911,32167,33912,32167 33814,32167,33819,32167 33800,32167,33811,32167 33893,32167,33902,32167 33869,32167,33885,32167 33910,32168,33916,32168 33868,32168,33885,32168 33800,32168,33808,32168 33893,32168,33904,32168 33812,32168,33820,32169 33827,32168,33861,32169 33802,32169,33807,32169 33892,32169,33904,32169 33866,32169,33885,32169 33913,32169,33916,32169 33910,32169,33910,32170 33864,32170,33904,32170 33912,32170,33917,32170 33826,32170,33861,32170 33802,32170,33820,32170 33803,32171,33819,32171 33823,32171,33905,32172 33805,32172,33817,32173 33823,32173,33904,32173 33800,32173,33803,32173 33800,32174,33817,32174 33822,32174,33902,32174 33910,32171,33917,32175 33821,32175,33902,32175 33800,32175,33815,32175 33820,32176,33904,32176 33910,32176,33916,32176 33800,32176,33814,32176 33918,32177,33921,32177 33800,32177,33813,32177 33909,32177,33910,32177 33819,32177,33904,32177 33917,32178,33921,32178 33800,32178,33812,32178 33819,32178,33905,32178 33909,32178,33909,32179 33817,32179,33905,32179 33798,32179,33812,32179 33917,32179,33922,32179 33795,32180,33810,32180 33815,32180,33905,32180 33909,32180,33910,32180 33917,32180,33923,32181 33910,32181,33911,32181 33794,32181,33810,32181 33814,32181,33905,32181 33814,32182,33906,32182 33911,32182,33914,32182 33793,32182,33806,32182 33916,32182,33923,32182 33911,32183,33923,32183 33793,32183,33805,32183 33813,32183,33907,32183 33812,32184,33907,32184 33911,32184,33922,32184 33793,32184,33802,32184 33804,32184,33807,32184 33802,32185,33807,32185 33874,32185,33906,32185 33812,32185,33872,32185 33794,32185,33800,32185 33795,32186,33799,32186 33875,32186,33907,32186 33801,32186,33808,32186 33811,32186,33871,32186 33911,32185,33921,32187 33796,32187,33868,32187 33876,32187,33906,32187 33797,32188,33864,32188 33877,32188,33906,32188 33912,32188,33921,32188 33924,32188,33926,32189 33878,32189,33908,32189 33914,32189,33920,32189 33796,32189,33861,32189 33914,32190,33919,32190 33796,32190,33859,32190 33879,32190,33908,32190 33923,32190,33928,32191 33794,32191,33858,32191 33879,32191,33909,32191 33915,32191,33919,32191 33878,32192,33908,32192 33920,32192,33928,32192 33916,32192,33916,32192 33793,32192,33857,32192 33793,32193,33855,32193 33877,32193,33905,32193 33916,32193,33928,32193 33908,32193,33909,32193 33917,32194,33928,32194 33907,32194,33909,32194 33865,32194,33873,32194 33793,32194,33853,32194 33911,32194,33911,32194 33877,32194,33904,32194 33862,32195,33874,32195 33876,32195,33904,32195 33793,32195,33852,32195 33917,32195,33927,32195 33907,32195,33911,32195 33860,32196,33912,32196 33794,32196,33853,32196 33861,32197,33912,32197 33794,32197,33815,32197 33819,32197,33854,32197 33915,32196,33928,32198 33819,32198,33832,32198 33861,32198,33864,32198 33835,32198,33854,32198 33869,32198,33870,32198 33794,32198,33814,32198 33874,32198,33911,32198 33875,32199,33911,32199 33836,32199,33854,32199 33817,32199,33830,32199 33795,32199,33814,32199 33916,32199,33926,32199 33795,32200,33810,32200 33816,32200,33829,32200 33915,32200,33925,32200 33877,32200,33898,32200 33837,32200,33855,32200 33900,32200,33911,32201 33795,32201,33809,32201 33814,32201,33828,32201 33914,32201,33925,32201 33879,32201,33898,32201 33838,32201,33856,32201 33812,32202,33826,32202 33795,32202,33806,32202 33837,32202,33857,32202 33902,32202,33911,32202 33914,32202,33924,32202 33881,32202,33898,32202 33902,32203,33910,32203 33836,32203,33858,32203 33882,32203,33899,32203 33803,32203,33806,32203 33868,32203,33873,32203 33915,32203,33920,32203 33798,32203,33801,32203 33811,32203,33826,32203 33868,32204,33875,32204 33915,32204,33915,32204 33903,32204,33908,32204 33885,32204,33899,32204 33810,32204,33825,32204 33835,32204,33859,32204 33867,32205,33877,32205 33836,32205,33860,32205 33886,32205,33899,32205 33914,32205,33915,32205 33904,32205,33907,32205 33808,32205,33825,32205 33904,32206,33906,32206 33836,32206,33861,32206 33912,32206,33914,32206 33868,32206,33878,32206 33807,32206,33829,32207 33887,32206,33900,32207 33910,32207,33912,32207 33800,32207,33803,32207 33922,32207,33922,32207 33805,32207,33805,32207 33868,32207,33881,32207 33837,32207,33861,32207 33839,32208,33860,32208 33870,32208,33882,32208 33800,32208,33805,32208 33888,32208,33901,32208 33910,32208,33910,32208 33808,32208,33829,32208 33922,32208,33924,32209 33809,32209,33829,32209 33909,32209,33910,32209 33889,32209,33890,32209 33871,32209,33883,32209 33892,32209,33901,32209 33839,32209,33856,32209 33799,32209,33806,32209 33811,32210,33829,32210 33907,32210,33909,32210 33921,32210,33924,32210 33840,32210,33853,32210 33799,32210,33807,32210 33871,32210,33884,32210 33897,32210,33901,32210 33813,32211,33829,32211 33841,32211,33851,32211 33920,32211,33924,32211 33799,32211,33808,32211 33906,32211,33907,32211 33873,32211,33884,32211 33842,32212,33844,32212 33875,32212,33883,32212 33795,32212,33796,32212 33847,32212,33854,32212 33798,32212,33830,32212 33919,32212,33923,32212 33906,32212,33906,32213 33860,32213,33861,32213 33888,32213,33892,32213 33866,32213,33866,32213 33848,32213,33854,32213 33795,32213,33830,32213 33918,32213,33923,32213 33876,32213,33883,32214 33860,32214,33862,32214 33850,32214,33854,32214 33864,32214,33867,32214 33918,32214,33921,32214 33794,32214,33830,32214 33888,32214,33895,32214 33794,32215,33829,32215 33835,32215,33836,32215 33917,32215,33921,32215 33877,32215,33882,32215 33851,32215,33853,32215 33864,32215,33869,32215 33887,32215,33897,32215 33858,32215,33862,32216 33916,32216,33921,32216 33836,32216,33838,32216 33864,32216,33870,32216 33794,32216,33830,32216 33887,32216,33901,32216 33878,32216,33881,32216 33841,32216,33843,32216 33836,32217,33839,32217 33857,32217,33861,32217 33878,32217,33880,32217 33864,32217,33871,32217 33915,32217,33921,32217 33841,32217,33844,32217 33886,32217,33901,32217 33793,32217,33830,32217 33886,32218,33904,32218 33836,32218,33848,32218 33792,32218,33830,32218 33913,32218,33920,32218 33857,32218,33872,32218 33791,32219,33829,32219 33856,32219,33873,32219 33885,32219,33905,32219 33836,32219,33850,32219 33911,32219,33920,32219 33855,32220,33873,32220 33884,32220,33920,32220 33835,32220,33850,32221 33791,32220,33828,32221 33855,32221,33874,32221 33882,32221,33920,32221 33790,32222,33828,32222 33854,32222,33874,32222 33854,32223,33875,32223 33790,32223,33829,32223 33881,32222,33919,32224 33834,32222,33849,32224 33854,32224,33876,32224 33789,32224,33827,32224 33788,32225,33827,32225 33880,32225,33919,32225 33855,32225,33877,32225 33833,32225,33849,32226 33788,32226,33826,32226 33854,32226,33919,32226 33788,32227,33825,32227 33854,32227,33918,32227 33834,32227,33849,32228 33788,32228,33824,32228 33854,32228,33917,32228 33788,32229,33823,32229 33828,32229,33831,32229 33835,32229,33849,32230 33855,32229,33915,32230 33827,32230,33828,32230 33830,32230,33831,32230 33787,32230,33823,32231 33830,32231,33832,32231 33827,32231,33827,32231 33857,32231,33914,32231 33836,32231,33850,32232 33786,32232,33823,32232 33857,32232,33913,32232 33826,32232,33826,32232 33830,32232,33830,32232 33832,32232,33832,32232 33873,32233,33913,32233 33836,32233,33851,32233 33857,32233,33870,32233 33832,32233,33833,32233 33786,32233,33827,32234 33858,32234,33870,32234 33836,32234,33852,32234 33833,32234,33834,32234 33873,32234,33910,32235 33868,32235,33868,32235 33865,32235,33866,32235 33859,32235,33863,32235 33785,32235,33827,32235 33833,32235,33852,32235 33785,32236,33828,32236 33834,32236,33852,32236 33861,32236,33863,32236 33872,32236,33909,32236 33871,32237,33908,32237 33785,32237,33799,32237 33801,32237,33828,32237 33834,32237,33851,32238 33873,32238,33907,32238 33801,32238,33830,32238 33784,32238,33797,32239 33802,32239,33830,32239 33874,32239,33907,32239 33835,32239,33852,32239 33836,32240,33852,32240 33784,32240,33793,32240 33877,32240,33884,32240 33803,32240,33830,32240 33890,32240,33905,32241 33836,32241,33851,32241 33878,32241,33883,32241 33810,32241,33830,32242 33784,32241,33792,32242 33878,32242,33882,32242 33835,32242,33851,32243 33890,32242,33904,32243 33783,32243,33792,32243 33880,32243,33880,32243 33809,32243,33831,32243 33835,32244,33852,32244 33783,32244,33791,32244 33890,32244,33902,32244 33784,32245,33791,32245 33835,32245,33851,32245 33809,32244,33832,32246 33889,32245,33901,32246 33784,32246,33790,32247 33834,32246,33850,32247 33810,32247,33831,32248 33889,32247,33900,32248 33784,32248,33794,32248 33834,32248,33851,32248 33785,32249,33797,32250 33834,32249,33850,32250 33888,32249,33900,32250 33888,32251,33899,32251 33808,32249,33831,32252 33834,32251,33849,32252 33789,32251,33797,32252 33888,32252,33898,32253 33834,32253,33850,32253 33809,32253,33831,32253 33789,32253,33799,32253 33790,32254,33799,32254 33834,32254,33851,32254 33812,32254,33830,32254 33812,32255,33831,32255 33835,32255,33850,32255 33791,32255,33794,32255 33887,32254,33898,32256 33792,32256,33793,32256 33835,32256,33851,32256 33814,32256,33831,32256 33796,32255,33801,32257 33835,32257,33852,32257 33886,32257,33897,32257 33815,32257,33831,32258 33835,32258,33853,32258 33885,32258,33897,32259 33836,32259,33853,32259 33816,32259,33827,32259 33837,32260,33854,32260 33884,32260,33895,32260 33818,32260,33826,32261 33838,32261,33855,32261 33884,32261,33892,32262 33819,32262,33826,32262 33843,32262,33856,32262 33885,32263,33892,32263 33850,32263,33857,32263 33845,32263,33846,32263 33851,32264,33858,32264 33820,32263,33826,32265 33855,32265,33859,32265 33856,32266,33860,32266 33821,32266,33824,32267 33858,32267,33861,32267 33854,32268,33856,32268 33860,32268,33862,32268 33854,32269,33857,32269 33854,32270,33859,32270 33854,32271,33860,32272 33856,32273,33860,32273 33856,32274,33859,32274", + }, + [526] = { -- Targuna (3318 tiles, 89 rects) + name = "Targuna", + mainArea = 24, + bbox = { x1 = 31920, y1 = 31850, x2 = 31980, y2 = 31929 }, + rects = "31934,31850,31935,31850 31932,31851,31936,31851 31946,31852,31947,31852 31931,31852,31937,31852 31943,31853,31949,31853 31930,31853,31939,31853 31928,31854,31951,31854 31927,31855,31953,31855 31925,31856,31955,31856 31925,31857,31958,31857 31925,31858,31959,31858 31925,31859,31960,31859 31925,31860,31961,31860 31925,31861,31963,31861 31926,31862,31963,31862 31926,31863,31965,31863 31926,31864,31966,31864 31927,31865,31966,31865 31927,31866,31967,31866 31928,31867,31967,31868 31928,31869,31968,31869 31930,31870,31969,31870 31931,31871,31969,31871 31933,31872,31972,31872 31934,31873,31972,31874 31933,31875,31971,31875 31933,31876,31970,31876 31932,31877,31970,31877 31932,31878,31969,31878 31931,31879,31969,31879 31931,31880,31968,31880 31931,31881,31967,31881 31932,31882,31967,31882 31932,31883,31965,31883 31933,31884,31963,31884 31967,31884,31968,31884 31933,31885,31962,31885 31965,31885,31969,31885 31933,31886,31959,31886 31964,31886,31969,31886 31932,31887,31960,31887 31964,31887,31968,31887 31930,31888,31961,31888 31965,31888,31968,31888 31966,31889,31967,31889 31929,31889,31962,31889 31926,31890,31963,31890 31972,31891,31977,31891 31924,31891,31966,31891 31923,31892,31967,31892 31971,31892,31977,31892 31972,31893,31977,31893 31923,31893,31968,31893 31922,31894,31968,31894 31921,31895,31971,31895 31920,31896,31972,31896 31920,31897,31977,31898 31922,31899,31975,31899 31923,31900,31975,31900 31924,31901,31976,31901 31925,31902,31976,31902 31926,31903,31977,31903 31926,31904,31978,31904 31924,31904,31924,31905 31926,31905,31979,31905 31923,31906,31979,31906 31923,31907,31980,31908 31925,31909,31980,31909 31925,31910,31979,31910 31926,31911,31978,31911 31925,31912,31978,31912 31924,31913,31977,31914 31923,31915,31976,31915 31923,31916,31975,31918 31924,31919,31976,31919 31926,31920,31976,31920 31927,31921,31976,31921 31927,31922,31975,31922 31927,31923,31974,31923 31955,31924,31973,31924 31927,31924,31950,31924 31956,31925,31959,31925 31928,31925,31950,31925 31963,31925,31973,31926 31928,31926,31947,31926 31931,31927,31947,31927 31963,31927,31972,31928 31934,31928,31944,31928 31936,31929,31940,31929", + }, + [528] = { -- Aragonia (4185 tiles, 62 rects) + name = "Aragonia", + mainArea = 24, + bbox = { x1 = 33475, y1 = 32684, x2 = 33559, y2 = 32752 }, + rects = "33512,32684,33519,32684 33521,32684,33524,32684 33511,32685,33524,32685 33510,32686,33528,32686 33533,32686,33539,32686 33509,32687,33530,32687 33533,32687,33543,32687 33508,32688,33544,32689 33507,32690,33544,32690 33552,32691,33554,32691 33504,32691,33544,32691 33504,32692,33545,32692 33554,32692,33556,32692 33547,32692,33552,32692 33503,32693,33557,32693 33500,32694,33558,32694 33499,32695,33559,32695 33496,32696,33559,32696 33494,32697,33559,32697 33493,32698,33559,32698 33492,32699,33559,32699 33490,32700,33558,32700 33487,32701,33557,32701 33485,32702,33556,32702 33484,32703,33556,32704 33483,32705,33553,32706 33482,32707,33552,32707 33482,32708,33554,32711 33481,32712,33554,32712 33475,32713,33554,32713 33475,32714,33551,32715 33475,32716,33550,32717 33475,32718,33551,32721 33477,32722,33551,32722 33481,32723,33551,32724 33482,32725,33551,32725 33481,32726,33551,32726 33475,32727,33550,32727 33475,32728,33548,32729 33475,32730,33547,32733 33475,32734,33546,32734 33475,32735,33543,32735 33475,32736,33542,32736 33475,32737,33541,32737 33478,32738,33541,32739 33479,32740,33541,32740 33480,32741,33541,32741 33480,32742,33540,32742 33482,32743,33539,32743 33482,32744,33538,32744 33528,32745,33537,32745 33483,32745,33525,32745 33530,32746,33534,32746 33483,32746,33490,32746 33494,32746,33525,32746 33495,32747,33525,32747 33499,32748,33525,32748 33500,32749,33525,32749 33501,32750,33525,32750 33504,32751,33524,32751 33516,32752,33523,32752 33504,32752,33510,32752", + }, + [537] = { -- Salgadara (3791 tiles, 101 rects) + name = "Salgadara", + mainArea = 434, + bbox = { x1 = 34007, y1 = 32459, x2 = 34110, y2 = 32539 }, + rects = "34052,32459,34054,32459 34051,32460,34055,32461 34044,32461,34046,32461 34042,32462,34056,32462 34041,32463,34057,32463 34047,32464,34067,32464 34041,32464,34043,32464 34049,32465,34068,32465 34040,32465,34043,32465 34027,32465,34038,32465 34026,32466,34044,32466 34051,32466,34069,32467 34025,32467,34045,32467 34020,32468,34022,32468 34051,32468,34068,32468 34024,32468,34045,32468 34051,32469,34069,32469 34019,32469,34044,32469 34018,32470,34043,32470 34051,32470,34070,32470 34019,32471,34041,32471 34051,32471,34057,32471 34066,32471,34071,32472 34021,32472,34033,32472 34051,32472,34058,32473 34067,32473,34073,32473 34040,32473,34042,32473 34010,32473,34010,32473 34064,32473,34064,32473 34024,32473,34034,32473 34064,32474,34066,32474 34051,32474,34059,32474 34025,32474,34035,32474 34039,32474,34042,32474 34068,32474,34073,32474 34038,32475,34041,32475 34064,32475,34069,32475 34071,32475,34075,32475 34052,32475,34061,32475 34030,32475,34035,32475 34053,32476,34073,32476 34031,32476,34041,32476 34045,32477,34047,32477 34052,32477,34072,32477 34031,32477,34042,32477 34031,32478,34069,32478 34029,32479,34069,32479 34025,32480,34069,32480 34009,32474,34011,32482 34024,32481,34069,32482 34023,32483,34069,32483 34022,32484,34070,32484 34022,32485,34072,32485 34021,32486,34075,32486 34020,32487,34076,32487 34019,32488,34077,32488 34018,32489,34079,32489 34016,32490,34080,32491 34015,32492,34079,32492 34014,32493,34080,32493 34012,32494,34084,32494 34110,32495,34110,32495 34011,32495,34085,32495 34095,32496,34095,32496 34010,32496,34086,32499 34008,32500,34086,32500 34007,32501,34088,32501 34009,32502,34092,32502 34009,32503,34093,32503 34009,32504,34094,32504 34010,32505,34097,32506 34011,32507,34097,32507 34014,32508,34097,32508 34015,32509,34097,32510 34016,32511,34097,32511 34016,32512,34095,32512 34017,32513,34092,32513 34017,32514,34091,32514 34019,32515,34091,32515 34020,32516,34089,32516 34022,32517,34088,32517 34025,32518,34088,32518 34026,32519,34086,32519 34027,32520,34052,32520 34081,32520,34082,32520 34055,32520,34070,32520 34073,32520,34079,32520 34028,32521,34049,32521 34028,32522,34047,32523 34028,32524,34044,32524 34028,32525,34043,32525 34028,32526,34044,32527 34028,32528,34042,32528 34034,32529,34042,32529 34035,32530,34042,32532 34025,32533,34042,32535 34033,32536,34042,32536 34035,32537,34041,32537 34025,32536,34030,32538 34036,32538,34041,32538 34037,32539,34037,32539", + }, + [538] = { -- Thalassara Surroundings (27630 tiles, 338 rects) + name = "Thalassara Surroundings", + mainArea = 434, + bbox = { x1 = 34025, y1 = 32417, x2 = 34244, y2 = 32660 }, + rects = "34207,32417,34208,32417 34175,32418,34176,32418 34205,32418,34209,32419 34173,32419,34177,32419 34202,32419,34202,32419 34186,32419,34186,32419 34194,32419,34195,32419 34172,32420,34178,32420 34193,32420,34196,32420 34200,32420,34210,32420 34191,32420,34191,32420 34182,32420,34182,32420 34184,32420,34187,32420 34171,32421,34179,32421 34181,32421,34195,32421 34199,32421,34210,32421 34171,32422,34210,32422 34171,32423,34213,32423 34170,32424,34214,32424 34169,32425,34219,32427 34170,32428,34219,32428 34172,32429,34218,32429 34172,32430,34217,32430 34171,32431,34216,32432 34170,32433,34216,32434 34170,32435,34217,32435 34168,32436,34218,32436 34166,32437,34219,32437 34165,32438,34221,32438 34164,32439,34221,32440 34164,32441,34222,32441 34162,32442,34223,32442 34162,32443,34225,32443 34162,32444,34227,32445 34162,32446,34226,32446 34162,32447,34233,32447 34163,32448,34234,32448 34163,32449,34235,32450 34160,32451,34235,32451 34110,32452,34111,32452 34154,32452,34236,32452 34123,32453,34134,32453 34109,32453,34112,32453 34141,32453,34237,32453 34116,32454,34237,32454 34110,32454,34113,32454 34106,32455,34237,32457 34112,32458,34237,32458 34109,32458,34110,32458 34112,32459,34236,32460 34112,32461,34238,32463 34109,32463,34109,32463 34108,32464,34237,32464 34105,32465,34238,32465 34100,32465,34100,32465 34098,32466,34238,32466 34098,32467,34239,32467 34087,32468,34087,32468 34093,32468,34239,32468 34086,32469,34239,32470 34086,32471,34236,32471 34086,32472,34238,32472 34085,32473,34238,32474 34085,32475,34236,32475 34093,32476,34236,32476 34085,32476,34086,32476 34093,32477,34238,32478 34094,32479,34238,32479 34097,32480,34238,32480 34099,32481,34236,32481 34100,32482,34234,32482 34100,32483,34233,32483 34100,32484,34232,32484 34101,32485,34228,32485 34103,32486,34226,32487 34106,32488,34226,32488 34217,32489,34226,32489 34106,32489,34215,32489 34084,32490,34085,32490 34218,32490,34226,32490 34106,32490,34214,32491 34222,32491,34226,32491 34084,32491,34087,32491 34105,32492,34212,32492 34093,32492,34093,32492 34080,32492,34087,32492 34223,32492,34225,32493 34093,32493,34094,32493 34107,32493,34212,32493 34081,32493,34088,32493 34085,32494,34094,32494 34109,32494,34214,32494 34224,32494,34225,32494 34111,32495,34214,32495 34086,32495,34094,32495 34222,32495,34224,32495 34109,32495,34109,32495 34109,32496,34212,32496 34222,32496,34223,32496 34214,32496,34214,32496 34087,32496,34094,32496 34087,32497,34096,32497 34109,32497,34210,32497 34109,32498,34209,32498 34087,32498,34098,32498 34087,32499,34099,32499 34107,32499,34210,32499 34087,32500,34101,32500 34106,32500,34211,32500 34089,32501,34211,32501 34093,32502,34210,32502 34094,32503,34211,32503 34095,32504,34211,32504 34098,32505,34211,32505 34098,32506,34213,32506 34098,32507,34214,32508 34098,32509,34215,32509 34098,32510,34216,32511 34096,32512,34216,32512 34093,32513,34216,32513 34092,32514,34220,32515 34090,32516,34220,32516 34089,32517,34219,32517 34089,32518,34223,32518 34087,32519,34224,32519 34086,32520,34224,32521 34055,32522,34055,32522 34077,32522,34078,32522 34070,32522,34071,32522 34081,32522,34083,32522 34065,32522,34067,32522 34058,32522,34060,32522 34074,32522,34074,32522 34086,32522,34223,32522 34048,32522,34049,32522 34052,32522,34053,32522 34066,32523,34222,32523 34048,32523,34062,32523 34065,32524,34218,32524 34045,32524,34063,32524 34044,32525,34218,32525 34045,32526,34218,32526 34218,32527,34218,32527 34045,32527,34216,32527 34043,32528,34214,32529 34043,32530,34213,32530 34043,32531,34087,32531 34089,32531,34212,32531 34043,32532,34052,32532 34061,32532,34085,32532 34090,32532,34212,32532 34043,32533,34051,32533 34091,32533,34212,32533 34067,32533,34084,32533 34067,32534,34082,32534 34043,32534,34049,32534 34092,32534,34212,32534 34093,32535,34211,32535 34071,32535,34079,32535 34043,32535,34045,32536 34073,32536,34078,32536 34093,32536,34210,32536 34075,32537,34075,32537 34092,32537,34210,32538 34091,32539,34210,32539 34057,32540,34057,32540 34090,32540,34211,32540 34058,32541,34059,32541 34088,32541,34211,32541 34221,32541,34224,32541 34220,32542,34225,32542 34086,32542,34211,32542 34053,32542,34062,32542 34219,32543,34227,32543 34050,32543,34065,32543 34086,32543,34216,32543 34218,32544,34227,32544 34087,32544,34216,32544 34049,32544,34065,32544 34088,32545,34227,32545 34070,32545,34073,32545 34047,32545,34065,32545 34089,32546,34227,32546 34046,32546,34076,32546 34090,32547,34226,32547 34040,32547,34077,32547 34091,32548,34234,32548 34039,32548,34078,32548 34091,32549,34235,32549 34037,32549,34078,32549 34091,32550,34234,32550 34039,32550,34080,32550 34090,32551,34235,32551 34086,32551,34088,32551 34039,32551,34081,32551 34039,32552,34082,32552 34087,32552,34235,32552 34088,32553,34238,32553 34039,32553,34083,32553 34036,32554,34083,32554 34089,32554,34240,32554 34088,32555,34242,32555 34034,32555,34084,32555 34033,32556,34243,32556 34032,32557,34244,32557 34031,32558,34244,32558 34035,32559,34243,32559 34025,32559,34030,32559 34035,32560,34242,32560 34035,32561,34037,32561 34026,32560,34029,32562 34042,32561,34242,32563 34043,32564,34241,32564 34043,32565,34242,32565 34046,32566,34244,32567 34047,32568,34244,32568 34051,32569,34243,32569 34238,32570,34242,32570 34051,32570,34236,32571 34051,32572,34235,32572 34050,32573,34235,32573 34050,32574,34233,32574 34053,32575,34233,32576 34054,32577,34233,32577 34058,32578,34059,32578 34065,32578,34233,32581 34065,32582,34234,32584 34071,32585,34237,32585 34071,32586,34238,32586 34072,32587,34238,32588 34071,32589,34237,32589 34071,32590,34236,32590 34088,32591,34235,32591 34072,32591,34084,32591 34072,32592,34081,32592 34088,32592,34237,32593 34072,32593,34079,32593 34073,32594,34074,32594 34083,32594,34237,32594 34082,32595,34237,32595 34081,32596,34237,32596 34080,32597,34237,32597 34221,32598,34235,32598 34080,32598,34215,32598 34222,32599,34232,32599 34078,32599,34214,32600 34223,32600,34223,32600 34227,32600,34231,32600 34079,32601,34208,32601 34215,32601,34215,32602 34081,32602,34206,32602 34087,32603,34191,32603 34193,32603,34205,32603 34076,32604,34079,32604 34087,32604,34190,32604 34194,32604,34203,32604 34086,32605,34190,32605 34074,32605,34081,32605 34196,32605,34202,32606 34074,32606,34082,32606 34085,32606,34189,32606 34196,32607,34201,32607 34075,32607,34188,32607 34197,32608,34200,32608 34077,32608,34078,32608 34142,32608,34147,32608 34081,32608,34134,32608 34150,32608,34187,32608 34082,32609,34133,32609 34151,32609,34186,32609 34066,32610,34066,32610 34152,32610,34186,32610 34079,32610,34132,32610 34072,32610,34075,32610 34070,32611,34083,32611 34065,32611,34067,32611 34153,32611,34157,32611 34085,32611,34132,32611 34161,32611,34185,32611 34065,32612,34068,32612 34070,32612,34127,32612 34162,32612,34184,32612 34072,32613,34127,32613 34066,32613,34068,32613 34163,32613,34183,32614 34067,32614,34069,32614 34072,32614,34125,32614 34173,32615,34179,32615 34064,32615,34124,32615 34163,32615,34166,32615 34063,32616,34123,32616 34102,32617,34121,32617 34063,32617,34098,32617 34062,32618,34098,32618 34117,32618,34120,32618 34104,32618,34115,32618 34061,32619,34098,32619 34106,32619,34108,32619 34111,32619,34113,32619 34060,32620,34098,32620 34060,32621,34099,32621 34059,32622,34099,32622 34059,32623,34100,32623 34058,32624,34101,32625 34058,32626,34102,32626 34057,32627,34102,32628 34057,32629,34103,32629 34056,32630,34104,32630 34056,32631,34102,32631 34055,32632,34102,32632 34055,32633,34103,32633 34056,32634,34103,32635 34056,32636,34104,32636 34058,32637,34104,32637 34059,32638,34105,32642 34057,32643,34104,32644 34058,32645,34102,32645 34063,32646,34100,32646 34081,32647,34081,32647 34063,32647,34075,32647 34088,32647,34099,32648 34089,32649,34099,32649 34065,32648,34074,32650 34089,32650,34101,32650 34090,32651,34102,32651 34066,32651,34073,32652 34092,32652,34103,32652 34066,32653,34072,32653 34093,32653,34102,32653 34067,32654,34072,32655 34095,32654,34102,32656 34067,32656,34071,32656 34067,32657,34070,32657 34096,32657,34102,32657 34067,32658,34068,32658 34098,32658,34101,32658 34099,32659,34101,32659 34100,32660,34101,32660", + }, + [539] = { -- Moonstone Crater (8037 tiles, 169 rects) + name = "Moonstone Crater", + mainArea = 434, + bbox = { x1 = 34099, y1 = 32598, x2 = 34230, y2 = 32709 }, + rects = "34216,32598,34220,32598 34215,32599,34221,32599 34215,32600,34222,32600 34224,32600,34226,32600 34216,32601,34230,32601 34209,32601,34214,32601 34216,32602,34229,32602 34207,32602,34214,32602 34192,32603,34192,32603 34206,32603,34230,32603 34204,32604,34228,32604 34191,32604,34193,32604 34191,32605,34195,32605 34203,32605,34228,32606 34190,32606,34195,32606 34189,32607,34195,32607 34202,32607,34226,32607 34135,32608,34141,32608 34188,32608,34196,32608 34148,32608,34149,32608 34201,32608,34226,32608 34134,32609,34150,32609 34187,32609,34225,32610 34133,32610,34151,32610 34186,32611,34225,32611 34158,32611,34160,32611 34133,32611,34152,32611 34185,32612,34226,32612 34128,32612,34161,32612 34146,32613,34162,32613 34128,32613,34144,32613 34184,32613,34226,32613 34184,32614,34224,32614 34126,32614,34162,32614 34180,32615,34222,32615 34125,32615,34162,32615 34167,32615,34172,32615 34124,32616,34221,32616 34099,32617,34101,32617 34122,32617,34221,32617 34116,32618,34116,32618 34099,32618,34103,32618 34121,32618,34216,32618 34218,32618,34219,32618 34114,32619,34215,32619 34109,32619,34110,32619 34099,32619,34105,32619 34099,32620,34214,32620 34100,32621,34106,32621 34108,32621,34212,32621 34100,32622,34211,32622 34101,32623,34211,32623 34102,32624,34210,32624 34102,32625,34208,32625 34103,32626,34208,32626 34103,32627,34209,32627 34103,32628,34213,32628 34104,32629,34216,32629 34105,32630,34216,32630 34103,32631,34218,32631 34103,32632,34217,32632 34104,32633,34217,32633 34104,32634,34215,32634 34104,32635,34214,32635 34105,32636,34214,32636 34105,32637,34211,32637 34106,32638,34210,32638 34106,32639,34209,32639 34106,32640,34206,32640 34106,32641,34205,32641 34106,32642,34204,32642 34105,32643,34204,32643 34105,32644,34203,32644 34103,32645,34203,32645 34101,32646,34202,32646 34100,32647,34202,32647 34100,32648,34201,32648 34100,32649,34200,32649 34102,32650,34199,32650 34103,32651,34196,32651 34104,32652,34193,32652 34103,32653,34193,32655 34103,32656,34194,32656 34103,32657,34196,32657 34102,32658,34197,32659 34102,32660,34198,32660 34101,32661,34201,32661 34102,32662,34202,32662 34103,32663,34202,32663 34104,32664,34202,32664 34183,32665,34202,32665 34104,32665,34180,32665 34190,32666,34201,32666 34104,32666,34179,32666 34183,32666,34186,32667 34105,32667,34179,32667 34192,32667,34202,32667 34183,32668,34187,32668 34106,32668,34179,32668 34192,32668,34203,32668 34193,32669,34193,32669 34184,32669,34187,32669 34195,32669,34196,32669 34109,32669,34179,32669 34198,32669,34203,32669 34199,32670,34203,32670 34184,32670,34186,32670 34110,32670,34177,32670 34199,32671,34202,32671 34112,32671,34178,32671 34112,32672,34179,32672 34113,32673,34181,32674 34185,32674,34186,32674 34113,32675,34187,32675 34114,32676,34185,32676 34115,32677,34184,32677 34179,32678,34183,32678 34115,32678,34175,32678 34180,32679,34182,32679 34116,32679,34174,32679 34116,32680,34173,32680 34116,32681,34172,32685 34115,32686,34172,32690 34162,32691,34172,32691 34116,32691,34158,32691 34133,32692,34158,32692 34161,32692,34173,32692 34116,32692,34126,32693 34170,32693,34174,32693 34134,32693,34156,32693 34161,32693,34167,32694 34135,32694,34156,32694 34171,32694,34175,32694 34116,32694,34125,32694 34173,32695,34173,32695 34137,32695,34158,32695 34115,32695,34122,32695 34162,32695,34166,32696 34138,32696,34158,32696 34114,32696,34119,32696 34140,32697,34158,32697 34113,32697,34115,32697 34162,32697,34165,32697 34142,32698,34158,32698 34112,32698,34114,32698 34162,32698,34164,32698 34158,32699,34158,32699 34111,32699,34113,32699 34145,32699,34156,32699 34110,32700,34111,32700 34146,32700,34156,32700 34108,32701,34110,32701 34159,32701,34161,32701 34146,32701,34154,32701 34106,32702,34108,32702 34159,32702,34162,32702 34146,32702,34153,32702 34146,32703,34151,32703 34104,32703,34106,32703 34158,32703,34162,32703 34156,32704,34162,32704 34103,32704,34104,32704 34148,32704,34152,32704 34149,32705,34158,32705 34102,32705,34104,32705 34103,32706,34104,32706 34150,32706,34157,32706 34152,32707,34155,32708 34153,32709,34154,32709", + }, + }, + -- maskless (mostly underground) subareas: APPROXIMATE box from the NPC-landmark + -- cluster (outliers dropped, padded, floors = landmark z +-1). Tune via /disco where. + approx = { + [31] = { name = "Thais Underground", mainArea = 24, box = { x1 = 32124, y1 = 32260, x2 = 32259, y2 = 32357 }, floors = { 7, 8, 9, 10, 11, 12 } }, -- 2 landmark(s) + [32] = { name = "Thais Northern Dungeon", mainArea = 24, box = { x1 = 32344, y1 = 32073, x2 = 32434, y2 = 32163 }, floors = { 7, 8, 9 } }, -- 1 landmark(s) + [36] = { name = "Mintwallin", mainArea = 24, box = { x1 = 32348, y1 = 32044, x2 = 32476, y2 = 32192 }, floors = { 12, 13, 14, 15 } }, -- 3 landmark(s) + [37] = { name = "Carlin Underground", mainArea = 3, box = { x1 = 32269, y1 = 31757, x2 = 32365, y2 = 31851 }, floors = { 7, 8, 9 } }, -- 2 landmark(s) + [44] = { name = "Kazordoon Underground", mainArea = 14, box = { x1 = 32596, y1 = 31898, x2 = 32745, y2 = 32032 }, floors = { 11, 12, 13, 14, 15 } }, -- 5 landmark(s) + [48] = { name = "Kazordoon Dwarf Mines", mainArea = 14, box = { x1 = 32362, y1 = 31861, x2 = 32612, y2 = 32067 }, floors = { 7, 8, 9, 10, 11, 12, 13 } }, -- 4 landmark(s) + [51] = { name = "Ab'Dendriel Underground", mainArea = 1, box = { x1 = 32524, y1 = 31521, x2 = 32614, y2 = 31611 }, floors = { 7, 8, 9 } }, -- 1 landmark(s) + [52] = { name = "Hellgate", mainArea = 1, box = { x1 = 32708, y1 = 31527, x2 = 32848, y2 = 31735 }, floors = { 10, 11, 12, 13, 14, 15 } }, -- 10 landmark(s) + [67] = { name = "Deeper Drefia", mainArea = 4, box = { x1 = 32911, y1 = 32264, x2 = 33085, y2 = 32529 }, floors = { 8, 9, 10, 11, 12 } }, -- 5 landmark(s) + [108] = { name = "Pits of Inferno", mainArea = 25, box = { x1 = 32684, y1 = 32181, x2 = 32901, y2 = 32391 }, floors = { 9, 10, 11, 12, 13, 14, 15 } }, -- 10 landmark(s) + [115] = { name = "Formorgar Mines", mainArea = 23, box = { x1 = 32212, y1 = 30975, x2 = 32350, y2 = 31146 }, floors = { 9, 10, 11, 12, 13, 14 } }, -- 2 landmark(s) + [124] = { name = "Beregar", mainArea = 27, box = { x1 = 32488, y1 = 31356, x2 = 32637, y2 = 31490 }, floors = { 7, 8, 9, 10, 11 } }, -- 6 landmark(s) + [126] = { name = "Beregar Mines", mainArea = 27, box = { x1 = 32541, y1 = 31313, x2 = 32805, y2 = 31560 }, floors = { 10, 11, 12, 13, 14, 15 } }, -- 9 landmark(s) + [140] = { name = "Vengoth Mountain Caves", mainArea = 8, box = { x1 = 32946, y1 = 31419, x2 = 33049, y2 = 31544 }, floors = { 1, 2, 3, 4 } }, -- 5 landmark(s) + [156] = { name = "Underground Isle", mainArea = 24, box = { x1 = 32479, y1 = 31976, x2 = 32571, y2 = 32083 }, floors = { 12, 13, 14, 15 } }, -- 3 landmark(s) + [158] = { name = "Demonwar Dungeon", mainArea = 7, box = { x1 = 33212, y1 = 31891, x2 = 33302, y2 = 31981 }, floors = { 14, 15 } }, -- 1 landmark(s) + [175] = { name = "Gnomegate Golem Workshop", mainArea = 14, box = { x1 = 32912, y1 = 31910, x2 = 33002, y2 = 32000 }, floors = { 8, 9, 10 } }, -- 1 landmark(s) + [180] = { name = "Venore Corym Dungeons", mainArea = 25, box = { x1 = 32953, y1 = 31962, x2 = 33106, y2 = 32114 }, floors = { 11, 12, 13 } }, -- 10 landmark(s) + [185] = { name = "Upper Spike", mainArea = 14, box = { x1 = 32197, y1 = 32553, x2 = 32293, y2 = 32649 }, floors = { 7, 8, 9, 10 } }, -- 2 landmark(s) + [186] = { name = "Middle Spike", mainArea = 14, box = { x1 = 32198, y1 = 32553, x2 = 32288, y2 = 32643 }, floors = { 10, 11, 12 } }, -- 1 landmark(s) + [187] = { name = "Lower Spike", mainArea = 14, box = { x1 = 32084, y1 = 32460, x2 = 32385, y2 = 32753 }, floors = { 12, 13, 14, 15 } }, -- 17 landmark(s) + [191] = { name = "Fury Hell", mainArea = 7, box = { x1 = 33245, y1 = 31746, x2 = 33335, y2 = 31836 }, floors = { 12, 13, 14 } }, -- 1 landmark(s) + [194] = { name = "Drefia Spirit Grounds", mainArea = 4, box = { x1 = 32810, y1 = 32381, x2 = 32900, y2 = 32471 }, floors = { 9, 10, 11 } }, -- 1 landmark(s) + [205] = { name = "Rathleton Ancient Sewers", mainArea = 20, box = { x1 = 33525, y1 = 31863, x2 = 33617, y2 = 32028 }, floors = { 7, 8, 9, 10 } }, -- 3 landmark(s) + [216] = { name = "Dawnport Underground Dungeons", mainArea = 5, box = { x1 = 31945, y1 = 31838, x2 = 32035, y2 = 31928 }, floors = { 7, 8, 9 } }, -- 1 landmark(s) + [218] = { name = "Seacrest Grounds", mainArea = 20, box = { x1 = 33502, y1 = 31587, x2 = 33592, y2 = 31677 }, floors = { 13, 14, 15 } }, -- 1 landmark(s) + [219] = { name = "Lower Glooth Factory East", mainArea = 20, box = { x1 = 33491, y1 = 31894, x2 = 33611, y2 = 32011 }, floors = { 12, 13, 14, 15 } }, -- 8 landmark(s) + [223] = { name = "Glooth Factory", mainArea = 20, box = { x1 = 33543, y1 = 31852, x2 = 33747, y2 = 31987 }, floors = { 11, 12, 13 } }, -- 3 landmark(s) + [230] = { name = "Corym Black Market", mainArea = 17, box = { x1 = 32223, y1 = 32766, x2 = 32341, y2 = 32882 }, floors = { 9, 10, 11, 12 } }, -- 3 landmark(s) + [246] = { name = "Krailos Spider Lair", mainArea = 16, box = { x1 = 33691, y1 = 31687, x2 = 33781, y2 = 31777 }, floors = { 7, 8, 9 } }, -- 1 landmark(s) + [257] = { name = "Halls of Ascension", mainArea = 8, box = { x1 = 33251, y1 = 31366, x2 = 33433, y2 = 31502 }, floors = { 11, 12, 13, 14, 15 } }, -- 2 landmark(s) + [258] = { name = "The Dark Void", mainArea = 329, box = { x1 = 32843, y1 = 31489, x2 = 32933, y2 = 31579 }, floors = { 9, 10, 11 } }, -- 1 landmark(s) + [261] = { name = "The First Dragon's Lair", mainArea = 18, box = { x1 = 33551, y1 = 30944, x2 = 33641, y2 = 31034 }, floors = { 13, 14, 15 } }, -- 1 landmark(s) + [262] = { name = "Caverna Exanima", mainArea = 4, box = { x1 = 33238, y1 = 32228, x2 = 33328, y2 = 32318 }, floors = { 11, 12, 13 } }, -- 1 landmark(s) + [269] = { name = "Gnome Deep Hub", mainArea = 14, box = { x1 = 33704, y1 = 32078, x2 = 33883, y2 = 32248 }, floors = { 13, 14, 15 } }, -- 3 landmark(s) + [300] = { name = "Farmine City", mainArea = 8, box = { x1 = 32949, y1 = 31449, x2 = 33081, y2 = 31598 }, floors = { 9, 10, 11, 12, 13, 14, 15 } }, -- 22 landmark(s) + [318] = { name = "Gnomegate", mainArea = 14, box = { x1 = 32919, y1 = 31823, x2 = 33053, y2 = 31984 }, floors = { 8, 9, 10, 11, 12, 13 } }, -- 6 landmark(s) + [324] = { name = "Liberty Bay Fortress", mainArea = 17, box = { x1 = 32350, y1 = 32776, x2 = 32459, y2 = 32875 }, floors = { 1, 2, 3, 4, 5 } }, -- 3 landmark(s) + [346] = { name = "Dream Labyrinth", mainArea = 9, box = { x1 = 32134, y1 = 31992, x2 = 32283, y2 = 32123 }, floors = { 12, 13, 14 } }, -- 15 landmark(s) + [348] = { name = "Haunted Nexus", mainArea = 25, box = { x1 = 32654, y1 = 32202, x2 = 32744, y2 = 32292 }, floors = { 7, 8, 9 } }, -- 1 landmark(s) + [353] = { name = "Secluded Island", mainArea = 352, box = { x1 = 33731, y1 = 31030, x2 = 33821, y2 = 31120 }, floors = { 6, 7, 8 } }, -- 1 landmark(s) + [368] = { name = "Zarganash", mainArea = 7, box = { x1 = 33576, y1 = 31373, x2 = 33666, y2 = 31463 }, floors = { 9, 10, 11 } }, -- 1 landmark(s) + [374] = { name = "The Cube", mainArea = 22, box = { x1 = 33779, y1 = 32451, x2 = 33983, y2 = 32570 }, floors = { 13, 14, 15 } }, -- 2 landmark(s) + [392] = { name = "Hyaena Lairs", mainArea = 4, box = { x1 = 33119, y1 = 32447, x2 = 33216, y2 = 32581 }, floors = { 10, 11, 12, 13 } }, -- 3 landmark(s) + [393] = { name = "Lion Sanctum", mainArea = 4, box = { x1 = 33090, y1 = 32281, x2 = 33180, y2 = 32371 }, floors = { 11, 12, 13 } }, -- 1 landmark(s) + [404] = { name = "Trail to Rascacoon", mainArea = 355, box = { x1 = 33812, y1 = 31287, x2 = 33902, y2 = 31377 }, floors = { 8, 9, 10 } }, -- 1 landmark(s) + [412] = { name = "Antrum of the Fallen", mainArea = 14, box = { x1 = 32632, y1 = 31672, x2 = 32742, y2 = 31814 }, floors = { 9, 10, 11, 12 } }, -- 2 landmark(s) + [413] = { name = "Grotto of the Lost", mainArea = 14, box = { x1 = 32382, y1 = 31348, x2 = 32472, y2 = 31438 }, floors = { 14, 15 } }, -- 1 landmark(s) + [414] = { name = "Dwelling of the Forgotten", mainArea = 14, box = { x1 = 32379, y1 = 31037, x2 = 32583, y2 = 31193 }, floors = { 14, 15 } }, -- 3 landmark(s) + [415] = { name = "Too Hot To Handle", mainArea = 14, box = { x1 = 32616, y1 = 31780, x2 = 32706, y2 = 31870 }, floors = { 9, 10, 11 } }, -- 1 landmark(s) + [426] = { name = "Temporal Tides", mainArea = 18, box = { x1 = 33283, y1 = 30941, x2 = 33373, y2 = 31031 }, floors = { 14, 15 } }, -- 1 landmark(s) + [431] = { name = "Sparkling Pools", mainArea = 7, box = { x1 = 33625, y1 = 32877, x2 = 33715, y2 = 32967 }, floors = { 14, 15 } }, -- 1 landmark(s) + [433] = { name = "Primal Gnome Hub", mainArea = 7, box = { x1 = 33474, y1 = 32811, x2 = 33582, y2 = 32947 }, floors = { 13, 14, 15 } }, -- 4 landmark(s) + [446] = { name = "Deeper Ingol", mainArea = 22, box = { x1 = 33707, y1 = 32498, x2 = 33870, y2 = 32636 }, floors = { 9, 10, 11, 12, 13 } }, -- 5 landmark(s) + [447] = { name = "Iksupan", mainArea = 19, box = { x1 = 33995, y1 = 31679, x2 = 34085, y2 = 31769 }, floors = { 9, 10, 11 } }, -- 1 landmark(s) + [465] = { name = "Secret Subarea", mainArea = 466, box = { x1 = 31905, y1 = 31000, x2 = 31995, y2 = 31090 }, floors = { 5, 6, 7 } }, -- 1 landmark(s) + [474] = { name = "Blood Vestibule", mainArea = 4, box = { x1 = 34025, y1 = 31938, x2 = 34115, y2 = 32054 }, floors = { 13, 14, 15 } }, -- 2 landmark(s) + [477] = { name = "Oskayaat Undercity", mainArea = 19, box = { x1 = 32985, y1 = 32866, x2 = 33075, y2 = 32956 }, floors = { 8, 9, 10 } }, -- 1 landmark(s) + [494] = { name = "Podzilla Stalk", mainArea = 20, box = { x1 = 33774, y1 = 31953, x2 = 33864, y2 = 32043 }, floors = { 8, 9, 10 } }, -- 1 landmark(s) + [499] = { name = "Chocolate Mines", mainArea = 9, box = { x1 = 33311, y1 = 32063, x2 = 33412, y2 = 32185 }, floors = { 7, 8, 9 } }, -- 5 landmark(s) + [500] = { name = "Dessert Dungeons", mainArea = 9, box = { x1 = 33370, y1 = 32142, x2 = 33460, y2 = 32232 }, floors = { 7, 8, 9 } }, -- 1 landmark(s) + [502] = { name = "azzilon - events", mainArea = 7, box = { x1 = 33988, y1 = 32291, x2 = 34139, y2 = 32542 }, floors = { 13, 14, 15 } }, -- 7 landmark(s) + [508] = { name = "Bloody Tusks", mainArea = 8, box = { x1 = 32911, y1 = 31375, x2 = 33001, y2 = 31465 }, floors = { 5, 6, 7 } }, -- 1 landmark(s) + [510] = { name = "Book World", mainArea = 7, box = { x1 = 32494, y1 = 32474, x2 = 32691, y2 = 32667 }, floors = { 7, 8, 9, 10, 11, 12 } }, -- 8 landmark(s) + [512] = { name = "Norcferatu Dungeons", mainArea = 8, box = { x1 = 32834, y1 = 31377, x2 = 32993, y2 = 31548 }, floors = { 9, 10, 11, 12, 13, 14, 15 } }, -- 4 landmark(s) + [513] = { name = "RotG - Events", mainArea = 1, box = { x1 = 32804, y1 = 31487, x2 = 32894, y2 = 31577 }, floors = { 14, 15 } }, -- 1 landmark(s) + [529] = { name = "Crimson Court", mainArea = 24, box = { x1 = 32367, y1 = 32642, x2 = 32457, y2 = 32732 }, floors = { 11, 12, 13 } }, -- 1 landmark(s) + [533] = { name = "Asura Citadel", mainArea = 434, box = { x1 = 33844, y1 = 32608, x2 = 33943, y2 = 32699 }, floors = { 7, 8, 9 } }, -- 2 landmark(s) + [545] = { name = "Radiant Unbound", mainArea = 434, box = { x1 = 33911, y1 = 32595, x2 = 34054, y2 = 32687 }, floors = { 5, 6, 7 } }, -- 2 landmark(s) + }, +} diff --git a/data/scripts/discovery_system.lua b/data/scripts/discovery_system.lua new file mode 100644 index 000000000..a2ae9330d --- /dev/null +++ b/data/scripts/discovery_system.lua @@ -0,0 +1,793 @@ +-- Discovery System ("Measuring Tibia") - AUTOMATIC exploration (no "Start Discovering" button). +-- Entering a registered subarea auto-activates discovery: the server rolls 7 viewpoints (PoI), +-- walking within view range of one marks it found; 7/7 unlocks the subarea permanently (KV). +-- Wire: S2C 0xDD sub 1 (DiscoveryData), sub 5 (SetDiscoveryArea), sub 10 (SetCurrentArea); +-- area/subarea ids must match the client's map-a743.dat (see DISCOVERY_AREA_MAP.txt dump). +-- Rewards: achievements 470 "Widely Travelled" / 539 "Measuring the World", Discoverer outfit +-- (1094/1095) + addons, cyclopedia MAP titles 74/75 via kv "discovery/map-percent" + checkMap(). + +-- exact client footprints (generated from subarea-*.bmp.lzma masks); load-order guard +if not DiscoveryGeometry then + dofile(CORE_DIRECTORY .. "/scripts/discovery_geometry.lua") +end + +DiscoverySystem = DiscoverySystem or {} + +local VIEW_X = 7 -- client game window is 15x11 -> half extents +local VIEW_Y = 5 +local POI_TARGET = 7 +local MIN_POI_SPACING = 4 +-- bump when subarea geometry changes: stale rolled viewpoints (possibly outside the +-- new footprint) are wiped on login; completed subareas are kept +local GEOMETRY_VERSION = 4 + +local OUTFIT_DISCOVERER_FEMALE = 1095 +local OUTFIT_DISCOVERER_MALE = 1094 +local ACHIEVEMENT_WIDELY_TRAVELLED = 470 +local ACHIEVEMENT_MEASURING_THE_WORLD = 539 + +-- main areas: taken 1:1 from the client (DiscoveryGeometry.mains, real area_id -> name) +local MAIN_AREAS = DiscoveryGeometry.mains + +-- SUBAREA_LIST is built automatically from DiscoveryGeometry.subs (207 pixel-exact, +-- mutually disjoint surface footprints). Underground subareas have no client mask - +-- add them to MANUAL_SUBAREAS with hand-made boxes (tune via /disco where, Lua only). +-- floors = where the player counts as inside (detection, incl. rooftops/mountain tops); +-- poiFloors = where viewpoints may be rolled (reachable ground levels only). +local SURFACE = { 0, 1, 2, 3, 4, 5, 6, 7 } + +-- per-subarea tweaks on top of the generated geometry +local OVERRIDES = { + [34] = { poiFloors = { 6, 7 } }, -- Mount Sternum: viewpoints also on the plateau (z6) + [33] = { floors = { 8, 9 } }, -- Trolls' Cave: underground, mask = horizontal footprint + [35] = { extraBoxes = { { from = { x = 32130, y = 32360 }, to = { x = 32230, y = 32450 }, floors = { 8 } } } }, -- Fibula dungeon + [317] = { floors = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, poiFloors = { 7, 8 } }, -- Rookgaard incl. dungeons +} + +-- hand-made subareas (none right now - undergrounds come from DiscoveryGeometry.approx); +-- format: { id, mainArea, name, floors, boxes = { { from = {x,y}, to = {x,y}, floors? } } } +local MANUAL_SUBAREAS = {} + +local function floorSetOf(list) + local set = {} + for _, z in ipairs(list) do + set[z] = true + end + return set +end + +-- "x1,y1,x2,y2 x1,y1,x2,y2 ..." -> flat number array (stride 4) +local function parseRects(str) + local flat = {} + local n = 0 + for x1, y1, x2, y2 in str:gmatch("(%d+),(%d+),(%d+),(%d+)") do + flat[n + 1] = tonumber(x1) + flat[n + 2] = tonumber(y1) + flat[n + 3] = tonumber(x2) + flat[n + 4] = tonumber(y2) + n = n + 4 + end + return flat +end + +-- def carries: rects = flat array (uniform def.floors) + extra = { {x1,y1,x2,y2, floors} } +-- (per-box floor exceptions). finalizeDef computes bbox, floor sets and the cumulative +-- area array (rects first, then extras) used for weighted viewpoint rolls. +local function finalizeDef(def) + local bb = def.bbox and { x1 = def.bbox.x1, y1 = def.bbox.y1, x2 = def.bbox.x2, y2 = def.bbox.y2 } or nil + local rects = def.rects + local cum = {} + local area = 0 + local nRects = #rects / 4 + for i = 0, nRects - 1 do + local x1, y1, x2, y2 = rects[i * 4 + 1], rects[i * 4 + 2], rects[i * 4 + 3], rects[i * 4 + 4] + if not bb then + bb = { x1 = x1, y1 = y1, x2 = x2, y2 = y2 } + else + bb.x1 = math.min(bb.x1, x1) + bb.y1 = math.min(bb.y1, y1) + bb.x2 = math.max(bb.x2, x2) + bb.y2 = math.max(bb.y2, y2) + end + area = area + (x2 - x1 + 1) * (y2 - y1 + 1) + cum[i + 1] = area + end + def.extra = def.extra or {} + for _, e in ipairs(def.extra) do + bb.x1 = math.min(bb.x1, e.x1) + bb.y1 = math.min(bb.y1, e.y1) + bb.x2 = math.max(bb.x2, e.x2) + bb.y2 = math.max(bb.y2, e.y2) + area = area + (e.x2 - e.x1 + 1) * (e.y2 - e.y1 + 1) + cum[#cum + 1] = area + e.floorSet = floorSetOf(e.floors) + end + def.nRects = nRects + def.bbox = bb + def.area = area + def.cum = cum + def.floorSet = floorSetOf(def.floors) + return def +end + +local SUBAREA_LIST = {} + +local function addDef(def) + SUBAREA_LIST[#SUBAREA_LIST + 1] = finalizeDef(def) +end + +local function sortedKeys(tbl) + local keys = {} + for k in pairs(tbl) do + keys[#keys + 1] = k + end + table.sort(keys) + return keys +end + +for _, def in ipairs(MANUAL_SUBAREAS) do + local flat = {} + local extras = {} + for _, box in ipairs(def.boxes) do + if box.floors then + extras[#extras + 1] = { x1 = box.from.x, y1 = box.from.y, x2 = box.to.x, y2 = box.to.y, floors = box.floors } + else + flat[#flat + 1] = box.from.x + flat[#flat + 1] = box.from.y + flat[#flat + 1] = box.to.x + flat[#flat + 1] = box.to.y + end + end + def.rects = flat + def.extra = extras + def.boxes = nil + addDef(def) +end + +-- pixel-exact surface footprints (client masks) +for _, sid in ipairs(sortedKeys(DiscoveryGeometry.subs)) do + local g = DiscoveryGeometry.subs[sid] + local ov = OVERRIDES[sid] or {} + local extras = {} + for _, box in ipairs(ov.extraBoxes or {}) do + extras[#extras + 1] = { x1 = box.from.x, y1 = box.from.y, x2 = box.to.x, y2 = box.to.y, floors = box.floors or { 7 } } + end + addDef({ + id = sid, + mainArea = g.mainArea, + name = g.name, + floors = ov.floors or SURFACE, + poiFloors = ov.poiFloors or { 7 }, + rects = parseRects(g.rects), + extra = extras, + bbox = g.bbox, + }) +end + +-- approximate underground boxes (landmark clusters) - AFTER the exact ones, so an exact +-- footprint always wins the first-match scan +for _, sid in ipairs(sortedKeys(DiscoveryGeometry.approx or {})) do + local g = DiscoveryGeometry.approx[sid] + local ov = OVERRIDES[sid] or {} + local floors = ov.floors or g.floors + addDef({ + id = sid, + mainArea = g.mainArea, + name = g.name, + approx = true, + floors = floors, + poiFloors = ov.poiFloors or floors, + rects = { g.box.x1, g.box.y1, g.box.x2, g.box.y2 }, + }) +end + +local sessions = {} -- guid -> { subId, def, pois = { {x, y, z, found} }, foundCount, completed } + +-- ===== Area donations -> "Improved Respawn Rate" (0xDD sub 9) ===== +-- Players donate gold to a MAIN area. When the pool reaches the goal, the boost is +-- SCHEDULED: it activates at the NEXT server save and lasts until the following one +-- (24h), then the cycle can repeat (goal amount is consumed, excess carries over). +-- While active, every spawn inside the area's footprints respawns twice as fast. +local DONATION_GOAL = 10000000 -- 10kk per main area +local BOOST_DURATION = 24 * 60 * 60 -- seconds; one full server-save cycle +local donationStore = kv.scoped("discovery-donations") +-- publish the goal for the C++ donation handler (map-UI "Donate", protocolgame 0x92) +donationStore:set("goal", DONATION_GOAL) + +local function donationsOf(areaId) + return donationStore:get("area-" .. areaId) or 0 +end + +local function boostUntil(areaId) + return donationStore:get("boost-until-" .. areaId) or 0 +end + +local function isRespawnBoosted(areaId) + return os.time() < boostUntil(areaId) +end + +local function isBoostScheduled(areaId) + return donationsOf(areaId) >= DONATION_GOAL +end + +function DiscoverySystem.sendDonations(player) + local entries = {} + local mainIds = {} + for mainId in pairs(MAIN_AREAS) do + mainIds[#mainIds + 1] = mainId + end + table.sort(mainIds) + for _, mainId in ipairs(mainIds) do + entries[#entries + 1] = { mainId, isRespawnBoosted(mainId), donationsOf(mainId) } + end + player:sendDiscoveryDonations(DONATION_GOAL, entries) +end + +function DiscoverySystem.applyImprovedRespawnZones() + local rects = {} + local boosted = {} + for _, def in ipairs(SUBAREA_LIST) do + if isRespawnBoosted(def.mainArea) then + boosted[def.mainArea] = true + local r = def.rects + for i = 1, #r, 4 do + rects[#rects + 1] = { r[i], r[i + 1], r[i + 2], r[i + 3] } + end + for _, e in ipairs(def.extra) do + rects[#rects + 1] = { e.x1, e.y1, e.x2, e.y2 } + end + end + end + Game.setImprovedRespawnZones(rects) + local names = {} + for mainId in pairs(boosted) do + names[#names + 1] = MAIN_AREAS[mainId] or tostring(mainId) + end + return #rects, names +end + +function DiscoverySystem.donate(player, areaId, amount) + if not MAIN_AREAS[areaId] then + return false, string.format("unknown main area id %d", areaId) + end + if not amount or amount <= 0 then + return false, "amount must be positive" + end + local wasScheduled = isBoostScheduled(areaId) + donationStore:set("area-" .. areaId, donationsOf(areaId) + amount) + local nowScheduled = isBoostScheduled(areaId) and not wasScheduled + for _, p in ipairs(Game.getPlayers()) do + DiscoverySystem.sendDonations(p) + if nowScheduled then + p:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("Donations for %s reached their goal - improved respawn rate will activate at the next server save and last one day!", MAIN_AREAS[areaId])) + end + end + return true +end + +-- Server-save boundary: consume filled pools -> activate their boost for one day; +-- boosts from the previous day expire here naturally (time comparison). +-- Called from global_server_save.lua and from the /disco ss test command. +function DiscoverySystem.onServerSave() + local activated = {} + for mainId in pairs(MAIN_AREAS) do + if isBoostScheduled(mainId) then + donationStore:set("area-" .. mainId, donationsOf(mainId) - DONATION_GOAL) + donationStore:set("boost-until-" .. mainId, os.time() + BOOST_DURATION) + activated[#activated + 1] = MAIN_AREAS[mainId] or tostring(mainId) + end + end + DiscoverySystem.applyImprovedRespawnZones() + for _, p in ipairs(Game.getPlayers()) do + DiscoverySystem.sendDonations(p) + if #activated > 0 then + p:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("Improved respawn rate is now active in: %s (for one day).", table.concat(activated, ", "))) + end + end + return #activated +end + +-- test/admin helper: zero every pool and boost, deactivate zones, refresh everyone +function DiscoverySystem.resetDonations() + for mainId in pairs(MAIN_AREAS) do + donationStore:set("area-" .. mainId, 0) + donationStore:set("boost-until-" .. mainId, 0) + end + DiscoverySystem.applyImprovedRespawnZones() + for _, p in ipairs(Game.getPlayers()) do + DiscoverySystem.sendDonations(p) + end +end + +function DiscoverySystem.donationStatus() + local lines = {} + local mainIds = {} + for mainId in pairs(MAIN_AREAS) do + mainIds[#mainIds + 1] = mainId + end + table.sort(mainIds) + for _, mainId in ipairs(mainIds) do + local donated = donationsOf(mainId) + local until_ = boostUntil(mainId) + if donated > 0 or os.time() < until_ then + local state = "" + if os.time() < until_ then + state = string.format(" [ACTIVE until %s]", os.date("%d.%m %H:%M", until_)) + elseif donated >= DONATION_GOAL then + state = " [SCHEDULED - activates at next server save]" + end + lines[#lines + 1] = string.format("%s: %d/%d%s", MAIN_AREAS[mainId], donated, DONATION_GOAL, state) + end + end + if #lines == 0 then + lines[1] = "no donations yet" + end + return lines +end + +-- safety net for boundaries not covered by an SS event (e.g. expiry while the server +-- runs past 24h): re-apply zones whenever the set of active boosts changes +local lastBoostSignature = nil + +local discoveryBoostWatch = GlobalEvent("DiscoveryBoostWatch") + +function discoveryBoostWatch.onThink(interval) + local sig = {} + for mainId in pairs(MAIN_AREAS) do + if isRespawnBoosted(mainId) then + sig[#sig + 1] = mainId + end + end + table.sort(sig) + local s = table.concat(sig, ",") + if s ~= lastBoostSignature then + lastBoostSignature = s + DiscoverySystem.applyImprovedRespawnZones() + for _, p in ipairs(Game.getPlayers()) do + DiscoverySystem.sendDonations(p) + end + end + return true +end + +discoveryBoostWatch:interval(60000) +discoveryBoostWatch:register() + +local function kv(player) + return player:kv():scoped("discovery") +end + +local function isCompleted(player, subId) + return kv(player):get("done-" .. subId) == true +end + +local function serializePois(pois) + local parts = {} + for _, p in ipairs(pois) do + parts[#parts + 1] = string.format("%d,%d,%d,%d", p.x, p.y, p.z, p.found and 1 or 0) + end + return table.concat(parts, "|") +end + +local function deserializePois(str) + if not str or str == "" then + return nil + end + local pois = {} + for chunk in str:gmatch("[^|]+") do + local x, y, z, f = chunk:match("(%d+),(%d+),(%d+),(%d+)") + if not x then + return nil + end + pois[#pois + 1] = { x = tonumber(x), y = tonumber(y), z = tonumber(z), found = f == "1" } + end + return #pois > 0 and pois or nil +end + +local function countFound(pois) + local n = 0 + for _, p in ipairs(pois) do + if p.found then + n = n + 1 + end + end + return n +end + +local function poisToWire(pois) + local points = {} + for _, p in ipairs(pois) do + points[#points + 1] = { p.x, p.y, p.z, p.found and 1 or 0 } + end + return points +end + +local function positionInDef(position, def) + local bb = def.bbox + local x, y, z = position.x, position.y, position.z + if x < bb.x1 or x > bb.x2 or y < bb.y1 or y > bb.y2 then + return false + end + if def.floorSet[z] then + local r = def.rects + for i = 1, #r, 4 do + if x >= r[i] and x <= r[i + 2] and y >= r[i + 1] and y <= r[i + 3] then + return true + end + end + end + for _, e in ipairs(def.extra) do + if e.floorSet[z] and x >= e.x1 and x <= e.x2 and y >= e.y1 and y <= e.y2 then + return true + end + end + return false +end + +function DiscoverySystem.findSubarea(position) + for _, def in ipairs(SUBAREA_LIST) do + if positionInDef(position, def) then + return def.id, def + end + end + return nil, nil +end + +-- area-weighted random rect via binary search; returns x1, y1, x2, y2, floorsOverride +local function pickSpot(def) + local roll = math.random(def.area) + local cum = def.cum + local lo, hi = 1, #cum + while lo < hi do + local mid = math.floor((lo + hi) / 2) + if cum[mid] < roll then + lo = mid + 1 + else + hi = mid + end + end + if lo <= def.nRects then + local i = (lo - 1) * 4 + local r = def.rects + return r[i + 1], r[i + 2], r[i + 3], r[i + 4], nil + end + local e = def.extra[lo - def.nRects] + return e.x1, e.y1, e.x2, e.y2, e.floors +end + +local function generatePois(player, def) + local playerPos = player:getPosition() + local pois = {} + local tries = 0 + while #pois < POI_TARGET and tries < 800 do + tries = tries + 1 + local x1, y1, x2, y2, extraFloors = pickSpot(def) + local floors = extraFloors or def.poiFloors or def.floors + local x = math.random(x1, x2) + local y = math.random(y1, y2) + local z = floors[math.random(#floors)] + local tile = Tile(Position(x, y, z)) + if tile and tile:isWalkable(true) then + -- never inside the player's current view (they must walk to find it) + local hiddenFromPlayer = z ~= playerPos.z or math.abs(x - playerPos.x) > VIEW_X + 1 or math.abs(y - playerPos.y) > VIEW_Y + 1 + if hiddenFromPlayer then + local spaced = true + for _, p in ipairs(pois) do + if p.z == z and math.abs(p.x - x) < MIN_POI_SPACING and math.abs(p.y - y) < MIN_POI_SPACING then + spaced = false + break + end + end + -- relax the spacing rule if the box is hard to fill + if spaced or tries > 600 then + pois[#pois + 1] = { x = x, y = y, z = z, found = false } + end + end + end + end + return #pois == POI_TARGET and pois or nil +end + +local function subareaCounts(player, mainId) + local total, done = 0, 0 + for _, def in ipairs(SUBAREA_LIST) do + if def.mainArea == mainId then + total = total + 1 + if isCompleted(player, def.id) then + done = done + 1 + end + end + end + return total, done +end + +function DiscoverySystem.sendDiscoveryData(player) + local mains = {} + local discovered = {} + local discoverable = {} + for mainId, _ in pairs(MAIN_AREAS) do + local total, done = subareaCounts(player, mainId) + for _, def in ipairs(SUBAREA_LIST) do + if def.mainArea == mainId then + if isCompleted(player, def.id) then + discovered[#discovered + 1] = def.id + else + discoverable[#discoverable + 1] = def.id + end + end + end + if total > 0 then + local progress = math.floor(done / total * 100) + local status = done == total and 3 or 1 + mains[#mains + 1] = { mainId, status, progress } + end + end + player:sendDiscoveryData(mains, discovered, discoverable) +end + +function DiscoverySystem.grantMilestones(player) + local totalMains, doneMains = 0, 0 + for mainId, _ in pairs(MAIN_AREAS) do + totalMains = totalMains + 1 + local total, done = subareaCounts(player, mainId) + if total > 0 and done == total then + doneMains = doneMains + 1 + end + end + local percent = totalMains > 0 and math.floor(doneMains / totalMains * 100) or 0 + kv(player):set("map-percent", percent) + + if doneMains >= 1 then + -- first fully explored main area: Discoverer outfit + "Widely Travelled" + if not player:hasAchievement(ACHIEVEMENT_WIDELY_TRAVELLED) then + player:addAchievement(ACHIEVEMENT_WIDELY_TRAVELLED) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have earned the Discoverer outfit!") + end + player:addOutfit(OUTFIT_DISCOVERER_MALE) + player:addOutfit(OUTFIT_DISCOVERER_FEMALE) + end + if percent >= 50 then + player:addOutfitAddon(OUTFIT_DISCOVERER_MALE, 1) + player:addOutfitAddon(OUTFIT_DISCOVERER_FEMALE, 1) + end + if percent >= 100 then + if not player:hasAchievement(ACHIEVEMENT_MEASURING_THE_WORLD) then + player:addAchievement(ACHIEVEMENT_MEASURING_THE_WORLD) + end + player:addOutfitAddon(OUTFIT_DISCOVERER_MALE, 2) + player:addOutfitAddon(OUTFIT_DISCOVERER_FEMALE, 2) + end + + -- cyclopedia MAP titles (74 Dedicated Entrepreneur @50%, 75 Globetrotter @100%) read map-percent + player:checkNewTitles() +end + +local function sendAreaState(player, subId, session, active) + player:sendDiscoveryArea(subId, active, POI_TARGET, poisToWire(session.pois)) +end + +local function enterSubarea(player, subId, def) + if isCompleted(player, subId) then + player:sendDiscoveryCurrentArea(subId) + player:sendDiscoveryExploring(0) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("You have entered %s (fully explored).", def.name)) + sessions[player:getGuid()] = { subId = subId, def = def, completed = true } + return + end + + local pois = deserializePois(kv(player):get("pois-" .. subId)) + if not pois then + pois = generatePois(player, def) + if not pois then + logger.warn("[DiscoverySystem] could not roll {} viewpoints for subarea {} ({})", POI_TARGET, subId, def.name) + return + end + kv(player):set("pois-" .. subId, serializePois(pois)) + end + + local session = { subId = subId, def = def, pois = pois, foundCount = countFound(pois) } + sessions[player:getGuid()] = session + player:sendDiscoveryCurrentArea(subId) + player:sendDiscoveryExploring(subId) + sendAreaState(player, subId, session, true) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("You have entered %s. Exploration in progress: %d/%d viewpoints found.", def.name, session.foundCount, POI_TARGET)) +end + +local function leaveSubarea(player, session) + sessions[player:getGuid()] = nil + player:sendDiscoveryCurrentArea(0) + player:sendDiscoveryExploring(0) + if session.def then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("You have left %s.", session.def.name)) + end +end + +local function completeSubarea(player, session) + kv(player):set("done-" .. session.subId, true) + kv(player):set("pois-" .. session.subId, "") + session.completed = true + player:sendDiscoveryExploring(0) + player:getPosition():sendMagicEffect(CONST_ME_FIREWORK_BLUE) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("Congratulations! You have fully explored %s.", session.def.name)) + sendAreaState(player, session.subId, session, false) + DiscoverySystem.sendDiscoveryData(player) + DiscoverySystem.grantMilestones(player) +end + +-- Debug/restore: mark a subarea (or all) fully explored without walking. +function DiscoverySystem.markComplete(player, subId) + local ids = {} + if subId then + ids = { subId } + else + for _, def in ipairs(SUBAREA_LIST) do + ids[#ids + 1] = def.id + end + end + for _, id in ipairs(ids) do + kv(player):set("done-" .. id, true) + kv(player):set("pois-" .. id, "") + end + sessions[player:getGuid()] = nil + player:sendDiscoveryCurrentArea(0) + player:sendDiscoveryExploring(0) + DiscoverySystem.sendDiscoveryData(player) + DiscoverySystem.grantMilestones(player) + return #ids +end + +local function checkViewpoints(player, session) + local pos = player:getPosition() + local foundNow = false + for _, p in ipairs(session.pois) do + if not p.found and p.z == pos.z and math.abs(p.x - pos.x) <= VIEW_X and math.abs(p.y - pos.y) <= VIEW_Y then + p.found = true + session.foundCount = session.foundCount + 1 + foundNow = true + Position(p.x, p.y, p.z):sendMagicEffect(CONST_ME_FIREWORK_YELLOW) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("You have discovered a viewpoint! (%d/%d)", session.foundCount, POI_TARGET)) + -- Echo Warden: each discovered viewpoint may ARM a world-wide pending echo + -- (released later at some eligible kill anywhere - see echo_warden.lua) + if EchoWarden and EchoWarden.onViewpointDiscovered then + EchoWarden.onViewpointDiscovered(player) + end + end + end + if foundNow then + kv(player):set("pois-" .. session.subId, serializePois(session.pois)) + if session.foundCount >= POI_TARGET then + completeSubarea(player, session) + else + sendAreaState(player, session.subId, session, true) + end + end +end + +function DiscoverySystem.tick(player) + local guid = player:getGuid() + local session = sessions[guid] + local subId, def = DiscoverySystem.findSubarea(player:getPosition()) + + if session and session.subId ~= subId then + leaveSubarea(player, session) + session = nil + end + if not session and subId then + enterSubarea(player, subId, def) + session = sessions[guid] + end + if session and not session.completed then + checkViewpoints(player, session) + end +end + +function DiscoverySystem.reset(player) + for _, def in ipairs(SUBAREA_LIST) do + kv(player):set("done-" .. def.id, false) + kv(player):set("pois-" .. def.id, "") + end + kv(player):set("map-percent", 0) + sessions[player:getGuid()] = nil + player:sendDiscoveryCurrentArea(0) + DiscoverySystem.sendDiscoveryData(player) +end + +function DiscoverySystem.status(player) + -- summary per main area + detail lines only for started-but-unfinished subareas + local lines = {} + local perMain = {} + local inProgress = {} + for _, def in ipairs(SUBAREA_LIST) do + local pm = perMain[def.mainArea] + if not pm then + pm = { total = 0, done = 0 } + perMain[def.mainArea] = pm + end + pm.total = pm.total + 1 + if isCompleted(player, def.id) then + pm.done = pm.done + 1 + else + local pois = deserializePois(kv(player):get("pois-" .. def.id)) + if pois then + inProgress[#inProgress + 1] = string.format(" %s (%d): %d/%d", def.name, def.id, countFound(pois), POI_TARGET) + end + end + end + local mainIds = {} + for mainId in pairs(perMain) do + mainIds[#mainIds + 1] = mainId + end + table.sort(mainIds) + for _, mainId in ipairs(mainIds) do + local pm = perMain[mainId] + lines[#lines + 1] = string.format("%s: %d/%d subareas done", MAIN_AREAS[mainId] or ("area " .. mainId), pm.done, pm.total) + end + if #inProgress > 0 then + lines[#lines + 1] = "In progress:" + for _, l in ipairs(inProgress) do + lines[#lines + 1] = l + end + end + return lines +end + +function DiscoverySystem.dumpPois(player) + local session = sessions[player:getGuid()] + if session and session.pois then + logger.info("[disco] {} subarea {} pois: {}", player:getName(), session.subId, serializePois(session.pois)) + return true + end + return false +end + +local discoveryTick = GlobalEvent("DiscoverySystemTick") + +function discoveryTick.onThink(interval) + for _, player in ipairs(Game.getPlayers()) do + DiscoverySystem.tick(player) + end + return true +end + +discoveryTick:interval(1000) +discoveryTick:register() + +local discoveryLogin = CreatureEvent("DiscoverySystemLogin") +discoveryLogin:type("login") + +function discoveryLogin.onLogin(player) + local store = kv(player) + if store:get("geom-version") ~= GEOMETRY_VERSION then + for _, def in ipairs(SUBAREA_LIST) do + store:set("pois-" .. def.id, "") + end + store:set("geom-version", GEOMETRY_VERSION) + end + DiscoverySystem.sendDiscoveryData(player) + DiscoverySystem.sendDonations(player) + return true +end + +discoveryLogin:register() + +local discoveryStartup = GlobalEvent("DiscoverySystemStartup") + +function discoveryStartup.onStartup() + local rects, names = DiscoverySystem.applyImprovedRespawnZones() + if rects > 0 then + logger.info("[DiscoverySystem] improved respawn active in: {} ({} rects)", table.concat(names, ", "), rects) + end + return true +end + +discoveryStartup:register() + +local discoveryLogout = CreatureEvent("DiscoverySystemLogout") +discoveryLogout:type("logout") + +function discoveryLogout.onLogout(player) + sessions[player:getGuid()] = nil + return true +end + +discoveryLogout:register() diff --git a/data/scripts/globalevents/global_server_save.lua b/data/scripts/globalevents/global_server_save.lua index c68c3dedc..da432e231 100644 --- a/data/scripts/globalevents/global_server_save.lua +++ b/data/scripts/globalevents/global_server_save.lua @@ -12,6 +12,11 @@ local function ServerSave() -- Update daily reward next server save timestamp UpdateDailyRewardGlobalStorage(DailyReward.storages.lastServerSave, os.time()) + + -- Discovery donations: activate scheduled improved-respawn boosts for the next day + if DiscoverySystem and DiscoverySystem.onServerSave then + DiscoverySystem.onServerSave() + end end local function ServerSaveWarning(time) diff --git a/data/scripts/spells/attack/buzz.lua b/data/scripts/spells/attack/buzz.lua index 13e5a594c..fdd15035b 100644 --- a/data/scripts/spells/attack/buzz.lua +++ b/data/scripts/spells/attack/buzz.lua @@ -9,7 +9,7 @@ local function buzzFormula(level, maglevel) return -min, -max end --- Each combat needs its OWN callback name (Canary won't let two combats share a callback name); all +-- Each combat needs its OWN callback name (won't let two combats share a callback name); all -- three delegate to the same formula. function onGetFormulaValues(player, level, maglevel, basePower) return buzzFormula(level, maglevel) diff --git a/data/scripts/spells/attack/death_echo.lua b/data/scripts/spells/attack/death_echo.lua index d62430fc5..da3ea66a6 100644 --- a/data/scripts/spells/attack/death_echo.lua +++ b/data/scripts/spells/attack/death_echo.lua @@ -113,5 +113,6 @@ spell:blockWalls(true) spell:cooldown(6 * 1000) spell:groupCooldown(2 * 1000) spell:needLearn(false) + spell:vocation("sorcerer;true", "master sorcerer;true") spell:register() diff --git a/data/scripts/spells/attack/death_strike.lua b/data/scripts/spells/attack/death_strike.lua index 155fa3a2a..559b10312 100644 --- a/data/scripts/spells/attack/death_strike.lua +++ b/data/scripts/spells/attack/death_strike.lua @@ -9,7 +9,7 @@ local function deathStrikeFormula(level, maglevel) return -min, -max end --- Each combat needs its OWN callback name (Canary won't let two combats share a callback name); all +-- Each combat needs its OWN callback name (won't let two combats share a callback name); all -- delegate to the same formula. function onGetFormulaValues(player, level, maglevel, basePower) return deathStrikeFormula(level, maglevel) diff --git a/data/scripts/spells/attack/divine_barrage.lua b/data/scripts/spells/attack/divine_barrage.lua index c69b9edeb..cbcd8e636 100644 --- a/data/scripts/spells/attack/divine_barrage.lua +++ b/data/scripts/spells/attack/divine_barrage.lua @@ -34,5 +34,6 @@ spell:blockWalls(true) spell:needLearn(false) spell:cooldown(4 * 1000) spell:groupCooldown(2 * 1000) + spell:vocation("paladin;true", "royal paladin;true") spell:register() diff --git a/data/scripts/spells/attack/energy_wave.lua b/data/scripts/spells/attack/energy_wave.lua index 3ff932fc0..d3fd8e9da 100644 --- a/data/scripts/spells/attack/energy_wave.lua +++ b/data/scripts/spells/attack/energy_wave.lua @@ -9,7 +9,7 @@ local function formulaFunction(player, level, maglevel) return -min, -max end --- Each combat needs its OWN callback name (Canary won't let two combats share a callback name); all +-- Each combat needs its OWN callback name (won't let two combats share a callback name); all -- delegate to the same formula. function onGetFormulaValues(player, level, maglevel, basePower) return formulaFunction(player, level, maglevel) diff --git a/data/scripts/spells/attack/fire_wave.lua b/data/scripts/spells/attack/fire_wave.lua index b9e879d04..b8f28f706 100644 --- a/data/scripts/spells/attack/fire_wave.lua +++ b/data/scripts/spells/attack/fire_wave.lua @@ -8,7 +8,7 @@ local function fireWaveFormula(level, maglevel) return -min, -max end --- Each combat needs its OWN callback name (Canary won't let two combats share a callback name); all +-- Each combat needs its OWN callback name (won't let two combats share a callback name); all -- three delegate to the same formula. function onGetFormulaValues(player, level, maglevel, basePower) return fireWaveFormula(level, maglevel) diff --git a/data/scripts/spells/attack/flame_strike.lua b/data/scripts/spells/attack/flame_strike.lua index 15d8e97a9..d0de18ade 100644 --- a/data/scripts/spells/attack/flame_strike.lua +++ b/data/scripts/spells/attack/flame_strike.lua @@ -8,7 +8,7 @@ local function flameFormula(level, maglevel, basePower) return -math.floor(avg * 0.9), -math.ceil(avg * 1.1) end --- Each combat needs its OWN callback name (Canary won't let two combats share a callback name); all +-- Each combat needs its OWN callback name (won't let two combats share a callback name); all -- three delegate to the same formula. function onGetFormulaValues(player, level, maglevel, basePower) return flameFormula(level, maglevel, basePower) diff --git a/data/scripts/spells/attack/forked_glacier.lua b/data/scripts/spells/attack/forked_glacier.lua index b1bcfe93a..549e358ac 100644 --- a/data/scripts/spells/attack/forked_glacier.lua +++ b/data/scripts/spells/attack/forked_glacier.lua @@ -48,5 +48,6 @@ spell:blockWalls(true) spell:cooldown(6 * 1000) spell:groupCooldown(2 * 1000, 2 * 1000) spell:needLearn(false) + spell:vocation("druid;true", "elder druid;true") spell:register() diff --git a/data/scripts/spells/attack/forked_thorns.lua b/data/scripts/spells/attack/forked_thorns.lua index e24fcf205..1937505ce 100644 --- a/data/scripts/spells/attack/forked_thorns.lua +++ b/data/scripts/spells/attack/forked_thorns.lua @@ -48,5 +48,6 @@ spell:blockWalls(true) spell:cooldown(6 * 1000) spell:groupCooldown(2 * 1000, 2 * 1000) spell:needLearn(false) + spell:vocation("druid;true", "elder druid;true") spell:register() diff --git a/data/scripts/spells/attack/great_death_beam.lua b/data/scripts/spells/attack/great_death_beam.lua index 82fc1476a..c2b34ffee 100644 --- a/data/scripts/spells/attack/great_death_beam.lua +++ b/data/scripts/spells/attack/great_death_beam.lua @@ -4,7 +4,7 @@ local function formulaFunction(level, maglevel) return -min, -max end --- One uniquely-named formula callback per grade Combat (Canary won't load the same callback name onto +-- One uniquely-named formula callback per grade Combat (won't load the same callback name onto -- two different Combat objects -> the duplicates silently lose their formula). All delegate to formulaFunction. function onGetFormulaValuesGrade1(player, level, maglevel) return formulaFunction(level, maglevel) diff --git a/data/scripts/spells/attack/great_fire_wave.lua b/data/scripts/spells/attack/great_fire_wave.lua index 17a41bfc1..7067dab59 100644 --- a/data/scripts/spells/attack/great_fire_wave.lua +++ b/data/scripts/spells/attack/great_fire_wave.lua @@ -9,7 +9,7 @@ local function fireWaveFormula(level, maglevel) return -min, -max end --- Each combat needs its OWN callback name (Canary won't let two combats share a callback name); all +-- Each combat needs its OWN callback name (won't let two combats share a callback name); all -- delegate to the same formula. function onGetFormulaValues(player, level, maglevel, basePower) return fireWaveFormula(level, maglevel) diff --git a/data/scripts/spells/attack/hells_core.lua b/data/scripts/spells/attack/hells_core.lua index 7996377c6..a50facae0 100644 --- a/data/scripts/spells/attack/hells_core.lua +++ b/data/scripts/spells/attack/hells_core.lua @@ -9,7 +9,7 @@ local function hellsCoreFormula(level, maglevel) return -min, -max end --- Each combat needs its OWN callback name (Canary won't let two combats share a callback name); all +-- Each combat needs its OWN callback name (won't let two combats share a callback name); all -- delegate to the same formula. function onGetFormulaValues(player, level, maglevel, basePower) return hellsCoreFormula(level, maglevel) diff --git a/data/scripts/spells/attack/rage_of_the_skies.lua b/data/scripts/spells/attack/rage_of_the_skies.lua index 2c0fa4142..c016da4cd 100644 --- a/data/scripts/spells/attack/rage_of_the_skies.lua +++ b/data/scripts/spells/attack/rage_of_the_skies.lua @@ -9,7 +9,7 @@ local function rageFormula(level, maglevel) return -min, -max end --- Each combat needs its OWN callback name (Canary won't let two combats share a callback name); all +-- Each combat needs its OWN callback name (won't let two combats share a callback name); all -- three delegate to the same formula. function onGetFormulaValues(player, level, maglevel, basePower) return rageFormula(level, maglevel) diff --git a/data/scripts/spells/attack/scorch.lua b/data/scripts/spells/attack/scorch.lua index 7457c286d..e08a3bd17 100644 --- a/data/scripts/spells/attack/scorch.lua +++ b/data/scripts/spells/attack/scorch.lua @@ -8,7 +8,7 @@ local function scorchFormula(level, maglevel) return -min, -max end --- Each combat needs its OWN callback name (Canary won't let two combats share a callback name); all +-- Each combat needs its OWN callback name (won't let two combats share a callback name); all -- three delegate to the same formula. function onGetFormulaValues(player, level, maglevel, basePower) return scorchFormula(level, maglevel) diff --git a/data/scripts/spells/attack/shield_bash.lua b/data/scripts/spells/attack/shield_bash.lua index 11544f9f7..c5a462804 100644 --- a/data/scripts/spells/attack/shield_bash.lua +++ b/data/scripts/spells/attack/shield_bash.lua @@ -104,5 +104,6 @@ spell:blockWalls(true) spell:cooldown(4 * 1000) spell:groupCooldown(2 * 1000) spell:needLearn(false) + spell:vocation("knight;true", "elite knight;true") spell:register() diff --git a/data/scripts/spells/attack/shield_slam.lua b/data/scripts/spells/attack/shield_slam.lua index a89d44d72..06835d023 100644 --- a/data/scripts/spells/attack/shield_slam.lua +++ b/data/scripts/spells/attack/shield_slam.lua @@ -110,5 +110,6 @@ spell:needWeapon(false) spell:cooldown(6 * 1000) spell:groupCooldown(2 * 1000) spell:needLearn(false) + spell:vocation("knight;true", "elite knight;true") spell:register() diff --git a/data/scripts/spells/attack/thousand_fist_blows.lua b/data/scripts/spells/attack/thousand_fist_blows.lua index 43398c659..6817b0d15 100644 --- a/data/scripts/spells/attack/thousand_fist_blows.lua +++ b/data/scripts/spells/attack/thousand_fist_blows.lua @@ -82,5 +82,6 @@ spell:needWeapon(false) spell:needLearn(false) spell:cooldown(12 * 1000) spell:groupCooldown(2 * 1000) + spell:vocation("monk;true", "exalted monk;true") spell:register() diff --git a/data/scripts/talkactions/god/boss_difficulty_test.lua b/data/scripts/talkactions/god/boss_difficulty_test.lua new file mode 100644 index 000000000..53625617d --- /dev/null +++ b/data/scripts/talkactions/god/boss_difficulty_test.lua @@ -0,0 +1,40 @@ +-- Boss Difficulty Selection window — S2C opcode 0x2F. +-- Field -> controller (RE'd open handler 0x1405ed8d3): +-- f1->+0x40 = lowestDifficulty | f2(u8)->+0x44 = SPINNER GATE (f2=0 -> spinner editable!) | +-- f3->+0x48 = raceId | f4->+0x4c = selectedDifficulty (value shown in spinner) | +-- f5->+0x50 = highestDifficultyOfGroup | f6->+0x54 = personalHighestDifficulty | f7->+0x58 = badLuck/1000 +-- +-- LIVE-confirmed: f2=0 makes the "Select Difficulty" spinner appear with arrows; f4 = the shown value. +-- The server NO LONGER auto-closes on the client's 0xC2 (that was making the window vanish); it now +-- just logs the 0xC2 body so we can wire Cancel/Start properly next. +-- +-- Usage: /bossdiff [selected=f4] [lowest=f1] [group=f5] [personal=f6] +-- default: /bossdiff 100 -> boss 100, spinner ON, selected 1, range lowest 1 .. group/personal 25 + +local talkaction = TalkAction("/bossdiff") + +function talkaction.onSay(player, words, param) + local a = {} + for tok in string.gmatch(param or "", "%S+") do + a[#a + 1] = tonumber(tok) + end + + local raceId = a[1] or 100 + local selected = a[2] or 0 -- f4 = selectedDifficulty (spinner start value) + local lowest = a[3] or 0 -- f1 = lowestDifficulty (spinner min = 0) + local group = a[4] or 25 -- f5 = highestDifficultyOfGroup (max = 25) + local personal = a[5] or 25 -- f6 = personalHighestDifficulty (max = 25) + local spinnerGate = 0 -- f2 = 0 -> spinner editable (difficulty 0..25) + + -- numbers = { f1=lowest, f2=gate, f3=raceId, f4=selected, f5=group, f6=personal, f7=badluck } + local numbers = { lowest, spinnerGate, raceId, selected, group, personal, 2000 } + local banners = { "Yvara", "Gryllan", "Frost Walker", "Drift Reaper", "Eradrel" } + + player:sendBossDifficultySelection(0, numbers, banners, {}, {}) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("[bossdiff] boss=%d selected=%d lowest=%d group=%d personal=%d", raceId, selected, lowest, group, personal)) + return true +end + +talkaction:separator(" ") +talkaction:groupType("god") +talkaction:register() diff --git a/data/scripts/talkactions/god/discovery_test.lua b/data/scripts/talkactions/god/discovery_test.lua new file mode 100644 index 000000000..a3192feae --- /dev/null +++ b/data/scripts/talkactions/god/discovery_test.lua @@ -0,0 +1,106 @@ +-- Discovery System debug tool (the system itself runs automatically - see discovery_system.lua). +-- Usage: +-- /disco -> resend DiscoveryData (refresh the Cyclopedia Map tab) +-- /disco status -> summary per main area + subareas in progress +-- /disco where -> your position + which subarea footprint matches +-- /disco done [subId] -> restore/mark subarea(s) complete +-- /disco reset -> wipe your discovery progress +-- /disco tp -> teleport to Thais City (pilot subarea) +-- /disco poi -> reveal your current rolled viewpoints in the server log +-- /disco donate -> donate to a MAIN area (goal = boost scheduled) +-- /disco donations -> pools + boost states (scheduled / active until) +-- /disco ss -> simulate the server-save boundary (activate/expire boosts) + +local talkaction = TalkAction("/disco") + +function talkaction.onSay(player, words, param) + local arg = (param or ""):trim():lower() + + if arg == "reset" then + DiscoverySystem.reset(player) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[disco] discovery progress wiped.") + return true + end + + -- restore: /disco done -> mark ALL registered subareas complete + -- /disco done 28 -> mark subarea 28 complete + if arg == "done" or arg:match("^done ") then + local subId = tonumber(arg:match("done%s+(%d+)")) + local n = DiscoverySystem.markComplete(player, subId) + player:getPosition():sendMagicEffect(CONST_ME_FIREWORK_BLUE) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("[disco] marked %d subarea(s) complete + rewards applied.", n)) + return true + end + + if arg == "tp" then + player:teleportTo(Position(32369, 32214, 7)) + player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[disco] teleported to Thais City.") + return true + end + + if arg == "where" then + local pos = player:getPosition() + local subId, def = DiscoverySystem.findSubarea(pos) + local match = def and string.format("%s (%d)%s", def.name, subId, def.approx and " [approx box]" or "") or "none" + local line = string.format("pos (%d, %d, %d) -> subarea: %s", pos.x, pos.y, pos.z, match) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[disco] " .. line) + logger.info("[disco] {} where: {}", player:getName(), line) + return true + end + + if arg == "status" then + for _, line in ipairs(DiscoverySystem.status(player)) do + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[disco] " .. line) + end + return true + end + + if arg:match("^donate ") then + local areaId, amount = arg:match("donate%s+(%d+)%s+(%d+)") + if not areaId then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[disco] usage: /disco donate ") + return true + end + local ok, err = DiscoverySystem.donate(player, tonumber(areaId), tonumber(amount)) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, ok and "[disco] donation registered." or ("[disco] " .. err)) + return true + end + + if arg == "donations" then + for _, line in ipairs(DiscoverySystem.donationStatus()) do + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[disco] " .. line) + end + return true + end + + if arg == "resetdonations" then + DiscoverySystem.resetDonations() + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[disco] all donation pools and boosts reset to zero.") + return true + end + + -- simulate the server-save boundary (activates scheduled boosts, expires old ones) + if arg == "ss" then + local n = DiscoverySystem.onServerSave() + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("[disco] server-save boundary simulated, %d boost(s) activated.", n)) + return true + end + + if arg == "poi" then + if DiscoverySystem.dumpPois(player) then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[disco] active viewpoints dumped to the server log.") + else + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[disco] no active discovery session.") + end + return true + end + + DiscoverySystem.sendDiscoveryData(player) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[disco] DiscoveryData sent. Open Cyclopedia -> Map tab.") + return true +end + +talkaction:separator(" ") +talkaction:groupType("god") +talkaction:register() diff --git a/src/core.hpp b/src/core.hpp index fbda2712c..fae66119a 100644 --- a/src/core.hpp +++ b/src/core.hpp @@ -18,15 +18,15 @@ #pragma once static constexpr auto SOFTWARE_NAME = "Crystal Server"; -static constexpr auto SOFTWARE_VERSION = "4.1.9"; -static constexpr auto GAME_UPDATE = "Vocation Balancing"; +static constexpr auto SOFTWARE_VERSION = "4.1.10"; +static constexpr auto GAME_UPDATE = "Summer Update 2026"; static constexpr auto AUTHENTICATOR_DIGITS = 6U; static constexpr auto AUTHENTICATOR_PERIOD = 30U; // SERVER_MAJOR_VERSION is the actual full version of the server, including minor and patch numbers. // This is intended for internal use to identify the exact state of the server (release) software. -static constexpr auto CLIENT_VERSION = 1525; +static constexpr auto CLIENT_VERSION = 1530; #define CLIENT_VERSION_UPPER (CLIENT_VERSION / 100) #define CLIENT_VERSION_LOWER (CLIENT_VERSION % 100) diff --git a/src/creatures/monsters/monster.cpp b/src/creatures/monsters/monster.cpp index a94284869..3f7b35f57 100644 --- a/src/creatures/monsters/monster.cpp +++ b/src/creatures/monsters/monster.cpp @@ -380,7 +380,12 @@ void Monster::onRemoveCreature(const std::shared_ptr &creature, bool i if (creature.get() == this) { if (spawnMonster) { - spawnMonster->startSpawnMonsterCheck(); + // remove OUR block explicitly (matched by pointer): the isRemoved() flag is + // not set yet inside this callback, so cleanup() alone would skip this corpse + // until the next timer tick (AoE double-kills lost up to a full interval) + const auto spawn = spawnMonster; + spawn->removeMonster(static_self_cast()); + spawn->startSpawnMonsterCheck(); } setIdle(true); @@ -2669,9 +2674,39 @@ float Monster::getAttackMultiplier() const { if (auto stacks = getForgeStack(); stacks > 0) { multiplier *= (1.35 + (stacks - 1) * 0.1); } + if (echoWarden) { + multiplier *= echoAtkMult; + } return multiplier; } +bool Monster::applyEchoWarden(float hpMult, float atkMult) { + if (echoWarden) { + return false; + } + if (!mType) { + return false; + } + // Same protections as the forge/soulpit guards: never on summon/boss/fiendish/soulpit. + // (C: also excluded `dark`, but this fork has no dark-monster layer.) + if (isSummon() || mType->isBoss() || forgeStack > 0 || soulPit) { + return false; + } + + echoWarden = true; + echoAtkMult = atkMult; + + healthMax = static_cast(std::ceil(static_cast(healthMax) * hpMult)); + health = healthMax; + runAwayHealth = static_cast(std::ceil(static_cast(runAwayHealth) * hpMult)); + + // Intense glow, distinct "warden" key (NOT "forge"); NO rename, classification stays NORMAL. + setIcon("warden", CreatureIcon(CreatureIconModifications_t::Fiendish, 0)); + g_game().updateCreatureIcon(static_self_cast()); + g_game().sendUpdateCreature(static_self_cast()); + return true; +} + float Monster::getDefenseMultiplier() const { float multiplier = mType->getDefenseMultiplier(); return multiplier; diff --git a/src/creatures/monsters/monster.hpp b/src/creatures/monsters/monster.hpp index d84b53968..dbdb45f1b 100644 --- a/src/creatures/monsters/monster.hpp +++ b/src/creatures/monsters/monster.hpp @@ -231,6 +231,8 @@ class Monster final : public Creature { float getDefenseMultiplier() const; + bool applyEchoWarden(float hpMult, float atkMult); + bool isDead() const override; void setDead(bool isDead); @@ -316,6 +318,9 @@ class Monster final : public Creature { bool soulPit = false; + bool echoWarden = false; + float echoAtkMult = 1.0f; + bool m_isDead = false; bool m_isImmune = false; diff --git a/src/creatures/monsters/spawns/spawn_monster.cpp b/src/creatures/monsters/spawns/spawn_monster.cpp index 9d3cb6c84..b35f57e63 100644 --- a/src/creatures/monsters/spawns/spawn_monster.cpp +++ b/src/creatures/monsters/spawns/spawn_monster.cpp @@ -35,6 +35,13 @@ static constexpr int32_t MONSTER_MINSPAWN_INTERVAL = 1000; // 1 second static constexpr int32_t MONSTER_MAXSPAWN_INTERVAL = 86400000; // 1 day +namespace { + // TEMP DEBUG (Mount Sternum cyclops timing) - remove after the respawn test + bool respawnDbgBox(const Position &pos) { + return pos.x >= 32500 && pos.x <= 32560 && pos.y >= 32040 && pos.y <= 32090; + } +} + bool SpawnsMonster::loadFromXML(const std::string &filemonstername) { if (isLoaded()) { return true; @@ -180,12 +187,46 @@ bool SpawnsMonster::isInZone(const Position ¢erPos, int32_t radius, const Po return ((pos.getX() >= centerPos.getX() - radius) && (pos.getX() <= centerPos.getX() + radius) && (pos.getY() >= centerPos.getY() - radius) && (pos.getY() <= centerPos.getY() + radius)); } +uint32_t SpawnMonster::getNextCheckDelay() const { + // Aim the timer at the earliest pending respawn instead of a fixed cadence, so the + // improved-respawn (donation) halving lands exactly and is never quantized up. + const int64_t now = OTSYS_TIME(); + int64_t best = interval; + bool any = false; + for (const auto &[id, sb] : spawnMonsterMap) { + if (spawnedMonsterMap.contains(id)) { + continue; + } + uint64_t effectiveInterval = sb.interval; + if (g_game().isImprovedRespawnPosition(sb.pos)) { + effectiveInterval /= 2; + } + const int64_t remaining = sb.lastSpawn + static_cast(effectiveInterval) - now; + if (!any || remaining < best) { + best = remaining; + any = true; + } + } + if (!any) { + return interval; + } + + return static_cast(std::max(best, 1000)); +} + void SpawnMonster::startSpawnMonsterCheck() { - if (checkSpawnMonsterEvent == 0) { - checkSpawnMonsterEvent = g_dispatcher().scheduleEvent( - getInterval(), [this] { checkSpawnMonster(); }, "SpawnMonster::checkSpawnMonster" - ); + // called right when a spawned monster dies/despawns; the corpse is still inside + // spawnedMonsterMap at this point, so run cleanup() NOW - it stamps lastSpawn at the + // true death moment (not at the next timer tick) and frees the block + cleanup(); + // re-aim a pending timer: another block may have scheduled a much later check + if (checkSpawnMonsterEvent != 0) { + g_dispatcher().stopEvent(checkSpawnMonsterEvent); + checkSpawnMonsterEvent = 0; } + checkSpawnMonsterEvent = g_dispatcher().scheduleEvent( + getNextCheckDelay(), [this] { checkSpawnMonster(); }, "SpawnMonster::checkSpawnMonster" + ); } SpawnMonster::~SpawnMonster() { @@ -248,6 +289,9 @@ bool SpawnMonster::spawnMonster(uint32_t spawnMonsterId, spawnBlock_t &sb, const monster->setSpawnMonster(static_self_cast()); monster->setMasterPos(sb.pos); + if (respawnDbgBox(sb.pos)) { + g_logger().debug("[RespawnDBG] SPAWNED block {} {} at {} ({} ms after death-stamp)", spawnMonsterId, monsterType->name, sb.pos.toString(), OTSYS_TIME() - sb.lastSpawn); + } spawnedMonsterMap[spawnMonsterId] = monster; sb.lastSpawn = OTSYS_TIME(); monster->onSpawn(sb.pos); @@ -320,20 +364,28 @@ void SpawnMonster::checkSpawnMonster() { sb.lastSpawn = OTSYS_TIME(); continue; } - if (OTSYS_TIME() < sb.lastSpawn + sb.interval) { + // Cyclopedia Map area donations: boosted areas respawn twice as fast + uint64_t effectiveInterval = sb.interval; + if (g_game().isImprovedRespawnPosition(sb.pos)) { + effectiveInterval /= 2; + } + if (OTSYS_TIME() < sb.lastSpawn + effectiveInterval) { continue; } if (mType->info.isBlockable) { spawnMonster(spawnMonsterId, sb, mType); } else { + // stamp now: with the timer aimed at exact due times, re-checks land during the + // 4.2s staging window and would queue duplicate staged chains (effect spam) + sb.lastSpawn = OTSYS_TIME(); scheduleSpawn(spawnMonsterId, sb, mType, 3 * NONBLOCKABLE_SPAWN_MONSTER_INTERVAL); } } if (spawnedMonsterMap.size() < spawnMonsterMap.size()) { checkSpawnMonsterEvent = g_dispatcher().scheduleEvent( - getInterval(), [this] { checkSpawnMonster(); }, "SpawnMonster::checkSpawnMonster" + getNextCheckDelay(), [this] { checkSpawnMonster(); }, "SpawnMonster::checkSpawnMonster" ); } } @@ -359,6 +411,9 @@ void SpawnMonster::cleanup() { auto spawnIt = spawnMonsterMap.find(it->first); if (spawnIt != spawnMonsterMap.end()) { spawnIt->second.lastSpawn = OTSYS_TIME(); + if (respawnDbgBox(spawnIt->second.pos)) { + g_logger().debug("[RespawnDBG] DEAD block {} at {}", it->first, spawnIt->second.pos.toString()); + } } it = spawnedMonsterMap.erase(it); } else { @@ -449,6 +504,15 @@ void SpawnMonster::removeMonster(const std::shared_ptr &monster) { if (monster) { monster->setSpawnMonster(nullptr); } + // stamp the respawn timer at death/removal time; without this the wait was + // counted from whenever cleanup() first ran, adding up to a full check tick + auto spawnIt = spawnMonsterMap.find(spawnMonsterId); + if (spawnIt != spawnMonsterMap.end()) { + spawnIt->second.lastSpawn = OTSYS_TIME(); + if (respawnDbgBox(spawnIt->second.pos)) { + g_logger().debug("[RespawnDBG] REMOVED block {} at {}", spawnMonsterId, spawnIt->second.pos.toString()); + } + } spawnedMonsterMap.erase(spawnMonsterId); } } diff --git a/src/creatures/monsters/spawns/spawn_monster.hpp b/src/creatures/monsters/spawns/spawn_monster.hpp index 41a02a90b..ca0447a85 100644 --- a/src/creatures/monsters/spawns/spawn_monster.hpp +++ b/src/creatures/monsters/spawns/spawn_monster.hpp @@ -57,6 +57,9 @@ class SpawnMonster : public SharedObject { uint32_t getInterval() const { return interval; } + // delay until the earliest pending respawn is due (respects improved-respawn halving); + // used to schedule the check timer so boosted waits are exact, never quantized up + uint32_t getNextCheckDelay() const; void startup(bool delayed = false); void startSpawnMonsterCheck(); diff --git a/src/creatures/players/cyclopedia/player_title.cpp b/src/creatures/players/cyclopedia/player_title.cpp index 2c2209c80..dfff8c19a 100644 --- a/src/creatures/players/cyclopedia/player_title.cpp +++ b/src/creatures/players/cyclopedia/player_title.cpp @@ -152,7 +152,7 @@ void PlayerTitle::checkAndUpdateNewTitles() { manage(checkTask(title.m_amount), title.m_id); break; case CyclopediaTitle_t::MAP: - // manage(checkMap(title.m_amount), title.m_id); + manage(checkMap(title.m_amount), title.m_id); break; case CyclopediaTitle_t::OTHERS: manage(checkOther(title.m_maleName), title.m_id); @@ -277,8 +277,9 @@ bool PlayerTitle::checkTask(uint32_t amount) const { } bool PlayerTitle::checkMap(uint32_t amount) const { - // todo cyclopledia - return false; + // Discovery System: overall explored-areas percent, maintained by data/scripts/discovery_system.lua + const auto percentKV = m_player.kv()->scoped("discovery")->get("map-percent"); + return percentKV && percentKV.has_value() && static_cast(percentKV->getNumber()) >= amount; } bool PlayerTitle::checkOther(const std::string &name) const { diff --git a/src/creatures/players/player.cpp b/src/creatures/players/player.cpp index 83811555e..7979c2b2d 100644 --- a/src/creatures/players/player.cpp +++ b/src/creatures/players/player.cpp @@ -8554,11 +8554,21 @@ void Player::sendScreenshotAndBannerWeeklyTaskSpecificFinished(uint16_t raceId) } } +void Player::sendScreenshotAndBannerLeaderMonsterKilled(uint16_t raceId, uint32_t charmPoints) const { + if (client) { + client->sendScreenshotAndBannerLeaderMonsterKilled(raceId, charmPoints); + } +} + void Player::checkSpellUnlocksOnAdvance(uint32_t oldLevel, uint32_t newLevel, uint32_t oldMagLevel, uint32_t newMagLevel) const { if (!client) { return; } + // Vocation spells that auto-unlock (needLearn == false) show the "New Spell + // Unlocked" banner the moment the player meets their level / magic level + // requirement. Learnable spells are taught explicitly (NPC/quest) and are + // handled through Player::learnInstantSpell / player:learnSpell instead. for (const uint16_t spellId : g_spells().getSpellsByVocation(getVocationId())) { const auto &spell = g_spells().getInstantSpellById(spellId); if (!spell || spell->getSpellId() == 0 || spell->isLearnable()) { @@ -10997,7 +11007,7 @@ void Player::forgeResourceConversion(ForgeAction_t actionType) { return; } - const auto upgradeCost = dustLevel - 75; + const uint64_t upgradeCost = dustLevel > 100 ? 25 + (dustLevel - 100) / 20 : 25; if (const auto dusts = getForgeDusts(); upgradeCost > dusts) { g_logger().error("[{}] Not enough dust", __FUNCTION__); @@ -11008,7 +11018,7 @@ void Player::forgeResourceConversion(ForgeAction_t actionType) { history.cost = upgradeCost; history.gained = dustLevel; removeForgeDusts(upgradeCost); - addForgeDustLevel(1); + addForgeDustLevel(20); } history.createdAt = getTimeNow(); @@ -11244,7 +11254,7 @@ void Player::registerForgeHistoryDescription(ForgeHistory history) { detailsResponse << fmt::format("Converted {:d} slivers to {:d} exalted core.", history.cost, history.gained); } else if (history.actionType == ForgeAction_t::INCREASELIMIT) { history.actionType = ForgeAction_t::DUSTTOSLIVERS; - detailsResponse << fmt::format("Spent {:d} dust to increase the dust limit to {:d}.", history.cost, history.gained + 1); + detailsResponse << fmt::format("Spent {:d} dust to increase the dust limit to {:d}.", history.cost, history.gained + 20); } else { detailsResponse << "(unknown)"; } @@ -12807,6 +12817,121 @@ EquippedWeaponProficiencyBonuses &Player::getEquippedWeaponProficiency() { return equippedWeaponProficiency; } +void Player::tryProcWeaponProficiencyHomingMissile(const std::shared_ptr &target) { + if (!target || target->isRemoved() || target->getHealth() <= 0) { + return; + } + + // Equipped weapon (ignore ammo so distance weapons resolve to the bow itself). + const auto &weapon = getWeapon(true); + if (!weapon) { + return; + } + const uint16_t itemId = weapon->getID(); + + // Player's unlocked/active perk slots for this weapon. + auto profIt = weaponProficiencies.find(itemId); + if (profIt == weaponProficiencies.end()) { + return; + } + const WeaponProficiencyData &playerProficiencyData = profIt->second; + + // The weapon's proficiency tree (the perk catalogue). Nullptr-guarded (also logs internally). + const WeaponProficiencyStruct* proficiencyData = g_proficiencies().getProficiencyByItemId(itemId); + if (!proficiencyData) { + return; + } + + for (const auto &lvl : proficiencyData->proficiencyDataLevel) { + for (const auto &perk : lvl.proficiencyDataPerks) { + if (perk.perkType != PROFICIENCY_PERK_ON_HIT_HOMING_MISSILE) { + continue; + } + + // Active only if the player has unlocked this exact slot (level + position). + const bool isActive = std::any_of( + playerProficiencyData.activePerks.begin(), playerProficiencyData.activePerks.end(), + [&](const WeaponProficiencyPerk &p) { + return p.proficiencyLevel == lvl.proficiencyLevel && p.perkPosition == perk.positionSlot; + } + ); + if (!isActive) { + continue; + } + + if (perk.probability <= 0.0f || perk.multiplier <= 0.0f) { + continue; + } + + // Roll Probability (e.g. 0.01 = 1%). + if (!boolean_random(static_cast(perk.probability))) { + continue; + } + + // Map ElementId (stored in perk.damageType) -> CombatType + the homing-missile target hit effect + // observed in the 15.25 client. These raw effect ids (176-181) are sent verbatim over the wire; + // the official client renders them as the element-specific homing-missile impact. + CombatType_t combatType = COMBAT_NONE; + uint16_t targetEffect = CONST_ME_NONE; + switch (perk.damageType) { + case PROFICIENCY_DAMAGETYPE_PHYSICAL: + combatType = COMBAT_PHYSICALDAMAGE; + targetEffect = CONST_ME_DRAWBLOOD; + break; + case PROFICIENCY_DAMAGETYPE_FIRE: + combatType = COMBAT_FIREDAMAGE; + targetEffect = 177; + break; + case PROFICIENCY_DAMAGETYPE_EARTH: + combatType = COMBAT_EARTHDAMAGE; + targetEffect = 178; + break; + case PROFICIENCY_DAMAGETYPE_ENERGY: + combatType = COMBAT_ENERGYDAMAGE; + targetEffect = 179; + break; + case PROFICIENCY_DAMAGETYPE_ICE: + combatType = COMBAT_ICEDAMAGE; + targetEffect = 176; + break; + case PROFICIENCY_DAMAGETYPE_HOLY: + combatType = COMBAT_HOLYDAMAGE; + targetEffect = 181; + break; + case PROFICIENCY_DAMAGETYPE_DEATH: + combatType = COMBAT_DEATHDAMAGE; + targetEffect = 180; + break; + default: + continue; // healing / unsupported element -> skip + } + + // Damage = Multiplier * level (data-driven; Multiplier lives in proficiencies.json). + const int32_t dmg = static_cast(perk.multiplier * static_cast(getLevel())); + if (dmg <= 0) { + continue; + } + + // (b) shoot/distance effect caster -> target. missileId is the raw 15.25 shoot id from the json + // (e.g. 74 normal / 81 Stellar for holy); sent verbatim, the official client renders it. + g_game().addDistanceEffect(getPosition(), target->getPosition(), perk.missileId, static_self_cast()); + + // (c) magic hit effect on the target tile. + g_game().addMagicEffect(target->getPosition(), targetEffect); + + // (a) element-typed damage (negative value = damage). + CombatDamage damage; + damage.origin = ORIGIN_SPELL; + damage.primary.type = combatType; + damage.primary.value = -dmg; + g_game().combatChangeHealth(static_self_cast(), target, damage); + + // One proc per hit: stop after the first active homing-missile perk fires. + return; + } + } +} + void Player::addWeaponProficiencyExperience(const std::shared_ptr &mType, const ForgeClassifications_t classification, const bool bossSoulpit) { uint32_t addProficiencyExperience = 0; const auto weaponProficiencyRate = std::max(0.0f, g_configManager().getFloat(RATE_WEAPON_PROFICIENCY)); @@ -12930,6 +13055,341 @@ void Player::sendWeaponProficiencyInfo(const uint16_t itemId) const { } } +void Player::sendBossDifficultySelection(uint8_t selectedDifficulty, const std::vector &numbers, const std::vector &banners, const std::vector &redMods, const std::vector &greenMods) const { + if (client) { + client->sendBossDifficultySelection(selectedDifficulty, numbers, banners, redMods, greenMods); + } +} + +void Player::sendCyclopediaDiscoveryTest(uint16_t mainAreaId, uint16_t subAreaId, const Position &base) { + if (!client) { + return; + } + + client->sendCyclopediaMapDiscoveryData({ std::make_tuple(mainAreaId, static_cast(1), static_cast(14)) }, {}, { subAreaId }); + client->sendCyclopediaMapSetCurrentArea(subAreaId); + static const int offsets[7][2] = { { 0, 0 }, { 2, 0 }, { -2, 0 }, { 0, 2 }, { 0, -2 }, { 3, 3 }, { -3, -3 } }; + std::vector> points; + points.reserve(7); + for (const auto &off : offsets) { + points.emplace_back(Position(static_cast(base.x + off[0]), static_cast(base.y + off[1]), base.z), static_cast(0)); + } + client->sendCyclopediaMapSetDiscoveryArea(subAreaId, true, 7, points); +} + +void Player::sendCyclopediaMapDiscoveryData(const std::vector> &mainAreas, const std::vector &discoveredSubAreas, const std::vector &discoverableSubAreas) { + discoveryMains = mainAreas; + discoveryDiscovered = discoveredSubAreas; + discoveryDiscoverable = discoverableSubAreas; + if (client) { + client->sendCyclopediaMapDiscoveryData(mainAreas, discoveredSubAreas, discoverableSubAreas); + } +} + +void Player::resendCyclopediaMapDiscoveryData() const { + if (client && !discoveryMains.empty()) { + client->sendCyclopediaMapDiscoveryData(discoveryMains, discoveryDiscovered, discoveryDiscoverable); + } +} + +void Player::sendCyclopediaMapSetCurrentArea(uint16_t subAreaId) const { + if (client) { + client->sendCyclopediaMapSetCurrentArea(subAreaId); + } +} + +void Player::sendCyclopediaMapSetExploringArea(uint16_t subAreaId) const { + if (client) { + client->sendCyclopediaMapSetExploringArea(subAreaId); + } +} + +void Player::sendCyclopediaMapDonations(uint64_t donationGoal, const std::vector> &areas) const { + if (client) { + client->sendCyclopediaMapDonations(donationGoal, areas); + } +} + +void Player::sendCyclopediaMapSetDiscoveryArea(uint16_t subAreaId, bool active, uint8_t poiTarget, const std::vector> &points) const { + if (client) { + client->sendCyclopediaMapSetDiscoveryArea(subAreaId, active, poiTarget, points); + } +} + +void Player::sendWeaponProficiencyReshapeOffers(const uint16_t itemId) const { + if (client) { + client->sendWeaponProficiencyReshapeOffers(itemId); + } +} + +uint8_t Player::getWeaponProficiencyVocationRegion() const { + // 15.30: the client builds the shaping option list from the PLAYER'S vocation (its profession byte 1-5 selects one + // of five 64-entry option arrays), never from the weapon type. Promoted vocations already fold to their base. + return Proficiencies::getShapeRegionForVocation(getPlayerVocationEnum()); +} + +std::vector Player::rollWeaponProficiencyPerks(const size_t count, const std::vector &exclude) const { + // Roll `count` DISTINCT catalogue indices from exactly the option list the 15.30 client shows this vocation + // (34 general perks + the vocation's 30 spell augments), skipping `exclude` (e.g. the perk currently in the slot). + std::vector pool = Proficiencies::getShapeableIndicesForVocation(getPlayerVocationEnum()); + std::erase_if(pool, [&exclude](const uint16_t index) { + return std::find(exclude.begin(), exclude.end(), static_cast(index)) != exclude.end(); + }); + std::vector result; + result.reserve(count); + while (result.size() < count && !pool.empty()) { + const auto pick = static_cast(uniform_random(0, static_cast(pool.size()) - 1)); + result.push_back(static_cast(pool[pick])); + pool.erase(pool.begin() + static_cast(pick)); + } + return result; +} + +void Player::sanitizeWeaponProficiencyShapes(const uint16_t itemId) { + // Repair shaped slots holding an index the 15.30 client does not offer this vocation (data shaped before the + // catalogue fix, or a vocation change): re-roll them in place from the vocation's own list, keeping the rank. + auto it = weaponProficiencies.find(itemId); + if (it == weaponProficiencies.end()) { + return; + } + const uint16_t vocation = getPlayerVocationEnum(); + for (auto &slot : it->second.modifiedSlots) { + const auto index = static_cast(slot.perkType); + if (Proficiencies::isShapeIndexAllowedForVocation(index, vocation)) { + continue; + } + const auto rolled = rollWeaponProficiencyPerks(1); + if (rolled.empty()) { + break; + } + g_logger().info("[{}] Player {} weapon {} slot {}/{}: shaped perk index {} is not available to vocation {}, re-rolled to {}", __FUNCTION__, getName(), itemId, slot.proficiencyLevel, slot.perkPosition, index, vocation, static_cast(rolled.front())); + slot.perkType = rolled.front(); + } +} + +void Player::modifyWeaponProficiencySlot(const uint16_t itemId, const uint8_t proficiencyLevel, const uint8_t perkPosition) { + // 15.30 (official "Perk Shaping" rules): the first shaped slot of a weapon costs 250 dust, the second one 1000 dust + // (the client additionally requires mastery of the weapon for it) and a weapon never has more than two shaped slots. + static constexpr uint64_t MODIFY_FIRST_SLOT_DUST_COST = 250; + static constexpr uint64_t MODIFY_SECOND_SLOT_DUST_COST = 1000; + static constexpr size_t MAX_SHAPED_SLOTS = 2; + auto it = weaponProficiencies.find(itemId); + if (it == weaponProficiencies.end()) { + sendTextMessage(MESSAGE_FAILURE, "You have no proficiency progress on this weapon."); + return; + } + const auto &tile = getTile(); + if (!tile || !tile->hasFlag(TILESTATE_PROTECTIONZONE)) { + sendTextMessage(MESSAGE_FAILURE, "You can only modify proficiency slots inside a protection zone."); + return; + } + // Store 1-based; the wire request is 0-based. + const uint8_t storedLevel = static_cast(proficiencyLevel + 1); + const uint8_t storedPosition = static_cast(perkPosition + 1); + auto &proficiency = it->second; + for (const auto &slot : proficiency.modifiedSlots) { + if (slot.proficiencyLevel == storedLevel && slot.perkPosition == storedPosition) { + sendTextMessage(MESSAGE_FAILURE, "This slot is already shaped. Use Reshape to change its perk."); + return; + } + } + const size_t shapedCount = proficiency.modifiedSlots.size(); + if (shapedCount >= MAX_SHAPED_SLOTS) { + sendTextMessage(MESSAGE_FAILURE, "You cannot shape more than two perks on the same weapon."); + return; + } + const uint64_t cost = shapedCount == 0 ? MODIFY_FIRST_SLOT_DUST_COST : MODIFY_SECOND_SLOT_DUST_COST; + if (getForgeDusts() < cost) { + sendTextMessage(MESSAGE_FAILURE, fmt::format("You need {} dust to shape this perk (you currently have {}).", cost, getForgeDusts())); + return; + } + const auto rolled = rollWeaponProficiencyPerks(1); + if (rolled.empty()) { + sendTextMessage(MESSAGE_FAILURE, "There is no perk available to shape for your vocation."); + return; + } + removeForgeDusts(cost); + // Rank 0 is the catalogue's base magnitude; Refine raises it up to rank 10. + proficiency.modifiedSlots.push_back({ storedLevel, storedPosition, rolled.front(), 0 }); + applyEquippedWeaponProficiency(itemId); + sendWeaponProficiencyInfo(itemId); +} + +void Player::refineWeaponProficiencySlot(const uint16_t itemId, const uint8_t proficiencyLevel, const uint8_t perkPosition) { + static constexpr uint8_t MAX_RANK = 10; + auto it = weaponProficiencies.find(itemId); + if (it == weaponProficiencies.end()) { + sendTextMessage(MESSAGE_FAILURE, "You have no proficiency progress on this weapon."); + return; + } + const auto &tile = getTile(); + if (!tile || !tile->hasFlag(TILESTATE_PROTECTIONZONE)) { + sendTextMessage(MESSAGE_FAILURE, "You can only refine proficiency slots inside a protection zone."); + return; + } + const uint8_t storedLevel = static_cast(proficiencyLevel + 1); + const uint8_t storedPosition = static_cast(perkPosition + 1); + auto &proficiency = it->second; + WeaponProficiencyModifiedSlot* slot = nullptr; + for (auto &candidate : proficiency.modifiedSlots) { + if (candidate.proficiencyLevel == storedLevel && candidate.perkPosition == storedPosition) { + slot = &candidate; + break; + } + } + if (!slot) { + sendTextMessage(MESSAGE_FAILURE, "That slot has not been modified yet."); + return; + } + if (slot->value >= MAX_RANK) { + sendTextMessage(MESSAGE_FAILURE, "This perk is already at its maximum rank."); + return; + } + // 15.30 (official refine costs): rank 1 costs 125 dust and every further rank 75 more (200, 275, ... 800 for rank 10). + const uint64_t refineCost = 125 + 75 * static_cast(slot->value); + if (getForgeDusts() < refineCost) { + sendTextMessage(MESSAGE_FAILURE, fmt::format("You need {} dust to refine this perk (you currently have {}).", refineCost, getForgeDusts())); + return; + } + removeForgeDusts(refineCost); + ++slot->value; + applyEquippedWeaponProficiency(itemId); + sendWeaponProficiencyInfo(itemId); +} + +void Player::maximiseWeaponProficiencySlot(const uint16_t itemId, const uint8_t proficiencyLevel, const uint8_t perkPosition) { + // TODO(15.25): official client charges 1 special tradeable item; not in data yet, so just set to max. + static constexpr uint8_t MAX_RANK = 10; + auto it = weaponProficiencies.find(itemId); + if (it == weaponProficiencies.end()) { + sendTextMessage(MESSAGE_FAILURE, "You have no proficiency progress on this weapon."); + return; + } + const auto &tile = getTile(); + if (!tile || !tile->hasFlag(TILESTATE_PROTECTIONZONE)) { + sendTextMessage(MESSAGE_FAILURE, "You can only shape proficiency slots inside a protection zone."); + return; + } + const uint8_t storedLevel = static_cast(proficiencyLevel + 1); + const uint8_t storedPosition = static_cast(perkPosition + 1); + auto &proficiency = it->second; + WeaponProficiencyModifiedSlot* slot = nullptr; + for (auto &candidate : proficiency.modifiedSlots) { + if (candidate.proficiencyLevel == storedLevel && candidate.perkPosition == storedPosition) { + slot = &candidate; + break; + } + } + if (!slot) { + sendTextMessage(MESSAGE_FAILURE, "That slot has not been modified yet."); + return; + } + if (slot->value >= MAX_RANK) { + sendTextMessage(MESSAGE_FAILURE, "This perk is already at its maximum rank."); + return; + } + slot->value = MAX_RANK; + applyEquippedWeaponProficiency(itemId); + sendWeaponProficiencyInfo(itemId); +} + +void Player::clearWeaponProficiencySlot(const uint16_t itemId, const uint8_t proficiencyLevel, const uint8_t perkPosition) { + auto it = weaponProficiencies.find(itemId); + if (it == weaponProficiencies.end()) { + sendTextMessage(MESSAGE_FAILURE, "You have no proficiency progress on this weapon."); + return; + } + const auto &tile = getTile(); + if (!tile || !tile->hasFlag(TILESTATE_PROTECTIONZONE)) { + sendTextMessage(MESSAGE_FAILURE, "You can only shape proficiency slots inside a protection zone."); + return; + } + const uint8_t storedLevel = static_cast(proficiencyLevel + 1); + const uint8_t storedPosition = static_cast(perkPosition + 1); + auto &proficiency = it->second; + const auto removed = std::erase_if(proficiency.modifiedSlots, [storedLevel, storedPosition](const WeaponProficiencyModifiedSlot &s) { + return s.proficiencyLevel == storedLevel && s.perkPosition == storedPosition; + }); + if (removed == 0) { + sendTextMessage(MESSAGE_FAILURE, "That slot has not been modified."); + return; + } + applyEquippedWeaponProficiency(itemId); + sendWeaponProficiencyInfo(itemId); +} + +void Player::reshapeWeaponProficiencySlot(const uint16_t itemId, const uint8_t proficiencyLevel, const uint8_t perkPosition) { + static constexpr uint8_t RESHAPE_OFFER_COUNT = 3; + static constexpr uint64_t RESHAPE_DUST_COST = 250; + auto it = weaponProficiencies.find(itemId); + if (it == weaponProficiencies.end()) { + sendTextMessage(MESSAGE_FAILURE, "You have no proficiency progress on this weapon."); + return; + } + const auto &tile = getTile(); + if (!tile || !tile->hasFlag(TILESTATE_PROTECTIONZONE)) { + sendTextMessage(MESSAGE_FAILURE, "You can only shape proficiency slots inside a protection zone."); + return; + } + const uint8_t storedLevel = static_cast(proficiencyLevel + 1); + const uint8_t storedPosition = static_cast(perkPosition + 1); + auto &proficiency = it->second; + WeaponProficiencyModifiedSlot* slot = nullptr; + for (auto &candidate : proficiency.modifiedSlots) { + if (candidate.proficiencyLevel == storedLevel && candidate.perkPosition == storedPosition) { + slot = &candidate; + break; + } + } + if (!slot) { + sendTextMessage(MESSAGE_FAILURE, "That slot has not been modified yet."); + return; + } + if (getForgeDusts() < RESHAPE_DUST_COST) { + sendTextMessage(MESSAGE_FAILURE, fmt::format("You need {} dust to reshape this perk (you currently have {}).", RESHAPE_DUST_COST, getForgeDusts())); + return; + } + removeForgeDusts(RESHAPE_DUST_COST); + proficiency.pendingReshapeLevel = storedLevel; + proficiency.pendingReshapePosition = storedPosition; + // Three distinct offers from this vocation's option list, never the perk already sitting in the slot. + proficiency.pendingReshapeOffers = rollWeaponProficiencyPerks(RESHAPE_OFFER_COUNT, { slot->perkType }); + sendWeaponProficiencyReshapeOffers(itemId); +} + +void Player::pickReshapeWeaponProficiencyOffer(const uint16_t itemId, const uint8_t offerIndex) { + // 15.25: the client sends the 0-based index of the clicked offer (left=0/middle=1/right=2). + auto it = weaponProficiencies.find(itemId); + if (it == weaponProficiencies.end()) { + return; + } + auto &proficiency = it->second; + if (proficiency.pendingReshapeOffers.empty()) { + return; + } + if (static_cast(offerIndex) >= proficiency.pendingReshapeOffers.size()) { + return; + } + const auto chosen = proficiency.pendingReshapeOffers[offerIndex]; + WeaponProficiencyModifiedSlot* slot = nullptr; + for (auto &candidate : proficiency.modifiedSlots) { + if (candidate.proficiencyLevel == proficiency.pendingReshapeLevel && candidate.perkPosition == proficiency.pendingReshapePosition) { + slot = &candidate; + break; + } + } + if (!slot) { + proficiency.pendingReshapeOffers.clear(); + return; + } + slot->perkType = chosen; + proficiency.pendingReshapeOffers.clear(); + proficiency.pendingReshapeLevel = 0; + proficiency.pendingReshapePosition = 0; + applyEquippedWeaponProficiency(itemId); + sendWeaponProficiencyInfo(itemId); +} + void Player::resetAllWeaponProficiencyPerks(const uint16_t itemId) { auto it = weaponProficiencies.find(itemId); if (it == weaponProficiencies.end()) { @@ -13213,6 +13673,101 @@ void Player::applyEquippedWeaponProficiency(const uint16_t itemId) { } } + // 15.30 SHAPE: apply the dust-shaped slots on top of the tree perks. modSlot.perkType is a CLIENT CATALOGUE INDEX + // (1-323, see WEAPON_PROFICIENCY_SHAPE_* in proficiencies_definitions.hpp) and modSlot.value its rank 0-10. Both + // decode exactly like the client (Proficiencies::decodeShapeIndex mirrors its index decoder and rank curves), so + // the bonus the player reads in the Shape dialog is the bonus the server applies. + sanitizeWeaponProficiencyShapes(itemId); + const auto highestCombatSkill = [this]() { + // "Highest combat skill" = the best of fist, club, sword, axe, distance and magic level. + skills_t best = SKILL_FIST; + uint16_t bestLevel = 0; + for (const skills_t skill : { SKILL_FIST, SKILL_CLUB, SKILL_SWORD, SKILL_AXE, SKILL_DISTANCE, SKILL_MAGLEVEL }) { + const uint16_t level = getSkillLevel(skill); + if (level > bestLevel) { + bestLevel = level; + best = skill; + } + } + return best; + }; + for (const auto &modSlot : playerProficiencyData.modifiedSlots) { + const auto entry = Proficiencies::decodeShapeIndex(static_cast(modSlot.perkType)); + if (!entry.valid) { + g_logger().warn("[{}] Player {} weapon {}: unknown shaped perk index {}", __FUNCTION__, getName(), itemId, static_cast(modSlot.perkType)); + continue; + } + const float value = entry.valueAtRank(modSlot.value); + switch (entry.perkType) { + case PROFICIENCY_PERK_AUGMENT_TYPE: { + WeaponProficiencyAugment augment; + augment.spellId = entry.spellId; + augment.augmentType = entry.augmentType; + augment.value = value; + equippedWeaponProficiency.spellAugments.push_back(augment); + break; + } + case PROFICIENCY_PERK_BESTIARY_DAMAGE: { + equippedWeaponProficiency.bestiaryRacePercentDamageGain += value; + equippedWeaponProficiency.bestiaryId = entry.bestiaryId; // single-slot field: the last decoded race wins + break; + } + case PROFICIENCY_PERK_CRITICAL_HIT_CHANCE_FOR_OFFENSIVE_RUNES: { + equippedWeaponProficiency.critHitChanceForOffensiveRunes += static_cast(value * 10000.0f); + break; + } + case PROFICIENCY_PERK_CRITICAL_HIT_CHANCE_FOR_AUTOATTACK: { + equippedWeaponProficiency.critHitChanceForAutoAttack += static_cast(value * 10000.0f); + break; + } + case PROFICIENCY_PERK_CRITICAL_EXTRA_DAMAGE_FOR_OFFENSIVE_RUNES: { + equippedWeaponProficiency.critExtraDamageForOffensiveRunes += static_cast(value * 10000.0f); + break; + } + case PROFICIENCY_PERK_CRITICAL_EXTRA_DAMAGE_FOR_AUTOATTACK: { + equippedWeaponProficiency.critExtraDamageForAutoAttack += static_cast(value * 10000.0f); + break; + } + case PROFICIENCY_PERK_LIFE_GAIN_ONHIT: { + equippedWeaponProficiency.lifeGainOnHit += static_cast(value); + break; + } + case PROFICIENCY_PERK_MANA_GAIN_ONKILL: { + equippedWeaponProficiency.manaGainOnKill += static_cast(value); + break; + } + case PROFICIENCY_PERK_LIFE_GAIN_ONKILL: { + equippedWeaponProficiency.lifeGainOnKill += static_cast(value); + break; + } + case PROFICIENCY_PERK_HIGHEST_COMBAT_SKILL_PERCENTAGE_AS_EXTRA_DAMAGE_FOR_AUTOATTACK: { + equippedWeaponProficiency.skillPercentageAsExtraDamageForAutoAttack[highestCombatSkill()] += value; + break; + } + case PROFICIENCY_PERK_HIGHEST_COMBAT_SKILL_PERCENTAGE_AS_EXTRA_DAMAGE_FOR_SPELLS: { + equippedWeaponProficiency.skillPercentageAsExtraDamageForSpells[highestCombatSkill()] += value; + } + case PROFICIENCY_PERK_HIGHEST_COMBAT_SKILL_PERCENTAGE_AS_EXTRA_HEALING_FOR_SPELLS: { + equippedWeaponProficiency.skillPercentageAsExtraHealingForSpells[highestCombatSkill()] += value; + break; + } + case PROFICIENCY_PERK_ALPHA_STRIKE_EXTRA_DAMAGE: { + equippedWeaponProficiency.alphaStrikeExtraDamage += value; + break; + } + case PROFICIENCY_PERK_OMEGA_STRIKE_EXTRA_DAMAGE: { + equippedWeaponProficiency.omegaStrikeExtraDamage += value; + break; + } + case PROFICIENCY_PERK_ARMOR_PENETRATION: { + equippedWeaponProficiency.armorPenetration += value; + break; + } + default: + break; + } + } + sendStats(); sendSkills(); } diff --git a/src/creatures/players/player.hpp b/src/creatures/players/player.hpp index 316aead0f..4b5aade50 100644 --- a/src/creatures/players/player.hpp +++ b/src/creatures/players/player.hpp @@ -148,9 +148,24 @@ struct WeaponProficiencyPerk { uint8_t perkPosition = 0; }; +// 15.25 (sommerrelease26) SHAPE: a perk slot can be "modified" with dust to roll a custom effect that +// overrides the slot's tree perk. One entry per modified slot, keyed by (level, position). perkType is a +// CLIENT CATALOGUE INDEX (1-323), value is the rank 0-10. +struct WeaponProficiencyModifiedSlot { + uint8_t proficiencyLevel = 0; + uint8_t perkPosition = 0; + WeaponProficiencyPerkType_t perkType = PROFICIENCY_PERK_ATTACK_DAMAGE; + uint8_t value = 0; +}; + struct WeaponProficiencyData { uint32_t experience = 0; std::vector activePerks; + std::vector modifiedSlots; + // 15.25 (sommerrelease26): transient Reshape state (offer -> pick). Not persisted. + uint8_t pendingReshapeLevel = 0; + uint8_t pendingReshapePosition = 0; + std::vector pendingReshapeOffers; }; struct WeaponProficiencyAugment { @@ -1135,11 +1150,35 @@ class Player final : public Creature, public Cylinder, public Bankable { // Weapon Proficiency EquippedWeaponProficiencyBonuses &getEquippedWeaponProficiency(); + + // Weapon-proficiency Type-32 "Homing Missile": on a weapon hit, rolls each active Type-32 perk's probability + // and on success fires an element-typed homing missile at the target. + void tryProcWeaponProficiencyHomingMissile(const std::shared_ptr &target); void sendWeaponProficiencyInfo(const uint16_t itemId) const; + void sendBossDifficultySelection(uint8_t selectedDifficulty, const std::vector &numbers, const std::vector &banners, const std::vector &redMods, const std::vector &greenMods) const; + // Discovery System (Cyclopedia Map). + void sendCyclopediaDiscoveryTest(uint16_t mainAreaId, uint16_t subAreaId, const Position &base); + void sendCyclopediaMapDiscoveryData(const std::vector> &mainAreas, const std::vector &discoveredSubAreas, const std::vector &discoverableSubAreas); + void resendCyclopediaMapDiscoveryData() const; + void sendCyclopediaMapSetCurrentArea(uint16_t subAreaId) const; + void sendCyclopediaMapSetExploringArea(uint16_t subAreaId) const; + void sendCyclopediaMapDonations(uint64_t donationGoal, const std::vector> &areas) const; + void sendCyclopediaMapSetDiscoveryArea(uint16_t subAreaId, bool active, uint8_t poiTarget, const std::vector> &points) const; void resetAllWeaponProficiencyPerks(const uint16_t itemId); void applyEquippedWeaponProficiency(const uint16_t itemId); void removeEquippedWeaponProficiency(const uint16_t itemId); void sendWeaponProficiencyExperience(const uint16_t itemId, const uint32_t addProficiencyExperience); + // 15.25 (sommerrelease26) SHAPE handlers + helpers (see CLIENT_15.25_e2a4a1_PORT.md §7.5 / §8). + uint8_t getWeaponProficiencyVocationRegion() const; + std::vector rollWeaponProficiencyPerks(const size_t count, const std::vector &exclude = {}) const; + void sanitizeWeaponProficiencyShapes(const uint16_t itemId); + void modifyWeaponProficiencySlot(const uint16_t itemId, const uint8_t proficiencyLevel, const uint8_t perkPosition); + void refineWeaponProficiencySlot(const uint16_t itemId, const uint8_t proficiencyLevel, const uint8_t perkPosition); + void maximiseWeaponProficiencySlot(const uint16_t itemId, const uint8_t proficiencyLevel, const uint8_t perkPosition); + void clearWeaponProficiencySlot(const uint16_t itemId, const uint8_t proficiencyLevel, const uint8_t perkPosition); + void reshapeWeaponProficiencySlot(const uint16_t itemId, const uint8_t proficiencyLevel, const uint8_t perkPosition); + void pickReshapeWeaponProficiencyOffer(const uint16_t itemId, const uint8_t offerIndex); + void sendWeaponProficiencyReshapeOffers(const uint16_t itemId) const; std::unordered_map weaponProficiencies; @@ -1191,10 +1230,12 @@ class Player final : public Creature, public Cylinder, public Bankable { void sendScreenshotAndBannerProgressQuest(const std::string &questName, bool isCompleted) const; void sendScreenshotAndBannerProficiencyProgress(uint16_t itemId, const std::string &message) const; void sendScreenshotAndBannerUnlockedSpell(uint16_t spellId) const; - + // Shows the "New Spell Unlocked" banner for vocation spells that auto-unlock + // when the player crosses their required level / magic level on advance. void checkSpellUnlocksOnAdvance(uint32_t oldLevel, uint32_t newLevel, uint32_t oldMagLevel, uint32_t newMagLevel) const; void sendScreenshotAndBannerBountyTaskFinished(uint16_t raceId) const; void sendScreenshotAndBannerWeeklyTaskSpecificFinished(uint16_t raceId) const; + void sendScreenshotAndBannerLeaderMonsterKilled(uint16_t raceId, uint32_t charmPoints) const; void onThink(uint32_t interval) override; @@ -1768,6 +1809,11 @@ class Player final : public Creature, public Cylinder, public Bankable { phmap::flat_hash_set attackedSet {}; + // Discovery System: last DiscoveryData pushed by the Lua logic (answer for C2S 0x92 requests) + std::vector> discoveryMains; + std::vector discoveryDiscovered; + std::vector discoveryDiscoverable; + std::map openContainers; std::map> depotLockerMap; std::map> depotChests; diff --git a/src/creatures/players/proficiencies/proficiencies.cpp b/src/creatures/players/proficiencies/proficiencies.cpp index b2a1b4892..8155d6607 100644 --- a/src/creatures/players/proficiencies/proficiencies.cpp +++ b/src/creatures/players/proficiencies/proficiencies.cpp @@ -63,7 +63,9 @@ bool Proficiencies::loadFromJson(bool /* reloading */) { const auto &perkJson = perksArray[perkIdx]; const uint8_t positionSlot = static_cast(perkIdx + 1); const WeaponProficiencyPerkType_t perkType = static_cast(perkJson.at("Type").get()); - const float perkValue = perkJson.at("Value").get(); + // Some perks carry no "Value" (e.g. the on-hit elemental proc, Type 32, which uses + // ElementId/MissileId/Multiplier/Probability instead). Default to 0 so they still load. + const float perkValue = perkJson.value("Value", 0.0f); ProficiencyPerk perk(positionSlot, perkType, perkValue); @@ -99,6 +101,19 @@ bool Proficiencies::loadFromJson(bool /* reloading */) { perk.damageType = perkJson.at("DamageType").get(); } + // Type 32 (PROFICIENCY_PERK_ON_HIT_HOMING_MISSILE) fields. + if (perkJson.contains("MissileId")) { + perk.missileId = perkJson.at("MissileId").get(); + } + + if (perkJson.contains("Multiplier")) { + perk.multiplier = perkJson.value("Multiplier", 0.0f); + } + + if (perkJson.contains("Probability")) { + perk.probability = perkJson.value("Probability", 0.0f); + } + levelStruct.proficiencyDataPerks.emplace_back(std::move(perk)); } @@ -171,3 +186,150 @@ uint8_t Proficiencies::getMaxPerksPerProficiencyLevelForItem(uint16_t itemId, ui } return 0; } + +// --------------------------------------------------------------------------------------------------------------------- +// 15.30 SHAPE catalogue helpers. Pure functions over WEAPON_PROFICIENCY_SHAPE_* that mirror the official client: +// the index decoder (client FUN_140ef6410), the per-vocation option arrays and the rank curves (client FUN_140ef7de0). + +uint8_t Proficiencies::getShapeRegionForVocation(uint16_t cipVocation) { + switch (cipVocation) { + case Vocation_t::VOCATION_KNIGHT_CIP: + return 0; + case Vocation_t::VOCATION_PALADIN_CIP: + return 1; + case Vocation_t::VOCATION_SORCERER_CIP: + return 2; + case Vocation_t::VOCATION_DRUID_CIP: + return 3; + case Vocation_t::VOCATION_MONK_CIP: + return 4; + default: + return WEAPON_PROFICIENCY_SHAPE_NO_REGION; + } +} + +std::vector Proficiencies::getShapeableIndicesForVocation(uint16_t cipVocation) { + // Same content and order as the client's 64-entry option array: the 34 GENERAL entries followed by the vocation's + // 30 spell augments (row by row). A player without vocation only gets the GENERAL block. + std::vector indices(std::begin(WEAPON_PROFICIENCY_SHAPE_GENERAL), std::end(WEAPON_PROFICIENCY_SHAPE_GENERAL)); + const uint8_t region = getShapeRegionForVocation(cipVocation); + if (region == WEAPON_PROFICIENCY_SHAPE_NO_REGION) { + return indices; + } + const uint16_t regionBase = static_cast(region * WEAPON_PROFICIENCY_SHAPE_REGION_SIZE); + for (uint8_t row = 0; row < WEAPON_PROFICIENCY_SHAPE_AUGMENT_ROWS; ++row) { + for (uint8_t column = 0; column < WEAPON_PROFICIENCY_SHAPE_SPELLS_PER_REGION; ++column) { + indices.push_back(static_cast(regionBase + row * 10 + column + 1)); + } + } + return indices; +} + +bool Proficiencies::isShapeIndexAllowedForVocation(uint16_t index, uint16_t cipVocation) { + const auto entry = decodeShapeIndex(index); + if (!entry.valid) { + return false; + } + if (entry.region == WEAPON_PROFICIENCY_SHAPE_NO_REGION) { + return true; // GENERAL block: offered to every vocation + } + return entry.region == getShapeRegionForVocation(cipVocation); +} + +WeaponProficiencyShapeEntry Proficiencies::decodeShapeIndex(uint16_t index) { + WeaponProficiencyShapeEntry entry; + if (index == 0 || index > WEAPON_PROFICIENCY_SHAPE_MAX_INDEX) { + return entry; + } + const auto setCurve = [&entry](WeaponProficiencyPerkType_t perkType, float rank0, float perRank) { + entry.valid = true; + entry.perkType = perkType; + entry.rank0 = rank0; + entry.perRank = perRank; + }; + + // 1-250: vocation regions of 50, rows of 10 = augment kind, columns 1-6 = the vocation's shapeable spells. + if (index <= WEAPON_PROFICIENCY_SHAPE_REGION_SIZE * WEAPON_PROFICIENCY_SHAPE_REGION_COUNT) { + const uint16_t zeroBased = index - 1; + const auto region = static_cast(zeroBased / WEAPON_PROFICIENCY_SHAPE_REGION_SIZE); + const auto offset = static_cast(zeroBased % WEAPON_PROFICIENCY_SHAPE_REGION_SIZE); + const auto row = static_cast(offset / 10); + const auto column = static_cast(offset % 10); + if (row >= WEAPON_PROFICIENCY_SHAPE_AUGMENT_ROWS || column >= WEAPON_PROFICIENCY_SHAPE_SPELLS_PER_REGION) { + return entry; // columns 7-10 of a row are unused by the client + } + entry.region = region; + entry.augmentType = WEAPON_PROFICIENCY_SHAPE_AUGMENT_ROW_TYPES[row]; + entry.spellId = WEAPON_PROFICIENCY_SHAPE_SPELLS[region][column]; + switch (entry.augmentType) { + case PROFICIENCY_AUGMENTTYPE_CRITICAL_HIT_CHANCE: + case PROFICIENCY_AUGMENTTYPE_BASE_DAMAGE: + setCurve(PROFICIENCY_PERK_AUGMENT_TYPE, 0.01f, 0.002f); // 1% -> 3% + break; + case PROFICIENCY_AUGMENTTYPE_CRITICAL_EXTRA_DAMAGE: + setCurve(PROFICIENCY_PERK_AUGMENT_TYPE, 0.05f, 0.015f); // 5% -> 20% + break; + case PROFICIENCY_AUGMENTTYPE_MANA_LEECH: + setCurve(PROFICIENCY_PERK_AUGMENT_TYPE, 0.01f, 0.005f); // 1% -> 6% + break; + case PROFICIENCY_AUGMENTTYPE_LIFE_LEECH: + setCurve(PROFICIENCY_PERK_AUGMENT_TYPE, 0.01f, 0.011f); // 1% -> 12% + break; + default: + break; + } + return entry; + } + + // 251-271: bestiary damage against one creature class. + if (index >= 251 && index <= 271) { + entry.bestiaryId = static_cast(index - 250); + setCurve(PROFICIENCY_PERK_BESTIARY_DAMAGE, 0.005f, 0.002f); // 0.5% -> 2.5% + return entry; + } + + switch (index) { + case 281: + setCurve(PROFICIENCY_PERK_CRITICAL_HIT_CHANCE_FOR_OFFENSIVE_RUNES, 0.005f, 0.001f); // 0.5% -> 1.5% + break; + case 282: + setCurve(PROFICIENCY_PERK_CRITICAL_HIT_CHANCE_FOR_AUTOATTACK, 0.005f, 0.002f); // 0.5% -> 2.5% + break; + case 283: + setCurve(PROFICIENCY_PERK_CRITICAL_EXTRA_DAMAGE_FOR_OFFENSIVE_RUNES, 0.02f, 0.013f); // 2% -> 15% + break; + case 284: + setCurve(PROFICIENCY_PERK_CRITICAL_EXTRA_DAMAGE_FOR_AUTOATTACK, 0.03f, 0.017f); // 3% -> 20% + break; + case 285: + setCurve(PROFICIENCY_PERK_LIFE_GAIN_ONHIT, 2.0f, 1.0f); // +2 -> +12 hit points + break; + case 286: + setCurve(PROFICIENCY_PERK_MANA_GAIN_ONKILL, 4.0f, 2.0f); // +4 -> +24 mana + break; + case 287: + setCurve(PROFICIENCY_PERK_LIFE_GAIN_ONKILL, 10.0f, 4.0f); // +10 -> +50 hit points + break; + case 291: + setCurve(PROFICIENCY_PERK_HIGHEST_COMBAT_SKILL_PERCENTAGE_AS_EXTRA_DAMAGE_FOR_AUTOATTACK, 0.02f, 0.008f); // 2% -> 10% + break; + case 292: + setCurve(PROFICIENCY_PERK_HIGHEST_COMBAT_SKILL_PERCENTAGE_AS_EXTRA_DAMAGE_FOR_SPELLS, 0.01f, 0.007f); // 1% -> 8% + break; + case 293: + setCurve(PROFICIENCY_PERK_HIGHEST_COMBAT_SKILL_PERCENTAGE_AS_EXTRA_HEALING_FOR_SPELLS, 0.02f, 0.008f); // 2% -> 10% + break; + case 321: + setCurve(PROFICIENCY_PERK_ALPHA_STRIKE_EXTRA_DAMAGE, 0.02f, 0.008f); // 2% -> 10% + break; + case 322: + setCurve(PROFICIENCY_PERK_OMEGA_STRIKE_EXTRA_DAMAGE, 0.005f, 0.002f); // 0.5% -> 2.5% + break; + case 323: + setCurve(PROFICIENCY_PERK_ARMOR_PENETRATION, 0.04f, 0.006f); // 4% -> 10% + break; + default: + break; // every other index (272-280, 288-290, 294-320) is a hole the client renders as unknown + } + return entry; +} diff --git a/src/creatures/players/proficiencies/proficiencies.hpp b/src/creatures/players/proficiencies/proficiencies.hpp index 4410716f0..906a20095 100644 --- a/src/creatures/players/proficiencies/proficiencies.hpp +++ b/src/creatures/players/proficiencies/proficiencies.hpp @@ -38,6 +38,12 @@ struct ProficiencyPerk { uint8_t bestiaryId = 0; int32_t damageType = 0; uint8_t range = 0; + // Type 32 (PROFICIENCY_PERK_ON_HIT_HOMING_MISSILE): on weapon hit, roll `probability`; on success fire a + // homing missile (`missileId` shoot effect) dealing `multiplier` * playerLevel damage of the combat type + // derived from `damageType` (parsed from ElementId). + uint16_t missileId = 0; + float multiplier = 0.0f; + float probability = 0.0f; // std::string bestiaryName = ""; }; @@ -61,6 +67,25 @@ struct WeaponProficiencyStruct { std::vector proficiencyDataLevel; }; +// One decoded entry of the 15.30 SHAPE catalogue (see WEAPON_PROFICIENCY_SHAPE_* in proficiencies_definitions.hpp). +struct WeaponProficiencyShapeEntry { + bool valid = false; + WeaponProficiencyPerkType_t perkType = PROFICIENCY_PERK_ATTACK_DAMAGE; + WeaponProficiencyPerkAugmentType_t augmentType = PROFICIENCY_AUGMENTTYPE_NONE; + uint16_t spellId = 0; // client spell id (augment entries) + uint8_t bestiaryId = 0; // bestiary entries + uint8_t region = WEAPON_PROFICIENCY_SHAPE_NO_REGION; // vocation region of augment entries, else NO_REGION + float rank0 = 0.0f; // magnitude at rank 0 (fractions for percentages, whole points for on-hit/on-kill gains) + float perRank = 0.0f; // magnitude added per rank; the client computes rank0 + perRank * rank + + float valueAtRank(uint8_t rank) const { + if (rank > WEAPON_PROFICIENCY_SHAPE_MAX_RANK) { + rank = WEAPON_PROFICIENCY_SHAPE_MAX_RANK; + } + return rank0 + perRank * static_cast(rank); + } +}; + class Proficiencies { public: Proficiencies() = default; @@ -77,6 +102,13 @@ class Proficiencies { uint8_t getMaxProficiencyLevelForItem(uint16_t itemId) const; uint8_t getMaxPerksPerProficiencyLevelForItem(uint16_t itemId, uint8_t level) const; + // 15.30 SHAPE catalogue helpers (pure functions over the constant tables, mirror the official client). + // cipVocation = Vocation_t client id (1 knight, 2 paladin, 3 sorcerer, 4 druid, 5 monk; promotions already folded). + static uint8_t getShapeRegionForVocation(uint16_t cipVocation); + static std::vector getShapeableIndicesForVocation(uint16_t cipVocation); + static bool isShapeIndexAllowedForVocation(uint16_t index, uint16_t cipVocation); + static WeaponProficiencyShapeEntry decodeShapeIndex(uint16_t index); + protected: bool loaded = false; diff --git a/src/creatures/players/proficiencies/proficiencies_definitions.hpp b/src/creatures/players/proficiencies/proficiencies_definitions.hpp index 7ed5dca50..c3eebb713 100644 --- a/src/creatures/players/proficiencies/proficiencies_definitions.hpp +++ b/src/creatures/players/proficiencies/proficiencies_definitions.hpp @@ -50,6 +50,12 @@ enum WeaponProficiencyPerkType_t : uint16_t { PROFICIENCY_PERK_OMEGA_STRIKE_EXTRA_DAMAGE = 29, PROFICIENCY_PERK_ARMOR_PENETRATION = 30, PROFICIENCY_PERK_ELEMENTAL_PIERCE = 31, + PROFICIENCY_PERK_ON_HIT_HOMING_MISSILE = 32, + // 15.30 client perk kinds 33-35 (reachable only through the SHAPE catalogue entries 291-293): a percentage of the + // player's HIGHEST combat skill as extra auto-attack damage / spell damage / spell healing. + PROFICIENCY_PERK_HIGHEST_COMBAT_SKILL_PERCENTAGE_AS_EXTRA_DAMAGE_FOR_AUTOATTACK = 33, + PROFICIENCY_PERK_HIGHEST_COMBAT_SKILL_PERCENTAGE_AS_EXTRA_DAMAGE_FOR_SPELLS = 34, + PROFICIENCY_PERK_HIGHEST_COMBAT_SKILL_PERCENTAGE_AS_EXTRA_HEALING_FOR_SPELLS = 35, }; enum WeaponProficiencyPerkSkills_t : int8_t { @@ -95,3 +101,52 @@ enum WeaponProficiencyPerkDamageType_t : int32_t { PROFICIENCY_DAMAGETYPE_DEATH = 256, // COMBAT_DEATHDAMAGE PROFICIENCY_DAMAGETYPE_HEALING = 1048576, // COMBAT_HEALING }; + +// --------------------------------------------------------------------------------------------------------------------- +// 15.30 SHAPE catalogue. Reverse-engineered from the official 15.30 client (index decoder FUN_140ef6410, the five +// per-vocation option arrays at 0x141d81870.. and the rank curves in FUN_140ef7de0). The perkType carried by a modified +// slot (0xC4) or a reshape offer (0xBB) is an INDEX 1-323 into this catalogue, NOT a WeaponProficiencyPerkType_t. +// 1-250 : five 50-wide VOCATION regions (0 knight, 1 paladin, 2 sorcerer, 3 druid, 4 monk). Inside a region every +// row of 10 is one augment kind and columns 1-6 are the vocation's six shapeable spells: +// +1..+6 critical hit chance, +11..+16 critical extra damage, +21..+26 base damage, +// +31..+36 mana leech, +41..+46 life leech (columns 7-10 are unused by the client). +// 251-271: bestiary damage, 250 + bestiaryId (21 creature classes) +// 281-287: rune crit chance, auto-attack crit chance, rune crit extra damage, auto-attack crit extra damage, +// life gain on hit, mana gain on kill, life gain on kill +// 291-293: highest combat skill percentage as extra auto-attack damage / spell damage / spell healing +// 321-323: alpha strike, omega strike, armor penetration +// The client shows every vocation exactly the 34 GENERAL entries plus its own 30 augment entries (64 options). +// Rank curves (client value = rank0 + perRank * rank, rank 0..10) live in Proficiencies::decodeShapeIndex. +inline constexpr uint16_t WEAPON_PROFICIENCY_SHAPE_REGION_SIZE = 50; +inline constexpr uint8_t WEAPON_PROFICIENCY_SHAPE_REGION_COUNT = 5; +inline constexpr uint8_t WEAPON_PROFICIENCY_SHAPE_AUGMENT_ROWS = 5; +inline constexpr uint8_t WEAPON_PROFICIENCY_SHAPE_SPELLS_PER_REGION = 6; +inline constexpr uint16_t WEAPON_PROFICIENCY_SHAPE_MAX_INDEX = 323; +inline constexpr uint8_t WEAPON_PROFICIENCY_SHAPE_MAX_RANK = 10; +inline constexpr uint8_t WEAPON_PROFICIENCY_SHAPE_NO_REGION = 0xFF; + +// Augment kind of each 10-wide row inside a vocation region (row 0 = +1..+6, row 4 = +41..+46). +inline constexpr WeaponProficiencyPerkAugmentType_t WEAPON_PROFICIENCY_SHAPE_AUGMENT_ROW_TYPES[WEAPON_PROFICIENCY_SHAPE_AUGMENT_ROWS] = { + PROFICIENCY_AUGMENTTYPE_CRITICAL_HIT_CHANCE, + PROFICIENCY_AUGMENTTYPE_CRITICAL_EXTRA_DAMAGE, + PROFICIENCY_AUGMENTTYPE_BASE_DAMAGE, + PROFICIENCY_AUGMENTTYPE_MANA_LEECH, + PROFICIENCY_AUGMENTTYPE_LIFE_LEECH, +}; + +// Client spell ids of the six shapeable spells per vocation region, in catalogue column order. +inline constexpr uint16_t WEAPON_PROFICIENCY_SHAPE_SPELLS[WEAPON_PROFICIENCY_SHAPE_REGION_COUNT][WEAPON_PROFICIENCY_SHAPE_SPELLS_PER_REGION] = { + { 80, 105, 106, 59, 316, 261 }, // knight: Berserk, Fierce Berserk, Groundshaker, Front Sweep, Shield Slam, Executioner's Throw + { 124, 302, 303, 258, 57, 122 }, // paladin: Divine Caldera, Divine Barrage, Ethereal Barrage, Divine Grenade, Strong Ethereal Spear, Divine Missile + { 13, 24, 240, 260, 310, 23 }, // sorcerer: Energy Wave, Hell's Core, Great Fire Wave, Great Death Beam, Death Echo, Great Energy Beam + { 43, 120, 263, 262, 317, 318 }, // druid: Strong Ice Wave, Terra Wave, Terra Burst, Ice Burst, Forked Glacier, Forked Thorns + { 289, 288, 294, 287, 301, 290 }, // monk: Greater Flurry of Blows, Chained Penance, Sweeping Takedown, Flurry of Blows, Thousand Fist Blows, Mystic Repulse +}; + +// The 34 vocation-agnostic GENERAL catalogue indices offered to every vocation. +inline constexpr uint16_t WEAPON_PROFICIENCY_SHAPE_GENERAL[] = { + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, // bestiary + 281, 282, 283, 284, 285, 286, 287, // crit (runes / auto-attack), life on hit, mana on kill, life on kill + 291, 292, 293, // highest combat skill percentage + 321, 322, 323, // alpha strike, omega strike, armor penetration +}; diff --git a/src/enums/player_cyclopedia.hpp b/src/enums/player_cyclopedia.hpp index 8e1391cc9..731436482 100644 --- a/src/enums/player_cyclopedia.hpp +++ b/src/enums/player_cyclopedia.hpp @@ -67,6 +67,7 @@ enum class CyclopediaMapData_t : uint8_t { MonsterBestiary = 8, Donations = 9, SetCurrentArea = 10, + SetExploringArea = 11, }; enum class CyclopediaHouseState : uint8_t { diff --git a/src/game/game.cpp b/src/game/game.cpp index 0d92f0ad2..7e5c741d2 100644 --- a/src/game/game.cpp +++ b/src/game/game.cpp @@ -9598,6 +9598,36 @@ void Game::playerFriendSystemAction(const std::shared_ptr &player, uint8 } } +void Game::setImprovedRespawnZones(std::vector zones) { + improvedRespawnZones = std::move(zones); + hasImprovedRespawnZones = !improvedRespawnZones.empty(); + if (hasImprovedRespawnZones) { + improvedRespawnBounds = improvedRespawnZones.front(); + for (const auto &z : improvedRespawnZones) { + improvedRespawnBounds.x1 = std::min(improvedRespawnBounds.x1, z.x1); + improvedRespawnBounds.y1 = std::min(improvedRespawnBounds.y1, z.y1); + improvedRespawnBounds.x2 = std::max(improvedRespawnBounds.x2, z.x2); + improvedRespawnBounds.y2 = std::max(improvedRespawnBounds.y2, z.y2); + } + } + g_logger().info("Improved Respawn {} zone rect(s) active", improvedRespawnZones.size()); +} + +bool Game::isImprovedRespawnPosition(const Position &pos) const { + if (!hasImprovedRespawnZones) { + return false; + } + if (pos.x < improvedRespawnBounds.x1 || pos.x > improvedRespawnBounds.x2 || pos.y < improvedRespawnBounds.y1 || pos.y > improvedRespawnBounds.y2) { + return false; + } + for (const auto &z : improvedRespawnZones) { + if (pos.x >= z.x1 && pos.x <= z.x2 && pos.y >= z.y1 && pos.y <= z.y2) { + return true; + } + } + return false; +} + void Game::playerCyclopediaCharacterInfo(const std::shared_ptr &player, uint32_t characterID, CyclopediaCharacterInfoType_t characterInfoType, uint16_t entriesPerPage, uint16_t page) { uint32_t playerID = player->getID(); if (playerID != characterID) { diff --git a/src/game/game.hpp b/src/game/game.hpp index 4c50982fc..318e3844d 100644 --- a/src/game/game.hpp +++ b/src/game/game.hpp @@ -101,6 +101,10 @@ struct PositionHasher { } }; +struct ImprovedRespawnZone { + uint16_t x1, y1, x2, y2; +}; + class Game { public: Game(); @@ -711,6 +715,9 @@ class Game { mapLuaItemsStored[position] = itemId; } + void setImprovedRespawnZones(std::vector zones); + bool isImprovedRespawnPosition(const Position &pos) const; + auto getFiendishMonsters() const { return fiendishMonsters; } @@ -927,6 +934,10 @@ class Game { std::vector registeredDistanceEffects; std::vector registeredLookTypes; + std::vector improvedRespawnZones; + ImprovedRespawnZone improvedRespawnBounds {}; // overall bbox for a cheap reject + bool hasImprovedRespawnZones = false; + size_t lastBucket = 0; size_t lastImbuedBucket = 0; diff --git a/src/io/functions/iologindata_load_player.cpp b/src/io/functions/iologindata_load_player.cpp index 2ff19950d..1922e7622 100644 --- a/src/io/functions/iologindata_load_player.cpp +++ b/src/io/functions/iologindata_load_player.cpp @@ -1293,6 +1293,41 @@ void IOLoginDataLoad::loadPlayerWeaponProficiency(const std::shared_ptr player->weaponProficiencies[itemId] = std::move(data); } + + // 15.25 (sommerrelease26) SHAPE: trailing modified-slots section. Old blobs end above, so a failed read + // simply means the player has no modified slots. See PORT.md §7.5. + uint16_t modifiedWeaponCount; + if (stream.read(modifiedWeaponCount)) { + for (uint16_t i = 0; i < modifiedWeaponCount; ++i) { + uint16_t itemId; + if (!stream.read(itemId)) { + break; + } + + uint8_t slotCount; + if (!stream.read(slotCount)) { + break; + } + + auto &data = player->weaponProficiencies[itemId]; + for (uint8_t j = 0; j < slotCount; ++j) { + uint8_t level; + uint8_t pos; + uint16_t perkTypeRaw; + uint8_t value; + if (!stream.read(level) || !stream.read(pos) || !stream.read(perkTypeRaw) || !stream.read(value)) { + break; + } + + WeaponProficiencyModifiedSlot slot {}; + slot.proficiencyLevel = level; + slot.perkPosition = pos; + slot.perkType = static_cast(perkTypeRaw); + slot.value = value; + data.modifiedSlots.push_back(slot); + } + } + } } void IOLoginDataLoad::loadPlayerExivaRestrictions(const std::shared_ptr &player) { diff --git a/src/io/functions/iologindata_save_player.cpp b/src/io/functions/iologindata_save_player.cpp index f1333c51f..13ba9d59f 100644 --- a/src/io/functions/iologindata_save_player.cpp +++ b/src/io/functions/iologindata_save_player.cpp @@ -355,6 +355,29 @@ bool IOLoginDataSave::savePlayerFirst(const std::shared_ptr &player) { } } + // 15.25 (sommerrelease26) SHAPE: trailing modified-slots section. Appended AFTER the main loop so old blobs + // (which lack it) still load — the loader treats a missing section as "no modified slots". See PORT.md §7.5. + uint16_t modifiedWeaponCount = 0; + for (const auto &entry : player->weaponProficiencies) { + if (!entry.second.modifiedSlots.empty()) { + ++modifiedWeaponCount; + } + } + propWeaponProficiency.write(modifiedWeaponCount); + for (const auto &[itemId, proficiency] : player->weaponProficiencies) { + if (proficiency.modifiedSlots.empty()) { + continue; + } + propWeaponProficiency.write(itemId); + propWeaponProficiency.write(static_cast(proficiency.modifiedSlots.size())); + for (const auto &slot : proficiency.modifiedSlots) { + propWeaponProficiency.write(slot.proficiencyLevel); + propWeaponProficiency.write(slot.perkPosition); + propWeaponProficiency.write(static_cast(slot.perkType)); + propWeaponProficiency.write(slot.value); + } + } + size_t proficiencySize; const char* proficiencyData = propWeaponProficiency.getStream(proficiencySize); diff --git a/src/items/weapons/weapons.cpp b/src/items/weapons/weapons.cpp index 9d12e46e5..a1ce04210 100644 --- a/src/items/weapons/weapons.cpp +++ b/src/items/weapons/weapons.cpp @@ -383,6 +383,11 @@ void Weapon::internalUseWeapon(const std::shared_ptr &player, const std: } } + // Weapon-proficiency Type-32 "Homing Missile": on-hit weapon proc. Fires once per resolved hit against a + // creature (auto-attack of any weapon type, including each cleaved target). Rolls the perk's Probability and + // on success launches an element-typed homing missile; calls combatChangeHealth directly, so no re-entrancy. + player->tryProcWeaponProficiencyHomingMissile(target); + onUsedWeapon(player, item, target->getTile()); } diff --git a/src/lua/functions/core/game/game_functions.cpp b/src/lua/functions/core/game/game_functions.cpp index 9430fdfa3..4b2fc25ac 100644 --- a/src/lua/functions/core/game/game_functions.cpp +++ b/src/lua/functions/core/game/game_functions.cpp @@ -87,6 +87,7 @@ void GameFunctions::init(lua_State* L) { Lua::registerMethod(L, "Game", "startRaid", GameFunctions::luaGameStartRaid); Lua::registerMethod(L, "Game", "getClientVersion", GameFunctions::luaGameGetClientVersion); + Lua::registerMethod(L, "Game", "setImprovedRespawnZones", GameFunctions::luaGameSetImprovedRespawnZones); Lua::registerMethod(L, "Game", "reload", GameFunctions::luaGameReload); @@ -791,6 +792,30 @@ int GameFunctions::luaGameGetClientVersion(lua_State* L) { return 1; } +int GameFunctions::luaGameSetImprovedRespawnZones(lua_State* L) { + // Game.setImprovedRespawnZones(rects) ; rects = { {x1, y1, x2, y2}, ... } (whole replace) + std::vector zones; + luaL_checktype(L, 1, LUA_TTABLE); + lua_pushnil(L); + while (lua_next(L, 1) != 0) { + luaL_checktype(L, -1, LUA_TTABLE); + lua_rawgeti(L, -1, 1); + lua_rawgeti(L, -2, 2); + lua_rawgeti(L, -3, 3); + lua_rawgeti(L, -4, 4); + zones.push_back(ImprovedRespawnZone { + static_cast(luaL_checknumber(L, -4)), + static_cast(luaL_checknumber(L, -3)), + static_cast(luaL_checknumber(L, -2)), + static_cast(luaL_checknumber(L, -1)), + }); + lua_pop(L, 5); + } + g_game().setImprovedRespawnZones(std::move(zones)); + Lua::pushBoolean(L, true); + return 1; +} + int GameFunctions::luaGameReload(lua_State* L) { // Game.reload(reloadType) const Reload_t reloadType = Lua::getNumber(L, 1); diff --git a/src/lua/functions/core/game/game_functions.hpp b/src/lua/functions/core/game/game_functions.hpp index 67b40473b..6d5648955 100644 --- a/src/lua/functions/core/game/game_functions.hpp +++ b/src/lua/functions/core/game/game_functions.hpp @@ -68,6 +68,7 @@ class GameFunctions { static int luaGameStartRaid(lua_State* L); static int luaGameGetClientVersion(lua_State* L); + static int luaGameSetImprovedRespawnZones(lua_State* L); static int luaGameReload(lua_State* L); diff --git a/src/lua/functions/core/game/lua_enums.cpp b/src/lua/functions/core/game/lua_enums.cpp index 7d6ca8a12..0e35d6ae1 100644 --- a/src/lua/functions/core/game/lua_enums.cpp +++ b/src/lua/functions/core/game/lua_enums.cpp @@ -774,6 +774,20 @@ void LuaEnums::initConstAniEnums(lua_State* L) { registerEnum(L, CONST_ANI_TERRASTORMARROW); registerEnum(L, CONST_ANI_FROSTSTORMARROW); registerEnum(L, CONST_ANI_THUNDERSTORMARROW); + registerEnum(L, CONST_ANI_HOMING_PHYSICAL); + registerEnum(L, CONST_ANI_HOMING_FIRE); + registerEnum(L, CONST_ANI_HOMING_EARTH); + registerEnum(L, CONST_ANI_HOMING_ENERGY); + registerEnum(L, CONST_ANI_HOMING_ICE); + registerEnum(L, CONST_ANI_HOMING_HOLY); + registerEnum(L, CONST_ANI_HOMING_DEATH); + registerEnum(L, CONST_ANI_HOMING_STELLAR_PHYSICAL); + registerEnum(L, CONST_ANI_HOMING_STELLAR_FIRE); + registerEnum(L, CONST_ANI_HOMING_STELLAR_EARTH); + registerEnum(L, CONST_ANI_HOMING_STELLAR_ENERGY); + registerEnum(L, CONST_ANI_HOMING_STELLAR_ICE); + registerEnum(L, CONST_ANI_HOMING_STELLAR_HOLY); + registerEnum(L, CONST_ANI_HOMING_STELLAR_DEATH); registerEnum(L, CONST_ANI_WEAPONTYPE); } diff --git a/src/lua/functions/creatures/monster/monster_functions.cpp b/src/lua/functions/creatures/monster/monster_functions.cpp index 1d5bd886a..4e6c50984 100644 --- a/src/lua/functions/creatures/monster/monster_functions.cpp +++ b/src/lua/functions/creatures/monster/monster_functions.cpp @@ -91,6 +91,8 @@ void MonsterFunctions::init(lua_State* L) { Lua::registerMethod(L, "Monster", "walkTo", MonsterFunctions::luaMonsterWalkTo); + Lua::registerMethod(L, "Monster", "applyEchoWarden", MonsterFunctions::luaMonsterApplyEchoWarden); + CharmFunctions::init(L); LootFunctions::init(L); MonsterSpellFunctions::init(L); @@ -914,3 +916,18 @@ int MonsterFunctions::luaMonsterWalkTo(lua_State* L) { Lua::pushBoolean(L, true); return 1; } + +int MonsterFunctions::luaMonsterApplyEchoWarden(lua_State* L) { + // monster:applyEchoWarden(hpMult[, atkMult = 1.0]) + const auto &monster = Lua::getUserdataShared(L, 1); + if (!monster) { + Lua::reportErrorFunc(Lua::getErrorDesc(LUA_ERROR_MONSTER_NOT_FOUND)); + Lua::pushBoolean(L, false); + return 1; + } + + const float hpMult = Lua::getNumber(L, 2, 1.0f); + const float atkMult = Lua::getNumber(L, 3, 1.0f); + Lua::pushBoolean(L, monster->applyEchoWarden(hpMult, atkMult)); + return 1; +} diff --git a/src/lua/functions/creatures/monster/monster_functions.hpp b/src/lua/functions/creatures/monster/monster_functions.hpp index 6a001c487..f0577c4a2 100644 --- a/src/lua/functions/creatures/monster/monster_functions.hpp +++ b/src/lua/functions/creatures/monster/monster_functions.hpp @@ -96,5 +96,7 @@ class MonsterFunctions { static int luaMonsterWalkTo(lua_State* L); + static int luaMonsterApplyEchoWarden(lua_State* L); + friend class CreatureFunctions; }; diff --git a/src/lua/functions/creatures/player/player_functions.cpp b/src/lua/functions/creatures/player/player_functions.cpp index 872cba21f..c1dcb32f1 100644 --- a/src/lua/functions/creatures/player/player_functions.cpp +++ b/src/lua/functions/creatures/player/player_functions.cpp @@ -486,6 +486,7 @@ void PlayerFunctions::init(lua_State* L) { Lua::registerMethod(L, "Player", "sendBannerType", PlayerFunctions::luaPlayersendBannerType); Lua::registerMethod(L, "Player", "sendQuestProgress", PlayerFunctions::luaPlayerSendQuestStatusUpdate); + Lua::registerMethod(L, "Player", "sendLeaderMonsterKilledBanner", PlayerFunctions::luaPlayerSendLeaderMonsterKilledBanner); Lua::registerMethod(L, "Player", "sendIconBakragore", PlayerFunctions::luaPlayerSendIconBakragore); Lua::registerMethod(L, "Player", "removeIconBakragore", PlayerFunctions::luaPlayerRemoveIconBakragore); @@ -512,6 +513,14 @@ void PlayerFunctions::init(lua_State* L) { Lua::registerMethod(L, "Player", "applyImbuementScrollToItem", PlayerFunctions::luaPlayerApplyImbuementScrollToItem); Lua::registerMethod(L, "Player", "onClearAllImbuementsOnEtcher", PlayerFunctions::luaPlayerOnClearAllImbuementsOnEtcher); Lua::registerMethod(L, "Player", "sendWeaponProficiencyExperience", PlayerFunctions::luaPlayerSendWeaponProficiencyExperience); + Lua::registerMethod(L, "Player", "sendBossDifficultySelection", PlayerFunctions::luaPlayerSendBossDifficultySelection); + Lua::registerMethod(L, "Player", "sendCyclopediaDiscoveryTest", PlayerFunctions::luaPlayerSendCyclopediaDiscoveryTest); + Lua::registerMethod(L, "Player", "sendDiscoveryData", PlayerFunctions::luaPlayerSendDiscoveryData); + Lua::registerMethod(L, "Player", "sendDiscoveryCurrentArea", PlayerFunctions::luaPlayerSendDiscoveryCurrentArea); + Lua::registerMethod(L, "Player", "sendDiscoveryExploring", PlayerFunctions::luaPlayerSendDiscoveryExploring); + Lua::registerMethod(L, "Player", "sendDiscoveryDonations", PlayerFunctions::luaPlayerSendDiscoveryDonations); + Lua::registerMethod(L, "Player", "sendDiscoveryArea", PlayerFunctions::luaPlayerSendDiscoveryArea); + Lua::registerMethod(L, "Player", "checkNewTitles", PlayerFunctions::luaPlayerCheckNewTitles); // OTCR Features Lua::registerMethod(L, "Player", "getMapShader", PlayerFunctions::luaPlayerGetMapShader); @@ -1461,6 +1470,167 @@ int PlayerFunctions::luaPlayerSetKills(lua_State* L) { return 1; } +int PlayerFunctions::luaPlayerSendCreatureSquare(lua_State* L) { + // player:sendCreatureSquare(creature, markType[, weaponType = 255]) + const auto &player = Lua::getUserdataShared(L, 1); + if (!player) { + Lua::pushBoolean(L, false); + return 1; + } + + const auto &creature = Lua::getUserdataShared(L, 2); + if (!creature) { + Lua::pushBoolean(L, false); + return 1; + } + + const auto markType = Lua::getNumber(L, 3, 0); + const auto weaponType = Lua::getNumber(L, 4, 255); + player->sendCreatureSquare(creature, static_cast(markType), static_cast(weaponType)); + Lua::pushBoolean(L, true); + return 1; +} + +int PlayerFunctions::luaPlayerSendDiscoveryData(lua_State* L) { + // player:sendDiscoveryData(mainAreas, discoveredSubIds, discoverableSubIds) + const auto &player = Lua::getUserdataShared(L, 1); + if (!player) { + Lua::pushBoolean(L, false); + return 1; + } + + std::vector> mainAreas; + luaL_checktype(L, 2, LUA_TTABLE); + lua_pushnil(L); + while (lua_next(L, 2) != 0) { + luaL_checktype(L, -1, LUA_TTABLE); + lua_rawgeti(L, -1, 1); // areaId + lua_rawgeti(L, -2, 2); // status + lua_rawgeti(L, -3, 3); // progress + mainAreas.emplace_back(static_cast(luaL_checknumber(L, -3)), static_cast(luaL_checknumber(L, -2)), static_cast(luaL_checknumber(L, -1))); + lua_pop(L, 4); + } + + const auto readIdList = [L](int idx, std::vector &out) { + luaL_checktype(L, idx, LUA_TTABLE); + lua_pushnil(L); + while (lua_next(L, idx) != 0) { + out.push_back(static_cast(luaL_checknumber(L, -1))); + lua_pop(L, 1); + } + }; + std::vector discovered; + std::vector discoverable; + readIdList(3, discovered); + readIdList(4, discoverable); + + player->sendCyclopediaMapDiscoveryData(mainAreas, discovered, discoverable); + Lua::pushBoolean(L, true); + return 1; +} + +int PlayerFunctions::luaPlayerSendDiscoveryCurrentArea(lua_State* L) { + // player:sendDiscoveryCurrentArea(subAreaId) + const auto &player = Lua::getUserdataShared(L, 1); + if (!player) { + Lua::pushBoolean(L, false); + return 1; + } + + player->sendCyclopediaMapSetCurrentArea(Lua::getNumber(L, 2, 0)); + Lua::pushBoolean(L, true); + return 1; +} + +int PlayerFunctions::luaPlayerSendDiscoveryExploring(lua_State* L) { + // player:sendDiscoveryExploring(subAreaId) - 0xDD sub 11, currentExploringSubAreaID (0 = none) + const auto &player = Lua::getUserdataShared(L, 1); + if (!player) { + Lua::pushBoolean(L, false); + return 1; + } + + player->sendCyclopediaMapSetExploringArea(Lua::getNumber(L, 2, 0)); + Lua::pushBoolean(L, true); + return 1; +} + +int PlayerFunctions::luaPlayerSendDiscoveryDonations(lua_State* L) { + // player:sendDiscoveryDonations(goal, areas) ; areas = { {areaId, improvedRespawnActive, donated}, ... } + const auto &player = Lua::getUserdataShared(L, 1); + if (!player) { + Lua::pushBoolean(L, false); + return 1; + } + + const auto goal = Lua::getNumber(L, 2, 0); + std::vector> areas; + luaL_checktype(L, 3, LUA_TTABLE); + lua_pushnil(L); + while (lua_next(L, 3) != 0) { + luaL_checktype(L, -1, LUA_TTABLE); + lua_rawgeti(L, -1, 1); // areaId + lua_rawgeti(L, -2, 2); // improvedRespawnActive + lua_rawgeti(L, -3, 3); // donated + areas.emplace_back( + static_cast(luaL_checknumber(L, -3)), + lua_toboolean(L, -2) != 0, + static_cast(luaL_checknumber(L, -1)) + ); + lua_pop(L, 4); + } + + player->sendCyclopediaMapDonations(goal, areas); + Lua::pushBoolean(L, true); + return 1; +} + +int PlayerFunctions::luaPlayerSendDiscoveryArea(lua_State* L) { + // player:sendDiscoveryArea(subAreaId, active, poiTarget, points) ; points = { {x, y, z, state}, ... } + const auto &player = Lua::getUserdataShared(L, 1); + if (!player) { + Lua::pushBoolean(L, false); + return 1; + } + + const auto subAreaId = Lua::getNumber(L, 2, 0); + const bool active = lua_isboolean(L, 3) != 0 ? Lua::getBoolean(L, 3) : true; + const auto poiTarget = Lua::getNumber(L, 4, 7); + + std::vector> points; + luaL_checktype(L, 5, LUA_TTABLE); + lua_pushnil(L); + while (lua_next(L, 5) != 0) { + luaL_checktype(L, -1, LUA_TTABLE); + lua_rawgeti(L, -1, 1); // x + lua_rawgeti(L, -2, 2); // y + lua_rawgeti(L, -3, 3); // z + lua_rawgeti(L, -4, 4); // state + points.emplace_back( + Position(static_cast(luaL_checknumber(L, -4)), static_cast(luaL_checknumber(L, -3)), static_cast(luaL_checknumber(L, -2))), + static_cast(luaL_checknumber(L, -1)) + ); + lua_pop(L, 5); + } + + player->sendCyclopediaMapSetDiscoveryArea(subAreaId, active, poiTarget, points); + Lua::pushBoolean(L, true); + return 1; +} + +int PlayerFunctions::luaPlayerCheckNewTitles(lua_State* L) { + // player:checkNewTitles() - re-run the cyclopedia title unlock checks (e.g. after a discovery milestone) + const auto &player = Lua::getUserdataShared(L, 1); + if (!player) { + Lua::pushBoolean(L, false); + return 1; + } + + player->title()->checkAndUpdateNewTitles(); + Lua::pushBoolean(L, true); + return 1; +} + int PlayerFunctions::luaPlayerGetReward(lua_State* L) { // player:getReward(rewardId[, autoCreate = false]) const auto &player = Lua::getUserdataShared(L, 1); @@ -3684,6 +3854,7 @@ int PlayerFunctions::luaPlayerLearnSpell(lua_State* L) { const bool showBanner = Lua::getBoolean(L, 3, true); const bool alreadyLearned = player->hasLearnedInstantSpell(spellName); player->learnInstantSpell(spellName); + // Show the "New Spell Unlocked" banner only when the spell is genuinely new. if (showBanner && !alreadyLearned) { const auto &spell = g_spells().getInstantSpellByName(spellName); if (spell && spell->getSpellId() > 0) { @@ -5464,6 +5635,19 @@ int PlayerFunctions::luaPlayerSendQuestStatusUpdate(lua_State* L) { return 0; } +int PlayerFunctions::luaPlayerSendLeaderMonsterKilledBanner(lua_State* L) { + // player:sendLeaderMonsterKilledBanner(raceId, charmPoints) -> "Echo Warden Killed" banner (shows the creature) + const auto &player = Lua::getUserdataShared(L, 1); + if (!player) { + lua_pushnil(L); + return 1; + } + + player->sendScreenshotAndBannerLeaderMonsterKilled(Lua::getNumber(L, 2), Lua::getNumber(L, 3)); + Lua::pushBoolean(L, true); + return 1; +} + int PlayerFunctions::luaPlayerSendIconBakragore(lua_State* L) { // player:sendIconBakragore() const auto &player = Lua::getUserdataShared(L, 1); @@ -5794,6 +5978,79 @@ int PlayerFunctions::luaPlayerSendWeaponProficiencyExperience(lua_State* L) { return 1; } +int PlayerFunctions::luaPlayerSendBossDifficultySelection(lua_State* L) { + // player:sendBossDifficultySelection(selectedDifficulty, numbers{}, banners{}, redMods{}, greenMods{}) + const auto &player = Lua::getUserdataShared(L, 1); + if (!player) { + Lua::reportErrorFunc(Lua::getErrorDesc(LUA_ERROR_PLAYER_NOT_FOUND)); + Lua::pushBoolean(L, false); + return 1; + } + + const uint8_t selectedDifficulty = Lua::getNumber(L, 2, 0); + + auto readNumbers = [L](int idx, std::vector &out) { + if (!lua_istable(L, idx)) { + return; + } + for (int i = 1;; ++i) { + lua_rawgeti(L, idx, i); + if (lua_isnil(L, -1)) { + lua_pop(L, 1); + break; + } + out.push_back(Lua::getNumber(L, -1, 0)); + lua_pop(L, 1); + } + }; + auto readStrings = [L](int idx, std::vector &out) { + if (!lua_istable(L, idx)) { + return; + } + for (int i = 1;; ++i) { + lua_rawgeti(L, idx, i); + if (lua_isnil(L, -1)) { + lua_pop(L, 1); + break; + } + out.push_back(Lua::getString(L, -1, "")); + lua_pop(L, 1); + } + }; + + std::vector numbers; + std::vector banners; + std::vector redMods; + std::vector greenMods; + readNumbers(3, numbers); + readStrings(4, banners); + readStrings(5, redMods); + readStrings(6, greenMods); + + player->sendBossDifficultySelection(selectedDifficulty, numbers, banners, redMods, greenMods); + Lua::pushBoolean(L, true); + return 1; +} + +int PlayerFunctions::luaPlayerSendCyclopediaDiscoveryTest(lua_State* L) { + // player:sendCyclopediaDiscoveryTest(mainAreaId, subAreaId, x, y, z) — Cyclopedia Map discovery test (S2C 0xDD). + const auto &player = Lua::getUserdataShared(L, 1); + if (!player) { + Lua::reportErrorFunc(Lua::getErrorDesc(LUA_ERROR_PLAYER_NOT_FOUND)); + Lua::pushBoolean(L, false); + return 1; + } + + const uint16_t mainAreaId = Lua::getNumber(L, 2, 24); + const uint16_t subAreaId = Lua::getNumber(L, 3, 28); + const uint16_t x = Lua::getNumber(L, 4, 32369); + const uint16_t y = Lua::getNumber(L, 5, 32214); + const uint8_t z = Lua::getNumber(L, 6, 7); + player->sendCyclopediaDiscoveryTest(mainAreaId, subAreaId, Position(x, y, z)); + Lua::pushBoolean(L, true); + return 1; +} + int PlayerFunctions::luaPlayerGetMapShader(lua_State* L) { // player:getMapShader() const auto &player = Lua::getUserdataShared(L, 1); diff --git a/src/lua/functions/creatures/player/player_functions.hpp b/src/lua/functions/creatures/player/player_functions.hpp index f02d1704e..c302382a9 100644 --- a/src/lua/functions/creatures/player/player_functions.hpp +++ b/src/lua/functions/creatures/player/player_functions.hpp @@ -122,6 +122,13 @@ class PlayerFunctions { static int luaPlayerGetKills(lua_State* L); static int luaPlayerSetKills(lua_State* L); + static int luaPlayerSendCreatureSquare(lua_State* L); + static int luaPlayerSendDiscoveryData(lua_State* L); + static int luaPlayerSendDiscoveryCurrentArea(lua_State* L); + static int luaPlayerSendDiscoveryExploring(lua_State* L); + static int luaPlayerSendDiscoveryDonations(lua_State* L); + static int luaPlayerSendDiscoveryArea(lua_State* L); + static int luaPlayerCheckNewTitles(lua_State* L); static int luaPlayerGetFreeCapacity(lua_State* L); @@ -460,6 +467,7 @@ class PlayerFunctions { static int luaPlayersendBannerType(lua_State* L); static int luaPlayerSendQuestStatusUpdate(lua_State* L); + static int luaPlayerSendLeaderMonsterKilledBanner(lua_State* L); static int luaPlayerSendIconBakragore(lua_State* L); static int luaPlayerRemoveIconBakragore(lua_State* L); @@ -486,6 +494,8 @@ class PlayerFunctions { static int luaPlayerApplyImbuementScrollToItem(lua_State* L); static int luaPlayerOnClearAllImbuementsOnEtcher(lua_State* L); static int luaPlayerSendWeaponProficiencyExperience(lua_State* L); + static int luaPlayerSendBossDifficultySelection(lua_State* L); + static int luaPlayerSendCyclopediaDiscoveryTest(lua_State* L); static int luaPlayerGetMapShader(lua_State* L); static int luaPlayerSetMapShader(lua_State* L); diff --git a/src/server/network/protocol/protocolgame.cpp b/src/server/network/protocol/protocolgame.cpp index ea1744bae..717f28307 100644 --- a/src/server/network/protocol/protocolgame.cpp +++ b/src/server/network/protocol/protocolgame.cpp @@ -45,6 +45,7 @@ #include "creatures/players/wheel/player_wheel.hpp" #include "enums/player_icons.hpp" #include "game/game.hpp" +#include "kv/kv.hpp" #include "game/modal_window/modal_window.hpp" #include "game/scheduling/dispatcher.hpp" #include "game/scheduling/save_manager.hpp" @@ -1349,7 +1350,7 @@ void ProtocolGame::parsePacketFromDispatcher(NetworkMessage &msg, uint8_t recvby parseQuickLootBlackWhitelist(msg); break; case 0x92: - parseOpenDepotSearch(); + parseCyclopediaMapAction(msg, recvbyte); break; case 0x93: parseCloseDepotSearch(); @@ -1438,6 +1439,9 @@ void ProtocolGame::parsePacketFromDispatcher(NetworkMessage &msg, uint8_t recvby case 0xB3: parseWeaponProficiency(msg); break; + case 0xC2: + parseBossDifficultySelection(msg); + break; case 0xBA: parseSoulSeals(msg); break; @@ -1510,6 +1514,9 @@ void ProtocolGame::parsePacketFromDispatcher(NetworkMessage &msg, uint8_t recvby case 0xD7: parseCloseImbuementWindow(msg); break; + case 0xDB: + parseCyclopediaMapAction(msg, recvbyte); + break; case 0xDC: parseAddVip(msg); break; @@ -1623,7 +1630,9 @@ void ProtocolGame::GetTileDescription(const std::shared_ptr &tile, Network int32_t count; std::shared_ptr ground = tile->getGround(); - if (ground) { + // 15.25+ clients reject a zero client-id appearance on a map tile ("field has more than + // one zero id appearance"); skip any tile thing whose ItemType resolves to id 0. + if (ground && Item::items[ground->getID()].id != 0) { AddItem(msg, ground); count = 1; } else { @@ -1633,6 +1642,9 @@ void ProtocolGame::GetTileDescription(const std::shared_ptr &tile, Network const TileItemVector* items = tile->getItemList(); if (items) { for (auto it = items->getBeginTopItem(), end = items->getEndTopItem(); it != end; ++it) { + if (Item::items[(*it)->getID()].id == 0) { + continue; // skip zero client-id appearance (15.25+ map parser rejects it) + } AddItem(msg, *it); count++; @@ -1677,6 +1689,9 @@ void ProtocolGame::GetTileDescription(const std::shared_ptr &tile, Network if (items) { for (auto it = items->getBeginDownItem(), end = items->getEndDownItem(); it != end; ++it) { + if (Item::items[(*it)->getID()].id == 0) { + continue; // skip zero client-id appearance (15.25+ map parser rejects it) + } AddItem(msg, *it); if (++count == 10) { @@ -2665,72 +2680,78 @@ void ProtocolGame::parseBestiarysendMonsterData(NetworkMessage &msg) { newmsg.add(mtype->info.bestiaryToUnlock); newmsg.addByte(mtype->info.bestiaryStars); - newmsg.addByte(mtype->info.bestiaryOccurrence); - std::vector lootList = mtype->info.lootItems; - newmsg.addByte(lootList.size()); - for (const LootBlock &loot : lootList) { - int8_t difficult = g_iobestiary().calculateDifficult(loot.chance); - bool shouldAddItem = false; - - switch (currentLevel) { - case 1: - shouldAddItem = false; - break; - case 2: - if (difficult < 2) { - shouldAddItem = true; - } - break; - case 3: - if (difficult < 3) { + // 15.25 (sommerrelease26): in the e2a4a1 client everything past the stars byte is gated on + // currentLevel != 0, and the occurrence byte is now followed by an extra (unconfirmed) byte. + if (currentLevel != 0) { + newmsg.addByte(mtype->info.bestiaryOccurrence); + newmsg.addByte(0); + + std::vector lootList = mtype->info.lootItems; + newmsg.addByte(lootList.size()); + for (const LootBlock &loot : lootList) { + int8_t difficult = g_iobestiary().calculateDifficult(loot.chance); + bool shouldAddItem = false; + + switch (currentLevel) { + case 1: + shouldAddItem = false; + break; + case 2: + if (difficult < 2) { + shouldAddItem = true; + } + break; + case 3: + if (difficult < 3) { + shouldAddItem = true; + } + break; + case 4: shouldAddItem = true; - } - break; - case 4: - shouldAddItem = true; - break; - } + break; + } - newmsg.add(g_configManager().getBoolean(SHOW_LOOTS_IN_BESTIARY) || shouldAddItem == true ? loot.id : 0); - newmsg.addByte(difficult); - newmsg.addByte(0); // 1 if special event - 0 if regular loot (?) - if (g_configManager().getBoolean(SHOW_LOOTS_IN_BESTIARY) || shouldAddItem == true) { - newmsg.addString(loot.name); - newmsg.addByte(loot.countmax > 0 ? 0x1 : 0x0); + newmsg.add(g_configManager().getBoolean(SHOW_LOOTS_IN_BESTIARY) || shouldAddItem == true ? loot.id : 0); + newmsg.addByte(difficult); + newmsg.addByte(0); // 1 if special event - 0 if regular loot (?) + if (g_configManager().getBoolean(SHOW_LOOTS_IN_BESTIARY) || shouldAddItem == true) { + newmsg.addString(loot.name); + newmsg.addByte(loot.countmax > 0 ? 0x1 : 0x0); + } } - } - if (currentLevel > 1) { - newmsg.add(mtype->info.bestiaryCharmsPoints); - int8_t attackmode = 0; - if (!mtype->info.isHostile) { - attackmode = 2; - } else if (mtype->info.targetDistance) { - attackmode = 1; + if (currentLevel > 1) { + newmsg.add(mtype->info.bestiaryCharmsPoints); + int8_t attackmode = 0; + if (!mtype->info.isHostile) { + attackmode = 2; + } else if (mtype->info.targetDistance) { + attackmode = 1; + } + + newmsg.addByte(attackmode); + newmsg.addByte(0x02); + newmsg.add(mtype->info.healthMax); + newmsg.add(mtype->info.experience); + newmsg.add(mtype->getBaseSpeed()); + newmsg.add(mtype->info.armor); + newmsg.addDouble(mtype->info.mitigation); } - newmsg.addByte(attackmode); - newmsg.addByte(0x02); - newmsg.add(mtype->info.healthMax); - newmsg.add(mtype->info.experience); - newmsg.add(mtype->getBaseSpeed()); - newmsg.add(mtype->info.armor); - newmsg.addDouble(mtype->info.mitigation); - } + if (currentLevel > 2) { + std::map elements = g_iobestiary().getMonsterElements(mtype); - if (currentLevel > 2) { - std::map elements = g_iobestiary().getMonsterElements(mtype); + newmsg.addByte(elements.size()); + for (auto &element : elements) { + newmsg.addByte(element.first); + newmsg.add(element.second); + } - newmsg.addByte(elements.size()); - for (auto &element : elements) { - newmsg.addByte(element.first); - newmsg.add(element.second); + newmsg.add(1); + newmsg.addString(mtype->info.bestiaryLocations); } - - newmsg.add(1); - newmsg.addString(mtype->info.bestiaryLocations); - } + } // end 15.25 (sommerrelease26) currentLevel != 0 gate writeToOutputBuffer(newmsg); } @@ -3319,10 +3340,14 @@ void ProtocolGame::parseBestiarySendCreatures(NetworkMessage &msg) { } } + // 15.25 (sommerrelease26): the e2a4a1 client reads a new per-creature byte right after the + // race id (before progress). It appears to be a "known/unlocked" flag, so derive it from the + // kill progress (0 keeps the silhouette, 1 reveals the entry). The progress block also gained + // an extra trailing byte (sent as 0 until its meaning is confirmed). + newmsg.addByte(progress > 0 ? 1 : 0); + newmsg.addByte(progress); if (progress > 0) { - newmsg.addByte(progress); newmsg.addByte(occurrence); - } else { newmsg.addByte(0); } @@ -3565,30 +3590,22 @@ void ProtocolGame::parseSendResourceBalance() { void ProtocolGame::parseSendResourceBalance(NetworkMessage &msg) { // Portable forge open (client UI): empty 0xED requests the forge item list (0x87). + // Do NOT prime m_lastForgeOpenTime here: leaving it stale makes the follow-up + // forge-resource request trigger a full re-open (sendOpenForge), which is what + // arms the window buttons. This mirrors the working path (use-item / /openforge). if (!msg.canRead(1)) { - m_lastForgeOpenTime = OTSYS_TIME(); + // Empty 0xED (portable-forge button): open the exaltation forge. sendOpenForge(); return; } const auto resourceType = static_cast(msg.getByte()); - switch (resourceType) { - case RESOURCE_FORGE_DUST: - case RESOURCE_FORGE_SLIVER: - case RESOURCE_FORGE_CORES: { - const uint32_t now = OTSYS_TIME(); - if (now - m_lastForgeOpenTime > 1000) { - m_lastForgeOpenTime = now; - sendOpenForge(); - } else { - sendResourceBalance(resourceType); - } - break; - } - default: - sendResourceBalance(resourceType); - break; - } + // 15.25 (sommerrelease26): answer with the requested resource balance only. The Weapon + // Proficiency "Modify" panel polls the forge dust via 0xED (with a resource byte); the old + // portable-forge re-open hack popped the exaltation forge and never delivered the dust to + // the proficiency panel ("Not enough dust available"). Sending the balance fixes both the + // stray forge window and the missing dust. + sendResourceBalance(resourceType); } void ProtocolGame::sendResourceBalance(Resource_t resourceType) { @@ -3623,6 +3640,12 @@ void ProtocolGame::sendResourceBalance(Resource_t resourceType) { value = coreCount; break; } + case RESOURCE_FORGE_DUST_LIMIT: + // 15.25 (sommerrelease26): the client polls 0x49 for the forge dust cap (shown as the + // "/limit" next to current dust, and used by the Increase Dust Limit preview). The 0xEE + // parser reads this in the default branch as u64, which is what sendResourceBalance emits. + value = player->getForgeDustLevel(); + break; case RESOURCE_LESSER_GEMS: value = player->getItemTypeCount(player->getVocation()->getWheelGemId(WheelGemQuality_t::Lesser)); break; @@ -3869,6 +3892,7 @@ void ProtocolGame::addCreatureIcon(NetworkMessage &msg, const std::shared_ptr(icon.category)); msg.add(icon.count); + msg.addByte(0); // 15.25 (sommerrelease26): new trailing per-icon byte } } @@ -4028,6 +4052,265 @@ void ProtocolGame::sendAddMarker(const Position &pos, uint8_t markType, const st writeToOutputBuffer(msg); } +void ProtocolGame::sendCyclopediaMapSetCurrentArea(uint16_t areaId) { + if (!player || oldProtocol) { + return; + } + NetworkMessage msg; + msg.addByte(0xDD); + msg.addByte(enumToValue(CyclopediaMapData_t::SetCurrentArea)); + msg.add(areaId); + writeToOutputBuffer(msg); +} + +void ProtocolGame::sendCyclopediaMapDiscoveryData(const std::vector> &mainAreas, const std::vector &discoveredSubAreas, const std::vector &discoverableSubAreas) { + if (!player || oldProtocol) { + return; + } + // sub 1: u16 nMain {u16 areaId, u8 status(0-3), u8 progress(0-100,0xFF=undiscoverable)}; u16 nDiscovered {u16}; u16 nDiscoverable {u16}. + NetworkMessage msg; + msg.addByte(0xDD); + msg.addByte(enumToValue(CyclopediaMapData_t::DiscoveryData)); + msg.add(static_cast(mainAreas.size())); + for (const auto &[areaId, status, progress] : mainAreas) { + msg.add(areaId); + msg.addByte(status); + msg.addByte(progress); + } + msg.add(static_cast(discoveredSubAreas.size())); + for (const auto subAreaId : discoveredSubAreas) { + msg.add(subAreaId); + } + msg.add(static_cast(discoverableSubAreas.size())); + for (const auto subAreaId : discoverableSubAreas) { + msg.add(subAreaId); + } + writeToOutputBuffer(msg); +} + +void ProtocolGame::sendCyclopediaMapSetExploringArea(uint16_t subAreaId) { + if (!player || oldProtocol) { + return; + } + // sub 11: u16 subarea id -> currentExploringSubAreaID (0 = none) + NetworkMessage msg; + msg.addByte(0xDD); + msg.addByte(enumToValue(CyclopediaMapData_t::SetExploringArea)); + msg.add(subAreaId); + writeToOutputBuffer(msg); +} + +void ProtocolGame::sendCyclopediaMapDonations(uint64_t donationGoal, const std::vector> &areas) { + if (!player || oldProtocol) { + return; + } + // sub 9: u64 goal; u8 count; {u16 areaId, bool improvedRespawnActive, u64 donatedAmount}xN + NetworkMessage msg; + msg.addByte(0xDD); + msg.addByte(enumToValue(CyclopediaMapData_t::Donations)); + msg.add(donationGoal); + msg.addByte(static_cast(areas.size())); + for (const auto &[areaId, improvedRespawn, donated] : areas) { + msg.add(areaId); + msg.addByte(improvedRespawn ? 0x01 : 0x00); + msg.add(donated); + } + writeToOutputBuffer(msg); +} + +void ProtocolGame::sendCyclopediaMapSetDiscoveryArea(uint16_t areaId, bool active, uint8_t poiTarget, const std::vector> &points) { + if (!player || oldProtocol) { + return; + } + // sub 5 ("Start Discovering" response): u16 areaId; bool active (reader+0x88!); u8 poiTarget(=7); u8 poiCount; {position(5B), u8 state}xN. + NetworkMessage msg; + msg.addByte(0xDD); + msg.addByte(enumToValue(CyclopediaMapData_t::SetDiscoveryArea)); + msg.add(areaId); + msg.addByte(active ? 0x01 : 0x00); + msg.addByte(poiTarget); + msg.addByte(static_cast(points.size())); + for (const auto &[pos, state] : points) { + msg.addPosition(pos); + msg.addByte(state); + } + writeToOutputBuffer(msg); +} + +void ProtocolGame::parseCyclopediaMapAction(NetworkMessage &msg, uint8_t recvbyte) { + if (oldProtocol || !player) { + return; + } + + if (recvbyte == 0xDB) { + const uint8_t mapAction = msg.canRead(1) ? msg.getByte() : 0xFF; + if (mapAction == 1 && msg.canRead(6)) { + // confirmed wire: u16 areaId, u32 amount, u8 trailing (ignored) + const uint16_t areaId = msg.get(); + const uint32_t amount = msg.get(); + g_logger().debug("[CyclopediaMapAction] 0xDB donate: areaId {} amount {}", areaId, amount); + if (areaId > 0 && areaId < 1000 && amount > 0) { + handleDiscoveryDonation(areaId, amount); + } + } else if (mapAction != 2) { + std::string hex; + while (msg.canRead(1)) { + hex += fmt::format("{:02x} ", msg.getByte()); + } + g_logger().debug("[CyclopediaMapAction] 0xDB unknown action {}: [{}]", mapAction, hex); + } + // intentionally never replied to + return; + } + + std::vector body; + body.reserve(msg.getLength()); + while (msg.canRead(1)) { + body.push_back(msg.getByte()); + } + size_t p = 0; + auto readVarint = [&](uint64_t &value) -> bool { + value = 0; + int shift = 0; + while (p < body.size()) { + const uint8_t b = body[p++]; + value |= static_cast(b & 0x7F) << shift; + if (!(b & 0x80)) { + return true; + } + shift += 7; + } + return false; + }; + + std::map top; + std::map> nested; + std::string dump; + while (p < body.size()) { + uint64_t tag; + if (!readVarint(tag)) { + break; + } + const auto fn = static_cast(tag >> 3); + const auto wt = static_cast(tag & 7); + if (wt == 0) { + uint64_t v; + if (!readVarint(v)) { + break; + } + top[fn] = v; + dump += fmt::format("f{}={} ", fn, v); + } else if (wt == 2) { + uint64_t ln; + if (!readVarint(ln)) { + break; + } + const size_t end = std::min(body.size(), p + static_cast(ln)); + while (p < end) { + uint64_t tag2; + if (!readVarint(tag2)) { + break; + } + if ((tag2 & 7) != 0) { + break; + } + uint64_t v2; + if (!readVarint(v2)) { + break; + } + nested[fn][static_cast(tag2 >> 3)] = v2; + dump += fmt::format("f{}.{}={} ", fn, tag2 >> 3, v2); + } + p = end; + } else { + break; + } + } + g_logger().debug("[CyclopediaMapAction] C2S 0x92: {}", dump.empty() ? "(empty)" : dump); + + // legacy 0x92 donation encodings (top f5+f6 / {f1, f2} submessage) + uint64_t donArea = 0; + uint64_t donAmount = 0; + if (top.contains(5) && top.contains(6)) { + donArea = top[5]; + donAmount = top[6]; + } else { + for (const auto &[fn, inner] : nested) { + if (inner.contains(1) && inner.contains(2)) { + donArea = inner.at(1); + donAmount = inner.at(2); + break; + } + } + } + if (donArea > 0 && donArea < 1000 && donAmount > 0) { + handleDiscoveryDonation(static_cast(donArea), donAmount); + return; + } + + player->resendCyclopediaMapDiscoveryData(); +} + +void ProtocolGame::handleDiscoveryDonation(uint16_t areaId, uint64_t amount) { + static constexpr uint64_t MAX_SINGLE_DONATION = 1000000000000ULL; + if (!player || amount == 0 || amount > MAX_SINGLE_DONATION) { + return; + } + const auto store = g_kv().scoped("discovery-donations"); + const auto goalVal = store->get("goal"); + const auto goal = goalVal ? static_cast(goalVal->getNumber()) : 10000000ULL; + + if (!g_game().removeMoney(player, amount, 0, true)) { + player->sendTextMessage(MESSAGE_EVENT_ADVANCE, "You do not have that much money (including your bank balance)."); + return; + } + // refresh the gold shown in the map UI right away (it reads the resource balance) + sendResourcesBalance(player->getMoney(), player->getBankBalance(), player->getPreyCards(), player->getTaskHuntingPoints(), player->getSoulsealsPoints()); + + const auto poolKey = fmt::format("area-{}", areaId); + const auto poolVal = store->get(poolKey); + const uint64_t oldPool = poolVal ? static_cast(poolVal->getNumber()) : 0; + const uint64_t newPool = oldPool + amount; + store->set(poolKey, ValueWrapper(static_cast(newPool))); + g_logger().debug("[Discovery] {} donated {} gold to area {} (pool {}/{})", player->getName(), amount, areaId, newPool, goal); + + // rebuild sub 9 entries from every known pool/boost key and push to everyone online + const auto now = static_cast(time(nullptr)); + std::map> entryMap; + for (const auto &fullKey : store->keys()) { + const auto pos = fullKey.rfind("area-"); + if (pos == std::string::npos) { + continue; + } + const int id = std::atoi(fullKey.c_str() + pos + 5); + if (id <= 0 || id >= 1000 || entryMap.contains(static_cast(id))) { + continue; + } + const auto donatedVal = store->get(fmt::format("area-{}", id)); + const auto untilVal = store->get(fmt::format("boost-until-{}", id)); + const uint64_t donated = donatedVal ? static_cast(donatedVal->getNumber()) : 0; + const bool active = untilVal && static_cast(untilVal->getNumber()) > now; + entryMap.emplace(static_cast(id), std::make_tuple(static_cast(id), active, donated)); + } + std::vector> entries; + entries.reserve(entryMap.size()); + for (const auto &[id, entry] : entryMap) { + entries.push_back(entry); + } + + const bool crossed = oldPool < goal && newPool >= goal; + for (const auto &[pid, onlinePlayer] : g_game().getPlayers()) { + if (!onlinePlayer) { + continue; + } + onlinePlayer->sendCyclopediaMapDonations(goal, entries); + if (crossed) { + onlinePlayer->sendTextMessage(MESSAGE_EVENT_ADVANCE, fmt::format("Donations for the area reached their goal - improved respawn rate will activate at the next server save and last one day!")); + } + } + player->sendTextMessage(MESSAGE_EVENT_ADVANCE, fmt::format("You donated {} gold (area pool: {}/{}).", amount, newPool, goal)); +} + void ProtocolGame::sendCyclopediaCharacterNoData(CyclopediaCharacterInfoType_t characterInfoType, uint8_t errorCode) { if (!player || oldProtocol) { return; @@ -6451,32 +6734,8 @@ void ProtocolGame::sendForgingData() { msg.add(price); } - // (conversion) (left column top) Cost to make 1 bottom item - 20 - msg.addByte(static_cast(g_configManager().getNumber(FORGE_COST_ONE_SLIVER))); - // (conversion) (left column bottom) How many items to make - 3 - msg.addByte(static_cast(g_configManager().getNumber(FORGE_SLIVER_AMOUNT))); - // (conversion) (middle column top) Cost to make 1 - 50 - msg.addByte(static_cast(g_configManager().getNumber(FORGE_CORE_COST))); - // (conversion) (right column top) Current stored dust limit minus this number = cost to increase stored dust limit - 75 - msg.addByte(75); - // (conversion) (right column bottom) Starting stored dust limit - msg.add(player->getForgeDustLevel()); - // (conversion) (right column bottom) Max stored dust limit - 325 - msg.add(g_configManager().getNumber(FORGE_MAX_DUST)); - // (normal fusion) dust cost - 100 - msg.addByte(static_cast(g_configManager().getNumber(FORGE_FUSION_DUST_COST))); - // (convergence fusion) dust cost - 130 - msg.addByte(static_cast(g_configManager().getNumber(FORGE_CONVERGENCE_FUSION_DUST_COST))); - // (normal transfer) dust cost - 100 - msg.addByte(static_cast(g_configManager().getNumber(FORGE_TRANSFER_DUST_COST))); - // (convergence transfer) dust cost - 160 - msg.addByte(static_cast(g_configManager().getNumber(FORGE_CONVERGENCE_TRANSFER_DUST_COST))); - // (fusion) Base success rate - 50 - msg.addByte(static_cast(g_configManager().getNumber(FORGE_BASE_SUCCESS_RATE))); - // (fusion) Bonus success rate - 15 - msg.addByte(static_cast(g_configManager().getNumber(FORGE_BONUS_SUCCESS_RATE))); - // (fusion) Tier loss chance after reduction - 50 - msg.addByte(static_cast(g_configManager().getNumber(FORGE_TIER_LOSS_REDUCTION))); + const auto dustLevelByte = static_cast(std::min(player->getForgeDustLevel() > 100 ? (player->getForgeDustLevel() - 100) / 20 : 0, 225)); + msg.addByte(dustLevelByte); // Update player resources parseSendResourceBalance(); @@ -6716,7 +6975,7 @@ void ProtocolGame::sendOpenForge() { msg.addByte(convergenceTransferCount); msg.setBufferPosition(dustLevelPosition); - msg.add(player->getForgeDustLevel()); // Player dust limit + msg.addByte(static_cast(std::min(player->getForgeDustLevel() > 100 ? (player->getForgeDustLevel() - 100) / 20 : 0, 225))); // Player dust limit writeToOutputBuffer(msg); // Update forging informations sendForgingData(); @@ -7447,6 +7706,7 @@ void ProtocolGame::sendCancelTarget() { NetworkMessage msg; msg.addByte(0xA3); msg.add(0x00); + msg.add(0x00); // 15.25 (sommerrelease26): client reads a 2nd u32 here now writeToOutputBuffer(msg); } @@ -7766,6 +8026,12 @@ void ProtocolGame::sendAddTileItem(const Position &pos, uint32_t stackpos, const return; } + // Don't send a zero client-id appearance on a tile — the 15.25+ client rejects it + // ("field has more than one zero id appearance"); it can't render anyway. + if (!item || Item::items[item->getID()].id == 0) { + return; + } + NetworkMessage msg; msg.addByte(0x6A); msg.addPosition(pos); @@ -7779,6 +8045,11 @@ void ProtocolGame::sendUpdateTileItem(const Position &pos, uint32_t stackpos, co return; } + // Don't send a zero client-id appearance on a tile — the 15.25+ client rejects it. + if (!item || Item::items[item->getID()].id == 0) { + return; + } + NetworkMessage msg; msg.addByte(0x6B); msg.addPosition(pos); @@ -8947,6 +9218,9 @@ void ProtocolGame::AddCreature(NetworkMessage &msg, const std::shared_ptr(creature->getStepSpeed()); addCreatureIcon(msg, creature); + // 15.25 (sommerrelease26): the second creature-icon list (count2) is inline here in + // AddCreature only — sendCreatureIcon (0x8B) sends each list as its own typed message. + msg.addByte(0); msg.addByte(player->getSkullClient(creature)); msg.addByte(player->getPartyShield(otherPlayer)); @@ -10832,6 +11106,8 @@ void ProtocolGame::sendScreenshotAndBannerUnlockedSpell(uint16_t spellId) { return; } + // Client GameEventTypeSpellUnlocked: the spell id is sent as a uint32 and the + // client resolves it to the spell name, showing the "New Spell Unlocked" banner. NetworkMessage msg; msg.addByte(0x75); msg.addByte(SCREENSHOT_AND_BANNER_TYPE_SPELL); @@ -10867,6 +11143,22 @@ void ProtocolGame::sendScreenshotAndBannerWeeklyTaskSpecificFinished(uint16_t ra writeToOutputBuffer(msg); } +void ProtocolGame::sendScreenshotAndBannerLeaderMonsterKilled(uint16_t raceId, uint32_t charmPoints) { + if (oldProtocol) { + return; + } + + // Client GameEventTypeLeaderMonsterKilled (banner subtype 0x0e): creature race id (uint16) + charm + // points (uint32). The client resolves the race id to the creature and renders the + // "Echo Warden Killed / You have received N Charm Points" banner with the creature shown. + NetworkMessage msg; + msg.addByte(0x75); + msg.addByte(SCREENSHOT_AND_BANNER_TYPE_LEADER_MONSTER); + msg.add(raceId); + msg.add(charmPoints); + writeToOutputBuffer(msg); +} + void ProtocolGame::sendOutfitWindowCustomOTCR(NetworkMessage &msg) { if (!isOTCR) { return; @@ -11222,6 +11514,12 @@ void ProtocolGame::sendSereneProtocol(const bool isSerene) { } void ProtocolGame::sendStanceProtocol(const std::vector &spellIds) { + // 0xC1 sub-channel 0x02 = active-stance highlight list. The 15.25 client reads a u8 count + // then that many little-endian u16 spell ids and WHOLE-REPLACES its active-spell set, framing + // every action-bar slot whose spell id is in the set. So we must send the COMPLETE set of + // currently-active stances every time — e.g. a sorcerer with an elemental stance AND a + // crippling stance sends both ids (count 2) so BOTH slots get framed. An empty list (count 0) + // clears all frames; never send id 0 (id 0 matches every empty slot -> frames them all). NetworkMessage msg; msg.addByte(0xC1); msg.addByte(0x02); @@ -11293,10 +11591,12 @@ void ProtocolGame::parseWeaponProficiency(NetworkMessage &msg) { if (type == WEAPON_PROFICIENCY_ITEM_INFO) { const uint16_t itemId = msg.get(); + player->sanitizeWeaponProficiencyShapes(itemId); player->sendWeaponProficiencyInfo(itemId); } else if (type == WEAPON_PROFICIENCY_LIST_INFO) { for (const auto &[itemId, _] : player->weaponProficiencies) { + player->sanitizeWeaponProficiencyShapes(itemId); player->sendWeaponProficiencyInfo(itemId); } @@ -11319,6 +11619,64 @@ void ProtocolGame::parseWeaponProficiency(NetworkMessage &msg) { } player->applyEquippedWeaponProficiency(itemId); + + } else if (type == WEAPON_PROFICIENCY_MODIFY_SLOT) { + const uint16_t itemId = msg.get(); + const uint8_t proficiencyLevel = msg.getByte(); + const uint8_t perkPosition = msg.getByte(); + while (msg.canRead(1)) { // trailing flag byte (observed 0x49) — purpose unknown; drain it. + msg.getByte(); + } + player->modifyWeaponProficiencySlot(itemId, proficiencyLevel, perkPosition); + + } else if (type == WEAPON_PROFICIENCY_REFINE_SLOT) { + const uint16_t itemId = msg.get(); + const uint8_t proficiencyLevel = msg.getByte(); + const uint8_t perkPosition = msg.getByte(); + while (msg.canRead(1)) { // trailing flag byte (observed 0xCF) — drain it. + msg.getByte(); + } + player->refineWeaponProficiencySlot(itemId, proficiencyLevel, perkPosition); + + } else if (type == WEAPON_PROFICIENCY_MAXIMISE_SLOT) { + const uint16_t itemId = msg.get(); + const uint8_t proficiencyLevel = msg.getByte(); + const uint8_t perkPosition = msg.getByte(); + while (msg.canRead(1)) { // trailing flag byte (observed 0x90) — drain it. + msg.getByte(); + } + player->maximiseWeaponProficiencySlot(itemId, proficiencyLevel, perkPosition); + + } else if (type == WEAPON_PROFICIENCY_RESHAPE_SLOT) { + const uint16_t itemId = msg.get(); + const uint8_t proficiencyLevel = msg.getByte(); + const uint8_t perkPosition = msg.getByte(); + while (msg.canRead(1)) { // trailing flag byte (observed 0x46 / 0x60) — drain it. + msg.getByte(); + } + player->reshapeWeaponProficiencySlot(itemId, proficiencyLevel, perkPosition); + + } else if (type == WEAPON_PROFICIENCY_PICK_OFFER) { + // Payload CONFIRMED live (D8 0C 00 00 00 00): itemId(u16) + slot level + slot pos + chosen offer index + flag. + const uint16_t itemId = msg.canRead(2) ? msg.get() : 0; + const uint8_t proficiencyLevel = msg.canRead(1) ? msg.getByte() : 0; // echoed slot (unused) + const uint8_t perkPosition = msg.canRead(1) ? msg.getByte() : 0; + const uint8_t offerIndex = msg.canRead(1) ? msg.getByte() : 0; + (void)proficiencyLevel; + (void)perkPosition; + while (msg.canRead(1)) { + msg.getByte(); + } + player->pickReshapeWeaponProficiencyOffer(itemId, offerIndex); + + } else if (type == WEAPON_PROFICIENCY_CLEAR_SLOT) { + const uint16_t itemId = msg.get(); + const uint8_t proficiencyLevel = msg.getByte(); + const uint8_t perkPosition = msg.getByte(); + while (msg.canRead(1)) { // trailing flag byte (observed 0xF2) — drain it. + msg.getByte(); + } + player->clearWeaponProficiencySlot(itemId, proficiencyLevel, perkPosition); } } @@ -11353,10 +11711,129 @@ void ProtocolGame::sendWeaponProficiencyInfo(const uint16_t itemId) { msg.addByte(perk.proficiencyLevel - 1); msg.addByte(perk.perkPosition - 1); } + // 15.25 (sommerrelease26) SHAPE: a SECOND list right after the active perks carries the modified slots: + // [level(0-based), position(0-based), perkType:u16 (client catalogue index), value]. The client renders + // the rolled perk from the catalogue index. See PORT.md §7.4. + msg.addByte(static_cast(proficiency.modifiedSlots.size())); + for (const auto &slot : proficiency.modifiedSlots) { + msg.addByte(slot.proficiencyLevel - 1); + msg.addByte(slot.perkPosition - 1); + msg.add(static_cast(slot.perkType)); + msg.addByte(slot.value); + } writeToOutputBuffer(msg); } } +void ProtocolGame::sendWeaponProficiencyReshapeOffers(const uint16_t itemId) { + if (oldProtocol || !player) { + return; + } + + auto it = player->weaponProficiencies.find(itemId); + if (it == player->weaponProficiencies.end()) { + return; + } + const auto &offers = it->second.pendingReshapeOffers; + + // 15.25 (sommerrelease26): Reshape offers = opcode 0xBB (Ghidra-confirmed FUN_140601bf0). NOT 0xC7 (that is + // CyclopediaCurrentHouseData). Wire: u16 itemId · byte curLevel · byte curPos · byte count · count×{u16 perkType, byte value}. + // Each offer uses the same perkType+rank encoding as a 0xC4 modified slot (no name string). See PORT.md §7.4. + // Offers are shown at the rank the slot already has (rank 0 = base magnitude); Reshape keeps the refinement. + uint8_t rank = 0; + for (const auto &slot : it->second.modifiedSlots) { + if (slot.proficiencyLevel == it->second.pendingReshapeLevel && slot.perkPosition == it->second.pendingReshapePosition) { + rank = slot.value; + break; + } + } + + NetworkMessage msg; + msg.addByte(0xBB); + msg.add(itemId); + msg.addByte(it->second.pendingReshapeLevel - 1); // current slot (0-based on the wire, like active perks) + msg.addByte(it->second.pendingReshapePosition - 1); + msg.addByte(static_cast(offers.size())); + for (const auto perkType : offers) { + msg.add(static_cast(perkType)); + msg.addByte(rank); + } + + writeToOutputBuffer(msg); +} + +void ProtocolGame::sendBossDifficultySelection(uint8_t selectedDifficulty, const std::vector &numbers, const std::vector &banners, const std::vector &redMods, const std::vector &greenMods) { + if (oldProtocol || !player) { + return; + } + + NetworkMessage msg; + msg.addByte(0x2F); + msg.addByte(selectedDifficulty); + + msg.add(numbers.size() > 0 ? numbers[0] : 0); // f1 + msg.addByte(numbers.size() > 1 ? static_cast(numbers[1]) : 0); // f2 (u8) + msg.add(numbers.size() > 2 ? static_cast(numbers[2]) : 0); // f3 = raceId + msg.add(numbers.size() > 3 ? static_cast(numbers[3]) : 0); // f4 + msg.add(numbers.size() > 4 ? static_cast(numbers[4]) : 0); // f5 = Highest in Group + msg.add(numbers.size() > 5 ? static_cast(numbers[5]) : 0); // f6 = Personal Highest + msg.add(numbers.size() > 6 ? numbers[6] : 0); // f7 = Bad Luck % (value/1000) + + for (size_t i = 0; i < 5; ++i) { + msg.addString(i < banners.size() ? banners[i] : std::string()); + } + + msg.add(0); // Update.f1 + msg.addByte(static_cast(redMods.size())); + for (const auto &s : redMods) { + msg.addString(s); + } + msg.addByte(static_cast(greenMods.size())); + for (const auto &s : greenMods) { + msg.addString(s); + } + + g_logger().info("[BossDiffSel] 0x2F sel={} raceId(f3)={} banners={}", selectedDifficulty, numbers.size() > 2 ? numbers[2] : 0, banners.size()); + writeToOutputBuffer(msg); +} + +void ProtocolGame::parseBossDifficultySelection(NetworkMessage &msg) { + if (oldProtocol || !player) { + return; + } + + const uint32_t selectionContext = msg.canRead(4) ? msg.get() : 0; // always 1 so far + (void)selectionContext; + const uint8_t action = msg.canRead(1) ? msg.getByte() : 0xFF; + uint16_t difficulty = 0; + if ((action == 0x00 || action == 0x02) && msg.canRead(2)) { + difficulty = msg.get(); + } + while (msg.canRead(1)) { // drain trailing byte(s) + msg.getByte(); + } + + if (action == 0x02) { + // spinner preview — the window stays open, nothing to do server-side (selection is client-side) + g_logger().info("[BossDiffSel] select difficulty={}", difficulty); + return; + } + if (action == 0x00) { + // Start Fight — difficulty range is 0..25. Clamp/validate, then fire the callback. + if (difficulty > 25) { + difficulty = 25; + } + g_logger().info("[BossDiffSel] START FIGHT difficulty={} (0..25)", difficulty); + } else { + g_logger().info("[BossDiffSel] cancel/other action={}", action); + } + // Start (after handling) or Cancel -> close the dialog + NetworkMessage out; + out.addByte(0x2F); + out.addByte(0x01); // discriminator 1 = CLOSE + writeToOutputBuffer(out); +} + void ProtocolGame::parseExivaRestrictions(NetworkMessage &msg) { if (!player || (g_game().worlds().getCurrentWorld()->type == WORLDTYPE_OPTIONAL && !g_configManager().getBoolean(EXIVA_RESTRICTIONS_ONLY_OPTIONAL_WORLDS))) { return; diff --git a/src/server/network/protocol/protocolgame.hpp b/src/server/network/protocol/protocolgame.hpp index 26a378886..fca1de19d 100644 --- a/src/server/network/protocol/protocolgame.hpp +++ b/src/server/network/protocol/protocolgame.hpp @@ -364,6 +364,15 @@ class ProtocolGame final : public Protocol { void sendTutorial(uint8_t tutorialId); void sendAddMarker(const Position &pos, uint8_t markType, const std::string &desc); + // Cyclopedia Map "Measuring Tibia" discovery — S2C 0xDD sub-types (RE'd from summer client). + void sendCyclopediaMapSetCurrentArea(uint16_t areaId); + void sendCyclopediaMapSetExploringArea(uint16_t subAreaId); + void sendCyclopediaMapDonations(uint64_t donationGoal, const std::vector> &areas); + void sendCyclopediaMapDiscoveryData(const std::vector> &mainAreas, const std::vector &discoveredSubAreas, const std::vector &discoverableSubAreas); + void sendCyclopediaMapSetDiscoveryArea(uint16_t areaId, bool active, uint8_t poiTarget, const std::vector> &points); + void parseCyclopediaMapAction(NetworkMessage &msg, uint8_t recvbyte); // C2S 0x92 + 0xDB (Map tab: requests / donations) + void handleDiscoveryDonation(uint16_t areaId, uint64_t amount); + void sendCyclopediaCharacterNoData(CyclopediaCharacterInfoType_t characterInfoType, uint8_t errorCode); void sendCyclopediaCharacterBaseInformation(); void sendCyclopediaCharacterGeneralStats(); @@ -569,6 +578,9 @@ class ProtocolGame final : public Protocol { void parseWeaponProficiency(NetworkMessage &msg); void sendWeaponProficiencyExperience(const uint16_t itemId, const uint32_t experience); void sendWeaponProficiencyInfo(const uint16_t itemId); + void sendWeaponProficiencyReshapeOffers(const uint16_t itemId); + void sendBossDifficultySelection(uint8_t selectedDifficulty, const std::vector &numbers, const std::vector &banners, const std::vector &redMods, const std::vector &greenMods); + void parseBossDifficultySelection(NetworkMessage &msg); friend class Player; friend class PlayerWheel; @@ -623,6 +635,7 @@ class ProtocolGame final : public Protocol { void sendScreenshotAndBannerUnlockedSpell(uint16_t spellId); void sendScreenshotAndBannerBountyTaskFinished(uint16_t raceId); void sendScreenshotAndBannerWeeklyTaskSpecificFinished(uint16_t raceId); + void sendScreenshotAndBannerLeaderMonsterKilled(uint16_t raceId, uint32_t charmPoints); void sendDisableLoginMusic(); diff --git a/src/server/server_definitions.hpp b/src/server/server_definitions.hpp index e1c15c02f..a4fa08015 100644 --- a/src/server/server_definitions.hpp +++ b/src/server/server_definitions.hpp @@ -72,6 +72,7 @@ enum Resource_t : uint8_t { RESOURCE_FORGE_DUST = 0x46, RESOURCE_FORGE_SLIVER = 0x47, RESOURCE_FORGE_CORES = 0x48, + RESOURCE_FORGE_DUST_LIMIT = 0x49, // 15.25 (sommerrelease26): forge dust cap, polled next to current dust RESOURCE_LESSER_GEMS = 0x51, RESOURCE_REGULAR_GEMS = 0x52, RESOURCE_GREATER_GEMS = 0x53, @@ -167,5 +168,11 @@ enum WeaponProficiency_t : uint8_t { WEAPON_PROFICIENCY_ITEM_INFO = 0, WEAPON_PROFICIENCY_LIST_INFO = 1, WEAPON_PROFICIENCY_RESET_PERKS = 2, - WEAPON_PROFICIENCY_APPLY_PERKS = 3 + WEAPON_PROFICIENCY_APPLY_PERKS = 3, + WEAPON_PROFICIENCY_MODIFY_SLOT = 4, // 15.25 sommerrelease26: dust-roll a custom effect onto a perk slot + WEAPON_PROFICIENCY_REFINE_SLOT = 5, // 15.25: raise a modified slot's rank by one (Refine button) + WEAPON_PROFICIENCY_MAXIMISE_SLOT = 6, // 15.25: push a modified slot to max rank (Maximise button) + WEAPON_PROFICIENCY_RESHAPE_SLOT = 7, // 15.25: re-roll — server offers 3 perks to pick from (Reshape) + WEAPON_PROFICIENCY_PICK_OFFER = 8, // 15.25: pick one of the reshape offers (replace the slot's perk) + WEAPON_PROFICIENCY_CLEAR_SLOT = 9 // 15.25: free — remove the modification, restore the tree perk (Clear) }; diff --git a/src/server/signals.cpp b/src/server/signals.cpp index 45c572915..782366354 100644 --- a/src/server/signals.cpp +++ b/src/server/signals.cpp @@ -78,11 +78,24 @@ void Signals::dispatchSignalHandler(int signal) { g_dispatcher().addEvent(sigusr1Handler, __FUNCTION__); break; #else - case SIGBREAK: // Shuts the server down - g_dispatcher().addEvent(sigbreakHandler, __FUNCTION__); + case SIGBREAK: { // Shuts the server down + // RACE FIX: shutting the pool down right after queueing the handler killed the + // dispatcher before setGameState(SHUTDOWN) ran, so kick+saveAll NEVER happened + // (shutdown logs had no "Saving server..."). Wait for the handler to finish + // (players kicked + saveAll done inside setGameState) before tearing down. + auto shutdownDone = std::make_shared(false); + g_dispatcher().addEvent([shutdownDone] { + sigbreakHandler(); + shutdownDone->store(true); + }, + __FUNCTION__); + for (int i = 0; i < 900 && !shutdownDone->load(); ++i) { // up to 90s for the save + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + } // hold the thread until other threads end inject().shutdown(); break; + } #endif default: break; diff --git a/src/utils/tools.cpp b/src/utils/tools.cpp index 3e8a6f92a..6ef8f7159 100644 --- a/src/utils/tools.cpp +++ b/src/utils/tools.cpp @@ -878,6 +878,21 @@ ShootTypeNames shootTypeNames = { { "terrastormarrow", CONST_ANI_TERRASTORMARROW }, { "froststormarrow", CONST_ANI_FROSTSTORMARROW }, { "thunderstormarrow", CONST_ANI_THUNDERSTORMARROW }, + // 15.25 client homing-missile effects (proficiency Type-32 perk). ids 69/76 are placeholders. + { "homingphysical", CONST_ANI_HOMING_PHYSICAL }, + { "homingfire", CONST_ANI_HOMING_FIRE }, + { "homingearth", CONST_ANI_HOMING_EARTH }, + { "homingenergy", CONST_ANI_HOMING_ENERGY }, + { "homingice", CONST_ANI_HOMING_ICE }, + { "homingholy", CONST_ANI_HOMING_HOLY }, + { "homingdeath", CONST_ANI_HOMING_DEATH }, + { "homingstellarphysical", CONST_ANI_HOMING_STELLAR_PHYSICAL }, + { "homingstellarfire", CONST_ANI_HOMING_STELLAR_FIRE }, + { "homingstellarearth", CONST_ANI_HOMING_STELLAR_EARTH }, + { "homingstellarenergy", CONST_ANI_HOMING_STELLAR_ENERGY }, + { "homingstellarice", CONST_ANI_HOMING_STELLAR_ICE }, + { "homingstellarholy", CONST_ANI_HOMING_STELLAR_HOLY }, + { "homingstellardeath", CONST_ANI_HOMING_STELLAR_DEATH }, }; CombatTypeNames combatTypeNames = { diff --git a/src/utils/utils_definitions.hpp b/src/utils/utils_definitions.hpp index d42e3ae63..1b1edb7e6 100644 --- a/src/utils/utils_definitions.hpp +++ b/src/utils/utils_definitions.hpp @@ -347,7 +347,24 @@ enum ShootType_t : uint8_t { CONST_ANI_FROSTSTORMARROW = 67, CONST_ANI_THUNDERSTORMARROW = 68, - CONST_ANI_LAST = CONST_ANI_THUNDERSTORMARROW, + // New 15.25 client distance effects — homing missiles (proficiency Type-32 ON_HIT_HOMING_MISSILE). + // ids 69 and 76 lead each block of 7; semantics unconfirmed (never fired by current data) — placeholder names. + CONST_ANI_HOMING_PHYSICAL = 69, // unknown/untyped homing variant — placeholder + CONST_ANI_HOMING_FIRE = 70, + CONST_ANI_HOMING_EARTH = 71, + CONST_ANI_HOMING_ENERGY = 72, + CONST_ANI_HOMING_ICE = 73, + CONST_ANI_HOMING_HOLY = 74, + CONST_ANI_HOMING_DEATH = 75, + CONST_ANI_HOMING_STELLAR_PHYSICAL = 76, // unknown/untyped stellar homing variant — placeholder + CONST_ANI_HOMING_STELLAR_FIRE = 77, + CONST_ANI_HOMING_STELLAR_EARTH = 78, + CONST_ANI_HOMING_STELLAR_ENERGY = 79, + CONST_ANI_HOMING_STELLAR_ICE = 80, + CONST_ANI_HOMING_STELLAR_HOLY = 81, + CONST_ANI_HOMING_STELLAR_DEATH = 82, + + CONST_ANI_LAST = CONST_ANI_HOMING_STELLAR_DEATH, // for internal use, don't send to client CONST_ANI_WEAPONTYPE = 0xFE, // 254 @@ -847,9 +864,10 @@ enum ScreenshotAndBanner_t : uint8_t { SCREENSHOT_AND_BANNER_TYPE_QUEST = 8, SCREENSHOT_AND_BANNER_TYPE_COSMETIC = 9, SCREENSHOT_AND_BANNER_TYPE_PROFICIENCY = 10, - SCREENSHOT_AND_BANNER_TYPE_BOUNTY_TASK = 11, - SCREENSHOT_AND_BANNER_TYPE_WEEKLY_TASK_SPECIFIC = 12, - SCREENSHOT_AND_BANNER_TYPE_SPELL = 13 + SCREENSHOT_AND_BANNER_TYPE_BOUNTY_TASK = 11, // client GameEventTypeBountyTaskFinished (payload: uint16) + SCREENSHOT_AND_BANNER_TYPE_WEEKLY_TASK_SPECIFIC = 12, // client GameEventTypeWeeklyTaskSpecificCreatureFinished (payload: uint16) + SCREENSHOT_AND_BANNER_TYPE_SPELL = 13, // client GameEventTypeSpellUnlocked (payload: uint32 spellId) -> banner "New Spell Unlocked" + SCREENSHOT_AND_BANNER_TYPE_LEADER_MONSTER = 14 // client GameEventTypeLeaderMonsterKilled (payload: uint16 raceId + uint32 charmPoints) -> banner "Echo Warden Killed" }; enum Banner_t : uint8_t {