Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/maps/random/mainland.js
Engine.LoadLibrary("rmgen"); | Engine.LoadLibrary("rmgen"); | ||||
Engine.LoadLibrary("rmgen-common"); | Engine.LoadLibrary("rmgen-common"); | ||||
Engine.LoadLibrary("rmbiome"); | Engine.LoadLibrary("rmbiome"); | ||||
lyv: This is now pulling a lot of code. And since rmgen2 maps are written with a wholly different… | |||||
setSelectedBiome(); | setSelectedBiome(); | ||||
const tMainTerrain = g_Terrains.mainTerrain; | const tMainTerrain = g_Terrains.mainTerrain; | ||||
const tForestFloor1 = g_Terrains.forestFloor1; | const tForestFloor1 = g_Terrains.forestFloor1; | ||||
const tForestFloor2 = g_Terrains.forestFloor2; | const tForestFloor2 = g_Terrains.forestFloor2; | ||||
const tCliff = g_Terrains.cliff; | const tCliff = g_Terrains.cliff; | ||||
const tTier1Terrain = g_Terrains.tier1Terrain; | const tTier1Terrain = g_Terrains.tier1Terrain; | ||||
Show All 37 Lines | |||||
var clHill = g_Map.createTileClass(); | var clHill = g_Map.createTileClass(); | ||||
var clForest = g_Map.createTileClass(); | var clForest = g_Map.createTileClass(); | ||||
var clDirt = g_Map.createTileClass(); | var clDirt = g_Map.createTileClass(); | ||||
var clRock = g_Map.createTileClass(); | var clRock = g_Map.createTileClass(); | ||||
var clMetal = g_Map.createTileClass(); | var clMetal = g_Map.createTileClass(); | ||||
var clFood = g_Map.createTileClass(); | var clFood = g_Map.createTileClass(); | ||||
var clBaseResource = g_Map.createTileClass(); | var clBaseResource = g_Map.createTileClass(); | ||||
if (g_Map.wantEvenPlayerSpacing()) { | |||||
placePlayerBases({ | placePlayerBases({ | ||||
"PlayerPlacement": playerPlacementCircle(fractionToTiles(0.35)), | "PlayerPlacement": playerPlacementCircle(fractionToTiles(0.35)), | ||||
Not Done Inline ActionsThis is the only relevant line. The placement code already lives in rmgen1, so its better to just use the rmgen1 base creation function and create one more function to handle dynamic patterns in rmgen-common/player.js. "PlayerPlacement": playerPlacementByPattern(g_MapSettings.TeamPlacement), // something like this, with perhaps map script local parameters in an object literal or something lyv: This is the only relevant line. The placement code already lives in rmgen1, so its better to… | |||||
"PlayerTileClass": clPlayer, | "PlayerTileClass": clPlayer, | ||||
"BaseResourceClass": clBaseResource, | "BaseResourceClass": clBaseResource, | ||||
Done Inline Actions@Jammyjamjamman , here for the second argument, and in African_Plains.js, shouldn't we be using `g_PlayerbaseTypes[pattern].distance' (note how it's done in Frontier.js). andy5995: @Jammyjamjamman , here for the second argument, and in African_Plains.js, shouldn't we be using… | |||||
"CityPatch": { | "CityPatch": { | ||||
"outerTerrain": tRoadWild, | "outerTerrain": tRoadWild, | ||||
"innerTerrain": tRoad | "innerTerrain": tRoad | ||||
}, | }, | ||||
"Chicken": { | "Chicken": { | ||||
}, | }, | ||||
"Berries": { | "Berries": { | ||||
"template": oFruitBush | "template": oFruitBush | ||||
}, | }, | ||||
"Mines": { | "Mines": { | ||||
"types": [ | "types": [ | ||||
{ "template": oMetalLarge }, | { "template": oMetalLarge }, | ||||
{ "template": oStoneLarge } | { "template": oStoneLarge } | ||||
] | ] | ||||
}, | }, | ||||
"Trees": { | "Trees": { | ||||
"template": oTree1, | "template": oTree1, | ||||
"count": 5 | "count": 5 | ||||
}, | }, | ||||
"Decoratives": { | "Decoratives": { | ||||
"template": aGrassShort | "template": aGrassShort | ||||
} | } | ||||
}); | }); | ||||
} | |||||
else { | |||||
placePlayerBases({ | |||||
"PlayerPlacement": [sortAllPlayers(), ...playerPlacementMultiArcs( | |||||
sortAllPlayers(), | |||||
g_Map.getCenter(), | |||||
fractionToTiles(0.35), | |||||
0, | |||||
0.75)], | |||||
"PlayerTileClass": clPlayer, | |||||
"BaseResourceClass": clBaseResource, | |||||
"CityPatch": { | |||||
"outerTerrain": tRoadWild, | |||||
"innerTerrain": tRoad | |||||
}, | |||||
"Chicken": { | |||||
}, | |||||
"Berries": { | |||||
"template": oFruitBush | |||||
}, | |||||
"Mines": { | |||||
"types": [ | |||||
{ "template": oMetalLarge }, | |||||
{ "template": oStoneLarge } | |||||
] | |||||
}, | |||||
"Trees": { | |||||
"template": oTree1, | |||||
"count": 5 | |||||
}, | |||||
"Decoratives": { | |||||
"template": aGrassShort | |||||
} | |||||
}); | |||||
} | |||||
Not Done Inline ActionsThis creates 20 or so tileclasses while using just one and several globals. lyv: This creates 20 or so tileclasses while using just one and several globals. | |||||
Engine.SetProgress(20); | Engine.SetProgress(20); | ||||
createBumps(avoidClasses(clPlayer, 20)); | createBumps(avoidClasses(clPlayer, 20)); | ||||
if (randBool()) | if (randBool()) | ||||
createHills([tCliff, tCliff, tHill], avoidClasses(clPlayer, 20, clHill, 15), clHill, scaleByMapSize(3, 15)); | createHills([tCliff, tCliff, tHill], avoidClasses(clPlayer, 20, clHill, 15), clHill, scaleByMapSize(3, 15)); | ||||
else | else | ||||
createMountains(tCliff, avoidClasses(clPlayer, 20, clHill, 15), clHill, scaleByMapSize(3, 15)); | createMountains(tCliff, avoidClasses(clPlayer, 20, clHill, 15), clHill, scaleByMapSize(3, 15)); | ||||
▲ Show 20 Lines • Show All 105 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator
This is now pulling a lot of code. And since rmgen2 maps are written with a wholly different pattern, most of it would be unused in rmgen1 style maps.