Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/binaries/data/mods/public/maps/random/unknown.js
RMS.LoadLibrary("rmgen"); | RMS.LoadLibrary("rmgen"); | ||||
TILE_CENTERED_HEIGHT_MAP = true; | TILE_CENTERED_HEIGHT_MAP = true; | ||||
//random terrain textures | |||||
var random_terrain = randomizeBiome(); | setSelectedBiome(); | ||||
const tMainTerrain = rBiomeT1(); | const tMainTerrain = rBiomeT1(); | ||||
const tForestFloor1 = rBiomeT2(); | const tForestFloor1 = rBiomeT2(); | ||||
const tForestFloor2 = rBiomeT3(); | const tForestFloor2 = rBiomeT3(); | ||||
const tCliff = rBiomeT4(); | const tCliff = rBiomeT4(); | ||||
const tTier1Terrain = rBiomeT5(); | const tTier1Terrain = rBiomeT5(); | ||||
const tTier2Terrain = rBiomeT6(); | const tTier2Terrain = rBiomeT6(); | ||||
const tTier3Terrain = rBiomeT7(); | const tTier3Terrain = rBiomeT7(); | ||||
▲ Show 20 Lines • Show All 1,746 Lines • ▼ Show 20 Lines | createAreas( | ||||
placer, | placer, | ||||
[terrainPainter, elevationPainter, paintClass(clHill)], | [terrainPainter, elevationPainter, paintClass(clHill)], | ||||
[avoidClasses(clPlayer, 20, clHill, randIntInclusive(6, 18)), stayClasses(clLand, 0)], | [avoidClasses(clPlayer, 20, clHill, randIntInclusive(6, 18)), stayClasses(clLand, 0)], | ||||
randIntInclusive(0, scaleByMapSize(4, 8))*randIntInclusive(1, scaleByMapSize(4, 9)) | randIntInclusive(0, scaleByMapSize(4, 8))*randIntInclusive(1, scaleByMapSize(4, 9)) | ||||
); | ); | ||||
var multiplier = sqrt(randFloat(0.5,1.2)*randFloat(0.5,1.2)); | var multiplier = sqrt(randFloat(0.5,1.2)*randFloat(0.5,1.2)); | ||||
// calculate desired number of trees for map (based on size) | // calculate desired number of trees for map (based on size) | ||||
if (random_terrain == g_BiomeSavanna) | if (currentBiome() == g_BiomeSavanna) | ||||
{ | { | ||||
var MIN_TREES = floor(200*multiplier); | var MIN_TREES = floor(200*multiplier); | ||||
var MAX_TREES = floor(1250*multiplier); | var MAX_TREES = floor(1250*multiplier); | ||||
var P_FOREST = randFloat(0.02, 0.05); | var P_FOREST = randFloat(0.02, 0.05); | ||||
} | } | ||||
else if (random_terrain == g_BiomeTropic) | else if (currentBiome() == g_BiomeTropic) | ||||
{ | { | ||||
var MIN_TREES = floor(1000*multiplier); | var MIN_TREES = floor(1000*multiplier); | ||||
var MAX_TREES = floor(6000*multiplier); | var MAX_TREES = floor(6000*multiplier); | ||||
var P_FOREST = randFloat(0.5, 0.7); | var P_FOREST = randFloat(0.5, 0.7); | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
var MIN_TREES = floor(500*multiplier); | var MIN_TREES = floor(500*multiplier); | ||||
var MAX_TREES = floor(3000*multiplier); | var MAX_TREES = floor(3000*multiplier); | ||||
var P_FOREST = randFloat(0.5,0.8); | var P_FOREST = randFloat(0.5,0.8); | ||||
} | } | ||||
var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES); | var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES); | ||||
var numForest = totalTrees * P_FOREST; | var numForest = totalTrees * P_FOREST; | ||||
var numStragglers = totalTrees * (1.0 - P_FOREST); | var numStragglers = totalTrees * (1.0 - P_FOREST); | ||||
// create forests | // create forests | ||||
log("Creating forests..."); | log("Creating forests..."); | ||||
var types = [ | var types = [ | ||||
[[tForestFloor2, tMainTerrain, pForest1], [tForestFloor2, pForest1]], | [[tForestFloor2, tMainTerrain, pForest1], [tForestFloor2, pForest1]], | ||||
[[tForestFloor1, tMainTerrain, pForest2], [tForestFloor1, pForest2]] | [[tForestFloor1, tMainTerrain, pForest2], [tForestFloor1, pForest2]] | ||||
]; // some variation | ]; // some variation | ||||
if (random_terrain == g_BiomeSavanna) | if (currentBiome() == g_BiomeSavanna) | ||||
var size = numForest / (0.5 * scaleByMapSize(2,8) * numPlayers); | var size = numForest / (0.5 * scaleByMapSize(2,8) * numPlayers); | ||||
else | else | ||||
var size = numForest / (scaleByMapSize(2,8) * numPlayers); | var size = numForest / (scaleByMapSize(2,8) * numPlayers); | ||||
var num = floor(size / types.length); | var num = floor(size / types.length); | ||||
for (var i = 0; i < types.length; ++i) | for (var i = 0; i < types.length; ++i) | ||||
{ | { | ||||
placer = new ClumpPlacer(numForest / num, 0.1, 0.1, 1); | placer = new ClumpPlacer(numForest / num, 0.1, 0.1, 1); | ||||
Show All 9 Lines | for (var i = 0; i < types.length; ++i) | ||||
); | ); | ||||
} | } | ||||
RMS.SetProgress(50); | RMS.SetProgress(50); | ||||
// create dirt patches | // create dirt patches | ||||
log("Creating dirt patches..."); | log("Creating dirt patches..."); | ||||
var sizes = [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)]; | var sizes = [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)]; | ||||
var numb = 1; | var numb = 1; | ||||
if (random_terrain == g_BiomeSavanna) | if (currentBiome() == g_BiomeSavanna) | ||||
numb = 3; | numb = 3; | ||||
for (var i = 0; i < sizes.length; i++) | for (var i = 0; i < sizes.length; i++) | ||||
{ | { | ||||
placer = new ClumpPlacer(sizes[i], 0.3, 0.06, 0.5); | placer = new ClumpPlacer(sizes[i], 0.3, 0.06, 0.5); | ||||
painter = new LayeredPainter( | painter = new LayeredPainter( | ||||
[[tMainTerrain,tTier1Terrain],[tTier1Terrain,tTier2Terrain], [tTier2Terrain,tTier3Terrain]], // terrains | [[tMainTerrain,tTier1Terrain],[tTier1Terrain,tTier2Terrain], [tTier2Terrain,tTier3Terrain]], // terrains | ||||
[1,1] // widths | [1,1] // widths | ||||
); | ); | ||||
▲ Show 20 Lines • Show All 135 Lines • ▼ Show 20 Lines | for (var i = 0; i < types.length; ++i) | ||||
); | ); | ||||
createObjectGroupsDeprecated(group, 0, | createObjectGroupsDeprecated(group, 0, | ||||
[avoidClasses(clWater, 1, clForest, 1, clHill, 1, clPlayer, 0, clMetal, 6, clRock, 6), stayClasses(clLand, 4)], | [avoidClasses(clWater, 1, clForest, 1, clHill, 1, clPlayer, 0, clMetal, 6, clRock, 6), stayClasses(clLand, 4)], | ||||
num | num | ||||
); | ); | ||||
} | } | ||||
var planetm = 1; | var planetm = 1; | ||||
if (random_terrain == g_BiomeTropic) | if (currentBiome() == g_BiomeTropic) | ||||
planetm = 8; | planetm = 8; | ||||
//create small grass tufts | //create small grass tufts | ||||
log("Creating small grass tufts..."); | log("Creating small grass tufts..."); | ||||
group = new SimpleGroup( | group = new SimpleGroup( | ||||
[new SimpleObject(aGrassShort, 1,2, 0,1, -PI/8,PI/8)] | [new SimpleObject(aGrassShort, 1,2, 0,1, -PI/8,PI/8)] | ||||
); | ); | ||||
createObjectGroupsDeprecated(group, 0, | createObjectGroupsDeprecated(group, 0, | ||||
▲ Show 20 Lines • Show All 44 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator