- 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>
530 lines
10 KiB
JSON
530 lines
10 KiB
JSON
[
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "0c48edf9-a88e-45f1-9ba3-cd8c919aefbc",
|
|
"name": "Spawner",
|
|
"location": [
|
|
823,
|
|
2274,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 6,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableCabbage",
|
|
"maxCount": 6,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Cabbage Field in Skara Brae 2"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "0c6481ab-3341-4113-ac1a-6523c19c881d",
|
|
"name": "Spawner",
|
|
"location": [
|
|
1216,
|
|
1604,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 6,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableTurnip",
|
|
"maxCount": 6,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Turnip Field in Britain 2"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "2bf378f0-77ed-44cd-8dfb-181d068f401e",
|
|
"name": "Spawner",
|
|
"location": [
|
|
843,
|
|
2352,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 6,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableWheat",
|
|
"maxCount": 6,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Wheatfield in Skara Brae 2"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "3d7925bf-2642-4185-bc03-fa314fb75a7f",
|
|
"name": "Spawner",
|
|
"location": [
|
|
675,
|
|
1179,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 10,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "Sheep",
|
|
"maxCount": 10,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Field of Sheep in Yew 2"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "425ac125-1597-41b4-9e6d-72b91801230b",
|
|
"name": "Spawner",
|
|
"location": [
|
|
675,
|
|
939,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 10,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "Sheep",
|
|
"maxCount": 10,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Field of Sheep in Yew 1"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "427451dd-93fa-43c9-85c6-01536066c8cc",
|
|
"name": "Spawner",
|
|
"location": [
|
|
823,
|
|
2254,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 6,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableCarrot",
|
|
"maxCount": 6,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Carrot Field in Skara Brae"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "4b4e3973-d836-4f7c-b9f7-5fb7d468da28",
|
|
"name": "Spawner",
|
|
"location": [
|
|
4567,
|
|
1475,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 8,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableCotton",
|
|
"maxCount": 8,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Cotton Field in Moonglow"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "57da6436-6b16-4697-add5-f4b45776ccbc",
|
|
"name": "Spawner",
|
|
"location": [
|
|
813,
|
|
2163,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 6,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableWheat",
|
|
"maxCount": 6,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Wheatfield in Skara Brae 1"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "57f955bb-49e1-4a66-a214-4fbddf8d572b",
|
|
"name": "Spawner",
|
|
"location": [
|
|
1231,
|
|
1723,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 8,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableOnion",
|
|
"maxCount": 8,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "An Onion Field in Britain 1"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "58b14343-2032-4507-a913-6b536507c2e5",
|
|
"name": "Spawner",
|
|
"location": [
|
|
1199,
|
|
1823,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 8,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableWheat",
|
|
"maxCount": 8,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Wheatfield in Britain 2"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "640fe3f8-9917-4dfa-986d-038923163add",
|
|
"name": "Spawner",
|
|
"location": [
|
|
823,
|
|
2264,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 6,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableOnion",
|
|
"maxCount": 6,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "An Onion Field in Skara Brae"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "7b09d4b5-fe63-4f95-8525-3c970c513adc",
|
|
"name": "Spawner",
|
|
"location": [
|
|
1232,
|
|
1604,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 6,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableCarrot",
|
|
"maxCount": 6,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Carrot Field in Britain 2"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "8536c19c-2036-495a-a3c5-e82c9f32f5ad",
|
|
"name": "Spawner",
|
|
"location": [
|
|
1183,
|
|
1683,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 8,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableCabbage",
|
|
"maxCount": 8,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Cabbage Field in Britain 1"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "9805ef58-355f-4352-bfc4-43c6710ff409",
|
|
"name": "Spawner",
|
|
"location": [
|
|
1215,
|
|
1723,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 8,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableCarrot",
|
|
"maxCount": 8,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Carrot Field in Britain 1"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "aed692cc-2dac-4c80-931b-35c73ca8d092",
|
|
"name": "Spawner",
|
|
"location": [
|
|
571,
|
|
1099,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 10,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "Sheep",
|
|
"maxCount": 10,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Farm in Yew"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "b29b54ab-5ae3-4ce3-93ac-326f324a34f6",
|
|
"name": "Spawner",
|
|
"location": [
|
|
1135,
|
|
1791,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 8,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableWheat",
|
|
"maxCount": 8,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Wheatfield in Britain 1"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "bba64d97-11eb-4a87-b326-e41e3c9b355d",
|
|
"name": "Spawner",
|
|
"location": [
|
|
375,
|
|
1191,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 6,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableWheat",
|
|
"maxCount": 6,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Wheatfield in Yew 2"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "d8a2e54e-4951-468f-93c5-376460070cba",
|
|
"name": "Spawner",
|
|
"location": [
|
|
1199,
|
|
1683,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 8,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableTurnip",
|
|
"maxCount": 8,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Turnip Field in Britain 1"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "e37b4d74-c87e-4102-8c87-8f80c728fe0c",
|
|
"name": "Spawner",
|
|
"location": [
|
|
567,
|
|
1239,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 5,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableWheat",
|
|
"maxCount": 5,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Wheatfield in Yew 1"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "e416e9fa-5a9a-426b-962e-50cdce64ca7f",
|
|
"name": "Spawner",
|
|
"location": [
|
|
1152,
|
|
1576,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 8,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableWheat",
|
|
"maxCount": 8,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Wheatfield in Britain 5"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "e6a4aede-5a76-473d-8331-4bb73701ea1a",
|
|
"name": "Spawner",
|
|
"location": [
|
|
1120,
|
|
1624,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 8,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableWheat",
|
|
"maxCount": 8,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Wheatfield in Britain 4"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "e7b34039-ec1f-43c8-b64f-d7462ce7ae9d",
|
|
"name": "Spawner",
|
|
"location": [
|
|
823,
|
|
2355,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 6,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableCotton",
|
|
"maxCount": 6,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Cotton Field in Skara Brae"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "f4bccdc2-c663-4ccd-b7df-31656fa2ae09",
|
|
"name": "Spawner",
|
|
"location": [
|
|
823,
|
|
2264,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 6,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableCabbage",
|
|
"maxCount": 6,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Cabbage Field in Skara Brae 1"
|
|
},
|
|
{
|
|
"$type": "RegionSpawner",
|
|
"guid": "f68b6bc8-f822-4c7a-9d01-37fad25bc95b",
|
|
"name": "Spawner",
|
|
"location": [
|
|
1231,
|
|
1887,
|
|
0
|
|
],
|
|
"map": "Felucca",
|
|
"count": 8,
|
|
"minDelay": "00:00:10",
|
|
"maxDelay": "00:00:30",
|
|
"entries": [
|
|
{
|
|
"name": "FarmableWheat",
|
|
"maxCount": 8,
|
|
"probability": 100
|
|
}
|
|
],
|
|
"region": "A Wheatfield in Britain 3"
|
|
}
|
|
]
|