diff --git a/Distribution/Data/regions.json b/Distribution/Data/regions.json
index 15e2d6a99..0e0edb63f 100644
--- a/Distribution/Data/regions.json
+++ b/Distribution/Data/regions.json
@@ -1,10 +1,10 @@
[
{
- "name": "Moongates",
- "type": "GuardedRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [
+ "$type": "GuardedRegion",
+ "Name": "Moongates",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [
{ "x1": 1330, "y1": 1991, "x2": 1343, "y2": 2004 },
{ "x1": 1494, "y1": 3767, "x2": 1506, "y2": 3778 },
{ "x1": 2694, "y1": 685, "x2": 2709, "y2": 701 },
@@ -16,116 +16,116 @@
]
},
{
- "name": "Heartwood",
- "type": "TownRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "ElfCity",
- "rects": [{ "x1": 6911, "y1": 255, "x2": 7168, "y2": 512 }],
- "go": { "x": 6984, "y": 337, "z": 0 },
- "entrance": { "x": 535, "y": 995 }
+ "$type": "TownRegion",
+ "Name": "Heartwood",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "ElfCity",
+ "Area": [{ "x1": 6911, "y1": 255, "x2": 7168, "y2": 512 }],
+ "GoLocation": { "x": 6984, "y": 337, "z": 0 },
+ "Entrance": { "x": 535, "y": 995 }
},
{
- "name": "Sanctuary",
- "type": "MondainRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 6157, "y1": 4, "x2": 6399, "y2": 255 }],
- "go": { "x": 6173, "y": 23, "z": 0 },
- "entrance": { "x": 764, "y": 1646 }
+ "$type": "MondainRegion",
+ "Name": "Sanctuary",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 6157, "y1": 4, "x2": 6399, "y2": 255 }],
+ "GoLocation": { "x": 6173, "y": 23, "z": 0 },
+ "Entrance": { "x": 764, "y": 1646 }
},
{
- "name": "Painted Caves",
- "type": "MondainRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 6240, "y1": 860, "x2": 6310, "y2": 920 }],
- "go": { "x": 6308, "y": 892, "z": -1 },
- "entrance": { "x": 1716, "y": 892 }
+ "$type": "MondainRegion",
+ "Name": "Painted Caves",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 6240, "y1": 860, "x2": 6310, "y2": 920 }],
+ "GoLocation": { "x": 6308, "y": 892, "z": -1 },
+ "Entrance": { "x": 1716, "y": 892 }
},
{
- "name": "Prism of Light",
- "type": "MondainRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 6400, "y1": 0, "x2": 6621, "y2": 255 }],
- "go": { "x": 6474, "y": 188, "z": 0 },
- "entrance": { "x": 3784, "y": 1097 }
+ "$type": "MondainRegion",
+ "Name": "Prism of Light",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 6400, "y1": 0, "x2": 6621, "y2": 255 }],
+ "GoLocation": { "x": 6474, "y": 188, "z": 0 },
+ "Entrance": { "x": 3784, "y": 1097 }
},
{
- "name": "Blighted Grove",
- "type": "MondainRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "MelisandesLair",
- "rects": [{ "x1": 6440, "y1": 820, "x2": 6600, "y2": 970 }],
- "go": { "x": 6478, "y": 863, "z": 11 },
- "entrance": { "x": 587, "y": 1641 }
+ "$type": "MondainRegion",
+ "Name": "Blighted Grove",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "MelisandesLair",
+ "Area": [{ "x1": 6440, "y1": 820, "x2": 6600, "y2": 970 }],
+ "GoLocation": { "x": 6478, "y": 863, "z": 11 },
+ "Entrance": { "x": 587, "y": 1641 }
},
{
- "name": "Palace of Paroxysmus",
- "type": "MondainRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "ParoxysmusLair",
- "rects": [{ "x1": 6191, "y1": 311, "x2": 6561, "y2": 671 }],
- "go": { "x": 6222, "y": 335, "z": 60 },
- "entrance": { "x": 5574, "y": 3024 }
+ "$type": "MondainRegion",
+ "Name": "Palace of Paroxysmus",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "ParoxysmusLair",
+ "Area": [{ "x1": 6191, "y1": 311, "x2": 6561, "y2": 671 }],
+ "GoLocation": { "x": 6222, "y": 335, "z": 60 },
+ "Entrance": { "x": 5574, "y": 3024 }
},
{
- "name": "Huntsman's Forest",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 1595, "y1": 550, "x2": 1715, "y2": 670 }]
+ "$type": "BaseRegion",
+ "Name": "Huntsman's Forest",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 1595, "y1": 550, "x2": 1715, "y2": 670 }]
},
{
- "name": "Cove",
- "type": "TownRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Cove",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Cove",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Cove",
+ "Area": [
{ "x1": 2200, "y1": 1110, "x2": 2250, "y2": 1160 },
{ "x1": 2200, "y1": 1160, "x2": 2286, "y2": 1246 }
],
- "go": { "x": 2275, "y": 1210, "z": 0 }
+ "GoLocation": { "x": 2275, "y": 1210, "z": 0 }
},
{
- "name": "Britain",
- "type": "TownRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Britain1",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Britain",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Britain1",
+ "Area": [
{ "x1": 1416, "y1": 1498, "z1": -10, "x2": 1740, "y2": 1777, "z2": 128 },
{ "x1": 1385, "y1": 1538, "z1": -10, "x2": 1416, "y2": 1777, "z2": 128 },
{ "x1": 1416, "y1": 1777, "z1": 0, "x2": 1740, "y2": 1837, "z2": 128 },
{ "x1": 1385, "y1": 1777, "z1": 0, "x2": 1416, "y2": 1907, "z2": 128 },
{ "x1": 1093, "y1": 1538, "z1": 0, "x2": 1385, "y2": 1907, "z2": 128 }
],
- "go": { "x": 1495, "y": 1629, "z": 10 }
+ "GoLocation": { "x": 1495, "y": 1629, "z": 10 }
},
{
- "name": "Blackthorn Castle",
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Britain",
- "priority": 50,
- "music": "LBCastle",
- "rects": [{ "x1": 1500, "y1": 1408, "x2": 1546, "y2": 1498 }],
- "go": { "x": 1523, "y": 1443, "z": 15 },
- "entrance": { "x": 1523, "y": 1504 }
+ "$type": "BaseRegion",
+ "Name": "Blackthorn Castle",
+ "Map": "Felucca",
+ "Parent": "Britain",
+ "Priority": 50,
+ "Music": "LBCastle",
+ "Area": [{ "x1": 1500, "y1": 1408, "x2": 1546, "y2": 1498 }],
+ "GoLocation": { "x": 1523, "y": 1443, "z": 15 },
+ "Entrance": { "x": 1523, "y": 1504 }
},
{
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Britain",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Felucca",
+ "Parent": "Britain",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 1492, "y1": 1602, "z1": 0, "x2": 1500, "y2": 1621, "z2": 128 },
{ "x1": 1500, "y1": 1610, "z1": 0, "x2": 1508, "y2": 1626, "z2": 128 },
{ "x1": 1576, "y1": 1584, "z1": 0, "x2": 1600, "y2": 1600, "z2": 128 },
@@ -142,133 +142,133 @@
]
},
{
- "name": "A Wheatfield in Britain 1",
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Britain",
- "rects": [{ "x1": 1120, "y1": 1776, "x2": 1152, "y2": 1808 }],
- "go": { "x": 1135, "y": 1791, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Britain 1",
+ "Map": "Felucca",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1120, "y1": 1776, "x2": 1152, "y2": 1808 }],
+ "GoLocation": { "x": 1135, "y": 1791, "z": 0 }
},
{
- "name": "A Wheatfield in Britain 2",
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Britain",
- "rects": [{ "x1": 1184, "y1": 1808, "x2": 1216, "y2": 1840 }],
- "go": { "x": 1199, "y": 1823, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Britain 2",
+ "Map": "Felucca",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1184, "y1": 1808, "x2": 1216, "y2": 1840 }],
+ "GoLocation": { "x": 1199, "y": 1823, "z": 0 }
},
{
- "name": "A Wheatfield in Britain 3",
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Britain",
- "rects": [{ "x1": 1216, "y1": 1872, "x2": 1248, "y2": 1904 }],
- "go": { "x": 1231, "y": 1887, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Britain 3",
+ "Map": "Felucca",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1216, "y1": 1872, "x2": 1248, "y2": 1904 }],
+ "GoLocation": { "x": 1231, "y": 1887, "z": 0 }
},
{
- "name": "A Carrot Field in Britain 1",
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Britain",
- "rects": [{ "x1": 1208, "y1": 1712, "x2": 1224, "y2": 1736 }],
- "go": { "x": 1215, "y": 1723, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Carrot Field in Britain 1",
+ "Map": "Felucca",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1208, "y1": 1712, "x2": 1224, "y2": 1736 }],
+ "GoLocation": { "x": 1215, "y": 1723, "z": 0 }
},
{
- "name": "An Onion Field in Britain 1",
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Britain",
- "rects": [{ "x1": 1224, "y1": 1712, "x2": 1240, "y2": 1736 }],
- "go": { "x": 1231, "y": 1723, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "An Onion Field in Britain 1",
+ "Map": "Felucca",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1224, "y1": 1712, "x2": 1240, "y2": 1736 }],
+ "GoLocation": { "x": 1231, "y": 1723, "z": 0 }
},
{
- "name": "A Cabbage Field in Britain 1",
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Britain",
- "rects": [{ "x1": 1176, "y1": 1672, "x2": 1192, "y2": 1695 }],
- "go": { "x": 1183, "y": 1683, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Cabbage Field in Britain 1",
+ "Map": "Felucca",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1176, "y1": 1672, "x2": 1192, "y2": 1695 }],
+ "GoLocation": { "x": 1183, "y": 1683, "z": 0 }
},
{
- "name": "A Turnip Field in Britain 1",
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Britain",
- "rects": [{ "x1": 1192, "y1": 1672, "x2": 1208, "y2": 1696 }],
- "go": { "x": 1199, "y": 1683, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Turnip Field in Britain 1",
+ "Map": "Felucca",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1192, "y1": 1672, "x2": 1208, "y2": 1696 }],
+ "GoLocation": { "x": 1199, "y": 1683, "z": 0 }
},
{
- "name": "A Wheatfield in Britain 4",
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Britain",
- "rects": [{ "x1": 1104, "y1": 1608, "x2": 1136, "y2": 1640 }],
- "go": { "x": 1120, "y": 1624, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Britain 4",
+ "Map": "Felucca",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1104, "y1": 1608, "x2": 1136, "y2": 1640 }],
+ "GoLocation": { "x": 1120, "y": 1624, "z": 0 }
},
{
- "name": "A Wheatfield in Britain 5",
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Britain",
- "rects": [{ "x1": 1136, "y1": 1560, "x2": 1168, "y2": 1592 }],
- "go": { "x": 1152, "y": 1576, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Britain 5",
+ "Map": "Felucca",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1136, "y1": 1560, "x2": 1168, "y2": 1592 }],
+ "GoLocation": { "x": 1152, "y": 1576, "z": 0 }
},
{
- "name": "A Turnip Field in Britain 2",
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Britain",
- "rects": [{ "x1": 1208, "y1": 1592, "x2": 1224, "y2": 1616 }],
- "go": { "x": 1216, "y": 1604, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Turnip Field in Britain 2",
+ "Map": "Felucca",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1208, "y1": 1592, "x2": 1224, "y2": 1616 }],
+ "GoLocation": { "x": 1216, "y": 1604, "z": 0 }
},
{
- "name": "A Carrot Field in Britain 2",
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Britain",
- "rects": [{ "x1": 1224, "y1": 1592, "x2": 1240, "y2": 1616 }],
- "go": { "x": 1232, "y": 1604, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Carrot Field in Britain 2",
+ "Map": "Felucca",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1224, "y1": 1592, "x2": 1240, "y2": 1616 }],
+ "GoLocation": { "x": 1232, "y": 1604, "z": 0 }
},
{
- "name": "Britain Graveyard",
- "type": "NoHousingRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 1333, "y1": 1441, "x2": 1417, "y2": 1523 }],
- "go": { "x": 1384, "y": 1492, "z": 10 }
+ "$type": "NoHousingRegion",
+ "Name": "Britain Graveyard",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 1333, "y1": 1441, "x2": 1417, "y2": 1523 }],
+ "GoLocation": { "x": 1384, "y": 1492, "z": 10 }
},
{
- "name": "Jhelom Islands",
- "type": "NoHousingRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Jhelom",
- "rects": [
+ "$type": "NoHousingRegion",
+ "Name": "Jhelom Islands",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Jhelom",
+ "Area": [
{ "x1": 1111, "y1": 3567, "x2": 1144, "y2": 3588 },
{ "x1": 1078, "y1": 3588, "x2": 1202, "y2": 3709 },
{ "x1": 1224, "y1": 3592, "x2": 1533, "y2": 4065 }
],
- "go": { "x": 1383, "y": 3815, "z": 0 }
+ "GoLocation": { "x": 1383, "y": 3815, "z": 0 }
},
{
- "name": "Jhelom",
- "type": "TownRegion",
- "map": "Felucca",
- "parent": "Jhelom Islands",
- "music": "Jhelom",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Jhelom",
+ "Map": "Felucca",
+ "Parent": "Jhelom Islands",
+ "Music": "Jhelom",
+ "Area": [
{ "x1": 1303, "y1": 3670, "z1": -20, "x2": 1492, "y2": 3895, "z2": 128 },
{ "x1": 1338, "y1": 3895, "z1": -20, "x2": 1412, "y2": 3923, "z2": 128 },
{ "x1": 1383, "y1": 3951, "z1": -20, "x2": 1492, "y2": 4045, "z2": 128 }
],
- "go": { "x": 1383, "y": 3815, "z": 0 }
+ "GoLocation": { "x": 1383, "y": 3815, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Jhelom",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Felucca",
+ "Parent": "Jhelom",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 1352, "y1": 3800, "z1": -20, "x2": 1368, "y2": 3832, "z2": 128 },
{ "x1": 1368, "y1": 3808, "z1": -20, "x2": 1376, "y2": 3824, "z2": 128 },
{ "x1": 1432, "y1": 3768, "z1": -20, "x2": 1464, "y2": 3776, "z2": 128 },
@@ -276,38 +276,38 @@
]
},
{
- "name": "Minoc",
- "type": "TownRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Minoc",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Minoc",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Minoc",
+ "Area": [
{ "x1": 2411, "y1": 366, "x2": 2546, "y2": 607 },
{ "x1": 2548, "y1": 495, "x2": 2620, "y2": 550 },
{ "x1": 2564, "y1": 585, "x2": 2567, "y2": 627 },
{ "x1": 2567, "y1": 585, "x2": 2628, "y2": 646 },
{ "x1": 2499, "y1": 627, "x2": 2567, "y2": 690 }
],
- "go": { "x": 2466, "y": 544, "z": 0 }
+ "GoLocation": { "x": 2466, "y": 544, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Minoc",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Felucca",
+ "Parent": "Minoc",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 2457, "y1": 397, "x2": 2497, "y2": 405 },
{ "x1": 2465, "y1": 405, "x2": 2473, "y2": 413 },
{ "x1": 2481, "y1": 405, "x2": 2489, "y2": 413 }
]
},
{
- "name": "Ocllo",
- "type": "TownRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Ocllo",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Ocllo",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Ocllo",
+ "Area": [
{ "x1": 3587, "y1": 2456, "x2": 3706, "y2": 2555 },
{ "x1": 3706, "y1": 2460, "x2": 3708, "y2": 2555 },
{ "x1": 3587, "y1": 2555, "x2": 3693, "y2": 2628 },
@@ -317,26 +317,26 @@
{ "x1": 3761, "y1": 2555, "z1": -127, "x2": 3768, "y2": 2699, "z2": 50 },
{ "x1": 3695, "y1": 2699, "x2": 3761, "y2": 2712 }
],
- "go": { "x": 3650, "y": 2519, "z": 0 }
+ "GoLocation": { "x": 3650, "y": 2519, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Ocllo",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Felucca",
+ "Parent": "Ocllo",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 3664, "y1": 2608, "x2": 3680, "y2": 2624 },
{ "x1": 3664, "y1": 2640, "x2": 3672, "y2": 2656 },
{ "x1": 3672, "y1": 2648, "x2": 3680, "y2": 2656 }
]
},
{
- "name": "Trinsic",
- "type": "TownRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Trinsic",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Trinsic",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Trinsic",
+ "Area": [
{ "x1": 1856, "y1": 2636, "x2": 1931, "y2": 2664 },
{ "x1": 1816, "y1": 2664, "x2": 2099, "y2": 2895 },
{ "x1": 2099, "y1": 2782, "x2": 2117, "y2": 2807 },
@@ -344,14 +344,14 @@
{ "x1": 1796, "y1": 2696, "z1": 0, "x2": 1816, "y2": 2763, "z2": 128 },
{ "x1": 1800, "y1": 2796, "z1": 0, "x2": 1816, "y2": 2848, "z2": 128 }
],
- "go": { "x": 1867, "y": 2780, "z": 0 }
+ "GoLocation": { "x": 1867, "y": 2780, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Trinsic",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Felucca",
+ "Parent": "Trinsic",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 1834, "y1": 2728, "x2": 1856, "y2": 2744 },
{ "x1": 2024, "y1": 2784, "x2": 2040, "y2": 2804 },
{ "x1": 2026, "y1": 2804, "x2": 2040, "y2": 2806 },
@@ -361,25 +361,25 @@
]
},
{
- "name": "Vesper",
- "type": "TownRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Vesper",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Vesper",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Vesper",
+ "Area": [
{ "x1": 2893, "y1": 598, "x2": 3014, "y2": 648 },
{ "x1": 2816, "y1": 648, "x2": 3065, "y2": 1013 },
{ "x1": 2734, "y1": 944, "x2": 2816, "y2": 948 },
{ "x1": 2728, "y1": 948, "x2": 2816, "y2": 1001 }
],
- "go": { "x": 2899, "y": 676, "z": 0 }
+ "GoLocation": { "x": 2899, "y": 676, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Vesper",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Felucca",
+ "Parent": "Vesper",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 2952, "y1": 864, "x2": 2968, "y2": 896 },
{ "x1": 2968, "y1": 872, "x2": 2976, "y2": 888 },
{ "x1": 2776, "y1": 952, "x2": 2792, "y2": 984 },
@@ -389,12 +389,12 @@
]
},
{
- "name": "Yew",
- "type": "TownRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Yew",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Yew",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Yew",
+ "Area": [
{ "x1": 92, "y1": 656, "z1": 0, "x2": 441, "y2": 881, "z2": 39 },
{ "x1": 441, "y1": 746, "z1": 0, "x2": 657, "y2": 881, "z2": 39 },
{ "x1": 258, "y1": 881, "z1": 0, "x2": 657, "y2": 1261, "z2": 39 },
@@ -402,67 +402,67 @@
{ "x1": 657, "y1": 806, "z1": 0, "x2": 674, "y2": 834, "z2": 39 },
{ "x1": 718, "y1": 874, "z1": 0, "x2": 756, "y2": 896, "z2": 39 }
],
- "go": { "x": 546, "y": 992, "z": 0 }
+ "GoLocation": { "x": 546, "y": 992, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Yew",
- "logoutDelay": false,
- "rects": [{ "x1": 600, "y1": 808, "z1": 0, "x2": 624, "y2": 832, "z2": 39 }]
+ "$type": "BaseRegion",
+ "Map": "Felucca",
+ "Parent": "Yew",
+ "LogoutDelay": false,
+ "Area": [{ "x1": 600, "y1": 808, "z1": 0, "x2": 624, "y2": 832, "z2": 39 }]
},
{
- "name": "A Field of Sheep in Yew 1",
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Yew",
+ "$type": "BaseRegion",
+ "Name": "A Field of Sheep in Yew 1",
+ "Map": "Felucca",
+ "Parent": "Yew",
"rune": "A Field of Sheep in Yew",
- "rects": [{ "x1": 664, "y1": 928, "x2": 686, "y2": 950 }],
- "go": { "x": 675, "y": 939, "z": 0 }
+ "Area": [{ "x1": 664, "y1": 928, "x2": 686, "y2": 950 }],
+ "GoLocation": { "x": 675, "y": 939, "z": 0 }
},
{
- "name": "A Field of Sheep in Yew 2",
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Yew",
+ "$type": "BaseRegion",
+ "Name": "A Field of Sheep in Yew 2",
+ "Map": "Felucca",
+ "Parent": "Yew",
"rune": "A Field of Sheep in Yew",
- "rects": [{ "x1": 664, "y1": 1168, "x2": 686, "y2": 1190 }],
- "go": { "x": 675, "y": 1179, "z": 0 }
+ "Area": [{ "x1": 664, "y1": 1168, "x2": 686, "y2": 1190 }],
+ "GoLocation": { "x": 675, "y": 1179, "z": 0 }
},
{
- "name": "A Farm in Yew",
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Yew",
+ "$type": "BaseRegion",
+ "Name": "A Farm in Yew",
+ "Map": "Felucca",
+ "Parent": "Yew",
"rune": "A Farm in Yew",
- "rects": [{ "x1": 560, "y1": 1088, "x2": 582, "y2": 1110 }],
- "go": { "x": 571, "y": 1099, "z": 0 }
+ "Area": [{ "x1": 560, "y1": 1088, "x2": 582, "y2": 1110 }],
+ "GoLocation": { "x": 571, "y": 1099, "z": 0 }
},
{
- "name": "A Wheatfield in Yew 1",
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Yew",
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Yew 1",
+ "Map": "Felucca",
+ "Parent": "Yew",
"rune": "A Wheatfield in Yew",
- "rects": [{ "x1": 560, "y1": 1232, "x2": 576, "y2": 1248 }],
- "go": { "x": 567, "y": 1239, "z": 0 }
+ "Area": [{ "x1": 560, "y1": 1232, "x2": 576, "y2": 1248 }],
+ "GoLocation": { "x": 567, "y": 1239, "z": 0 }
},
{
- "name": "A Wheatfield in Yew 2",
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Yew",
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Yew 2",
+ "Map": "Felucca",
+ "Parent": "Yew",
"rune": "A Wheatfield in Yew",
- "rects": [{ "x1": 368, "y1": 1176, "x2": 382, "y2": 1208 }],
- "go": { "x": 375, "y": 1191, "z": 0 }
+ "Area": [{ "x1": 368, "y1": 1176, "x2": 382, "y2": 1208 }],
+ "GoLocation": { "x": 375, "y": 1191, "z": 0 }
},
{
- "name": "Wind",
- "type": "TownRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Wind",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Wind",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Wind",
+ "Area": [
{ "x1": 5294, "y1": 19, "x2": 5366, "y2": 139 },
{ "x1": 5132, "y1": 58, "x2": 5213, "y2": 126 },
{ "x1": 5197, "y1": 126, "x2": 5252, "y2": 204 },
@@ -475,14 +475,14 @@
{ "x1": 5252, "y1": 178, "x2": 5272, "y2": 183 },
{ "x1": 5252, "y1": 183, "x2": 5262, "y2": 193 }
],
- "go": { "x": 5223, "y": 190, "z": 5 }
+ "GoLocation": { "x": 5223, "y": 190, "z": 5 }
},
{
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Wind",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Felucca",
+ "Parent": "Wind",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 5159, "y1": 15, "x2": 5184, "y2": 24 },
{ "x1": 5159, "y1": 24, "x2": 5168, "y2": 40 },
{ "x1": 5175, "y1": 24, "x2": 5184, "y2": 32 },
@@ -493,40 +493,40 @@
]
},
{
- "name": "Serpent's Hold",
- "type": "TownRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Serpents",
- "rects": [{ "x1": 2868, "y1": 3324, "z1": 0, "x2": 3073, "y2": 3519, "z2": 128 }],
- "go": { "x": 3010, "y": 3371, "z": 15 }
+ "$type": "TownRegion",
+ "Name": "Serpent's Hold",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Serpents",
+ "Area": [{ "x1": 2868, "y1": 3324, "z1": 0, "x2": 3073, "y2": 3519, "z2": 128 }],
+ "GoLocation": { "x": 3010, "y": 3371, "z": 15 }
},
{
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Serpent's Hold",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Felucca",
+ "Parent": "Serpent's Hold",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 2960, "y1": 3400, "z1": 0, "x2": 2976, "y2": 3416, "z2": 128 },
{ "x1": 2968, "y1": 3416, "z1": 0, "x2": 2976, "y2": 3432, "z2": 128 },
{ "x1": 3008, "y1": 3450, "z1": 0, "x2": 3022, "y2": 3464, "z2": 128 }
]
},
{
- "name": "Skara Brae",
- "type": "TownRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Skarabra",
- "rects": [{ "x1": 538, "y1": 2107, "x2": 688, "y2": 2297 }],
- "go": { "x": 632, "y": 2233, "z": 0 }
+ "$type": "TownRegion",
+ "Name": "Skara Brae",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Skarabra",
+ "Area": [{ "x1": 538, "y1": 2107, "x2": 688, "y2": 2297 }],
+ "GoLocation": { "x": 632, "y": 2233, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Skara Brae",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Felucca",
+ "Parent": "Skara Brae",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 600, "y1": 2232, "x2": 616, "y2": 2256 },
{ "x1": 592, "y1": 2240, "x2": 600, "y2": 2256 },
{ "x1": 616, "y1": 2240, "x2": 624, "y2": 2256 },
@@ -535,20 +535,20 @@
]
},
{
- "name": "Nujel'm",
- "type": "TownRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Nujelm",
- "rects": [{ "x1": 3475, "y1": 1000, "z1": 0, "x2": 3835, "y2": 1435, "z2": 128 }],
- "go": { "x": 3732, "y": 1279, "z": 0 }
+ "$type": "TownRegion",
+ "Name": "Nujel'm",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Nujelm",
+ "Area": [{ "x1": 3475, "y1": 1000, "z1": 0, "x2": 3835, "y2": 1435, "z2": 128 }],
+ "GoLocation": { "x": 3732, "y": 1279, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Nujel'm",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Felucca",
+ "Parent": "Nujel'm",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 3736, "y1": 1184, "z1": 0, "x2": 3752, "y2": 1207, "z2": 128 },
{ "x1": 3728, "y1": 1192, "z1": 0, "x2": 3736, "y2": 1207, "z2": 128 },
{ "x1": 3728, "y1": 1288, "z1": 0, "x2": 3751, "y2": 1303, "z2": 128 },
@@ -565,12 +565,12 @@
]
},
{
- "name": "Moonglow",
- "type": "TownRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Moonglow",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Moonglow",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Moonglow",
+ "Area": [
{ "x1": 4535, "y1": 844, "z1": 0, "x2": 4555, "y2": 847, "z2": 128 },
{ "x1": 4530, "y1": 847, "z1": 0, "x2": 4561, "y2": 908, "z2": 128 },
{ "x1": 4521, "y1": 914, "z1": 0, "x2": 4577, "y2": 963, "z2": 128 },
@@ -596,14 +596,14 @@
{ "x1": 4405, "y1": 1451, "z1": 0, "x2": 4428, "y2": 1474, "z2": 128 },
{ "x1": 4483, "y1": 1468, "z1": 0, "x2": 4504, "y2": 1481, "z2": 128 }
],
- "go": { "x": 4442, "y": 1172, "z": 0 }
+ "GoLocation": { "x": 4442, "y": 1172, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Moonglow",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Felucca",
+ "Parent": "Moonglow",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 4384, "y1": 1152, "z1": 0, "x2": 4392, "y2": 1176, "z2": 128 },
{ "x1": 4392, "y1": 1160, "z1": 0, "x2": 4408, "y2": 1168, "z2": 128 },
{ "x1": 4400, "y1": 1152, "z1": 0, "x2": 4408, "y2": 1160, "z2": 128 },
@@ -613,12 +613,12 @@
]
},
{
- "name": "Magincia",
- "type": "NewMaginciaRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Magincia",
- "rects": [
+ "$type": "NewMaginciaRegion",
+ "Name": "Magincia",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Magincia",
+ "Area": [
{ "x1": 3632, "y1": 2032, "x2": 3682, "y2": 2102 },
{ "x1": 3624, "y1": 2162, "x2": 3719, "y2": 2232 },
{ "x1": 3752, "y1": 2046, "x2": 3804, "y2": 2094 },
@@ -626,34 +626,34 @@
{ "x1": 3652, "y1": 2094, "x2": 3812, "y2": 2274 },
{ "x1": 3649, "y1": 2256, "x2": 3703, "y2": 2303 }
],
- "go": { "x": 3714, "y": 2220, "z": 20 }
+ "GoLocation": { "x": 3714, "y": 2220, "z": 20 }
},
{
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Magincia",
- "logoutDelay": false,
- "rects": [{ "x1": 3687, "y1": 2246, "x2": 3699, "y2": 2262 }]
+ "$type": "BaseRegion",
+ "Map": "Felucca",
+ "Parent": "Magincia",
+ "LogoutDelay": false,
+ "Area": [{ "x1": 3687, "y1": 2246, "x2": 3699, "y2": 2262 }]
},
{
- "name": "Buccaneer's Den",
- "type": "TownRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Bucsden",
- "guardsDisabled": true,
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Buccaneer's Den",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Bucsden",
+ "GuardsDisabled": true,
+ "Area": [
{ "x1": 2612, "y1": 2057, "x2": 2776, "y2": 2267 },
{ "x1": 2604, "y1": 2065, "z1": 0, "x2": 2612, "y2": 2254, "z2": 128 }
],
- "go": { "x": 2706, "y": 2163, "z": 0 }
+ "GoLocation": { "x": 2706, "y": 2163, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Buccaneer's Den",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Felucca",
+ "Parent": "Buccaneer's Den",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 2712, "y1": 2080, "x2": 2728, "y2": 2096 },
{ "x1": 2712, "y1": 2096, "x2": 2720, "y2": 2104 },
{ "x1": 2664, "y1": 2232, "x2": 2688, "y2": 2240 },
@@ -661,609 +661,610 @@
]
},
{
- "name": "Covetous",
- "type": "DungeonRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Covetous",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [
{ "x1": 5376, "y1": 1793, "x2": 5577, "y2": 2048 },
{ "x1": 5576, "y1": 1791, "x2": 5633, "y2": 2048 }
],
- "go": { "x": 5456, "y": 1862, "z": 0 },
- "entrance": { "x": 2499, "y": 916 }
+ "GoLocation": { "x": 5456, "y": 1862, "z": 0 },
+ "Entrance": { "x": 2499, "y": 916 }
},
{
- "name": "Deceit",
- "type": "DungeonRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 5122, "y1": 518, "x2": 5370, "y2": 770 }],
- "go": { "x": 5187, "y": 635, "z": 0 },
- "entrance": { "x": 4111, "y": 429 }
+ "$type": "DungeonRegion",
+ "Name": "Deceit",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 5122, "y1": 518, "x2": 5370, "y2": 770 }],
+ "GoLocation": { "x": 5187, "y": 635, "z": 0 },
+ "Entrance": { "x": 4111, "y": 429 }
},
{
- "name": "Despise",
- "type": "DungeonRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 5377, "y1": 516, "x2": 5631, "y2": 1022 }],
- "go": { "x": 5501, "y": 570, "z": 59 },
- "entrance": { "x": 1296, "y": 1082 }
+ "$type": "DungeonRegion",
+ "Name": "Despise",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 5377, "y1": 516, "x2": 5631, "y2": 1022 }],
+ "GoLocation": { "x": 5501, "y": 570, "z": 59 },
+ "Entrance": { "x": 1296, "y": 1082 }
},
{
- "name": "Destard",
- "type": "DungeonRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 5120, "y1": 770, "x2": 5371, "y2": 1028 }],
- "go": { "x": 5243, "y": 1004, "z": 0 },
- "entrance": { "x": 1176, "y": 2635 }
+ "$type": "DungeonRegion",
+ "Name": "Destard",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 5120, "y1": 770, "x2": 5371, "y2": 1028 }],
+ "GoLocation": { "x": 5243, "y": 1004, "z": 0 },
+ "Entrance": { "x": 1176, "y": 2635 }
},
{
- "name": "Hythloth",
- "type": "DungeonRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 5898, "y1": 2, "x2": 6136, "y2": 246 }],
- "go": { "x": 5905, "y": 22, "z": 44 },
- "entrance": { "x": 4722, "y": 3814 }
+ "$type": "DungeonRegion",
+ "Name": "Hythloth",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 5898, "y1": 2, "x2": 6136, "y2": 246 }],
+ "GoLocation": { "x": 5905, "y": 22, "z": 44 },
+ "Entrance": { "x": 4722, "y": 3814 }
},
{
- "name": "Khaldun",
- "type": "DungeonRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 5381, "y1": 1284, "x2": 5628, "y2": 1509 }],
- "go": { "x": 5571, "y": 1302, "z": 0 },
- "entrance": { "x": 5882, "y": 3819 }
+ "$type": "DungeonRegion",
+ "Name": "Khaldun",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 5381, "y1": 1284, "x2": 5628, "y2": 1509 }],
+ "GoLocation": { "x": 5571, "y": 1302, "z": 0 },
+ "Entrance": { "x": 5882, "y": 3819 }
},
{
- "name": "Jail",
- "type": "JailRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 5271, "y1": 1159, "x2": 5312, "y2": 1192 }],
- "go": { "x": 5275, "y": 1163, "z": 0 }
+ "$type": "JailRegion",
+ "Name": "Jail",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 5271, "y1": 1159, "x2": 5312, "y2": 1192 }],
+ "GoLocation": { "x": 5275, "y": 1163, "z": 0 }
},
{
- "name": "Green Acres",
- "type": "GreenAcresRegion",
- "map": "Felucca",
- "priority": 1,
- "rects": [{ "x1": 5376, "y1": 512, "x2": 6143, "y2": 1279 }],
- "go": { "x": 5445, "y": 1153, "z": 0 }
+ "$type": "GreenAcresRegion",
+ "Name": "Green Acres",
+ "Map": "Felucca",
+ "Priority": 1,
+ "Area": [{ "x1": 5376, "y1": 512, "x2": 6143, "y2": 1279 }],
+ "GoLocation": { "x": 5445, "y": 1153, "z": 0 }
},
{
- "name": "Shame",
- "type": "DungeonRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Shame",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [
{ "x1": 5377, "y1": 2, "x2": 5634, "y2": 262 },
{ "x1": 5635, "y1": 2, "x2": 5895, "y2": 126 }
],
- "go": { "x": 5395, "y": 126, "z": 0 },
- "entrance": { "x": 512, "y": 1559 }
+ "GoLocation": { "x": 5395, "y": 126, "z": 0 },
+ "Entrance": { "x": 512, "y": 1559 }
},
{
- "name": "Wrong",
- "type": "DungeonRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 5633, "y1": 511, "x2": 5886, "y2": 1021 }],
- "go": { "x": 5825, "y": 599, "z": 0 },
- "entrance": { "x": 2042, "y": 226 }
+ "$type": "DungeonRegion",
+ "Name": "Wrong",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 5633, "y1": 511, "x2": 5886, "y2": 1021 }],
+ "GoLocation": { "x": 5825, "y": 599, "z": 0 },
+ "Entrance": { "x": 2042, "y": 226 }
},
{
- "name": "Cave 1",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Cave 1",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [
{ "x1": 2373, "y1": 900, "x2": 2395, "y2": 928 },
{ "x1": 2395, "y1": 903, "x2": 2409, "y2": 919 },
{ "x1": 2373, "y1": 928, "x2": 2383, "y2": 937 },
{ "x1": 2359, "y1": 927, "x2": 2373, "y2": 945 }
],
- "go": { "x": 2367, "y": 942, "z": 0 }
+ "GoLocation": { "x": 2367, "y": 942, "z": 0 }
},
{
- "name": "Cave 2",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 1887, "y1": 354, "x2": 1920, "y2": 377 }],
- "go": { "x": 1903, "y": 365, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Cave 2",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 1887, "y1": 354, "x2": 1920, "y2": 377 }],
+ "GoLocation": { "x": 1903, "y": 365, "z": 0 }
},
{
- "name": "Cave 3",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 1925, "y1": 307, "x2": 1943, "y2": 325 }],
- "go": { "x": 1934, "y": 316, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Cave 3",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 1925, "y1": 307, "x2": 1943, "y2": 325 }],
+ "GoLocation": { "x": 1934, "y": 316, "z": 0 }
},
{
- "name": "Cave 4",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 2323, "y1": 809, "x2": 2368, "y2": 851 }],
- "go": { "x": 2345, "y": 830, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Cave 4",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 2323, "y1": 809, "x2": 2368, "y2": 851 }],
+ "GoLocation": { "x": 2345, "y": 830, "z": 0 }
},
{
- "name": "Britain Mine 1",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 1436, "y1": 1215, "x2": 1465, "y2": 1252 }],
- "go": { "x": 1443, "y": 1228, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Britain Mine 1",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 1436, "y1": 1215, "x2": 1465, "y2": 1252 }],
+ "GoLocation": { "x": 1443, "y": 1228, "z": 0 }
},
{
- "name": "Britain Mine 2",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 1611, "y1": 1175, "x2": 1662, "y2": 1204 }],
- "go": { "x": 1629, "y": 1189, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Britain Mine 2",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 1611, "y1": 1175, "x2": 1662, "y2": 1204 }],
+ "GoLocation": { "x": 1629, "y": 1189, "z": 0 }
},
{
- "name": "Minoc Cave 1",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 2406, "y1": 168, "x2": 2428, "y2": 184 }],
- "go": { "x": 2426, "y": 177, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Minoc Cave 1",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 2406, "y1": 168, "x2": 2428, "y2": 184 }],
+ "GoLocation": { "x": 2426, "y": 177, "z": 0 }
},
{
- "name": "Minoc Cave 2",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 2418, "y1": 81, "x2": 2442, "y2": 113 }],
- "go": { "x": 2440, "y": 94, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Minoc Cave 2",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 2418, "y1": 81, "x2": 2442, "y2": 113 }],
+ "GoLocation": { "x": 2440, "y": 94, "z": 0 }
},
{
- "name": "Minoc Cave 3",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 2447, "y1": 39, "x2": 2489, "y2": 67 }],
- "go": { "x": 2471, "y": 64, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Minoc Cave 3",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 2447, "y1": 39, "x2": 2489, "y2": 67 }],
+ "GoLocation": { "x": 2471, "y": 64, "z": 0 }
},
{
- "name": "Minoc Mine",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Minoc Mine",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [
{ "x1": 2556, "y1": 501, "x2": 2562, "y2": 504 },
{ "x1": 2556, "y1": 474, "x2": 2582, "y2": 501 }
],
- "go": { "x": 2558, "y": 499, "z": 0 }
+ "GoLocation": { "x": 2558, "y": 499, "z": 0 }
},
{
- "name": "Avatar Isle Cave",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 4594, "y1": 3807, "x2": 4617, "y2": 3824 }],
- "go": { "x": 4605, "y": 3815, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Avatar Isle Cave",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 4594, "y1": 3807, "x2": 4617, "y2": 3824 }],
+ "GoLocation": { "x": 4605, "y": 3815, "z": 0 }
},
{
- "name": "Ice Isle Cave 1",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 4018, "y1": 421, "x2": 4067, "y2": 470 }],
- "go": { "x": 4054, "y": 440, "z": 3 }
+ "$type": "BaseRegion",
+ "Name": "Ice Isle Cave 1",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 4018, "y1": 421, "x2": 4067, "y2": 470 }],
+ "GoLocation": { "x": 4054, "y": 440, "z": 3 }
},
{
- "name": "Ice Isle Cave 2",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Ice Isle Cave 2",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [
{ "x1": 4002, "y1": 310, "x2": 4045, "y2": 351 },
{ "x1": 4005, "y1": 298, "x2": 4027, "y2": 310 }
],
- "go": { "x": 4030, "y": 325, "z": 0 }
+ "GoLocation": { "x": 4030, "y": 325, "z": 0 }
},
{
- "name": "North Territory Cave",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 1973, "y1": 251, "x2": 1994, "y2": 274 }],
- "go": { "x": 1984, "y": 262, "z": 8 }
+ "$type": "BaseRegion",
+ "Name": "North Territory Cave",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 1973, "y1": 251, "x2": 1994, "y2": 274 }],
+ "GoLocation": { "x": 1984, "y": 262, "z": 8 }
},
{
- "name": "Yew Cave",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 766, "y1": 1683, "x2": 778, "y2": 1697 }],
- "go": { "x": 773, "y": 1684, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Yew Cave",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 766, "y1": 1683, "x2": 778, "y2": 1697 }],
+ "GoLocation": { "x": 773, "y": 1684, "z": 0 }
},
{
- "name": "North Territory Mine 1",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 1713, "y1": 1055, "x2": 1753, "y2": 1080 }],
- "go": { "x": 1723, "y": 1065, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "North Territory Mine 1",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 1713, "y1": 1055, "x2": 1753, "y2": 1080 }],
+ "GoLocation": { "x": 1723, "y": 1065, "z": 0 }
},
{
- "name": "North Territory Mine 2",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 1604, "y1": 958, "x2": 1650, "y2": 1009 }],
- "go": { "x": 1638, "y": 974, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "North Territory Mine 2",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 1604, "y1": 958, "x2": 1650, "y2": 1009 }],
+ "GoLocation": { "x": 1638, "y": 974, "z": 0 }
},
{
- "name": "Mt Kendall",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Mt Kendall",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [
{ "x1": 2552, "y1": 448, "x2": 2623, "y2": 507 },
{ "x1": 2547, "y1": 380, "x2": 2590, "y2": 448 },
{ "x1": 2590, "y1": 413, "x2": 2623, "y2": 448 }
],
- "go": { "x": 2593, "y": 477, "z": 60 }
+ "GoLocation": { "x": 2593, "y": 477, "z": 60 }
},
{
- "name": "Covetous Mine",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Covetous Mine",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [
{ "x1": 2429, "y1": 866, "x2": 2448, "y2": 911 },
{ "x1": 2448, "y1": 879, "x2": 2475, "y2": 907 },
{ "x1": 2456, "y1": 907, "x2": 2475, "y2": 941 }
],
- "go": { "x": 2445, "y": 880, "z": 0 }
+ "GoLocation": { "x": 2445, "y": 880, "z": 0 }
},
{
- "name": "Terathan Keep",
- "type": "DungeonRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Terathan Keep",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [
{ "x1": 5404, "y1": 3099, "x2": 5481, "y2": 3167 },
{ "x1": 5120, "y1": 1530, "x2": 5374, "y2": 1788 }
],
- "go": { "x": 5451, "y": 3143, "z": -60 },
- "entrance": { "x": 5426, "y": 3120 }
+ "GoLocation": { "x": 5451, "y": 3143, "z": -60 },
+ "Entrance": { "x": 5426, "y": 3120 }
},
{
- "name": "Fire",
- "type": "DungeonRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 5635, "y1": 1285, "x2": 5880, "y2": 1520 }],
- "go": { "x": 5760, "y": 2908, "z": 15 },
- "entrance": { "x": 2922, "y": 3402 }
+ "$type": "DungeonRegion",
+ "Name": "Fire",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 5635, "y1": 1285, "x2": 5880, "y2": 1520 }],
+ "GoLocation": { "x": 5760, "y": 2908, "z": 15 },
+ "Entrance": { "x": 2922, "y": 3402 }
},
{
- "name": "Ice",
- "type": "DungeonRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Ice",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [
{ "x1": 5668, "y1": 130, "x2": 5888, "y2": 268 },
{ "x1": 5800, "y1": 319, "x2": 5863, "y2": 384 },
{ "x1": 5654, "y1": 300, "x2": 5708, "y2": 340 }
],
- "go": { "x": 5210, "y": 2322, "z": 30 },
- "entrance": { "x": 1996, "y": 80 }
+ "GoLocation": { "x": 5210, "y": 2322, "z": 30 },
+ "Entrance": { "x": 1996, "y": 80 }
},
{
- "name": "Delucia",
- "type": "TownRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Delucia",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [
{ "x1": 5123, "y1": 3942, "x2": 5315, "y2": 4064 },
{ "x1": 5147, "y1": 4064, "x2": 5272, "y2": 4084 },
{ "x1": 5235, "y1": 3930, "x2": 5315, "y2": 3942 }
],
- "go": { "x": 5228, "y": 3978, "z": 37 }
+ "GoLocation": { "x": 5228, "y": 3978, "z": 37 }
},
{
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Delucia",
- "logoutDelay": false,
- "rects": [{ "x1": 5194, "y1": 4053, "x2": 5204, "y2": 4073 }]
+ "$type": "BaseRegion",
+ "Name": "The Barely Inn",
+ "Map": "Felucca",
+ "Parent": "Delucia",
+ "LogoutDelay": false,
+ "Area": [{ "x1": 5194, "y1": 4053, "x2": 5204, "y2": 4073 }]
},
{
- "name": "Papua",
- "type": "TownRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Papua",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [
{ "x1": 5639, "y1": 3095, "x2": 5831, "y2": 3318 },
{ "x1": 5831, "y1": 3237, "x2": 5851, "y2": 3267 }
],
- "go": { "x": 5769, "y": 3176, "z": 0 }
+ "GoLocation": { "x": 5769, "y": 3176, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Felucca",
- "parent": "Papua",
- "logoutDelay": false,
- "rects": [{ "x1": 5757, "y1": 3150, "x2": 5781, "y2": 3174 }]
+ "$type": "BaseRegion",
+ "Map": "Felucca",
+ "Parent": "Papua",
+ "LogoutDelay": false,
+ "Area": [{ "x1": 5757, "y1": 3150, "x2": 5781, "y2": 3174 }]
},
{
- "name": "Wrong Entrance",
- "type": "NoHousingRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Mountn_a",
- "rects": [{ "x1": 1939, "y1": 215, "x2": 2073, "y2": 352 }],
- "go": { "x": 2043, "y": 236, "z": 13 }
+ "$type": "NoHousingRegion",
+ "Name": "Wrong Entrance",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Mountn_a",
+ "Area": [{ "x1": 1939, "y1": 215, "x2": 2073, "y2": 352 }],
+ "GoLocation": { "x": 2043, "y": 236, "z": 13 }
},
{
- "name": "Covetous Entrance",
- "type": "NoHousingRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Vesper",
- "rects": [{ "x1": 2433, "y1": 846, "x2": 2561, "y2": 974 }],
- "go": { "x": 2499, "y": 918, "z": 0 }
+ "$type": "NoHousingRegion",
+ "Name": "Covetous Entrance",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Vesper",
+ "Area": [{ "x1": 2433, "y1": 846, "x2": 2561, "y2": 974 }],
+ "GoLocation": { "x": 2499, "y": 918, "z": 0 }
},
{
- "name": "Despise Entrance",
- "type": "NoHousingRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 1289, "y1": 1064, "x2": 1321, "y2": 1101 }],
- "go": { "x": 1298, "y": 1081, "z": 0 }
+ "$type": "NoHousingRegion",
+ "Name": "Despise Entrance",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 1289, "y1": 1064, "x2": 1321, "y2": 1101 }],
+ "GoLocation": { "x": 1298, "y": 1081, "z": 0 }
},
{
- "name": "Despise Passage",
- "type": "NoHousingRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [
+ "$type": "NoHousingRegion",
+ "Name": "Despise Passage",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [
{ "x1": 1338, "y1": 1060, "x2": 1389, "y2": 1122 },
{ "x1": 1354, "y1": 1122, "x2": 1396, "y2": 1243 },
{ "x1": 1349, "y1": 1122, "x2": 1354, "y2": 1224 }
],
- "go": { "x": 1380, "y": 1114, "z": 0 }
+ "GoLocation": { "x": 1380, "y": 1114, "z": 0 }
},
{
- "name": "Misc Dungeons",
- "type": "DungeonRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 5886, "y1": 1281, "x2": 6143, "y2": 1535 }],
- "go": { "x": 6032, "y": 1499, "z": 0 },
- "entrance": { "x": 1492, "y": 1641 }
+ "$type": "DungeonRegion",
+ "Name": "Misc Dungeons",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 5886, "y1": 1281, "x2": 6143, "y2": 1535 }],
+ "GoLocation": { "x": 6032, "y": 1499, "z": 0 },
+ "Entrance": { "x": 1492, "y": 1641 }
},
{
- "name": "Orc Cave",
- "type": "DungeonRegion",
- "map": "Felucca",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Orc Cave",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [
{ "x1": 5281, "y1": 1283, "x2": 5373, "y2": 1386 },
{ "x1": 5267, "y1": 1955, "x2": 5364, "y2": 2046 },
{ "x1": 5127, "y1": 1941, "x2": 5164, "y2": 2024 }
],
- "go": { "x": 5137, "y": 2015, "z": 0 },
- "entrance": { "x": 1014, "y": 1434 }
+ "GoLocation": { "x": 5137, "y": 2015, "z": 0 },
+ "Entrance": { "x": 1014, "y": 1434 }
},
{
- "name": "A Cotton Field in Moonglow",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
+ "$type": "BaseRegion",
+ "Name": "A Cotton Field in Moonglow",
+ "Map": "Felucca",
+ "Priority": 50,
"rune": "A Cotton Field in Moonglow",
- "rects": [{ "x1": 4557, "y1": 1471, "x2": 4577, "y2": 1481 }],
- "go": { "x": 4567, "y": 1475, "z": 0 }
+ "Area": [{ "x1": 4557, "y1": 1471, "x2": 4577, "y2": 1481 }],
+ "GoLocation": { "x": 4567, "y": 1475, "z": 0 }
},
{
- "name": "A Wheatfield in Skara Brae 1",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Skara Brae 1",
+ "Map": "Felucca",
+ "Priority": 50,
"rune": "A Wheatfield in Skara Brae",
- "rects": [{ "x1": 796, "y1": 2152, "x2": 832, "y2": 2176 }],
- "go": { "x": 813, "y": 2163, "z": 0 }
+ "Area": [{ "x1": 796, "y1": 2152, "x2": 832, "y2": 2176 }],
+ "GoLocation": { "x": 813, "y": 2163, "z": 0 }
},
{
- "name": "A Carrot Field in Skara Brae",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 816, "y1": 2251, "x2": 832, "y2": 2259 }],
- "go": { "x": 823, "y": 2254, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Carrot Field in Skara Brae",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 816, "y1": 2251, "x2": 832, "y2": 2259 }],
+ "GoLocation": { "x": 823, "y": 2254, "z": 0 }
},
{
- "name": "An Onion Field in Skara Brae",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 816, "y1": 2261, "x2": 832, "y2": 2269 }],
- "go": { "x": 823, "y": 2264, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "An Onion Field in Skara Brae",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 816, "y1": 2261, "x2": 832, "y2": 2269 }],
+ "GoLocation": { "x": 823, "y": 2264, "z": 0 }
},
{
- "name": "A Cabbage Field in Skara Brae 1",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 816, "y1": 2271, "x2": 832, "y2": 2279 }],
- "go": { "x": 823, "y": 2264, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Cabbage Field in Skara Brae 1",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 816, "y1": 2271, "x2": 832, "y2": 2279 }],
+ "GoLocation": { "x": 823, "y": 2264, "z": 0 }
},
{
- "name": "A Cabbage Field in Skara Brae 2",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 816, "y1": 2281, "x2": 832, "y2": 2289 }],
- "go": { "x": 823, "y": 2274, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Cabbage Field in Skara Brae 2",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 816, "y1": 2281, "x2": 832, "y2": 2289 }],
+ "GoLocation": { "x": 823, "y": 2274, "z": 0 }
},
{
- "name": "A Wheatfield in Skara Brae 2",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 835, "y1": 2344, "x2": 851, "y2": 2360 }],
- "go": { "x": 843, "y": 2352, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Skara Brae 2",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 835, "y1": 2344, "x2": 851, "y2": 2360 }],
+ "GoLocation": { "x": 843, "y": 2352, "z": 0 }
},
{
- "name": "A Cotton Field in Skara Brae",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 816, "y1": 2344, "x2": 832, "y2": 2368 }],
- "go": { "x": 823, "y": 2355, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Cotton Field in Skara Brae",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 816, "y1": 2344, "x2": 832, "y2": 2368 }],
+ "GoLocation": { "x": 823, "y": 2355, "z": 0 }
},
{
- "name": "Shrine of Compassion",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 1851, "y1": 867, "x2": 1865, "y2": 881 }],
- "go": { "x": 1856, "y": 872, "z": -1 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Compassion",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 1851, "y1": 867, "x2": 1865, "y2": 881 }],
+ "GoLocation": { "x": 1856, "y": 872, "z": -1 }
},
{
- "name": "Chaos Shrine",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 1456, "y1": 840, "x2": 1460, "y2": 847 }],
- "go": { "x": 1456, "y": 854, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Chaos Shrine",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 1456, "y1": 840, "x2": 1460, "y2": 847 }],
+ "GoLocation": { "x": 1456, "y": 854, "z": 0 }
},
{
- "name": "Shrine of Honesty",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 37,
- "rects": [{ "x1": 4209, "y1": 560, "x2": 4216, "y2": 568 }],
- "go": { "x": 4217, "y": 564, "z": 36 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Honesty",
+ "Map": "Felucca",
+ "Priority": 37,
+ "Area": [{ "x1": 4209, "y1": 560, "x2": 4216, "y2": 568 }],
+ "GoLocation": { "x": 4217, "y": 564, "z": 36 }
},
{
- "name": "Shrine of Honor",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 1721, "y1": 3525, "x2": 1729, "y2": 3531 }],
- "go": { "x": 1730, "y": 3528, "z": 3 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Honor",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 1721, "y1": 3525, "x2": 1729, "y2": 3531 }],
+ "GoLocation": { "x": 1730, "y": 3528, "z": 3 }
},
{
- "name": "Shrine of Humility",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 4270, "y1": 3694, "x2": 4279, "y2": 3703 }],
- "go": { "x": 4276, "y": 3699, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Humility",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 4270, "y1": 3694, "x2": 4279, "y2": 3703 }],
+ "GoLocation": { "x": 4276, "y": 3699, "z": 0 }
},
{
- "name": "Shrine of Justice",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 1297, "y1": 629, "x2": 1306, "y2": 638 }],
- "go": { "x": 1301, "y": 639, "z": 16 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Justice",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 1297, "y1": 629, "x2": 1306, "y2": 638 }],
+ "GoLocation": { "x": 1301, "y": 639, "z": 16 }
},
{
- "name": "Shrine of Sacrifice",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 3352, "y1": 286, "x2": 3358, "y2": 293 }],
- "go": { "x": 3355, "y": 299, "z": 9 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Sacrifice",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 3352, "y1": 286, "x2": 3358, "y2": 293 }],
+ "GoLocation": { "x": 3355, "y": 299, "z": 9 }
},
{
- "name": "Shrine of Spirituality",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Shrine of Spirituality",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [
{ "x1": 1590, "y1": 2485, "x2": 1600, "y2": 2496 },
{ "x1": 1599, "y1": 2488, "x2": 1609, "y2": 2493 }
],
- "go": { "x": 1589, "y": 2485, "z": 5 }
+ "GoLocation": { "x": 1589, "y": 2485, "z": 5 }
},
{
- "name": "Shrine of Valor",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 37,
- "rects": [{ "x1": 2488, "y1": 3928, "x2": 2497, "y2": 3939 }],
- "go": { "x": 2496, "y": 3932, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Valor",
+ "Map": "Felucca",
+ "Priority": 37,
+ "Area": [{ "x1": 2488, "y1": 3928, "x2": 2497, "y2": 3939 }],
+ "GoLocation": { "x": 2496, "y": 3932, "z": 0 }
},
{
- "name": "South Britannian Sea",
- "type": "BaseRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 688, "y1": 3700, "x2": 2100, "y2": 4080 }]
+ "$type": "BaseRegion",
+ "Name": "South Britannian Sea",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 688, "y1": 3700, "x2": 2100, "y2": 4080 }]
},
{
- "name": "Paroxysmus Exit",
- "type": "MondainRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 5620, "y1": 3032, "x2": 5630, "y2": 3042 }],
- "go": { "x": 5623, "y": 3038, "z": 15 }
+ "$type": "MondainRegion",
+ "Name": "Paroxysmus Exit",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 5620, "y1": 3032, "x2": 5630, "y2": 3042 }],
+ "GoLocation": { "x": 5623, "y": 3038, "z": 15 }
},
{
- "name": "Sanctuary Entrance",
- "type": "MondainRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 759, "y1": 1635, "x2": 771, "y2": 1647 }],
- "go": { "x": 762, "y": 1645, "z": 0 }
+ "$type": "MondainRegion",
+ "Name": "Sanctuary Entrance",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 759, "y1": 1635, "x2": 771, "y2": 1647 }],
+ "GoLocation": { "x": 762, "y": 1645, "z": 0 }
},
{
- "name": "Solen Hives",
- "type": "DungeonRegion",
- "map": "Felucca",
- "priority": 50,
- "rects": [{ "x1": 5640, "y1": 1776, "x2": 5935, "y2": 2039 }],
- "go": { "x": 5774, "y": 1896, "z": 20 }
+ "$type": "DungeonRegion",
+ "Name": "Solen Hives",
+ "Map": "Felucca",
+ "Priority": 50,
+ "Area": [{ "x1": 5640, "y1": 1776, "x2": 5935, "y2": 2039 }],
+ "GoLocation": { "x": 5774, "y": 1896, "z": 20 }
},
{
- "name": "Khaldun",
- "type": "DungeonRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 5381, "y1": 1284, "x2": 5628, "y2": 1509 }],
- "go": { "x": 5571, "y": 1302, "z": 0 },
- "entrance": { "x": 5882, "y": 3819 }
+ "$type": "DungeonRegion",
+ "Name": "Khaldun",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 5381, "y1": 1284, "x2": 5628, "y2": 1509 }],
+ "GoLocation": { "x": 5571, "y": 1302, "z": 0 },
+ "Entrance": { "x": 5882, "y": 3819 }
},
{
- "name": "Underwater World",
- "type": "NoTravelSpellsAllowedRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 6251, "y1": 1613, "x2": 6473, "y2": 1813 }]
+ "$type": "NoTravelSpellsAllowedRegion",
+ "Name": "Underwater World",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 6251, "y1": 1613, "x2": 6473, "y2": 1813 }]
},
{
- "name": "Moongates",
- "type": "GuardedRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [
+ "$type": "GuardedRegion",
+ "Name": "Moongates",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [
{ "x1": 1330, "y1": 1991, "x2": 1343, "y2": 2004 },
{ "x1": 1494, "y1": 3767, "x2": 1506, "y2": 3778 },
{ "x1": 2694, "y1": 685, "x2": 2709, "y2": 701 },
@@ -1275,98 +1276,98 @@
]
},
{
- "name": "Heartwood",
- "type": "TownRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "ElfCity",
- "rects": [{ "x1": 6911, "y1": 255, "x2": 7168, "y2": 512 }],
- "go": { "x": 6984, "y": 337, "z": 0 },
- "entrance": { "x": 535, "y": 995 }
+ "$type": "TownRegion",
+ "Name": "Heartwood",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "ElfCity",
+ "Area": [{ "x1": 6911, "y1": 255, "x2": 7168, "y2": 512 }],
+ "GoLocation": { "x": 6984, "y": 337, "z": 0 },
+ "Entrance": { "x": 535, "y": 995 }
},
{
- "name": "Sanctuary",
- "type": "MondainRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 6157, "y1": 4, "x2": 6399, "y2": 255 }],
- "go": { "x": 6173, "y": 23, "z": 0 },
- "entrance": { "x": 764, "y": 1646 }
+ "$type": "MondainRegion",
+ "Name": "Sanctuary",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 6157, "y1": 4, "x2": 6399, "y2": 255 }],
+ "GoLocation": { "x": 6173, "y": 23, "z": 0 },
+ "Entrance": { "x": 764, "y": 1646 }
},
{
- "name": "Painted Caves",
- "type": "MondainRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 6240, "y1": 860, "x2": 6310, "y2": 920 }],
- "go": { "x": 6308, "y": 892, "z": -1 },
- "entrance": { "x": 1716, "y": 892 }
+ "$type": "MondainRegion",
+ "Name": "Painted Caves",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 6240, "y1": 860, "x2": 6310, "y2": 920 }],
+ "GoLocation": { "x": 6308, "y": 892, "z": -1 },
+ "Entrance": { "x": 1716, "y": 892 }
},
{
- "name": "Prism of Light",
- "type": "MondainRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 6400, "y1": 0, "x2": 6621, "y2": 255 }],
- "go": { "x": 6474, "y": 188, "z": 0 },
- "entrance": { "x": 3784, "y": 1097 }
+ "$type": "MondainRegion",
+ "Name": "Prism of Light",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 6400, "y1": 0, "x2": 6621, "y2": 255 }],
+ "GoLocation": { "x": 6474, "y": 188, "z": 0 },
+ "Entrance": { "x": 3784, "y": 1097 }
},
{
- "name": "Blighted Grove",
- "type": "MondainRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "MelisandesLair",
- "rects": [{ "x1": 6440, "y1": 820, "x2": 6600, "y2": 970 }],
- "go": { "x": 6478, "y": 863, "z": 11 },
- "entrance": { "x": 587, "y": 1641 }
+ "$type": "MondainRegion",
+ "Name": "Blighted Grove",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "MelisandesLair",
+ "Area": [{ "x1": 6440, "y1": 820, "x2": 6600, "y2": 970 }],
+ "GoLocation": { "x": 6478, "y": 863, "z": 11 },
+ "Entrance": { "x": 587, "y": 1641 }
},
{
- "name": "Palace of Paroxysmus",
- "type": "MondainRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "ParoxysmusLair",
- "rects": [{ "x1": 6191, "y1": 311, "x2": 6561, "y2": 671 }],
- "go": { "x": 6222, "y": 335, "z": 60 },
- "entrance": { "x": 5574, "y": 3024 }
+ "$type": "MondainRegion",
+ "Name": "Palace of Paroxysmus",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "ParoxysmusLair",
+ "Area": [{ "x1": 6191, "y1": 311, "x2": 6561, "y2": 671 }],
+ "GoLocation": { "x": 6222, "y": 335, "z": 60 },
+ "Entrance": { "x": 5574, "y": 3024 }
},
{
- "name": "Bravehorn's drinking pool",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 1302, "y1": 2331, "x2": 1340, "y2": 2353 }]
+ "$type": "BaseRegion",
+ "Name": "Bravehorn's drinking pool",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 1302, "y1": 2331, "x2": 1340, "y2": 2353 }]
},
{
- "name": "Huntsman's Forest",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 1595, "y1": 550, "x2": 1715, "y2": 670 }]
+ "$type": "BaseRegion",
+ "Name": "Huntsman's Forest",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 1595, "y1": 550, "x2": 1715, "y2": 670 }]
},
{
- "name": "Cove",
- "type": "TownRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Cove",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Cove",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Cove",
+ "Area": [
{ "x1": 2200, "y1": 1110, "z1": 0, "x2": 2250, "y2": 1160, "z2": 128 },
{ "x1": 2200, "y1": 1160, "z1": 0, "x2": 2286, "y2": 1246, "z2": 128 }
],
- "go": { "x": 2275, "y": 1210, "z": 0 }
+ "GoLocation": { "x": 2275, "y": 1210, "z": 0 }
},
{
- "name": "Britain",
- "type": "TownRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Britain1",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Britain",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Britain1",
+ "Area": [
{ "x1": 1416, "y1": 1498, "z1": -10, "x2": 1740, "y2": 1777, "z2": 128 },
{ "x1": 1500, "y1": 1408, "z1": 0, "x2": 1546, "y2": 1498, "z2": 128 },
{ "x1": 1385, "y1": 1538, "z1": -10, "x2": 1416, "y2": 1777, "z2": 128 },
@@ -1374,14 +1375,14 @@
{ "x1": 1385, "y1": 1777, "z1": 0, "x2": 1416, "y2": 1907, "z2": 128 },
{ "x1": 1093, "y1": 1538, "z1": 0, "x2": 1385, "y2": 1907, "z2": 128 }
],
- "go": { "x": 1495, "y": 1629, "z": 10 }
+ "GoLocation": { "x": 1495, "y": 1629, "z": 10 }
},
{
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Britain",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Trammel",
+ "Parent": "Britain",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 1492, "y1": 1602, "z1": 0, "x2": 1500, "y2": 1621, "z2": 128 },
{ "x1": 1500, "y1": 1610, "z1": 0, "x2": 1508, "y2": 1626, "z2": 128 },
{ "x1": 1576, "y1": 1584, "z1": 0, "x2": 1600, "y2": 1600, "z2": 128 },
@@ -1398,133 +1399,133 @@
]
},
{
- "name": "A Wheatfield in Britain 1",
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Britain",
- "rects": [{ "x1": 1120, "y1": 1776, "x2": 1152, "y2": 1808 }],
- "go": { "x": 1135, "y": 1791, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Britain 1",
+ "Map": "Trammel",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1120, "y1": 1776, "x2": 1152, "y2": 1808 }],
+ "GoLocation": { "x": 1135, "y": 1791, "z": 0 }
},
{
- "name": "A Wheatfield in Britain 2",
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Britain",
- "rects": [{ "x1": 1184, "y1": 1808, "x2": 1216, "y2": 1840 }],
- "go": { "x": 1199, "y": 1823, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Britain 2",
+ "Map": "Trammel",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1184, "y1": 1808, "x2": 1216, "y2": 1840 }],
+ "GoLocation": { "x": 1199, "y": 1823, "z": 0 }
},
{
- "name": "A Wheatfield in Britain 3",
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Britain",
- "rects": [{ "x1": 1216, "y1": 1872, "x2": 1248, "y2": 1904 }],
- "go": { "x": 1231, "y": 1887, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Britain 3",
+ "Map": "Trammel",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1216, "y1": 1872, "x2": 1248, "y2": 1904 }],
+ "GoLocation": { "x": 1231, "y": 1887, "z": 0 }
},
{
- "name": "A Carrot Field in Britain 1",
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Britain",
- "rects": [{ "x1": 1208, "y1": 1712, "x2": 1224, "y2": 1736 }],
- "go": { "x": 1215, "y": 1723, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Carrot Field in Britain 1",
+ "Map": "Trammel",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1208, "y1": 1712, "x2": 1224, "y2": 1736 }],
+ "GoLocation": { "x": 1215, "y": 1723, "z": 0 }
},
{
- "name": "An Onion Field in Britain 1",
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Britain",
- "rects": [{ "x1": 1224, "y1": 1712, "x2": 1240, "y2": 1736 }],
- "go": { "x": 1231, "y": 1723, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "An Onion Field in Britain 1",
+ "Map": "Trammel",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1224, "y1": 1712, "x2": 1240, "y2": 1736 }],
+ "GoLocation": { "x": 1231, "y": 1723, "z": 0 }
},
{
- "name": "A Cabbage Field in Britain 1",
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Britain",
- "rects": [{ "x1": 1176, "y1": 1672, "x2": 1192, "y2": 1695 }],
- "go": { "x": 1183, "y": 1683, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Cabbage Field in Britain 1",
+ "Map": "Trammel",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1176, "y1": 1672, "x2": 1192, "y2": 1695 }],
+ "GoLocation": { "x": 1183, "y": 1683, "z": 0 }
},
{
- "name": "A Turnip Field in Britain 1",
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Britain",
- "rects": [{ "x1": 1192, "y1": 1672, "x2": 1208, "y2": 1696 }],
- "go": { "x": 1199, "y": 1683, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Turnip Field in Britain 1",
+ "Map": "Trammel",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1192, "y1": 1672, "x2": 1208, "y2": 1696 }],
+ "GoLocation": { "x": 1199, "y": 1683, "z": 0 }
},
{
- "name": "A Wheatfield in Britain 4",
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Britain",
- "rects": [{ "x1": 1104, "y1": 1608, "x2": 1136, "y2": 1640 }],
- "go": { "x": 1120, "y": 1624, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Britain 4",
+ "Map": "Trammel",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1104, "y1": 1608, "x2": 1136, "y2": 1640 }],
+ "GoLocation": { "x": 1120, "y": 1624, "z": 0 }
},
{
- "name": "A Wheatfield in Britain 5",
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Britain",
- "rects": [{ "x1": 1136, "y1": 1560, "x2": 1168, "y2": 1592 }],
- "go": { "x": 1152, "y": 1576, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Britain 5",
+ "Map": "Trammel",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1136, "y1": 1560, "x2": 1168, "y2": 1592 }],
+ "GoLocation": { "x": 1152, "y": 1576, "z": 0 }
},
{
- "name": "A Turnip Field in Britain 2",
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Britain",
- "rects": [{ "x1": 1208, "y1": 1592, "x2": 1224, "y2": 1616 }],
- "go": { "x": 1216, "y": 1604, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Turnip Field in Britain 2",
+ "Map": "Trammel",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1208, "y1": 1592, "x2": 1224, "y2": 1616 }],
+ "GoLocation": { "x": 1216, "y": 1604, "z": 0 }
},
{
- "name": "A Carrot Field in Britain 2",
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Britain",
- "rects": [{ "x1": 1224, "y1": 1592, "x2": 1240, "y2": 1616 }],
- "go": { "x": 1232, "y": 1604, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Carrot Field in Britain 2",
+ "Map": "Trammel",
+ "Parent": "Britain",
+ "Area": [{ "x1": 1224, "y1": 1592, "x2": 1240, "y2": 1616 }],
+ "GoLocation": { "x": 1232, "y": 1604, "z": 0 }
},
{
- "name": "Britain Graveyard",
- "type": "NoHousingRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 1333, "y1": 1441, "x2": 1417, "y2": 1523 }],
- "go": { "x": 1384, "y": 1492, "z": 10 }
+ "$type": "NoHousingRegion",
+ "Name": "Britain Graveyard",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 1333, "y1": 1441, "x2": 1417, "y2": 1523 }],
+ "GoLocation": { "x": 1384, "y": 1492, "z": 10 }
},
{
- "name": "Jhelom Islands",
- "type": "NoHousingRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Jhelom",
- "rects": [
+ "$type": "NoHousingRegion",
+ "Name": "Jhelom Islands",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Jhelom",
+ "Area": [
{ "x1": 1111, "y1": 3567, "x2": 1144, "y2": 3588 },
{ "x1": 1078, "y1": 3588, "x2": 1202, "y2": 3709 },
{ "x1": 1224, "y1": 3592, "x2": 1533, "y2": 4065 }
],
- "go": { "x": 1383, "y": 3815, "z": 0 }
+ "GoLocation": { "x": 1383, "y": 3815, "z": 0 }
},
{
- "name": "Jhelom",
- "type": "TownRegion",
- "map": "Trammel",
- "parent": "Jhelom Islands",
- "music": "Jhelom",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Jhelom",
+ "Map": "Trammel",
+ "Parent": "Jhelom Islands",
+ "Music": "Jhelom",
+ "Area": [
{ "x1": 1303, "y1": 3670, "z1": -20, "x2": 1492, "y2": 3895, "z2": 128 },
{ "x1": 1338, "y1": 3895, "z1": -20, "x2": 1412, "y2": 3923, "z2": 128 },
{ "x1": 1383, "y1": 3951, "z1": -20, "x2": 1492, "y2": 4045, "z2": 128 }
],
- "go": { "x": 1383, "y": 3815, "z": 0 }
+ "GoLocation": { "x": 1383, "y": 3815, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Jhelom",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Trammel",
+ "Parent": "Jhelom",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 1352, "y1": 3800, "z1": -20, "x2": 1368, "y2": 3832, "z2": 128 },
{ "x1": 1368, "y1": 3808, "z1": -20, "x2": 1376, "y2": 3824, "z2": 128 },
{ "x1": 1432, "y1": 3768, "z1": -20, "x2": 1464, "y2": 3776, "z2": 128 },
@@ -1532,47 +1533,46 @@
]
},
{
- "name": "Minoc",
- "type": "TownRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Minoc",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Minoc",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Minoc",
+ "Area": [
{ "x1": 2411, "y1": 366, "x2": 2546, "y2": 607 },
{ "x1": 2548, "y1": 495, "x2": 2620, "y2": 550 },
{ "x1": 2564, "y1": 585, "x2": 2567, "y2": 627 },
{ "x1": 2567, "y1": 585, "x2": 2628, "y2": 646 },
{ "x1": 2499, "y1": 627, "x2": 2567, "y2": 690 }
],
- "go": { "x": 2466, "y": 544, "z": 0 }
+ "GoLocation": { "x": 2466, "y": 544, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Minoc",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Trammel",
+ "Parent": "Minoc",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 2457, "y1": 397, "x2": 2497, "y2": 405 },
{ "x1": 2465, "y1": 405, "x2": 2473, "y2": 413 },
{ "x1": 2481, "y1": 405, "x2": 2489, "y2": 413 }
]
},
{
- "name": "Haven Island",
- "type": "NoHousingRegion",
- "map": "Trammel",
- "priority": 50,
- "smartNoHousing": true,
- "rects": [{ "x1": 3314, "y1": 2345, "x2": 3814, "y2": 3095 }],
- "go": { "x": 3627, "y": 2606, "z": 0 }
+ "$type": "NoHousingRegion",
+ "Name": "Haven Island",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 3314, "y1": 2345, "x2": 3814, "y2": 3095 }],
+ "GoLocation": { "x": 3627, "y": 2606, "z": 0 }
},
{
- "name": "Trinsic",
- "type": "TownRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Trinsic",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Trinsic",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Trinsic",
+ "Area": [
{ "x1": 1856, "y1": 2636, "x2": 1931, "y2": 2664 },
{ "x1": 1816, "y1": 2664, "x2": 2099, "y2": 2895 },
{ "x1": 2099, "y1": 2782, "x2": 2117, "y2": 2807 },
@@ -1580,14 +1580,14 @@
{ "x1": 1796, "y1": 2696, "z1": 0, "x2": 1816, "y2": 2763, "z2": 128 },
{ "x1": 1800, "y1": 2796, "z1": 0, "x2": 1816, "y2": 2848, "z2": 128 }
],
- "go": { "x": 1867, "y": 2780, "z": 0 }
+ "GoLocation": { "x": 1867, "y": 2780, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Trinsic",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Trammel",
+ "Parent": "Trinsic",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 1834, "y1": 2728, "x2": 1856, "y2": 2744 },
{ "x1": 2024, "y1": 2784, "x2": 2040, "y2": 2804 },
{ "x1": 2026, "y1": 2804, "x2": 2040, "y2": 2806 },
@@ -1597,25 +1597,25 @@
]
},
{
- "name": "Vesper",
- "type": "TownRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Vesper",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Vesper",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Vesper",
+ "Area": [
{ "x1": 2893, "y1": 598, "x2": 3014, "y2": 648 },
{ "x1": 2816, "y1": 648, "x2": 3065, "y2": 1013 },
{ "x1": 2734, "y1": 944, "x2": 2816, "y2": 948 },
{ "x1": 2728, "y1": 948, "x2": 2816, "y2": 1001 }
],
- "go": { "x": 2899, "y": 676, "z": 0 }
+ "GoLocation": { "x": 2899, "y": 676, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Vesper",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Trammel",
+ "Parent": "Vesper",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 2952, "y1": 864, "x2": 2968, "y2": 896 },
{ "x1": 2968, "y1": 872, "x2": 2976, "y2": 888 },
{ "x1": 2776, "y1": 952, "x2": 2792, "y2": 984 },
@@ -1625,12 +1625,12 @@
]
},
{
- "name": "Yew",
- "type": "TownRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Yew",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Yew",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Yew",
+ "Area": [
{ "x1": 92, "y1": 656, "z1": 0, "x2": 441, "y2": 881, "z2": 128 },
{ "x1": 441, "y1": 746, "z1": 0, "x2": 657, "y2": 881, "z2": 128 },
{ "x1": 258, "y1": 881, "z1": 0, "x2": 657, "y2": 1261, "z2": 128 },
@@ -1638,67 +1638,67 @@
{ "x1": 657, "y1": 806, "z1": 0, "x2": 674, "y2": 834, "z2": 128 },
{ "x1": 718, "y1": 874, "z1": 0, "x2": 756, "y2": 896, "z2": 128 }
],
- "go": { "x": 546, "y": 992, "z": 0 }
+ "GoLocation": { "x": 546, "y": 992, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Yew",
- "logoutDelay": false,
- "rects": [{ "x1": 600, "y1": 808, "z1": 0, "x2": 624, "y2": 832, "z2": 128 }]
+ "$type": "BaseRegion",
+ "Map": "Trammel",
+ "Parent": "Yew",
+ "LogoutDelay": false,
+ "Area": [{ "x1": 600, "y1": 808, "z1": 0, "x2": 624, "y2": 832, "z2": 128 }]
},
{
- "name": "A Field of Sheep in Yew 1",
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Yew",
+ "$type": "BaseRegion",
+ "Name": "A Field of Sheep in Yew 1",
+ "Map": "Trammel",
+ "Parent": "Yew",
"rune": "A Field of Sheep in Yew",
- "rects": [{ "x1": 664, "y1": 928, "x2": 686, "y2": 950 }],
- "go": { "x": 675, "y": 939, "z": 0 }
+ "Area": [{ "x1": 664, "y1": 928, "x2": 686, "y2": 950 }],
+ "GoLocation": { "x": 675, "y": 939, "z": 0 }
},
{
- "name": "A Field of Sheep in Yew 2",
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Yew",
+ "$type": "BaseRegion",
+ "Name": "A Field of Sheep in Yew 2",
+ "Map": "Trammel",
+ "Parent": "Yew",
"rune": "A Field of Sheep in Yew",
- "rects": [{ "x1": 664, "y1": 1168, "x2": 686, "y2": 1190 }],
- "go": { "x": 675, "y": 1179, "z": 0 }
+ "Area": [{ "x1": 664, "y1": 1168, "x2": 686, "y2": 1190 }],
+ "GoLocation": { "x": 675, "y": 1179, "z": 0 }
},
{
- "name": "A Farm in Yew",
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Yew",
+ "$type": "BaseRegion",
+ "Name": "A Farm in Yew",
+ "Map": "Trammel",
+ "Parent": "Yew",
"rune": "A Farm in Yew",
- "rects": [{ "x1": 560, "y1": 1088, "x2": 582, "y2": 1110 }],
- "go": { "x": 571, "y": 1099, "z": 0 }
+ "Area": [{ "x1": 560, "y1": 1088, "x2": 582, "y2": 1110 }],
+ "GoLocation": { "x": 571, "y": 1099, "z": 0 }
},
{
- "name": "A Wheatfield in Yew 1",
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Yew",
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Yew 1",
+ "Map": "Trammel",
+ "Parent": "Yew",
"rune": "A Wheatfield in Yew",
- "rects": [{ "x1": 560, "y1": 1232, "x2": 576, "y2": 1248 }],
- "go": { "x": 567, "y": 1239, "z": 0 }
+ "Area": [{ "x1": 560, "y1": 1232, "x2": 576, "y2": 1248 }],
+ "GoLocation": { "x": 567, "y": 1239, "z": 0 }
},
{
- "name": "A Wheatfield in Yew 2",
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Yew",
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Yew 2",
+ "Map": "Trammel",
+ "Parent": "Yew",
"rune": "A Wheatfield in Yew",
- "rects": [{ "x1": 368, "y1": 1176, "x2": 382, "y2": 1208 }],
- "go": { "x": 375, "y": 1191, "z": 0 }
+ "Area": [{ "x1": 368, "y1": 1176, "x2": 382, "y2": 1208 }],
+ "GoLocation": { "x": 375, "y": 1191, "z": 0 }
},
{
- "name": "Wind",
- "type": "TownRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Wind",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Wind",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Wind",
+ "Area": [
{ "x1": 5294, "y1": 19, "x2": 5366, "y2": 139 },
{ "x1": 5132, "y1": 58, "x2": 5213, "y2": 126 },
{ "x1": 5197, "y1": 126, "x2": 5252, "y2": 204 },
@@ -1711,14 +1711,14 @@
{ "x1": 5252, "y1": 178, "x2": 5272, "y2": 183 },
{ "x1": 5252, "y1": 183, "x2": 5262, "y2": 193 }
],
- "go": { "x": 5223, "y": 190, "z": 5 }
+ "GoLocation": { "x": 5223, "y": 190, "z": 5 }
},
{
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Wind",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Trammel",
+ "Parent": "Wind",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 5159, "y1": 15, "x2": 5184, "y2": 24 },
{ "x1": 5159, "y1": 24, "x2": 5168, "y2": 40 },
{ "x1": 5175, "y1": 24, "x2": 5184, "y2": 32 },
@@ -1729,40 +1729,40 @@
]
},
{
- "name": "Serpent's Hold",
- "type": "TownRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Serpents",
- "rects": [{ "x1": 2868, "y1": 3324, "z1": 0, "x2": 3073, "y2": 3519, "z2": 128 }],
- "go": { "x": 3010, "y": 3371, "z": 15 }
+ "$type": "TownRegion",
+ "Name": "Serpent's Hold",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Serpents",
+ "Area": [{ "x1": 2868, "y1": 3324, "z1": 0, "x2": 3073, "y2": 3519, "z2": 128 }],
+ "GoLocation": { "x": 3010, "y": 3371, "z": 15 }
},
{
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Serpent's Hold",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Trammel",
+ "Parent": "Serpent's Hold",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 2960, "y1": 3400, "z1": 0, "x2": 2976, "y2": 3416, "z2": 128 },
{ "x1": 2968, "y1": 3416, "z1": 0, "x2": 2976, "y2": 3432, "z2": 128 },
{ "x1": 3008, "y1": 3450, "z1": 0, "x2": 3022, "y2": 3464, "z2": 128 }
]
},
{
- "name": "Skara Brae",
- "type": "TownRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Skarabra",
- "rects": [{ "x1": 538, "y1": 2107, "x2": 688, "y2": 2297 }],
- "go": { "x": 632, "y": 2233, "z": 0 }
+ "$type": "TownRegion",
+ "Name": "Skara Brae",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Skarabra",
+ "Area": [{ "x1": 538, "y1": 2107, "x2": 688, "y2": 2297 }],
+ "GoLocation": { "x": 632, "y": 2233, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Skara Brae",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Trammel",
+ "Parent": "Skara Brae",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 600, "y1": 2232, "x2": 616, "y2": 2256 },
{ "x1": 592, "y1": 2240, "x2": 600, "y2": 2256 },
{ "x1": 616, "y1": 2240, "x2": 624, "y2": 2256 },
@@ -1771,20 +1771,20 @@
]
},
{
- "name": "Nujel'm",
- "type": "TownRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Nujelm",
- "rects": [{ "x1": 3475, "y1": 1000, "z1": 0, "x2": 3835, "y2": 1435, "z2": 128 }],
- "go": { "x": 3732, "y": 1279, "z": 0 }
+ "$type": "TownRegion",
+ "Name": "Nujel'm",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Nujelm",
+ "Area": [{ "x1": 3475, "y1": 1000, "z1": 0, "x2": 3835, "y2": 1435, "z2": 128 }],
+ "GoLocation": { "x": 3732, "y": 1279, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Nujel'm",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Trammel",
+ "Parent": "Nujel'm",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 3736, "y1": 1184, "z1": 0, "x2": 3752, "y2": 1207, "z2": 128 },
{ "x1": 3728, "y1": 1192, "z1": 0, "x2": 3736, "y2": 1207, "z2": 128 },
{ "x1": 3728, "y1": 1288, "z1": 0, "x2": 3751, "y2": 1303, "z2": 128 },
@@ -1801,12 +1801,12 @@
]
},
{
- "name": "Moonglow",
- "type": "TownRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Moonglow",
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Moonglow",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Moonglow",
+ "Area": [
{ "x1": 4535, "y1": 844, "z1": 0, "x2": 4555, "y2": 847, "z2": 128 },
{ "x1": 4530, "y1": 847, "z1": 0, "x2": 4561, "y2": 908, "z2": 128 },
{ "x1": 4521, "y1": 914, "z1": 0, "x2": 4577, "y2": 963, "z2": 128 },
@@ -1832,15 +1832,15 @@
{ "x1": 4405, "y1": 1451, "z1": 0, "x2": 4428, "y2": 1474, "z2": 128 },
{ "x1": 4483, "y1": 1468, "z1": 0, "x2": 4504, "y2": 1481, "z2": 128 }
],
- "go": { "x": 4442, "y": 1172, "z": 0 }
+ "GoLocation": { "x": 4442, "y": 1172, "z": 0 }
},
{
- "name": "The Scholar's Inn",
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Moonglow",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "The Scholar's Inn",
+ "Map": "Trammel",
+ "Parent": "Moonglow",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 4384, "y1": 1152, "z1": 0, "x2": 4392, "y2": 1176, "z2": 128 },
{ "x1": 4392, "y1": 1160, "z1": 0, "x2": 4408, "y2": 1168, "z2": 128 },
{ "x1": 4400, "y1": 1152, "z1": 0, "x2": 4408, "y2": 1160, "z2": 128 },
@@ -1850,12 +1850,12 @@
]
},
{
- "name": "Magincia",
- "type": "NewMaginciaRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Magincia",
- "rects": [
+ "$type": "NewMaginciaRegion",
+ "Name": "Magincia",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Magincia",
+ "Area": [
{ "x1": 3632, "y1": 2032, "x2": 3682, "y2": 2102 },
{ "x1": 3624, "y1": 2162, "x2": 3719, "y2": 2232 },
{ "x1": 3752, "y1": 2046, "x2": 3804, "y2": 2094 },
@@ -1863,34 +1863,34 @@
{ "x1": 3652, "y1": 2094, "x2": 3812, "y2": 2274 },
{ "x1": 3649, "y1": 2256, "x2": 3703, "y2": 2303 }
],
- "go": { "x": 3714, "y": 2220, "z": 20 }
+ "GoLocation": { "x": 3714, "y": 2220, "z": 20 }
},
{
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Magincia",
- "logoutDelay": false,
- "rects": [{ "x1": 3687, "y1": 2246, "x2": 3699, "y2": 2262 }]
+ "$type": "BaseRegion",
+ "Map": "Trammel",
+ "Parent": "Magincia",
+ "LogoutDelay": false,
+ "Area": [{ "x1": 3687, "y1": 2246, "x2": 3699, "y2": 2262 }]
},
{
- "name": "Buccaneer's Den",
- "type": "TownRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "BucsDen",
- "guardsDisabled": true,
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Buccaneer's Den",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "BucsDen",
+ "GuardsDisabled": true,
+ "Area": [
{ "x1": 2612, "y1": 2057, "x2": 2776, "y2": 2267 },
{ "x1": 2604, "y1": 2065, "z1": 0, "x2": 2612, "y2": 2254, "z2": 128 }
],
- "go": { "x": 2706, "y": 2163, "z": 0 }
+ "GoLocation": { "x": 2706, "y": 2163, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Buccaneer's Den",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Map": "Trammel",
+ "Parent": "Buccaneer's Den",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 2712, "y1": 2080, "x2": 2728, "y2": 2096 },
{ "x1": 2712, "y1": 2096, "x2": 2720, "y2": 2104 },
{ "x1": 2664, "y1": 2232, "x2": 2688, "y2": 2240 },
@@ -1898,1022 +1898,1022 @@
]
},
{
- "name": "Covetous",
- "type": "DungeonRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Covetous",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [
{ "x1": 5376, "y1": 1793, "x2": 5577, "y2": 2048 },
{ "x1": 5576, "y1": 1791, "x2": 5633, "y2": 2048 }
],
- "go": { "x": 5456, "y": 1862, "z": 0 },
- "entrance": { "x": 2499, "y": 916 }
+ "GoLocation": { "x": 5456, "y": 1862, "z": 0 },
+ "Entrance": { "x": 2499, "y": 916 }
},
{
- "name": "Deceit",
- "type": "DungeonRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 5122, "y1": 518, "x2": 5370, "y2": 770 }],
- "go": { "x": 5187, "y": 635, "z": 0 },
- "entrance": { "x": 4111, "y": 429 }
+ "$type": "DungeonRegion",
+ "Name": "Deceit",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 5122, "y1": 518, "x2": 5370, "y2": 770 }],
+ "GoLocation": { "x": 5187, "y": 635, "z": 0 },
+ "Entrance": { "x": 4111, "y": 429 }
},
{
- "name": "Despise",
- "type": "DungeonRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 5377, "y1": 516, "x2": 5631, "y2": 1022 }],
- "go": { "x": 5501, "y": 570, "z": 59 },
- "entrance": { "x": 1296, "y": 1082 }
+ "$type": "DungeonRegion",
+ "Name": "Despise",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 5377, "y1": 516, "x2": 5631, "y2": 1022 }],
+ "GoLocation": { "x": 5501, "y": 570, "z": 59 },
+ "Entrance": { "x": 1296, "y": 1082 }
},
{
- "name": "Destard",
- "type": "DungeonRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 5120, "y1": 770, "x2": 5371, "y2": 1028 }],
- "go": { "x": 5243, "y": 1004, "z": 0 },
- "entrance": { "x": 1176, "y": 2635 }
+ "$type": "DungeonRegion",
+ "Name": "Destard",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 5120, "y1": 770, "x2": 5371, "y2": 1028 }],
+ "GoLocation": { "x": 5243, "y": 1004, "z": 0 },
+ "Entrance": { "x": 1176, "y": 2635 }
},
{
- "name": "Hythloth",
- "type": "DungeonRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 5898, "y1": 2, "x2": 6136, "y2": 246 }],
- "go": { "x": 5905, "y": 22, "z": 44 },
- "entrance": { "x": 4722, "y": 3814 }
+ "$type": "DungeonRegion",
+ "Name": "Hythloth",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 5898, "y1": 2, "x2": 6136, "y2": 246 }],
+ "GoLocation": { "x": 5905, "y": 22, "z": 44 },
+ "Entrance": { "x": 4722, "y": 3814 }
},
{
- "name": "Jail",
- "type": "JailRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 5271, "y1": 1159, "x2": 5312, "y2": 1192 }],
- "go": { "x": 5275, "y": 1163, "z": 0 }
+ "$type": "JailRegion",
+ "Name": "Jail",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 5271, "y1": 1159, "x2": 5312, "y2": 1192 }],
+ "GoLocation": { "x": 5275, "y": 1163, "z": 0 }
},
{
- "name": "Green Acres",
- "type": "GreenAcresRegion",
- "map": "Trammel",
- "priority": 1,
- "rects": [{ "x1": 5376, "y1": 512, "x2": 6143, "y2": 1279 }],
- "go": { "x": 5445, "y": 1153, "z": 0 }
+ "$type": "GreenAcresRegion",
+ "Name": "Green Acres",
+ "Map": "Trammel",
+ "Priority": 1,
+ "Area": [{ "x1": 5376, "y1": 512, "x2": 6143, "y2": 1279 }],
+ "GoLocation": { "x": 5445, "y": 1153, "z": 0 }
},
{
- "name": "Shame",
- "type": "DungeonRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Shame",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [
{ "x1": 5377, "y1": 2, "x2": 5634, "y2": 262 },
{ "x1": 5635, "y1": 2, "x2": 5895, "y2": 126 }
],
- "go": { "x": 5395, "y": 126, "z": 0 },
- "entrance": { "x": 512, "y": 1559 }
+ "GoLocation": { "x": 5395, "y": 126, "z": 0 },
+ "Entrance": { "x": 512, "y": 1559 }
},
{
- "name": "Wrong",
- "type": "DungeonRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 5633, "y1": 511, "x2": 5886, "y2": 1021 }],
- "go": { "x": 5825, "y": 599, "z": 0 },
- "entrance": { "x": 2042, "y": 226 }
+ "$type": "DungeonRegion",
+ "Name": "Wrong",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 5633, "y1": 511, "x2": 5886, "y2": 1021 }],
+ "GoLocation": { "x": 5825, "y": 599, "z": 0 },
+ "Entrance": { "x": 2042, "y": 226 }
},
{
- "name": "Cave 1",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Cave 1",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [
{ "x1": 2373, "y1": 900, "x2": 2395, "y2": 928 },
{ "x1": 2395, "y1": 903, "x2": 2409, "y2": 919 },
{ "x1": 2373, "y1": 928, "x2": 2383, "y2": 937 },
{ "x1": 2359, "y1": 927, "x2": 2373, "y2": 945 }
],
- "go": { "x": 2367, "y": 942, "z": 0 }
+ "GoLocation": { "x": 2367, "y": 942, "z": 0 }
},
{
- "name": "Cave 2",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 1887, "y1": 354, "x2": 1920, "y2": 377 }],
- "go": { "x": 1903, "y": 365, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Cave 2",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 1887, "y1": 354, "x2": 1920, "y2": 377 }],
+ "GoLocation": { "x": 1903, "y": 365, "z": 0 }
},
{
- "name": "Cave 3",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 1925, "y1": 307, "x2": 1943, "y2": 325 }],
- "go": { "x": 1934, "y": 316, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Cave 3",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 1925, "y1": 307, "x2": 1943, "y2": 325 }],
+ "GoLocation": { "x": 1934, "y": 316, "z": 0 }
},
{
- "name": "Cave 4",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 2323, "y1": 809, "x2": 2368, "y2": 851 }],
- "go": { "x": 2345, "y": 830, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Cave 4",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 2323, "y1": 809, "x2": 2368, "y2": 851 }],
+ "GoLocation": { "x": 2345, "y": 830, "z": 0 }
},
{
- "name": "Britain Mine 1",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 1436, "y1": 1215, "x2": 1465, "y2": 1252 }],
- "go": { "x": 1443, "y": 1228, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Britain Mine 1",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 1436, "y1": 1215, "x2": 1465, "y2": 1252 }],
+ "GoLocation": { "x": 1443, "y": 1228, "z": 0 }
},
{
- "name": "Britain Mine 2",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 1611, "y1": 1175, "x2": 1662, "y2": 1204 }],
- "go": { "x": 1629, "y": 1189, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Britain Mine 2",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 1611, "y1": 1175, "x2": 1662, "y2": 1204 }],
+ "GoLocation": { "x": 1629, "y": 1189, "z": 0 }
},
{
- "name": "Minoc Cave 1",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 2406, "y1": 168, "x2": 2428, "y2": 184 }],
- "go": { "x": 2426, "y": 177, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Minoc Cave 1",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 2406, "y1": 168, "x2": 2428, "y2": 184 }],
+ "GoLocation": { "x": 2426, "y": 177, "z": 0 }
},
{
- "name": "Minoc Cave 2",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 2418, "y1": 81, "x2": 2442, "y2": 113 }],
- "go": { "x": 2440, "y": 94, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Minoc Cave 2",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 2418, "y1": 81, "x2": 2442, "y2": 113 }],
+ "GoLocation": { "x": 2440, "y": 94, "z": 0 }
},
{
- "name": "Minoc Cave 3",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 2447, "y1": 39, "x2": 2489, "y2": 67 }],
- "go": { "x": 2471, "y": 64, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Minoc Cave 3",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 2447, "y1": 39, "x2": 2489, "y2": 67 }],
+ "GoLocation": { "x": 2471, "y": 64, "z": 0 }
},
{
- "name": "Minoc Mine",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Minoc Mine",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [
{ "x1": 2556, "y1": 501, "x2": 2562, "y2": 504 },
{ "x1": 2556, "y1": 474, "x2": 2582, "y2": 501 }
],
- "go": { "x": 2558, "y": 499, "z": 0 }
+ "GoLocation": { "x": 2558, "y": 499, "z": 0 }
},
{
- "name": "Avatar Isle Cave",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 4594, "y1": 3807, "x2": 4617, "y2": 3824 }],
- "go": { "x": 4605, "y": 3815, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Avatar Isle Cave",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 4594, "y1": 3807, "x2": 4617, "y2": 3824 }],
+ "GoLocation": { "x": 4605, "y": 3815, "z": 0 }
},
{
- "name": "Ice Isle Cave 1",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 4018, "y1": 421, "x2": 4067, "y2": 470 }],
- "go": { "x": 4054, "y": 440, "z": 3 }
+ "$type": "BaseRegion",
+ "Name": "Ice Isle Cave 1",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 4018, "y1": 421, "x2": 4067, "y2": 470 }],
+ "GoLocation": { "x": 4054, "y": 440, "z": 3 }
},
{
- "name": "Ice Isle Cave 2",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Ice Isle Cave 2",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [
{ "x1": 4002, "y1": 310, "x2": 4045, "y2": 351 },
{ "x1": 4005, "y1": 298, "x2": 4027, "y2": 310 }
],
- "go": { "x": 4030, "y": 325, "z": 0 }
+ "GoLocation": { "x": 4030, "y": 325, "z": 0 }
},
{
- "name": "North Territory Cave",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 1973, "y1": 251, "x2": 1994, "y2": 274 }],
- "go": { "x": 1984, "y": 262, "z": 8 }
+ "$type": "BaseRegion",
+ "Name": "North Territory Cave",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 1973, "y1": 251, "x2": 1994, "y2": 274 }],
+ "GoLocation": { "x": 1984, "y": 262, "z": 8 }
},
{
- "name": "Yew Cave",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 766, "y1": 1683, "x2": 778, "y2": 1697 }],
- "go": { "x": 773, "y": 1684, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Yew Cave",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 766, "y1": 1683, "x2": 778, "y2": 1697 }],
+ "GoLocation": { "x": 773, "y": 1684, "z": 0 }
},
{
- "name": "North Territory Mine 1",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 1713, "y1": 1055, "x2": 1753, "y2": 1080 }],
- "go": { "x": 1723, "y": 1065, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "North Territory Mine 1",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 1713, "y1": 1055, "x2": 1753, "y2": 1080 }],
+ "GoLocation": { "x": 1723, "y": 1065, "z": 0 }
},
{
- "name": "North Territory Mine 2",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 1604, "y1": 958, "x2": 1650, "y2": 1009 }],
- "go": { "x": 1638, "y": 974, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "North Territory Mine 2",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 1604, "y1": 958, "x2": 1650, "y2": 1009 }],
+ "GoLocation": { "x": 1638, "y": 974, "z": 0 }
},
{
- "name": "Mt Kendall",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Mt Kendall",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [
{ "x1": 2552, "y1": 448, "x2": 2623, "y2": 507 },
{ "x1": 2547, "y1": 380, "x2": 2590, "y2": 448 },
{ "x1": 2590, "y1": 413, "x2": 2623, "y2": 448 }
],
- "go": { "x": 2593, "y": 477, "z": 60 }
+ "GoLocation": { "x": 2593, "y": 477, "z": 60 }
},
{
- "name": "Covetous Mine",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Covetous Mine",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [
{ "x1": 2429, "y1": 866, "x2": 2448, "y2": 911 },
{ "x1": 2448, "y1": 879, "x2": 2475, "y2": 907 },
{ "x1": 2456, "y1": 907, "x2": 2475, "y2": 941 }
],
- "go": { "x": 2445, "y": 880, "z": 0 }
+ "GoLocation": { "x": 2445, "y": 880, "z": 0 }
},
{
- "name": "Terathan Keep",
- "type": "DungeonRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Terathan Keep",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [
{ "x1": 5404, "y1": 3099, "x2": 5481, "y2": 3167 },
{ "x1": 5120, "y1": 1530, "x2": 5374, "y2": 1788 }
],
- "go": { "x": 5451, "y": 3143, "z": -60 },
- "entrance": { "x": 5426, "y": 3120 }
+ "GoLocation": { "x": 5451, "y": 3143, "z": -60 },
+ "Entrance": { "x": 5426, "y": 3120 }
},
{
- "name": "Fire",
- "type": "DungeonRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 5635, "y1": 1285, "x2": 5880, "y2": 1520 }],
- "go": { "x": 5760, "y": 2908, "z": 15 },
- "entrance": { "x": 2922, "y": 3402 }
+ "$type": "DungeonRegion",
+ "Name": "Fire",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 5635, "y1": 1285, "x2": 5880, "y2": 1520 }],
+ "GoLocation": { "x": 5760, "y": 2908, "z": 15 },
+ "Entrance": { "x": 2922, "y": 3402 }
},
{
- "name": "Ice",
- "type": "DungeonRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Ice",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [
{ "x1": 5668, "y1": 130, "x2": 5888, "y2": 268 },
{ "x1": 5800, "y1": 319, "x2": 5863, "y2": 384 },
{ "x1": 5654, "y1": 300, "x2": 5708, "y2": 340 }
],
- "go": { "x": 5210, "y": 2322, "z": 30 },
- "entrance": { "x": 1996, "y": 80 }
+ "GoLocation": { "x": 5210, "y": 2322, "z": 30 },
+ "Entrance": { "x": 1996, "y": 80 }
},
{
- "name": "Delucia",
- "type": "TownRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Delucia",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [
{ "x1": 5123, "y1": 3942, "x2": 5315, "y2": 4064 },
{ "x1": 5147, "y1": 4064, "x2": 5272, "y2": 4084 },
{ "x1": 5235, "y1": 3930, "x2": 5315, "y2": 3942 }
],
- "go": { "x": 5228, "y": 3978, "z": 37 }
+ "GoLocation": { "x": 5228, "y": 3978, "z": 37 }
},
{
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Delucia",
- "logoutDelay": false,
- "rects": [{ "x1": 5194, "y1": 4053, "x2": 5204, "y2": 4073 }]
+ "$type": "BaseRegion",
+ "Map": "Trammel",
+ "Parent": "Delucia",
+ "LogoutDelay": false,
+ "Area": [{ "x1": 5194, "y1": 4053, "x2": 5204, "y2": 4073 }]
},
{
- "name": "Papua",
- "type": "TownRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Papua",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [
{ "x1": 5639, "y1": 3095, "x2": 5831, "y2": 3318 },
{ "x1": 5831, "y1": 3237, "x2": 5851, "y2": 3267 }
],
- "go": { "x": 5769, "y": 3176, "z": 0 }
+ "GoLocation": { "x": 5769, "y": 3176, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Trammel",
- "parent": "Papua",
- "logoutDelay": false,
- "rects": [{ "x1": 5757, "y1": 3150, "x2": 5781, "y2": 3174 }]
+ "$type": "BaseRegion",
+ "Map": "Trammel",
+ "Parent": "Papua",
+ "LogoutDelay": false,
+ "Area": [{ "x1": 5757, "y1": 3150, "x2": 5781, "y2": 3174 }]
},
{
- "name": "Wrong Entrance",
- "type": "NoHousingRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Mountn_a",
- "rects": [{ "x1": 1939, "y1": 215, "x2": 2073, "y2": 352 }],
- "go": { "x": 2043, "y": 236, "z": 13 }
+ "$type": "NoHousingRegion",
+ "Name": "Wrong Entrance",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Mountn_a",
+ "Area": [{ "x1": 1939, "y1": 215, "x2": 2073, "y2": 352 }],
+ "GoLocation": { "x": 2043, "y": 236, "z": 13 }
},
{
- "name": "Covetous Entrance",
- "type": "NoHousingRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Vesper",
- "rects": [{ "x1": 2433, "y1": 846, "x2": 2561, "y2": 974 }],
- "go": { "x": 2499, "y": 918, "z": 0 }
+ "$type": "NoHousingRegion",
+ "Name": "Covetous Entrance",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Vesper",
+ "Area": [{ "x1": 2433, "y1": 846, "x2": 2561, "y2": 974 }],
+ "GoLocation": { "x": 2499, "y": 918, "z": 0 }
},
{
- "name": "Despise Entrance",
- "type": "NoHousingRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 1289, "y1": 1064, "x2": 1321, "y2": 1101 }],
- "go": { "x": 1298, "y": 1081, "z": 0 }
+ "$type": "NoHousingRegion",
+ "Name": "Despise Entrance",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 1289, "y1": 1064, "x2": 1321, "y2": 1101 }],
+ "GoLocation": { "x": 1298, "y": 1081, "z": 0 }
},
{
- "name": "Despise Passage",
- "type": "NoHousingRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [
+ "$type": "NoHousingRegion",
+ "Name": "Despise Passage",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [
{ "x1": 1338, "y1": 1060, "x2": 1389, "y2": 1122 },
{ "x1": 1354, "y1": 1122, "x2": 1396, "y2": 1243 },
{ "x1": 1349, "y1": 1122, "x2": 1354, "y2": 1224 }
],
- "go": { "x": 1380, "y": 1114, "z": 0 }
+ "GoLocation": { "x": 1380, "y": 1114, "z": 0 }
},
{
- "name": "Misc Dungeons",
- "type": "DungeonRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 5886, "y1": 1281, "x2": 6143, "y2": 1535 }],
- "go": { "x": 6032, "y": 1499, "z": 0 },
- "entrance": { "x": 1492, "y": 1641 }
+ "$type": "DungeonRegion",
+ "Name": "Misc Dungeons",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 5886, "y1": 1281, "x2": 6143, "y2": 1535 }],
+ "GoLocation": { "x": 6032, "y": 1499, "z": 0 },
+ "Entrance": { "x": 1492, "y": 1641 }
},
{
- "name": "Orc Cave",
- "type": "DungeonRegion",
- "map": "Trammel",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Orc Cave",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [
{ "x1": 5281, "y1": 1283, "x2": 5373, "y2": 1386 },
{ "x1": 5267, "y1": 1955, "x2": 5364, "y2": 2046 },
{ "x1": 5127, "y1": 1941, "x2": 5164, "y2": 2024 }
],
- "go": { "x": 5137, "y": 2015, "z": 0 },
- "entrance": { "x": 1014, "y": 1434 }
+ "GoLocation": { "x": 5137, "y": 2015, "z": 0 },
+ "Entrance": { "x": 1014, "y": 1434 }
},
{
- "name": "A Cotton Field in Moonglow",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
+ "$type": "BaseRegion",
+ "Name": "A Cotton Field in Moonglow",
+ "Map": "Trammel",
+ "Priority": 50,
"rune": "A Cotton Field in Moonglow",
- "rects": [{ "x1": 4557, "y1": 1471, "x2": 4577, "y2": 1481 }],
- "go": { "x": 4567, "y": 1475, "z": 0 }
+ "Area": [{ "x1": 4557, "y1": 1471, "x2": 4577, "y2": 1481 }],
+ "GoLocation": { "x": 4567, "y": 1475, "z": 0 }
},
{
- "name": "A Wheatfield in Skara Brae 1",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Skara Brae 1",
+ "Map": "Trammel",
+ "Priority": 50,
"rune": "A Wheatfield in Skara Brae",
- "rects": [{ "x1": 796, "y1": 2152, "x2": 832, "y2": 2176 }],
- "go": { "x": 813, "y": 2163, "z": 0 }
+ "Area": [{ "x1": 796, "y1": 2152, "x2": 832, "y2": 2176 }],
+ "GoLocation": { "x": 813, "y": 2163, "z": 0 }
},
{
- "name": "A Carrot Field in Skara Brae",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 816, "y1": 2251, "x2": 832, "y2": 2259 }],
- "go": { "x": 823, "y": 2254, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Carrot Field in Skara Brae",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 816, "y1": 2251, "x2": 832, "y2": 2259 }],
+ "GoLocation": { "x": 823, "y": 2254, "z": 0 }
},
{
- "name": "An Onion Field in Skara Brae",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 816, "y1": 2261, "x2": 832, "y2": 2269 }],
- "go": { "x": 823, "y": 2264, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "An Onion Field in Skara Brae",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 816, "y1": 2261, "x2": 832, "y2": 2269 }],
+ "GoLocation": { "x": 823, "y": 2264, "z": 0 }
},
{
- "name": "A Cabbage Field in Skara Brae 1",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 816, "y1": 2271, "x2": 832, "y2": 2279 }],
- "go": { "x": 823, "y": 2264, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Cabbage Field in Skara Brae 1",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 816, "y1": 2271, "x2": 832, "y2": 2279 }],
+ "GoLocation": { "x": 823, "y": 2264, "z": 0 }
},
{
- "name": "A Cabbage Field in Skara Brae 2",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 816, "y1": 2281, "x2": 832, "y2": 2289 }],
- "go": { "x": 823, "y": 2274, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Cabbage Field in Skara Brae 2",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 816, "y1": 2281, "x2": 832, "y2": 2289 }],
+ "GoLocation": { "x": 823, "y": 2274, "z": 0 }
},
{
- "name": "A Wheatfield in Skara Brae 2",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 835, "y1": 2344, "x2": 851, "y2": 2360 }],
- "go": { "x": 843, "y": 2352, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Wheatfield in Skara Brae 2",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 835, "y1": 2344, "x2": 851, "y2": 2360 }],
+ "GoLocation": { "x": 843, "y": 2352, "z": 0 }
},
{
- "name": "A Cotton Field in Skara Brae",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 816, "y1": 2344, "x2": 832, "y2": 2368 }],
- "go": { "x": 823, "y": 2355, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "A Cotton Field in Skara Brae",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 816, "y1": 2344, "x2": 832, "y2": 2368 }],
+ "GoLocation": { "x": 823, "y": 2355, "z": 0 }
},
{
- "name": "FireIsleCasino",
- "type": "NoHousingRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 4038, "y1": 3303, "x2": 4098, "y2": 3367 }],
- "go": { "x": 4047, "y": 3371, "z": 0 }
+ "$type": "NoHousingRegion",
+ "Name": "FireIsleCasino",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 4038, "y1": 3303, "x2": 4098, "y2": 3367 }],
+ "GoLocation": { "x": 4047, "y": 3371, "z": 0 }
},
{
- "name": "Shrine of Compassion",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 1851, "y1": 867, "x2": 1865, "y2": 881 }],
- "go": { "x": 1856, "y": 872, "z": -1 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Compassion",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 1851, "y1": 867, "x2": 1865, "y2": 881 }],
+ "GoLocation": { "x": 1856, "y": 872, "z": -1 }
},
{
- "name": "Chaos Shrine",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 1456, "y1": 840, "x2": 1460, "y2": 847 }],
- "go": { "x": 1456, "y": 854, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Chaos Shrine",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 1456, "y1": 840, "x2": 1460, "y2": 847 }],
+ "GoLocation": { "x": 1456, "y": 854, "z": 0 }
},
{
- "name": "Shrine of Honesty",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 37,
- "rects": [{ "x1": 4209, "y1": 560, "x2": 4216, "y2": 568 }],
- "go": { "x": 4217, "y": 564, "z": 36 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Honesty",
+ "Map": "Trammel",
+ "Priority": 37,
+ "Area": [{ "x1": 4209, "y1": 560, "x2": 4216, "y2": 568 }],
+ "GoLocation": { "x": 4217, "y": 564, "z": 36 }
},
{
- "name": "Shrine of Honor",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 1721, "y1": 3525, "x2": 1729, "y2": 3531 }],
- "go": { "x": 1730, "y": 3528, "z": 3 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Honor",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 1721, "y1": 3525, "x2": 1729, "y2": 3531 }],
+ "GoLocation": { "x": 1730, "y": 3528, "z": 3 }
},
{
- "name": "Shrine of Humility",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 4270, "y1": 3694, "x2": 4279, "y2": 3703 }],
- "go": { "x": 4276, "y": 3699, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Humility",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 4270, "y1": 3694, "x2": 4279, "y2": 3703 }],
+ "GoLocation": { "x": 4276, "y": 3699, "z": 0 }
},
{
- "name": "Shrine of Justice",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 1297, "y1": 629, "x2": 1306, "y2": 638 }],
- "go": { "x": 1301, "y": 639, "z": 16 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Justice",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 1297, "y1": 629, "x2": 1306, "y2": 638 }],
+ "GoLocation": { "x": 1301, "y": 639, "z": 16 }
},
{
- "name": "Shrine of Sacrifice",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 3352, "y1": 286, "x2": 3358, "y2": 293 }],
- "go": { "x": 3355, "y": 299, "z": 9 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Sacrifice",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 3352, "y1": 286, "x2": 3358, "y2": 293 }],
+ "GoLocation": { "x": 3355, "y": 299, "z": 9 }
},
{
- "name": "Shrine of Spirituality",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Shrine of Spirituality",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [
{ "x1": 1590, "y1": 2485, "x2": 1600, "y2": 2496 },
{ "x1": 1599, "y1": 2488, "x2": 1609, "y2": 2493 }
],
- "go": { "x": 1589, "y": 2485, "z": 5 }
+ "GoLocation": { "x": 1589, "y": 2485, "z": 5 }
},
{
- "name": "Shrine of Valor",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 37,
- "rects": [{ "x1": 2488, "y1": 3928, "x2": 2497, "y2": 3939 }],
- "go": { "x": 2496, "y": 3932, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Valor",
+ "Map": "Trammel",
+ "Priority": 37,
+ "Area": [{ "x1": 2488, "y1": 3928, "x2": 2497, "y2": 3939 }],
+ "GoLocation": { "x": 2496, "y": 3932, "z": 0 }
},
{
- "name": "South Britannian Sea",
- "type": "BaseRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 688, "y1": 3700, "x2": 2100, "y2": 4080 }]
+ "$type": "BaseRegion",
+ "Name": "South Britannian Sea",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 688, "y1": 3700, "x2": 2100, "y2": 4080 }]
},
{
- "name": "Paroxysmus Exit",
- "type": "MondainRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 5620, "y1": 3032, "x2": 5630, "y2": 3042 }],
- "go": { "x": 5623, "y": 3038, "z": 15 }
+ "$type": "MondainRegion",
+ "Name": "Paroxysmus Exit",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 5620, "y1": 3032, "x2": 5630, "y2": 3042 }],
+ "GoLocation": { "x": 5623, "y": 3038, "z": 15 }
},
{
- "name": "Sanctuary Entrance",
- "type": "MondainRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 759, "y1": 1635, "x2": 771, "y2": 1647 }],
- "go": { "x": 762, "y": 1645, "z": 0 }
+ "$type": "MondainRegion",
+ "Name": "Sanctuary Entrance",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 759, "y1": 1635, "x2": 771, "y2": 1647 }],
+ "GoLocation": { "x": 762, "y": 1645, "z": 0 }
},
{
- "name": "Solen Hives",
- "type": "DungeonRegion",
- "map": "Trammel",
- "priority": 50,
- "rects": [{ "x1": 5640, "y1": 1776, "x2": 5935, "y2": 2039 }],
- "go": { "x": 5774, "y": 1896, "z": 20 }
+ "$type": "DungeonRegion",
+ "Name": "Solen Hives",
+ "Map": "Trammel",
+ "Priority": 50,
+ "Area": [{ "x1": 5640, "y1": 1776, "x2": 5935, "y2": 2039 }],
+ "GoLocation": { "x": 5774, "y": 1896, "z": 20 }
},
{
- "name": "Twisted Weald",
- "type": "MondainRegion",
- "map": "Ilshenar",
- "priority": 50,
- "music": "DreadHornArea",
- "rects": [{ "x1": 2107, "y1": 1145, "x2": 2254, "y2": 1280 }],
- "go": { "x": 2189, "y": 1253, "z": 0 },
- "entrance": { "x": 1450, "y": 1473 }
+ "$type": "MondainRegion",
+ "Name": "Twisted Weald",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Music": "DreadHornArea",
+ "Area": [{ "x1": 2107, "y1": 1145, "x2": 2254, "y2": 1280 }],
+ "GoLocation": { "x": 2189, "y": 1253, "z": 0 },
+ "Entrance": { "x": 1450, "y": 1473 }
},
{
- "name": "Twisted Weald Desert",
- "type": "TwistedWealdDesertRegion",
- "map": "Ilshenar",
- "parent": "Twisted Weald",
- "rects": [
+ "$type": "TwistedWealdDesertRegion",
+ "Name": "Twisted Weald Desert",
+ "Map": "Ilshenar",
+ "Parent": "Twisted Weald",
+ "Area": [
{ "x1": 2139, "y1": 1187, "x2": 2152, "y2": 1194 },
{ "x1": 2152, "y1": 1164, "x2": 2190, "y2": 1194 },
{ "x1": 2190, "y1": 1164, "x2": 2225, "y2": 1212 }
]
},
{
- "name": "Sheep Farm",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 1303, "y1": 1312, "x2": 1333, "y2": 1342 }]
+ "$type": "BaseRegion",
+ "Name": "Sheep Farm",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 1303, "y1": 1312, "x2": 1333, "y2": 1342 }]
},
{
- "name": "Shrine of Valor",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 37,
- "rects": [{ "x1": 512, "y1": 200, "x2": 544, "y2": 232 }],
- "go": { "x": 539, "y": 221, "z": -36 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Valor",
+ "Map": "Ilshenar",
+ "Priority": 37,
+ "Area": [{ "x1": 512, "y1": 200, "x2": 544, "y2": 232 }],
+ "GoLocation": { "x": 539, "y": 221, "z": -36 }
},
{
- "name": "Chaos Shrine",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 1736, "y1": 224, "x2": 1760, "y2": 248 }],
- "go": { "x": 1748, "y": 236, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Chaos Shrine",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 1736, "y1": 224, "x2": 1760, "y2": 248 }],
+ "GoLocation": { "x": 1748, "y": 236, "z": 0 }
},
{
- "name": "Shrine of Sacrifice",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 1160, "y1": 1280, "x2": 1192, "y2": 1296 }],
- "go": { "x": 1196, "y": 1290, "z": -25 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Sacrifice",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 1160, "y1": 1280, "x2": 1192, "y2": 1296 }],
+ "GoLocation": { "x": 1196, "y": 1290, "z": -25 }
},
{
- "name": "Shrine of Honesty",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 37,
- "rects": [{ "x1": 712, "y1": 1344, "x2": 736, "y2": 1376 }],
- "go": { "x": 725, "y": 1355, "z": -61 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Honesty",
+ "Map": "Ilshenar",
+ "Priority": 37,
+ "Area": [{ "x1": 712, "y1": 1344, "x2": 736, "y2": 1376 }],
+ "GoLocation": { "x": 725, "y": 1355, "z": -61 }
},
{
- "name": "Shrine of Compassion",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 1200, "y1": 448, "x2": 1232, "y2": 488 }],
- "go": { "x": 1223, "y": 475, "z": -16 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Compassion",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 1200, "y1": 448, "x2": 1232, "y2": 488 }],
+ "GoLocation": { "x": 1223, "y": 475, "z": -16 }
},
{
- "name": "Shrine of Spirituality",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 1520, "y1": 1336, "x2": 1536, "y2": 1352 }],
- "go": { "x": 1528, "y": 1344, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Spirituality",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 1520, "y1": 1336, "x2": 1536, "y2": 1352 }],
+ "GoLocation": { "x": 1528, "y": 1344, "z": 0 }
},
{
- "name": "Shrine of Humility",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 272, "y1": 1008, "x2": 296, "y2": 1024 }],
- "go": { "x": 284, "y": 1016, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Humility",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 272, "y1": 1008, "x2": 296, "y2": 1024 }],
+ "GoLocation": { "x": 284, "y": 1016, "z": 0 }
},
{
- "name": "Shrine of Honor",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 736, "y1": 712, "x2": 760, "y2": 744 }],
- "go": { "x": 748, "y": 728, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Honor",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 736, "y1": 712, "x2": 760, "y2": 744 }],
+ "GoLocation": { "x": 748, "y": 728, "z": 0 }
},
{
- "name": "Terort Skitas",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 11,
- "rects": [{ "x1": 528, "y1": 376, "x2": 624, "y2": 464 }],
- "go": { "x": 568, "y": 430, "z": 41 }
+ "$type": "BaseRegion",
+ "Name": "Terort Skitas",
+ "Map": "Ilshenar",
+ "Priority": 11,
+ "Area": [{ "x1": 528, "y1": 376, "x2": 624, "y2": 464 }],
+ "GoLocation": { "x": 568, "y": 430, "z": 41 }
},
{
- "name": "Pormir Harm",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "music": "Stones2",
- "rects": [{ "x1": 736, "y1": 480, "x2": 768, "y2": 504 }],
- "go": { "x": 745, "y": 492, "z": -66 }
+ "$type": "BaseRegion",
+ "Name": "Pormir Harm",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Music": "Stones2",
+ "Area": [{ "x1": 736, "y1": 480, "x2": 768, "y2": 504 }],
+ "GoLocation": { "x": 745, "y": 492, "z": -66 }
},
{
- "name": "Pormir Felwis",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 472, "y1": 336, "x2": 512, "y2": 368 }],
- "go": { "x": 472, "y": 352, "z": -78 }
+ "$type": "BaseRegion",
+ "Name": "Pormir Felwis",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 472, "y1": 336, "x2": 512, "y2": 368 }],
+ "GoLocation": { "x": 472, "y": 352, "z": -78 }
},
{
- "name": "Cyclops Temple",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 880, "y1": 1256, "x2": 936, "y2": 1368 }],
- "go": { "x": 901, "y": 1297, "z": -71 }
+ "$type": "BaseRegion",
+ "Name": "Cyclops Temple",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 880, "y1": 1256, "x2": 936, "y2": 1368 }],
+ "GoLocation": { "x": 901, "y": 1297, "z": -71 }
},
{
- "name": "Rat Fort",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 616, "y1": 792, "x2": 672, "y2": 848 }],
- "go": { "x": 642, "y": 845, "z": -58 }
+ "$type": "BaseRegion",
+ "Name": "Rat Fort",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 616, "y1": 792, "x2": 672, "y2": 848 }],
+ "GoLocation": { "x": 642, "y": 845, "z": -58 }
},
{
- "name": "Rat Fort Cellar",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 160, "y1": 736, "x2": 192, "y2": 768 }],
- "go": { "x": 171, "y": 750, "z": -28 }
+ "$type": "BaseRegion",
+ "Name": "Rat Fort Cellar",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 160, "y1": 736, "x2": 192, "y2": 768 }],
+ "GoLocation": { "x": 171, "y": 750, "z": -28 }
},
{
- "name": "Entrance to Central Ilshenar 1",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 1136, "y1": 584, "x2": 1152, "y2": 600 }],
- "go": { "x": 1141, "y": 594, "z": -80 }
+ "$type": "BaseRegion",
+ "Name": "Entrance to Central Ilshenar 1",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 1136, "y1": 584, "x2": 1152, "y2": 600 }],
+ "GoLocation": { "x": 1141, "y": 594, "z": -80 }
},
{
- "name": "Entrance to Central Ilshenar 2",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 1232, "y1": 576, "x2": 1240, "y2": 592 }],
- "go": { "x": 1238, "y": 583, "z": -19 }
+ "$type": "BaseRegion",
+ "Name": "Entrance to Central Ilshenar 2",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 1232, "y1": 576, "x2": 1240, "y2": 592 }],
+ "GoLocation": { "x": 1238, "y": 583, "z": -19 }
},
{
- "name": "Montor",
- "type": "TownRegion",
- "map": "Ilshenar",
- "priority": 41,
- "guardsDisabled": true,
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Montor",
+ "Map": "Ilshenar",
+ "Priority": 41,
+ "GuardsDisabled": true,
+ "Area": [
{ "x1": 1576, "y1": 272, "x2": 1720, "y2": 368 },
{ "x1": 1616, "y1": 200, "x2": 1696, "y2": 272 },
{ "x1": 1696, "y1": 144, "x2": 1736, "y2": 272 },
{ "x1": 1736, "y1": 144, "x2": 1768, "y2": 208 }
],
- "go": { "x": 1646, "y": 319, "z": 48 }
+ "GoLocation": { "x": 1646, "y": 319, "z": 48 }
},
{
- "name": "Termir Flam",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 40,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Termir Flam",
+ "Map": "Ilshenar",
+ "Priority": 40,
+ "Area": [
{ "x1": 1520, "y1": 368, "x2": 1752, "y2": 496 },
{ "x1": 1520, "y1": 296, "x2": 1576, "y2": 368 },
{ "x1": 1752, "y1": 440, "x2": 1776, "y2": 480 }
],
- "go": { "x": 1636, "y": 432, "z": 0 }
+ "GoLocation": { "x": 1636, "y": 432, "z": 0 }
},
{
- "name": "Ancient Citadel",
- "type": "TownRegion",
- "map": "Ilshenar",
- "priority": 11,
- "guardsDisabled": true,
- "rects": [{ "x1": 1448, "y1": 496, "x2": 1552, "y2": 600 }],
- "go": { "x": 1516, "y": 542, "z": 85 }
+ "$type": "TownRegion",
+ "Name": "Ancient Citadel",
+ "Map": "Ilshenar",
+ "Priority": 11,
+ "GuardsDisabled": true,
+ "Area": [{ "x1": 1448, "y1": 496, "x2": 1552, "y2": 600 }],
+ "GoLocation": { "x": 1516, "y": 542, "z": 85 }
},
{
- "name": "Alexandretta's Bowl",
- "type": "TownRegion",
- "map": "Ilshenar",
- "priority": 41,
- "guardsDisabled": true,
- "rects": [{ "x1": 1272, "y1": 352, "x2": 1440, "y2": 592 }],
- "go": { "x": 1396, "y": 432, "z": -17 }
+ "$type": "TownRegion",
+ "Name": "Alexandretta's Bowl",
+ "Map": "Ilshenar",
+ "Priority": 41,
+ "GuardsDisabled": true,
+ "Area": [{ "x1": 1272, "y1": 352, "x2": 1440, "y2": 592 }],
+ "GoLocation": { "x": 1396, "y": 432, "z": -17 }
},
{
- "name": "Entrance to Rock Dungeon",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 2,
- "rects": [{ "x1": 1784, "y1": 560, "x2": 1792, "y2": 576 }],
- "go": { "x": 1784, "y": 568, "z": 100 }
+ "$type": "BaseRegion",
+ "Name": "Entrance to Rock Dungeon",
+ "Map": "Ilshenar",
+ "Priority": 2,
+ "Area": [{ "x1": 1784, "y1": 560, "x2": 1792, "y2": 576 }],
+ "GoLocation": { "x": 1784, "y": 568, "z": 100 }
},
{
- "name": "Rock Dungeon",
- "type": "DungeonRegion",
- "map": "Ilshenar",
- "priority": 2,
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Rock Dungeon",
+ "Map": "Ilshenar",
+ "Priority": 2,
+ "Area": [
{ "x1": 2176, "y1": 288, "x2": 2200, "y2": 328 },
{ "x1": 2088, "y1": 8, "x2": 2248, "y2": 184 }
],
- "go": { "x": 2187, "y": 316, "z": -7 },
- "entrance": { "x": 1788, "y": 571 }
+ "GoLocation": { "x": 2187, "y": 316, "z": -7 },
+ "Entrance": { "x": 1788, "y": 571 }
},
{
- "name": "Lenmir Anfinmotas",
- "type": "TownRegion",
- "map": "Ilshenar",
- "priority": 5,
- "guardsDisabled": true,
- "rects": [{ "x1": 1560, "y1": 792, "x2": 1792, "y2": 912 }],
- "go": { "x": 1673, "y": 876, "z": -25 }
+ "$type": "TownRegion",
+ "Name": "Lenmir Anfinmotas",
+ "Map": "Ilshenar",
+ "Priority": 5,
+ "GuardsDisabled": true,
+ "Area": [{ "x1": 1560, "y1": 792, "x2": 1792, "y2": 912 }],
+ "GoLocation": { "x": 1673, "y": 876, "z": -25 }
},
{
- "name": "Entrance to Spider Cave",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 2,
- "rects": [{ "x1": 1400, "y1": 896, "x2": 1440, "y2": 920 }],
- "go": { "x": 1418, "y": 915, "z": -19 }
+ "$type": "BaseRegion",
+ "Name": "Entrance to Spider Cave",
+ "Map": "Ilshenar",
+ "Priority": 2,
+ "Area": [{ "x1": 1400, "y1": 896, "x2": 1440, "y2": 920 }],
+ "GoLocation": { "x": 1418, "y": 915, "z": -19 }
},
{
- "name": "Spider Cave",
- "type": "DungeonRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Spider Cave",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [
{ "x1": 1752, "y1": 952, "x2": 1864, "y2": 1000 },
{ "x1": 1480, "y1": 864, "x2": 1528, "y2": 896 }
],
- "go": { "x": 1785, "y": 991, "z": -28 },
- "entrance": { "x": 1420, "y": 910 }
+ "GoLocation": { "x": 1785, "y": 991, "z": -28 },
+ "Entrance": { "x": 1420, "y": 910 }
},
{
- "name": "Twin Oaks",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 48,
- "rects": [{ "x1": 1536, "y1": 1032, "x2": 1584, "y2": 1072 }],
- "go": { "x": 1560, "y": 1052, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Twin Oaks",
+ "Map": "Ilshenar",
+ "Priority": 48,
+ "Area": [{ "x1": 1536, "y1": 1032, "x2": 1584, "y2": 1072 }],
+ "GoLocation": { "x": 1560, "y": 1052, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Ilshenar",
- "parent": "Twin Oaks",
- "logoutDelay": false,
- "rects": [{ "x1": 1546, "y1": 1037, "x2": 1567, "y2": 1057 }]
+ "$type": "BaseRegion",
+ "Map": "Ilshenar",
+ "Parent": "Twin Oaks",
+ "LogoutDelay": false,
+ "Area": [{ "x1": 1546, "y1": 1037, "x2": 1567, "y2": 1057 }]
},
{
- "name": "Reg Volon",
- "type": "TownRegion",
- "map": "Ilshenar",
- "priority": 50,
- "guardsDisabled": true,
- "rects": [{ "x1": 1328, "y1": 1008, "x2": 1408, "y2": 1120 }],
- "go": { "x": 1363, "y": 1055, "z": -13 }
+ "$type": "TownRegion",
+ "Name": "Reg Volon",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "GuardsDisabled": true,
+ "Area": [{ "x1": 1328, "y1": 1008, "x2": 1408, "y2": 1120 }],
+ "GoLocation": { "x": 1363, "y": 1055, "z": -13 }
},
{
- "name": "Entrance Spectre Dungeon",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 2,
- "rects": [{ "x1": 1360, "y1": 1030, "x2": 1366, "y2": 1034 }],
- "go": { "x": 1363, "y": 1033, "z": -8 }
+ "$type": "BaseRegion",
+ "Name": "Entrance Spectre Dungeon",
+ "Map": "Ilshenar",
+ "Priority": 2,
+ "Area": [{ "x1": 1360, "y1": 1030, "x2": 1366, "y2": 1034 }],
+ "GoLocation": { "x": 1363, "y": 1033, "z": -8 }
},
{
- "name": "Spectre Dungeon",
- "type": "DungeonRegion",
- "map": "Ilshenar",
- "priority": 2,
- "rects": [{ "x1": 1936, "y1": 1000, "x2": 2032, "y2": 1120 }],
- "go": { "x": 1983, "y": 1107, "z": -18 },
- "entrance": { "x": 1362, "y": 1031 }
+ "$type": "DungeonRegion",
+ "Name": "Spectre Dungeon",
+ "Map": "Ilshenar",
+ "Priority": 2,
+ "Area": [{ "x1": 1936, "y1": 1000, "x2": 2032, "y2": 1120 }],
+ "GoLocation": { "x": 1983, "y": 1107, "z": -18 },
+ "Entrance": { "x": 1362, "y": 1031 }
},
{
- "name": "Entrance Blood Dungeon",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 2,
- "rects": [{ "x1": 1736, "y1": 1224, "x2": 1760, "y2": 1240 }],
- "go": { "x": 1747, "y": 1227, "z": -1 }
+ "$type": "BaseRegion",
+ "Name": "Entrance Blood Dungeon",
+ "Map": "Ilshenar",
+ "Priority": 2,
+ "Area": [{ "x1": 1736, "y1": 1224, "x2": 1760, "y2": 1240 }],
+ "GoLocation": { "x": 1747, "y": 1227, "z": -1 }
},
{
- "name": "Blood Dungeon",
- "type": "DungeonRegion",
- "map": "Ilshenar",
- "priority": 2,
- "rects": [{ "x1": 2032, "y1": 808, "x2": 2200, "y2": 1064 }],
- "go": { "x": 2114, "y": 839, "z": -28 },
- "entrance": { "x": 1745, "y": 1236 }
+ "$type": "DungeonRegion",
+ "Name": "Blood Dungeon",
+ "Map": "Ilshenar",
+ "Priority": 2,
+ "Area": [{ "x1": 2032, "y1": 808, "x2": 2200, "y2": 1064 }],
+ "GoLocation": { "x": 2114, "y": 839, "z": -28 },
+ "Entrance": { "x": 1745, "y": 1236 }
},
{
- "name": "Entrance Mushroom Cave",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 2,
- "rects": [{ "x1": 1448, "y1": 1320, "x2": 1464, "y2": 1336 }],
- "go": { "x": 1460, "y": 1329, "z": -25 }
+ "$type": "BaseRegion",
+ "Name": "Entrance Mushroom Cave",
+ "Map": "Ilshenar",
+ "Priority": 2,
+ "Area": [{ "x1": 1448, "y1": 1320, "x2": 1464, "y2": 1336 }],
+ "GoLocation": { "x": 1460, "y": 1329, "z": -25 }
},
{
- "name": "Mushroom Cave",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 11,
- "rects": [{ "x1": 1392, "y1": 1448, "x2": 1496, "y2": 1568 }],
- "go": { "x": 1476, "y": 1494, "z": -28 }
+ "$type": "BaseRegion",
+ "Name": "Mushroom Cave",
+ "Map": "Ilshenar",
+ "Priority": 11,
+ "Area": [{ "x1": 1392, "y1": 1448, "x2": 1496, "y2": 1568 }],
+ "GoLocation": { "x": 1476, "y": 1494, "z": -28 }
},
{
- "name": "Lake Shire",
- "type": "TownRegion",
- "map": "Ilshenar",
- "priority": 48,
- "guardsDisabled": true,
- "rects": [{ "x1": 1144, "y1": 1072, "x2": 1264, "y2": 1200 }],
- "go": { "x": 1212, "y": 1144, "z": -25 }
+ "$type": "TownRegion",
+ "Name": "Lake Shire",
+ "Map": "Ilshenar",
+ "Priority": 48,
+ "GuardsDisabled": true,
+ "Area": [{ "x1": 1144, "y1": 1072, "x2": 1264, "y2": 1200 }],
+ "GoLocation": { "x": 1212, "y": 1144, "z": -25 }
},
{
- "name": "Entrance Rat Cave",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 2,
- "rects": [{ "x1": 1024, "y1": 1152, "x2": 1032, "y2": 1160 }],
- "go": { "x": 1031, "y": 1154, "z": -24 }
+ "$type": "BaseRegion",
+ "Name": "Entrance Rat Cave",
+ "Map": "Ilshenar",
+ "Priority": 2,
+ "Area": [{ "x1": 1024, "y1": 1152, "x2": 1032, "y2": 1160 }],
+ "GoLocation": { "x": 1031, "y": 1154, "z": -24 }
},
{
- "name": "Rat Cave Territory",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 2,
- "rects": [{ "x1": 1144, "y1": 1440, "x2": 1368, "y2": 1584 }],
- "go": { "x": 1345, "y": 1511, "z": -3 }
+ "$type": "BaseRegion",
+ "Name": "Rat Cave Territory",
+ "Map": "Ilshenar",
+ "Priority": 2,
+ "Area": [{ "x1": 1144, "y1": 1440, "x2": 1368, "y2": 1584 }],
+ "GoLocation": { "x": 1345, "y": 1511, "z": -3 }
},
{
- "name": "Ratman Cave",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 2,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Ratman Cave",
+ "Map": "Ilshenar",
+ "Priority": 2,
+ "Area": [
{ "x1": 1264, "y1": 1448, "x2": 1360, "y2": 1576 },
{ "x1": 1152, "y1": 1456, "x2": 1256, "y2": 1560 }
],
- "go": { "x": 1348, "y": 1511, "z": -3 }
+ "GoLocation": { "x": 1348, "y": 1511, "z": -3 }
},
{
- "name": "Bet-Lem Reg",
- "type": "TownRegion",
- "map": "Ilshenar",
- "priority": 48,
- "guardsDisabled": true,
- "rects": [{ "x1": 1232, "y1": 936, "x2": 1272, "y2": 984 }],
- "go": { "x": 1238, "y": 974, "z": -34 }
+ "$type": "TownRegion",
+ "Name": "Bet-Lem Reg",
+ "Map": "Ilshenar",
+ "Priority": 48,
+ "GuardsDisabled": true,
+ "Area": [{ "x1": 1232, "y1": 936, "x2": 1272, "y2": 984 }],
+ "GoLocation": { "x": 1238, "y": 974, "z": -34 }
},
{
- "name": "Mistas",
- "type": "TownRegion",
- "map": "Ilshenar",
- "priority": 48,
- "guardsDisabled": true,
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Mistas",
+ "Map": "Ilshenar",
+ "Priority": 48,
+ "GuardsDisabled": true,
+ "Area": [
{ "x1": 744, "y1": 984, "x2": 912, "y2": 1152 },
{ "x1": 744, "y1": 1152, "x2": 792, "y2": 1176 }
],
- "go": { "x": 818, "y": 1073, "z": -30 }
+ "GoLocation": { "x": 818, "y": 1073, "z": -30 }
},
{
- "type": "BaseRegion",
- "map": "Ilshenar",
- "parent": "Mistas",
- "logoutDelay": false,
- "rects": [{ "x1": 752, "y1": 1131, "x2": 768, "y2": 1152 }]
+ "$type": "BaseRegion",
+ "Map": "Ilshenar",
+ "Parent": "Mistas",
+ "LogoutDelay": false,
+ "Area": [{ "x1": 752, "y1": 1131, "x2": 768, "y2": 1152 }]
},
{
- "name": "Entrance Serpentine Passage",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 2,
- "rects": [{ "x1": 800, "y1": 864, "x2": 816, "y2": 880 }],
- "go": { "x": 808, "y": 872, "z": 5 }
+ "$type": "BaseRegion",
+ "Name": "Entrance Serpentine Passage",
+ "Map": "Ilshenar",
+ "Priority": 2,
+ "Area": [{ "x1": 800, "y1": 864, "x2": 816, "y2": 880 }],
+ "GoLocation": { "x": 808, "y": 872, "z": 5 }
},
{
- "name": "Serpentine Passage",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 11,
- "rects": [{ "x1": 368, "y1": 1488, "x2": 560, "y2": 1592 }],
- "go": { "x": 533, "y": 1526, "z": -25 }
+ "$type": "BaseRegion",
+ "Name": "Serpentine Passage",
+ "Map": "Ilshenar",
+ "Priority": 11,
+ "Area": [{ "x1": 368, "y1": 1488, "x2": 560, "y2": 1592 }],
+ "GoLocation": { "x": 533, "y": 1526, "z": -25 }
},
{
- "name": "Ankh Dungeon",
- "type": "DungeonRegion",
- "map": "Ilshenar",
- "priority": 2,
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Ankh Dungeon",
+ "Map": "Ilshenar",
+ "Priority": 2,
+ "Area": [
{ "x1": 0, "y1": 1248, "x2": 176, "y2": 1592 },
{ "x1": 568, "y1": 1152, "x2": 584, "y2": 1160 }
],
- "go": { "x": 156, "y": 1484, "z": -28 },
- "entrance": { "x": 668, "y": 928 }
+ "GoLocation": { "x": 156, "y": 1484, "z": -28 },
+ "Entrance": { "x": 668, "y": 928 }
},
{
- "name": "Kirin passage",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 11,
- "rects": [{ "x1": 0, "y1": 800, "x2": 192, "y2": 1200 }],
- "go": { "x": 11, "y": 881, "z": -29 }
+ "$type": "BaseRegion",
+ "Name": "Kirin passage",
+ "Map": "Ilshenar",
+ "Priority": 11,
+ "Area": [{ "x1": 0, "y1": 800, "x2": 192, "y2": 1200 }],
+ "GoLocation": { "x": 11, "y": 881, "z": -29 }
},
{
- "name": "Entrance Lizards Passage",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 2,
- "rects": [{ "x1": 312, "y1": 1328, "x2": 320, "y2": 1336 }],
- "go": { "x": 314, "y": 1331, "z": -37 }
+ "$type": "BaseRegion",
+ "Name": "Entrance Lizards Passage",
+ "Map": "Ilshenar",
+ "Priority": 2,
+ "Area": [{ "x1": 312, "y1": 1328, "x2": 320, "y2": 1336 }],
+ "GoLocation": { "x": 314, "y": 1331, "z": -37 }
},
{
- "name": "Wisp Dungeon",
- "type": "DungeonRegion",
- "map": "Ilshenar",
- "priority": 2,
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Wisp Dungeon",
+ "Map": "Ilshenar",
+ "Priority": 2,
+ "Area": [
{ "x1": 616, "y1": 1480, "x2": 704, "y2": 1576 },
{ "x1": 704, "y1": 1544, "x2": 728, "y2": 1576 },
{ "x1": 704, "y1": 1480, "x2": 744, "y2": 1520 },
@@ -2924,173 +2924,173 @@
{ "x1": 744, "y1": 1504, "x2": 816, "y2": 1584 },
{ "x1": 744, "y1": 1456, "x2": 800, "y2": 1504 }
],
- "go": { "x": 628, "y": 1524, "z": -28 },
- "entrance": { "x": 652, "y": 1301 }
+ "GoLocation": { "x": 628, "y": 1524, "z": -28 },
+ "Entrance": { "x": 652, "y": 1301 }
},
{
- "name": "Lizard Passage",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 11,
- "rects": [{ "x1": 256, "y1": 1560, "x2": 336, "y2": 1592 }],
- "go": { "x": 285, "y": 1585, "z": -27 }
+ "$type": "BaseRegion",
+ "Name": "Lizard Passage",
+ "Map": "Ilshenar",
+ "Priority": 11,
+ "Area": [{ "x1": 256, "y1": 1560, "x2": 336, "y2": 1592 }],
+ "GoLocation": { "x": 285, "y": 1585, "z": -27 }
},
{
- "name": "Exodus Dungeon",
- "type": "DungeonRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 1832, "y1": 16, "x2": 2080, "y2": 216 }],
- "go": { "x": 1966, "y": 117, "z": -28 },
- "entrance": { "x": 827, "y": 777 }
+ "$type": "DungeonRegion",
+ "Name": "Exodus Dungeon",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 1832, "y1": 16, "x2": 2080, "y2": 216 }],
+ "GoLocation": { "x": 1966, "y": 117, "z": -28 },
+ "Entrance": { "x": 827, "y": 777 }
},
{
- "name": "Lizard Man's Huts",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 48,
- "rects": [{ "x1": 264, "y1": 1280, "x2": 320, "y2": 1376 }],
- "go": { "x": 298, "y": 1336, "z": -24 }
+ "$type": "BaseRegion",
+ "Name": "Lizard Man's Huts",
+ "Map": "Ilshenar",
+ "Priority": 48,
+ "Area": [{ "x1": 264, "y1": 1280, "x2": 320, "y2": 1376 }],
+ "GoLocation": { "x": 298, "y": 1336, "z": -24 }
},
{
- "name": "Nox Tereg",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 344, "y1": 1112, "x2": 488, "y2": 1240 }],
- "go": { "x": 416, "y": 1176, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Nox Tereg",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 344, "y1": 1112, "x2": 488, "y2": 1240 }],
+ "GoLocation": { "x": 416, "y": 1176, "z": 0 }
},
{
- "name": "Sorcerer's Dungeon",
- "type": "DungeonRegion",
- "map": "Ilshenar",
- "priority": 2,
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Sorcerer's Dungeon",
+ "Map": "Ilshenar",
+ "Priority": 2,
+ "Area": [
{ "x1": 368, "y1": 0, "x2": 488, "y2": 120 },
{ "x1": 200, "y1": 0, "x2": 368, "y2": 112 },
{ "x1": 256, "y1": 120, "x2": 288, "y2": 152 },
{ "x1": 48, "y1": 0, "x2": 184, "y2": 136 },
{ "x1": 224, "y1": 112, "x2": 248, "y2": 144 }
],
- "go": { "x": 429, "y": 108, "z": -28 },
- "entrance": { "x": 546, "y": 455 }
+ "GoLocation": { "x": 429, "y": 108, "z": -28 },
+ "Entrance": { "x": 546, "y": 455 }
},
{
- "name": "Entrance Ancient Lair",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 936, "y1": 488, "x2": 944, "y2": 496 }],
- "go": { "x": 940, "y": 503, "z": -30 }
+ "$type": "BaseRegion",
+ "Name": "Entrance Ancient Lair",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 936, "y1": 488, "x2": 944, "y2": 496 }],
+ "GoLocation": { "x": 940, "y": 503, "z": -30 }
},
{
- "name": "Ancient Lair",
- "type": "DungeonRegion",
- "map": "Ilshenar",
- "priority": 2,
- "rects": [{ "x1": 24, "y1": 664, "x2": 136, "y2": 760 }],
- "go": { "x": 86, "y": 744, "z": -28 },
- "entrance": { "x": 938, "y": 494 }
+ "$type": "DungeonRegion",
+ "Name": "Ancient Lair",
+ "Map": "Ilshenar",
+ "Priority": 2,
+ "Area": [{ "x1": 24, "y1": 664, "x2": 136, "y2": 760 }],
+ "GoLocation": { "x": 86, "y": 744, "z": -28 },
+ "Entrance": { "x": 938, "y": 494 }
},
{
- "name": "Gypsy Camp",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 480, "y1": 520, "x2": 536, "y2": 568 }],
- "go": { "x": 504, "y": 536, "z": -60 }
+ "$type": "BaseRegion",
+ "Name": "Gypsy Camp",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 480, "y1": 520, "x2": 536, "y2": 568 }],
+ "GoLocation": { "x": 504, "y": 536, "z": -60 }
},
{
- "name": "Gypsy Camp 1",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 1480, "y1": 600, "x2": 1536, "y2": 640 }],
- "go": { "x": 1508, "y": 620, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Gypsy Camp 1",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 1480, "y1": 600, "x2": 1536, "y2": 640 }],
+ "GoLocation": { "x": 1508, "y": 620, "z": 0 }
},
{
- "name": "Gypsy Camp 2",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 48,
- "rects": [{ "x1": 1592, "y1": 528, "x2": 1632, "y2": 568 }],
- "go": { "x": 1612, "y": 548, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Gypsy Camp 2",
+ "Map": "Ilshenar",
+ "Priority": 48,
+ "Area": [{ "x1": 1592, "y1": 528, "x2": 1632, "y2": 568 }],
+ "GoLocation": { "x": 1612, "y": 548, "z": 0 }
},
{
- "type": "BaseRegion",
- "map": "Ilshenar",
- "parent": "Gypsy Camp 2",
- "logoutDelay": false,
- "rects": [{ "x1": 1617, "y1": 546, "x2": 1629, "y2": 554 }]
+ "$type": "BaseRegion",
+ "Map": "Ilshenar",
+ "Parent": "Gypsy Camp 2",
+ "LogoutDelay": false,
+ "Area": [{ "x1": 1617, "y1": 546, "x2": 1629, "y2": 554 }]
},
{
- "name": "Juka Camp",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 1192, "y1": 656, "x2": 1304, "y2": 792 }],
- "go": { "x": 1248, "y": 724, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Juka Camp",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 1192, "y1": 656, "x2": 1304, "y2": 792 }],
+ "GoLocation": { "x": 1248, "y": 724, "z": 0 }
},
{
- "name": "Gypsy Camp 3",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 928, "y1": 408, "x2": 968, "y2": 448 }],
- "go": { "x": 948, "y": 428, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Gypsy Camp 3",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 928, "y1": 408, "x2": 968, "y2": 448 }],
+ "GoLocation": { "x": 948, "y": 428, "z": 0 }
},
{
- "name": "Gypsy Camp 4",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 840, "y1": 440, "x2": 880, "y2": 488 }],
- "go": { "x": 860, "y": 464, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Gypsy Camp 4",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 840, "y1": 440, "x2": 880, "y2": 488 }],
+ "GoLocation": { "x": 860, "y": 464, "z": 0 }
},
{
- "name": "Gypsy Camp 5",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Gypsy Camp 5",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [
{ "x1": 1216, "y1": 520, "x2": 1240, "y2": 568 },
{ "x1": 1248, "y1": 568, "x2": 1264, "y2": 592 }
],
- "go": { "x": 1228, "y": 544, "z": 0 }
+ "GoLocation": { "x": 1228, "y": 544, "z": 0 }
},
{
- "name": "Gypsy Camp 6",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 1376, "y1": 416, "x2": 1408, "y2": 448 }],
- "go": { "x": 1392, "y": 432, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Gypsy Camp 6",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 1376, "y1": 416, "x2": 1408, "y2": 448 }],
+ "GoLocation": { "x": 1392, "y": 432, "z": 0 }
},
{
- "name": "Lord Blackthorn's Ilshenar Castle",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Lord Blackthorn's Ilshenar Castle",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [
{ "x1": 1048, "y1": 616, "x2": 1120, "y2": 688 },
{ "x1": 1080, "y1": 688, "x2": 1104, "y2": 712 }
],
- "go": { "x": 1084, "y": 652, "z": 0 }
+ "GoLocation": { "x": 1084, "y": 652, "z": 0 }
},
{
- "name": "Shrine of the Virtues",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 1072, "y1": 376, "x2": 1136, "y2": 432 }],
- "go": { "x": 1104, "y": 404, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of the Virtues",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 1072, "y1": 376, "x2": 1136, "y2": 432 }],
+ "GoLocation": { "x": 1104, "y": 404, "z": 0 }
},
{
- "name": "Pass of Karnaugh",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Pass of Karnaugh",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [
{ "x1": 848, "y1": 288, "x2": 968, "y2": 336 },
{ "x1": 936, "y1": 232, "x2": 968, "y2": 288 },
{ "x1": 968, "y1": 248, "x2": 1088, "y2": 304 },
@@ -3098,138 +3098,137 @@
{ "x1": 1048, "y1": 304, "x2": 1184, "y2": 360 },
{ "x1": 1184, "y1": 336, "x2": 1248, "y2": 392 }
],
- "go": { "x": 908, "y": 312, "z": 0 }
+ "GoLocation": { "x": 908, "y": 312, "z": 0 }
},
{
- "name": "Vinculum Inn",
- "type": "BaseRegion",
- "map": "Ilshenar",
- "priority": 50,
- "rects": [{ "x1": 658, "y1": 654, "x2": 671, "y2": 678 }],
- "go": { "x": 656, "y": 666, "z": -36 }
+ "$type": "BaseRegion",
+ "Name": "Vinculum Inn",
+ "Map": "Ilshenar",
+ "Priority": 50,
+ "Area": [{ "x1": 658, "y1": 654, "x2": 671, "y2": 678 }],
+ "GoLocation": { "x": 656, "y": 666, "z": -36 }
},
{
- "type": "BaseRegion",
- "map": "Ilshenar",
- "parent": "Vinculum Inn",
- "logoutDelay": false,
- "rects": [{ "x1": 658, "y1": 654, "x2": 671, "y2": 678 }]
+ "$type": "BaseRegion",
+ "Map": "Ilshenar",
+ "Parent": "Vinculum Inn",
+ "LogoutDelay": false,
+ "Area": [{ "x1": 658, "y1": 654, "x2": 671, "y2": 678 }]
},
{
- "name": "Gravewater Dock",
- "type": "MondainRegion",
- "map": "Malas",
- "priority": 50,
- "rects": [{ "x1": 1692, "y1": 1551, "x2": 1708, "y2": 1567 }]
+ "$type": "MondainRegion",
+ "Name": "Gravewater Dock",
+ "Map": "Malas",
+ "Priority": 50,
+ "Area": [{ "x1": 1692, "y1": 1551, "x2": 1708, "y2": 1567 }]
},
{
- "name": "Bedlam",
- "type": "MondainRegion",
- "map": "Malas",
- "priority": 50,
- "music": "GrizzleDungeon",
- "rects": [{ "x1": 80, "y1": 1590, "x2": 210, "y2": 1690 }],
- "go": { "x": 117, "y": 1681, "z": 0 },
- "entrance": { "x": 2068, "y": 1372 }
+ "$type": "MondainRegion",
+ "Name": "Bedlam",
+ "Map": "Malas",
+ "Priority": 50,
+ "Music": "GrizzleDungeon",
+ "Area": [{ "x1": 80, "y1": 1590, "x2": 210, "y2": 1690 }],
+ "GoLocation": { "x": 117, "y": 1681, "z": 0 },
+ "Entrance": { "x": 2068, "y": 1372 }
},
{
- "name": "Labyrinth",
- "type": "MondainRegion",
- "map": "Malas",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 255, "y1": 1791, "x2": 511, "y2": 2047 }],
- "go": { "x": 331, "y": 1973, "z": 0 },
- "entrance": { "x": 1733, "y": 978 }
+ "$type": "MondainRegion",
+ "Name": "Labyrinth",
+ "Map": "Malas",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 255, "y1": 1791, "x2": 511, "y2": 2047 }],
+ "GoLocation": { "x": 331, "y": 1973, "z": 0 },
+ "Entrance": { "x": 1733, "y": 978 }
},
{
- "name": "TheCitadel",
- "type": "MondainRegion",
- "map": "Malas",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 65, "y1": 1865, "x2": 195, "y2": 1990 }],
- "go": { "x": 106, "y": 1884, "z": 0 },
- "entrance": { "x": 1349, "y": 769 }
+ "$type": "MondainRegion",
+ "Name": "TheCitadel",
+ "Map": "Malas",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 65, "y1": 1865, "x2": 195, "y2": 1990 }],
+ "GoLocation": { "x": 106, "y": 1884, "z": 0 },
+ "Entrance": { "x": 1349, "y": 769 }
},
{
- "name": "Luna",
- "type": "TownRegion",
- "map": "Malas",
- "priority": 50,
- "music": "tavern04",
- "rects": [{ "x1": 945, "y1": 490, "x2": 1036, "y2": 551 }],
- "go": { "x": 989, "y": 520, "z": -50 }
+ "$type": "TownRegion",
+ "Name": "Luna",
+ "Map": "Malas",
+ "Priority": 50,
+ "Music": "tavern04",
+ "Area": [{ "x1": 945, "y1": 490, "x2": 1036, "y2": 551 }],
+ "GoLocation": { "x": 989, "y": 520, "z": -50 }
},
{
- "type": "BaseRegion",
- "map": "Malas",
- "parent": "Luna",
- "logoutDelay": false,
- "rects": [{ "x1": 986, "y1": 509, "x2": 1004, "y2": 530 }]
+ "$type": "BaseRegion",
+ "Map": "Malas",
+ "Parent": "Luna",
+ "LogoutDelay": false,
+ "Area": [{ "x1": 986, "y1": 509, "x2": 1004, "y2": 530 }]
},
{
- "name": "Umbra",
- "type": "TownRegion",
- "map": "Malas",
- "priority": 50,
- "rects": [
+ "$type": "TownRegion",
+ "Name": "Umbra",
+ "Map": "Malas",
+ "Priority": 50,
+ "Area": [
{ "x1": 2042, "y1": 1265, "x2": 2090, "y2": 1278 },
{ "x1": 1960, "y1": 1278, "x2": 2106, "y2": 1413 },
{ "x1": 2004, "y1": 1413, "x2": 2040, "y2": 1419 }
],
- "go": { "x": 2049, "y": 1344, "z": -85 }
+ "GoLocation": { "x": 2049, "y": 1344, "z": -85 }
},
{
- "type": "BaseRegion",
- "map": "Malas",
- "parent": "Umbra",
- "logoutDelay": false,
- "rects": [{ "x1": 2031, "y1": 1311, "x2": 2046, "y2": 1325 }]
+ "$type": "BaseRegion",
+ "Map": "Malas",
+ "Parent": "Umbra",
+ "LogoutDelay": false,
+ "Area": [{ "x1": 2031, "y1": 1311, "x2": 2046, "y2": 1325 }]
},
{
- "name": "Doom",
- "type": "DungeonRegion",
- "map": "Malas",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 256, "y1": 0, "x2": 512, "y2": 304 }],
- "go": { "x": 2366, "y": 1268, "z": -85 },
- "entrance": { "x": 2357, "y": 1268 }
+ "$type": "DungeonRegion",
+ "Name": "Doom",
+ "Map": "Malas",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 256, "y1": 0, "x2": 512, "y2": 304 }],
+ "GoLocation": { "x": 2366, "y": 1268, "z": -85 },
+ "Entrance": { "x": 2357, "y": 1268 }
},
{
- "name": "Doom Gauntlet",
- "type": "DungeonRegion",
- "map": "Malas",
- "priority": 50,
- "music": "Dungeon9",
- "rects": [{ "x1": 256, "y1": 304, "x2": 512, "y2": 560 }],
- "go": { "x": 429, "y": 340, "z": -1 },
- "entrance": { "x": 2357, "y": 1268 }
+ "$type": "DungeonRegion",
+ "Name": "Doom Gauntlet",
+ "Map": "Malas",
+ "Priority": 50,
+ "Music": "Dungeon9",
+ "Area": [{ "x1": 256, "y1": 304, "x2": 512, "y2": 560 }],
+ "GoLocation": { "x": 429, "y": 340, "z": -1 },
+ "Entrance": { "x": 2357, "y": 1268 }
},
{
- "name": "Orc Fortress",
- "type": "BaseRegion",
- "map": "Malas",
- "priority": 50,
- "rects": [{ "x1": 1295, "y1": 1189, "x2": 1395, "y2": 1294 }],
- "go": { "x": 1340, "y": 1226, "z": -90 }
+ "$type": "BaseRegion",
+ "Name": "Orc Fortress",
+ "Map": "Malas",
+ "Priority": 50,
+ "Area": [{ "x1": 1295, "y1": 1189, "x2": 1395, "y2": 1294 }],
+ "GoLocation": { "x": 1340, "y": 1226, "z": -90 }
},
{
- "name": "Crystal Cave Entrance",
- "type": "NoHousingRegion",
- "map": "Malas",
- "priority": 50,
- "rects": [{ "x1": 1176, "y1": 509, "x2": 1219, "y2": 522 }],
- "go": { "x": 1195, "y": 515, "z": -90 }
+ "$type": "NoHousingRegion",
+ "Name": "Crystal Cave Entrance",
+ "Map": "Malas",
+ "Priority": 50,
+ "Area": [{ "x1": 1176, "y1": 509, "x2": 1219, "y2": 522 }],
+ "GoLocation": { "x": 1195, "y": 515, "z": -90 }
},
{
- "name": "Protected Island",
- "type": "NoHousingRegion",
- "map": "Malas",
- "priority": 50,
- "smartNoHousing": true,
- "rects": [
+ "$type": "NoHousingRegion",
+ "Name": "Protected Island",
+ "Map": "Malas",
+ "Priority": 50,
+ "Area": [
{ "x1": 1976, "y1": 101, "x2": 2448, "y2": 345 },
{ "x1": 2051, "y1": 345, "x2": 2356, "y2": 382 },
{ "x1": 2026, "y1": 345, "x2": 2051, "y2": 370 },
@@ -3237,133 +3236,130 @@
{ "x1": 2254, "y1": 382, "x2": 2352, "y2": 420 },
{ "x1": 2222, "y1": 382, "x2": 2254, "y2": 402 }
],
- "go": { "x": 2104, "y": 380, "z": -90 }
+ "GoLocation": { "x": 2104, "y": 380, "z": -90 }
},
{
- "name": "Grand Arena",
- "type": "NoHousingRegion",
- "map": "Malas",
- "priority": 50,
- "rects": [{ "x1": 919, "y1": 622, "x2": 962, "y2": 652 }],
- "go": { "x": 961, "y": 637, "z": -90 }
+ "$type": "NoHousingRegion",
+ "Name": "Grand Arena",
+ "Map": "Malas",
+ "Priority": 50,
+ "Area": [{ "x1": 919, "y1": 622, "x2": 962, "y2": 652 }],
+ "GoLocation": { "x": 961, "y": 637, "z": -90 }
},
{
- "name": "Hanse's Hostel",
- "type": "BaseRegion",
- "map": "Malas",
- "priority": 50,
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Hanse's Hostel",
+ "Map": "Malas",
+ "Priority": 50,
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 1049, "y1": 1420, "x2": 1062, "y2": 1445 },
{ "x1": 1062, "y1": 1420, "x2": 1065, "y2": 1431 },
{ "x1": 1062, "y1": 1439, "x2": 1065, "y2": 1445 }
],
- "go": { "x": 1063, "y": 1435, "z": -90 }
+ "GoLocation": { "x": 1063, "y": 1435, "z": -90 }
},
{
- "name": "Yomotsu Mines",
- "type": "DungeonRegion",
- "map": "Malas",
- "priority": 50,
- "music": "TokunoDungeon",
- "rects": [{ "x1": 0, "y1": 0, "x2": 129, "y2": 129 }],
- "go": { "x": 6, "y": 118, "z": 0 },
- "entrance": { "x": 259, "y": 783 }
+ "$type": "DungeonRegion",
+ "Name": "Yomotsu Mines",
+ "Map": "Malas",
+ "Priority": 50,
+ "Music": "TokunoDungeon",
+ "Area": [{ "x1": 0, "y1": 0, "x2": 129, "y2": 129 }],
+ "GoLocation": { "x": 6, "y": 118, "z": 0 },
+ "Entrance": { "x": 259, "y": 783 }
},
{
- "name": "Fan Dancer's Dojo",
- "type": "DungeonRegion",
- "map": "Malas",
- "priority": 50,
- "music": "TokunoDungeon",
- "rects": [{ "x1": 40, "y1": 320, "x2": 210, "y2": 720 }],
- "go": { "x": 71, "y": 337, "z": 0 },
- "entrance": { "x": 977, "y": 223 }
+ "$type": "DungeonRegion",
+ "Name": "Fan Dancer's Dojo",
+ "Map": "Malas",
+ "Priority": 50,
+ "Music": "TokunoDungeon",
+ "Area": [{ "x1": 40, "y1": 320, "x2": 210, "y2": 720 }],
+ "GoLocation": { "x": 71, "y": 337, "z": 0 },
+ "Entrance": { "x": 977, "y": 223 }
},
{
- "name": "Samurai start location",
- "type": "BaseRegion",
- "map": "Malas",
- "priority": 50,
- "music": "Zento",
- "rects": [{ "x1": 320, "y1": 690, "x2": 435, "y2": 790 }]
+ "$type": "BaseRegion",
+ "Name": "Samurai start location",
+ "Map": "Malas",
+ "Priority": 50,
+ "Music": "Zento",
+ "Area": [{ "x1": 320, "y1": 690, "x2": 435, "y2": 790 }]
},
{
- "name": "Ninja start location",
- "type": "BaseRegion",
- "map": "Malas",
- "priority": 50,
- "music": "Zento",
- "rects": [{ "x1": 360, "y1": 795, "x2": 440, "y2": 835 }]
+ "$type": "BaseRegion",
+ "Name": "Ninja start location",
+ "Map": "Malas",
+ "Priority": 50,
+ "Music": "Zento",
+ "Area": [{ "x1": 360, "y1": 795, "x2": 440, "y2": 835 }]
},
{
- "name": "Ninja cave",
- "type": "BaseRegion",
- "map": "Malas",
- "priority": 50,
- "rects": [{ "x1": 360, "y1": 960, "x2": 460, "y2": 1175 }]
+ "$type": "BaseRegion",
+ "Name": "Ninja cave",
+ "Map": "Malas",
+ "Priority": 50,
+ "Area": [{ "x1": 360, "y1": 960, "x2": 460, "y2": 1175 }]
},
{
- "name": "Isle of the Divide",
- "type": "NoHousingRegion",
- "map": "Malas",
- "priority": 50,
- "smartNoHousing": true,
- "rects": [{ "x1": 1533, "y1": 849, "x2": 1828, "y2": 1044 }],
- "go": { "x": 1731, "y": 982, "z": -80 }
+ "$type": "NoHousingRegion",
+ "Name": "Isle of the Divide",
+ "Map": "Malas",
+ "Priority": 50,
+ "Area": [{ "x1": 1533, "y1": 849, "x2": 1828, "y2": 1044 }],
+ "GoLocation": { "x": 1731, "y": 982, "z": -80 }
},
{
- "name": "Moongates",
- "type": "GuardedRegion",
- "map": "Tokuno",
- "priority": 50,
- "rects": [
+ "$type": "GuardedRegion",
+ "Name": "Moongates",
+ "Map": "Tokuno",
+ "Priority": 50,
+ "Area": [
{ "x1": 1167, "y1": 996, "x2": 1171, "y2": 1000 },
{ "x1": 799, "y1": 1201, "x2": 805, "y2": 1207 },
{ "x1": 267, "y1": 625, "x2": 274, "y2": 632 }
]
},
{
- "name": "Zento",
- "type": "TownRegion",
- "map": "Tokuno",
- "priority": 50,
- "music": "Zento",
- "rects": [{ "x1": 656, "y1": 1192, "x2": 816, "y2": 1320 }],
- "go": { "x": 736, "y": 1256, "z": 30 }
+ "$type": "TownRegion",
+ "Name": "Zento",
+ "Map": "Tokuno",
+ "Priority": 50,
+ "Music": "Zento",
+ "Area": [{ "x1": 656, "y1": 1192, "x2": 816, "y2": 1320 }],
+ "GoLocation": { "x": 736, "y": 1256, "z": 30 }
},
{
- "type": "BaseRegion",
- "map": "Tokuno",
- "parent": "Zento",
- "logoutDelay": false,
- "rects": [{ "x1": 674, "y1": 1203, "x2": 699, "y2": 1219 }]
+ "$type": "BaseRegion",
+ "Map": "Tokuno",
+ "Parent": "Zento",
+ "LogoutDelay": false,
+ "Area": [{ "x1": 674, "y1": 1203, "x2": 699, "y2": 1219 }]
},
{
- "name": "Fan Dancer's Dojo",
- "type": "NoHousingRegion",
- "map": "Tokuno",
- "priority": 50,
- "smartNoHousing": true,
- "rects": [{ "x1": 969, "y1": 194, "x2": 992, "y2": 224 }],
- "go": { "x": 977, "y": 223, "z": 23 }
+ "$type": "NoHousingRegion",
+ "Name": "Fan Dancer's Dojo",
+ "Map": "Tokuno",
+ "Priority": 50,
+ "Area": [{ "x1": 969, "y1": 194, "x2": 992, "y2": 224 }],
+ "GoLocation": { "x": 977, "y": 223, "z": 23 }
},
{
- "name": "Bushido Dojo",
- "type": "NoHousingRegion",
- "map": "Tokuno",
- "priority": 50,
- "smartNoHousing": true,
- "rects": [{ "x1": 283, "y1": 361, "x2": 351, "y2": 463 }],
- "go": { "x": 320, "y": 408, "z": 32 }
+ "$type": "NoHousingRegion",
+ "Name": "Bushido Dojo",
+ "Map": "Tokuno",
+ "Priority": 50,
+ "Area": [{ "x1": 283, "y1": 361, "x2": 351, "y2": 463 }],
+ "GoLocation": { "x": 320, "y": 408, "z": 32 }
},
{
- "name": "Abyss",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "music": "StygianAbyss",
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Abyss",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Music": "StygianAbyss",
+ "Area": [
{ "x1": 301, "y1": 328, "x2": 1076, "y2": 802 },
{ "x1": 780, "y1": 32, "x2": 1076, "y2": 328 },
{ "x1": 436, "y1": 802, "x2": 740, "y2": 980 },
@@ -3375,49 +3371,48 @@
{ "x1": 0, "y1": 286, "x2": 137, "y2": 445 },
{ "x1": 254, "y1": 70, "x2": 500, "y2": 253 }
],
- "go": { "x": 946, "y": 72, "z": 72 }
+ "GoLocation": { "x": 946, "y": 72, "z": 72 }
},
{
- "name": "Abyssal Lair",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 50,
- "rects": [{ "x1": 931, "y1": 314, "x2": 1031, "y2": 454 }],
- "go": { "x": 985, "y": 366, "z": -11 }
+ "$type": "BaseRegion",
+ "Name": "Abyssal Lair",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 50,
+ "Area": [{ "x1": 931, "y1": 314, "x2": 1031, "y2": 454 }],
+ "GoLocation": { "x": 985, "y": 366, "z": -11 }
},
{
- "name": "MedusasLair",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 100,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "MedusasLair",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 100,
+ "Area": [
{ "x1": 764, "y1": 894, "x2": 833, "y2": 983 },
{ "x1": 816, "y1": 749, "x2": 829, "y2": 765 }
],
- "go": { "x": 771, "y": 928, "z": 0 }
+ "GoLocation": { "x": 771, "y": 928, "z": 0 }
},
{
- "name": "NPC Encampment",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 100,
- "logoutDelay": false,
- "smartNoHousing": true,
- "guardsDisabled": true,
- "rects": [{ "x1": 1087, "y1": 1127, "z1": -42, "x2": 1096, "y2": 1133, "z2": 128 }],
- "go": { "x": 1090, "y": 1130, "z": -42 },
- "entrance": { "x": 1090, "y": 1132 }
+ "$type": "BaseRegion",
+ "Name": "NPC Encampment",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 100,
+ "LogoutDelay": false,
+ "GuardsDisabled": true,
+ "Area": [{ "x1": 1087, "y1": 1127, "z1": -42, "x2": 1096, "y2": 1133, "z2": 128 }],
+ "GoLocation": { "x": 1090, "y": 1130, "z": -42 },
+ "Entrance": { "x": 1090, "y": 1132 }
},
{
- "name": "Cavern of the Discarded",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Cavern of the Discarded",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 50,
+ "Area": [
{ "x1": 887, "y1": 475, "x2": 1000, "y2": 575 },
{ "x1": 926, "y1": 533, "x2": 971, "y2": 553 },
{ "x1": 928, "y1": 543, "x2": 970, "y2": 573 },
@@ -3426,33 +3421,33 @@
{ "x1": 938, "y1": 541, "x2": 958, "y2": 572 },
{ "x1": 961, "y1": 527, "x2": 983, "y2": 559 }
],
- "go": { "x": 912, "y": 501, "z": -12 }
+ "GoLocation": { "x": 912, "y": 501, "z": -12 }
},
{
- "name": "Chamber of Virtue",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 50,
- "rects": [{ "x1": 739, "y1": 465, "x2": 760, "y2": 486 }],
- "go": { "x": 747, "y": 474, "z": -17 }
+ "$type": "BaseRegion",
+ "Name": "Chamber of Virtue",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 50,
+ "Area": [{ "x1": 739, "y1": 465, "x2": 760, "y2": 486 }],
+ "GoLocation": { "x": 747, "y": 474, "z": -17 }
},
{
- "name": "Crimson Veins",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 50,
- "rects": [{ "x1": 931, "y1": 135, "x2": 996, "y2": 200 }],
- "go": { "x": 974, "y": 164, "z": -11 }
+ "$type": "BaseRegion",
+ "Name": "Crimson Veins",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 50,
+ "Area": [{ "x1": 931, "y1": 135, "x2": 996, "y2": 200 }],
+ "GoLocation": { "x": 974, "y": 164, "z": -11 }
},
{
- "name": "Enslaved Goblins",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Enslaved Goblins",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 50,
+ "Area": [
{ "x1": 538, "y1": 806, "x2": 613, "y2": 856 },
{ "x1": 539, "y1": 790, "x2": 614, "y2": 840 },
{ "x1": 553, "y1": 791, "x2": 613, "y2": 841 },
@@ -3460,39 +3455,39 @@
{ "x1": 570, "y1": 773, "x2": 613, "y2": 857 },
{ "x1": 571, "y1": 788, "x2": 596, "y2": 813 }
],
- "go": { "x": 581, "y": 815, "z": -45 }
+ "GoLocation": { "x": 581, "y": 815, "z": -45 }
},
{
- "name": "Fairy Dragon Lair",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 50,
- "rects": [{ "x1": 849, "y1": 254, "x2": 916, "y2": 297 }],
- "go": { "x": 888, "y": 277, "z": 3 }
+ "$type": "BaseRegion",
+ "Name": "Fairy Dragon Lair",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 50,
+ "Area": [{ "x1": 849, "y1": 254, "x2": 916, "y2": 297 }],
+ "GoLocation": { "x": 888, "y": 277, "z": 3 }
},
{
- "name": "Fire Temple Ruins",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Fire Temple Ruins",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 50,
+ "Area": [
{ "x1": 474, "y1": 766, "x2": 563, "y2": 789 },
{ "x1": 485, "y1": 760, "x2": 553, "y2": 789 },
{ "x1": 495, "y1": 750, "x2": 560, "y2": 779 },
{ "x1": 506, "y1": 750, "x2": 572, "y2": 782 },
{ "x1": 520, "y1": 739, "x2": 584, "y2": 771 }
],
- "go": { "x": 519, "y": 765, "z": -92 }
+ "GoLocation": { "x": 519, "y": 765, "z": -92 }
},
{
- "name": "Fractured City",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Fractured City",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 50,
+ "Area": [
{ "x1": 664, "y1": 439, "x2": 731, "y2": 527 },
{ "x1": 726, "y1": 505, "x2": 771, "y2": 527 },
{ "x1": 712, "y1": 402, "x2": 820, "y2": 460 },
@@ -3500,351 +3495,351 @@
{ "x1": 771, "y1": 460, "x2": 810, "y2": 518 },
{ "x1": 808, "y1": 480, "x2": 820, "y2": 512 }
],
- "go": { "x": 780, "y": 445, "z": -15 }
+ "GoLocation": { "x": 780, "y": 445, "z": -15 }
},
{
- "name": "Lands of the Lich",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Lands of the Lich",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 50,
+ "Area": [
{ "x1": 499, "y1": 575, "x2": 570, "y2": 695 },
{ "x1": 554, "y1": 600, "x2": 628, "y2": 642 }
],
- "go": { "x": 538, "y": 656, "z": 8 }
+ "GoLocation": { "x": 538, "y": 656, "z": 8 }
},
{
- "name": "Lava Caldera",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 50,
- "rects": [{ "x1": 553, "y1": 860, "x2": 639, "y2": 948 }],
- "go": { "x": 587, "y": 895, "z": -73 }
+ "$type": "BaseRegion",
+ "Name": "Lava Caldera",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 50,
+ "Area": [{ "x1": 553, "y1": 860, "x2": 639, "y2": 948 }],
+ "GoLocation": { "x": 587, "y": 895, "z": -73 }
},
{
- "name": "Passage of Tears",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 50,
- "rects": [{ "x1": 638, "y1": 530, "x2": 738, "y2": 635 }],
- "go": { "x": 685, "y": 579, "z": -15 }
+ "$type": "BaseRegion",
+ "Name": "Passage of Tears",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 50,
+ "Area": [{ "x1": 638, "y1": 530, "x2": 738, "y2": 635 }],
+ "GoLocation": { "x": 685, "y": 579, "z": -15 }
},
{
- "name": "Secret Garden",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 50,
- "rects": [{ "x1": 413, "y1": 678, "x2": 489, "y2": 749 }],
- "go": { "x": 462, "y": 719, "z": 22 }
+ "$type": "BaseRegion",
+ "Name": "Secret Garden",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 50,
+ "Area": [{ "x1": 413, "y1": 678, "x2": 489, "y2": 749 }],
+ "GoLocation": { "x": 462, "y": 719, "z": 22 }
},
{
- "name": "Serpents Lair",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 50,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Serpents Lair",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 50,
+ "Area": [
{ "x1": 681, "y1": 679, "x2": 849, "y2": 790 },
{ "x1": 703, "y1": 656, "x2": 850, "y2": 789 },
{ "x1": 785, "y1": 640, "x2": 850, "y2": 775 }
],
- "go": { "x": 711, "y": 720, "z": -11 }
+ "GoLocation": { "x": 711, "y": 720, "z": -11 }
},
{
- "name": "Silver Sapling",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 50,
- "rects": [{ "x1": 311, "y1": 582, "x2": 379, "y2": 650 }],
- "go": { "x": 341, "y": 619, "z": 26 }
+ "$type": "BaseRegion",
+ "Name": "Silver Sapling",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 50,
+ "Area": [{ "x1": 311, "y1": 582, "x2": 379, "y2": 650 }],
+ "GoLocation": { "x": 341, "y": 619, "z": 26 }
},
{
- "name": "Skeletal Dragon",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 50,
- "rects": [{ "x1": 643, "y1": 809, "x2": 698, "y2": 872 }],
- "go": { "x": 675, "y": 828, "z": -109 }
+ "$type": "BaseRegion",
+ "Name": "Skeletal Dragon",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 50,
+ "Area": [{ "x1": 643, "y1": 809, "x2": 698, "y2": 872 }],
+ "GoLocation": { "x": 675, "y": 828, "z": -109 }
},
{
- "name": "Sutek the Mage",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Abyss",
- "priority": 50,
- "rects": [{ "x1": 901, "y1": 574, "x2": 954, "y2": 614 }],
- "go": { "x": 924, "y": 595, "z": -14 }
+ "$type": "BaseRegion",
+ "Name": "Sutek the Mage",
+ "Map": "TerMur",
+ "Parent": "Abyss",
+ "Priority": 50,
+ "Area": [{ "x1": 901, "y1": 574, "x2": 954, "y2": 614 }],
+ "GoLocation": { "x": 924, "y": 595, "z": -14 }
},
{
- "name": "Underworld",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "music": "HumanLevel",
- "rects": [{ "x1": 898, "y1": 808, "x2": 1280, "y2": 1231 }],
- "go": { "x": 1128, "y": 1207, "z": -2 }
+ "$type": "DungeonRegion",
+ "Name": "Underworld",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Music": "HumanLevel",
+ "Area": [{ "x1": 898, "y1": 808, "x2": 1280, "y2": 1231 }],
+ "GoLocation": { "x": 1128, "y": 1207, "z": -2 }
},
{
- "name": "Atoll Bend",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [{ "x1": 1027, "y1": 3311, "x2": 1224, "y2": 3514 }],
- "go": { "x": 1118, "y": 3408, "z": -42 }
+ "$type": "DungeonRegion",
+ "Name": "Atoll Bend",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [{ "x1": 1027, "y1": 3311, "x2": 1224, "y2": 3514 }],
+ "GoLocation": { "x": 1118, "y": 3408, "z": -42 }
},
{
- "name": "Chicken Chase",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
+ "$type": "DungeonRegion",
+ "Name": "Chicken Chase",
+ "Map": "TerMur",
+ "Priority": 50,
"rune": "Chicken Chase",
- "rects": [{ "x1": 448, "y1": 3352, "x2": 613, "y2": 3480 }],
- "go": { "x": 560, "y": 3412, "z": 37 }
+ "Area": [{ "x1": 448, "y1": 3352, "x2": 613, "y2": 3480 }],
+ "GoLocation": { "x": 560, "y": 3412, "z": 37 }
},
{
- "name": "Fishermans Reach",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [{ "x1": 547, "y1": 2835, "x2": 745, "y2": 3102 }],
- "go": { "x": 631, "y": 3035, "z": 36 }
+ "$type": "DungeonRegion",
+ "Name": "Fishermans Reach",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [{ "x1": 547, "y1": 2835, "x2": 745, "y2": 3102 }],
+ "GoLocation": { "x": 631, "y": 3035, "z": 36 }
},
{
- "name": "Gated Isle",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [{ "x1": 603, "y1": 3836, "x2": 815, "y2": 4043 }],
- "go": { "x": 703, "y": 3934, "z": -31 }
+ "$type": "DungeonRegion",
+ "Name": "Gated Isle",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [{ "x1": 603, "y1": 3836, "x2": 815, "y2": 4043 }],
+ "GoLocation": { "x": 703, "y": 3934, "z": -31 }
},
{
- "name": "High Plain",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [{ "x1": 748, "y1": 2843, "x2": 981, "y2": 3050 }],
- "go": { "x": 863, "y": 2931, "z": 38 }
+ "$type": "DungeonRegion",
+ "Name": "High Plain",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [{ "x1": 748, "y1": 2843, "x2": 981, "y2": 3050 }],
+ "GoLocation": { "x": 863, "y": 2931, "z": 38 }
},
{
- "name": "Holy City",
- "type": "BaseRegion",
- "map": "TerMur",
- "priority": 50,
- "music": "Holycity",
- "rects": [{ "x1": 922, "y1": 3838, "x2": 1071, "y2": 3965 }],
- "go": { "x": 997, "y": 3869, "z": -42 }
+ "$type": "BaseRegion",
+ "Name": "Holy City",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Music": "Holycity",
+ "Area": [{ "x1": 922, "y1": 3838, "x2": 1071, "y2": 3965 }],
+ "GoLocation": { "x": 997, "y": 3869, "z": -42 }
},
{
- "name": "Kepetch Waste",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [{ "x1": 356, "y1": 3143, "x2": 523, "y2": 3224 }],
- "go": { "x": 447, "y": 3188, "z": 20 }
+ "$type": "DungeonRegion",
+ "Name": "Kepetch Waste",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [{ "x1": 356, "y1": 3143, "x2": 523, "y2": 3224 }],
+ "GoLocation": { "x": 447, "y": 3188, "z": 20 }
},
{
- "name": "Lost Settlement",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [{ "x1": 454, "y1": 3708, "x2": 648, "y2": 3957 }],
- "go": { "x": 526, "y": 3822, "z": -44 }
+ "$type": "DungeonRegion",
+ "Name": "Lost Settlement",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [{ "x1": 454, "y1": 3708, "x2": 648, "y2": 3957 }],
+ "GoLocation": { "x": 526, "y": 3822, "z": -44 }
},
{
- "name": "Moongates",
- "type": "GuardedRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [
+ "$type": "GuardedRegion",
+ "Name": "Moongates",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [
{ "x1": 852, "y1": 3525, "x2": 867, "y2": 3540 },
{ "x1": 925, "y1": 3988, "x2": 940, "y2": 4003 }
]
},
{
- "name": "Northern Steppes",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [{ "x1": 694, "y1": 3020, "x2": 954, "y2": 3148 }],
- "go": { "x": 822, "y": 3063, "z": 61 }
+ "$type": "DungeonRegion",
+ "Name": "Northern Steppes",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [{ "x1": 694, "y1": 3020, "x2": 954, "y2": 3148 }],
+ "GoLocation": { "x": 822, "y": 3063, "z": 61 }
},
{
- "name": "Raptor Island",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Raptor Island",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [
{ "x1": 712, "y1": 3765, "x2": 879, "y2": 3829 },
{ "x1": 728, "y1": 3809, "x2": 839, "y2": 3923 },
{ "x1": 769, "y1": 3721, "x2": 972, "y2": 3768 },
{ "x1": 808, "y1": 3692, "x2": 930, "y2": 3732 }
],
- "go": { "x": 816, "y": 3778, "z": -42 }
+ "GoLocation": { "x": 816, "y": 3778, "z": -42 }
},
{
- "name": "Royal City",
- "type": "TownRegion",
- "map": "TerMur",
- "priority": 50,
- "music": "RoyalCity",
- "rects": [{ "x1": 624, "y1": 3296, "x2": 927, "y2": 3583 }],
- "go": { "x": 750, "y": 3440, "z": -20 }
+ "$type": "TownRegion",
+ "Name": "Royal City",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Music": "RoyalCity",
+ "Area": [{ "x1": 624, "y1": 3296, "x2": 927, "y2": 3583 }],
+ "GoLocation": { "x": 750, "y": 3440, "z": -20 }
},
{
- "name": "Queen's Palace",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Royal City",
- "music": "QueenPalace",
- "rects": [{ "x1": 717, "y1": 3339, "x2": 785, "y2": 3412 }],
- "go": { "x": 748, "y": 3357, "z": 55 }
+ "$type": "BaseRegion",
+ "Name": "Queen's Palace",
+ "Map": "TerMur",
+ "Parent": "Royal City",
+ "Music": "QueenPalace",
+ "Area": [{ "x1": 717, "y1": 3339, "x2": 785, "y2": 3412 }],
+ "GoLocation": { "x": 748, "y": 3357, "z": 55 }
},
{
- "name": "Royal City Inn",
- "type": "BaseRegion",
- "map": "TerMur",
- "parent": "Royal City",
- "logoutDelay": false,
- "rects": [
+ "$type": "BaseRegion",
+ "Name": "Royal City Inn",
+ "Map": "TerMur",
+ "Parent": "Royal City",
+ "LogoutDelay": false,
+ "Area": [
{ "x1": 724, "y1": 3463, "x2": 761, "y2": 3483 },
{ "x1": 747, "y1": 3480, "x2": 760, "y2": 3493 }
]
},
{
- "name": "Royal Park",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Royal Park",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [
{ "x1": 632, "y1": 3233, "x2": 808, "y2": 3268 },
{ "x1": 753, "y1": 3161, "x2": 990, "y2": 3292 }
],
- "go": { "x": 711, "y": 3255, "z": -42 }
+ "GoLocation": { "x": 711, "y": 3255, "z": -42 }
},
{
- "name": "Slith Valley",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [{ "x1": 1028, "y1": 3263, "x2": 1221, "y2": 3404 }],
- "go": { "x": 1078, "y": 3331, "z": -42 }
+ "$type": "DungeonRegion",
+ "Name": "Slith Valley",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [{ "x1": 1028, "y1": 3263, "x2": 1221, "y2": 3404 }],
+ "GoLocation": { "x": 1078, "y": 3331, "z": -42 }
},
{
- "name": "Spider Island",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [{ "x1": 1063, "y1": 3695, "x2": 1181, "y2": 3779 }],
- "go": { "x": 1115, "y": 3730, "z": -42 }
+ "$type": "DungeonRegion",
+ "Name": "Spider Island",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [{ "x1": 1063, "y1": 3695, "x2": 1181, "y2": 3779 }],
+ "GoLocation": { "x": 1115, "y": 3730, "z": -42 }
},
{
- "name": "StygianDragonLair",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "music": "StygianDragon",
- "rects": [{ "x1": 258, "y1": 90, "x2": 489, "y2": 245 }],
- "go": { "x": 367, "y": 155, "z": 0 }
+ "$type": "DungeonRegion",
+ "Name": "StygianDragonLair",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Music": "StygianDragon",
+ "Area": [{ "x1": 258, "y1": 90, "x2": 489, "y2": 245 }],
+ "GoLocation": { "x": 367, "y": 155, "z": 0 }
},
{
- "name": "Talon Point",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [
+ "$type": "DungeonRegion",
+ "Name": "Talon Point",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [
{ "x1": 632, "y1": 3830, "x2": 730, "y2": 3885 },
{ "x1": 629, "y1": 3786, "x2": 705, "y2": 3826 },
{ "x1": 656, "y1": 3750, "x2": 707, "y2": 3791 }
],
- "go": { "x": 676, "y": 3831, "z": -39 }
+ "GoLocation": { "x": 676, "y": 3831, "z": -39 }
},
{
- "name": "Toxic Desert",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
+ "$type": "DungeonRegion",
+ "Name": "Toxic Desert",
+ "Map": "TerMur",
+ "Priority": 50,
"rune": "Toxic Desert",
- "rects": [{ "x1": 1010, "y1": 2929, "z1": 37, "x2": 1156, "y2": 3049, "z2": 128 }],
- "go": { "x": 1047, "y": 2980, "z": 62 },
- "entrance": { "x": 1051, "y": 3022 }
+ "Area": [{ "x1": 1010, "y1": 2929, "z1": 37, "x2": 1156, "y2": 3049, "z2": 128 }],
+ "GoLocation": { "x": 1047, "y": 2980, "z": 62 },
+ "Entrance": { "x": 1051, "y": 3022 }
},
{
- "name": "Void Island",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [{ "x1": 314, "y1": 3473, "x2": 581, "y2": 3699 }],
- "go": { "x": 440, "y": 3577, "z": 38 }
+ "$type": "DungeonRegion",
+ "Name": "Void Island",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [{ "x1": 314, "y1": 3473, "x2": 581, "y2": 3699 }],
+ "GoLocation": { "x": 440, "y": 3577, "z": 38 }
},
{
- "name": "Volcano",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [{ "x1": 298, "y1": 2895, "x2": 499, "y2": 3117 }],
- "go": { "x": 407, "y": 3010, "z": -24 }
+ "$type": "DungeonRegion",
+ "Name": "Volcano",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [{ "x1": 298, "y1": 2895, "x2": 499, "y2": 3117 }],
+ "GoLocation": { "x": 407, "y": 3010, "z": -24 }
},
{
- "name": "Walled Circus",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [{ "x1": 291, "y1": 3207, "x2": 445, "y2": 3354 }],
- "go": { "x": 370, "y": 3273, "z": 0 }
+ "$type": "DungeonRegion",
+ "Name": "Walled Circus",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [{ "x1": 291, "y1": 3207, "x2": 445, "y2": 3354 }],
+ "GoLocation": { "x": 370, "y": 3273, "z": 0 }
},
{
- "name": "Waterfall Point",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [{ "x1": 635, "y1": 2862, "x2": 731, "y2": 2926 }],
- "go": { "x": 661, "y": 2894, "z": 39 }
+ "$type": "DungeonRegion",
+ "Name": "Waterfall Point",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [{ "x1": 635, "y1": 2862, "x2": 731, "y2": 2926 }],
+ "GoLocation": { "x": 661, "y": 2894, "z": 39 }
},
{
- "name": "Shrine of Singularity",
- "type": "BaseRegion",
- "map": "TerMur",
- "priority": 50,
- "music": "CodexShrine",
- "rects": [{ "x1": 978, "y1": 3786, "x2": 1018, "y2": 3838 }],
- "go": { "x": 995, "y": 3806, "z": 0 }
+ "$type": "BaseRegion",
+ "Name": "Shrine of Singularity",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Music": "CodexShrine",
+ "Area": [{ "x1": 978, "y1": 3786, "x2": 1018, "y2": 3838 }],
+ "GoLocation": { "x": 995, "y": 3806, "z": 0 }
},
{
- "name": "GreatApeLair",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 100,
- "rects": [{ "x1": 832, "y1": 1363, "z1": -25, "x2": 938, "y2": 1474, "z2": 128 }],
- "go": { "x": 926, "y": 1464, "z": 0 }
+ "$type": "DungeonRegion",
+ "Name": "GreatApeLair",
+ "Map": "TerMur",
+ "Priority": 100,
+ "Area": [{ "x1": 832, "y1": 1363, "z1": -25, "x2": 938, "y2": 1474, "z2": 128 }],
+ "GoLocation": { "x": 926, "y": 1464, "z": 0 }
},
{
- "name": "ZipactriotlLair",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 100,
- "rects": [{ "x1": 831, "y1": 2239, "z1": -25, "x2": 959, "y2": 2367, "z2": 128 }],
- "go": { "x": 896, "y": 2304, "z": -19 }
+ "$type": "DungeonRegion",
+ "Name": "ZipactriotlLair",
+ "Map": "TerMur",
+ "Priority": 100,
+ "Area": [{ "x1": 831, "y1": 2239, "z1": -25, "x2": 959, "y2": 2367, "z2": 128 }],
+ "GoLocation": { "x": 896, "y": 2304, "z": -19 }
},
{
- "name": "MyrmidexQueenLair",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 100,
- "rects": [{ "x1": 704, "y1": 2248, "z1": -25, "x2": 828, "y2": 2363, "z2": 128 }],
- "go": { "x": 766, "y": 2306, "z": 0 }
+ "$type": "DungeonRegion",
+ "Name": "MyrmidexQueenLair",
+ "Map": "TerMur",
+ "Priority": 100,
+ "Area": [{ "x1": 704, "y1": 2248, "z1": -25, "x2": 828, "y2": 2363, "z2": 128 }],
+ "GoLocation": { "x": 766, "y": 2306, "z": 0 }
},
{
- "name": "KotlCity",
- "type": "DungeonRegion",
- "map": "TerMur",
- "priority": 50,
- "rects": [{ "x1": 435, "y1": 2270, "z1": -25, "x2": 675, "y2": 2490, "z2": 128 }],
- "go": { "x": 542, "y": 2473, "z": 0 }
+ "$type": "DungeonRegion",
+ "Name": "KotlCity",
+ "Map": "TerMur",
+ "Priority": 50,
+ "Area": [{ "x1": 435, "y1": 2270, "z1": -25, "x2": 675, "y2": 2490, "z2": 128 }],
+ "GoLocation": { "x": 542, "y": 2473, "z": 0 }
}
]
diff --git a/Projects/Server/Json/Converters/JsonDtoConverter.cs b/Projects/Server/Json/Converters/JsonDtoConverter.cs
deleted file mode 100644
index c3b7f30a1..000000000
--- a/Projects/Server/Json/Converters/JsonDtoConverter.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-/*************************************************************************
- * ModernUO *
- * Copyright 2019-2022 - ModernUO Development Team *
- * Email: hi@modernuo.com *
- * File: JsonDtoConverter.cs *
- * *
- * This program is free software: you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation, either version 3 of the License, or *
- * (at your option) any later version. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program. If not, see . *
- *************************************************************************/
-
-using System;
-using System.Text.Json;
-using System.Text.Json.Serialization;
-
-namespace Server.Json;
-
-public class JsonDtoConverter : JsonConverter
- where TDto : IJsonRootDtoConvertible, new() where TObject : new()
-{
- public override TObject Read(
- ref Utf8JsonReader reader,
- Type typeToConvert,
- JsonSerializerOptions options
- )
- {
- if (typeof(TObject) != typeToConvert)
- {
- throw new JsonException($"Invalid object type to deserialize for '{typeof(TObject).Name}'");
- }
-
- // Deserialize to the DTO
- var dto = JsonSerializer.Deserialize(ref reader, options);
-
- return TDto.ToObject(dto);
- }
-
- public override void Write(Utf8JsonWriter writer, TObject value, JsonSerializerOptions options)
- {
- JsonSerializer.Serialize(writer, TDto.FromObject(value), options);
- }
-}
diff --git a/Projects/Server/Json/Converters/JsonDtoConverterFactory.cs b/Projects/Server/Json/Converters/JsonDtoConverterFactory.cs
deleted file mode 100644
index 6d5b9f96c..000000000
--- a/Projects/Server/Json/Converters/JsonDtoConverterFactory.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-/*************************************************************************
- * ModernUO *
- * Copyright 2019-2022 - ModernUO Development Team *
- * Email: hi@modernuo.com *
- * File: JsonDtoConverter.cs *
- * *
- * This program is free software: you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation, either version 3 of the License, or *
- * (at your option) any later version. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program. If not, see . *
- *************************************************************************/
-
-using System;
-using System.Text.Json;
-using System.Text.Json.Serialization;
-
-namespace Server.Json;
-
-public class JsonDtoConverterFactory : JsonConverterFactory
- where TDto : IJsonRootDtoConvertible, new() where TObject : new()
-{
- public override bool CanConvert(Type typeToConvert) => typeToConvert == typeof(TObject);
-
- public override JsonConverter CreateConverter(Type typeToConvert, JsonSerializerOptions options) =>
- new JsonDtoConverter();
-}
diff --git a/Projects/Server/Json/Converters/WorldLocationConverter.cs b/Projects/Server/Json/Converters/WorldLocationConverter.cs
index 6cf4ad042..a994d1c5c 100644
--- a/Projects/Server/Json/Converters/WorldLocationConverter.cs
+++ b/Projects/Server/Json/Converters/WorldLocationConverter.cs
@@ -80,7 +80,6 @@ public class WorldLocationConverter : JsonConverter
private WorldLocation DeserializeObj(ref Utf8JsonReader reader, JsonSerializerOptions options)
{
Span data = stackalloc int[3];
- var count = 0;
var hasLoc = false;
var hasXYZ = false;
var hasMap = false;
@@ -150,7 +149,6 @@ public class WorldLocationConverter : JsonConverter
data[0] = loc.X;
data[1] = loc.Y;
data[2] = loc.Z;
- count = 3;
continue;
}
@@ -160,7 +158,7 @@ public class WorldLocationConverter : JsonConverter
hasMap = true;
}
- if (!hasMap || count != 3)
+ if (!hasMap)
{
throw new JsonException("WorldLocation must have an x, y, z, and map properties");
}
diff --git a/Projects/Server/Json/IJsonConvertible.cs b/Projects/Server/Json/IJsonConvertible.cs
deleted file mode 100644
index 258eafcc9..000000000
--- a/Projects/Server/Json/IJsonConvertible.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-/*************************************************************************
- * ModernUO *
- * Copyright 2019-2022 - ModernUO Development Team *
- * Email: hi@modernuo.com *
- * File: IJsonConvertible.cs *
- * *
- * This program is free software: you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation, either version 3 of the License, or *
- * (at your option) any later version. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program. If not, see . *
- *************************************************************************/
-
-namespace Server.Json;
-
-public interface IJsonRootDtoConvertible where TSelf : IJsonRootDtoConvertible where TObject : new()
-{
- public abstract static TSelf FromObject(TObject obj);
- public abstract static TObject ToObject(TSelf obj);
-}
-
-public interface IJsonDtoConvertible where TSelf : IJsonDtoConvertible where TObject : new()
-{
- public abstract TSelf HydrateDto(TObject obj);
- public abstract TObject HydrateObject(TObject obj);
-}
diff --git a/Projects/Server/Main.cs b/Projects/Server/Main.cs
index f37eb5269..7e21454e8 100644
--- a/Projects/Server/Main.cs
+++ b/Projects/Server/Main.cs
@@ -19,7 +19,6 @@ using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
-using System.Runtime;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Text;
@@ -509,7 +508,7 @@ public static class Core
TileMatrixLoader.LoadTileMatrix();
- RegionLoader.LoadRegions();
+ RegionJsonSerializer.LoadRegions();
World.Load();
AssemblyHandler.Invoke("Initialize");
diff --git a/Projects/Server/Regions/Region.cs b/Projects/Server/Regions/Region.cs
index a177751f5..16ff947f0 100644
--- a/Projects/Server/Regions/Region.cs
+++ b/Projects/Server/Regions/Region.cs
@@ -1,7 +1,5 @@
using System;
using System.Collections.Generic;
-using System.Text.Json;
-using Server.Json;
using Server.Logging;
using Server.Network;
using Server.Targeting;
@@ -78,6 +76,42 @@ public enum MusicName
SelimsBar,
SerpentIsleCombat_U7,
ValoriaShips,
+ TheWanderer,
+ Castle,
+ Festival,
+ Honor,
+ Medieval,
+ BattleOnStones,
+ Docktown,
+ GargoyleQueen,
+ GenericCombat,
+ Holycity,
+ HumanLevel,
+ LoginLoop,
+ NorthernForestBattleonStones,
+ PrimevalLich,
+ QueenPalace,
+ RoyalCity,
+ SlasherVeil,
+ StygianAbyss,
+ StygianDragon,
+ Void,
+ CodexShrine,
+ AnvilStrikeInMinoc,
+ ASkaranLullaby,
+ BlackthornsMarch,
+ DupresNightInTrinsic,
+ FayaxionAndTheSix,
+ FlightOfTheNexus,
+ GalehavenJaunt,
+ JhelomToArms,
+ MidnightInYew,
+ MoonglowSonata,
+ NewMaginciaMarch,
+ NujelmWaltz,
+ SherrysSong,
+ StarlightInBritain,
+ TheVesperMist,
NoMusic = 0x1FFF
}
@@ -98,9 +132,16 @@ public class Region : IComparable
{
}
+ public Region(string name, Map map, params Rectangle3D[] area) : this(name, map, null, area)
+ {
+ }
+
public Region(string name, Map map, int priority, params Rectangle3D[] area) : this(name, map, null, area) =>
Priority = priority;
+ public Region(string name, Map map, Region parent, int priority, params Rectangle3D[] area) : this(name, map, parent, area) =>
+ Priority = priority;
+
public Region(string name, Map map, Region parent, params Rectangle2D[] area) : this(
name,
map,
@@ -131,54 +172,6 @@ public class Region : IComparable
}
}
- public Region(DynamicJson json, JsonSerializerOptions options)
- {
- Map = json.GetProperty("map", options, out Map map) ? map : null;
- Parent = json.GetProperty("parent", options, out string parent) ? Find(parent, Map) : null;
- Name = json.GetProperty("name", options, out string name) ? name : null;
-
- Dynamic = false;
-
- if (Parent == null)
- {
- ChildLevel = 0;
- Priority = DefaultPriority;
- }
- else
- {
- ChildLevel = Parent.ChildLevel + 1;
- Priority = Parent.Priority;
- }
-
- Priority = json.GetProperty("priority", options, out int priority) ? priority : Priority;
-
- Area = json.GetProperty("rects", options, out List rects)
- ? rects.ToArray()
- : Array.Empty();
-
- if (Area.Length == 0)
- {
- logger.Debug("Empty area for region '{Region}'", this);
- }
-
- if (json.GetProperty("go", options, out Point3D go))
- {
- GoLocation = go;
- }
- else if (Area.Length > 0)
- {
- var start = Area[0].Start;
- var end = Area[0].End;
-
- var x = start.X + (end.X - start.X) / 2;
- var y = start.Y + (end.Y - start.Y) / 2;
-
- GoLocation = new Point3D(x, y, Map?.GetAverageZ(x, y) ?? start.Z + (end.Z - start.Z) / 2);
- }
-
- Music = json.GetEnumProperty("music", options, out MusicName music) ? music : DefaultMusic;
- }
-
public static List Regions { get; } = new();
public static TimeSpan StaffLogoutDelay { get; set; } = TimeSpan.Zero;
@@ -239,6 +232,11 @@ public class Region : IComparable
// This is not optimized. Use sparingly
public static Region Find(string name, Map map, bool insensitive = false)
{
+ if (string.IsNullOrWhiteSpace(name))
+ {
+ return null;
+ }
+
if (insensitive)
{
name = name.ToLower();
diff --git a/Projects/Server/Regions/RegionJsonDto.cs b/Projects/Server/Regions/RegionJsonDto.cs
new file mode 100644
index 000000000..21aaec107
--- /dev/null
+++ b/Projects/Server/Regions/RegionJsonDto.cs
@@ -0,0 +1,61 @@
+/*************************************************************************
+ * ModernUO *
+ * Copyright 2019-2022 - ModernUO Development Team *
+ * Email: hi@modernuo.com *
+ * File: RegionJsonDto.cs *
+ * *
+ * This program is free software: you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation, either version 3 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program. If not, see . *
+ *************************************************************************/
+
+using System;
+using System.Text.Json.Serialization;
+using Server.Utilities;
+
+namespace Server;
+
+public class RegionJsonDto
+{
+ [JsonIgnore]
+ public virtual Type RegionType => typeof(Region);
+
+ public Map Map { get; set; }
+ public string? Parent { get; set; }
+ public string Name { get; set; }
+ public int? Priority { get; set; }
+ public Rectangle3D[] Area { get; set; }
+ public Point3D GoLocation { get; set; }
+ public MusicName? Music { get; set; }
+
+ public virtual void FromRegion(Region region)
+ {
+ Map = region.Map;
+ Parent = region.Parent?.Name;
+ Name = region.Name;
+ Priority = region.Priority;
+ Area = region.Area;
+ GoLocation = region.GoLocation;
+ Music = region.Music != region.DefaultMusic ? region.Music : null;
+ }
+
+ public Region ToRegion()
+ {
+ var region = Priority != null
+ ? RegionType.CreateInstance(Name, Map, Region.Find(Parent, Map), Priority, Area)
+ : RegionType.CreateInstance(Name, Map, Region.Find(Parent, Map), Area);
+
+ HydrateRegion(region);
+ return region;
+ }
+
+ protected virtual void HydrateRegion(Region region)
+ {
+ region.GoLocation = GoLocation;
+ region.Music = Music ?? region.DefaultMusic;
+ }
+}
diff --git a/Projects/Server/Regions/RegionJsonSerializer.cs b/Projects/Server/Regions/RegionJsonSerializer.cs
new file mode 100644
index 000000000..f8f99e6cd
--- /dev/null
+++ b/Projects/Server/Regions/RegionJsonSerializer.cs
@@ -0,0 +1,148 @@
+/*************************************************************************
+ * ModernUO *
+ * Copyright 2019-2022 - ModernUO Development Team *
+ * Email: hi@modernuo.com *
+ * File: RegionJsonSerializer.cs *
+ * *
+ * This program is free software: you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation, either version 3 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program. If not, see . *
+ *************************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Text.Json.Serialization.Metadata;
+using Server.Json;
+using Server.Logging;
+using Server.Utilities;
+
+namespace Server;
+
+public static class RegionJsonSerializer
+{
+ private static readonly ILogger logger = LogFactory.GetLogger(typeof(RegionJsonSerializer));
+
+ // Note: This is filled during the `Configure` phase by RegisterRegionForSerialization,
+ // so it is not available to a JsonConverter which might be used during earlier phases.
+ private static Dictionary _regionToDtoLookup = new() { { typeof(Region), typeof(RegionJsonDto) } };
+ private static JsonDerivedType[] _derivedTypes = { new(typeof(RegionJsonDto), nameof(Region)) };
+
+ private static JsonSerializerOptions _options = new(JsonConfig.DefaultOptions)
+ {
+ DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault,
+ TypeInfoResolver = new DefaultJsonTypeInfoResolver
+ {
+ Modifiers =
+ {
+ static typeInfo =>
+ {
+ if (typeInfo.Type != typeof(RegionJsonDto))
+ {
+ return;
+ }
+
+ typeInfo.PolymorphismOptions = new JsonPolymorphismOptions();
+ for (var i = 0; i < _derivedTypes.Length; i++)
+ {
+ typeInfo.PolymorphismOptions.DerivedTypes.Add(_derivedTypes[i]);
+ }
+ },
+ }
+ }
+ };
+
+ public static void RegisterRegionForSerialization()
+ where TDto : RegionJsonDto, new() where TRegion : Region
+ {
+ for (var i = 0; i < _derivedTypes.Length; i++)
+ {
+ if (_derivedTypes[i].DerivedType == typeof(TDto))
+ {
+ throw new Exception(
+ $"Type '{typeof(TDto)}' has already been registered for serialization with the region loader."
+ );
+ }
+ }
+
+ Array.Resize(ref _derivedTypes, _derivedTypes.Length + 1);
+ _derivedTypes[^1] = new JsonDerivedType(typeof(TDto), typeof(TRegion).Name);
+ _regionToDtoLookup[typeof(TRegion)] = typeof(TDto);
+ }
+
+ internal static void LoadRegions()
+ {
+ var path = Path.Join(Core.BaseDirectory, "Data/regions.json");
+
+ logger.Information("Loading regions");
+
+ var stopwatch = Stopwatch.StartNew();
+
+ var regions = JsonConfig.Deserialize>(path, _options);
+ if (regions == null)
+ {
+ throw new JsonException($"Failed to deserialize {path}.");
+ }
+
+ foreach (var dto in regions)
+ {
+ var region = dto.ToRegion();
+ region.Register();
+ }
+
+ stopwatch.Stop();
+
+ logger.Information(
+ "Loading regions {Status} ({Count} regions) ({Duration:F2} seconds)",
+ "done",
+ regions.Count,
+ stopwatch.Elapsed.TotalSeconds
+ );
+ }
+
+ // Note: This is not thread safe. To make `SerializeRegions` threadsafe, use `[ThreadStatic]` or just create the lists
+ // in the function and take the GC hit.
+ private static List _regionJsonDtos;
+
+ public static void SerializeRegions(string path, IEnumerable regions)
+ {
+ _regionJsonDtos ??= new List();
+ foreach (var region in regions)
+ {
+ if (_regionToDtoLookup.TryGetValue(region.GetType(), out var dtoType))
+ {
+ var dto = dtoType.CreateInstance();
+ dto.FromRegion(region);
+ _regionJsonDtos.Add(dto);
+ }
+ }
+
+ JsonConfig.Serialize(path, _regionJsonDtos, _options);
+ _regionJsonDtos.Clear();
+ }
+
+ public static string SerializeRegions(IEnumerable regions)
+ {
+ _regionJsonDtos ??= new List();
+ foreach (var region in regions)
+ {
+ if (_regionToDtoLookup.TryGetValue(region.GetType(), out var dtoType))
+ {
+ var dto = dtoType.CreateInstance();
+ dto.FromRegion(region);
+ _regionJsonDtos.Add(dto);
+ }
+ }
+
+ var output = JsonConfig.Serialize(_regionJsonDtos, _options);
+ _regionJsonDtos.Clear();
+ return output;
+ }
+}
diff --git a/Projects/Server/Regions/RegionLoader.cs b/Projects/Server/Regions/RegionLoader.cs
deleted file mode 100644
index 177abb17d..000000000
--- a/Projects/Server/Regions/RegionLoader.cs
+++ /dev/null
@@ -1,86 +0,0 @@
-/*************************************************************************
- * ModernUO *
- * Copyright 2019-2022 - ModernUO Development Team *
- * Email: hi@modernuo.com *
- * File: RegionLoader.cs *
- * *
- * This program is free software: you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation, either version 3 of the License, or *
- * (at your option) any later version. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program. If not, see . *
- *************************************************************************/
-
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.IO;
-using System.Text.Json;
-using Server.Json;
-using Server.Logging;
-using Server.Utilities;
-
-namespace Server;
-
-internal static class RegionLoader
-{
- private static readonly ILogger logger = LogFactory.GetLogger(typeof(RegionLoader));
-
- internal static void LoadRegions()
- {
- var path = Path.Join(Core.BaseDirectory, "Data/regions.json");
-
- var failures = new List();
- var count = 0;
-
- logger.Information("Loading regions");
-
- var stopwatch = Stopwatch.StartNew();
- var regions = JsonConfig.Deserialize>(path);
- if (regions == null)
- {
- throw new JsonException($"Failed to deserialize {path}.");
- }
-
- foreach (var json in regions)
- {
- var type = AssemblyHandler.FindTypeByName(json.Type);
-
- if (type == null || !typeof(Region).IsAssignableFrom(type))
- {
- failures.Add($"\tInvalid region type {json.Type}");
- continue;
- }
-
- var region = type.CreateInstance(json, JsonConfig.DefaultOptions);
- region?.Register();
- count++;
- }
-
- stopwatch.Stop();
-
- if (failures.Count == 0)
- {
- logger.Information(
- "Loading regions {Status} ({Count} regions, {FailureCount} failures) ({Duration:F2} seconds)",
- "done",
- count,
- failures.Count,
- stopwatch.Elapsed.TotalSeconds
- );
- }
- else
- {
- logger.Warning(
- $"Loading regions {{Status}} ({{Count}} regions, {{FailureCount}} failures) ({{Duration:F2}} seconds){Environment.NewLine}{{Failures}}",
- "failed",
- count,
- failures.Count,
- stopwatch.Elapsed.TotalSeconds,
- failures
- );
- }
- }
-}
diff --git a/Projects/UOContent/Commands/Handlers.cs b/Projects/UOContent/Commands/Handlers.cs
index 811bacff9..34253d7cf 100644
--- a/Projects/UOContent/Commands/Handlers.cs
+++ b/Projects/UOContent/Commands/Handlers.cs
@@ -109,7 +109,7 @@ namespace Server.Commands
if (map != null)
{
- var reg = from.Region;
+ var reg = Region.Find(from.Location, from.Map);
if (!reg.IsDefault)
{
diff --git a/Projects/UOContent/Engines/ConPVP/Arena.cs b/Projects/UOContent/Engines/ConPVP/Arena.cs
index 6b099c578..aebfed7b0 100644
--- a/Projects/UOContent/Engines/ConPVP/Arena.cs
+++ b/Projects/UOContent/Engines/ConPVP/Arena.cs
@@ -355,7 +355,7 @@ namespace Server.Engines.ConPVP
if (m_Region != null)
{
- m_Region.Disabled = !m_IsGuarded;
+ m_Region.GuardsDisabled = !m_IsGuarded;
}
}
}
diff --git a/Projects/UOContent/Engines/ConPVP/SafeZone.cs b/Projects/UOContent/Engines/ConPVP/SafeZone.cs
index ca4b5ac24..69ba11a66 100644
--- a/Projects/UOContent/Engines/ConPVP/SafeZone.cs
+++ b/Projects/UOContent/Engines/ConPVP/SafeZone.cs
@@ -14,7 +14,7 @@ namespace Server.Engines.ConPVP
{
GoLocation = goloc;
- Disabled = !isGuarded;
+ GuardsDisabled = !isGuarded;
Register();
}
diff --git a/Projects/UOContent/Mobiles/PlayerMobile.cs b/Projects/UOContent/Mobiles/PlayerMobile.cs
index bd2ecd665..59ef697d4 100644
--- a/Projects/UOContent/Mobiles/PlayerMobile.cs
+++ b/Projects/UOContent/Mobiles/PlayerMobile.cs
@@ -4416,10 +4416,10 @@ namespace Server.Mobiles
Map map;
var dungeon = Region.GetRegion();
- if (dungeon != null && dungeon.EntranceLocation != Point3D.Zero)
+ if (dungeon != null && dungeon.Entrance != Point3D.Zero)
{
- loc = dungeon.EntranceLocation;
- map = dungeon.EntranceMap;
+ loc = dungeon.Entrance;
+ map = dungeon.Map;
}
else
{
diff --git a/Projects/UOContent/Regions/BaseRegion.cs b/Projects/UOContent/Regions/BaseRegion.cs
index 41e73a5cc..f3e7873a8 100644
--- a/Projects/UOContent/Regions/BaseRegion.cs
+++ b/Projects/UOContent/Regions/BaseRegion.cs
@@ -1,178 +1,170 @@
using System;
using System.Collections.Generic;
-using System.Text.Json;
using Server.Gumps;
-using Server.Json;
using Server.Mobiles;
using Server.Spells;
-namespace Server.Regions
+namespace Server.Regions;
+
+public class BaseRegion : Region
{
- public class BaseRegion : Region
+ private static readonly List m_RectBuffer1 = new();
+ private static readonly List m_RectBuffer2 = new();
+
+ public BaseRegion(string name, Map map, int priority, params Rectangle2D[] area) : base(name, map, priority, area)
{
- private static readonly List m_RectBuffer1 = new();
- private static readonly List m_RectBuffer2 = new();
+ }
- public BaseRegion(string name, Map map, int priority, params Rectangle2D[] area) : base(name, map, priority, area)
- {
- }
+ public BaseRegion(string name, Map map, int priority, params Rectangle3D[] area) : base(name, map, priority, area)
+ {
+ }
- public BaseRegion(string name, Map map, int priority, params Rectangle3D[] area) : base(name, map, priority, area)
- {
- }
+ public BaseRegion(string name, Map map, Region parent, int priority, params Rectangle3D[] area)
+ : base(name, map, parent, priority, area)
+ {
+ }
- public BaseRegion(string name, Map map, Region parent, params Rectangle2D[] area) : base(name, map, parent, area)
- {
- }
+ public BaseRegion(string name, Map map, Region parent, params Rectangle2D[] area) : base(name, map, parent, area)
+ {
+ }
- public BaseRegion(string name, Map map, Region parent, params Rectangle3D[] area) : base(name, map, parent, area)
- {
- }
+ public BaseRegion(string name, Map map, Region parent, params Rectangle3D[] area) : base(name, map, parent, area)
+ {
+ }
- public BaseRegion(DynamicJson json, JsonSerializerOptions options) : base(json, options)
+ public bool ExcludeFromParentSpawns { get; set; }
+
+ public Rectangle3D[] Rectangles { get; private set; }
+ public int[] RectangleWeights { get; private set; }
+ public int TotalWeight { get; private set; }
+
+ public virtual bool YoungProtected => true;
+ public virtual bool YoungMayEnter => true;
+ public virtual bool MountsAllowed => true;
+ public virtual bool DeadMayEnter => true;
+ public virtual bool ResurrectionAllowed => true;
+ public virtual bool LogoutAllowed => true;
+
+ public string RuneName { get; set; }
+
+ public bool NoLogoutDelay { get; set; }
+
+ public static string GetRuneNameFor(Region region)
+ {
+ while (region != null)
{
- if (json.GetProperty("rune", options, out var runeName))
+ var br = region as BaseRegion;
+
+ if (br?.RuneName != null)
{
- RuneName = runeName;
+ return br.RuneName;
}
- NoLogoutDelay = json.GetProperty("logoutDelay", options, out var logoutDelay) && !logoutDelay;
+ region = region.Parent;
}
- public bool ExcludeFromParentSpawns { get; set; }
+ return null;
+ }
- public Rectangle3D[] Rectangles { get; private set; }
- public int[] RectangleWeights { get; private set; }
- public int TotalWeight { get; private set; }
+ public override TimeSpan GetLogoutDelay(Mobile m) =>
+ NoLogoutDelay && m.Aggressors.Count == 0 && m.Aggressed.Count == 0 && !m.Criminal
+ ? TimeSpan.Zero
+ : base.GetLogoutDelay(m);
- public virtual bool YoungProtected => true;
- public virtual bool YoungMayEnter => true;
- public virtual bool MountsAllowed => true;
- public virtual bool DeadMayEnter => true;
- public virtual bool ResurrectionAllowed => true;
- public virtual bool LogoutAllowed => true;
-
- public string RuneName { get; set; }
-
- public bool NoLogoutDelay { get; set; }
-
- public static string GetRuneNameFor(Region region)
+ public override void OnEnter(Mobile m)
+ {
+ if (m is PlayerMobile mobile && mobile.Young && !YoungProtected)
{
- while (region != null)
- {
- var br = region as BaseRegion;
+ mobile.SendGump(new YoungDungeonWarning());
+ }
+ }
- if (br?.RuneName != null)
+ public override bool AcceptsSpawnsFrom(Region region) =>
+ (region == this || !ExcludeFromParentSpawns) && base.AcceptsSpawnsFrom(region);
+
+ // TODO: Clean this up
+ public void InitRectangles()
+ {
+ if (Rectangles != null)
+ {
+ return;
+ }
+
+ // Test if area rectangles are overlapping, and in that case break them into smaller non overlapping rectangles
+ for (var i = 0; i < Area.Length; i++)
+ {
+ m_RectBuffer2.Add(Area[i]);
+
+ for (var j = 0; j < m_RectBuffer1.Count && m_RectBuffer2.Count > 0; j++)
+ {
+ var comp = m_RectBuffer1[j];
+
+ for (var k = m_RectBuffer2.Count - 1; k >= 0; k--)
{
- return br.RuneName;
- }
+ var rect = m_RectBuffer2[k];
- region = region.Parent;
- }
+ int l1 = rect.Start.X, r1 = rect.End.X, t1 = rect.Start.Y, b1 = rect.End.Y;
+ int l2 = comp.Start.X, r2 = comp.End.X, t2 = comp.Start.Y, b2 = comp.End.Y;
- return null;
- }
-
- public override TimeSpan GetLogoutDelay(Mobile m) =>
- NoLogoutDelay && m.Aggressors.Count == 0 && m.Aggressed.Count == 0 && !m.Criminal
- ? TimeSpan.Zero
- : base.GetLogoutDelay(m);
-
- public override void OnEnter(Mobile m)
- {
- if (m is PlayerMobile mobile && mobile.Young && !YoungProtected)
- {
- mobile.SendGump(new YoungDungeonWarning());
- }
- }
-
- public override bool AcceptsSpawnsFrom(Region region) =>
- (region == this || !ExcludeFromParentSpawns) && base.AcceptsSpawnsFrom(region);
-
- // TODO: Clean this up
- public void InitRectangles()
- {
- if (Rectangles != null)
- {
- return;
- }
-
- // Test if area rectangles are overlapping, and in that case break them into smaller non overlapping rectangles
- for (var i = 0; i < Area.Length; i++)
- {
- m_RectBuffer2.Add(Area[i]);
-
- for (var j = 0; j < m_RectBuffer1.Count && m_RectBuffer2.Count > 0; j++)
- {
- var comp = m_RectBuffer1[j];
-
- for (var k = m_RectBuffer2.Count - 1; k >= 0; k--)
+ if (l1 < r2 && r1 > l2 && t1 < b2 && b1 > t2)
{
- var rect = m_RectBuffer2[k];
+ m_RectBuffer2.RemoveAt(k);
- int l1 = rect.Start.X, r1 = rect.End.X, t1 = rect.Start.Y, b1 = rect.End.Y;
- int l2 = comp.Start.X, r2 = comp.End.X, t2 = comp.Start.Y, b2 = comp.End.Y;
+ var sz = rect.Start.Z;
+ var ez = rect.End.X;
- if (l1 < r2 && r1 > l2 && t1 < b2 && b1 > t2)
+ if (l1 < l2)
{
- m_RectBuffer2.RemoveAt(k);
+ m_RectBuffer2.Add(new Rectangle3D(new Point3D(l1, t1, sz), new Point3D(l2, b1, ez)));
+ }
- var sz = rect.Start.Z;
- var ez = rect.End.X;
+ if (r1 > r2)
+ {
+ m_RectBuffer2.Add(new Rectangle3D(new Point3D(r2, t1, sz), new Point3D(r1, b1, ez)));
+ }
- if (l1 < l2)
- {
- m_RectBuffer2.Add(new Rectangle3D(new Point3D(l1, t1, sz), new Point3D(l2, b1, ez)));
- }
+ if (t1 < t2)
+ {
+ m_RectBuffer2.Add(
+ new Rectangle3D(
+ new Point3D(Math.Max(l1, l2), t1, sz),
+ new Point3D(Math.Min(r1, r2), t2, ez)
+ )
+ );
+ }
- if (r1 > r2)
- {
- m_RectBuffer2.Add(new Rectangle3D(new Point3D(r2, t1, sz), new Point3D(r1, b1, ez)));
- }
-
- if (t1 < t2)
- {
- m_RectBuffer2.Add(
- new Rectangle3D(
- new Point3D(Math.Max(l1, l2), t1, sz),
- new Point3D(Math.Min(r1, r2), t2, ez)
- )
- );
- }
-
- if (b1 > b2)
- {
- m_RectBuffer2.Add(
- new Rectangle3D(
- new Point3D(Math.Max(l1, l2), b2, sz),
- new Point3D(Math.Min(r1, r2), b1, ez)
- )
- );
- }
+ if (b1 > b2)
+ {
+ m_RectBuffer2.Add(
+ new Rectangle3D(
+ new Point3D(Math.Max(l1, l2), b2, sz),
+ new Point3D(Math.Min(r1, r2), b1, ez)
+ )
+ );
}
}
}
-
- m_RectBuffer1.AddRange(m_RectBuffer2);
- m_RectBuffer2.Clear();
}
- Rectangles = m_RectBuffer1.ToArray();
- m_RectBuffer1.Clear();
-
- RectangleWeights = new int[Rectangles.Length];
- for (var i = 0; i < Rectangles.Length; i++)
- {
- var rect = Rectangles[i];
- var weight = rect.Width * rect.Height;
-
- RectangleWeights[i] = weight;
- TotalWeight += weight;
- }
+ m_RectBuffer1.AddRange(m_RectBuffer2);
+ m_RectBuffer2.Clear();
}
- public override string ToString() => Name ?? RuneName ?? GetType().Name;
+ Rectangles = m_RectBuffer1.ToArray();
+ m_RectBuffer1.Clear();
- public virtual bool CheckTravel(Mobile m, Point3D newLocation, TravelCheckType travelType) => true;
+ RectangleWeights = new int[Rectangles.Length];
+ for (var i = 0; i < Rectangles.Length; i++)
+ {
+ var rect = Rectangles[i];
+ var weight = rect.Width * rect.Height;
+
+ RectangleWeights[i] = weight;
+ TotalWeight += weight;
+ }
}
+
+ public override string ToString() => Name ?? RuneName ?? GetType().Name;
+
+ public virtual bool CheckTravel(Mobile m, Point3D newLocation, TravelCheckType travelType) => true;
}
diff --git a/Projects/UOContent/Regions/DungeonRegion.cs b/Projects/UOContent/Regions/DungeonRegion.cs
index 657ae4ef1..c930ce285 100644
--- a/Projects/UOContent/Regions/DungeonRegion.cs
+++ b/Projects/UOContent/Regions/DungeonRegion.cs
@@ -1,36 +1,26 @@
-using System.Text.Json;
-using Server.Json;
+namespace Server.Regions;
-namespace Server.Regions
+public class DungeonRegion : BaseRegion
{
- public class DungeonRegion : BaseRegion
+ public DungeonRegion(string name, Map map, Region parent, params Rectangle3D[] area) : base(name, map, parent, area)
{
- public DungeonRegion(DynamicJson json, JsonSerializerOptions options) : base(json, options)
- {
- if (json.GetProperty("map", options, out Map map))
- {
- EntranceMap = map;
- }
-
- if (json.GetProperty("entrance", options, out Point3D entrance))
- {
- EntranceLocation = entrance;
- }
- }
-
- public override bool YoungProtected => false;
-
- public Point3D EntranceLocation { get; set; }
-
- public Map EntranceMap { get; set; }
-
- public override bool AllowHousing(Mobile from, Point3D p) => false;
-
- public override void AlterLightLevel(Mobile m, ref int global, ref int personal)
- {
- global = LightCycle.DungeonLevel;
- }
-
- public override bool CanUseStuckMenu(Mobile m) => Map != Map.Felucca && base.CanUseStuckMenu(m);
}
+
+ public DungeonRegion(string name, Map map, Region parent, int priority, params Rectangle3D[] area)
+ : base(name, map, parent, priority, area)
+ {
+ }
+
+ public override bool YoungProtected => false;
+
+ public Point3D Entrance { get; set; }
+
+ public override bool AllowHousing(Mobile from, Point3D p) => false;
+
+ public override void AlterLightLevel(Mobile m, ref int global, ref int personal)
+ {
+ global = LightCycle.DungeonLevel;
+ }
+
+ public override bool CanUseStuckMenu(Mobile m) => Map != Map.Felucca && base.CanUseStuckMenu(m);
}
diff --git a/Projects/UOContent/Regions/GreenAcresRegion.cs b/Projects/UOContent/Regions/GreenAcresRegion.cs
index c7b7fc985..c827032d8 100644
--- a/Projects/UOContent/Regions/GreenAcresRegion.cs
+++ b/Projects/UOContent/Regions/GreenAcresRegion.cs
@@ -1,31 +1,33 @@
-using System.Text.Json;
-using Server.Json;
using Server.Spells;
using Server.Spells.Sixth;
-namespace Server.Regions
+namespace Server.Regions;
+
+public class GreenAcresRegion : BaseRegion
{
- public class GreenAcresRegion : BaseRegion
+ public GreenAcresRegion(string name, Map map, Region parent, params Rectangle3D[] area) : base(name, map, parent, area)
{
- public GreenAcresRegion(DynamicJson json, JsonSerializerOptions options) : base(json, options)
+ }
+
+ public GreenAcresRegion(string name, Map map, Region parent, int priority, params Rectangle3D[] area)
+ : base(name, map, parent, priority, area)
+ {
+ }
+
+ public override bool AllowHousing(Mobile from, Point3D p) =>
+ from.AccessLevel != AccessLevel.Player && base.AllowHousing(from, p);
+
+ public override bool CheckTravel(Mobile m, Point3D newLocation, TravelCheckType travelType) =>
+ m.AccessLevel != AccessLevel.Player;
+
+ public override bool OnBeginSpellCast(Mobile m, ISpell s)
+ {
+ if (m.AccessLevel == AccessLevel.Player && s is MarkSpell)
{
+ m.SendLocalizedMessage(501802); // Thy spell doth not appear to work...
+ return false;
}
- public override bool AllowHousing(Mobile from, Point3D p) =>
- from.AccessLevel != AccessLevel.Player && base.AllowHousing(from, p);
-
- public override bool CheckTravel(Mobile m, Point3D newLocation, TravelCheckType travelType) =>
- m.AccessLevel != AccessLevel.Player;
-
- public override bool OnBeginSpellCast(Mobile m, ISpell s)
- {
- if (m.AccessLevel == AccessLevel.Player && s is MarkSpell)
- {
- m.SendLocalizedMessage(501802); // Thy spell doth not appear to work...
- return false;
- }
-
- return base.OnBeginSpellCast(m, s);
- }
+ return base.OnBeginSpellCast(m, s);
}
}
diff --git a/Projects/UOContent/Regions/GuardedRegion.cs b/Projects/UOContent/Regions/GuardedRegion.cs
index dc1879ab5..0c2986539 100644
--- a/Projects/UOContent/Regions/GuardedRegion.cs
+++ b/Projects/UOContent/Regions/GuardedRegion.cs
@@ -1,131 +1,90 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using System.Text.Json;
-using Server.Json;
using Server.Logging;
using Server.Mobiles;
using Server.Utilities;
-namespace Server.Regions
+namespace Server.Regions;
+
+public class GuardedRegion : BaseRegion
{
- public class GuardedRegion : BaseRegion
+ private static readonly ILogger logger = LogFactory.GetLogger(typeof(GuardedRegion));
+
+ private static readonly object[] m_GuardParams = new object[1];
+
+ private readonly Dictionary m_GuardCandidates = new();
+
+ public GuardedRegion(string name, Map map, int priority, params Rectangle3D[] area) :
+ base(name, map, priority, area) => GuardType = DefaultGuardType;
+
+ public GuardedRegion(string name, Map map, int priority, params Rectangle2D[] area) :
+ base(name, map, priority, area) => GuardType = DefaultGuardType;
+
+ public GuardedRegion(string name, Map map, Region parent, params Rectangle3D[] area) : base(name, map, parent, area) =>
+ GuardType = DefaultGuardType;
+
+ public GuardedRegion(string name, Map map, Region parent, int priority, params Rectangle3D[] area)
+ : base(name, map, parent, priority, area) => GuardType = DefaultGuardType;
+
+ public GuardedRegion(string name, Map map, Region parent, int priority, Type guardType, params Rectangle3D[] area)
+ : base(name, map, parent, priority, area) => GuardType = guardType ?? DefaultGuardType;
+
+ public Type GuardType { get; set; }
+
+ public bool GuardsDisabled { get; set; }
+
+ public virtual bool AllowReds => Core.AOS;
+
+ public virtual Type DefaultGuardType
{
- private static readonly ILogger logger = LogFactory.GetLogger(typeof(GuardedRegion));
-
- private static readonly object[] m_GuardParams = new object[1];
-
- private readonly Dictionary m_GuardCandidates = new();
- private readonly Type m_GuardType;
-
- public GuardedRegion(string name, Map map, int priority, params Rectangle3D[] area) :
- base(name, map, priority, area) =>
- m_GuardType = DefaultGuardType;
-
- public GuardedRegion(string name, Map map, int priority, params Rectangle2D[] area) :
- base(name, map, priority, area) =>
- m_GuardType = DefaultGuardType;
-
- public GuardedRegion(DynamicJson json, JsonSerializerOptions options) : base(json, options)
+ get
{
- if (json.GetProperty("guardsType", options, out string guardType))
+ if (Map == Map.Ilshenar || Map == Map.Malas)
{
- m_GuardType = AssemblyHandler.FindTypeByName(guardType);
-
- if (!typeof(BaseGuard).IsAssignableFrom(m_GuardType))
- {
- logger.Warning("Invalid guard type for region '{Region}'", this);
- m_GuardType = DefaultGuardType;
- }
- }
- else
- {
- m_GuardType = DefaultGuardType;
+ return typeof(ArcherGuard);
}
- Disabled = json.GetProperty("guardsDisabled", options, out bool disabled) && disabled;
+ return typeof(WarriorGuard);
}
+ }
- public bool Disabled { get; set; }
+ public virtual bool IsDisabled() => GuardsDisabled;
- public virtual bool AllowReds => Core.AOS;
+ public static void Initialize()
+ {
+ CommandSystem.Register("CheckGuarded", AccessLevel.GameMaster, CheckGuarded_OnCommand);
+ CommandSystem.Register("SetGuarded", AccessLevel.Administrator, SetGuarded_OnCommand);
+ CommandSystem.Register("ToggleGuarded", AccessLevel.Administrator, ToggleGuarded_OnCommand);
+ }
- public virtual Type DefaultGuardType
+ [Usage("CheckGuarded"), Description("Returns a value indicating if the current region is guarded or not.")]
+ private static void CheckGuarded_OnCommand(CommandEventArgs e)
+ {
+ var from = e.Mobile;
+ var reg = from.Region.GetRegion();
+
+ if (reg == null)
{
- get
- {
- if (Map == Map.Ilshenar || Map == Map.Malas)
- {
- return typeof(ArcherGuard);
- }
-
- return typeof(WarriorGuard);
- }
+ from.SendMessage("You are not in a guardable region.");
}
-
- public virtual bool IsDisabled() => Disabled;
-
- public static void Initialize()
+ else if (reg.GuardsDisabled)
{
- CommandSystem.Register("CheckGuarded", AccessLevel.GameMaster, CheckGuarded_OnCommand);
- CommandSystem.Register("SetGuarded", AccessLevel.Administrator, SetGuarded_OnCommand);
- CommandSystem.Register("ToggleGuarded", AccessLevel.Administrator, ToggleGuarded_OnCommand);
+ from.SendMessage("The guards in this region have been disabled.");
}
-
- [Usage("CheckGuarded"), Description("Returns a value indicating if the current region is guarded or not.")]
- private static void CheckGuarded_OnCommand(CommandEventArgs e)
+ else
{
- var from = e.Mobile;
- var reg = from.Region.GetRegion();
-
- if (reg == null)
- {
- from.SendMessage("You are not in a guardable region.");
- }
- else if (reg.Disabled)
- {
- from.SendMessage("The guards in this region have been disabled.");
- }
- else
- {
- from.SendMessage("This region is actively guarded.");
- }
+ from.SendMessage("This region is actively guarded.");
}
+ }
- [Usage("SetGuarded "), Description("Enables or disables guards for the current region.")]
- private static void SetGuarded_OnCommand(CommandEventArgs e)
+ [Usage("SetGuarded "), Description("Enables or disables guards for the current region.")]
+ private static void SetGuarded_OnCommand(CommandEventArgs e)
+ {
+ var from = e.Mobile;
+
+ if (e.Length == 1)
{
- var from = e.Mobile;
-
- if (e.Length == 1)
- {
- var reg = from.Region.GetRegion();
-
- if (reg == null)
- {
- from.SendMessage("You are not in a guardable region.");
- }
- else
- {
- reg.Disabled = !e.GetBoolean(0);
-
- from.SendMessage(
- reg.Disabled
- ? "The guards in this region have been disabled."
- : "The guards in this region have been enabled."
- );
- }
- }
- else
- {
- from.SendMessage("Format: SetGuarded ");
- }
- }
-
- [Usage("ToggleGuarded"), Description("Toggles the state of guards for the current region.")]
- private static void ToggleGuarded_OnCommand(CommandEventArgs e)
- {
- var from = e.Mobile;
var reg = from.Region.GetRegion();
if (reg == null)
@@ -134,252 +93,278 @@ namespace Server.Regions
}
else
{
- reg.Disabled = !reg.Disabled;
+ reg.GuardsDisabled = !e.GetBoolean(0);
from.SendMessage(
- reg.Disabled
+ reg.GuardsDisabled
? "The guards in this region have been disabled."
: "The guards in this region have been enabled."
);
}
}
-
- public static GuardedRegion Disable(GuardedRegion reg)
+ else
{
- reg.Disabled = true;
- return reg;
+ from.SendMessage("Format: SetGuarded ");
+ }
+ }
+
+ [Usage("ToggleGuarded"), Description("Toggles the state of guards for the current region.")]
+ private static void ToggleGuarded_OnCommand(CommandEventArgs e)
+ {
+ var from = e.Mobile;
+ var reg = from.Region.GetRegion();
+
+ if (reg == null)
+ {
+ from.SendMessage("You are not in a guardable region.");
+ }
+ else
+ {
+ reg.GuardsDisabled = !reg.GuardsDisabled;
+
+ from.SendMessage(
+ reg.GuardsDisabled
+ ? "The guards in this region have been disabled."
+ : "The guards in this region have been enabled."
+ );
+ }
+ }
+
+ public static GuardedRegion Disable(GuardedRegion reg)
+ {
+ reg.GuardsDisabled = true;
+ return reg;
+ }
+
+ public virtual bool CheckVendorAccess(BaseVendor vendor, Mobile from) =>
+ from.AccessLevel >= AccessLevel.GameMaster || IsDisabled() || from.Kills < 5;
+
+ public override bool OnBeginSpellCast(Mobile m, ISpell s)
+ {
+ if (!IsDisabled() && !s.OnCastInTown(this))
+ {
+ m.SendLocalizedMessage(500946); // You cannot cast this in town!
+ return false;
}
- public virtual bool CheckVendorAccess(BaseVendor vendor, Mobile from) =>
- from.AccessLevel >= AccessLevel.GameMaster || IsDisabled() || from.Kills < 5;
+ return base.OnBeginSpellCast(m, s);
+ }
- public override bool OnBeginSpellCast(Mobile m, ISpell s)
+ public override bool AllowHousing(Mobile from, Point3D p) => false;
+
+ public override void MakeGuard(Mobile focus)
+ {
+ var eable = focus.GetMobilesInRange(8);
+ var useGuard = eable.FirstOrDefault(m => m.Focus == null);
+
+ eable.Free();
+
+ if (useGuard == null)
{
- if (!IsDisabled() && !s.OnCastInTown(this))
+ m_GuardParams[0] = focus;
+
+ try
{
- m.SendLocalizedMessage(500946); // You cannot cast this in town!
- return false;
+ GuardType.CreateInstance