2011-03-22 02:34:45 +01:00
|
|
|
RMS.LoadLibrary("rmgen");
|
|
|
|
|
2012-04-04 22:53:17 +02:00
|
|
|
const BUILDING_ANGlE = -PI/4;
|
2011-09-14 00:51:43 +02:00
|
|
|
|
2011-03-22 02:34:45 +01:00
|
|
|
// initialize map
|
|
|
|
|
|
|
|
log("Initializing map...");
|
|
|
|
|
|
|
|
InitMap();
|
|
|
|
|
|
|
|
var numPlayers = getNumPlayers();
|
|
|
|
var mapSize = getMapSize();
|
|
|
|
|
|
|
|
// create tile classes
|
|
|
|
|
|
|
|
var clPlayer = createTileClass();
|
|
|
|
var clPath = createTileClass();
|
|
|
|
var clHill = createTileClass();
|
|
|
|
var clForest = createTileClass();
|
|
|
|
var clWater = createTileClass();
|
|
|
|
var clRock = createTileClass();
|
|
|
|
var clFood = createTileClass();
|
|
|
|
var clBaseResource = createTileClass();
|
|
|
|
|
2011-10-21 03:15:02 +02:00
|
|
|
// randomize player order
|
|
|
|
var playerIDs = [];
|
|
|
|
for (var i = 0; i < numPlayers; i++)
|
|
|
|
{
|
|
|
|
playerIDs.push(i+1);
|
|
|
|
}
|
2012-03-02 14:17:35 +01:00
|
|
|
playerIDs = sortPlayers(playerIDs);
|
2011-10-21 03:15:02 +02:00
|
|
|
|
2011-03-22 02:34:45 +01:00
|
|
|
// place players
|
|
|
|
|
|
|
|
var playerX = new Array(numPlayers);
|
2011-07-24 22:04:04 +02:00
|
|
|
var playerZ = new Array(numPlayers);
|
2011-03-22 02:34:45 +01:00
|
|
|
var playerAngle = new Array(numPlayers);
|
|
|
|
|
|
|
|
var startAngle = randFloat() * 2 * PI;
|
|
|
|
for (var i=0; i < numPlayers; i++)
|
|
|
|
{
|
|
|
|
playerAngle[i] = startAngle + i*2*PI/numPlayers;
|
|
|
|
playerX[i] = 0.5 + 0.39*cos(playerAngle[i]);
|
2011-07-24 22:04:04 +02:00
|
|
|
playerZ[i] = 0.5 + 0.39*sin(playerAngle[i]);
|
2011-03-22 02:34:45 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
for (var i=0; i < numPlayers; i++)
|
|
|
|
{
|
2011-10-21 03:15:02 +02:00
|
|
|
var id = playerIDs[i];
|
|
|
|
log("Creating base for player " + id + "...");
|
2011-03-22 02:34:45 +01:00
|
|
|
|
2011-07-24 22:04:04 +02:00
|
|
|
// get the x and z in tiles
|
2011-03-22 02:34:45 +01:00
|
|
|
var fx = fractionToTiles(playerX[i]);
|
2011-07-24 22:04:04 +02:00
|
|
|
var fz = fractionToTiles(playerZ[i]);
|
2011-03-22 02:34:45 +01:00
|
|
|
var ix = round(fx);
|
2011-07-24 22:04:04 +02:00
|
|
|
var iz = round(fz);
|
|
|
|
|
|
|
|
// create starting units
|
2012-05-05 01:50:43 +02:00
|
|
|
placeCivDefaultEntities(fx, fz, id, BUILDING_ANGlE);
|
2011-03-22 02:34:45 +01:00
|
|
|
}
|
|
|
|
|
2012-02-25 16:53:43 +01:00
|
|
|
|
|
|
|
|
2011-03-22 02:34:45 +01:00
|
|
|
// Export map data
|
|
|
|
ExportMap();
|