Index: binaries/data/mods/public/maps/random/mainland.js =================================================================== --- binaries/data/mods/public/maps/random/mainland.js +++ binaries/data/mods/public/maps/random/mainland.js @@ -1,5 +1,6 @@ Engine.LoadLibrary("rmgen"); Engine.LoadLibrary("rmgen-common"); +Engine.LoadLibrary("rmgen2"); Engine.LoadLibrary("rmbiome"); setSelectedBiome(); @@ -45,7 +46,6 @@ const numPlayers = getNumPlayers(); -var clPlayer = g_Map.createTileClass(); var clHill = g_Map.createTileClass(); var clForest = g_Map.createTileClass(); var clDirt = g_Map.createTileClass(); @@ -54,31 +54,18 @@ var clFood = g_Map.createTileClass(); var clBaseResource = g_Map.createTileClass(); -placePlayerBases({ - "PlayerPlacement": playerPlacementCircle(fractionToTiles(0.35)), - "PlayerTileClass": clPlayer, - "BaseResourceClass": clBaseResource, - "CityPatch": { - "outerTerrain": tRoadWild, - "innerTerrain": tRoad - }, - "StartingAnimal": { - }, - "Berries": { - "template": oFruitBush - }, - "Mines": { - "types": [ - { "template": oMetalLarge }, - { "template": oStoneLarge } - ] - }, - "Trees": { - "template": oTree1, - "count": 5 - } - // No decoratives -}); +initTileClasses(); + +if (!isNomad()) +{ + let pattern = g_MapSettings.TeamPlacement || pickRandom(Object.keys(g_PlayerbaseTypes)); + createBasesByPattern( + pattern, + g_PlayerbaseTypes[pattern].distance, + g_PlayerbaseTypes[pattern].groupedDistance, + randomAngle()); +} +var clPlayer = g_TileClasses.player; Engine.SetProgress(20); createBumps(avoidClasses(clPlayer, 20)); Index: binaries/data/mods/public/maps/random/mainland.json =================================================================== --- binaries/data/mods/public/maps/random/mainland.json +++ binaries/data/mods/public/maps/random/mainland.json @@ -6,6 +6,7 @@ "Preview" : "mainland.png", "Keywords": ["multiplayer"], "SupportedBiomes": "generic/", - "CircularMap" : true + "CircularMap" : true, + "TeamPlacements": ["radial", "line", "randomGroup", "stronghold"] } }