Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/maps/random/unknown_land.js
Show First 20 Lines • Show All 140 Lines • ▼ Show 20 Lines | var elevationPainter = new SmoothElevationPainter( | ||||
ELEVATION_SET, // type | ELEVATION_SET, // type | ||||
3, // elevation | 3, // elevation | ||||
4 // blend radius | 4 // blend radius | ||||
); | ); | ||||
createArea(placer, [terrainPainter, elevationPainter, paintClass(clLand)], null); | createArea(placer, [terrainPainter, elevationPainter, paintClass(clLand)], null); | ||||
var clPeninsulaSteam = createTileClass(); | var clPeninsulaSteam = createTileClass(); | ||||
if (randInt(1,3)==1) // peninsula | if (randBool(0.33)) // peninsula | ||||
{ | { | ||||
var angle = randFloat(0, TWO_PI); | var angle = randFloat(0, TWO_PI); | ||||
var fx = fractionToTiles(0.5 + 0.25*cos(angle)); | var fx = fractionToTiles(0.5 + 0.25*cos(angle)); | ||||
var fz = fractionToTiles(0.5 + 0.25*sin(angle)); | var fz = fractionToTiles(0.5 + 0.25*sin(angle)); | ||||
ix = round(fx); | ix = round(fx); | ||||
iz = round(fz); | iz = round(fz); | ||||
Show All 32 Lines | playerIDs = primeSortPlayers(sortPlayers(playerIDs)); | ||||
// place players | // place players | ||||
var playerX = new Array(numPlayers); | var playerX = new Array(numPlayers); | ||||
var playerZ = new Array(numPlayers); | var playerZ = new Array(numPlayers); | ||||
var playerAngle = new Array(numPlayers); | var playerAngle = new Array(numPlayers); | ||||
var playerPos = new Array(numPlayers); | var playerPos = new Array(numPlayers); | ||||
var iop = 0; | var iop = 0; | ||||
var mdd1 = randInt(1,2); | var mdd1 = randBool(0.5); | ||||
if (mdd1 == 1) //vertical | if (mdd1) // vertical | ||||
{ | { | ||||
for (var i = 0; i < numPlayers; i++) | for (var i = 0; i < numPlayers; i++) | ||||
{ | { | ||||
iop = i - 1; | iop = i - 1; | ||||
if (!(numPlayers%2)){ | if (!(numPlayers%2)){ | ||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / ((numPlayers / 2) + 1); | playerPos[i] = ((iop + abs(iop%2))/2 + 1) / ((numPlayers / 2) + 1); | ||||
} | } | ||||
else | else | ||||
▲ Show 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | for (var iz = 0; iz < mapSize; iz++) | ||||
var x = ix / (mapSize + 1.0); | var x = ix / (mapSize + 1.0); | ||||
var z = iz / (mapSize + 1.0); | var z = iz / (mapSize + 1.0); | ||||
// add the rough shape of the water | // add the rough shape of the water | ||||
var km = 20/scaleByMapSize(35, 160); | var km = 20/scaleByMapSize(35, 160); | ||||
var fadeDist = 0.05; | var fadeDist = 0.05; | ||||
if (mdd1 == 1) //vertical | if (mdd1) // vertical | ||||
{ | { | ||||
var cu = km*rndRiver(theta+z*0.5*(mapSize/64),seed); | var cu = km*rndRiver(theta+z*0.5*(mapSize/64),seed); | ||||
var cu2 = km*rndRiver(theta2+z*0.5*(mapSize/64),seed2); | var cu2 = km*rndRiver(theta2+z*0.5*(mapSize/64),seed2); | ||||
if ((x > cu + 0.5 - WATER_WIDTH/2) && (x < cu2 + 0.5 + WATER_WIDTH/2)) | if ((x > cu + 0.5 - WATER_WIDTH/2) && (x < cu2 + 0.5 + WATER_WIDTH/2)) | ||||
{ | { | ||||
var h; | var h; | ||||
if (x < (cu + 0.5 + fadeDist - WATER_WIDTH/2)) | if (x < (cu + 0.5 + fadeDist - WATER_WIDTH/2)) | ||||
▲ Show 20 Lines • Show All 70 Lines • ▼ Show 20 Lines | for (var iz = 0; iz < mapSize; iz++) | ||||
addToClass(ix, iz, clLand); | addToClass(ix, iz, clLand); | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
// linked | // linked | ||||
if (mdd1 == 1) //vertical | if (mdd1) // vertical | ||||
{ | var placer = new PathPlacer( | ||||
var placer = new PathPlacer(1, fractionToTiles(0.5), fractionToTiles(0.99), fractionToTiles(0.5), scaleByMapSize(randInt(16,24),randInt(100,140)), 0.5, 3*(scaleByMapSize(1,4)), 0.1, 0.01); | 1, | ||||
} | fractionToTiles(0.5), | ||||
else | fractionToTiles(0.99), | ||||
{ | fractionToTiles(0.5), | ||||
var placer = new PathPlacer(fractionToTiles(0.5), 1, fractionToTiles(0.5), fractionToTiles(0.99), scaleByMapSize(randInt(16,24),randInt(100,140)), 0.5, 3*(scaleByMapSize(1,4)), 0.1, 0.01); | scaleByMapSize(randIntInclusive(16, 24), randIntInclusive(100, 140)), | ||||
0.5, | |||||
3*scaleByMapSize(1, 4), | |||||
0.1, | |||||
0.01); | |||||
else | |||||
{ | |||||
var placer = new PathPlacer( | |||||
fractionToTiles(0.5), | |||||
1, | |||||
fractionToTiles(0.5), | |||||
fractionToTiles(0.99), | |||||
scaleByMapSize(randIntInclusive(16, 24), randIntInclusive(100, 140)), | |||||
0.5, | |||||
3*scaleByMapSize(1, 4), | |||||
0.1, | |||||
0.01); | |||||
} | } | ||||
var terrainPainter = new LayeredPainter( | var terrainPainter = new LayeredPainter( | ||||
[tMainTerrain, tMainTerrain, tMainTerrain], // terrains | [tMainTerrain, tMainTerrain, tMainTerrain], // terrains | ||||
[1, 3] // widths | [1, 3] // widths | ||||
); | ); | ||||
var elevationPainter = new SmoothElevationPainter( | var elevationPainter = new SmoothElevationPainter( | ||||
ELEVATION_SET, // type | ELEVATION_SET, // type | ||||
3.1, // elevation | 3.1, // elevation | ||||
▲ Show 20 Lines • Show All 61 Lines • ▼ Show 20 Lines | else if (md == 4) //central river | ||||
// place players | // place players | ||||
var playerX = new Array(numPlayers); | var playerX = new Array(numPlayers); | ||||
var playerZ = new Array(numPlayers); | var playerZ = new Array(numPlayers); | ||||
var playerAngle = new Array(numPlayers); | var playerAngle = new Array(numPlayers); | ||||
var playerPos = new Array(numPlayers); | var playerPos = new Array(numPlayers); | ||||
var iop = 0; | var iop = 0; | ||||
var mdd1 = randInt(1,2); | var mdd1 = randBool(0.5); | ||||
if (mdd1 == 1) //horizontal | if (mdd1) // horizontal | ||||
{ | { | ||||
for (var i = 0; i < numPlayers; i++) | for (var i = 0; i < numPlayers; i++) | ||||
{ | { | ||||
iop = i - 1; | iop = i - 1; | ||||
if (!(numPlayers%2)){ | if (!(numPlayers%2)){ | ||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / ((numPlayers / 2) + 1); | playerPos[i] = ((iop + abs(iop%2))/2 + 1) / ((numPlayers / 2) + 1); | ||||
} | } | ||||
else | else | ||||
Show All 35 Lines | for (var i = 0; i < numPlayers; i++) | ||||
playerZ[i] = playerPos[i]; | playerZ[i] = playerPos[i]; | ||||
playerX[i] = 0.25 + 0.5*(i%2); | playerX[i] = 0.25 + 0.5*(i%2); | ||||
} | } | ||||
} | } | ||||
// create the main river | // create the main river | ||||
log("Creating the main river"); | log("Creating the main river"); | ||||
if (mdd1 == 2) | if (mdd1) | ||||
var placer = new PathPlacer(fractionToTiles(0.5), 1, fractionToTiles(0.5) , fractionToTiles(0.99), scaleByMapSize(14,24), 0.5, 3*(scaleByMapSize(1,4)), 0.1, 0.01); | |||||
else | |||||
var placer = new PathPlacer(1, fractionToTiles(0.5), fractionToTiles(0.99), fractionToTiles(0.5), scaleByMapSize(14,24), 0.5, 3*(scaleByMapSize(1,4)), 0.1, 0.01); | var placer = new PathPlacer(1, fractionToTiles(0.5), fractionToTiles(0.99), fractionToTiles(0.5), scaleByMapSize(14,24), 0.5, 3*(scaleByMapSize(1,4)), 0.1, 0.01); | ||||
else | |||||
var placer = new PathPlacer(fractionToTiles(0.5), 1, fractionToTiles(0.5) , fractionToTiles(0.99), scaleByMapSize(14,24), 0.5, 3*(scaleByMapSize(1,4)), 0.1, 0.01); | |||||
var terrainPainter = new LayeredPainter( | var terrainPainter = new LayeredPainter( | ||||
[tShore, tWater, tWater], // terrains | [tShore, tWater, tWater], // terrains | ||||
[1, 3] // widths | [1, 3] // widths | ||||
); | ); | ||||
var elevationPainter = new SmoothElevationPainter( | var elevationPainter = new SmoothElevationPainter( | ||||
ELEVATION_SET, // type | ELEVATION_SET, // type | ||||
-4, // elevation | -4, // elevation | ||||
4 // blend radius | 4 // blend radius | ||||
); | ); | ||||
createArea(placer, [terrainPainter, elevationPainter], avoidClasses(clPlayer, 4)); | createArea(placer, [terrainPainter, elevationPainter], avoidClasses(clPlayer, 4)); | ||||
if (mdd1 == 1) | if (mdd1) | ||||
placer = new ClumpPlacer(floor(PI*scaleByMapSize(10,20)*scaleByMapSize(10,20)/4), 0.95, 0.6, 10, 1, fractionToTiles(0.5)); | placer = new ClumpPlacer(floor(PI*scaleByMapSize(10,20)*scaleByMapSize(10,20)/4), 0.95, 0.6, 10, 1, fractionToTiles(0.5)); | ||||
else | else | ||||
placer = new ClumpPlacer(floor(PI*scaleByMapSize(10,20)*scaleByMapSize(10,20)/4), 0.95, 0.6, 10, fractionToTiles(0.5), 1); | placer = new ClumpPlacer(floor(PI*scaleByMapSize(10,20)*scaleByMapSize(10,20)/4), 0.95, 0.6, 10, fractionToTiles(0.5), 1); | ||||
var painter = new LayeredPainter([tWater, tWater], [1]); | var painter = new LayeredPainter([tWater, tWater], [1]); | ||||
var elevationPainter = new SmoothElevationPainter(ELEVATION_SET, -4, 2); | var elevationPainter = new SmoothElevationPainter(ELEVATION_SET, -4, 2); | ||||
createArea(placer, [painter, elevationPainter], avoidClasses(clPlayer, 8)); | createArea(placer, [painter, elevationPainter], avoidClasses(clPlayer, 8)); | ||||
if (mdd1 == 1) | if (mdd1) | ||||
placer = new ClumpPlacer(floor(PI*scaleByMapSize(10,20)*scaleByMapSize(10,20)/4), 0.95, 0.6, 10, fractionToTiles(0.99), fractionToTiles(0.5)); | placer = new ClumpPlacer(floor(PI*scaleByMapSize(10,20)*scaleByMapSize(10,20)/4), 0.95, 0.6, 10, fractionToTiles(0.99), fractionToTiles(0.5)); | ||||
else | else | ||||
placer = new ClumpPlacer(floor(PI*scaleByMapSize(10,20)*scaleByMapSize(10,20)/4), 0.95, 0.6, 10, fractionToTiles(0.5), fractionToTiles(0.99)); | placer = new ClumpPlacer(floor(PI*scaleByMapSize(10,20)*scaleByMapSize(10,20)/4), 0.95, 0.6, 10, fractionToTiles(0.5), fractionToTiles(0.99)); | ||||
var painter = new LayeredPainter([tWater, tWater], [1]); | var painter = new LayeredPainter([tWater, tWater], [1]); | ||||
var elevationPainter = new SmoothElevationPainter(ELEVATION_SET, -4, 2); | var elevationPainter = new SmoothElevationPainter(ELEVATION_SET, -4, 2); | ||||
createArea(placer, [painter, elevationPainter], avoidClasses(clPlayer, 8)); | createArea(placer, [painter, elevationPainter], avoidClasses(clPlayer, 8)); | ||||
// create the shallows of the main river | // create the shallows of the main river | ||||
log("Creating the shallows of the main river"); | log("Creating the shallows of the main river"); | ||||
for (var i = 0; i <= randInt(1, scaleByMapSize(4,8)); i++) | for (var i = 0; i <= randInt(1, scaleByMapSize(4,8)); i++) | ||||
{ | { | ||||
var cLocation = randFloat(0.15,0.85); | var cLocation = randFloat(0.15,0.85); | ||||
if (mdd1 == 1) | if (mdd1) | ||||
passageMaker(floor(fractionToTiles(cLocation)), floor(fractionToTiles(0.35)), floor(fractionToTiles(cLocation)), floor(fractionToTiles(0.65)), scaleByMapSize(4,8), -2, -2, 2, clShallow, undefined, -4); | passageMaker(floor(fractionToTiles(cLocation)), floor(fractionToTiles(0.35)), floor(fractionToTiles(cLocation)), floor(fractionToTiles(0.65)), scaleByMapSize(4,8), -2, -2, 2, clShallow, undefined, -4); | ||||
else | else | ||||
passageMaker(floor(fractionToTiles(0.35)), floor(fractionToTiles(cLocation)), floor(fractionToTiles(0.65)), floor(fractionToTiles(cLocation)), scaleByMapSize(4,8), -2, -2, 2, clShallow, undefined, -4); | passageMaker(floor(fractionToTiles(0.35)), floor(fractionToTiles(cLocation)), floor(fractionToTiles(0.65)), floor(fractionToTiles(cLocation)), scaleByMapSize(4,8), -2, -2, 2, clShallow, undefined, -4); | ||||
} | } | ||||
if (randInt(1,2) == 1) | if (randBool(0.5)) | ||||
{ | { | ||||
for (var i = 0; i < numPlayers; i++) | for (var i = 0; i < numPlayers; i++) | ||||
{ | { | ||||
var fx = fractionToTiles(playerX[i]); | var fx = fractionToTiles(playerX[i]); | ||||
var fz = fractionToTiles(playerZ[i]); | var fz = fractionToTiles(playerZ[i]); | ||||
var ix = round(fx); | var ix = round(fx); | ||||
var iz = round(fz); | var iz = round(fz); | ||||
// create the city patch | // create the city patch | ||||
var cityRadius = scaleByMapSize(17,29)/3; | var cityRadius = scaleByMapSize(17,29)/3; | ||||
placer = new ClumpPlacer(PI*cityRadius*cityRadius, 0.6, 0.3, 10, ix, iz); | placer = new ClumpPlacer(PI*cityRadius*cityRadius, 0.6, 0.3, 10, ix, iz); | ||||
createArea(placer, paintClass(clPlayer), null); | createArea(placer, paintClass(clPlayer), null); | ||||
} | } | ||||
// create tributaries | // create tributaries | ||||
log("Creating tributaries"); | log("Creating tributaries"); | ||||
for (var i = 0; i <= randInt(8, (scaleByMapSize(12,20))); i++) | for (let i = 0; i <= randIntInclusive(8, scaleByMapSize(12,20)); ++i) | ||||
{ | { | ||||
var cLocation = randFloat(0.05,0.95); | var cLocation = randFloat(0.05, 0.95); | ||||
var tang = randFloat(PI*0.2, PI*0.8)*((randInt(2)-0.5)*2); | |||||
if (tang > 0) | var sign = randBool(0.5) ? 1 : -1; | ||||
{ | var tang = sign * PI * randFloat(0.2, 0.8); | ||||
var cDistance = 0.05; | var cDistance = sign * 0.05; | ||||
} | |||||
else | if (mdd1) | ||||
{ | |||||
var cDistance = -0.05; | |||||
} | |||||
if (mdd1 == 1) | |||||
var point = getTIPIADBON([fractionToTiles(cLocation), fractionToTiles(0.5 + cDistance)], [fractionToTiles(cLocation), fractionToTiles(0.5 - cDistance)], [-6, -1.5], 0.5, 5, 0.01); | var point = getTIPIADBON([fractionToTiles(cLocation), fractionToTiles(0.5 + cDistance)], [fractionToTiles(cLocation), fractionToTiles(0.5 - cDistance)], [-6, -1.5], 0.5, 5, 0.01); | ||||
else | else | ||||
var point = getTIPIADBON([fractionToTiles(0.5 + cDistance), fractionToTiles(cLocation)], [fractionToTiles(0.5 - cDistance), fractionToTiles(cLocation)], [-6, -1.5], 0.5, 5, 0.01); | var point = getTIPIADBON([fractionToTiles(0.5 + cDistance), fractionToTiles(cLocation)], [fractionToTiles(0.5 - cDistance), fractionToTiles(cLocation)], [-6, -1.5], 0.5, 5, 0.01); | ||||
if (point !== undefined) | if (point !== undefined) | ||||
{ | { | ||||
if (mdd1 == 1) | if (mdd1) | ||||
var placer = new PathPlacer(floor(point[0]), floor(point[1]), floor(fractionToTiles(0.5 + 0.49*cos(tang))), floor(fractionToTiles(0.5 + 0.49*sin(tang))), scaleByMapSize(10,20), 0.4, 3*(scaleByMapSize(1,4)), 0.1, 0.05); | var placer = new PathPlacer(floor(point[0]), floor(point[1]), floor(fractionToTiles(0.5 + 0.49*cos(tang))), floor(fractionToTiles(0.5 + 0.49*sin(tang))), scaleByMapSize(10,20), 0.4, 3*(scaleByMapSize(1,4)), 0.1, 0.05); | ||||
else | else | ||||
var placer = new PathPlacer(floor(point[0]), floor(point[1]), floor(fractionToTiles(0.5 + 0.49*sin(tang))), floor(fractionToTiles(0.5 + 0.49*cos(tang))), scaleByMapSize(10,20), 0.4, 3*(scaleByMapSize(1,4)), 0.1, 0.05); | var placer = new PathPlacer(floor(point[0]), floor(point[1]), floor(fractionToTiles(0.5 + 0.49*sin(tang))), floor(fractionToTiles(0.5 + 0.49*cos(tang))), scaleByMapSize(10,20), 0.4, 3*(scaleByMapSize(1,4)), 0.1, 0.05); | ||||
var terrainPainter = new LayeredPainter( | var terrainPainter = new LayeredPainter( | ||||
[tShore, tWater, tWater], // terrains | [tShore, tWater, tWater], // terrains | ||||
[1, 3] // widths | [1, 3] // widths | ||||
); | ); | ||||
var elevationPainter = new SmoothElevationPainter( | var elevationPainter = new SmoothElevationPainter( | ||||
ELEVATION_SET, // type | ELEVATION_SET, // type | ||||
-4, // elevation | -4, // elevation | ||||
4 // blend radius | 4 // blend radius | ||||
); | ); | ||||
var success = createArea(placer, [terrainPainter, elevationPainter, paintClass(clWater)], avoidClasses(clPlayer, 3, clWater, 3, clShallow, 2)); | var success = createArea(placer, [terrainPainter, elevationPainter, paintClass(clWater)], avoidClasses(clPlayer, 3, clWater, 3, clShallow, 2)); | ||||
if (success !== undefined) | if (success !== undefined) | ||||
{ | { | ||||
if (mdd1 == 1) | if (mdd1) | ||||
placer = new ClumpPlacer(floor(PI*scaleByMapSize(10,20)*scaleByMapSize(10,20)/4), 0.95, 0.6, 10, fractionToTiles(0.5 + 0.49*cos(tang)), fractionToTiles(0.5 + 0.49*sin(tang))); | placer = new ClumpPlacer(floor(PI*scaleByMapSize(10,20)*scaleByMapSize(10,20)/4), 0.95, 0.6, 10, fractionToTiles(0.5 + 0.49*cos(tang)), fractionToTiles(0.5 + 0.49*sin(tang))); | ||||
else | else | ||||
placer = new ClumpPlacer(floor(PI*scaleByMapSize(10,20)*scaleByMapSize(10,20)/4), 0.95, 0.6, 10, fractionToTiles(0.5 + 0.49*sin(tang)), fractionToTiles(0.5 + 0.49*cos(tang))); | placer = new ClumpPlacer(floor(PI*scaleByMapSize(10,20)*scaleByMapSize(10,20)/4), 0.95, 0.6, 10, fractionToTiles(0.5 + 0.49*sin(tang)), fractionToTiles(0.5 + 0.49*cos(tang))); | ||||
var painter = new LayeredPainter([tWater, tWater], [1]); | var painter = new LayeredPainter([tWater, tWater], [1]); | ||||
var elevationPainter = new SmoothElevationPainter(ELEVATION_SET, -4, 2); | var elevationPainter = new SmoothElevationPainter(ELEVATION_SET, -4, 2); | ||||
createArea(placer, [painter, elevationPainter], avoidClasses(clPlayer, 3)); | createArea(placer, [painter, elevationPainter], avoidClasses(clPlayer, 3)); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | else if (md == 5) //rivers and lake | ||||
{ | { | ||||
for (var iz = 0; iz < mapSize; iz++) | for (var iz = 0; iz < mapSize; iz++) | ||||
{ | { | ||||
var x = ix / (mapSize + 1.0); | var x = ix / (mapSize + 1.0); | ||||
var z = iz / (mapSize + 1.0); | var z = iz / (mapSize + 1.0); | ||||
setHeight(ix, iz, 3); | setHeight(ix, iz, 3); | ||||
} | } | ||||
} | } | ||||
var mdd1 = randInt(1,2); | var mdd1 = randBool(0.5); | ||||
if (mdd1 == 1) //lake | if (mdd1) // lake | ||||
{ | { | ||||
var fx = fractionToTiles(0.5); | var fx = fractionToTiles(0.5); | ||||
var fz = fractionToTiles(0.5); | var fz = fractionToTiles(0.5); | ||||
ix = round(fx); | ix = round(fx); | ||||
iz = round(fz); | iz = round(fz); | ||||
var lSize = sqrt(sqrt(sqrt(scaleByMapSize(1, 6)))); | var lSize = sqrt(sqrt(sqrt(scaleByMapSize(1, 6)))); | ||||
Show All 21 Lines | if (mdd1) // lake | ||||
createAreas( | createAreas( | ||||
placer, | placer, | ||||
[terrainPainter, elevationPainter, unPaintClass(clWater)], | [terrainPainter, elevationPainter, unPaintClass(clWater)], | ||||
borderClasses(clWater, 4, 7), | borderClasses(clWater, 4, 7), | ||||
scaleByMapSize(12, 130) * 2, 150 | scaleByMapSize(12, 130) * 2, 150 | ||||
); | ); | ||||
} | } | ||||
if ((randInt(1,3) == 1)&&(mdd1 == 1))//island | if (randBool(0.33) && mdd1) // island | ||||
{ | { | ||||
var placer = new ClumpPlacer(mapArea * 0.006 * lSize, 0.7, 0.1, 10, ix, iz); | var placer = new ClumpPlacer(mapArea * 0.006 * lSize, 0.7, 0.1, 10, ix, iz); | ||||
var terrainPainter = new LayeredPainter( | var terrainPainter = new LayeredPainter( | ||||
[tShore, tWater, tWater, tWater], // terrains | [tShore, tWater, tWater, tWater], // terrains | ||||
[1, 4, 2] // widths | [1, 4, 2] // widths | ||||
); | ); | ||||
var elevationPainter = new SmoothElevationPainter( | var elevationPainter = new SmoothElevationPainter( | ||||
ELEVATION_SET, // type | ELEVATION_SET, // type | ||||
Show All 12 Lines | for (var ix = 0; ix < mapSize; ix++) | ||||
for (var iz = 0; iz < mapSize; iz++) | for (var iz = 0; iz < mapSize; iz++) | ||||
{ | { | ||||
var x = ix / (mapSize + 1.0); | var x = ix / (mapSize + 1.0); | ||||
var z = iz / (mapSize + 1.0); | var z = iz / (mapSize + 1.0); | ||||
setHeight(ix, iz, 3); | setHeight(ix, iz, 3); | ||||
} | } | ||||
} | } | ||||
var mdd1 = randInt(1,2); | |||||
// randomize player order | // randomize player order | ||||
var playerIDs = []; | var playerIDs = []; | ||||
for (var i = 0; i < numPlayers; i++) | for (var i = 0; i < numPlayers; i++) | ||||
{ | { | ||||
playerIDs.push(i+1); | playerIDs.push(i+1); | ||||
} | } | ||||
playerIDs = sortPlayers(playerIDs); | playerIDs = sortPlayers(playerIDs); | ||||
// place players | // place players | ||||
var playerX = new Array(numPlayers); | var playerX = new Array(numPlayers); | ||||
var playerZ = new Array(numPlayers); | var playerZ = new Array(numPlayers); | ||||
var playerPos = new Array(numPlayers); | var playerPos = new Array(numPlayers); | ||||
var mdd1 = randBool(0.5); | |||||
for (var i = 0; i < numPlayers; i++) | for (var i = 0; i < numPlayers; i++) | ||||
{ | { | ||||
playerPos[i] = (i + 1) / (numPlayers + 1); | playerPos[i] = (i + 1) / (numPlayers + 1); | ||||
if (mdd1 == 1) //horizontal | if (mdd1) // horizontal | ||||
{ | { | ||||
playerX[i] = playerPos[i]; | playerX[i] = playerPos[i]; | ||||
playerZ[i] = 0.4 + 0.2*(i%2); | playerZ[i] = 0.4 + 0.2*(i%2); | ||||
} | } | ||||
else //vertical | else //vertical | ||||
{ | { | ||||
playerX[i] = 0.4 + 0.2*(i%2); | playerX[i] = 0.4 + 0.2*(i%2); | ||||
playerZ[i] = playerPos[i]; | playerZ[i] = playerPos[i]; | ||||
} | } | ||||
var fx = fractionToTiles(playerX[i]); | var fx = fractionToTiles(playerX[i]); | ||||
var fz = fractionToTiles(playerZ[i]); | var fz = fractionToTiles(playerZ[i]); | ||||
var ix = round(fx); | var ix = round(fx); | ||||
var iz = round(fz); | var iz = round(fz); | ||||
addToClass(ix, iz, clPlayer); | addToClass(ix, iz, clPlayer); | ||||
addToClass(ix+5, iz, clPlayer); | addToClass(ix+5, iz, clPlayer); | ||||
addToClass(ix, iz+5, clPlayer); | addToClass(ix, iz+5, clPlayer); | ||||
addToClass(ix-5, iz, clPlayer); | addToClass(ix-5, iz, clPlayer); | ||||
addToClass(ix, iz-5, clPlayer); | addToClass(ix, iz-5, clPlayer); | ||||
} | } | ||||
var mdd2 = randInt(1,3); | var mdd2 = randInt(1,3); | ||||
var fadedistance = 7; | var fadedistance = 7; | ||||
if (mdd1 == 1) | if (mdd1) | ||||
{ | { | ||||
if ((mdd2 == 1)||(mdd2 == 3)) | if ((mdd2 == 1)||(mdd2 == 3)) | ||||
{ | { | ||||
var distance = randFloat(0., 0.1); | var distance = randFloat(0., 0.1); | ||||
for (var ix = 0; ix < mapSize; ix++) | for (var ix = 0; ix < mapSize; ix++) | ||||
{ | { | ||||
for (var iz = 0; iz < mapSize; iz++) | for (var iz = 0; iz < mapSize; iz++) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 329 Lines • ▼ Show 20 Lines | else if (md == 8) //lakes | ||||
var numLakes = scaleByMapSize(5, 16); | var numLakes = scaleByMapSize(5, 16); | ||||
for (var i = 0; i < numLakes; ++i) | for (var i = 0; i < numLakes; ++i) | ||||
{ | { | ||||
lakeAreaLen = lakeAreas.length; | lakeAreaLen = lakeAreas.length; | ||||
if (!lakeAreaLen) | if (!lakeAreaLen) | ||||
break; | break; | ||||
chosenPoint = lakeAreas[randInt(lakeAreaLen)]; | chosenPoint = pickRandom(lakeAreas); | ||||
placer = new ChainPlacer(1, floor(scaleByMapSize(4, 8)), floor(scaleByMapSize(40, 180)), 0.7, chosenPoint[0], chosenPoint[1]); | placer = new ChainPlacer(1, floor(scaleByMapSize(4, 8)), floor(scaleByMapSize(40, 180)), 0.7, chosenPoint[0], chosenPoint[1]); | ||||
terrainPainter = new LayeredPainter( | terrainPainter = new LayeredPainter( | ||||
[tShore, tWater, tWater], // terrains | [tShore, tWater, tWater], // terrains | ||||
[1, 3] // widths | [1, 3] // widths | ||||
); | ); | ||||
elevationPainter = new SmoothElevationPainter(ELEVATION_SET, -5, 5); | elevationPainter = new SmoothElevationPainter(ELEVATION_SET, -5, 5); | ||||
var newLake = createAreas( | var newLake = createAreas( | ||||
▲ Show 20 Lines • Show All 73 Lines • ▼ Show 20 Lines | for (var m = 0; m < numPlayers; m++) | ||||
var elevationPainter = new SmoothElevationPainter(ELEVATION_SET, 24, 0); | var elevationPainter = new SmoothElevationPainter(ELEVATION_SET, 24, 0); | ||||
createArea(placer, [painter, elevationPainter], avoidClasses(clPlayer, 5)); | createArea(placer, [painter, elevationPainter], avoidClasses(clPlayer, 5)); | ||||
var placer = new PathPlacer(fractionToTiles(0.5 + 0.3*cos(tang) - 0.1 * cos(tang+PI/2)), fractionToTiles(0.5 + 0.3*sin(tang) - 0.1 * sin(tang+PI/2)), fractionToTiles(0.5 + 0.3*cos(tang) + 0.1 * cos(tang+PI/2)), fractionToTiles(0.5 + 0.3*sin(tang) + 0.1 * sin(tang+PI/2)), scaleByMapSize(14,24), 0.4, 3*(scaleByMapSize(1,3)), 0.2, 0.05); | var placer = new PathPlacer(fractionToTiles(0.5 + 0.3*cos(tang) - 0.1 * cos(tang+PI/2)), fractionToTiles(0.5 + 0.3*sin(tang) - 0.1 * sin(tang+PI/2)), fractionToTiles(0.5 + 0.3*cos(tang) + 0.1 * cos(tang+PI/2)), fractionToTiles(0.5 + 0.3*sin(tang) + 0.1 * sin(tang+PI/2)), scaleByMapSize(14,24), 0.4, 3*(scaleByMapSize(1,3)), 0.2, 0.05); | ||||
var painter = new LayeredPainter([tCliff, tCliff], [1]); | var painter = new LayeredPainter([tCliff, tCliff], [1]); | ||||
var elevationPainter = new SmoothElevationPainter(ELEVATION_SET, 3, 2); | var elevationPainter = new SmoothElevationPainter(ELEVATION_SET, 3, 2); | ||||
createArea(placer, [painter, elevationPainter], null); | createArea(placer, [painter, elevationPainter], null); | ||||
} | } | ||||
var mdd1 = randInt (1,3); | |||||
if (mdd1 <= 2) | if (randBool(0.66)) | ||||
{ | { | ||||
var fx = fractionToTiles(0.5); | var fx = fractionToTiles(0.5); | ||||
var fz = fractionToTiles(0.5); | var fz = fractionToTiles(0.5); | ||||
ix = round(fx); | ix = round(fx); | ||||
iz = round(fz); | iz = round(fz); | ||||
var placer = new ClumpPlacer(mapArea * 0.005, 0.7, 0.1, 10, ix, iz); | var placer = new ClumpPlacer(mapArea * 0.005, 0.7, 0.1, 10, ix, iz); | ||||
var terrainPainter = new LayeredPainter( | var terrainPainter = new LayeredPainter( | ||||
▲ Show 20 Lines • Show All 589 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator