- 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>
1640 lines
29 KiB
JSON
1640 lines
29 KiB
JSON
[
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "0457d1c2-1736-4b97-96be-0625a8a08c91",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1497,
|
|
614,
|
|
-14
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1497,
|
|
"y1": 614,
|
|
"z1": -14,
|
|
"x2": 1498,
|
|
"y2": 615,
|
|
"z2": -14
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Armorer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Weaponsmith",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "07dcfcfd-1f11-4fe7-8cc5-d1981fb1e74f",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
868,
|
|
657,
|
|
-40
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 868,
|
|
"y1": 657,
|
|
"z1": -40,
|
|
"x2": 869,
|
|
"y2": 658,
|
|
"z2": -40
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Scribe",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "12d3edd5-4ebb-41a7-82ff-2d2ab3c4adef",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1318,
|
|
1328,
|
|
-14
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1318,
|
|
"y1": 1328,
|
|
"z1": -14,
|
|
"x2": 1319,
|
|
"y2": 1329,
|
|
"z2": -14
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Provisioner",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Cobbler",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "14094381-ef68-4f89-b700-0d824d8968b2",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1261,
|
|
582,
|
|
-18
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1261,
|
|
"y1": 582,
|
|
"z1": -18,
|
|
"x2": 1262,
|
|
"y2": 583,
|
|
"z2": -18
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Blacksmith",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "BlacksmithGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "20c754a1-ce9b-4068-89ae-b50d95a64c82",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
854,
|
|
680,
|
|
-40
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 854,
|
|
"y1": 680,
|
|
"z1": -40,
|
|
"x2": 855,
|
|
"y2": 681,
|
|
"z2": -40
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Banker",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Minter",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "2b7c425b-7a52-414a-a76a-cb0734c3165c",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1388,
|
|
428,
|
|
-23
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1388,
|
|
"y1": 428,
|
|
"z1": -23,
|
|
"x2": 1389,
|
|
"y2": 429,
|
|
"z2": -23
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "GypsyAnimalTrainer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "2d27bf3f-df46-48bb-a611-a0f17e8d1051",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1226,
|
|
554,
|
|
-12
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1226,
|
|
"y1": 554,
|
|
"z1": -12,
|
|
"x2": 1227,
|
|
"y2": 555,
|
|
"z2": -12
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "GypsyBanker",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "305ecea0-47a1-4561-bf25-5d879a152003",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
859,
|
|
698,
|
|
-40
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 859,
|
|
"y1": 698,
|
|
"z1": -40,
|
|
"x2": 860,
|
|
"y2": 699,
|
|
"z2": -40
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Jeweler",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "32050353-d0d9-4b06-afee-a65fae031a98",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
896,
|
|
610,
|
|
-40
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 896,
|
|
"y1": 610,
|
|
"z1": -40,
|
|
"x2": 897,
|
|
"y2": 611,
|
|
"z2": -40
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "TailorGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "33de0f8c-f6ba-4e9b-a09b-dc36c96db2ea",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1394,
|
|
441,
|
|
13
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1394,
|
|
"y1": 441,
|
|
"z1": 13,
|
|
"x2": 1395,
|
|
"y2": 442,
|
|
"z2": 13
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "FortuneTeller",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "37693d18-5f7b-4461-b8a3-49202500e8da",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1235,
|
|
543,
|
|
-15
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1235,
|
|
"y1": 543,
|
|
"z1": -15,
|
|
"x2": 1236,
|
|
"y2": 544,
|
|
"z2": -15
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "FortuneTeller",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "3ba1aca3-914a-4c73-91b0-12e42056659e",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1499,
|
|
619,
|
|
-19
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1499,
|
|
"y1": 619,
|
|
"z1": -19,
|
|
"x2": 1500,
|
|
"y2": 620,
|
|
"z2": -19
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "AnimalTrainer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "4d6ef24f-8252-459b-a03b-d6fdaeb96597",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
872,
|
|
586,
|
|
-40
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 872,
|
|
"y1": 586,
|
|
"z1": -40,
|
|
"x2": 873,
|
|
"y2": 587,
|
|
"z2": -40
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Healer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "HealerGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "4e5b8807-7ced-4f40-ae49-c4507b82fb78",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1253,
|
|
588,
|
|
-19
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1253,
|
|
"y1": 588,
|
|
"z1": -19,
|
|
"x2": 1254,
|
|
"y2": 589,
|
|
"z2": -19
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Tinker",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "TinkerGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "5053b0d7-ca6f-4156-bb35-28f937b1db6b",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
824,
|
|
602,
|
|
-40
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 824,
|
|
"y1": 602,
|
|
"z1": -40,
|
|
"x2": 825,
|
|
"y2": 603,
|
|
"z2": -40
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Provisioner",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Cobbler",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "52da389e-73f7-493e-b830-88dc0c4525f4",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1598,
|
|
539,
|
|
-19
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1598,
|
|
"y1": 539,
|
|
"z1": -19,
|
|
"x2": 1599,
|
|
"y2": 540,
|
|
"z2": -19
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Provisioner",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Cobbler",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "5568a6cc-21a3-4550-9cc2-3ad836c7983b",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1600,
|
|
552,
|
|
-16
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 3,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1600,
|
|
"y1": 552,
|
|
"z1": -16,
|
|
"x2": 1601,
|
|
"y2": 553,
|
|
"z2": -16
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Tailor",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Weaver",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "TailorGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "5d0135b3-074b-49ae-b850-25281059b466",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
575,
|
|
537,
|
|
-69
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 575,
|
|
"y1": 537,
|
|
"z1": -69,
|
|
"x2": 576,
|
|
"y2": 538,
|
|
"z2": -69
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Healer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "HealerGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "6670bd00-6ae7-43fd-a102-f77c877c6107",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1518,
|
|
619,
|
|
-19
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1518,
|
|
"y1": 619,
|
|
"z1": -19,
|
|
"x2": 1519,
|
|
"y2": 620,
|
|
"z2": -19
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Healer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "HealerGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "68189f98-29d3-49e2-a415-c57862584b26",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1628,
|
|
548,
|
|
-11
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1628,
|
|
"y1": 548,
|
|
"z1": -11,
|
|
"x2": 1629,
|
|
"y2": 549,
|
|
"z2": -11
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Healer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "HealerGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "69fd06d1-04cb-457e-bbd9-e02475f6c4a8",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
896,
|
|
610,
|
|
-40
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 896,
|
|
"y1": 610,
|
|
"z1": -40,
|
|
"x2": 897,
|
|
"y2": 611,
|
|
"z2": -40
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Tailor",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Weaver",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "6ce1b420-27ed-4adf-9ba2-0eeb9b0600fe",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
826,
|
|
679,
|
|
-40
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 826,
|
|
"y1": 679,
|
|
"z1": -40,
|
|
"x2": 827,
|
|
"y2": 680,
|
|
"z2": -40
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Provisioner",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Cobbler",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "724e9d36-13e4-4abc-ac60-18aa45fd712f",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
792,
|
|
665,
|
|
0
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 792,
|
|
"y1": 665,
|
|
"z1": 0,
|
|
"x2": 793,
|
|
"y2": 666,
|
|
"z2": 0
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Blacksmith",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "BlacksmithGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "751c4f29-04b6-4c50-b914-591862159429",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
808,
|
|
586,
|
|
-40
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 808,
|
|
"y1": 586,
|
|
"z1": -40,
|
|
"x2": 809,
|
|
"y2": 587,
|
|
"z2": -40
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Armorer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Weaponsmith",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "7c9b9466-17bc-4285-8c04-294fa9b2b885",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1400,
|
|
434,
|
|
-11
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1400,
|
|
"y1": 434,
|
|
"z1": -11,
|
|
"x2": 1401,
|
|
"y2": 435,
|
|
"z2": -11
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "GypsyMaiden",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "81fc796d-04ed-48fb-a783-ad6ce619b116",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
808,
|
|
697,
|
|
-40
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 808,
|
|
"y1": 697,
|
|
"z1": -40,
|
|
"x2": 809,
|
|
"y2": 698,
|
|
"z2": -40
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Armorer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Weaponsmith",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "826d7ee8-c78b-47ea-9ead-b30014afbe4d",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
791,
|
|
618,
|
|
0
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 791,
|
|
"y1": 618,
|
|
"z1": 0,
|
|
"x2": 792,
|
|
"y2": 619,
|
|
"z2": 0
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "StoneCrafter",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "84e30990-a039-4283-9bf3-00d8e70489de",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
840,
|
|
707,
|
|
0
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 840,
|
|
"y1": 707,
|
|
"z1": 0,
|
|
"x2": 841,
|
|
"y2": 708,
|
|
"z2": 0
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "InnKeeper",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "93dc7896-715b-44ad-b6e5-01a37dd42f81",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1405,
|
|
439,
|
|
2
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1405,
|
|
"y1": 439,
|
|
"z1": 2,
|
|
"x2": 1406,
|
|
"y2": 440,
|
|
"z2": 2
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "GypsyBanker",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "9a08c2d8-b7b6-4b2f-b550-008e42f3a68b",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
855,
|
|
603,
|
|
-40
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 855,
|
|
"y1": 603,
|
|
"z1": -40,
|
|
"x2": 856,
|
|
"y2": 604,
|
|
"z2": -40
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Banker",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Minter",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "9c4eb8ed-3851-4ff2-80a6-a0c6f6c3f948",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
774,
|
|
1144,
|
|
-30
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 774,
|
|
"y1": 1144,
|
|
"z1": -30,
|
|
"x2": 775,
|
|
"y2": 1145,
|
|
"z2": -30
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "InnKeeper",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "9fffcfc7-2091-4013-b643-205c9567c311",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1505,
|
|
611,
|
|
-19
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 3,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1505,
|
|
"y1": 611,
|
|
"z1": -19,
|
|
"x2": 1506,
|
|
"y2": 612,
|
|
"z2": -19
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Mage",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Alchemist",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "MageGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "b40eb968-c112-4c66-a331-b96a7d08622b",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1514,
|
|
611,
|
|
-14
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1514,
|
|
"y1": 611,
|
|
"z1": -14,
|
|
"x2": 1515,
|
|
"y2": 612,
|
|
"z2": -14
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Baker",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "b523ffff-8496-40a1-b051-f2e81e74263c",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1610,
|
|
556,
|
|
-19
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1610,
|
|
"y1": 556,
|
|
"z1": -19,
|
|
"x2": 1611,
|
|
"y2": 557,
|
|
"z2": -19
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Banker",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Minter",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "ba48a4cb-841e-4be5-8ef9-1f06970d1829",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1093,
|
|
955,
|
|
-38
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1093,
|
|
"y1": 955,
|
|
"z1": -38,
|
|
"x2": 1094,
|
|
"y2": 956,
|
|
"z2": -38
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Healer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "HealerGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "bae2beb6-304b-4002-b459-680d881199e5",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1566,
|
|
1049,
|
|
-8
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1566,
|
|
"y1": 1049,
|
|
"z1": -8,
|
|
"x2": 1567,
|
|
"y2": 1050,
|
|
"z2": -8
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "InnKeeper",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "bce87417-e533-491a-8a6a-734227db69db",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1225,
|
|
563,
|
|
-18
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1225,
|
|
"y1": 563,
|
|
"z1": -18,
|
|
"x2": 1226,
|
|
"y2": 564,
|
|
"z2": -18
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "GypsyAnimalTrainer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "c8e54c5c-c4fb-4aa2-8da2-40d6c7c23d72",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1605,
|
|
541,
|
|
-13
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1605,
|
|
"y1": 541,
|
|
"z1": -13,
|
|
"x2": 1606,
|
|
"y2": 542,
|
|
"z2": -13
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Jeweler",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "ce3b9e5a-5028-4768-86ca-ebc7591eb49d",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
840,
|
|
571,
|
|
0
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 3,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 840,
|
|
"y1": 571,
|
|
"z1": 0,
|
|
"x2": 841,
|
|
"y2": 572,
|
|
"z2": 0
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Mage",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Glassblower",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "MageGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "d10ff188-6468-434f-b032-dc92db16a183",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
284,
|
|
536,
|
|
-24
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 284,
|
|
"y1": 536,
|
|
"z1": -24,
|
|
"x2": 285,
|
|
"y2": 537,
|
|
"z2": -24
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Healer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "HealerGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "d3f80bac-4411-4382-8781-582340ff4f03",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1620,
|
|
554,
|
|
-20
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1620,
|
|
"y1": 554,
|
|
"z1": -20,
|
|
"x2": 1621,
|
|
"y2": 555,
|
|
"z2": -20
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "InnKeeper",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "de233679-dda4-4826-be6f-66a66bc3ed0c",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
869,
|
|
625,
|
|
-40
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 869,
|
|
"y1": 625,
|
|
"z1": -40,
|
|
"x2": 870,
|
|
"y2": 626,
|
|
"z2": -40
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Scribe",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "e9c58794-1e68-4a12-8e96-fe9695224e36",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1364,
|
|
1051,
|
|
-13
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1364,
|
|
"y1": 1051,
|
|
"z1": -13,
|
|
"x2": 1365,
|
|
"y2": 1052,
|
|
"z2": -13
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Healer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "HealerGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "ee8d0d83-c586-49d8-8de2-038e1d6f2848",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
682,
|
|
297,
|
|
-41
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 682,
|
|
"y1": 297,
|
|
"z1": -41,
|
|
"x2": 683,
|
|
"y2": 298,
|
|
"z2": -41
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Healer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "HealerGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "f38481b6-0a95-44e0-af74-8cc94195e282",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
369,
|
|
1432,
|
|
15
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 369,
|
|
"y1": 1432,
|
|
"z1": 15,
|
|
"x2": 370,
|
|
"y2": 1433,
|
|
"z2": 15
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Healer",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "HealerGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "f4a51238-7658-469e-9ff3-eec8ba035f95",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
665,
|
|
665,
|
|
-35
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 665,
|
|
"y1": 665,
|
|
"z1": -35,
|
|
"x2": 666,
|
|
"y2": 666,
|
|
"z2": -35
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "InnKeeper",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "fd5a6f5e-87cf-40c3-bbf6-d42f59e8f730",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
766,
|
|
641,
|
|
0
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 766,
|
|
"y1": 641,
|
|
"z1": 0,
|
|
"x2": 767,
|
|
"y2": 642,
|
|
"z2": 0
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Tinker",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "TinkerGuildmaster",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "ff91a9cc-14c5-4a0d-a138-20f24c30cee0",
|
|
"name": "Spawner (312)",
|
|
"location": [
|
|
1407,
|
|
428,
|
|
-8
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1407,
|
|
"y1": 428,
|
|
"z1": -8,
|
|
"x2": 1408,
|
|
"y2": 429,
|
|
"z2": -8
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "FortuneTeller",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
}
|
|
]
|