- Rename "type" -> "$type" (first key, required for STJ polymorphism) in all 109 spawn JSON files (5,612 records). - Convert "homeRange" + "location" -> "spawnBounds" object, dropping homeRange. Runtime keeps reading homeRange so un-migrated/external files still load. - Add BoundsEquivalenceTests (hr=0/1/3/7) validating that the script's toBounds formula produces the same Rectangle3D as the runtime homeRange path. - Add MigratedDataLoadTests loading a real migrated file as List<SpawnerDto> and round-tripping each DTO through ToSpawner(). - Add tools/spawner-json-migrate/migrate.mjs (offline Node script). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1494 lines
26 KiB
JSON
1494 lines
26 KiB
JSON
[
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "03112703-010a-4495-90de-3dceafabf6bb",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
502,
|
|
589,
|
|
24
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 499,
|
|
"y1": 586,
|
|
"z1": -128,
|
|
"x2": 506,
|
|
"y2": 593,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 3,
|
|
"entries": [
|
|
{
|
|
"name": "WanderingHealer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "0360875a-9408-4f4a-a42c-200f359baccb",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
756,
|
|
1302,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 756,
|
|
"y1": 1302,
|
|
"z1": 25,
|
|
"x2": 757,
|
|
"y2": 1303,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Armorer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "1159a610-a01a-4cac-841f-ca37fcf2ab21",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
1177,
|
|
985,
|
|
38
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1174,
|
|
"y1": 982,
|
|
"z1": -128,
|
|
"x2": 1181,
|
|
"y2": 989,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 3,
|
|
"entries": [
|
|
{
|
|
"name": "WanderingHealer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "117e79c9-e92c-4094-89af-ceef02b6d875",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
724,
|
|
1297,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 724,
|
|
"y1": 1297,
|
|
"z1": 25,
|
|
"x2": 725,
|
|
"y2": 1298,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Jeweler",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "11f9b7fa-b1ea-4a93-848a-5339c852afa5",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
695,
|
|
1297,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 695,
|
|
"y1": 1297,
|
|
"z1": 25,
|
|
"x2": 696,
|
|
"y2": 1298,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Mage",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "1457ebfc-398e-415e-b091-20427af4fb70",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
691,
|
|
1264,
|
|
47
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 691,
|
|
"y1": 1264,
|
|
"z1": 47,
|
|
"x2": 692,
|
|
"y2": 1265,
|
|
"z2": 47
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Mapmaker",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "152e7156-8c9c-4aae-a560-7972868cbc57",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
789,
|
|
1278,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 789,
|
|
"y1": 1278,
|
|
"z1": 25,
|
|
"x2": 790,
|
|
"y2": 1279,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "AnimalTrainer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "15590b9b-8815-4906-8e9e-d08a54b6a2f1",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
773,
|
|
1248,
|
|
26
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 773,
|
|
"y1": 1248,
|
|
"z1": 26,
|
|
"x2": 774,
|
|
"y2": 1249,
|
|
"z2": 26
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Blacksmith",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "16523597-999a-4504-aa59-7b01c881978d",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
689,
|
|
1255,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 689,
|
|
"y1": 1255,
|
|
"z1": 25,
|
|
"x2": 690,
|
|
"y2": 1256,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Scribe",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "1990cbea-3f71-44da-aec2-0af4e07e3618",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
702,
|
|
1298,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 702,
|
|
"y1": 1298,
|
|
"z1": 25,
|
|
"x2": 703,
|
|
"y2": 1299,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Alchemist",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "1b386724-c26f-4714-80b3-edaaa46b3ab4",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
683,
|
|
1298,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 683,
|
|
"y1": 1298,
|
|
"z1": 25,
|
|
"x2": 684,
|
|
"y2": 1299,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Herbalist",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "1bef801b-5ac8-4cde-a3bd-71fff904d997",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
679,
|
|
1207,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 679,
|
|
"y1": 1207,
|
|
"z1": 25,
|
|
"x2": 680,
|
|
"y2": 1208,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 0,
|
|
"entries": [
|
|
{
|
|
"name": "InnKeeper",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "1f9e3288-f988-4ea3-95e8-251aa38d064c",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
692,
|
|
1213,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 692,
|
|
"y1": 1213,
|
|
"z1": 25,
|
|
"x2": 693,
|
|
"y2": 1214,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "TavernKeeper",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "21467215-aae1-4e1c-bf72-1137b91b71eb",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
730,
|
|
1282,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 730,
|
|
"y1": 1282,
|
|
"z1": 25,
|
|
"x2": 731,
|
|
"y2": 1283,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Provisioner",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "294130b1-fd5a-4cef-9c68-a5491f5e59c6",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
226,
|
|
786,
|
|
57
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 223,
|
|
"y1": 783,
|
|
"z1": -128,
|
|
"x2": 230,
|
|
"y2": 790,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 3,
|
|
"entries": [
|
|
{
|
|
"name": "WanderingHealer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "30f1eaf5-633e-494a-aadb-2997f3e8d0a4",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
735,
|
|
1256,
|
|
30
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 30,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 675,
|
|
"y1": 1196,
|
|
"z1": -128,
|
|
"x2": 796,
|
|
"y2": 1317,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 80,
|
|
"entries": [
|
|
{
|
|
"name": "Noble",
|
|
"maxCount": 10,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Peasant",
|
|
"maxCount": 10,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "hirebeggar",
|
|
"maxCount": 10,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Samurai",
|
|
"maxCount": 10,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Ninja",
|
|
"maxCount": 10,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "33f10364-0097-42d5-95b1-c3f73750fda0",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
720,
|
|
1213,
|
|
45
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 720,
|
|
"y1": 1213,
|
|
"z1": 45,
|
|
"x2": 721,
|
|
"y2": 1214,
|
|
"z2": 45
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Tinker",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "3df1960a-2e81-4997-ab85-3f1062065c7d",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
763,
|
|
247,
|
|
71
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 760,
|
|
"y1": 244,
|
|
"z1": -128,
|
|
"x2": 767,
|
|
"y2": 251,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 3,
|
|
"entries": [
|
|
{
|
|
"name": "WanderingHealer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "448a5e8c-0682-488b-ba85-4a457ed8329c",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
742,
|
|
1304,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 742,
|
|
"y1": 1304,
|
|
"z1": 25,
|
|
"x2": 743,
|
|
"y2": 1305,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Armorer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "4830fbdc-9c83-4e22-af7a-cd868807eb9c",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
297,
|
|
637,
|
|
15
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 295,
|
|
"y1": 635,
|
|
"z1": -128,
|
|
"x2": 300,
|
|
"y2": 640,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 2,
|
|
"entries": [
|
|
{
|
|
"name": "WanderingHealer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "57f4d4ba-3841-4d12-bec6-37b059c49840",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
248,
|
|
1089,
|
|
10
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 245,
|
|
"y1": 1086,
|
|
"z1": -128,
|
|
"x2": 252,
|
|
"y2": 1093,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 3,
|
|
"entries": [
|
|
{
|
|
"name": "WanderingHealer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "5ada367e-0bcb-487e-9e44-ef259bfec2c7",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
781,
|
|
1219,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 781,
|
|
"y1": 1219,
|
|
"z1": 25,
|
|
"x2": 782,
|
|
"y2": 1220,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Healer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "67fe5dc9-67d2-4e5f-afab-03691f497fed",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
661,
|
|
1209,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 661,
|
|
"y1": 1209,
|
|
"z1": 25,
|
|
"x2": 662,
|
|
"y2": 1210,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Blacksmith",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "698d030e-cf3f-40fd-be6e-4a92866dbfb1",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
668,
|
|
1254,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 668,
|
|
"y1": 1254,
|
|
"z1": 25,
|
|
"x2": 669,
|
|
"y2": 1255,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "BardGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "7dad1cc2-dfab-490e-915f-8d00ed39f14c",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
749,
|
|
1303,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 745,
|
|
"y1": 1299,
|
|
"z1": -128,
|
|
"x2": 754,
|
|
"y2": 1308,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Armorer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Weaponsmith",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "80122c8e-85c4-41a7-a347-d8c0074e6031",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
371,
|
|
431,
|
|
32
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 366,
|
|
"y1": 426,
|
|
"z1": -128,
|
|
"x2": 377,
|
|
"y2": 437,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "WanderingHealer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "840e2e09-7a7e-43cc-a5d0-a5be3d4e00d6",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
669,
|
|
1266,
|
|
47
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 669,
|
|
"y1": 1266,
|
|
"z1": 47,
|
|
"x2": 670,
|
|
"y2": 1267,
|
|
"z2": 47
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Shipwright",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "876d5b73-9f59-4446-8144-dd997bf93916",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
1152,
|
|
936,
|
|
65
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1149,
|
|
"y1": 933,
|
|
"z1": -128,
|
|
"x2": 1156,
|
|
"y2": 940,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 3,
|
|
"entries": [
|
|
{
|
|
"name": "WanderingHealer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "8c714386-6b61-4f4e-9eec-f75cd78010a6",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
732,
|
|
1256,
|
|
30
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 732,
|
|
"y1": 1256,
|
|
"z1": 30,
|
|
"x2": 733,
|
|
"y2": 1257,
|
|
"z2": 30
|
|
},
|
|
"walkingRange": 0,
|
|
"entries": [
|
|
{
|
|
"name": "TownCrier",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "901b6857-11f1-4c9f-bb1f-1399406dc3b6",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
399,
|
|
549,
|
|
15
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 396,
|
|
"y1": 546,
|
|
"z1": -128,
|
|
"x2": 403,
|
|
"y2": 553,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 3,
|
|
"entries": [
|
|
{
|
|
"name": "WanderingHealer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "95447e64-a9d3-45ca-81c7-318441ca97d4",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
1111,
|
|
495,
|
|
18
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1108,
|
|
"y1": 492,
|
|
"z1": -128,
|
|
"x2": 1115,
|
|
"y2": 499,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 3,
|
|
"entries": [
|
|
{
|
|
"name": "WanderingHealer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "97d04faf-bf2f-4085-bdb9-2a6538c4a97a",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
720,
|
|
1211,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 720,
|
|
"y1": 1211,
|
|
"z1": 25,
|
|
"x2": 721,
|
|
"y2": 1212,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Tanner",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "a4b62432-203b-4b3e-894c-651e62d68567",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
739,
|
|
1223,
|
|
45
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 739,
|
|
"y1": 1223,
|
|
"z1": 45,
|
|
"x2": 740,
|
|
"y2": 1224,
|
|
"z2": 45
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Carpenter",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "af820fc2-57d8-4b19-9a54-9bb57f9736cb",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
1221,
|
|
494,
|
|
27
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1218,
|
|
"y1": 491,
|
|
"z1": -128,
|
|
"x2": 1225,
|
|
"y2": 498,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 3,
|
|
"entries": [
|
|
{
|
|
"name": "WanderingHealer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "b4b940cb-17ef-4234-842c-2bdcbd7827f0",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
779,
|
|
1259,
|
|
26
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 779,
|
|
"y1": 1259,
|
|
"z1": 26,
|
|
"x2": 780,
|
|
"y2": 1260,
|
|
"z2": 26
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Weaponsmith",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "b5b2efe1-d96b-4d37-ac13-ec6251ad23f9",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
895,
|
|
519,
|
|
53
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 893,
|
|
"y1": 517,
|
|
"z1": -128,
|
|
"x2": 898,
|
|
"y2": 522,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 2,
|
|
"entries": [
|
|
{
|
|
"name": "WanderingHealer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "b65649fc-1b3a-4124-b063-0f0e7b35d3d2",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
979,
|
|
238,
|
|
21
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 974,
|
|
"y1": 233,
|
|
"z1": -128,
|
|
"x2": 985,
|
|
"y2": 244,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "WanderingHealer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "bdc0117b-2e5b-458b-90ca-0f3bfa5489e8",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
703,
|
|
1262,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 3,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 703,
|
|
"y1": 1262,
|
|
"z1": 25,
|
|
"x2": 704,
|
|
"y2": 1263,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 10,
|
|
"entries": [
|
|
{
|
|
"name": "Baker",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Butcher",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Cook",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "cfc1714e-8851-4cf8-a9a5-bb1d4d9236b0",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
558,
|
|
534,
|
|
32
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 555,
|
|
"y1": 531,
|
|
"z1": -128,
|
|
"x2": 562,
|
|
"y2": 538,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 3,
|
|
"entries": [
|
|
{
|
|
"name": "WanderingHealer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "d001030a-99d7-4146-83f9-b5e1aff453b0",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
729,
|
|
1249,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 729,
|
|
"y1": 1249,
|
|
"z1": 25,
|
|
"x2": 730,
|
|
"y2": 1250,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Banker",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "d64f79d1-bb69-4aab-8099-04cc92244b60",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
806,
|
|
1308,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 806,
|
|
"y1": 1308,
|
|
"z1": 25,
|
|
"x2": 807,
|
|
"y2": 1309,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Weaponsmith",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "dc6b9648-9165-491e-87b2-f5950d8e38ad",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
744,
|
|
1210,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 744,
|
|
"y1": 1210,
|
|
"z1": 25,
|
|
"x2": 745,
|
|
"y2": 1211,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Weaver",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "e081b4f9-5c48-4808-82e7-f8bb95309a19",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
744,
|
|
1219,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 744,
|
|
"y1": 1219,
|
|
"z1": 25,
|
|
"x2": 745,
|
|
"y2": 1220,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Tailor",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "f44766ae-31e3-46fa-94ce-869a53621012",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
662,
|
|
1210,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 662,
|
|
"y1": 1210,
|
|
"z1": 25,
|
|
"x2": 663,
|
|
"y2": 1211,
|
|
"z2": 25
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Blacksmith",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "f50b6789-7be4-43f0-a1be-c53e85a6997b",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
675,
|
|
1265,
|
|
25
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 671,
|
|
"y1": 1261,
|
|
"z1": -128,
|
|
"x2": 680,
|
|
"y2": 1270,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Bard",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "f6481ae3-b345-40ab-aaa2-2eea59aee211",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
781,
|
|
1301,
|
|
26
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 781,
|
|
"y1": 1301,
|
|
"z1": 26,
|
|
"x2": 782,
|
|
"y2": 1302,
|
|
"z2": 26
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Bowyer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "fb70140d-b0d9-41c7-9975-c8136c4ee686",
|
|
"name": "Spawner (504)",
|
|
"location": [
|
|
1166,
|
|
802,
|
|
27
|
|
],
|
|
"map": "Tokuno",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1163,
|
|
"y1": 799,
|
|
"z1": -128,
|
|
"x2": 1170,
|
|
"y2": 806,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 3,
|
|
"entries": [
|
|
{
|
|
"name": "WanderingHealer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
}
|
|
]
|