Merge the 14 copies of the player placement code on river maps.
This was SVN commit r20151.
This commit is contained in:
parent
9119b663d8
commit
f1e352927c
@ -67,29 +67,13 @@ var clIsland = createTileClass();
|
||||
var clCorals = createTileClass();
|
||||
|
||||
var playerIDs = primeSortAllPlayers();
|
||||
var playerPos = placePlayersRiver();
|
||||
|
||||
var playerX = [];
|
||||
var playerZ = [];
|
||||
|
||||
var playerX = new Array(numPlayers);
|
||||
var playerZ = new Array(numPlayers);
|
||||
var playerAngle = new Array(numPlayers);
|
||||
var playerPos = new Array(numPlayers);
|
||||
var iop = 0;
|
||||
for (var i = 0; i < numPlayers; i++)
|
||||
{
|
||||
iop = i - 1;
|
||||
if (!(numPlayers%2)){
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / ((numPlayers / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (iop%2)
|
||||
{
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / (((numPlayers + 1) / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
playerPos[i] = ((iop)/2 + 1) / ((((numPlayers - 1)) / 2) + 1);
|
||||
}
|
||||
}
|
||||
playerZ[i] = playerPos[i];
|
||||
playerX[i] = 0.2 + 0.6*(i%2);
|
||||
}
|
||||
|
@ -113,29 +113,13 @@ paintTerrainBasedOnHeight(2, 5, 1, tGrass);
|
||||
paintTileClassBasedOnHeight(-6, 0.5, 1, clWater);
|
||||
|
||||
var playerIDs = primeSortAllPlayers();
|
||||
var playerPos = placePlayersRiver();
|
||||
|
||||
var playerX = [];
|
||||
var playerZ = [];
|
||||
|
||||
var playerX = new Array(numPlayers);
|
||||
var playerZ = new Array(numPlayers);
|
||||
var playerAngle = new Array(numPlayers);
|
||||
var playerPos = new Array(numPlayers);
|
||||
var iop = 0;
|
||||
for (var i = 0; i < numPlayers; i++)
|
||||
{
|
||||
iop = i - 1;
|
||||
if (!(numPlayers%2)){
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / ((numPlayers / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (iop%2)
|
||||
{
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / (((numPlayers + 1) / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
playerPos[i] = ((iop)/2 + 1) / ((((numPlayers - 1)) / 2) + 1);
|
||||
}
|
||||
}
|
||||
playerZ[i] = Math.sqrt(0.5)*(0.6*(i%2) - 0.8 + playerPos[i]) + 0.5;
|
||||
playerX[i] = Math.sqrt(0.5)*(0.6*(i%2) + 0.2 - playerPos[i]) + 0.5;
|
||||
}
|
||||
|
@ -315,21 +315,14 @@ if (gallicCC)
|
||||
RMS.SetProgress(10);
|
||||
|
||||
var playerIDs = primeSortAllPlayers();
|
||||
var playerPos = placePlayersRiver();
|
||||
|
||||
// Place players
|
||||
var playerX = [];
|
||||
var playerZ = [];
|
||||
|
||||
for (let i = 0; i < numPlayers; ++i)
|
||||
{
|
||||
let iop = i - 1;
|
||||
|
||||
if (numPlayers % 2 == 0)
|
||||
playerZ[i] = ((iop + Math.abs(iop % 2))/2 + 1) / (numPlayers / 2 + 1);
|
||||
else if (iop % 2)
|
||||
playerZ[i] = ((iop + Math.abs(iop % 2))/2 + 1) / (((numPlayers + 1) / 2) + 1);
|
||||
else
|
||||
playerZ[i] = (iop/2 + 1) / (((numPlayers - 1) / 2) + 1);
|
||||
|
||||
playerZ[i] = playerPos[i];
|
||||
playerX[i] = 0.2 + 0.6 * (i % 2);
|
||||
}
|
||||
|
||||
|
@ -64,24 +64,13 @@ var clSettlement = createTileClass();
|
||||
var clShallow = createTileClass();
|
||||
|
||||
var playerIDs = primeSortAllPlayers();
|
||||
var playerPos = placePlayersRiver();
|
||||
|
||||
// place players
|
||||
var playerX = [];
|
||||
var playerZ = [];
|
||||
var playerAngle = [];
|
||||
var playerPos = [];
|
||||
var iop = 0;
|
||||
|
||||
for (var i = 0; i < numPlayers; i++)
|
||||
{
|
||||
iop = i - 1;
|
||||
if (numPlayers % 2 == 0)
|
||||
playerPos[i] = ((iop + abs(iop % 2)) / 2 + 1) / ((numPlayers / 2) + 1);
|
||||
else if (iop % 2 != 0)
|
||||
playerPos[i] = ((iop + abs(iop % 2)) / 2 + 1) / (((numPlayers + 1) / 2) + 1);
|
||||
else
|
||||
playerPos[i] = (iop / 2 + 1) / (((numPlayers - 1) / 2) + 1);
|
||||
|
||||
playerZ[i] = 0.2 + 0.6*(i%2);
|
||||
playerX[i] = playerPos[i];
|
||||
}
|
||||
|
@ -59,30 +59,13 @@ var clSettlement = createTileClass();
|
||||
var clShallow = createTileClass();
|
||||
|
||||
var playerIDs = primeSortAllPlayers();
|
||||
var playerPos = placePlayersRiver();
|
||||
|
||||
var playerX = [];
|
||||
var playerZ = [];
|
||||
|
||||
var playerX = new Array(numPlayers);
|
||||
var playerZ = new Array(numPlayers);
|
||||
var playerAngle = new Array(numPlayers);
|
||||
var playerPos = new Array(numPlayers);
|
||||
var iop = 0;
|
||||
for (var i = 0; i < numPlayers; i++)
|
||||
{
|
||||
iop = i - 1;
|
||||
if (!(numPlayers%2)){
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / ((numPlayers / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (iop%2)
|
||||
{
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / (((numPlayers + 1) / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
playerPos[i] = ((iop)/2 + 1) / ((((numPlayers - 1)) / 2) + 1);
|
||||
}
|
||||
}
|
||||
|
||||
playerZ[i] = 0.25 + 0.5*(i%2);
|
||||
playerX[i] = playerPos[i];
|
||||
}
|
||||
|
@ -424,9 +424,9 @@ function radialPlayerPlacement(percentRadius = 0.35)
|
||||
|
||||
let startAngle = randFloat(0, TWO_PI);
|
||||
|
||||
for (let i = 0; i < numPlayers; ++i)
|
||||
for (let i = 0; i < getNumPlayers(); ++i)
|
||||
{
|
||||
playerAngle[i] = startAngle + i * TWO_PI / numPlayers;
|
||||
playerAngle[i] = startAngle + i * TWO_PI / getNumPlayers();
|
||||
playerX[i] = 0.5 + percentRadius * Math.cos(playerAngle[i]);
|
||||
playerZ[i] = 0.5 + percentRadius * Math.sin(playerAngle[i]);
|
||||
}
|
||||
@ -434,6 +434,30 @@ function radialPlayerPlacement(percentRadius = 0.35)
|
||||
return [playerIDs, playerX, playerZ, playerAngle, startAngle];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an array of percent numbers indicating the player location on river maps.
|
||||
* For example [0.2, 0.2, 0.4, 0.4, 0.6, 0.6, 0.8, 0.8] for a 4v4 or
|
||||
* [0.25, 0.33, 0.5, 0.67, 0.75] for a 2v3.
|
||||
*/
|
||||
function placePlayersRiver()
|
||||
{
|
||||
let playerPos = [];
|
||||
let numPlayers = getNumPlayers();
|
||||
let numPlayersEven = numPlayers % 2 == 0;
|
||||
|
||||
for (let i = 0; i < numPlayers; ++i)
|
||||
{
|
||||
let currentPlayerEven = i % 2 == 0;
|
||||
|
||||
let offsetDivident = numPlayersEven || currentPlayerEven ? (i + 1) % 2 : 0;
|
||||
let offsetDivisor = numPlayersEven ? 0 : currentPlayerEven ? +1 : -1;
|
||||
|
||||
playerPos[i] = ((i - 1 + offsetDivident) / 2 + 1) / ((numPlayers + offsetDivisor) / 2 + 1);
|
||||
}
|
||||
|
||||
return playerPos;
|
||||
}
|
||||
|
||||
function getStartingEntities(player)
|
||||
{
|
||||
let civ = getCivCode(player);
|
||||
|
@ -73,25 +73,12 @@ var clShore = createTileClass();
|
||||
var clTreasure = createTileClass();
|
||||
|
||||
var playerIDs = primeSortAllPlayers();
|
||||
var playerPos = placePlayersRiver();
|
||||
var playerX = [];
|
||||
var playerZ = [];
|
||||
|
||||
// place players
|
||||
var playerX = new Array(numPlayers);
|
||||
var playerZ = new Array(numPlayers);
|
||||
var playerAngle = new Array(numPlayers);
|
||||
var playerPos = new Array(numPlayers);
|
||||
var iop = 0;
|
||||
for (var i = 0; i < numPlayers; i++)
|
||||
{
|
||||
iop = i - 1;
|
||||
if (numPlayers % 2 == 0)
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / ((numPlayers / 2) + 1);
|
||||
else
|
||||
{
|
||||
if (iop%2)
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / (((numPlayers + 1) / 2) + 1);
|
||||
else
|
||||
playerPos[i] = ((iop)/2 + 1) / ((((numPlayers - 1)) / 2) + 1);
|
||||
}
|
||||
playerZ[i] = playerPos[i];
|
||||
playerX[i] = 0.30 + 0.4*(i%2);
|
||||
}
|
||||
|
@ -283,60 +283,25 @@ else if (md == 2) //continent
|
||||
else if (md == 3) //central sea
|
||||
{
|
||||
var playerIDs = primeSortAllPlayers();
|
||||
var playerPos = placePlayersRiver();
|
||||
|
||||
var playerX = new Array(numPlayers);
|
||||
var playerZ = new Array(numPlayers);
|
||||
var playerAngle = new Array(numPlayers);
|
||||
var playerPos = new Array(numPlayers);
|
||||
var iop = 0;
|
||||
var playerX = [];
|
||||
var playerZ = [];
|
||||
var playerAngle = [];
|
||||
|
||||
var mdd1 = randIntInclusive(1,2);
|
||||
if (mdd1 == 1) //vertical
|
||||
{
|
||||
for (var i = 0; i < numPlayers; i++)
|
||||
{
|
||||
iop = i - 1;
|
||||
if (!(numPlayers%2)){
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / ((numPlayers / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (iop%2)
|
||||
{
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / (((numPlayers + 1) / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
playerPos[i] = ((iop)/2 + 1) / ((((numPlayers - 1)) / 2) + 1);
|
||||
}
|
||||
}
|
||||
playerZ[i] = playerPos[i];
|
||||
playerX[i] = 0.2 + 0.6*(i%2);
|
||||
}
|
||||
}
|
||||
else //horizontal
|
||||
{
|
||||
for (var i = 0; i < numPlayers; i++)
|
||||
{
|
||||
iop = i - 1;
|
||||
if (!(numPlayers%2)){
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / ((numPlayers / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (iop%2)
|
||||
{
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / (((numPlayers + 1) / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
playerPos[i] = ((iop)/2 + 1) / ((((numPlayers - 1)) / 2) + 1);
|
||||
}
|
||||
}
|
||||
playerZ[i] = 0.2 + 0.6*(i%2);
|
||||
playerX[i] = playerPos[i];
|
||||
}
|
||||
}
|
||||
|
||||
var WATER_WIDTH = randFloat(0.22,0.3)+scaleByMapSize(1,4)/20;
|
||||
log("Creating sea");
|
||||
@ -512,61 +477,25 @@ else if (md == 4) //central river
|
||||
}
|
||||
|
||||
var playerIDs = primeSortAllPlayers();
|
||||
var playerPos = placePlayersRiver();
|
||||
|
||||
var playerX = [];
|
||||
var playerZ = [];
|
||||
var playerAngle = [];
|
||||
|
||||
var playerX = new Array(numPlayers);
|
||||
var playerZ = new Array(numPlayers);
|
||||
var playerAngle = new Array(numPlayers);
|
||||
var playerPos = new Array(numPlayers);
|
||||
var iop = 0;
|
||||
var mdd1 = randIntInclusive(1,2);
|
||||
if (mdd1 == 1) //horizontal
|
||||
{
|
||||
for (var i = 0; i < numPlayers; i++)
|
||||
{
|
||||
iop = i - 1;
|
||||
if (!(numPlayers%2)){
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / ((numPlayers / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (iop%2)
|
||||
{
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / (((numPlayers + 1) / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
playerPos[i] = ((iop)/2 + 1) / ((((numPlayers - 1)) / 2) + 1);
|
||||
}
|
||||
}
|
||||
|
||||
playerZ[i] = 0.25 + 0.5*(i%2);
|
||||
playerX[i] = playerPos[i];
|
||||
}
|
||||
}
|
||||
else //vertical
|
||||
{
|
||||
for (var i = 0; i < numPlayers; i++)
|
||||
{
|
||||
iop = i - 1;
|
||||
if (!(numPlayers%2)){
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / ((numPlayers / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (iop%2)
|
||||
{
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / (((numPlayers + 1) / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
playerPos[i] = ((iop)/2 + 1) / ((((numPlayers - 1)) / 2) + 1);
|
||||
}
|
||||
}
|
||||
|
||||
playerZ[i] = playerPos[i];
|
||||
playerX[i] = 0.25 + 0.5*(i%2);
|
||||
}
|
||||
}
|
||||
|
||||
log("Creating the main river");
|
||||
|
||||
|
@ -149,61 +149,24 @@ if (md == 2) //continent
|
||||
else if (md == 3) //central sea
|
||||
{
|
||||
var playerIDs = primeSortAllPlayers();
|
||||
|
||||
// place players
|
||||
var playerX = new Array(numPlayers);
|
||||
var playerZ = new Array(numPlayers);
|
||||
var playerAngle = new Array(numPlayers);
|
||||
var playerPos = new Array(numPlayers);
|
||||
var iop = 0;
|
||||
var playerPos = placePlayersRiver();
|
||||
var playerX = [];
|
||||
var playerZ = [];
|
||||
var playerAngle = [];
|
||||
|
||||
var mdd1 = randIntInclusive(1,2);
|
||||
if (mdd1 == 1) //vertical
|
||||
{
|
||||
for (var i = 0; i < numPlayers; i++)
|
||||
{
|
||||
iop = i - 1;
|
||||
if (!(numPlayers%2)){
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / ((numPlayers / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (iop%2)
|
||||
{
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / (((numPlayers + 1) / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
playerPos[i] = ((iop)/2 + 1) / ((((numPlayers - 1)) / 2) + 1);
|
||||
}
|
||||
}
|
||||
playerZ[i] = playerPos[i];
|
||||
playerX[i] = 0.2 + 0.6*(i%2);
|
||||
}
|
||||
}
|
||||
else //horizontal
|
||||
{
|
||||
for (var i = 0; i < numPlayers; i++)
|
||||
{
|
||||
iop = i - 1;
|
||||
if (!(numPlayers%2)){
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / ((numPlayers / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (iop%2)
|
||||
{
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / (((numPlayers + 1) / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
playerPos[i] = ((iop)/2 + 1) / ((((numPlayers - 1)) / 2) + 1);
|
||||
}
|
||||
}
|
||||
playerZ[i] = 0.2 + 0.6*(i%2);
|
||||
playerX[i] = playerPos[i];
|
||||
}
|
||||
}
|
||||
|
||||
var WATER_WIDTH = randFloat(0.22,0.3)+scaleByMapSize(1,4)/20;
|
||||
log("Creating sea");
|
||||
@ -377,62 +340,25 @@ else if (md == 4) //central river
|
||||
}
|
||||
|
||||
var playerIDs = primeSortAllPlayers();
|
||||
var playerPos = placePlayersRiver();
|
||||
|
||||
var playerX = [];
|
||||
var playerZ = [];
|
||||
var playerAngle = [];
|
||||
|
||||
// place players
|
||||
var playerX = new Array(numPlayers);
|
||||
var playerZ = new Array(numPlayers);
|
||||
var playerAngle = new Array(numPlayers);
|
||||
var playerPos = new Array(numPlayers);
|
||||
var iop = 0;
|
||||
var mdd1 = randIntInclusive(1,2);
|
||||
if (mdd1 == 1) //horizontal
|
||||
{
|
||||
for (var i = 0; i < numPlayers; i++)
|
||||
{
|
||||
iop = i - 1;
|
||||
if (!(numPlayers%2)){
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / ((numPlayers / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (iop%2)
|
||||
{
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / (((numPlayers + 1) / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
playerPos[i] = ((iop)/2 + 1) / ((((numPlayers - 1)) / 2) + 1);
|
||||
}
|
||||
}
|
||||
|
||||
playerZ[i] = 0.25 + 0.5*(i%2);
|
||||
playerX[i] = playerPos[i];
|
||||
}
|
||||
}
|
||||
else //vertical
|
||||
{
|
||||
for (var i = 0; i < numPlayers; i++)
|
||||
{
|
||||
iop = i - 1;
|
||||
if (!(numPlayers%2)){
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / ((numPlayers / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (iop%2)
|
||||
{
|
||||
playerPos[i] = ((iop + abs(iop%2))/2 + 1) / (((numPlayers + 1) / 2) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
playerPos[i] = ((iop)/2 + 1) / ((((numPlayers - 1)) / 2) + 1);
|
||||
}
|
||||
}
|
||||
|
||||
playerZ[i] = playerPos[i];
|
||||
playerX[i] = 0.25 + 0.5*(i%2);
|
||||
}
|
||||
}
|
||||
|
||||
log("Creating the main river");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user