- 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>
1417 lines
25 KiB
JSON
1417 lines
25 KiB
JSON
[
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "04236803-3dc7-426b-8a8d-d927b1bd0086",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1279,
|
|
781,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1274,
|
|
"y1": 776,
|
|
"z1": -128,
|
|
"x2": 1285,
|
|
"y2": 787,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Ridgeback",
|
|
"maxCount": 2,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "063240fa-7f32-4bad-b79e-bf9c8ca7b9b9",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1108,
|
|
492,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 5,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1083,
|
|
"y1": 467,
|
|
"z1": -128,
|
|
"x2": 1134,
|
|
"y2": 518,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 25,
|
|
"entries": [
|
|
{
|
|
"name": "Hind",
|
|
"maxCount": 2,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "GreatHart",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "BlackBear",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "DireWolf",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "149dfca3-652c-4777-b005-a0cc95f30d9d",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1517,
|
|
541,
|
|
11
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1507,
|
|
"y1": 531,
|
|
"z1": -128,
|
|
"x2": 1528,
|
|
"y2": 552,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 20,
|
|
"entries": [
|
|
{
|
|
"name": "Lich",
|
|
"maxCount": 2,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "165f16c6-b66f-474a-aed6-0d6c2ee57123",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1715,
|
|
228,
|
|
78
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 6,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1705,
|
|
"y1": 218,
|
|
"z1": -128,
|
|
"x2": 1726,
|
|
"y2": 239,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 10,
|
|
"entries": [
|
|
{
|
|
"name": "StoneHarpy",
|
|
"maxCount": 3,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "StoneGargoyle",
|
|
"maxCount": 2,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Balron",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "17243bc5-68af-437f-bb95-963913a05306",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1191,
|
|
696,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1181,
|
|
"y1": 686,
|
|
"z1": -128,
|
|
"x2": 1202,
|
|
"y2": 707,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 10,
|
|
"entries": [
|
|
{
|
|
"name": "SavageRider",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "1b101011-42fa-41b1-b15c-f15fdcaaf6ec",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1517,
|
|
558,
|
|
5
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 6,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1497,
|
|
"y1": 538,
|
|
"z1": -128,
|
|
"x2": 1538,
|
|
"y2": 579,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 35,
|
|
"entries": [
|
|
{
|
|
"name": "Skeleton",
|
|
"maxCount": 6,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "1e1dd613-72d1-4715-b899-1086679533ab",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1665,
|
|
244,
|
|
93
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 5,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1640,
|
|
"y1": 219,
|
|
"z1": -128,
|
|
"x2": 1691,
|
|
"y2": 270,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 25,
|
|
"entries": [
|
|
{
|
|
"name": "EarthElemental",
|
|
"maxCount": 3,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Drake",
|
|
"maxCount": 2,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "1e2bfa6b-abe9-4dcd-b996-bc4dcdd17f9f",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1234,
|
|
760,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1224,
|
|
"y1": 750,
|
|
"z1": -128,
|
|
"x2": 1245,
|
|
"y2": 771,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 10,
|
|
"entries": [
|
|
{
|
|
"name": "SavageShaman",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "1f0236b1-b26e-4572-b03a-d53d94ab1a6a",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1110,
|
|
542,
|
|
-77
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 5,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1085,
|
|
"y1": 517,
|
|
"z1": -128,
|
|
"x2": 1136,
|
|
"y2": 568,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 25,
|
|
"entries": [
|
|
{
|
|
"name": "Hind",
|
|
"maxCount": 2,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "GreatHart",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "BlackBear",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "DireWolf",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "26a0cc2e-3dfc-49d7-9274-d993fc0371db",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1292,
|
|
755,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1288,
|
|
"y1": 751,
|
|
"z1": -128,
|
|
"x2": 1297,
|
|
"y2": 760,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Savage",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "34ad74fe-d7eb-4427-8c7e-e7658bd63156",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1363,
|
|
1046,
|
|
-13
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 4,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1348,
|
|
"y1": 1031,
|
|
"z1": -128,
|
|
"x2": 1379,
|
|
"y2": 1062,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 30,
|
|
"entries": [
|
|
{
|
|
"name": "EtherealWarrior",
|
|
"maxCount": 4,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "38614de6-1ed9-41a0-b30b-59ae8191316f",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1213,
|
|
719,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 4,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1203,
|
|
"y1": 709,
|
|
"z1": -128,
|
|
"x2": 1224,
|
|
"y2": 730,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 10,
|
|
"entries": [
|
|
{
|
|
"name": "Savage",
|
|
"maxCount": 3,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "SavageRider",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "3bfd2dc7-d6d7-4604-858f-246ed9b25d35",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1203,
|
|
762,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 3,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1193,
|
|
"y1": 752,
|
|
"z1": -128,
|
|
"x2": 1214,
|
|
"y2": 773,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 10,
|
|
"entries": [
|
|
{
|
|
"name": "Savage",
|
|
"maxCount": 3,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "4befab4e-1b1a-4290-ae76-6c176b48a18a",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1046,
|
|
517,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 7,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1031,
|
|
"y1": 502,
|
|
"z1": -128,
|
|
"x2": 1062,
|
|
"y2": 533,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 15,
|
|
"entries": [
|
|
{
|
|
"name": "SavageRider",
|
|
"maxCount": 3,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Savage",
|
|
"maxCount": 4,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "56b2d766-8057-4400-913f-6c10a5155f98",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1251,
|
|
703,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 3,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1241,
|
|
"y1": 693,
|
|
"z1": -128,
|
|
"x2": 1262,
|
|
"y2": 714,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 10,
|
|
"entries": [
|
|
{
|
|
"name": "Savage",
|
|
"maxCount": 3,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "59ae00b4-1b69-42de-8faa-670350014ad7",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1116,
|
|
527,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1101,
|
|
"y1": 512,
|
|
"z1": -128,
|
|
"x2": 1132,
|
|
"y2": 543,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 15,
|
|
"entries": [
|
|
{
|
|
"name": "Savage",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "SavageRidgeback",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "5a5f79c6-3813-428e-a5fe-00893d247556",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1161,
|
|
668,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1156,
|
|
"y1": 663,
|
|
"z1": -128,
|
|
"x2": 1167,
|
|
"y2": 674,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{
|
|
"name": "Savage",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "5f1d23bd-e6c8-422e-b69e-a88d61fa61c0",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1243,
|
|
732,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 5,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1233,
|
|
"y1": 722,
|
|
"z1": -128,
|
|
"x2": 1254,
|
|
"y2": 743,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 10,
|
|
"entries": [
|
|
{
|
|
"name": "Savage",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "SavageShaman",
|
|
"maxCount": 3,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "SavageRider",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "64e33b76-ba88-4906-a91f-4b56dea52a81",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1181,
|
|
691,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1177,
|
|
"y1": 687,
|
|
"z1": -128,
|
|
"x2": 1186,
|
|
"y2": 696,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Savage",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "6ac6b235-2d7c-4058-bc8d-d7f73cd17d5a",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
817,
|
|
1065,
|
|
-30
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 26,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 757,
|
|
"y1": 1005,
|
|
"z1": -128,
|
|
"x2": 878,
|
|
"y2": 1126,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 70,
|
|
"entries": [
|
|
{
|
|
"name": "Ogre",
|
|
"maxCount": 5,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "OgreLord",
|
|
"maxCount": 2,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Ratman",
|
|
"maxCount": 10,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "RatmanMage",
|
|
"maxCount": 5,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "RatmanArcher",
|
|
"maxCount": 4,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "6c8f4381-39be-4530-bfc3-1478035c1aa5",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1108,
|
|
492,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 3,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1083,
|
|
"y1": 467,
|
|
"z1": -128,
|
|
"x2": 1134,
|
|
"y2": 518,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 25,
|
|
"entries": [
|
|
{
|
|
"name": "Bird",
|
|
"maxCount": 3,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "72ce5891-f2dd-4a3c-8019-199928c49dcc",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1231,
|
|
694,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 3,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1221,
|
|
"y1": 684,
|
|
"z1": -128,
|
|
"x2": 1242,
|
|
"y2": 705,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 10,
|
|
"entries": [
|
|
{
|
|
"name": "Savage",
|
|
"maxCount": 2,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "SavageShaman",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "7f13f3fa-2330-4dd5-9985-164d8e240659",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1180,
|
|
1188,
|
|
-25
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 5,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1165,
|
|
"y1": 1173,
|
|
"z1": -128,
|
|
"x2": 1196,
|
|
"y2": 1204,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 15,
|
|
"entries": [
|
|
{
|
|
"name": "Snake",
|
|
"maxCount": 5,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "824d3710-eb67-4f27-8917-6debd7c8e2ca",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1517,
|
|
552,
|
|
10
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 6,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1502,
|
|
"y1": 537,
|
|
"z1": -128,
|
|
"x2": 1533,
|
|
"y2": 568,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 30,
|
|
"entries": [
|
|
{
|
|
"name": "Spectre",
|
|
"maxCount": 6,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Shade",
|
|
"maxCount": 6,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Wraith",
|
|
"maxCount": 6,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "86ff8b56-5d0c-4218-80d4-749414e3f568",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1191,
|
|
696,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1186,
|
|
"y1": 691,
|
|
"z1": -128,
|
|
"x2": 1197,
|
|
"y2": 702,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 7,
|
|
"entries": [
|
|
{
|
|
"name": "Savage",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "88f2279d-e351-4611-8255-206a456394d6",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1110,
|
|
542,
|
|
-77
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 3,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1085,
|
|
"y1": 517,
|
|
"z1": -128,
|
|
"x2": 1136,
|
|
"y2": 568,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 25,
|
|
"entries": [
|
|
{
|
|
"name": "Bird",
|
|
"maxCount": 3,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "917aa704-acc1-49ce-81c6-401f0604b260",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1274,
|
|
728,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1264,
|
|
"y1": 718,
|
|
"z1": -128,
|
|
"x2": 1285,
|
|
"y2": 739,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 10,
|
|
"entries": [
|
|
{
|
|
"name": "Savage",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "93476fd0-4859-4358-90ab-4371f8c1ac40",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1181,
|
|
1189,
|
|
-25
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1169,
|
|
"y1": 1177,
|
|
"z1": -128,
|
|
"x2": 1194,
|
|
"y2": 1202,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 12,
|
|
"entries": [
|
|
{
|
|
"name": "GiantSerpent",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "9b71629a-ede8-4fba-bd86-63a895c4c422",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1214,
|
|
744,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 4,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1204,
|
|
"y1": 734,
|
|
"z1": -128,
|
|
"x2": 1225,
|
|
"y2": 755,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 10,
|
|
"entries": [
|
|
{
|
|
"name": "Savage",
|
|
"maxCount": 4,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "9d3ed0a0-e458-4fa9-bc94-008304706893",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1516,
|
|
557,
|
|
4
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 7,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1496,
|
|
"y1": 537,
|
|
"z1": -128,
|
|
"x2": 1537,
|
|
"y2": 578,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 35,
|
|
"entries": [
|
|
{
|
|
"name": "Ghoul",
|
|
"maxCount": 2,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Zombie",
|
|
"maxCount": 5,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "9fce7b2d-3671-4d8e-bf22-19c10ec5709f",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1280,
|
|
770,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1273,
|
|
"y1": 763,
|
|
"z1": -128,
|
|
"x2": 1288,
|
|
"y2": 778,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 7,
|
|
"entries": [
|
|
{
|
|
"name": "Savage",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "c4c688bb-cf62-4b3d-84bd-2633333c0242",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1517,
|
|
552,
|
|
10
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 6,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1502,
|
|
"y1": 537,
|
|
"z1": -128,
|
|
"x2": 1533,
|
|
"y2": 568,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 30,
|
|
"entries": [
|
|
{
|
|
"name": "SkeletalKnight",
|
|
"maxCount": 3,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "BoneKnight",
|
|
"maxCount": 3,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "SkeletalMage",
|
|
"maxCount": 3,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "BoneMagi",
|
|
"maxCount": 3,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "c671596f-69b6-45df-a106-b8fce71aa156",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1517,
|
|
541,
|
|
61
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1513,
|
|
"y1": 537,
|
|
"z1": -128,
|
|
"x2": 1522,
|
|
"y2": 546,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 10,
|
|
"entries": [
|
|
{
|
|
"name": "LichLord",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "e0710f4e-9d44-4e1e-be0d-3f560d5f52c6",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1643,
|
|
310,
|
|
48
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 21,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1613,
|
|
"y1": 280,
|
|
"z1": -128,
|
|
"x2": 1674,
|
|
"y2": 341,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 50,
|
|
"entries": [
|
|
{
|
|
"name": "Phoenix",
|
|
"maxCount": 2,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "FireElemental",
|
|
"maxCount": 4,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "HellHound",
|
|
"maxCount": 5,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "LavaSerpent",
|
|
"maxCount": 4,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "LavaLizard",
|
|
"maxCount": 4,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Daemon",
|
|
"maxCount": 2,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "eb0f7637-62d3-483f-835e-248e48ffdc44",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1187,
|
|
685,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1183,
|
|
"y1": 681,
|
|
"z1": -128,
|
|
"x2": 1192,
|
|
"y2": 690,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 4,
|
|
"entries": [
|
|
{
|
|
"name": "Savage",
|
|
"maxCount": 1,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "ed8774de-7f1f-4f40-bb03-0ff9e7d1ff31",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1262,
|
|
758,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 4,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1252,
|
|
"y1": 748,
|
|
"z1": -128,
|
|
"x2": 1273,
|
|
"y2": 769,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 10,
|
|
"entries": [
|
|
{
|
|
"name": "Savage",
|
|
"maxCount": 4,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "ef56cf38-1547-41ad-adc4-ba72aa156f87",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1127,
|
|
1112,
|
|
-34
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 7,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1102,
|
|
"y1": 1087,
|
|
"z1": -128,
|
|
"x2": 1153,
|
|
"y2": 1138,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 35,
|
|
"entries": [
|
|
{
|
|
"name": "DireWolf",
|
|
"maxCount": 7,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "TimberWolf",
|
|
"maxCount": 7,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "f216ee7b-bb49-415a-aace-924f1778e3cc",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1643,
|
|
310,
|
|
48
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 4,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1613,
|
|
"y1": 280,
|
|
"z1": -128,
|
|
"x2": 1674,
|
|
"y2": 341,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 50,
|
|
"entries": [
|
|
{
|
|
"name": "Succubus",
|
|
"maxCount": 2,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "Efreet",
|
|
"maxCount": 2,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "fb0b433c-9d26-4a0f-b9a0-4ddb16ea1904",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1046,
|
|
517,
|
|
-80
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 4,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1039,
|
|
"y1": 510,
|
|
"z1": -128,
|
|
"x2": 1054,
|
|
"y2": 525,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 10,
|
|
"entries": [
|
|
{
|
|
"name": "SavageShaman",
|
|
"maxCount": 4,
|
|
"probability": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "fb1de953-cfdd-46d6-aab9-68cbdfe60780",
|
|
"name": "Spawner (311)",
|
|
"location": [
|
|
1203,
|
|
1138,
|
|
-25
|
|
],
|
|
"map": "Ilshenar",
|
|
"count": 16,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": {
|
|
"x1": 1163,
|
|
"y1": 1098,
|
|
"z1": -128,
|
|
"x2": 1244,
|
|
"y2": 1179,
|
|
"z2": 128
|
|
},
|
|
"walkingRange": 55,
|
|
"entries": [
|
|
{
|
|
"name": "MeerWarrior",
|
|
"maxCount": 16,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "MeerCaptain",
|
|
"maxCount": 16,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "MeerMage",
|
|
"maxCount": 16,
|
|
"probability": 100
|
|
},
|
|
{
|
|
"name": "MeerEternal",
|
|
"maxCount": 16,
|
|
"probability": 100
|
|
}
|
|
]
|
|
}
|
|
]
|