Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/maps/random/phoenician_levant.js
Show First 20 Lines • Show All 217 Lines • ▼ Show 20 Lines | for (var ix = 0; ix < mapSize; ix++) | ||||
} | } | ||||
} | } | ||||
RMS.SetProgress(40); | RMS.SetProgress(40); | ||||
// create bumps | // create bumps | ||||
log("Creating bumps..."); | log("Creating bumps..."); | ||||
placer = new ClumpPlacer(scaleByMapSize(20, 50), 0.3, 0.06, 1); | placer = new ClumpPlacer(scaleByMapSize(20, 50), 0.3, 0.06, 1); | ||||
painter = new SmoothElevationPainter(ELEVATION_MODIFY, 2, 2); | painter = new SmoothElevationPainter(ELEVATION_MODIFY, 2, 2); | ||||
createAreas( | createAreasDeprecated( | ||||
placer, | placer, | ||||
painter, | painter, | ||||
avoidClasses(clWater, 2, clPlayer, 20), | avoidClasses(clWater, 2, clPlayer, 20), | ||||
scaleByMapSize(100, 200) | scaleByMapSize(100, 200) | ||||
); | ); | ||||
// create hills | // create hills | ||||
log("Creating hills..."); | log("Creating hills..."); | ||||
placer = new ChainPlacer(1, floor(scaleByMapSize(4, 6)), floor(scaleByMapSize(16, 40)), 0.5); | placer = new ChainPlacer(1, floor(scaleByMapSize(4, 6)), floor(scaleByMapSize(16, 40)), 0.5); | ||||
var terrainPainter = new LayeredPainter( | var terrainPainter = new LayeredPainter( | ||||
[tCliff, tHill], // terrains | [tCliff, tHill], // terrains | ||||
[2] // widths | [2] // widths | ||||
); | ); | ||||
var elevationPainter = new SmoothElevationPainter(ELEVATION_SET, 15, 2); | var elevationPainter = new SmoothElevationPainter(ELEVATION_SET, 15, 2); | ||||
createAreas( | createAreasDeprecated( | ||||
placer, | placer, | ||||
[terrainPainter, elevationPainter, paintClass(clHill)], | [terrainPainter, elevationPainter, paintClass(clHill)], | ||||
avoidClasses(clPlayer, 20, clForest, 1, clHill, 15, clWater, 0), | avoidClasses(clPlayer, 20, clForest, 1, clHill, 15, clWater, 0), | ||||
scaleByMapSize(1, 4) * numPlayers * 3 | scaleByMapSize(1, 4) * numPlayers * 3 | ||||
); | ); | ||||
// calculate desired number of trees for map (based on size) | // calculate desired number of trees for map (based on size) | ||||
const MIN_TREES = 500; | const MIN_TREES = 500; | ||||
const MAX_TREES = 2500; | const MAX_TREES = 2500; | ||||
const P_FOREST = 0.5; | const P_FOREST = 0.5; | ||||
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 num = scaleByMapSize(10,42); | var num = scaleByMapSize(10,42); | ||||
placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), numForest / (num * floor(scaleByMapSize(2,5))), 0.5); | placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), numForest / (num * floor(scaleByMapSize(2,5))), 0.5); | ||||
painter = new TerrainPainter([tForestFloor, pForest]); | painter = new TerrainPainter([tForestFloor, pForest]); | ||||
createAreas(placer, [painter, paintClass(clForest)], | createAreasDeprecated(placer, [painter, paintClass(clForest)], | ||||
avoidClasses(clPlayer, 20, clForest, 10, clWater, 1, clHill, 1, clBaseResource, 3), | avoidClasses(clPlayer, 20, clForest, 10, clWater, 1, clHill, 1, clBaseResource, 3), | ||||
num, 50 | num, 50 | ||||
); | ); | ||||
RMS.SetProgress(50); | RMS.SetProgress(50); | ||||
// create grass patches | // create grass patches | ||||
log("Creating grass patches..."); | log("Creating grass patches..."); | ||||
var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)]; | var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)]; | ||||
for (var i = 0; i < sizes.length; i++) | for (var i = 0; i < sizes.length; i++) | ||||
{ | { | ||||
placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), sizes[i], 0.5); | placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), sizes[i], 0.5); | ||||
painter = new LayeredPainter( | painter = new LayeredPainter( | ||||
[[tGrass,tRocksShrubs],[tRocksShrubs,tRocksGrass], [tRocksGrass,tGrass]], // terrains | [[tGrass,tRocksShrubs],[tRocksShrubs,tRocksGrass], [tRocksGrass,tGrass]], // terrains | ||||
[1,1] // widths | [1,1] // widths | ||||
); | ); | ||||
createAreas( | createAreasDeprecated( | ||||
placer, | placer, | ||||
[painter, paintClass(clDirt)], | [painter, paintClass(clDirt)], | ||||
avoidClasses(clForest, 0, clGrass, 5, clPlayer, 10, clWater, 4, clDirt, 5, clHill, 1), | avoidClasses(clForest, 0, clGrass, 5, clPlayer, 10, clWater, 4, clDirt, 5, clHill, 1), | ||||
scaleByMapSize(15, 45) | scaleByMapSize(15, 45) | ||||
); | ); | ||||
} | } | ||||
RMS.SetProgress(55); | RMS.SetProgress(55); | ||||
// create dirt patches | // create dirt patches | ||||
log("Creating dirt patches..."); | log("Creating dirt patches..."); | ||||
var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)]; | var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)]; | ||||
for (var i = 0; i < sizes.length; i++) | for (var i = 0; i < sizes.length; i++) | ||||
{ | { | ||||
placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), sizes[i], 0.5); | placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), sizes[i], 0.5); | ||||
painter = new LayeredPainter( | painter = new LayeredPainter( | ||||
[[tDirt,tDirtB],[tDirt,tMainDirt], [tDirtB,tMainDirt]], // terrains | [[tDirt,tDirtB],[tDirt,tMainDirt], [tDirtB,tMainDirt]], // terrains | ||||
[1,1] // widths | [1,1] // widths | ||||
); | ); | ||||
createAreas( | createAreasDeprecated( | ||||
placer, | placer, | ||||
[painter, paintClass(clDirt)], | [painter, paintClass(clDirt)], | ||||
avoidClasses(clForest, 0, clDirt, 5, clPlayer, 10, clWater, 4, clGrass, 5, clHill, 1), | avoidClasses(clForest, 0, clDirt, 5, clPlayer, 10, clWater, 4, clGrass, 5, clHill, 1), | ||||
scaleByMapSize(15, 45) | scaleByMapSize(15, 45) | ||||
); | ); | ||||
} | } | ||||
RMS.SetProgress(60); | RMS.SetProgress(60); | ||||
// create cyprus | // create cyprus | ||||
log("Creating cyprus..."); | log("Creating cyprus..."); | ||||
placer = new ClumpPlacer(4.5 * scaleByMapSize(60, 540), 0.2, 0.1, 0.01); | placer = new ClumpPlacer(4.5 * scaleByMapSize(60, 540), 0.2, 0.1, 0.01); | ||||
var terrainPainter = new LayeredPainter( | var terrainPainter = new LayeredPainter( | ||||
[tShore, tHill], // terrains | [tShore, tHill], // terrains | ||||
[12] // widths | [12] // widths | ||||
); | ); | ||||
var elevationPainter = new SmoothElevationPainter(ELEVATION_SET, 6, 8); | var elevationPainter = new SmoothElevationPainter(ELEVATION_SET, 6, 8); | ||||
createAreas( | createAreasDeprecated( | ||||
placer, | placer, | ||||
[terrainPainter, elevationPainter, paintClass(clIsland)], | [terrainPainter, elevationPainter, paintClass(clIsland)], | ||||
[stayClasses (clWater, 5)], | [stayClasses (clWater, 5)], | ||||
1 | 1 | ||||
); | ); | ||||
log("Creating cyprus stone mines..."); | log("Creating cyprus stone mines..."); | ||||
// create cyprus large stone quarries | // create cyprus large stone quarries | ||||
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock); | group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock); | ||||
createObjectGroups(group, 0, | createObjectGroupsDeprecated(group, 0, | ||||
stayClasses(clIsland, 9), | stayClasses(clIsland, 9), | ||||
14 * scaleByMapSize(4,16), 100 | 14 * scaleByMapSize(4,16), 100 | ||||
); | ); | ||||
// create cyprus small stone quarries | // create cyprus small stone quarries | ||||
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock); | group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock); | ||||
createObjectGroups(group, 0, | createObjectGroupsDeprecated(group, 0, | ||||
stayClasses(clIsland, 9), | stayClasses(clIsland, 9), | ||||
14 * scaleByMapSize(4,16), 100 | 14 * scaleByMapSize(4,16), 100 | ||||
); | ); | ||||
log("Creating cyprus metal mines..."); | log("Creating cyprus metal mines..."); | ||||
// create cyprus large metal quarries | // create cyprus large metal quarries | ||||
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal); | group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal); | ||||
createObjectGroups(group, 0, | createObjectGroupsDeprecated(group, 0, | ||||
stayClasses(clIsland, 9), | stayClasses(clIsland, 9), | ||||
14 * scaleByMapSize(4,16), 100 | 14 * scaleByMapSize(4,16), 100 | ||||
); | ); | ||||
log("Creating stone mines..."); | log("Creating stone mines..."); | ||||
// create large stone quarries | // create large stone quarries | ||||
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock); | group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock); | ||||
createObjectGroups(group, 0, | createObjectGroupsDeprecated(group, 0, | ||||
avoidClasses(clForest, 1, clPlayer, 20, clRock, 10, clWater, 3, clHill, 1), | avoidClasses(clForest, 1, clPlayer, 20, clRock, 10, clWater, 3, clHill, 1), | ||||
scaleByMapSize(4,16), 100 | scaleByMapSize(4,16), 100 | ||||
); | ); | ||||
// create small stone quarries | // create small stone quarries | ||||
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock); | group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock); | ||||
createObjectGroups(group, 0, | createObjectGroupsDeprecated(group, 0, | ||||
avoidClasses(clForest, 1, clPlayer, 20, clRock, 10, clWater, 3, clHill, 1), | avoidClasses(clForest, 1, clPlayer, 20, clRock, 10, clWater, 3, clHill, 1), | ||||
scaleByMapSize(4,16), 100 | scaleByMapSize(4,16), 100 | ||||
); | ); | ||||
log("Creating metal mines..."); | log("Creating metal mines..."); | ||||
// create large metal quarries | // create large metal quarries | ||||
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal); | group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal); | ||||
createObjectGroups(group, 0, | createObjectGroupsDeprecated(group, 0, | ||||
avoidClasses(clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clWater, 3, clHill, 1), | avoidClasses(clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clWater, 3, clHill, 1), | ||||
scaleByMapSize(4,16), 100 | scaleByMapSize(4,16), 100 | ||||
); | ); | ||||
RMS.SetProgress(65); | RMS.SetProgress(65); | ||||
// create small decorative rocks | // create small decorative rocks | ||||
log("Creating small decorative rocks..."); | log("Creating small decorative rocks..."); | ||||
group = new SimpleGroup( | group = new SimpleGroup( | ||||
[new SimpleObject(aDecorativeRock, 1,3, 0,1)], | [new SimpleObject(aDecorativeRock, 1,3, 0,1)], | ||||
true | true | ||||
); | ); | ||||
createObjectGroups( | createObjectGroupsDeprecated( | ||||
group, 0, | group, 0, | ||||
avoidClasses(clWater, 1, clForest, 0, clPlayer, 0, clHill, 1), | avoidClasses(clWater, 1, clForest, 0, clPlayer, 0, clHill, 1), | ||||
scaleByMapSize(16, 262), 50 | scaleByMapSize(16, 262), 50 | ||||
); | ); | ||||
// create shrubs | // create shrubs | ||||
log("Creating shrubs..."); | log("Creating shrubs..."); | ||||
group = new SimpleGroup( | group = new SimpleGroup( | ||||
[new SimpleObject(aBush2, 1,2, 0,1), new SimpleObject(aBush1, 1,3, 0,2), new SimpleObject(aBush4, 1,2, 0,1), new SimpleObject(aBush3, 1,3, 0,2)], | [new SimpleObject(aBush2, 1,2, 0,1), new SimpleObject(aBush1, 1,3, 0,2), new SimpleObject(aBush4, 1,2, 0,1), new SimpleObject(aBush3, 1,3, 0,2)], | ||||
true | true | ||||
); | ); | ||||
createObjectGroups( | createObjectGroupsDeprecated( | ||||
group, 0, | group, 0, | ||||
avoidClasses(clWater, 3, clPlayer, 0, clHill, 1), | avoidClasses(clWater, 3, clPlayer, 0, clHill, 1), | ||||
scaleByMapSize(40, 360), 50 | scaleByMapSize(40, 360), 50 | ||||
); | ); | ||||
RMS.SetProgress(70); | RMS.SetProgress(70); | ||||
// create fish | // create fish | ||||
log("Creating fish..."); | log("Creating fish..."); | ||||
group = new SimpleGroup([new SimpleObject(oFish, 1,3, 2,6)], true, clFood); | group = new SimpleGroup([new SimpleObject(oFish, 1,3, 2,6)], true, clFood); | ||||
createObjectGroups(group, 0, | createObjectGroupsDeprecated(group, 0, | ||||
[avoidClasses(clIsland, 2, clFood, 10), stayClasses(clWater, 5)], | [avoidClasses(clIsland, 2, clFood, 10), stayClasses(clWater, 5)], | ||||
3*scaleByMapSize(5,20), 50 | 3*scaleByMapSize(5,20), 50 | ||||
); | ); | ||||
// create sheeps | // create sheeps | ||||
log("Creating sheeps..."); | log("Creating sheeps..."); | ||||
group = new SimpleGroup([new SimpleObject(oSheep, 5,7, 0,4)], true, clFood); | group = new SimpleGroup([new SimpleObject(oSheep, 5,7, 0,4)], true, clFood); | ||||
createObjectGroups(group, 0, | createObjectGroupsDeprecated(group, 0, | ||||
avoidClasses(clForest, 0, clPlayer, 7, clWater, 3, clFood, 10, clHill, 1), | avoidClasses(clForest, 0, clPlayer, 7, clWater, 3, clFood, 10, clHill, 1), | ||||
scaleByMapSize(5,20), 50 | scaleByMapSize(5,20), 50 | ||||
); | ); | ||||
// create goats | // create goats | ||||
log("Creating goats..."); | log("Creating goats..."); | ||||
group = new SimpleGroup([new SimpleObject(oGoat, 2,4, 0,3)], true, clFood); | group = new SimpleGroup([new SimpleObject(oGoat, 2,4, 0,3)], true, clFood); | ||||
createObjectGroups(group, 0, | createObjectGroupsDeprecated(group, 0, | ||||
avoidClasses(clForest, 0, clPlayer, 7, clWater, 3, clFood, 10, clHill, 1), | avoidClasses(clForest, 0, clPlayer, 7, clWater, 3, clFood, 10, clHill, 1), | ||||
scaleByMapSize(5,20), 50 | scaleByMapSize(5,20), 50 | ||||
); | ); | ||||
// create deers | // create deers | ||||
log("Creating deers..."); | log("Creating deers..."); | ||||
group = new SimpleGroup([new SimpleObject(oDeer, 2,4, 0,2)], true, clFood); | group = new SimpleGroup([new SimpleObject(oDeer, 2,4, 0,2)], true, clFood); | ||||
createObjectGroups(group, 0, | createObjectGroupsDeprecated(group, 0, | ||||
avoidClasses(clForest, 0, clPlayer, 7, clWater, 3, clFood, 10, clHill, 1), | avoidClasses(clForest, 0, clPlayer, 7, clWater, 3, clFood, 10, clHill, 1), | ||||
scaleByMapSize(5,20), 50 | scaleByMapSize(5,20), 50 | ||||
); | ); | ||||
// create grape bushes | // create grape bushes | ||||
log("Creating grape bushes..."); | log("Creating grape bushes..."); | ||||
group = new SimpleGroup( | group = new SimpleGroup( | ||||
[new SimpleObject(oGrapeBush, 5,7, 0,4)], | [new SimpleObject(oGrapeBush, 5,7, 0,4)], | ||||
true, clFood | true, clFood | ||||
); | ); | ||||
createObjectGroups(group, 0, | createObjectGroupsDeprecated(group, 0, | ||||
avoidClasses(clWater, 3, clForest, 0, clPlayer, 15, clHill, 1, clFood, 7), | avoidClasses(clWater, 3, clForest, 0, clPlayer, 15, clHill, 1, clFood, 7), | ||||
randIntInclusive(1, 4) * numPlayers + 2, 50 | randIntInclusive(1, 4) * numPlayers + 2, 50 | ||||
); | ); | ||||
RMS.SetProgress(90); | RMS.SetProgress(90); | ||||
// create straggler trees | // create straggler trees | ||||
log("Creating straggler trees..."); | log("Creating straggler trees..."); | ||||
var types = [oDatePalm, oSDatePalm, oCarob, oFanPalm, oPoplar, oCypress]; // some variation | var types = [oDatePalm, oSDatePalm, oCarob, oFanPalm, oPoplar, oCypress]; // some variation | ||||
var num = floor(numStragglers / types.length); | var num = floor(numStragglers / types.length); | ||||
for (var i = 0; i < types.length; ++i) | for (var i = 0; i < types.length; ++i) | ||||
{ | { | ||||
group = new SimpleGroup([new SimpleObject(types[i], 1,1, 0,0)], true); | group = new SimpleGroup([new SimpleObject(types[i], 1,1, 0,0)], true); | ||||
createObjectGroups(group, 0, | createObjectGroupsDeprecated(group, 0, | ||||
avoidClasses(clForest, 0, clWater, 1, clPlayer, 8, clMetal, 6, clHill, 1), | avoidClasses(clForest, 0, clWater, 1, clPlayer, 8, clMetal, 6, clHill, 1), | ||||
num | num | ||||
); | ); | ||||
} | } | ||||
log("Creating straggler trees..."); | log("Creating straggler trees..."); | ||||
var types = [oDatePalm, oSDatePalm, oCarob, oFanPalm, oPoplar, oCypress]; // some variation | var types = [oDatePalm, oSDatePalm, oCarob, oFanPalm, oPoplar, oCypress]; // some variation | ||||
var num = 3*floor(numStragglers / types.length); | var num = 3*floor(numStragglers / types.length); | ||||
for (var i = 0; i < types.length; ++i) | for (var i = 0; i < types.length; ++i) | ||||
{ | { | ||||
group = new SimpleGroup([new SimpleObject(types[i], 1,1, 0,0)], true); | group = new SimpleGroup([new SimpleObject(types[i], 1,1, 0,0)], true); | ||||
createObjectGroups(group, 0, | createObjectGroupsDeprecated(group, 0, | ||||
stayClasses(clIsland, 9), | stayClasses(clIsland, 9), | ||||
num | num | ||||
); | ); | ||||
} | } | ||||
// Set environment | // Set environment | ||||
setSkySet("sunny"); | setSkySet("sunny"); | ||||
setSunColor(0.917, 0.828, 0.734); | setSunColor(0.917, 0.828, 0.734); | ||||
Show All 23 Lines |
Wildfire Games · Phabricator