Remove 1400 useless random map script comments.

This was SVN commit r20144.
This commit is contained in:
elexis
2017-09-09 14:41:50 +00:00
parent 25282a5552
commit ba36f233fa
71 changed files with 97 additions and 1424 deletions
@@ -21,7 +21,6 @@ const tCorals1 = "medit_sea_coral_plants";
const tCorals2 = "medit_sea_coral_deep";
const tSeaDepths = "medit_sea_depths";
// gaia entities
const oBerryBush = "gaia/flora_bush_berry";
const oDeer = "gaia/fauna_deer";
const oFish = "gaia/fauna_fish";
@@ -37,7 +36,6 @@ const oFanPalm = "gaia/flora_tree_medit_fan_palm";
const oPoplar = "gaia/flora_tree_poplar_lombardy";
const oCypress = "gaia/flora_tree_cypress";
// decorative props
const aBush1 = "actor|props/flora/bush_medit_sm.xml";
const aBush2 = "actor|props/flora/bush_medit_me.xml";
const aBush3 = "actor|props/flora/bush_medit_la.xml";
@@ -48,16 +46,12 @@ const aDecorativeRock = "actor|geology/stone_granite_med.xml";
// terrain + entity (for painting)
const pForest = [tForestFloor, tForestFloor + TERRAIN_SEPARATOR + oCarob, tForestFloor + TERRAIN_SEPARATOR + oDatePalm, tForestFloor + TERRAIN_SEPARATOR + oSDatePalm, tForestFloor];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clForest = createTileClass();
var clWater = createTileClass();
@@ -80,8 +74,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = primeSortPlayers(sortPlayers(playerIDs));
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -113,7 +105,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -131,7 +122,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tCityPlaza, tCity], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -214,35 +204,25 @@ for (var ix = 0; ix < mapSize; ix++)
{
var h;
if (x < (cu + 0.5 + fadeDist - WATER_WIDTH/2))
{
h = 2 - 5.0 * (1 - ((cu + 0.5 + fadeDist - WATER_WIDTH/2) - x)/fadeDist);
}
else if (x > (cu2 + 0.5 - fadeDist + WATER_WIDTH/2))
{
h = 2 - 5.0 * (1 - (x - (cu2 + 0.5 - fadeDist + WATER_WIDTH/2))/fadeDist);
}
else
{
h = -3.0;
}
setHeight(ix, iz, h);
if (h < 0.7){
if (h < 0.7)
addToClass(ix, iz, clWater);
}
}
}
}
//paint the shores
paintTerrainBasedOnHeight(-20, 1, 0, tWater);
paintTerrainBasedOnHeight(1, 2, 0, tShore);
RMS.SetProgress(40);
// create bumps
createBumps(avoidClasses(clWater, 2, clPlayer, 20));
// create forests
createForests(
[tForestFloor, tForestFloor, tForestFloor, pForest, pForest],
avoidClasses(clPlayer, 20, clForest, 17, clWater, 2, clBaseResource, 3),
@@ -251,13 +231,11 @@ createForests(
RMS.SetProgress(50);
// create hills
if (randBool())
createHills([tGrass, tCliff, tHill], avoidClasses(clPlayer, 20, clForest, 1, clHill, 15, clWater, 3), clHill, scaleByMapSize(3, 15));
else
createMountains(tCliff, avoidClasses(clPlayer, 20, clForest, 1, clHill, 15, clWater, 3), clHill, scaleByMapSize(3, 15));
// create grass patches
log("Creating grass patches...");
createLayeredPatches(
[scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)],
@@ -268,7 +246,6 @@ createLayeredPatches(
RMS.SetProgress(55);
// create dirt patches
log("Creating dirt patches...");
createLayeredPatches(
[scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)],
@@ -279,7 +256,6 @@ createLayeredPatches(
RMS.SetProgress(60);
//create the undersea bumps
log("Creating undersea bumps...");
placer = new ChainPlacer(1, floor(scaleByMapSize(4, 6)), floor(scaleByMapSize(16, 40)), 0.5);
painter = new SmoothElevationPainter(ELEVATION_SET, -2.5, 3);
@@ -290,7 +266,6 @@ createAreas(
scaleByMapSize(10, 50)
);
// create islands
log("Creating islands...");
placer = new ChainPlacer(1, floor(scaleByMapSize(4, 6)), floor(scaleByMapSize(30, 80)), 0.5);
var terrainPainter = new LayeredPainter(
@@ -305,13 +280,11 @@ createAreas(
scaleByMapSize(1, 4) * numPlayers
);
//paint the seabed
paintTerrainBasedOnHeight(-20, -3, 3, tSeaDepths);
paintTerrainBasedOnHeight(-3, -2, 2, tCorals2);
paintTerrainBasedOnHeight(-2, -1.5, 2, tCorals1);
log("Creating island stone mines...");
// create island stone quarries
createMines(
[
[new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)],
@@ -321,7 +294,6 @@ createMines(
);
log("Creating island metal mines...");
// create island metal quarries
createMines(
[
[new SimpleObject(oMetalLarge, 1,1, 0,4)]
@@ -331,7 +303,6 @@ createMines(
);
log("Creating stone mines...");
// create stone quarries
createMines(
[
[new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)],
@@ -341,7 +312,6 @@ createMines(
);
log("Creating metal mines...");
// create large metal quarries
createMines(
[
[new SimpleObject(oMetalLarge, 1,1, 0,4)]
@@ -352,7 +322,6 @@ createMines(
RMS.SetProgress(65);
// create decoration
createDecoration
(
[[new SimpleObject(aDecorativeRock, 1,3, 0,1)],
@@ -367,7 +336,6 @@ createDecoration
RMS.SetProgress(70);
// create fish
createFood
(
[
@@ -379,7 +347,6 @@ createFood
[avoidClasses(clIsland, 2, clFood, 10), stayClasses(clWater, 5)]
);
// create animals
createFood
(
[
@@ -395,7 +362,6 @@ createFood
avoidClasses(clForest, 0, clPlayer, 8, clWater, 1, clFood, 10, clHill, 1)
);
// create fruits
createFood
(
[
@@ -409,7 +375,6 @@ createFood
RMS.SetProgress(90);
// create straggler trees
var types = [oDatePalm, oSDatePalm, oCarob, oFanPalm, oPoplar, oCypress]; // some variation
createStragglerTrees(types, avoidClasses(clForest, 1, clWater, 2, clPlayer, 12, clMetal, 6, clHill, 1));
@@ -417,7 +382,6 @@ log("Creating straggler island trees...");
g_numStragglerTrees *= 10;
createStragglerTrees(types, stayClasses(clIsland, 4));
// Set environment
setSkySet("cumulus");
setSunColor(0.866667, 0.776471, 0.486275);
setWaterColor(0, 0.501961, 1);
@@ -434,5 +398,4 @@ setPPContrast(0.62);
setPPSaturation(0.51);
setPPBloom(0.12);
// Export map data
ExportMap();
@@ -14,7 +14,6 @@ var tCitytiles = "savanna_tile_a";
var tShore = "savanna_riparian_bank";
var tWater = "savanna_riparian_wet";
// gaia entities
var oBaobab = "gaia/flora_tree_baobab";
var oPalm = "gaia/flora_tree_senegal_date_palm";
var oBerryBush = "gaia/flora_bush_berry";
@@ -34,13 +33,11 @@ var oFish = "gaia/fauna_fish";
var oStoneSmall = "gaia/geology_stone_savanna_small";
var oMetalLarge = "gaia/geology_metal_savanna_slabs";
// decorative props
var aBush = "actor|props/flora/bush_medit_sm_dry.xml";
var aRock = "actor|geology/stone_savanna_med.xml";
const pForest = [tForestFloor + TERRAIN_SEPARATOR + oPalm, tForestFloor];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
@@ -83,15 +83,12 @@ else
//other constants
const pForest = [tForestFloor + TERRAIN_SEPARATOR + oPine, tForestFloor];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -140,7 +137,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -162,7 +158,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -181,9 +176,8 @@ for (var i = 0; i < numPlayers; i++)
// create metal mine
var mAngle = bbAngle;
while(abs(mAngle - bbAngle) < PI/3)
{
mAngle = randFloat(0, TWO_PI);
}
var mDist = 12;
var mX = round(fx + mDist * cos(mAngle));
var mZ = round(fz + mDist * sin(mAngle));
@@ -220,7 +214,6 @@ for (var i = 0; i < numPlayers; i++)
RMS.SetProgress(20);
// create hills
log("Creating hills...");
createMountains(tCliff, avoidClasses(clPlayer, 20, clHill, 8), clHill, scaleByMapSize(10, 40) * numPlayers, floor(scaleByMapSize(40, 60)), floor(scaleByMapSize(4, 5)), floor(scaleByMapSize(7, 15)), floor(scaleByMapSize(5, 15)));
@@ -235,10 +228,8 @@ for (var x = 0; x < mapSize; ++x)
if (playerConstraint.allows(x, z) && waterConstraint.allows(x, z))
lakeAreas.push([x, z]);
var chosenPoint;
var lakeAreaLen;
// create lakes
log("Creating lakes...");
var numLakes = scaleByMapSize(5, 16);
@@ -248,7 +239,7 @@ for (var i = 0; i < numLakes; ++i)
if (!lakeAreaLen)
break;
chosenPoint = pickRandom(lakeAreas);
let chosenPoint = pickRandom(lakeAreas);
placer = new ChainPlacer(1, floor(scaleByMapSize(4, 8)), floor(scaleByMapSize(40, 180)), 0.7, chosenPoint[0], chosenPoint[1]);
var terrainPainter = new LayeredPainter(
@@ -279,10 +270,8 @@ for (var i = 0; i < numLakes; ++i)
paintTerrainBasedOnHeight(3, floor(scaleByMapSize(20, 40)), 0, tCliff);
paintTerrainBasedOnHeight(floor(scaleByMapSize(20, 40)), 100, 3, tSnowLimited);
// create bumps
createBumps(avoidClasses(clWater, 2, clPlayer, 20));
// create forests
createForests(
[tPrimary, tForestFloor, tForestFloor, pForest, pForest],
avoidClasses(clPlayer, 20, clForest, 17, clHill, 0, clWater, 2),
@@ -292,7 +281,6 @@ createForests(
RMS.SetProgress(60);
// create dirt patches
log("Creating dirt patches...");
createLayeredPatches(
[scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)],
@@ -301,7 +289,6 @@ createLayeredPatches(
avoidClasses(clWater, 3, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12)
);
// create grass patches
log("Creating grass patches...");
createPatches(
[scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)],
@@ -312,7 +299,6 @@ createPatches(
RMS.SetProgress(65);
log("Creating stone mines...");
// create stone quarries
createMines(
[
[new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)],
@@ -322,7 +308,6 @@ createMines(
);
log("Creating metal mines...");
// create large metal quarries
createMines(
[
[new SimpleObject(oMetalLarge, 1,1, 0,4)]
@@ -333,7 +318,6 @@ createMines(
RMS.SetProgress(70);
// create decoration
createDecoration
(
[[new SimpleObject(aRockMedium, 1,3, 0,1)],
@@ -354,7 +338,6 @@ createDecoration
RMS.SetProgress(75);
// create animals
createFood
(
[
@@ -368,7 +351,6 @@ createFood
avoidClasses(clWater, 3, clForest, 0, clPlayer, 20, clHill, 1, clFood, 20)
);
// create fruits
createFood
(
[
@@ -380,7 +362,6 @@ createFood
avoidClasses(clWater, 3, clForest, 0, clPlayer, 20, clHill, 1, clFood, 10)
);
// create fish
createFood
(
[
@@ -394,7 +375,6 @@ createFood
RMS.SetProgress(85);
// create straggler trees
var types = [oPine];
createStragglerTrees(types, avoidClasses(clWater, 5, clForest, 3, clHill, 1, clPlayer, 12, clMetal, 6, clRock, 6));
@@ -407,5 +387,4 @@ setWaterMurkiness(0.82);
setWaterWaviness(3.0);
setWaterType("clap");
// Export map data
ExportMap();
@@ -67,17 +67,14 @@ else
var aBushSmall = "actor|props/flora/bush_medit_sm_dry.xml";
}
//other constants
const pForest = [tForestFloor + TERRAIN_SEPARATOR + oPine, tForestFloor];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -122,7 +119,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -13,17 +13,15 @@ const tShoreBlend = "desert_shore_stones";
const tShore = "dirta";
const tWater = "desert_sand_wet";
// gaia entities
const oPoplar = "gaia/flora_tree_poplar_lombardy";
const oBush = "gaia/flora_bush_temperate";
const oBerryBush = "gaia/flora_bush_berry";
const oRabbid = "gaia/fauna_rabbit";
const oRabbit = "gaia/fauna_rabbit";
const oSheep = "gaia/fauna_sheep";
const oStoneLarge = "gaia/geology_stonemine_medit_quarry";
const oStoneSmall = "gaia/geology_stone_mediterranean";
const oMetalLarge = "gaia/geology_metal_mediterranean_slabs";
// decorative props
const aGrass = "actor|props/flora/grass_soft_small_tall.xml";
const aGrassShort = "actor|props/flora/grass_soft_large.xml";
const aRockLarge = "actor|geology/stone_granite_med.xml";
@@ -33,15 +31,12 @@ const aBushSmall = "actor|props/flora/bush_medit_sm.xml";
const pForest = [tForestFloor + TERRAIN_SEPARATOR + oPoplar, tForestFloor];
log("Initializing map...");
InitMap();
var numPlayers = getNumPlayers();
var mapSize = getMapSize();
var mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -60,8 +55,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -79,7 +72,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -101,7 +93,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -159,7 +150,6 @@ for (var i = 0; i < numPlayers; i++)
RMS.SetProgress(20);
// create bumps
log("Creating bumps...");
placer = new ChainPlacer(1, floor(scaleByMapSize(4, 6)), floor(scaleByMapSize(2, 5)), 0.5);
painter = new SmoothElevationPainter(ELEVATION_MODIFY, 2, 2);
@@ -180,7 +170,6 @@ var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES);
var numForest = totalTrees * P_FOREST;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create forests
log("Creating forests...");
var types = [[[tForestFloor, tGrass, pForest], [tForestFloor, pForest]]]; // some variation
@@ -202,10 +191,8 @@ for (var i = 0; i < types.length; ++i)
);
}
RMS.SetProgress(50);
// create grass patches
log("Creating grass patches...");
createLayeredPatches(
[scaleByMapSize(5, 48), scaleByMapSize(6, 84), scaleByMapSize(8, 128)],
@@ -216,7 +203,6 @@ createLayeredPatches(
clDirt
);
// create dirt patches
log("Creating dirt patches...");
createLayeredPatches(
[scaleByMapSize(5, 32), scaleByMapSize(6, 48), scaleByMapSize(7, 80)],
@@ -229,7 +215,6 @@ createLayeredPatches(
RMS.SetProgress(55);
// create big patches
log("Creating big patches...");
createLayeredPatches(
[scaleByMapSize(10, 60), scaleByMapSize(15, 90), scaleByMapSize(20, 120)],
@@ -243,14 +228,13 @@ createLayeredPatches(
RMS.SetProgress(55);
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clForest, 1, clPlayer, 20, clRock, 10, clHill, 1),
scaleByMapSize(1,4), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clForest, 1, clPlayer, 20, clRock, 10, clHill, 1),
@@ -258,7 +242,6 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 1),
@@ -267,7 +250,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(65);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockMedium, 1,3, 0,1)],
@@ -279,8 +261,6 @@ createObjectGroupsDeprecated(
scaleByMapSize(16, 262), 50
);
// create large decorative rocks
log("Creating large decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockLarge, 1,2, 0,1), new SimpleObject(aRockMedium, 1,3, 0,2)],
@@ -294,10 +274,9 @@ createObjectGroupsDeprecated(
RMS.SetProgress(70);
// create rabbid
log("Creating rabbid...");
log("Creating rabbits...");
group = new SimpleGroup(
[new SimpleObject(oRabbid, 5,7, 0,4)],
[new SimpleObject(oRabbit, 5,7, 0,4)],
true, clFood
);
createObjectGroupsDeprecated(group, 0,
@@ -305,7 +284,6 @@ createObjectGroupsDeprecated(group, 0,
6 * numPlayers, 50
);
// create berry bush
log("Creating berry bush...");
group = new SimpleGroup(
[new SimpleObject(oBerryBush, 5,7, 0,4)],
@@ -318,7 +296,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(75);
// create sheep
log("Creating sheep...");
group = new SimpleGroup(
[new SimpleObject(oSheep, 2,3, 0,2)],
@@ -331,8 +308,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(85);
// create straggler trees
log("Creating straggler trees...");
var types = [oBush, oPoplar]; // some variation
var num = floor(numStragglers / types.length);
@@ -348,7 +323,6 @@ for (var i = 0; i < types.length; ++i)
);
}
// create large grass tufts
log("Creating large grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrass, 2,4, 0,1.8, -PI/8,PI/8), new SimpleObject(aGrassShort, 3,6, 1.2,2.5, -PI/8,PI/8)]
@@ -360,7 +334,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(95);
// create bushes
log("Creating bushes...");
group = new SimpleGroup(
[new SimpleObject(aBushMedium, 1,2, 0,2), new SimpleObject(aBushSmall, 2,4, 0,2)]
@@ -21,7 +21,6 @@ const tShoreBlend = g_Terrains.shoreBlend;
const tShore = g_Terrains.shore;
const tWater = g_Terrains.water;
// gaia entities
const oTree1 = g_Gaia.tree1;
const oTree2 = g_Gaia.tree2;
const oTree3 = g_Gaia.tree3;
@@ -36,7 +35,6 @@ const oStoneSmall = g_Gaia.stoneSmall;
const oMetalLarge = g_Gaia.metalLarge;
const oWood = "gaia/special_treasure_wood";
// decorative props
const aGrass = g_Decoratives.grass;
const aGrassShort = g_Decoratives.grassShort;
const aReeds = g_Decoratives.reeds;
@@ -49,7 +47,6 @@ const aBushSmall = g_Decoratives.bushSmall;
const pForest1 = [tForestFloor2 + TERRAIN_SEPARATOR + oTree1, tForestFloor2 + TERRAIN_SEPARATOR + oTree2, tForestFloor2];
const pForest2 = [tForestFloor1 + TERRAIN_SEPARATOR + oTree4, tForestFloor1 + TERRAIN_SEPARATOR + oTree5, tForestFloor1];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
@@ -91,7 +88,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(22,31);
var shoreRadius = 4;
var elevation = 3;
@@ -39,7 +39,6 @@ var aRockMedium = "actor|geology/stone_granite_med.xml";
const pForest = [tForestFloor + TERRAIN_SEPARATOR + oBush, tForestFloor + TERRAIN_SEPARATOR + oBush2, tForestFloor];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
@@ -1,7 +1,5 @@
RMS.LoadLibrary("rmgen");
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
@@ -53,8 +51,6 @@ var pForest = [
tForestFloor
];
// create tile classes
var clPlayer = createTileClass();
var clPath = createTileClass();
var clHill = createTileClass();
@@ -91,7 +87,6 @@ RMS.SetProgress(5);
// Find all hills
var noise0 = new Noise2D(20);
for (var ix = 0; ix < mapSize; ix++)
{
for (var iz = 0; iz < mapSize; iz++)
{
var h = getHeight(ix,iz);
@@ -105,18 +100,13 @@ for (var ix = 0; ix < mapSize; ix++)
setHeight(ix, iz, h + n);
}
}
}
// randomize player order
var playerIDs = [];
for (var i = 0; i < numPlayers; i++)
{
playerIDs.push(i+1);
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -146,17 +136,12 @@ function playerNearness(x, z)
var d = fractionToTiles(distanceToPlayers(x,z));
if (d < 13)
{
return 0;
}
else if (d < 19)
{
if (d < 19)
return (d-13)/(19-13);
}
else
{
return 1;
}
return 1;
}
RMS.SetProgress(10);
@@ -172,7 +157,6 @@ for (var i=0; i < numPlayers; i++)
var ix = round(fx);
var iz = round(fz);
// create starting units
placeCivDefaultEntities(fx, fz, id);
var citySize = 250;
@@ -262,7 +246,6 @@ for (var i = 0; i < sizes.length; i++)
scaleByMapSize(1, 4)
);
if(sizes[i] > 100 && mountains.length > 0)
{
var placer = new ClumpPlacer(sizes[i] * 0.3, 0.94, 0.05, 0.1);
@@ -286,7 +269,6 @@ for (var i = 0; i < sizes.length; i++)
);
}
var placer = new ClumpPlacer(sizes[i], 0.1, 0.2, 0.1);
var elevationPainter = new SmoothElevationPainter(
@@ -431,7 +413,6 @@ var numForest = totalTrees * P_FOREST * (1.0 - P_FOREST_JOIN);
var numForestJoin = totalTrees * P_FOREST * P_FOREST_JOIN;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create forests
log("Creating forests...");
var num = numForest / (scaleByMapSize(6,16) * numPlayers);
placer = new ClumpPlacer(numForest / num, 0.1, 0.1, 1);
@@ -457,10 +438,8 @@ createAreasInAreas(
[explorableArea]
);
RMS.SetProgress(70);
// create grass patches
log("Creating grass patches...");
var sizes = [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)];
for (var i = 0; i < sizes.length; i++)
@@ -478,7 +457,6 @@ for (var i = 0; i < sizes.length; i++)
);
}
// create chopped forest patches
log("Creating chopped forest patches...");
var sizes = [scaleByMapSize(20, 120)];
for (var i = 0; i < sizes.length; i++)
@@ -492,12 +470,9 @@ for (var i = 0; i < sizes.length; i++)
scaleByMapSize(4, 12)
);
}
RMS.SetProgress(75);
log("Creating stone mines...");
// create stone quarries
var group = new SimpleGroup([new SimpleObject(oStoneSmall, 1,2, 0,4), new SimpleObject(oStoneLarge, 0,1, 0,4)], true, clRock);
createObjectGroupsByAreasDeprecated(group, 0,
[avoidClasses(clHill, 4, clForest, 2, clPlayer, 20, clRock, 10)],
@@ -505,7 +480,7 @@ createObjectGroupsByAreasDeprecated(group, 0,
[explorableArea]
);
// create small stone quarries
log("Creating small stone mines...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsByAreasDeprecated(group, 0,
[avoidClasses(clHill, 4, clForest, 2, clPlayer, 20, clRock, 10)],
@@ -514,7 +489,6 @@ createObjectGroupsByAreasDeprecated(group, 0,
);
log("Creating metal mines...");
// create metal quarries
group = new SimpleGroup([new SimpleObject(oMetalSmall, 1,2, 0,4), new SimpleObject(oMetalLarge, 0,1, 0,4)], true, clMetal);
createObjectGroupsByAreasDeprecated(group, 0,
[avoidClasses(clHill, 4, clForest, 2, clPlayer, 20, clMetal, 10, clRock, 5)],
@@ -524,7 +498,6 @@ createObjectGroupsByAreasDeprecated(group, 0,
RMS.SetProgress(80);
// create wildlife
log("Creating wildlife...");
group = new SimpleGroup(
[new SimpleObject(oDeer, 5,7, 0,4)],
@@ -558,7 +531,6 @@ createObjectGroupsByAreasDeprecated(group, 0,
RMS.SetProgress(85);
// create berry bush
log("Creating berry bush...");
group = new SimpleGroup(
[new SimpleObject(oBerryBush, 5,7, 0,4)],
@@ -589,7 +561,6 @@ createObjectGroupsByAreasDeprecated(
RMS.SetProgress(90);
// create straggler trees
log("Creating straggler trees...");
var types = [oOak, oOakLarge, oPine, oAleppoPine]; // some variation
var num = floor(numStragglers / types.length);
@@ -609,7 +580,6 @@ for (var i = 0; i < types.length; ++i)
RMS.SetProgress(95);
// create grass tufts
log("Creating grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrassLarge, 1,2, 0,1, -PI/8,PI/8)]
@@ -620,9 +590,7 @@ createObjectGroupsByAreasDeprecated(group, 0,
[explorableArea]
);
setTerrainAmbientColor(0.44,0.51,0.56);
setUnitsAmbientColor(0.44,0.51,0.56);
// Export map data
ExportMap();
@@ -1,6 +1,5 @@
RMS.LoadLibrary("rmgen");
// terrain textures
const tGrass = ["medit_rocks_grass_shrubs", "medit_rocks_shrubs"];
const tForestFloor = "medit_grass_field_dry";
const tCliff = "medit_cliff_italia";
@@ -15,7 +14,6 @@ const tShoreBlend = "medit_sand";
const tShore = "medit_sand";
const tWater = "medit_sand";
// gaia entities
const oCarob = "gaia/flora_tree_carob";
const oAleppoPine = "gaia/flora_tree_aleppo_pine";
const oBerryBush = "gaia/flora_bush_berry";
@@ -28,8 +26,6 @@ const oMetalLarge = "gaia/geology_metal_mediterranean_slabs";
const oWood = "gaia/special_treasure_wood";
const oFood = "gaia/special_treasure_food_bin";
// decorative props
const aGrass = "actor|props/flora/grass_soft_large_tall.xml";
const aGrassShort = "actor|props/flora/grass_soft_large.xml";
const aRockLarge = "actor|geology/stone_granite_large.xml";
@@ -39,22 +35,16 @@ const aBushSmall = "actor|props/flora/bush_medit_sm.xml";
const aCarob = "actor|flora/trees/carob.xml";
const aAleppoPine = "actor|flora/trees/aleppo_pine.xml";
// terrain + entity (for painting)
const pForest1 = [tForestFloor + TERRAIN_SEPARATOR + oCarob, tForestFloor];
const pForest2 = [tForestFloor + TERRAIN_SEPARATOR + oAleppoPine, tForestFloor];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -74,8 +64,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -93,7 +81,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -115,7 +102,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -172,7 +158,6 @@ for (var i = 0; i < numPlayers; i++)
RMS.SetProgress(10);
// create bumps
createBumps(avoidClasses(clPlayer, 9));
createMountains(tCliff, avoidClasses(clPlayer, 20, clHill, 8), clHill, scaleByMapSize(20, 120));
@@ -187,7 +172,6 @@ createForests(
RMS.SetProgress(40);
// create dirt patches
log("Creating dirt patches...");
createLayeredPatches(
[scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)],
@@ -196,7 +180,6 @@ createLayeredPatches(
avoidClasses(clForest, 0, clHill, 0, clDirt, 3, clPlayer, 10)
);
// create grass patches
log("Creating grass patches...");
createLayeredPatches(
[scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)],
@@ -208,7 +191,6 @@ createLayeredPatches(
RMS.SetProgress(50);
log("Creating stone mines...");
// create stone quarries
createMines(
[
[new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)],
@@ -218,7 +200,6 @@ createMines(
);
log("Creating metal mines...");
// create large metal quarries
createMines(
[
[new SimpleObject(oMetalLarge, 1,1, 0,4)]
@@ -229,7 +210,6 @@ createMines(
RMS.SetProgress(60);
// create decoration
createDecoration
(
[[new SimpleObject(aRockMedium, 1,3, 0,1)],
@@ -250,7 +230,6 @@ createDecoration
RMS.SetProgress(75);
// create animals
createFood
(
[
@@ -263,7 +242,6 @@ createFood
]
);
// create fruits
createFood
(
[
@@ -275,7 +253,6 @@ createFood
avoidClasses(clForest, 0, clPlayer, 20, clHill, 1, clFood, 10)
);
// create food treasures
log("Creating food treasures...");
group = new SimpleGroup(
[new SimpleObject(oFood, 2,3, 0,2)],
@@ -286,7 +263,6 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
// create wood treasures
log("Creating food treasures...");
group = new SimpleGroup(
[new SimpleObject(oWood, 2,3, 0,2)],
@@ -299,11 +275,9 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(80);
// create straggler trees
var types = [oCarob, oAleppoPine]; // some variation
createStragglerTrees(types, avoidClasses(clForest, 1, clHill, 1, clPlayer, 10, clMetal, 6, clRock, 6, clTreasure, 4));
// create hill trees
log("Creating hill trees...");
var types = [aCarob, aAleppoPine]; // some variation
var num = floor(0.2 * g_numStragglerTrees / types.length);
@@ -327,5 +301,4 @@ setPPContrast(0.45);
setPPSaturation(0.56);
setPPBloom(0.1);
// Export map data
ExportMap();
@@ -78,7 +78,6 @@ var scale = paintHeightmap(getHeightMap(), getTileMap(), getTilePallet(), (tile,
});
RMS.SetProgress(20);
log("Paint tile classes...");
paintTileClassBasedOnHeight(-100, -1, 3, g_TileClasses.water);
RMS.SetProgress(40);
@@ -6,14 +6,11 @@ timeArray.push(Date.now());
RMS.LoadLibrary("rmgen");
RMS.LoadLibrary("heightmap");
log("Initializing map...");
InitMap();
var numPlayers = getNumPlayers();
var mapSize = getMapSize();
// Function to apply a heightmap
function setReliefmap(reliefmap)
{
@@ -23,7 +20,6 @@ function setReliefmap(reliefmap)
setHeight(x, y, reliefmap[x][y]);
}
// Set target min and max height depending on map size to make average stepness the same on all map sizes
var heightRange = {"min": MIN_HEIGHT * mapSize / 8192, "max": MAX_HEIGHT * mapSize / 8192};
@@ -36,7 +32,6 @@ var waterHeight = -MIN_HEIGHT + heightRange.min + averageWaterCoverage * (height
var waterHeightAdjusted = waterHeight + MIN_HEIGHT;
setWaterHeight(waterHeight);
//////////
// Prepare terrain texture by height placement
//////////
@@ -101,7 +96,6 @@ var minTerrainDistToBorder = 3;
timeArray.push(Date.now());
RMS.SetProgress(5);
// START THE GIANT WHILE LOOP:
// - Generate Heightmap
// - Search valid start position tiles
@@ -223,7 +217,7 @@ while (!goodStartPositionsFound)
// Find a good start position derivation
if (enoughTiles)
{
// Get some random start location derivations. NOTE: Itterating over all possible derivations is just to much (valid points ** numPlayers)
// Get some random start location derivations. NOTE: Iterating over all possible derivations is just too much (valid points * numPlayers)
var maxTries = 100000; // floor(800000 / (Math.pow(numPlayers, 2) / 2));
var possibleDerivations = [];
for (var i = 0; i < maxTries; i++)
@@ -277,7 +271,6 @@ while (!goodStartPositionsFound)
timeArray.push(Date.now());
RMS.SetProgress(60);
////////
// Paint terrain by height and add props
////////
@@ -406,7 +399,6 @@ for(var x = minTerrainDistToBorder; x < mapSize - minTerrainDistToBorder; x++)
timeArray.push(Date.now());
RMS.SetProgress(90);
////////
// Place players and start resources
////////
@@ -437,8 +429,6 @@ for (var p = 0; p < numPlayers; p++)
}
}
// Export map data
ExportMap();
// Time check 7
@@ -4,5 +4,4 @@ RMS.LoadLibrary("rmgen");
InitMap();
// Export map data
ExportMap();
@@ -42,7 +42,6 @@ const aShrub = "actor|props/flora/shrub_tropic_plant_flower.xml";
const aFlower = "actor|props/flora/flower_bright.xml";
const aPalm = "actor|props/flora/shrub_fanpalm.xml";
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
@@ -50,6 +50,7 @@ let decorations = [
"actor|props/flora/bush.xml", "actor|props/flora/bush_dry_a.xml", "actor|props/flora/bush_highlands.xml",
"actor|props/flora/bush_tempe_a.xml", "actor|props/flora/bush_tempe_b.xml", "actor|props/flora/ferns.xml"
];
function placeMine(point, centerEntity)
{
placeObject(point.x, point.y, centerEntity, 0, randFloat(0, TWO_PI));
@@ -1,6 +1,5 @@
RMS.LoadLibrary("rmgen");
// terrain textures
const tGrass = ["temp_grass", "temp_grass", "temp_grass_d"];
const tGrassPForest = "temp_plants_bog";
const tGrassDForest = "temp_plants_bog";
@@ -18,7 +17,6 @@ const tShoreBlend = "temp_grass_plants";
const tShore = "temp_plants_bog";
const tWater = "temp_mud_a";
// gaia entities
const oOak = "gaia/flora_tree_oak";
const oOakLarge = "gaia/flora_tree_oak_large";
const oApple = "gaia/flora_tree_apple";
@@ -32,7 +30,6 @@ const oStoneLarge = "gaia/geology_stonemine_temperate_quarry";
const oStoneSmall = "gaia/geology_stone_temperate";
const oMetalLarge = "gaia/geology_metal_temperate_slabs";
// decorative props
const aGrass = "actor|props/flora/grass_soft_large_tall.xml";
const aGrassShort = "actor|props/flora/grass_soft_large.xml";
const aReeds = "actor|props/flora/reeds_pond_lush_a.xml";
@@ -46,7 +43,6 @@ const aBushSmall = "actor|props/flora/bush_medit_sm.xml";
const pForestD = [tGrassDForest + TERRAIN_SEPARATOR + oOak, tGrassDForest + TERRAIN_SEPARATOR + oOakLarge, tGrassDForest];
const pForestP = [tGrassPForest + TERRAIN_SEPARATOR + oPine, tGrassPForest + TERRAIN_SEPARATOR + oAleppoPine, tGrassPForest];
log("Initializing map...");
InitMap();
var numPlayers = getNumPlayers();
@@ -88,7 +84,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -133,7 +128,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id, { 'iberWall': false });
placeDefaultChicken(fx, fz, clBaseResource);
@@ -19,7 +19,6 @@ const tShoreBlend = g_Terrains.shoreBlend;
const tShore = g_Terrains.shore;
const tWater = g_Terrains.water;
// gaia entities
const oTree1 = g_Gaia.tree1;
const oTree2 = g_Gaia.tree2;
const oTree3 = g_Gaia.tree3;
@@ -35,7 +34,6 @@ const oMetalLarge = g_Gaia.metalLarge;
const oWood = "gaia/special_treasure_wood";
const oFood = "gaia/special_treasure_food_bin";
// decorative props
const aGrass = g_Decoratives.grass;
const aGrassShort = g_Decoratives.grassShort;
const aReeds = g_Decoratives.reeds;
@@ -49,16 +47,12 @@ const aTree = g_Decoratives.tree;
const pForest1 = [tForestFloor2 + TERRAIN_SEPARATOR + oTree1, tForestFloor2 + TERRAIN_SEPARATOR + oTree2, tForestFloor2];
const pForest2 = [tForestFloor1 + TERRAIN_SEPARATOR + oTree4, tForestFloor1 + TERRAIN_SEPARATOR + oTree5, tForestFloor1];
log("Initializing map...");
InitMap();
var numPlayers = getNumPlayers();
var mapSize = getMapSize();
var mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clHill2 = createTileClass();
@@ -108,8 +102,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -127,7 +119,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(18,32);
var cliffRadius = 2;
var elevation = 20;
@@ -150,7 +141,6 @@ for (var i = 0; i < numPlayers; i++)
);
createArea(placer, [terrainPainter, elevationPainter, paintClass(clLand)], null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -314,7 +304,6 @@ for (var g = 0; g < scaleByMapSize(5,30); g++)
}
}
for (var i = 0; i < numPlayers; i++)
{
if (i+1 == numPlayers)
@@ -368,10 +357,8 @@ RMS.SetProgress(20);
paintTerrainBasedOnHeight(3.1, 29, 0, tCliff);
paintTileClassBasedOnHeight(3.1, 32, 0, clHill2);
// create bumps
createBumps([avoidClasses(clPlayer, 2), stayClasses(clLand, 2)]);
// create hills
createHills([tCliff, tCliff, tHill], [avoidClasses(clPlayer, 2, clHill, 8, clHill2, 8), stayClasses(clLand, 5)], clHill, scaleByMapSize(10, 40));
// create hills outside the canyon
@@ -387,7 +374,6 @@ createForests(
RMS.SetProgress(50);
// create dirt patches
log("Creating dirt patches...");
createLayeredPatches(
[scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)],
@@ -396,7 +382,6 @@ createLayeredPatches(
[avoidClasses(clForest, 0, clHill, 0, clDirt, 5, clPlayer, 4, clHill2, 0), stayClasses(clLand, 3)]
);
// create grass patches
log("Creating grass patches...");
createPatches(
[scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)],
@@ -405,7 +390,6 @@ createPatches(
);
log("Creating stone mines...");
// create stone quarries
createMines(
[
[new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)],
@@ -415,7 +399,6 @@ createMines(
);
log("Creating metal mines...");
// create large metal quarries
createMines(
[
[new SimpleObject(oMetalLarge, 1,1, 0,4)]
@@ -426,7 +409,6 @@ createMines(
RMS.SetProgress(65);
// create decoration
var planetm = 1;
if (currentBiome() == "tropic")
@@ -450,7 +432,6 @@ createDecoration
avoidClasses(clForest, 0, clPlayer, 0, clHill, 0)
);
// create actor trees
log("Creating actor trees...");
group = new SimpleGroup(
[new SimpleObject(aTree, 1,1, 0,1)],
@@ -464,7 +445,6 @@ createObjectGroupsDeprecated(
RMS.SetProgress(70);
// create animals
createFood
(
[
@@ -478,7 +458,6 @@ createFood
[avoidClasses(clForest, 0, clPlayer, 4, clHill, 1, clFood, 20, clHill2, 1), stayClasses(clLand, 3)]
);
// create fruits
createFood
(
[
@@ -492,14 +471,11 @@ createFood
RMS.SetProgress(85);
// create straggler trees
log("Creating straggler trees...");
var types = [oTree1, oTree2, oTree4, oTree3]; // some variation
createStragglerTrees(types, [avoidClasses(clForest, 1, clHill, 1, clPlayer, 9, clMetal, 6, clRock, 6, clHill2, 1), stayClasses(clLand, 3)]);
// create treasures
log("Creating treasures...");
var fx = fractionToTiles(0.5);
var fz = fractionToTiles(0.5);
for (let i = 0; i < randIntInclusive(3, 8); ++i)
@@ -508,5 +484,4 @@ for (let i = 0; i < randIntInclusive(3, 8); ++i)
for (let i = 0; i < randIntInclusive(3, 8); ++i)
placeObject(fx + randFloat(-7, 7), fz + randFloat(-7, 7), oFood, 0, randFloat(0, 2 * PI));
// Export map data
ExportMap();
@@ -19,7 +19,6 @@ const tShoreBlend = g_Terrains.shoreBlend;
const tShore = g_Terrains.shore;
const tWater = g_Terrains.water;
// gaia entities
const oTree1 = g_Gaia.tree1;
const oTree2 = g_Gaia.tree2;
const oTree3 = g_Gaia.tree3;
@@ -33,7 +32,6 @@ const oStoneLarge = g_Gaia.stoneLarge;
const oStoneSmall = g_Gaia.stoneSmall;
const oMetalLarge = g_Gaia.metalLarge;
// decorative props
const aGrass = g_Decoratives.grass;
const aGrassShort = g_Decoratives.grassShort;
const aReeds = g_Decoratives.reeds;
@@ -46,16 +44,12 @@ const aBushSmall = g_Decoratives.bushSmall;
const pForest1 = [tForestFloor2 + TERRAIN_SEPARATOR + oTree1, tForestFloor2 + TERRAIN_SEPARATOR + oTree2, tForestFloor2];
const pForest2 = [tForestFloor1 + TERRAIN_SEPARATOR + oTree4, tForestFloor1 + TERRAIN_SEPARATOR + oTree5, tForestFloor1];
log("Initializing map...");
InitMap();
var numPlayers = getNumPlayers();
var mapSize = getMapSize();
var mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -66,8 +60,6 @@ var clFood = createTileClass();
var clBaseResource = createTileClass();
var clSettlement = createTileClass();
var clLand = createTileClass();
//Create the continent body
for (var ix = 0; ix < mapSize; ix++)
{
@@ -104,8 +96,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -123,7 +113,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -147,7 +136,6 @@ for (var i = 0; i < numPlayers; i++)
);
createArea(placer, [elevationPainter, paintClass(clLand)], null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -223,7 +211,6 @@ for (var i = 0; i < numPlayers; ++i)
createArea(placer, painter, null);
}
// create bumps
createBumps([avoidClasses(clPlayer, 10), stayClasses(clLand, 5)]);
if (randBool())
@@ -240,7 +227,6 @@ createForests(
RMS.SetProgress(50);
// create dirt patches
log("Creating dirt patches...");
createLayeredPatches(
[scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)],
@@ -249,7 +235,6 @@ createLayeredPatches(
[avoidClasses(clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12), stayClasses(clLand, 5)]
);
// create grass patches
log("Creating grass patches...");
createPatches(
[scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)],
@@ -260,7 +245,6 @@ createPatches(
RMS.SetProgress(55);
log("Creating stone mines...");
// create stone quarries
createMines(
[
[new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)],
@@ -270,7 +254,6 @@ createMines(
);
log("Creating metal mines...");
// create large metal quarries
createMines(
[
[new SimpleObject(oMetalLarge, 1,1, 0,4)]
@@ -307,7 +290,6 @@ createDecoration
RMS.SetProgress(70);
// create animals
createFood
(
[
@@ -321,7 +303,6 @@ createFood
[avoidClasses(clForest, 0, clPlayer, 20, clHill, 1, clFood, 20), stayClasses(clLand, 5)]
);
// create fruits
createFood
(
[
@@ -333,7 +314,6 @@ createFood
[avoidClasses(clForest, 0, clPlayer, 20, clHill, 1, clFood, 10), stayClasses(clLand, 5)]
);
// create fish
createFood
(
[
@@ -347,12 +327,10 @@ createFood
RMS.SetProgress(85);
// create straggler trees
log("Creating straggler trees...");
var types = [oTree1, oTree2, oTree4, oTree3]; // some variation
createStragglerTrees(types, [avoidClasses(clForest, 7, clHill, 1, clPlayer, 9, clMetal, 6, clRock, 6), stayClasses(clLand, 7)]);
setWaterWaviness(1.0);
setWaterType("ocean");
// Export map data
ExportMap();
@@ -18,7 +18,6 @@ const tDirtCracks = "medit_dirt_c";
const tShore = "medit_sand";
const tWater = "medit_sand_wet";
// gaia entities
const oBerryBush = "gaia/flora_bush_berry";
const oDeer = "gaia/fauna_deer";
const oFish = "gaia/fauna_fish";
@@ -34,7 +33,6 @@ const oFanPalm = "gaia/flora_tree_medit_fan_palm";
const oPoplar = "gaia/flora_tree_poplar_lombardy";
const oCypress = "gaia/flora_tree_cypress";
// decorative props
const aBush1 = "actor|props/flora/bush_medit_sm.xml";
const aBush2 = "actor|props/flora/bush_medit_me.xml";
const aBush3 = "actor|props/flora/bush_medit_la.xml";
@@ -45,16 +43,12 @@ const aDecorativeRock = "actor|geology/stone_granite_med.xml";
// terrain + entity (for painting)
const pForest = [tForestFloor, tForestFloor + TERRAIN_SEPARATOR + oCarob, tForestFloor + TERRAIN_SEPARATOR + oDatePalm, tForestFloor + TERRAIN_SEPARATOR + oSDatePalm, tForestFloor];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clForest = createTileClass();
var clWater = createTileClass();
@@ -67,7 +61,6 @@ var clSettlement = createTileClass();
var clGrass = createTileClass();
var clHill = createTileClass();
// create the main river
log("Creating the main river");
var placer = new PathPlacer(fractionToTiles(0.5 + cos(3 * PI / 4)), fractionToTiles(0.5 + sin(3 * PI / 4)), fractionToTiles(0.5 + cos(- PI / 4)), fractionToTiles(0.5 + sin(- PI / 4)), scaleByMapSize(15,70), 0.2, 3*(scaleByMapSize(5,15)), 0.04, 0.01);
var terrainPainter = new LayeredPainter(
@@ -127,8 +120,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = primeSortPlayers(sortPlayers(playerIDs));
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -160,7 +151,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -178,7 +168,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tCityPlaza, tCity], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id, { 'iberWall': 'towers' });
placeDefaultChicken(fx, fz, clBaseResource);
@@ -236,10 +225,8 @@ for (var i = 0; i < numPlayers; i++)
RMS.SetProgress(40);
// create bumps
createBumps(avoidClasses(clWater, 2, clPlayer, 20));
// create forests
createForests(
[tForestFloor, tForestFloor, tForestFloor, pForest, pForest],
avoidClasses(clPlayer, 20, clForest, 17, clWater, 2, clBaseResource, 3),
@@ -248,13 +235,11 @@ createForests(
RMS.SetProgress(50);
// create hills
if (randBool())
createHills([tGrass, tCliff, tHill], avoidClasses(clPlayer, 20, clForest, 1, clHill, 15, clWater, 3), clHill, scaleByMapSize(3, 15));
else
createMountains(tCliff, avoidClasses(clPlayer, 20, clForest, 1, clHill, 15, clWater, 3), clHill, scaleByMapSize(3, 15));
// create grass patches
log("Creating grass patches...");
createLayeredPatches(
[scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)],
@@ -265,7 +250,6 @@ createLayeredPatches(
RMS.SetProgress(55);
// create dirt patches
log("Creating dirt patches...");
createLayeredPatches(
[scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)],
@@ -277,7 +261,6 @@ createLayeredPatches(
RMS.SetProgress(60);
log("Creating stone mines...");
// create stone quarries
createMines(
[
[new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)],
@@ -287,7 +270,6 @@ createMines(
);
log("Creating metal mines...");
// create large metal quarries
createMines(
[
[new SimpleObject(oMetalLarge, 1,1, 0,4)]
@@ -298,7 +280,6 @@ createMines(
RMS.SetProgress(65);
// create decoration
createDecoration
(
[[new SimpleObject(aDecorativeRock, 1,3, 0,1)],
@@ -313,7 +294,6 @@ createDecoration
RMS.SetProgress(70);
// create fish
createFood
(
[
@@ -325,7 +305,6 @@ createFood
[avoidClasses(clFood, 10), stayClasses(clWater, 5)]
);
// create animals
createFood
(
[
@@ -341,7 +320,6 @@ createFood
avoidClasses(clForest, 0, clPlayer, 8, clWater, 1, clFood, 10, clHill, 1)
);
// create fruits
createFood
(
[
@@ -355,12 +333,10 @@ createFood
RMS.SetProgress(90);
// create straggler trees
log("Creating straggler trees...");
var types = [oDatePalm, oSDatePalm, oCarob, oFanPalm, oPoplar, oCypress]; // some variation
createStragglerTrees(types, avoidClasses(clForest, 1, clWater, 2, clPlayer, 8, clMetal, 6, clHill, 1));
// Set environment
setSkySet("sunny");
setSunColor(0.917, 0.828, 0.734);
setWaterColor(0, 0.501961, 1);
@@ -377,5 +353,4 @@ setPPContrast(0.62);
setPPSaturation(0.51);
setPPBloom(0.12);
// Export map data
ExportMap();
@@ -27,7 +27,6 @@ var tVeryDeepWater = ["medit_sea_depths","medit_sea_coral_deep"];
var tDeepWater = ["medit_sea_coral_deep","tropic_ocean_coral"];
var tCreekWater = "medit_sea_coral_plants";
// gaia entities
var ePine = "gaia/flora_tree_aleppo_pine";
var ePalmTall = "gaia/flora_tree_cretan_date_palm_tall";
var eFanPalm = "gaia/flora_tree_medit_fan_palm";
@@ -39,7 +38,6 @@ var ePig = "gaia/fauna_pig";
var eStoneMine = "gaia/geology_stonemine_medit_quarry";
var eMetalMine = "gaia/geology_metal_mediterranean_slabs";
// decorative props
var aFlower1 = "actor|props/flora/decals_flowers_daisies.xml";
var aWaterFlower = "actor|props/flora/water_lillies.xml";
var aReedsA = "actor|props/flora/reeds_pond_lush_a.xml";
@@ -60,15 +58,12 @@ var tForestNicae = [tForestFloor + TERRAIN_SEPARATOR + ePine,tForestFloor + TERR
var tForestNicaeLight = [tForestFloor + TERRAIN_SEPARATOR + ePine,tForestFloor + TERRAIN_SEPARATOR + ePine,tForestFloor + TERRAIN_SEPARATOR + eFanPalm, tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor];
var tForestNicaeScarce = [tForestFloor + TERRAIN_SEPARATOR + ePine,tForestFloor + TERRAIN_SEPARATOR + ePine,tForestFloor + TERRAIN_SEPARATOR + eFanPalm, tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor,tForestFloor];
log("Initializing map...");
InitMap();
var numPlayers = getNumPlayers();
var mapSize = getMapSize();
var mapArea = mapSize*mapSize;
// create tile classes
var clCorsica = createTileClass();
var clSardinia = createTileClass();
var clCreek = createTileClass();
@@ -105,9 +100,8 @@ for (var ix = 0; ix < mapSize; ix++)
}
}
// let's decide if we swap
var swap = randBool();
// let's create Corsica
log("Creating Corsica");
var CorsicaX = fractionToTiles(0.99);
var CorsicaZ = fractionToTiles(0.9);
@@ -230,8 +224,8 @@ for (var island = 0; island <= 1; island++)
}
}
RMS.SetProgress(20);
log("Creating Main Relief");
// Let's make it generally cliffy
placer = new ClumpPlacer(fractionToSize(0.3)*1.8, 1.0, 0.2, 4,round((CorsicaX * 5 + fractionToTiles(0.5)) / 6.0),round(fractionToTiles(0.8)));
elevationPainter = new SmoothElevationPainter(ELEVATION_MODIFY, 30,fractionToTiles(0.45));
createArea( placer, [elevationPainter], null);
@@ -313,14 +307,12 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = 23;
// get the x and z in tiles
fx = playerX[i];
fz = playerZ[i];
// let's create a nice platform
var placer = new ClumpPlacer(PI*radius*radius, 0.95, 0.3, 10, fx,fz);
var PlayerArea = createArea(placer, [paintClass(clPlayer)], null);
@@ -332,7 +324,6 @@ for (var i = 0; i < numPlayers; i++)
var elevationPainter = new SmoothElevationPainter(ELEVATION_SET, getHeight(fx,fz),10);
createArea(placer, [painter,paintClass(clSettlement),elevationPainter], null);
// create starting units
placeCivDefaultEntities(fx, fz, id, { 'iberWall': false });
placeDefaultChicken(fx, fz, clBaseResource);
@@ -458,7 +449,6 @@ placer = new ClumpPlacer(120, 0.3, 0.1, 4);
elevationPainter = new SmoothElevationPainter(ELEVATION_MODIFY, -5,6);
createAreas( placer, [elevationPainter], [avoidClasses(clPlayer,2,clPassage, 2,clCorsica,2,clSardinia,2)],scaleByMapSize(20,100), 5 );
log("Repainting");
var terrTop = createTerrain(tMountainTop);
var terrMount = createTerrain(tMountain);
@@ -533,13 +523,11 @@ for (var sandx = 0; sandx < mapSize; sandx++) {
RMS.SetProgress(65);
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(eStoneMine, 1,1, 0,0),new SimpleObject(aBushB, 1,1, 2,2), new SimpleObject(aBushA, 0,2, 1,3)], true, clBaseResource);
createObjectGroupsDeprecated(group, 0,[stayClasses(clCorsica, 1),avoidClasses(clWater, 3, clPlayer,2 , clBaseResource, 2,clCliffs,1)], scaleByMapSize(6,25), 1000 );
createObjectGroupsDeprecated(group, 0,[stayClasses(clSardinia, 1),avoidClasses(clWater, 3, clPlayer,2 , clBaseResource, 2,clCliffs,1)], scaleByMapSize(6,25), 1000 );
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(eMetalMine, 1,1, 0,0),new SimpleObject(aBushB, 1,1, 2,2), new SimpleObject(aBushA, 0,2, 1,3)], true, clBaseResource);
createObjectGroupsDeprecated(group, 0,[avoidClasses(clWater, 3, clPlayer,2 , clBaseResource, 2,clCliffs,1),stayClasses(clCorsica, 1)], scaleByMapSize(6,25), 1000 );
createObjectGroupsDeprecated(group, 0,[avoidClasses(clWater, 3, clPlayer,2 , clBaseResource, 2,clCliffs,1),stayClasses(clSardinia, 1)], scaleByMapSize(6,25), 1000 );
@@ -556,16 +544,12 @@ createObjectGroupsDeprecated(TreeGroup, 0, [avoidClasses(clWater, 1, clForest, 0
RMS.SetProgress(75);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup( [new SimpleObject(aRock, 1,3, 0,1),new SimpleObject(aStandingStone, 0,2, 0,3)], true );
createObjectGroupsDeprecated( group, 0, avoidClasses(clWater, 0, clForest, 0, clPlayer, 0,clBaseResource, 0, clPassage, 2),
scaleByMapSize(16, 262), 50
);
// create large decorative rocks
log("Creating large decorative rocks...");
group = new SimpleGroup( [new SimpleObject(aLargeRock, 1,2, 0,1), new SimpleObject(aRock, 1,3, 0,2)], true
);
@@ -574,7 +558,6 @@ createObjectGroupsDeprecated( group, 0, avoidClasses(clWater, 0, clForest, 0, cl
);
createObjectGroupsDeprecated( group, 0, borderClasses(clWater, 5,10), scaleByMapSize(100,800), 500);
// create decorative grass
log("Creating beautification...");
group = new SimpleGroup( [new SimpleObject(aPlantA, 3,7, 0,3),new SimpleObject(aPlantB, 3,6, 0,3),new SimpleObject(aPlantC, 1,4, 0,4)], true );
createObjectGroupsDeprecated( group, 0, avoidClasses(clWater, 0,clBaseResource, 0, clShore,3), scaleByMapSize(100, 600), 50 );
@@ -590,8 +573,6 @@ createObjectGroupsDeprecated( group, 0, avoidClasses(clWater, 3,clBaseResource,
group = new SimpleGroup( [new SimpleObject(eFish, 1,2, 0,3)] );
createObjectGroupsDeprecated( group, 0, [avoidClasses(clCreek,3,clShore,3),stayClasses(clWater, 3)], scaleByMapSize(50, 150), 100 );
RMS.SetProgress(90);
RMS.SetProgress(95);
setSkySet(pickRandom(["cumulus", "sunny"]));
@@ -609,12 +590,8 @@ setWaterTint(0.208, 0.659, 0.925);
setWaterMurkiness(0.72);
setWaterWaviness(2.0);
setWaterType("ocean");
// Export map data
ExportMap();
// this function will go from point [x1,z1] to point [x2,z2], while following a curve of width (starting-center-starting)
// it can smooth on the side depending on "smooth", which is the distance of the smooth. Tileclass and Terrain set a tileclass/terrain
// it effectively can create a smooth path from point [x1,z1] to point [x2,z2], ie Canyon, whatever.
@@ -1,6 +1,5 @@
RMS.LoadLibrary("rmgen");
// terrain textures
const tOceanDepths = "medit_sea_depths";
const tOceanRockDeep = "medit_sea_coral_deep";
const tOceanRockShallow = "medit_rocks_wet";
@@ -25,7 +24,6 @@ const tGrassCliff = "medit_cliff_italia_grass";
const tCliff = ["medit_cliff_italia", "medit_cliff_italia", "medit_cliff_italia_grass"];
const tForestFloor = "medit_forestfloor_a";
// gaia entities
const oBeech = "gaia/flora_tree_euro_beech";
const oBerryBush = "gaia/flora_bush_berry";
const oCarob = "gaia/flora_tree_carob";
@@ -47,7 +45,6 @@ const oMetalLarge = "gaia/geology_metal_mediterranean_slabs";
const oShipwreck = "other/special_treasure_shipwreck";
const oShipDebris = "other/special_treasure_shipwreck_debris";
// decorative props
const aBushLargeDry = "actor|props/flora/bush_medit_la_dry.xml";
const aBushLarge = "actor|props/flora/bush_medit_la.xml";
const aBushMedDry = "actor|props/flora/bush_medit_me_dry.xml";
@@ -60,14 +57,12 @@ const aRockLarge = "actor|geology/stone_granite_large.xml";
const aRockMed = "actor|geology/stone_granite_med.xml";
const aRockSmall = "actor|geology/stone_granite_small.xml";
// terrain + entity (for painting)
const pPalmForest = [tForestFloor+TERRAIN_SEPARATOR+oPalm, tGrass];
const pPineForest = [tForestFloor+TERRAIN_SEPARATOR+oPine, tGrass];
const pPoplarForest = [tForestFloor+TERRAIN_SEPARATOR+oLombardyPoplar, tGrass];
const pMainForest = [tForestFloor+TERRAIN_SEPARATOR+oCarob, tForestFloor+TERRAIN_SEPARATOR+oBeech, tGrass, tGrass];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
@@ -134,7 +129,6 @@ for (var i = 0; i < numIslands; ++i)
createArea(placer, [terrainPainter, paintClass(clCoral)],avoidClasses(clCoral,0));
}
//create spoke islands
//put down base resources and animals but do not populate
for (var i=0; i < numIslands; i++)
@@ -119,7 +119,6 @@ const normalMapSize = 320;
// Minimum distance from the map border to ship ungarrison points
const ShorelineDistance = 15;
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
@@ -1,17 +1,13 @@
RMS.LoadLibrary("rmgen");
// initialize map
log("Initializing map...");
InitMap();
// Setup tile classes
var clPlayer = createTileClass();
var clPath = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
var clBaseResource = createTileClass();
// Setup Templates
var templateStone = "gaia/geology_stone_temperate";
var templateStoneMine = "gaia/geology_stonemine_temperate_quarry";
var templateMetal = "gaia/geology_metal_temperate";
@@ -19,7 +15,6 @@ var templateMetalMine = "gaia/geology_metal_temperate_slabs";
var startingResourcees = ["gaia/flora_tree_oak_large", "gaia/flora_bush_temperate", templateStoneMine,
"gaia/flora_bush_grapes", "gaia/flora_tree_apple", "gaia/flora_bush_berry", templateMetalMine, "gaia/flora_bush_badlands"];
// Setup terrain
var terrainWood = ['temp_grass_mossy|gaia/flora_tree_oak', 'temp_forestfloor_pine|gaia/flora_tree_pine', 'temp_mud_plants|gaia/flora_tree_dead',
'temp_plants_bog|gaia/flora_tree_oak_large', "temp_dirt_gravel_plants|gaia/flora_tree_aleppo_pine", 'temp_forestfloor_autumn|gaia/flora_tree_carob']; //'temp_forestfloor_autumn|gaia/flora_tree_fig'
var terrainWoodBorder = ['temp_grass_plants|gaia/flora_tree_euro_beech', 'temp_grass_mossy|gaia/flora_tree_poplar', 'temp_grass_mossy|gaia/flora_tree_poplar_lombardy',
@@ -41,15 +36,12 @@ var terrainHillBorder = ["temp_highlands", "temp_highlands", "temp_highlands", "
"temp_highlands", "temp_highlands", "temp_highlands", "temp_cliff_b", "temp_dirt_gravel_plants",
"temp_highlands|gaia/fauna_goat"];
// Setup map
var mapSize = getMapSize();
var mapRadius = mapSize/2;
var playableMapRadius = mapRadius - 5;
var mapCenterX = mapRadius;
var mapCenterZ = mapRadius;
// Setup players and bases
var numPlayers = getNumPlayers();
var baseRadius = 20;
var minPlayerRadius = min(mapRadius-1.5*baseRadius, 5*mapRadius/8);
@@ -90,12 +82,14 @@ for (var i=0; i < numPlayers; i++)
var z = round(mapCenterZ + randFloat(minPlayerRadius, maxPlayerRadius)*sin(playerAngle[i]));
playerStartLocX[i] = x;
playerStartLocZ[i] = z;
// Place starting entities
placeCivDefaultEntities(x, z, i+1);
// Place base texture
var placer = new ClumpPlacer(2*baseRadius*baseRadius, 2/3, 1/8, 10, x, z);
var painter = [new LayeredPainter([terrainBaseBorder, terrainBase, terrainBaseCenter], [baseRadius/4, baseRadius/4]), paintClass(clPlayer)];
createArea(placer, painter);
// Place starting resources
var distToSL = 10;
var resStartAngle = playerAngle[i] + PI;
@@ -139,7 +133,8 @@ for (var i = 0; i < maxI; i++)
{
var x = mapCenterX;
var z = mapCenterZ;
};
}
if (j < numPlayers)
{
var targetX = playerStartLocX[j];
@@ -149,7 +144,8 @@ for (var i = 0; i < maxI; i++)
{
var targetX = mapCenterX;
var targetZ = mapCenterZ;
};
}
// Prepare path placement
var angle = getAngle(x, z, targetX, targetZ);
x += round(pathSucsessRadius*cos(angle));
@@ -216,16 +212,17 @@ for (var x = 0; x < mapSize; x++)
{
for (var z = 0;z < mapSize;z++)
{
// Some variables
var radius = Math.pow(Math.pow(mapCenterX - x - 0.5, 2) + Math.pow(mapCenterZ - z - 0.5, 2), 1/2); // The 0.5 is a correction for the entities placed on the center of tiles
var minDistToSL = mapSize;
for (var i=0; i < numPlayers; i++)
minDistToSL = min(minDistToSL, getDistance(playerStartLocX[i], playerStartLocZ[i], x, z));
// Woods tile based
var tDensFactSL = max(min((minDistToSL - baseRadius) / baseRadius, 1), 0);
var tDensFactRad = abs((resourceRadius - radius) / resourceRadius);
var tDensFactEC = max(min((radius - radiusEC) / radiusEC, 1), 0);
var tDensActual = maxTreeDensity * tDensFactSL * tDensFactRad * tDensFactEC;
if (randBool(tDensActual) && radius < playableMapRadius)
{
if (tDensActual < randFloat(0, bushChance * maxTreeDensity))
@@ -241,15 +238,13 @@ for (var x = 0; x < mapSize; x++)
createArea(placer, painter, avoidClasses(clPath, 2, clHill, 1));
}
}
// General hight map
var hVarMiddleHill = mapSize/64 * (1+cos(3*PI/2 * radius/mapRadius));
var hVarHills = 5*(1+sin(x/10)*sin(z/10));
setHeight(x, z, getHeight(x, z) + hVarMiddleHill + hVarHills + 1);
}
}
RMS.SetProgress(95);
// Export map data
ExportMap();
@@ -1,6 +1,5 @@
RMS.LoadLibrary("rmgen");
// terrain textures
const tGrass = ["temp_grass", "temp_grass", "temp_grass_d"];
const tGrassPForest = "temp_plants_bog";
const tGrassDForest = "temp_plants_bog";
@@ -18,7 +17,6 @@ const tShoreBlend = "temp_grass_plants";
const tShore = "temp_dirt_gravel";
const tWater = "temp_dirt_gravel_b";
// gaia entities
const oBeech = "gaia/flora_tree_euro_beech";
const oPoplar = "gaia/flora_tree_poplar";
const oApple = "gaia/flora_tree_apple";
@@ -32,7 +30,6 @@ const oStoneLarge = "gaia/geology_stonemine_temperate_quarry";
const oStoneSmall = "gaia/geology_stone_temperate";
const oMetalLarge = "gaia/geology_metal_temperate_slabs";
// decorative props
const aGrass = "actor|props/flora/grass_soft_large_tall.xml";
const aGrassShort = "actor|props/flora/grass_soft_large.xml";
const aRockLarge = "actor|geology/stone_granite_large.xml";
@@ -48,14 +45,12 @@ const pForestP = [tGrassPForest + TERRAIN_SEPARATOR + oOak, tGrassPForest];
const WATER_WIDTH = 0.25;
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -100,7 +95,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -123,7 +117,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, [painter, paintClass(clPlayer)], null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -142,9 +135,8 @@ for (var i = 0; i < numPlayers; i++)
// create metal mine
var mAngle = bbAngle;
while(abs(mAngle - bbAngle) < PI/3)
{
mAngle = randFloat(0, TWO_PI);
}
var mDist = 12;
var mX = round(fx + mDist * cos(mAngle));
var mZ = round(fz + mDist * sin(mAngle));
@@ -181,10 +173,13 @@ for (var i = 0; i < numPlayers; i++)
RMS.SetProgress(10);
log("Creating sea");
var theta = randFloat(0, 1);
var theta2 = randFloat(0, 1);
var seed = randFloat(2,3);
var seed2 = randFloat(2,3);
for (var ix = 0; ix < mapSize; ix++)
for (var iz = 0; iz < mapSize; iz++)
{
@@ -347,7 +342,6 @@ createDecoration
stayClasses(clShallow, 0)
);
// create animals
createFood
(
[
@@ -363,7 +357,6 @@ createFood
avoidClasses(clWater, 1, clForest, 0, clPlayer, 20, clHill, 0, clFood, 15)
);
// create fruits
createFood
(
[
@@ -375,7 +368,6 @@ createFood
avoidClasses(clWater, 3, clForest, 0, clPlayer, 20, clHill, 1, clFood, 10)
);
// create fish
createFood
(
[
@@ -389,7 +381,6 @@ log("Creating straggler trees...");
var types = [oBeech, oPoplar, oApple]; // some variation
createStragglerTrees(types, avoidClasses(clWater, 1, clForest, 1, clHill, 1, clPlayer, 8, clMetal, 6, clRock, 6));
// Set environment
setSkySet("cirrus");
setWaterColor(0.114, 0.192, 0.463);
setWaterTint(0.255, 0.361, 0.651);
@@ -53,7 +53,6 @@ const pForestP = [
tForestFloor1
];
log("Initializing map...");
InitMap();
var P_FOREST = 0.7;
@@ -65,7 +64,6 @@ var numPlayers = getNumPlayers();
var mapSize = getMapSize();
var mapArea = mapSize * mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clFood = createTileClass();
@@ -90,7 +90,6 @@ Trigger.prototype.DebugLog = function(txt)
print("DEBUG [" + time + "] " + txt + "\n");
};
Trigger.prototype.GarrisonWoodenTowers = function()
{
for (let gaiaEnt of Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager).GetEntitiesByPlayer(0))
@@ -48,7 +48,6 @@ const aBushSmall = g_Decoratives.bushSmall;
const pForest1 = [tForestFloor2 + TERRAIN_SEPARATOR + oTree1, tForestFloor2 + TERRAIN_SEPARATOR + oTree2, tForestFloor2];
const pForest2 = [tForestFloor1 + TERRAIN_SEPARATOR + oTree4, tForestFloor1 + TERRAIN_SEPARATOR + oTree5, tForestFloor1];
log("Initializing map...");
InitMap();
const radius = scaleByMapSize(15, 25);
@@ -59,7 +58,6 @@ const mapSize = getMapSize();
const mapArea = mapSize * mapSize;
const centerOfMap = mapSize / 2;
// Create tile classes
let clPlayer = createTileClass();
let clHill = createTileClass();
let clMountain = createTileClass();
@@ -1,6 +1,5 @@
RMS.LoadLibrary("rmgen");
// terrain textures
const tGrass = ["temp_grass_aut", "temp_grass_aut", "temp_grass_d_aut"];
const tForestFloor = "temp_grass_aut";
const tGrassA = "temp_grass_plants_aut";
@@ -16,7 +15,6 @@ const tShoreBlend = "temp_grass_plants_aut";
const tShore = "temp_plants_bog_aut";
const tWater = "temp_mud_a";
// gaia entities
const oBeech = "gaia/flora_tree_euro_beech_aut";
const oOak = "gaia/flora_tree_oak_aut";
const oPine = "gaia/flora_tree_pine";
@@ -32,7 +30,6 @@ const oFood = "gaia/special_treasure_food_bin";
const oMetal = "gaia/special_treasure_metal";
const oStone = "gaia/special_treasure_stone";
// decorative props
const aGrass = "actor|props/flora/grass_soft_dry_small_tall.xml";
const aGrassShort = "actor|props/flora/grass_soft_dry_large.xml";
const aRockLarge = "actor|geology/stone_granite_med.xml";
@@ -46,7 +43,6 @@ const pForestD = [tForestFloor + TERRAIN_SEPARATOR + oBeech, tForestFloor];
const pForestO = [tForestFloor + TERRAIN_SEPARATOR + oOak, tForestFloor];
const pForestP = [tForestFloor + TERRAIN_SEPARATOR + oPine, tForestFloor];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
@@ -319,7 +315,6 @@ createDecoration
);
RMS.SetProgress(80);
// create animals
createFood
(
[
@@ -334,7 +329,6 @@ createFood
);
RMS.SetProgress(85);
// create fruits
createFood
(
[
@@ -21,7 +21,6 @@ const tShoreBlend = g_Terrains.shoreBlend;
const tShore = g_Terrains.shore;
const tWater = g_Terrains.water;
// gaia entities
const oTree1 = g_Gaia.tree1;
const oTree2 = g_Gaia.tree2;
const oTree3 = g_Gaia.tree3;
@@ -35,7 +34,6 @@ const oStoneLarge = g_Gaia.stoneLarge;
const oStoneSmall = g_Gaia.stoneSmall;
const oMetalLarge = g_Gaia.metalLarge;
// decorative props
const aGrass = g_Decoratives.grass;
const aGrassShort = g_Decoratives.grassShort;
const aReeds = g_Decoratives.reeds;
@@ -48,8 +46,6 @@ const aBushSmall = g_Decoratives.bushSmall;
const pForest1 = [tForestFloor2 + TERRAIN_SEPARATOR + oTree1, tForestFloor2 + TERRAIN_SEPARATOR + oTree2, tForestFloor2];
const pForest2 = [tForestFloor1 + TERRAIN_SEPARATOR + oTree4, tForestFloor1 + TERRAIN_SEPARATOR + oTree5, tForestFloor1];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
@@ -58,8 +54,6 @@ const mapArea = mapSize*mapSize;
log(mapSize);
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -120,7 +114,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -272,7 +265,6 @@ for (var m = 0; m < numPlayers*split; m++)
createArea(placer, [terrainPainter, elevationPainter], null);
}
var fx = fractionToTiles(0.5);
var fz = fractionToTiles(0.5);
ix = round(fx);
@@ -413,7 +405,6 @@ createObjectGroupsDeprecated(
RMS.SetProgress(65);
// create decoration
var planetm = 1;
if (currentBiome() == "tropic")
@@ -439,7 +430,6 @@ createDecoration
RMS.SetProgress(70);
// create animals
createFood
(
[
@@ -453,7 +443,6 @@ createFood
avoidClasses(clWater, 3, clForest, 0, clPlayer, 20, clHill, 1, clFood, 20)
);
// create fruits
createFood
(
[
@@ -465,10 +454,7 @@ createFood
avoidClasses(clWater, 3, clForest, 0, clPlayer, 20, clHill, 1, clFood, 10)
);
// create straggler trees
var types = [oTree1, oTree2, oTree4, oTree3]; // some variation
createStragglerTrees(types, avoidClasses(clWater, 5, clForest, 7, clHill, 1, clPlayer, 12, clMetal, 6, clRock, 6));
// Export map data
ExportMap();
@@ -16,7 +16,6 @@ const tShoreBlend = "medit_sand";
const tShore = "sand_grass_25";
const tWater = "medit_sand_wet";
// gaia entities
const oPoplar = "gaia/flora_tree_poplar";
const oApple = "gaia/flora_tree_apple";
const oCarob = "gaia/flora_tree_carob";
@@ -28,7 +27,6 @@ const oStoneLarge = "gaia/geology_stonemine_medit_quarry";
const oStoneSmall = "gaia/geology_stone_mediterranean";
const oMetalLarge = "gaia/geology_metal_mediterranean_slabs";
// decorative props
const aGrass = "actor|props/flora/grass_soft_large_tall.xml";
const aGrassShort = "actor|props/flora/grass_soft_large.xml";
const aReeds = "actor|props/flora/reeds_pond_lush_a.xml";
@@ -43,16 +41,12 @@ const aBushSmall = "actor|props/flora/bush_medit_sm.xml";
const pForestP = [tForestFloorP + TERRAIN_SEPARATOR + oPoplar, tForestFloorP];
const pForestC = [tForestFloorC + TERRAIN_SEPARATOR + oCarob, tForestFloorC];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -100,13 +94,10 @@ createArea(placer, [terrainPainter, elevationPainter, paintClass(clLand)], null)
// randomize player order
var playerIDs = [];
for (var i = 0; i < numPlayers; i++)
{
playerIDs.push(i+1);
}
playerIDs = primeSortPlayers(sortPlayers(playerIDs));
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -124,7 +115,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -146,7 +136,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id, { 'iberWall': false });
placeDefaultChicken(fx, fz, clBaseResource);
@@ -205,12 +194,13 @@ for (var i = 0; i < numPlayers; i++)
RMS.SetProgress(20);
const WATER_WIDTH = 0.07;
log("Creating river");
var theta = randFloat(0, 1);
var seed = randFloat(2,3);
for (var ix = 0; ix < mapSize; ix++)
{
for (var iz = 0; iz < mapSize; iz++)
{
var x = ix / (mapSize + 1.0);
@@ -270,7 +260,6 @@ for (var ix = 0; ix < mapSize; ix++)
paintTerrainBasedOnHeight(1, 3, 0, tShore);
paintTerrainBasedOnHeight(-8, 1, 2, tWater);
// create bumps
createBumps([avoidClasses(clPlayer, 20, clRiver, 1), stayClasses(clLand, 3)]);
createForests(
@@ -281,7 +270,6 @@ createForests(
RMS.SetProgress(50);
// create dirt patches
log("Creating dirt patches...");
createLayeredPatches(
[scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)],
@@ -290,7 +278,6 @@ createLayeredPatches(
[avoidClasses(clForest, 0, clHill, 0, clDirt, 3, clPlayer, 8, clRiver, 1), stayClasses(clLand, 7)]
);
// create grass patches
log("Creating grass patches...");
createPatches(
[scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)],
@@ -301,7 +288,6 @@ createPatches(
RMS.SetProgress(55);
log("Creating stone mines...");
// create stone quarries
createMines(
[
[new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)],
@@ -311,7 +297,6 @@ createMines(
);
log("Creating metal mines...");
// create large metal quarries
createMines(
[
[new SimpleObject(oMetalLarge, 1,1, 0,4)]
@@ -319,10 +304,8 @@ createMines(
[avoidClasses(clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 1, clRiver, 1), stayClasses(clLand, 5)],
clMetal
);
RMS.SetProgress(65);
// create decoration
createDecoration
(
[[new SimpleObject(aRockMedium, 1,3, 0,1)],
@@ -356,7 +339,6 @@ createDecoration
RMS.SetProgress(70);
// create animals
createFood
(
[
@@ -370,7 +352,6 @@ createFood
[avoidClasses(clForest, 0, clPlayer, 20, clHill, 1, clFood, 20, clRiver, 1), stayClasses(clLand, 3)]
);
// create fruits
createFood
(
[
@@ -382,7 +363,6 @@ createFood
[avoidClasses(clForest, 0, clPlayer, 20, clHill, 1, clFood, 10, clRiver, 1), stayClasses(clLand, 3)]
);
// create fish
createFood
(
[
@@ -396,8 +376,6 @@ createFood
RMS.SetProgress(85);
// create straggler trees
log("Creating straggler trees...");
var types = [oPoplar, oCarob, oApple]; // some variation
createStragglerTrees(types, [avoidClasses(clForest, 1, clHill, 1, clPlayer, 9, clMetal, 6, clRock, 6, clRiver, 1), stayClasses(clLand, 7)]);
@@ -417,5 +395,4 @@ setPPContrast(0.62);
setPPSaturation(0.51);
setPPBloom(0.12);
// Export map data
ExportMap();
@@ -119,16 +119,12 @@ else
const pForest = [tForestFloor + TERRAIN_SEPARATOR + oPine, tForestFloor];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -158,8 +154,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -180,7 +174,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -202,7 +195,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -346,10 +338,8 @@ else
paintTerrainBasedOnHeight(-8, 1, 2, tWater);
}
// create bumps
createBumps(avoidClasses(clWater, 2, clPlayer, 10));
// create hills
if (randBool())
createHills([tPrimary, tCliff, tPrimary], avoidClasses(clPlayer, 20, clHill, 15, clWater, 0), clHill, scaleByMapSize(1, 4) * numPlayers);
else
@@ -363,7 +353,6 @@ createForests(
RMS.SetProgress(60);
// create dirt patches
log("Creating dirt patches...");
createLayeredPatches(
[scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)],
@@ -372,7 +361,6 @@ createLayeredPatches(
avoidClasses(clWater, 6, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12)
);
// create grass patches
log("Creating grass patches...");
createPatches(
[scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)],
@@ -383,7 +371,6 @@ createPatches(
RMS.SetProgress(65);
log("Creating stone mines...");
// create stone quarries
createMines(
[
[new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)],
@@ -393,7 +380,6 @@ createMines(
);
log("Creating metal mines...");
// create large metal quarries
createMines(
[
[new SimpleObject(oMetalLarge, 1,1, 0,4)]
@@ -404,7 +390,6 @@ createMines(
RMS.SetProgress(70);
// create decoration
var multiplier = 0;
if (random_terrain !== 3) multiplier = 1;
@@ -426,10 +411,8 @@ createDecoration
avoidClasses(clWater, 0, clForest, 0, clPlayer, 0, clHill, 0)
);
RMS.SetProgress(75);
// create animals
createFood
(
[
@@ -443,7 +426,6 @@ createFood
avoidClasses(clWater, 3, clForest, 0, clPlayer, 20, clHill, 1, clFood, 20)
);
// create fruits
createFood
(
[
@@ -457,8 +439,7 @@ createFood
if (random_terrain !== 3)
{
// create fish
createFood
createFood
(
[
[new SimpleObject(oFish, 2,3, 0,2)]
@@ -472,7 +453,6 @@ if (random_terrain !== 3)
RMS.SetProgress(85);
// create straggler trees
log("Creating straggler trees...");
var types = [oPine];
createStragglerTrees(types, avoidClasses(clWater, 3, clForest, 1, clHill, 1, clPlayer, 12, clMetal, 6, clRock, 6));
@@ -487,6 +467,4 @@ setWaterWaviness(5.0);
setWaterType("lake");
setWaterMurkiness(0.88);
// Export map data
ExportMap();
@@ -1,7 +1,5 @@
RMS.LoadLibrary("rmgen");
// terrain textures
const tGrass = ["temp_grass_clovers"];
const tGrassPForest = "temp_plants_bog";
const tGrassDForest = "alpine_dirt_grass_50";
@@ -18,7 +16,6 @@ const tShoreBlend = "temp_mud_plants";
const tShore = "medit_sand_wet";
const tWater = "medit_sand_wet";
// gaia entities
const oPoplar = "gaia/flora_tree_poplar";
const oPalm = "gaia/flora_tree_cretan_date_palm_short";
const oApple = "gaia/flora_tree_apple";
@@ -32,7 +29,6 @@ const oStoneLarge = "gaia/geology_stonemine_temperate_quarry";
const oStoneSmall = "gaia/geology_stone_temperate";
const oMetalLarge = "gaia/geology_metal_temperate_slabs";
// decorative props
const aGrass = "actor|props/flora/grass_soft_large_tall.xml";
const aGrassShort = "actor|props/flora/grass_soft_large.xml";
const aRockLarge = "actor|geology/stone_granite_large.xml";
@@ -46,16 +42,12 @@ const pForestP = [tGrassPForest + TERRAIN_SEPARATOR + oOak, tGrassPForest];
const WATER_WIDTH = 0.25;
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -73,13 +65,10 @@ var clFlatlands = createTileClass();
// randomize player order
var playerIDs = [];
for (var i = 0; i < numPlayers; i++)
{
playerIDs.push(i+1);
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerPos = new Array(numPlayers);
@@ -96,7 +85,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -106,7 +94,7 @@ for (var i = 0; i < numPlayers; i++)
var fz = fractionToTiles(playerZ[i]);
var ix = round(fx);
var iz = round(fz);
// Setting tile class
addToClass(ix, iz, clPlayer);
addToClass(ix+5, iz, clPlayer);
addToClass(ix, iz+5, clPlayer);
@@ -119,7 +107,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -138,9 +125,8 @@ for (var i = 0; i < numPlayers; i++)
// create metal mine
var mAngle = bbAngle;
while(abs(mAngle - bbAngle) < PI/3)
{
mAngle = randFloat(0, TWO_PI);
}
var mDist = 12;
var mX = round(fx + mDist * cos(mAngle));
var mZ = round(fz + mDist * sin(mAngle));
@@ -174,15 +160,12 @@ for (var i = 0; i < numPlayers; i++)
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(10);
// create sea and hills
log("Creating sea and northern hills...");
var theta = randFloat(0, 1);
var seed = randFloat(2,3);
for (var ix = 0; ix < mapSize; ix++)
{
for (var iz = 0; iz < mapSize; iz++)
{
var x = ix / (mapSize + 1.0);
@@ -195,42 +178,28 @@ for (var ix = 0; ix < mapSize; ix++)
var fadeDist = 0.05;
if (z < 0.25)
{
addToClass(ix, iz, clHighlands);
}
if (z > cu + 0.75)
{
var h;
if ((z < (cu + 0.75 + fadeDist))&&(z > (cu + 0.75)))
{
h = 1 - 4.0 * (1 - ((cu + 0.75 + fadeDist) - z)/fadeDist);
}
else
{
h = -3.0;
}
if (h < -1.5)
{
placeTerrain(ix, iz, tWater);
}
else
{
placeTerrain(ix, iz, tShore);
}
setHeight(ix, iz, h);
if (h < 0){
if (h < 0)
addToClass(ix, iz, clWater);
}
}
}
}
RMS.SetProgress(20);
// create fish
log("Creating fish...");
num = scaleByMapSize(10, 20);
@@ -247,7 +216,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(25);
// create bumps
log("Creating bumps...");
placer = new ClumpPlacer(scaleByMapSize(20, 50), 0.3, 0.06, 1);
painter = new SmoothElevationPainter(ELEVATION_MODIFY, 4, 3);
@@ -260,7 +228,6 @@ createAreas(
RMS.SetProgress(30);
// create hills
log("Creating hills...");
placer = new ClumpPlacer(scaleByMapSize(20, 150), 0.2, 0.1, 1);
var terrainPainter = new LayeredPainter(
@@ -286,7 +253,6 @@ var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES);
var numForest = totalTrees * P_FOREST;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create mainland forests
log("Creating mainland forests...");
var types = [
[[tGrassDForest, tGrass, pForestD], [tGrassDForest, pForestD]]
@@ -308,7 +274,7 @@ for (var i = 0; i < types.length; ++i)
);
}
RMS.SetProgress(45);
// create highland forests
log("Creating highland forests...");
var types = [
[[tGrassDForest, tGrass, pForestP], [tGrassDForest, pForestP]]
@@ -329,11 +295,8 @@ for (var i = 0; i < types.length; ++i)
num
);
}
RMS.SetProgress(70);
// create dirt patches
log("Creating dirt patches...");
var sizes = [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)];
for (var i = 0; i < sizes.length; i++)
@@ -350,10 +313,8 @@ for (var i = 0; i < sizes.length; i++)
scaleByMapSize(15, 45)
);
}
RMS.SetProgress(75);
// create grass patches
log("Creating grass patches...");
var sizes = [scaleByMapSize(2, 32), scaleByMapSize(3, 48), scaleByMapSize(5, 80)];
for (var i = 0; i < sizes.length; i++)
@@ -371,14 +332,13 @@ for (var i = 0; i < sizes.length; i++)
RMS.SetProgress(80);
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clWater, 0, clForest, 1, clPlayer, 20, clRock, 10, clSea, 2, clHill, 2)],
scaleByMapSize(4,16), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clWater, 0, clForest, 1, clPlayer, 20, clRock, 10, clSea, 2, clHill, 2)],
@@ -386,7 +346,6 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clWater, 0, clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clSea, 0, clHill, 2)],
@@ -395,7 +354,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(85);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockMedium, 1,3, 0,1)],
@@ -406,10 +364,8 @@ createObjectGroupsDeprecated(
avoidClasses(clWater, 0, clForest, 0, clPlayer, 0, clHill, 0, clSea, 0),
scaleByMapSize(16, 262), 50
);
RMS.SetProgress(90);
// create large decorative rocks
log("Creating large decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockLarge, 1,2, 0,1), new SimpleObject(aRockMedium, 1,3, 0,2)],
@@ -421,8 +377,6 @@ createObjectGroupsDeprecated(
scaleByMapSize(8, 131), 50
);
// create deer
log("Creating deer...");
group = new SimpleGroup(
[new SimpleObject(oDeer, 5,7, 0,4)],
@@ -433,8 +387,6 @@ createObjectGroupsDeprecated(group, 0,
6 * numPlayers, 50
);
// create sheep
log("Creating sheep...");
group = new SimpleGroup(
[new SimpleObject(oGoat, 2,3, 0,2)],
@@ -445,7 +397,6 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
// create berry bush
log("Creating berry bush...");
group = new SimpleGroup(
[new SimpleObject(oBerryBush, 5,7, 0,4)],
@@ -456,7 +407,6 @@ createObjectGroupsDeprecated(group, 0,
randIntInclusive(1, 4) * numPlayers + 2, 50
);
// create boar
log("Creating boar...");
group = new SimpleGroup(
[new SimpleObject(oBoar, 2,3, 0,2)],
@@ -467,8 +417,6 @@ createObjectGroupsDeprecated(group, 0,
2 * numPlayers, 50
);
// create straggler trees
log("Creating straggler trees...");
var types = [oPoplar, oPalm, oApple]; // some variation
var num = floor(numStragglers / types.length);
@@ -484,8 +432,6 @@ for (var i = 0; i < types.length; ++i)
);
}
//create small grass tufts
log("Creating small grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 1,2, 0,1, -PI/8,PI/8)]
@@ -495,8 +441,6 @@ createObjectGroupsDeprecated(group, 0,
scaleByMapSize(13, 200)
);
// create large grass tufts
log("Creating large grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrass, 2,4, 0,1.8, -PI/8,PI/8), new SimpleObject(aGrassShort, 3,6, 1.2,2.5, -PI/8,PI/8)]
@@ -505,10 +449,8 @@ createObjectGroupsDeprecated(group, 0,
avoidClasses(clWater, 3, clHill, 2, clPlayer, 2, clDirt, 1, clForest, 0, clSea, 1),
scaleByMapSize(13, 200)
);
RMS.SetProgress(95);
// create bushes
log("Creating bushes...");
group = new SimpleGroup(
[new SimpleObject(aBushMedium, 1,2, 0,2), new SimpleObject(aBushSmall, 2,4, 0,2)]
@@ -518,7 +460,6 @@ createObjectGroupsDeprecated(group, 0,
scaleByMapSize(13, 200), 50
);
// Set environment
setSkySet("cirrus");
setWaterColor(0.114, 0.192, 0.463);
setWaterTint(0.255, 0.361, 0.651);
@@ -526,5 +467,4 @@ setWaterWaviness(2.0);
setWaterType("ocean");
setWaterMurkiness(0.83);
// Export map data
ExportMap();
@@ -22,7 +22,6 @@ const oMetalLarge = "gaia/geology_metal_savanna_slabs";
const aBush = "actor|props/flora/bush_medit_sm_dry.xml";
const aRock = "actor|geology/stone_savanna_med.xml";
log("Initializing map...");
InitMap();
var numPlayers = getNumPlayers();
@@ -33,7 +33,6 @@ const tTier4Terrain = g_Terrains.tier4Terrain;
const tShore = g_Terrains.shore;
const tWater = g_Terrains.water;
// gaia entities
const oTree1 = g_Gaia.tree1;
const oTree2 = g_Gaia.tree2;
const oTree3 = g_Gaia.tree3;
@@ -51,7 +50,6 @@ const oShipwreck = "other/special_treasure_shipwreck";
const oShipDebris = "other/special_treasure_shipwreck_debris";
const oObelisk = "other/obelisk";
// decorative props
const aGrass = g_Decoratives.grass;
const aGrassShort = g_Decoratives.grassShort;
const aRockLarge = g_Decoratives.rockLarge;
@@ -60,13 +58,11 @@ const aRockMedium = g_Decoratives.rockMedium;
const pForest1 = [tForestFloor2 + TERRAIN_SEPARATOR + oTree1, tForestFloor2 + TERRAIN_SEPARATOR + oTree2, tForestFloor2];
const pForest2 = [tForestFloor1 + TERRAIN_SEPARATOR + oTree4, tForestFloor1 + TERRAIN_SEPARATOR + oTree5, tForestFloor1];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
// create tile classes
let clPlayer = createTileClass();
let clHill = createTileClass();
let clForest = createTileClass();
@@ -164,7 +160,6 @@ for (let i = 0; i < teams.length; ++i)
);
createArea(placer, [terrainPainter, elevationPainter, paintClass(clLand)], null);
// create starting units
placeCivDefaultEntities(fx, fz, teams[i][p], { "iberWall": false });
}
@@ -21,7 +21,6 @@ const tShoreBlend = g_Terrains.shoreBlend;
const tShore = g_Terrains.shore;
const tWater = g_Terrains.water;
// gaia entities
const oTree1 = g_Gaia.tree1;
const oTree2 = g_Gaia.tree2;
const oTree3 = g_Gaia.tree3;
@@ -36,7 +35,6 @@ const oStoneSmall = g_Gaia.stoneSmall;
const oMetalLarge = g_Gaia.metalLarge;
const oWood = "gaia/special_treasure_wood";
// decorative props
const aGrass = g_Decoratives.grass;
const aGrassShort = g_Decoratives.grassShort;
const aReeds = g_Decoratives.reeds;
@@ -49,15 +47,12 @@ const aBushSmall = g_Decoratives.bushSmall;
const pForest1 = [tForestFloor2 + TERRAIN_SEPARATOR + oTree1, tForestFloor2 + TERRAIN_SEPARATOR + oTree2, tForestFloor2];
const pForest2 = [tForestFloor1 + TERRAIN_SEPARATOR + oTree4, tForestFloor1 + TERRAIN_SEPARATOR + oTree5, tForestFloor1];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -95,7 +90,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(20,29);
var shoreRadius = 6;
var elevation = 3;
@@ -119,7 +113,6 @@ for (var i = 0; i < numPlayers; i++)
);
createArea(placer, [terrainPainter, elevationPainter, paintClass(clPlayer)], null);
// create starting units
placeCivDefaultEntities(fx, fz, id, { 'iberWall': 'towers' });
placeDefaultChicken(fx, fz, clBaseResource);
@@ -293,7 +286,6 @@ for (var i = 0; i < numPlayers; i++)
createArea(placer, painter, null);
}
// create bumps
log("Creating bumps...");
placer = new ClumpPlacer(scaleByMapSize(20, 50), 0.3, 0.06, 1);
painter = new SmoothElevationPainter(ELEVATION_MODIFY, 2, 2);
@@ -304,7 +296,6 @@ createAreas(
scaleByMapSize(20, 100)
);
// create hills
log("Creating hills...");
placer = new ChainPlacer(1, floor(scaleByMapSize(4, 6)), floor(scaleByMapSize(16, 40)), 0.5);
terrainPainter = new LayeredPainter(
@@ -319,7 +310,6 @@ createAreas(
scaleByMapSize(4, 13)
);
// calculate desired number of trees for map (based on size)
if (currentBiome() == "savanna")
{
@@ -343,7 +333,6 @@ var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES);
var numForest = totalTrees * P_FOREST;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create forests
log("Creating forests...");
var types = [
[[tForestFloor2, tMainTerrain, pForest1], [tForestFloor2, pForest1]],
@@ -371,7 +360,6 @@ if (currentBiome() != "savanna")
}
RMS.SetProgress(50);
// create dirt patches
log("Creating dirt patches...");
var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)];
var numb = 1;
@@ -392,7 +380,6 @@ for (var i = 0; i < sizes.length; i++)
);
}
// create grass patches
log("Creating grass patches...");
var sizes = [scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)];
for (var i = 0; i < sizes.length; i++)
@@ -408,16 +395,14 @@ for (var i = 0; i < sizes.length; i++)
}
RMS.SetProgress(55);
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 0, clRock, 10, clHill, 1), stayClasses(clLand, 5)],
scaleByMapSize(4,16), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 0, clRock, 10, clHill, 1), stayClasses(clLand, 5)],
@@ -425,7 +410,6 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 0, clMetal, 10, clRock, 5, clHill, 1), stayClasses(clLand, 5)],
@@ -434,7 +418,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(65);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockMedium, 1,3, 0,1)],
@@ -446,8 +429,6 @@ createObjectGroupsDeprecated(
scaleByMapSize(16, 262), 50
);
// create large decorative rocks
log("Creating large decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockLarge, 1,2, 0,1), new SimpleObject(aRockMedium, 1,3, 0,2)],
@@ -461,7 +442,6 @@ createObjectGroupsDeprecated(
RMS.SetProgress(70);
// create deer
log("Creating deer...");
group = new SimpleGroup(
[new SimpleObject(oMainHuntableAnimal, 5,7, 0,4)],
@@ -474,7 +454,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(75);
// create sheep
log("Creating sheep...");
group = new SimpleGroup(
[new SimpleObject(oSecondaryHuntableAnimal, 2,3, 0,2)],
@@ -485,7 +464,6 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
// create fruit bush
log("Creating fruit bush...");
group = new SimpleGroup(
[new SimpleObject(oFruitBush, 5,7, 0,4)],
@@ -496,7 +474,6 @@ createObjectGroupsDeprecated(group, 0,
randIntInclusive(1, 4) * numPlayers + 2, 50
);
// create fish
log("Creating fish...");
group = new SimpleGroup(
[new SimpleObject(oFish, 2,3, 0,2)],
@@ -509,8 +486,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(85);
// create straggler trees
log("Creating straggler trees...");
var types = [oTree1, oTree2, oTree4, oTree3]; // some variation
var num = floor(numStragglers / types.length);
@@ -530,7 +505,6 @@ var planetm = 1;
if (currentBiome() == "tropic")
planetm = 8;
//create small grass tufts
log("Creating small grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 1,2, 0,1, -PI/8,PI/8)]
@@ -542,7 +516,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(90);
// create large grass tufts
log("Creating large grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrass, 2,4, 0,1.8, -PI/8,PI/8), new SimpleObject(aGrassShort, 3,6, 1.2,2.5, -PI/8,PI/8)]
@@ -554,7 +527,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(95);
// create bushes
log("Creating bushes...");
group = new SimpleGroup(
[new SimpleObject(aBushMedium, 1,2, 0,2), new SimpleObject(aBushSmall, 2,4, 0,2)]
@@ -569,5 +541,4 @@ setSunRotation(randFloat(0, TWO_PI));
setSunElevation(randFloat(PI/ 5, PI / 3));
setWaterWaviness(2);
// Export map data
ExportMap();
@@ -13,7 +13,6 @@ const tShoreBlend = "tropic_beach_dry_plants";
const tShore = "tropic_beach_dry";
const tWater = "tropic_beach_wet";
// gaia entities
const oTree = "gaia/flora_tree_toona";
const oPalm = "gaia/flora_tree_palm_tropic";
const oStoneLarge = "gaia/geology_stonemine_tropic_quarry";
@@ -24,7 +23,6 @@ const oDeer = "gaia/fauna_deer";
const oSheep = "gaia/fauna_tiger";
const oBush = "gaia/flora_bush_berry";
// decorative props
const aRockLarge = "actor|geology/stone_granite_large.xml";
const aRockMedium = "actor|geology/stone_granite_med.xml";
const aBush1 = "actor|props/flora/plant_tropic_a.xml";
@@ -34,16 +32,12 @@ const aBush3 = "actor|props/flora/plant_tropic_large.xml";
const pForestD = [tForestFloor + TERRAIN_SEPARATOR + oTree, tForestFloor];
const pForestP = [tForestFloor + TERRAIN_SEPARATOR + oPalm, tForestFloor];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clHill2 = createTileClass();
@@ -67,8 +61,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerPos = new Array(numPlayers);
@@ -85,7 +77,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -107,7 +98,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -194,7 +184,6 @@ for (var ix = 0; ix < mapSize; ix++)
}
}
// create shore
log("Creating shores...");
for (var i = 0; i < scaleByMapSize(20,120); i++)
{
@@ -225,7 +214,6 @@ paintTileClassBasedOnHeight(-6, 0.5, 1, clWater);
RMS.SetProgress(45);
// create hills
log("Creating hills...");
placer = new ChainPlacer(1, floor(scaleByMapSize(4, 6)), floor(scaleByMapSize(16, 40)), 0.1);
var terrainPainter = new LayeredPainter(
@@ -240,7 +228,6 @@ createAreas(
scaleByMapSize(5, 40) * numPlayers
);
// calculate desired number of trees for map (based on size)
var MIN_TREES = 1000;
@@ -251,14 +238,12 @@ var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES);
var numForest = totalTrees * P_FOREST;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create forests
log("Creating forests...");
var types = [
[[tGrass, tGrass, tGrass, tGrass, pForestD], [tGrass, tGrass, tGrass, pForestD]],
[[tGrass, tGrass, tGrass, tGrass, pForestP], [tGrass, tGrass, tGrass, pForestP]]
]; // some variation
var size = numForest / (scaleByMapSize(3,6) * numPlayers);
var num = floor(size / types.length);
@@ -279,7 +264,6 @@ for (var i = 0; i < types.length; ++i)
RMS.SetProgress(70);
// create grass patches
log("Creating grass patches...");
var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)];
for (var i = 0; i < sizes.length; i++)
@@ -313,14 +297,13 @@ for (var i = 0; i < sizes.length; i++)
}
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clRock, 10, clHill, 1),
scaleByMapSize(4,16), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clRock, 10, clHill, 1),
@@ -328,14 +311,12 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 1),
scaleByMapSize(4,16), 100
);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockMedium, 1,3, 0,1)],
@@ -347,8 +328,6 @@ createObjectGroupsDeprecated(
3*scaleByMapSize(16, 262), 50
);
// create large decorative rocks
log("Creating large decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockLarge, 1,2, 0,1), new SimpleObject(aRockMedium, 1,3, 0,2)],
@@ -360,7 +339,6 @@ createObjectGroupsDeprecated(
3*scaleByMapSize(8, 131), 50
);
//create small grass tufts
log("Creating small grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aBush1, 1,2, 0,1, -PI/8,PI/8)]
@@ -372,7 +350,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(90);
// create large grass tufts
log("Creating large grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aBush2, 2,4, 0,1.8, -PI/8,PI/8), new SimpleObject(aBush1, 3,6, 1.2,2.5, -PI/8,PI/8)]
@@ -384,7 +361,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(95);
// create bushes
log("Creating bushes...");
group = new SimpleGroup(
[new SimpleObject(aBush3, 1,2, 0,2), new SimpleObject(aBush2, 2,4, 0,2)]
@@ -396,7 +372,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(95);
// create straggler trees
log("Creating straggler trees...");
var types = [oTree, oPalm]; // some variation
var num = floor(numStragglers / types.length);
@@ -412,7 +387,6 @@ for (var i = 0; i < types.length; ++i)
);
}
// create deer
log("Creating deer...");
group = new SimpleGroup(
[new SimpleObject(oDeer, 5,7, 0,4)],
@@ -425,7 +399,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(75);
// create berry bush
log("Creating berry bush...");
group = new SimpleGroup(
[new SimpleObject(oBush, 5,7, 0,4)],
@@ -436,7 +409,6 @@ createObjectGroupsDeprecated(group, 0,
randIntInclusive(1, 4) * numPlayers + 2, 50
);
// create sheep
log("Creating sheep...");
group = new SimpleGroup(
[new SimpleObject(oSheep, 2,3, 0,2)],
@@ -447,7 +419,6 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
// create fish
log("Creating fish...");
group = new SimpleGroup(
[new SimpleObject(oFish, 2,3, 0,2)],
+1 -28
View File
@@ -19,7 +19,6 @@ const tShoreBlend = g_Terrains.shoreBlend;
const tShore = g_Terrains.shore;
const tWater = g_Terrains.water;
// gaia entities
const oTree1 = g_Gaia.tree1;
const oTree2 = g_Gaia.tree2;
const oTree3 = g_Gaia.tree3;
@@ -33,7 +32,6 @@ const oStoneLarge = g_Gaia.stoneLarge;
const oStoneSmall = g_Gaia.stoneSmall;
const oMetalLarge = g_Gaia.metalLarge;
// decorative props
const aGrass = g_Decoratives.grass;
const aGrassShort = g_Decoratives.grassShort;
const aReeds = g_Decoratives.reeds;
@@ -46,16 +44,12 @@ const aBushSmall = g_Decoratives.bushSmall;
const pForest1 = [tForestFloor2 + TERRAIN_SEPARATOR + oTree1, tForestFloor2 + TERRAIN_SEPARATOR + oTree2, tForestFloor2];
const pForest2 = [tForestFloor1 + TERRAIN_SEPARATOR + oTree4, tForestFloor1 + TERRAIN_SEPARATOR + oTree5, tForestFloor1];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -80,13 +74,10 @@ for (var ix = 0; ix < mapSize; ix++)
// randomize player order
var playerIDs = [];
for (var i = 0; i < numPlayers; i++)
{
playerIDs.push(i+1);
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -104,7 +95,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -120,7 +110,6 @@ for (var i = 0; i < numPlayers; i++)
addToClass(ix-5, iz, clPlayer);
addToClass(ix, iz-5, clPlayer);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -139,9 +128,8 @@ for (var i = 0; i < numPlayers; i++)
// create metal mine
var mAngle = bbAngle;
while(abs(mAngle - bbAngle) < PI/3)
{
mAngle = randFloat(0, TWO_PI);
}
var mDist = 12;
var mX = round(fx + mDist * cos(mAngle));
var mZ = round(fz + mDist * sin(mAngle));
@@ -198,8 +186,6 @@ var elevationPainter = new SmoothElevationPainter(
);
createArea(placer, [terrainPainter, elevationPainter, paintClass(clWater)], avoidClasses(clPlayer, 20));
// create more shore jaggedness
log("Creating more shore jaggedness...");
placer = new ChainPlacer(2, floor(scaleByMapSize(4, 6)), 3, 1);
@@ -215,7 +201,6 @@ createAreas(
scaleByMapSize(12, 130) * 2, 150
);
paintTerrainBasedOnHeight(2.4, 3.4, 3, tMainTerrain);
paintTerrainBasedOnHeight(1, 2.4, 0, tShore);
paintTerrainBasedOnHeight(-8, 1, 2, tWater);
@@ -235,10 +220,8 @@ for (var i = 0; i < numPlayers; ++i)
createArea(placer, painter, null);
}
// create bumps
createBumps(avoidClasses(clWater, 2, clPlayer, 20));
// create hills
if (randBool())
createHills([tMainTerrain, tCliff, tHill], avoidClasses(clPlayer, 20, clHill, 15, clWater, 2), clHill, scaleByMapSize(1, 4) * numPlayers);
else
@@ -253,7 +236,6 @@ createForests(
RMS.SetProgress(50);
// create dirt patches
log("Creating dirt patches...");
createLayeredPatches(
[scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)],
@@ -262,7 +244,6 @@ createLayeredPatches(
avoidClasses(clWater, 3, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12)
);
// create grass patches
log("Creating grass patches...");
createPatches(
[scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)],
@@ -273,7 +254,6 @@ createPatches(
RMS.SetProgress(55);
log("Creating stone mines...");
// create stone quarries
createMines(
[
[new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)],
@@ -283,7 +263,6 @@ createMines(
);
log("Creating metal mines...");
// create large metal quarries
createMines(
[
[new SimpleObject(oMetalLarge, 1,1, 0,4)]
@@ -294,7 +273,6 @@ createMines(
RMS.SetProgress(65);
// create decoration
var planetm = 1;
if (currentBiome() == "tropic")
@@ -320,7 +298,6 @@ createDecoration
RMS.SetProgress(70);
// create animals
createFood
(
[
@@ -334,7 +311,6 @@ createFood
avoidClasses(clWater, 3, clForest, 0, clPlayer, 20, clHill, 1, clFood, 20)
);
// create fruits
createFood
(
[
@@ -346,7 +322,6 @@ createFood
avoidClasses(clWater, 3, clForest, 0, clPlayer, 20, clHill, 1, clFood, 10)
);
// create fish
createFood
(
[
@@ -360,11 +335,9 @@ createFood
RMS.SetProgress(85);
// create straggler trees
var types = [oTree1, oTree2, oTree4, oTree3]; // some variation
createStragglerTrees(types, avoidClasses(clWater, 5, clForest, 7, clHill, 1, clPlayer, 12, clMetal, 6, clRock, 6));
setWaterWaviness(4.0);
setWaterType("lake");
// Export map data
ExportMap();
@@ -2,7 +2,6 @@ RMS.LoadLibrary("rmgen");
const WATER_WIDTH = 0.1;
// terrain textures
const tOceanDepths = "medit_sea_depths";
const tOceanRockDeep = "medit_sea_coral_deep";
const tOceanRockShallow = "medit_rocks_wet";
@@ -24,7 +23,6 @@ const tGrassCliff = "medit_cliff_italia_grass";
const tCliff = ["medit_cliff_italia", "medit_cliff_italia", "medit_cliff_italia_grass"];
const tForestFloor = "medit_grass_wild";
// gaia entities
const oBeech = "gaia/flora_tree_euro_beech";
const oBerryBush = "gaia/flora_bush_berry";
const oCarob = "gaia/flora_tree_carob";
@@ -42,7 +40,6 @@ const oStoneLarge = "gaia/geology_stonemine_medit_quarry";
const oStoneSmall = "gaia/geology_stone_mediterranean";
const oMetalLarge = "gaia/geology_metal_mediterranean_slabs";
// decorative props
const aBushLargeDry = "actor|props/flora/bush_medit_la_dry.xml";
const aBushLarge = "actor|props/flora/bush_medit_la.xml";
const aBushMedDry = "actor|props/flora/bush_medit_me_dry.xml";
@@ -62,7 +59,6 @@ const pPineForest = [tForestFloor+TERRAIN_SEPARATOR+oPine, tGrass];
const pPoplarForest = [tForestFloor+TERRAIN_SEPARATOR+oLombardyPoplar, tGrass];
const pMainForest = [tForestFloor+TERRAIN_SEPARATOR+oCarob, tForestFloor+TERRAIN_SEPARATOR+oBeech, tGrass, tGrass];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
@@ -142,7 +138,6 @@ var noise4 = new Noise2D(scaleByMapSize(6, 24));
var noise5 = new Noise2D(scaleByMapSize(11, 44));
for (var ix = 0; ix <= mapSize; ix++)
{
for (var iz = 0; iz <= mapSize; iz++)
{
var x = ix / (mapSize + 1.0);
@@ -156,13 +151,9 @@ for (var ix = 0; ix <= mapSize; ix++)
// add the rough shape of the water
if (x < WATER_WIDTH)
{
h = max(-16.0, -28.0*(WATER_WIDTH-x)/WATER_WIDTH);
}
else if (x > 1.0-WATER_WIDTH)
{
h = max(-16.0, -28.0*(x-(1.0-WATER_WIDTH))/WATER_WIDTH);
}
else
{
distToWater = (0.5 - WATER_WIDTH - abs(x-0.5));
@@ -205,11 +196,8 @@ for (var ix = 0; ix <= mapSize; ix++)
if (cliffNoise > 0)
h += 19 * min(cliffNoise, 0.045) / 0.045;
}
// set the height
setHeight(ix, iz, h);
}
}
RMS.SetProgress(15);
log("Painting terrain...");
@@ -220,7 +208,6 @@ var noise9 = new Noise2D(scaleByMapSize(26, 104));
var noise10 = new Noise2D(scaleByMapSize(50, 200));
for (var ix = 0; ix < mapSize; ix++)
{
for (var iz = 0; iz < mapSize; iz++)
{
var x = ix / (mapSize + 1.0);
@@ -327,9 +314,7 @@ for (var ix = 0; ix < mapSize; ix++)
{
var grassNoise = (noise8.get(x,z) + 0.6*noise9.get(x,z)) / 1.6;
if (grassNoise < 0.3)
{
t = (diffH > 1.2) ? tDirtCliff : tDirt;
}
else if (grassNoise < 0.34)
{
t = (diffH > 1.2) ? tGrassCliff : tGrassDry;
@@ -541,7 +526,6 @@ createObjectGroupsDeprecated(group, 0,
1.5 * numPlayers, 100
);
// Adjust environment
setSkySet("sunny");
setWaterColor(0.024,0.262,0.224);
setWaterTint(0.133, 0.325,0.255);
@@ -17,7 +17,6 @@ const tShoreBlend = "temp_grass_plants";
const tShore = "temp_plants_bog";
const tWater = "temp_mud_a";
// gaia entities
const oBeech = "gaia/flora_tree_euro_beech";
const oOak = "gaia/flora_tree_oak";
const oBerryBush = "gaia/flora_bush_berry";
@@ -28,7 +27,6 @@ const oStoneLarge = "gaia/geology_stonemine_temperate_quarry";
const oStoneSmall = "gaia/geology_stone_temperate";
const oMetalLarge = "gaia/geology_metal_temperate_slabs";
// decorative props
const aGrass = "actor|props/flora/grass_soft_small_tall.xml";
const aGrassShort = "actor|props/flora/grass_soft_large.xml";
const aRockLarge = "actor|geology/stone_granite_med.xml";
@@ -42,16 +40,12 @@ const pForestB = [tGrassDForest + TERRAIN_SEPARATOR + oBeech, tGrassDForest];
const pForestO = [tGrassPForest + TERRAIN_SEPARATOR + oOak, tGrassPForest];
const pForestR = [tGrassDForest + TERRAIN_SEPARATOR + oBeech, tGrassDForest, tGrassDForest + TERRAIN_SEPARATOR + oOak, tGrassDForest, tGrassDForest, tGrassDForest];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -72,8 +66,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = primeSortPlayers(sortPlayers(playerIDs));
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -128,7 +120,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [3]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id, { 'iberWall': 'towers' });
placeDefaultChicken(fx, fz, clBaseResource);
@@ -182,7 +173,6 @@ for (var i = 0; i < numPlayers; i++)
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
}
// create the main river
log("Creating the main river");
var tang = randFloat(0, TWO_PI);
var placer = new PathPlacer(1, fractionToTiles(0.5), fractionToTiles(0.99), fractionToTiles(0.5), scaleByMapSize(10,20), 0.5, 3*(scaleByMapSize(1,4)), 0.1, 0.01);
@@ -207,7 +197,6 @@ var painter = new LayeredPainter([tWater, tWater], [1]);
var elevationPainter = new SmoothElevationPainter(ELEVATION_SET, -4, 2);
createArea(placer, [painter, elevationPainter], avoidClasses(clPlayer, 8));
// create the shallows of the main river
log("Creating the shallows of the main river");
for (let i = 0; i <= randIntInclusive(3, scaleByMapSize(4, 6)); ++i)
@@ -216,7 +205,6 @@ for (let i = 0; i <= randIntInclusive(3, scaleByMapSize(4, 6)); ++i)
passageMaker(floor(fractionToTiles(cLocation)), floor(fractionToTiles(0.35)), floor(fractionToTiles(cLocation)), floor(fractionToTiles(0.65)), scaleByMapSize(4,8), -2, -2, 2, clShallow, undefined, -4);
}
// create tributaries
log("Creating tributaries");
for (let i = 0; i <= randIntInclusive(8, scaleByMapSize(12, 20)); ++i)
{
@@ -257,10 +245,8 @@ paintTerrainBasedOnHeight(-5, 1, 1, tWater);
paintTerrainBasedOnHeight(1, 2, 1, pForestR);
paintTileClassBasedOnHeight(-6, 0.5, 1, clWater);
RMS.SetProgress(50);
// create bumps
log("Creating bumps...");
placer = new ClumpPlacer(scaleByMapSize(20, 50), 0.3, 0.06, 1);
painter = new SmoothElevationPainter(ELEVATION_MODIFY, 2, 2);
@@ -282,7 +268,6 @@ var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES);
var numForest = totalTrees * P_FOREST;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create forests
log("Creating forests...");
var types = [
[[tGrassDForest, tGrass, pForestB], [tGrassDForest, pForestB]],
@@ -307,7 +292,6 @@ for (var i = 0; i < types.length; ++i)
RMS.SetProgress(70);
// create dirt patches
log("Creating dirt patches...");
var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)];
for (var i = 0; i < sizes.length; i++)
@@ -325,7 +309,6 @@ for (var i = 0; i < sizes.length; i++)
);
}
// create grass patches
log("Creating grass patches...");
var sizes = [scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)];
for (var i = 0; i < sizes.length; i++)
@@ -346,14 +329,13 @@ for (var i = 0; i < sizes.length; i++)
RMS.SetProgress(80);
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clWater, 0, clForest, 1, clPlayer, 15, clRock, 10, clHill, 1)],
scaleByMapSize(4,16), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clWater, 0, clForest, 1, clPlayer, 15, clRock, 10, clHill, 1)],
@@ -361,7 +343,6 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clWater, 0, clForest, 1, clPlayer, 15, clMetal, 10, clRock, 5, clHill, 1)],
@@ -370,7 +351,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(86);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockMedium, 1,3, 0,1)],
@@ -382,8 +362,6 @@ createObjectGroupsDeprecated(
scaleByMapSize(16, 262), 50
);
// create large decorative rocks
log("Creating large decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockLarge, 1,2, 0,1), new SimpleObject(aRockMedium, 1,3, 0,2)],
@@ -395,8 +373,6 @@ createObjectGroupsDeprecated(
scaleByMapSize(8, 131), 50
);
// create deer
log("Creating deer...");
group = new SimpleGroup(
[new SimpleObject(oDeer, 5,7, 0,4)],
@@ -407,9 +383,7 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
// create rabbid
log("Creating rabbid...");
log("Creating rabbits...");
group = new SimpleGroup(
[new SimpleObject(oRabbit, 2,3, 0,2)],
true, clFood
@@ -419,7 +393,6 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
// create berry bush
log("Creating berry bush...");
group = new SimpleGroup(
[new SimpleObject(oBerryBush, 5,7, 0,4)],
@@ -430,7 +403,6 @@ createObjectGroupsDeprecated(group, 0,
randIntInclusive(1, 4) * numPlayers + 2, 50
);
// create straggler trees
log("Creating straggler trees...");
var types = [oOak, oBeech]; // some variation
var num = floor(numStragglers / types.length);
@@ -446,7 +418,6 @@ for (var i = 0; i < types.length; ++i)
);
}
//create small grass tufts
log("Creating small grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 1,2, 0,1, -PI/8,PI/8)]
@@ -456,8 +427,6 @@ createObjectGroupsDeprecated(group, 0,
scaleByMapSize(13, 200)
);
// create large grass tufts
log("Creating large grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrass, 2,4, 0,1.8, -PI/8,PI/8), new SimpleObject(aGrassShort, 3,6, 1.2,2.5, -PI/8,PI/8)]
@@ -467,8 +436,6 @@ createObjectGroupsDeprecated(group, 0,
scaleByMapSize(13, 200)
);
// create bushes
log("Creating bushes...");
group = new SimpleGroup(
[new SimpleObject(aBushMedium, 1,2, 0,2), new SimpleObject(aBushSmall, 2,4, 0,2)]
@@ -478,7 +445,6 @@ createObjectGroupsDeprecated(group, 0,
scaleByMapSize(13, 200), 50
);
// create shallow flora
log("Creating shallow flora...");
group = new SimpleGroup(
[new SimpleObject(aLillies, 1,2, 0,2), new SimpleObject(aReeds, 2,4, 0,2)]
@@ -488,7 +454,6 @@ createObjectGroupsDeprecated(group, 0,
60 * scaleByMapSize(13, 200), 80
);
// Set environment
setSkySet("cirrus");
setWaterColor(0.1,0.212,0.422);
setWaterTint(0.3,0.1,0.949);
@@ -496,5 +461,4 @@ setWaterWaviness(3.0);
setWaterType("lake");
setWaterMurkiness(0.80);
// Export map data
ExportMap();
@@ -19,7 +19,6 @@ const tShoreBlend = g_Terrains.shoreBlend;
const tShore = g_Terrains.shore;
const tWater = g_Terrains.water;
// gaia entities
const oTree1 = g_Gaia.tree1;
const oTree2 = g_Gaia.tree2;
const oTree3 = g_Gaia.tree3;
@@ -33,7 +32,6 @@ const oStoneLarge = g_Gaia.stoneLarge;
const oStoneSmall = g_Gaia.stoneSmall;
const oMetalLarge = g_Gaia.metalLarge;
// decorative props
const aGrass = g_Decoratives.grass;
const aGrassShort = g_Decoratives.grassShort;
const aReeds = g_Decoratives.reeds;
@@ -46,16 +44,12 @@ const aBushSmall = g_Decoratives.bushSmall;
const pForest1 = [tForestFloor2 + TERRAIN_SEPARATOR + oTree1, tForestFloor2 + TERRAIN_SEPARATOR + oTree2, tForestFloor2];
const pForest2 = [tForestFloor1 + TERRAIN_SEPARATOR + oTree4, tForestFloor1 + TERRAIN_SEPARATOR + oTree5, tForestFloor1];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -84,8 +78,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -103,7 +95,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -119,7 +110,6 @@ for (var i = 0; i < numPlayers; i++)
addToClass(ix-5, iz, clPlayer);
addToClass(ix, iz-5, clPlayer);
// create starting units
placeCivDefaultEntities(fx, fz, id);
// create the city patch
@@ -180,13 +170,10 @@ for (var i = 0; i < numPlayers; i++)
placeDefaultDecoratives(fx, fz, aGrassShort, clBaseResource, radius);
}
RMS.SetProgress(20);
// create bumps
createBumps();
// create hills
if (randBool())
createHills([tCliff, tCliff, tHill], avoidClasses(clPlayer, 20, clHill, 15), clHill, scaleByMapSize(3, 15));
else
@@ -201,7 +188,6 @@ createForests(
RMS.SetProgress(50);
// create dirt patches
log("Creating dirt patches...");
createLayeredPatches(
[scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)],
@@ -209,7 +195,6 @@ createLayeredPatches(
[1,1]
);
// create grass patches
log("Creating grass patches...");
createPatches(
[scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)],
@@ -218,9 +203,7 @@ createPatches(
RMS.SetProgress(55);
log("Creating stone mines...");
// create stone quarries
createMines(
[
[new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)],
@@ -229,7 +212,6 @@ createMines(
);
log("Creating metal mines...");
// create large metal quarries
createMines(
[
[new SimpleObject(oMetalLarge, 1,1, 0,4)]
@@ -240,7 +222,6 @@ createMines(
RMS.SetProgress(65);
// create decoration
var planetm = 1;
if (currentBiome() == "tropic")
@@ -265,7 +246,6 @@ createDecoration
RMS.SetProgress(70);
// create animals
createFood
(
[
@@ -280,7 +260,6 @@ createFood
RMS.SetProgress(75);
// create fruits
createFood
(
[
@@ -294,10 +273,7 @@ createFood
RMS.SetProgress(85);
// create straggler trees
var types = [oTree1, oTree2, oTree4, oTree3]; // some variation
createStragglerTrees(types);
// Export map data
ExportMap();
@@ -19,7 +19,6 @@ const tShoreBlend = g_Terrains.shoreBlend;
const tShore = g_Terrains.shore;
const tWater = g_Terrains.water;
// gaia entities
const oTree1 = g_Gaia.tree1;
const oTree2 = g_Gaia.tree2;
const oTree3 = g_Gaia.tree3;
@@ -34,7 +33,6 @@ const oStoneSmall = g_Gaia.stoneSmall;
const oMetalLarge = g_Gaia.metalLarge;
const oWood = "gaia/special_treasure_wood";
// decorative props
const aGrass = g_Decoratives.grass;
const aGrassShort = g_Decoratives.grassShort;
const aReeds = g_Decoratives.reeds;
@@ -47,15 +45,12 @@ const aBushSmall = g_Decoratives.bushSmall;
const pForest1 = [tForestFloor2 + TERRAIN_SEPARATOR + oTree1, tForestFloor2 + TERRAIN_SEPARATOR + oTree2, tForestFloor2];
const pForest2 = [tForestFloor1 + TERRAIN_SEPARATOR + oTree4, tForestFloor1 + TERRAIN_SEPARATOR + oTree5, tForestFloor1];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -92,7 +87,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var shoreRadius = 4;
var elevation = 3;
@@ -122,7 +116,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id, { 'iberWall': false });
placeDefaultChicken(fx, fz, clBaseResource);
@@ -357,7 +350,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(54);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 10, clMetal, 10, clRock, 5, clHill, 1), stayClasses(clLand, 7)],
@@ -365,7 +357,6 @@ createObjectGroupsDeprecated(group, 0,
);
RMS.SetProgress(58);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockMedium, 1,3, 0,1)],
@@ -378,7 +369,6 @@ createObjectGroupsDeprecated(
);
RMS.SetProgress(62);
// create large decorative rocks
log("Creating large decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockLarge, 1,2, 0,1), new SimpleObject(aRockMedium, 1,3, 0,2)],
@@ -1,6 +1,5 @@
RMS.LoadLibrary("rmgen");
// terrain textures
const tCity = "desert_city_tile";
const tCityPlaza = "desert_city_tile_plaza";
const tSand = "desert_dirt_rough";
@@ -16,7 +15,6 @@ const tDirtCracks = "desert_dirt_cracks";
const tShore = "desert_shore_stones";
const tWaterDeep = "desert_shore_stones_wet";
// gaia entities
const oBerryBush = "gaia/flora_bush_grapes";
const oCamel = "gaia/fauna_camel";
const oFish = "gaia/fauna_fish";
@@ -30,7 +28,6 @@ const oMetalLarge = "gaia/geology_metal_desert_slabs";
const oDatePalm = "gaia/flora_tree_date_palm";
const oSDatePalm = "gaia/flora_tree_senegal_date_palm";
// decorative props
const aBush1 = "actor|props/flora/bush_desert_a.xml";
const aBush2 = "actor|props/flora/bush_desert_dry_a.xml";
const aBush3 = "actor|props/flora/bush_dry_a.xml";
@@ -42,7 +39,6 @@ const aDecorativeRock = "actor|geology/stone_desert_med.xml";
const pForest = [tForestFloor + TERRAIN_SEPARATOR + oDatePalm, tForestFloor + TERRAIN_SEPARATOR + oSDatePalm, tForestFloor];
const pForestOasis = [tGrass + TERRAIN_SEPARATOR + oDatePalm, tGrass + TERRAIN_SEPARATOR + oSDatePalm, tGrass];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
@@ -107,7 +103,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tCity, tCityPlaza], [3]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -331,7 +326,6 @@ var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES);
var numForest = totalTrees * P_FOREST;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create forests
log("Creating forests...");
var num = scaleByMapSize(10,30);
placer = new ClumpPlacer(numForest / num, 0.15, 0.1, 0.5);
@@ -1,14 +1,10 @@
RMS.LoadLibrary("rmgen");
log("Initializing map...");
InitMap();
var numPlayers = getNumPlayers();
var mapSize = getMapSize();
// create tile classes
var clPlayer = createTileClass();
var clPath = createTileClass();
var clHill = createTileClass();
@@ -25,8 +21,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -50,11 +44,7 @@ for (var i=0; i < numPlayers; i++)
var ix = round(fx);
var iz = round(fz);
// create starting units
placeCivDefaultEntities(fx, fz, id);
}
// Export map data
ExportMap();
@@ -13,7 +13,6 @@ const tShoreBlend = "alpine_shore_rocks_icy";
const tShore = "alpine_shore_rocks";
const tWater = "alpine_shore_rocks";
// gaia entities
const oPine = "gaia/flora_tree_pine_w";
const oStoneLarge = "gaia/geology_stonemine_alpine_quarry";
const oStoneSmall = "gaia/geology_stone_alpine_a";
@@ -22,7 +21,6 @@ const oFish = "gaia/fauna_fish";
const oWalrus = "gaia/fauna_walrus";
const oWolf = "gaia/fauna_wolf_snow";
// decorative props
const aRockLarge = "actor|geology/stone_granite_med.xml";
const aRockMedium = "actor|geology/stone_granite_med.xml";
const aIceberg = "actor|props/special/eyecandy/iceberg.xml";
@@ -30,16 +28,12 @@ const aIceberg = "actor|props/special/eyecandy/iceberg.xml";
const pForestD = [tForestFloor + TERRAIN_SEPARATOR + oPine, tForestFloor, tForestFloor];
const pForestS = [tForestFloor + TERRAIN_SEPARATOR + oPine, tForestFloor, tForestFloor, tForestFloor];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clHill2 = createTileClass();
@@ -54,7 +48,6 @@ var clFood = createTileClass();
var clBaseResource = createTileClass();
var clSettlement = createTileClass();
// randomize player order
var playerIDs = [];
for (var i = 0; i < numPlayers; i++)
@@ -63,8 +56,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerPos = new Array(numPlayers);
@@ -81,7 +72,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -103,7 +93,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
// create metal mine
@@ -176,7 +165,6 @@ for (var ix = 0; ix < mapSize; ix++)
}
}
// create shore
log("Creating shores...");
for (var i = 0; i < scaleByMapSize(20,120); i++)
{
@@ -200,7 +188,6 @@ for (var i = 0; i < scaleByMapSize(20,120); i++)
);
}
// create islands
log("Creating islands...");
placer = new ChainPlacer(1, floor(scaleByMapSize(4, 6)), floor(scaleByMapSize(16, 40)), 0.1);
var terrainPainter = new LayeredPainter(
@@ -217,7 +204,6 @@ createAreas(
paintTerrainBasedOnHeight(-6, 1, 1, tWater);
// create lakes
log("Creating lakes...");
var numLakes = round(scaleByMapSize(1,4) * numPlayers);
var placer = new ChainPlacer(1, floor(scaleByMapSize(5, 7)), floor(scaleByMapSize(20, 50)), 0.1);
@@ -238,7 +224,6 @@ paintTileClassBasedOnHeight(-6, 0.5, 1, clWater);
RMS.SetProgress(45);
// create hills
log("Creating hills...");
placer = new ChainPlacer(1, floor(scaleByMapSize(4, 6)), floor(scaleByMapSize(16, 40)), 0.1);
var terrainPainter = new LayeredPainter(
@@ -253,7 +238,6 @@ createAreas(
scaleByMapSize(1, 4) * numPlayers
);
// calculate desired number of trees for map (based on size)
var MIN_TREES = 100;
@@ -264,14 +248,12 @@ var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES);
var numForest = totalTrees * P_FOREST;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create forests
log("Creating forests...");
var types = [
[[tSnowA, tSnowA, tSnowA, tSnowA, pForestD], [tSnowA, tSnowA, tSnowA, pForestD]],
[[tSnowA, tSnowA, tSnowA, tSnowA, pForestS], [tSnowA, tSnowA, tSnowA, pForestS]]
]; // some variation
var size = numForest / (scaleByMapSize(3,6) * numPlayers);
var num = floor(size / types.length);
@@ -291,7 +273,6 @@ for (var i = 0; i < types.length; ++i)
}
log("Creating iceberg...");
// create iceberg
group = new SimpleGroup([new SimpleObject(aIceberg, 0,2, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clRock, 6), stayClasses(clWater, 4)],
@@ -300,7 +281,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(70);
// create dirt patches
log("Creating dirt patches...");
var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)];
for (var i = 0; i < sizes.length; i++)
@@ -334,14 +314,13 @@ for (var i = 0; i < sizes.length; i++)
}
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clRock, 10, clHill, 1),
scaleByMapSize(8,32), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clRock, 10, clHill, 1),
@@ -349,17 +328,13 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 1),
scaleByMapSize(8,32), 100
);
RMS.SetProgress(95);
// create straggler trees
log("Creating straggler trees...");
var types = [oPine]; // some variation
var num = floor(numStragglers / types.length);
@@ -375,7 +350,6 @@ for (var i = 0; i < types.length; ++i)
);
}
// create deer
log("Creating deer...");
group = new SimpleGroup(
[new SimpleObject(oWalrus, 5,7, 0,4)],
@@ -388,7 +362,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(75);
// create sheep
log("Creating sheep...");
group = new SimpleGroup(
[new SimpleObject(oWolf, 2,3, 0,2)],
@@ -399,7 +372,6 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
// create fish
log("Creating fish...");
group = new SimpleGroup(
[new SimpleObject(oFish, 2,3, 0,2)],
+3 -28
View File
@@ -1,6 +1,5 @@
RMS.LoadLibrary("rmgen");
//random terrain textures
const tSand = ["desert_sand_dunes_100", "desert_dirt_cracks","desert_sand_smooth", "desert_dirt_rough", "desert_dirt_rough_2", "desert_sand_smooth"];
const tDune = ["desert_sand_dunes_50"];
const tBigDune = ["desert_sand_dunes_50"];
@@ -13,7 +12,6 @@ const tShoreBlend = "desert_sand_wet";
const tShore = "dirta";
const tWater = "desert_sand_wet";
// gaia entities
const ePalmShort = "gaia/flora_tree_cretan_date_palm_short";
const ePalmTall = "gaia/flora_tree_cretan_date_palm_tall";
const eBush = "gaia/flora_bush_grapes";
@@ -25,7 +23,6 @@ const eStoneMine = "gaia/geology_stonemine_desert_quarry";
const eStoneMineSmall = "gaia/geology_stone_desert_small";
const eMetalMine = "gaia/geology_metal_desert_slabs";
// decorative props
const aFlower1 = "actor|props/flora/decals_flowers_daisies.xml";
const aWaterFlower = "actor|props/flora/water_lillies.xml";
const aReedsA = "actor|props/flora/reeds_pond_lush_a.xml";
@@ -39,16 +36,12 @@ const pForestMain = [tForestFloor + TERRAIN_SEPARATOR + ePalmShort, tForestFloor
const pOasisForestLight = [tForestFloor + TERRAIN_SEPARATOR + ePalmShort, tForestFloor + TERRAIN_SEPARATOR + ePalmTall, tForestFloor,tForestFloor,tForestFloor
,tForestFloor,tForestFloor,tForestFloor,tForestFloor];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -74,13 +67,10 @@ for (var ix = 0; ix < mapSize; ix++)
// randomize player order
var playerIDs = [];
for (var i = 0; i < numPlayers; i++)
{
playerIDs.push(i+1);
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -100,7 +90,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var elevation = 20;
@@ -121,7 +110,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -204,10 +192,8 @@ for (var i = 0; i < numPlayers; i++)
// TODO: add a few random trees here and there
}
RMS.SetProgress(20);
// create bumps
log("Creating bumps...");
placer = new ClumpPlacer(scaleByMapSize(20, 50), 0.3, 0.06, 1);
painter = new SmoothElevationPainter(ELEVATION_MODIFY, 4, 3);
@@ -229,7 +215,6 @@ createAreas( placer, [terrainPainter, painter],
scaleByMapSize(15, 50)
);
log("Creating actual oasis...");
var size = mapSize * 0.2;
size *= size;
@@ -261,7 +246,6 @@ group = new SimpleGroup([new SimpleObject(ePalmTall, 1,1, 0,0),new SimpleObject(
createObjectGroupsDeprecated(group, 0, stayClasses(clPassage,1), scaleByMapSize(60,250), 100 );
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(eStoneMine, 1,1, 0,0),new SimpleObject(ePalmShort, 1,2, 3,3),new SimpleObject(ePalmTall, 0,1, 3,3)
,new SimpleObject(aBushB, 1,1, 2,2), new SimpleObject(aBushA, 0,2, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
@@ -270,7 +254,6 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(eMetalMine, 1,1, 0,0),new SimpleObject(ePalmShort, 1,2, 2,3),new SimpleObject(ePalmTall, 0,1, 2,2)
,new SimpleObject(aBushB, 1,1, 2,2), new SimpleObject(aBushA, 0,2, 1,3)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
@@ -284,7 +267,7 @@ group = new SimpleGroup( [new SimpleObject(aRock, 2,4, 0,2)], true, undefined );
createObjectGroupsDeprecated(group, 0, avoidClasses(clWater, 3, clForest, 0, clPlayer, 10, clHill, 1, clFood, 20), 30, scaleByMapSize(10,50) );
RMS.SetProgress(70);
// create deer
log("Creating Camels...");
group = new SimpleGroup(
[new SimpleObject(eCamel, 1,2, 0,4)],
@@ -294,10 +277,8 @@ createObjectGroupsDeprecated(group, 0,
avoidClasses(clWater, 3, clForest, 0, clPlayer, 10, clHill, 1, clFood, 20),
1 * numPlayers, 50
);
RMS.SetProgress(75);
// create sheep
log("Creating Gazelles...");
group = new SimpleGroup(
[new SimpleObject(eGazelle, 2,4, 0,2)],
@@ -307,9 +288,8 @@ createObjectGroupsDeprecated(group, 0,
avoidClasses(clWater, 3, clForest, 0, clPlayer, 10, clHill, 1, clFood, 20),
1 * numPlayers, 50
);
RMS.SetProgress(85);
// create lions
log("Creating Oasis Animals...");
for (var p = 0; p < scaleByMapSize(5,30); p++)
{
@@ -325,7 +305,6 @@ for (var p = 0; p < scaleByMapSize(5,30); p++)
}
/*
var planetm = 8;
//create small grass tufts
log("Creating small grass tufts...");
group = new SimpleGroup(
[new SimpleObject(rba1, 1,2, 0,1, -PI/8,PI/8)]
@@ -339,7 +318,6 @@ RMS.SetProgress(90);
RMS.SetProgress(95);
// create bushes
log("Creating bushes...");
group = new SimpleGroup(
[new SimpleObject(aBushB, 1,2, 0,2), new SimpleObject(aBushA, 2,4, 0,2)]
@@ -350,7 +328,6 @@ createObjectGroupsDeprecated(group, 0,
);
log ("Creating Sand blows and beautifications");
for (var sandx = 0; sandx < mapSize; sandx += 4)
{
for (var sandz = 0; sandz < mapSize; sandz += 4)
{
if (getHeight(sandx,sandz) > 3.4)
@@ -372,6 +349,7 @@ for (var sandx = 0; sandx < mapSize; sandx += 4)
group = new SimpleGroup( [new SimpleObject(aReedsA, 5,12, 0,2),new SimpleObject(aReedsB, 5,12, 0,2)], true, undefined, sandx,sandz );
createObjectGroup(group, 0);
}
if (getTileClass(clPassage).countInRadius(sandx,sandz,2,true) > 0) {
if (randBool(0.4))
{
@@ -386,7 +364,6 @@ for (var sandx = 0; sandx < mapSize; sandx += 4)
}
}
}
}
setSkySet("sunny");
setSunColor(0.914,0.827,0.639);
@@ -400,6 +377,4 @@ setWaterMurkiness(0.5);
setTerrainAmbientColor(0.45, 0.5, 0.6);
setUnitsAmbientColor(0.501961, 0.501961, 0.501961);
// Export map data
ExportMap();
@@ -31,7 +31,6 @@ else //spring
setTerrainAmbientColor(0.329412, 0.419608, 0.501961);
}
// gaia entities
const oGrapesBush = "gaia/flora_bush_grapes";
const oCamel = "gaia/fauna_camel";
const oFish = "gaia/fauna_fish";
@@ -44,7 +43,6 @@ const oMetalLarge = "gaia/geology_metal_desert_slabs";
const oTamarix = "gaia/flora_tree_tamarix";
const oOak = "gaia/flora_tree_oak";
// decorative props
const aBush1 = "actor|props/flora/bush_desert_a.xml";
const aBush2 = "actor|props/flora/bush_desert_dry_a.xml";
const aBush3 = "actor|props/flora/bush_dry_a.xml";
@@ -55,16 +53,12 @@ const aDecorativeRock = "actor|geology/stone_desert_med.xml";
// terrain + entity (for painting)
const pForestO = [tForestFloor + TERRAIN_SEPARATOR + oOak, tForestFloor + TERRAIN_SEPARATOR + oOak, tForestFloor, tDirtMain, tDirtMain];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -87,13 +81,10 @@ for (var ix = 0; ix < mapSize; ix++)
var playerIDs = [];
for (var i = 0; i < numPlayers; i++)
{
playerIDs.push(i+1);
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -133,7 +124,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tCity, tCity], [3]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -189,7 +179,6 @@ for (var i = 0; i < numPlayers; i++)
RMS.SetProgress(10);
// create patches
log("Creating rock patches...");
placer = new ChainPlacer(1, floor(scaleByMapSize(3, 6)), floor(scaleByMapSize(20, 45)), 0);
painter = new TerrainPainter(tRocky);
@@ -219,7 +208,6 @@ createAreas(placer, [painter, paintClass(clPatch)],
RMS.SetProgress(25);
// create centeral plateau
log("Creating centeral plateau...");
var halfSize = mapSize / 2;
var oRadius = scaleByMapSize(18, 68);
@@ -228,10 +216,8 @@ painter = new LayeredPainter([tLakebed2, tLakebed1], [6]);
var elevationPainter = new SmoothElevationPainter(ELEVATION_MODIFY, -10, 8);
createArea(placer, [painter, elevationPainter, paintClass(clCP)], avoidClasses(clPlayer, 18));
RMS.SetProgress(30);
// create hills
log("Creating hills...");
var numHills = scaleByMapSize(20, 80);
for (var i = 0; i < numHills; ++i)
@@ -262,7 +248,6 @@ var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES);
var numForest = totalTrees * P_FOREST;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create forests
log("Creating forests...");
var types = [
[[tDirtMain, tForestFloor, pForestO], [tForestFloor, pForestO]],
@@ -284,19 +269,16 @@ for (var i = 0; i < types.length; ++i)
num
);
}
RMS.SetProgress(50);
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4), new RandomObject(aBushes, 2,4, 0,2)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 10, clRock, 10, clHill, 1, clCP, 1)],
scaleByMapSize(2,8), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3), new RandomObject(aBushes, 2,4, 0,2)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 10, clRock, 10, clHill, 1, clCP, 1)],
@@ -304,23 +286,20 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4), new RandomObject(aBushes, 2,4, 0,2)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 10, clMetal, 10, clRock, 5, clHill, 1, clCP, 1)],
scaleByMapSize(2,8), 100
);
log("Creating centeral stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4), new RandomObject(aBushes, 2,4, 0,2)], true, clRock);
createObjectGroupsDeprecated(group, 0,
stayClasses(clCP, 6),
5*scaleByMapSize(5,30), 50
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3), new RandomObject(aBushes, 2,4, 0,2)], true, clRock);
createObjectGroupsDeprecated(group, 0,
stayClasses(clCP, 6),
@@ -328,7 +307,6 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating centeral metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4), new RandomObject(aBushes, 2,4, 0,2)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
stayClasses(clCP, 6),
@@ -337,7 +315,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(60);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aDecorativeRock, 1,3, 0,1)],
@@ -351,7 +328,6 @@ createObjectGroupsDeprecated(
RMS.SetProgress(65);
//create bushes
log("Creating bushes...");
group = new SimpleGroup(
[new SimpleObject(aBush2, 1,2, 0,1), new SimpleObject(aBush1, 1,3, 0,2)],
@@ -365,7 +341,6 @@ createObjectGroupsDeprecated(
RMS.SetProgress(70);
// create goats
log("Creating goat...");
group = new SimpleGroup(
[new SimpleObject(oGoat, 5,7, 0,4)],
@@ -376,7 +351,6 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
// create sheep
log("Creating sheep...");
group = new SimpleGroup(
[new SimpleObject(oSheep, 2,3, 0,2)],
@@ -387,7 +361,6 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
// create grape bush
log("Creating grape bush...");
group = new SimpleGroup(
[new SimpleObject(oGrapesBush, 5,7, 0,4)],
@@ -398,7 +371,6 @@ createObjectGroupsDeprecated(group, 0,
randIntInclusive(1, 4) * numPlayers + 2, 50
);
// create camels
log("Creating camels...");
group = new SimpleGroup(
[new SimpleObject(oCamel, 2,3, 0,2)],
@@ -409,10 +381,8 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
RMS.SetProgress(90);
// create straggler trees
log("Creating straggler trees...");
var types = [oOak]; // some variation
var num = floor(numStragglers / types.length);
@@ -16,7 +16,6 @@ const tDirtB = "medit_dirt_c";
const tShore = "medit_sand";
const tWater = "medit_sand_wet";
// gaia entities
const oGrapeBush = "gaia/flora_bush_grapes";
const oDeer = "gaia/fauna_deer";
const oFish = "gaia/fauna_fish";
@@ -32,7 +31,6 @@ const oFanPalm = "gaia/flora_tree_medit_fan_palm";
const oPoplar = "gaia/flora_tree_poplar_lombardy";
const oCypress = "gaia/flora_tree_cypress";
// decorative props
const aBush1 = "actor|props/flora/bush_medit_sm.xml";
const aBush2 = "actor|props/flora/bush_medit_me.xml";
const aBush3 = "actor|props/flora/bush_medit_la.xml";
@@ -43,16 +41,12 @@ const aDecorativeRock = "actor|geology/stone_granite_med.xml";
// terrain + entity (for painting)
const pForest = [tForestFloor + TERRAIN_SEPARATOR + oDatePalm, tForestFloor + TERRAIN_SEPARATOR + oSDatePalm, tForestFloor + TERRAIN_SEPARATOR + oCarob, tForestFloor, tForestFloor];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clForest = createTileClass();
var clWater = createTileClass();
@@ -74,8 +68,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerPos = new Array(numPlayers);
@@ -92,7 +84,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -114,7 +105,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tCityPlaza, tCity], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -172,12 +162,11 @@ for (var i = 0; i < numPlayers; i++)
RMS.SetProgress(30);
log("Creating sea");
var theta = randFloat(0, 1);
var seed = randFloat(2,3);
for (var ix = 0; ix < mapSize; ix++)
{
for (var iz = 0; iz < mapSize; iz++)
{
var x = ix / (mapSize + 1.0);
@@ -193,33 +182,23 @@ for (var ix = 0; ix < mapSize; ix++)
{
var h;
if (x < (cu + 0.5 + fadeDist))
{
h = 1 + 4.0 * (1 - ((cu + 0.5 + fadeDist) - x)/fadeDist);
}
else
{
h = -3.0;
}
if (h < -1.5)
{
placeTerrain(ix, iz, tWater);
}
else
{
placeTerrain(ix, iz, tShore);
}
setHeight(ix, iz, h);
if (h < 0){
if (h < 0)
addToClass(ix, iz, clWater);
}
}
}
}
RMS.SetProgress(40);
// create bumps
log("Creating bumps...");
placer = new ClumpPlacer(scaleByMapSize(20, 50), 0.3, 0.06, 1);
painter = new SmoothElevationPainter(ELEVATION_MODIFY, 2, 2);
@@ -230,7 +209,6 @@ createAreas(
scaleByMapSize(100, 200)
);
// create hills
log("Creating hills...");
placer = new ChainPlacer(1, floor(scaleByMapSize(4, 6)), floor(scaleByMapSize(16, 40)), 0.5);
var terrainPainter = new LayeredPainter(
@@ -254,7 +232,6 @@ var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES);
var numForest = totalTrees * P_FOREST;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create forests
log("Creating forests...");
var num = scaleByMapSize(10,42);
placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), numForest / (num * floor(scaleByMapSize(2,5))), 0.5);
@@ -263,15 +240,8 @@ createAreas(placer, [painter, paintClass(clForest)],
avoidClasses(clPlayer, 20, clForest, 10, clWater, 1, clHill, 1, clBaseResource, 3),
num, 50
);
RMS.SetProgress(50);
// create grass patches
log("Creating grass patches...");
var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)];
for (var i = 0; i < sizes.length; i++)
@@ -288,10 +258,8 @@ for (var i = 0; i < sizes.length; i++)
scaleByMapSize(15, 45)
);
}
RMS.SetProgress(55);
// create dirt patches
log("Creating dirt patches...");
var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)];
for (var i = 0; i < sizes.length; i++)
@@ -308,12 +276,8 @@ for (var i = 0; i < sizes.length; i++)
scaleByMapSize(15, 45)
);
}
RMS.SetProgress(60);
// create cyprus
log("Creating cyprus...");
placer = new ClumpPlacer(4.5 * scaleByMapSize(60, 540), 0.2, 0.1, 0.01);
var terrainPainter = new LayeredPainter(
@@ -329,14 +293,13 @@ createAreas(
);
log("Creating cyprus stone mines...");
// create cyprus large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
stayClasses(clIsland, 9),
14 * scaleByMapSize(4,16), 100
);
// create cyprus small stone quarries
log("Creating cyprus small stone mines...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
stayClasses(clIsland, 9),
@@ -344,7 +307,6 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating cyprus metal mines...");
// create cyprus large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
stayClasses(clIsland, 9),
@@ -352,14 +314,13 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clForest, 1, clPlayer, 20, clRock, 10, clWater, 3, clHill, 1),
scaleByMapSize(4,16), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clForest, 1, clPlayer, 20, clRock, 10, clWater, 3, clHill, 1),
@@ -367,7 +328,6 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clWater, 3, clHill, 1),
@@ -376,7 +336,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(65);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aDecorativeRock, 1,3, 0,1)],
@@ -388,8 +347,6 @@ createObjectGroupsDeprecated(
scaleByMapSize(16, 262), 50
);
// create shrubs
log("Creating shrubs...");
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)],
@@ -400,10 +357,8 @@ createObjectGroupsDeprecated(
avoidClasses(clWater, 3, clPlayer, 0, clHill, 1),
scaleByMapSize(40, 360), 50
);
RMS.SetProgress(70);
// create fish
log("Creating fish...");
group = new SimpleGroup([new SimpleObject(oFish, 1,3, 2,6)], true, clFood);
createObjectGroupsDeprecated(group, 0,
@@ -411,7 +366,6 @@ createObjectGroupsDeprecated(group, 0,
3*scaleByMapSize(5,20), 50
);
// create sheeps
log("Creating sheeps...");
group = new SimpleGroup([new SimpleObject(oSheep, 5,7, 0,4)], true, clFood);
createObjectGroupsDeprecated(group, 0,
@@ -419,7 +373,6 @@ createObjectGroupsDeprecated(group, 0,
scaleByMapSize(5,20), 50
);
// create goats
log("Creating goats...");
group = new SimpleGroup([new SimpleObject(oGoat, 2,4, 0,3)], true, clFood);
createObjectGroupsDeprecated(group, 0,
@@ -427,7 +380,6 @@ createObjectGroupsDeprecated(group, 0,
scaleByMapSize(5,20), 50
);
// create deers
log("Creating deers...");
group = new SimpleGroup([new SimpleObject(oDeer, 2,4, 0,2)], true, clFood);
createObjectGroupsDeprecated(group, 0,
@@ -435,7 +387,6 @@ createObjectGroupsDeprecated(group, 0,
scaleByMapSize(5,20), 50
);
// create grape bushes
log("Creating grape bushes...");
group = new SimpleGroup(
[new SimpleObject(oGrapeBush, 5,7, 0,4)],
@@ -445,10 +396,8 @@ createObjectGroupsDeprecated(group, 0,
avoidClasses(clWater, 3, clForest, 0, clPlayer, 15, clHill, 1, clFood, 7),
randIntInclusive(1, 4) * numPlayers + 2, 50
);
RMS.SetProgress(90);
// create straggler trees
log("Creating straggler trees...");
var types = [oDatePalm, oSDatePalm, oCarob, oFanPalm, oPoplar, oCypress]; // some variation
var num = floor(numStragglers / types.length);
@@ -473,7 +422,6 @@ for (var i = 0; i < types.length; ++i)
);
}
// Set environment
setSkySet("sunny");
setSunColor(0.917, 0.828, 0.734);
setWaterColor(0.263,0.314,0.631);
@@ -497,5 +445,4 @@ setPPContrast(0.53);
setPPSaturation(0.47);
setPPBloom(0.52);
// Export map data
ExportMap();
@@ -11,7 +11,6 @@ var tRoadWild = "polar_ice_cracked";
var tShore = "polar_ice_snow";
var tWater = "polar_ice_c";
// gaia entities
var oArcticFox = "gaia/fauna_fox_arctic";
var oWolf = "trigger/fauna_wolf_snow_attack";
var oMuskox = "gaia/fauna_muskox";
@@ -24,12 +23,10 @@ var oStoneSmall = "gaia/geology_stone_alpine_a";
var oMetalLarge = "gaia/geology_metal_desert_badlands_slabs";
var oWood = "gaia/special_treasure_wood";
// decorative props
var aRockLarge = "actor|geology/stone_granite_med.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aIceberg = "actor|props/special/eyecandy/iceberg.xml";
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
@@ -166,7 +166,6 @@ SemiRandomElevationPainter.prototype.paint = function(area)
}
};
TILE_CENTERED_HEIGHT_MAP = true;
const tGrassSpecific = ["new_alpine_grass_d","new_alpine_grass_d", "new_alpine_grass_e"];
@@ -204,7 +203,6 @@ const tRoad = "new_alpine_citytile";
const tRoadWild = "new_alpine_citytile";
const tShore = "alpine_shore_rocks_icy";
// gaia entities
const oBeech = "gaia/flora_tree_euro_beech";
const oPine = "gaia/flora_tree_aleppo_pine";
const oBerryBush = "gaia/flora_bush_berry";
@@ -216,9 +214,6 @@ const oStoneLarge = "gaia/geology_stonemine_alpine_quarry";
const oStoneSmall = "gaia/geology_stone_alpine_a";
const oMetalLarge = "gaia/geology_metal_alpine_slabs";
// decorative props
const aRain = "actor|particle/rain_shower.xml";
const aGrass = "actor|props/flora/grass_soft_small_tall.xml";
const aGrassShort = "actor|props/flora/grass_soft_large.xml";
@@ -242,16 +237,12 @@ const pForestLandVeryLight = [ tGrassLandForest2 + TERRAIN_SEPARATOR + oPine,tGr
tGrassLandForest,tForestTransition,tGrassLandForest2,tForestTransition,
tGrassLandForest2,tGrassLandForest2,tGrassLandForest2,tGrassLandForest2];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clDirt = createTileClass();
var clLush = createTileClass();
var clRock = createTileClass();
@@ -295,7 +286,6 @@ for (var ix = 0; ix < mapSize; ix++)
}
}
// randomize player order
var playerIDs = [];
for (var i = 0; i < numPlayers; i++)
@@ -326,7 +316,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -348,7 +337,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -568,8 +556,6 @@ painter = new SemiRandomElevationPainter(7, 4,1);
var terrainPainter = new TerrainPainter(tGrassSpecific);
createAreas( placer, [painter,terrainPainter, paintClass(clHill)], avoidClasses(clWater, 5, clPlayer, 20, clBaseResource, 6, clPyrenneans, 2), scaleByMapSize(5, 35) );
// create forests
log("Creating forests...");
var types = [ [tForestTransition,pForestLandVeryLight, pForestLandLight, pForestLand]];
var size = scaleByMapSize(40,115)*PI;
@@ -588,7 +574,6 @@ var num = scaleByMapSize(80,400);
var group = new SimpleGroup([new SimpleObject(oPine, 1,2, 1,3),new SimpleObject(oBeech, 1,2, 1,3)], true, clForest);
createObjectGroupsDeprecated(group, 0, avoidClasses(clWater, 3, clForest, 1, clPlayer, 8,clPyrenneans, 1), num, 20 );
// Painting
log("Painting the map");
var terrainGrass = createTerrain(tGrass);
@@ -668,7 +653,6 @@ for (var x = 0; x < mapSize; x++) {
}
}
}
// create dirt patches
log("Creating dirt patches...");
var sizes = [scaleByMapSize(3, 20), scaleByMapSize(5, 40), scaleByMapSize(8, 60)];
for (var i = 0; i < sizes.length; i++)
@@ -678,7 +662,6 @@ for (var i = 0; i < sizes.length; i++)
createAreas( placer, [painter, paintClass(clDirt)], avoidClasses(clWater, 3, clForest, 0, clPyrenneans,5, clHill, 0, clDirt, 5, clPlayer, 6), scaleByMapSize(15, 45) );
}
// create grass patches
log("Creating grass patches...");
var sizes = [scaleByMapSize(2, 32), scaleByMapSize(3, 48), scaleByMapSize(5, 80)];
for (var i = 0; i < sizes.length; i++)
@@ -688,7 +671,6 @@ for (var i = 0; i < sizes.length; i++)
createAreas( placer, [painter,paintClass(clLush)], avoidClasses(clWater, 3, clForest, 0, clPyrenneans,5, clHill, 0, clDirt, 5, clPlayer, 6), scaleByMapSize(15, 45) );
}
RMS.SetProgress(70);
// making more in dirt areas so as to appear different
@@ -703,7 +685,6 @@ createObjectGroupsDeprecated(group, 0, avoidClasses(clWater, 3, clHill, 2, clPla
createObjectGroupsDeprecated(group, 0, stayClasses(clDirt,1), scaleByMapSize(13, 200),10);
RMS.SetProgress(75);
// create bushes
log("Creating bushes...");
group = new SimpleGroup( [new SimpleObject(aBushMedium, 1,2, 0,2), new SimpleObject(aBushSmall, 2,4, 0,2)] );
createObjectGroupsDeprecated(group, 0, avoidClasses(clWater, 2, clPlayer, 1, clPyrenneans, 1), scaleByMapSize(13, 200), 50 );
@@ -711,11 +692,10 @@ createObjectGroupsDeprecated(group, 0, avoidClasses(clWater, 2, clPlayer, 1, clP
RMS.SetProgress(80);
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0, avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clRock, 8, clPyrenneans, 1), scaleByMapSize(4,16), 100 );
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0, avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clRock, 8, clPyrenneans, 1), scaleByMapSize(4,16), 100 );
@@ -794,7 +774,6 @@ function PassMaker(x1, z1, x2, z2, startWidth, centerWidth, startElevation, cent
var width = (abs(step - stepNB/2.0) *startWidth + (stepNB/2 - abs(step - stepNB/2.0)) * centerWidth ) / (stepNB/2);
var oldDirection = [x2-x1, z2-z1];
// let's get the perpendicular direction
var direction = [ -oldDirection[1],oldDirection[0] ];
@@ -866,4 +845,3 @@ function getHeightDifference(x1, z1)
return diff;
}
@@ -11,7 +11,6 @@ const tShoreBlend = "temp_grass_plants";
const tShore = "temp_plants_bog";
const tWater = "temp_mud_a";
// gaia entities
const oBeech = "gaia/flora_tree_euro_beech";
const oOak = "gaia/flora_tree_oak";
const oBerryBush = "gaia/flora_bush_berry";
@@ -24,7 +23,6 @@ const oStoneLarge = "gaia/geology_stonemine_temperate_quarry";
const oStoneSmall = "gaia/geology_stone_temperate";
const oMetalLarge = "gaia/geology_metal_temperate_slabs";
// decorative props
const aGrass = "actor|props/flora/grass_soft_small_tall.xml";
const aGrassShort = "actor|props/flora/grass_soft_large.xml";
const aRockLarge = "actor|geology/stone_granite_med.xml";
@@ -37,16 +35,12 @@ const aBushSmall = "actor|props/flora/bush_medit_sm.xml";
const pForestD = [tForestFloor + TERRAIN_SEPARATOR + oBeech, tForestFloor];
const pForestP = [tForestFloor + TERRAIN_SEPARATOR + oOak, tForestFloor];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -58,7 +52,6 @@ var clFood = createTileClass();
var clBaseResource = createTileClass();
var clSettlement = createTileClass();
// randomize player order
var playerIDs = [];
for (var i = 0; i < numPlayers; i++)
@@ -67,8 +60,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -86,7 +77,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -108,7 +98,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -166,7 +155,6 @@ for (var i = 0; i < numPlayers; i++)
RMS.SetProgress(15);
// create bumps
log("Creating bumps...");
placer = new ClumpPlacer(scaleByMapSize(20, 50), 0.3, 0.06, 1);
painter = new SmoothElevationPainter(ELEVATION_MODIFY, 2, 2);
@@ -177,7 +165,6 @@ createAreas(
scaleByMapSize(300, 800)
);
// create marshes
log("Creating marshes...");
for (var i = 0; i < 7; i++)
{
@@ -195,8 +182,6 @@ for (var i = 0; i < 7; i++)
);
}
// create reeds
log("Creating reeds...");
group = new SimpleGroup(
[new SimpleObject(aReeds, 5,10, 0,4), new SimpleObject(aLillies, 5,10, 0,4)], true
@@ -209,7 +194,6 @@ waterAreas = [];
RMS.SetProgress(40);
// create bumps
log("Creating bumps...");
placer = new ClumpPlacer(scaleByMapSize(20, 50), 0.3, 0.06, 1);
painter = new SmoothElevationPainter(ELEVATION_MODIFY, 1, 2);
@@ -220,7 +204,6 @@ createAreas(
scaleByMapSize(50, 100)
);
// calculate desired number of trees for map (based on size)
const MIN_TREES = 500;
const MAX_TREES = 2500;
@@ -230,7 +213,6 @@ var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES);
var numForest = totalTrees * P_FOREST;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create forests
log("Creating forests...");
var types = [
[[tForestFloor, tGrass, pForestD], [tForestFloor, pForestD]],
@@ -255,7 +237,6 @@ for (var i = 0; i < types.length; ++i)
RMS.SetProgress(50);
// create mud patches
log("Creating mud patches...");
var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)];
for (var i = 0; i < sizes.length; i++)
@@ -273,16 +254,14 @@ for (var i = 0; i < sizes.length; i++)
);
}
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clWater, 0, clForest, 1, clPlayer, 20, clRock, 10, clHill, 1)],
scaleByMapSize(4,16), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clWater, 0, clForest, 1, clPlayer, 20, clRock, 10, clHill, 1)],
@@ -290,7 +269,6 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clWater, 0, clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 1)],
@@ -299,7 +277,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(60);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockMedium, 1,3, 0,1)],
@@ -313,7 +290,6 @@ createObjectGroupsDeprecated(
RMS.SetProgress(65);
// create large decorative rocks
log("Creating large decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockLarge, 1,2, 0,1), new SimpleObject(aRockMedium, 1,3, 0,2)],
@@ -327,7 +303,6 @@ createObjectGroupsDeprecated(
RMS.SetProgress(70);
// create deer
log("Creating deer...");
group = new SimpleGroup(
[new SimpleObject(oDeer, 5,7, 0,4)],
@@ -338,7 +313,6 @@ createObjectGroupsDeprecated(group, 0,
6 * numPlayers, 50
);
// create horse
log("Creating horse...");
group = new SimpleGroup(
[new SimpleObject(oHorse, 1,3, 0,4)],
@@ -351,7 +325,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(75);
// create rabbit
log("Creating rabbit...");
group = new SimpleGroup(
[new SimpleObject(oRabbit, 5,7, 0,2)],
@@ -362,7 +335,6 @@ createObjectGroupsDeprecated(group, 0,
6 * numPlayers, 50
);
// create wolf
log("Creating wolf...");
group = new SimpleGroup(
[new SimpleObject(oWolf, 1,3, 0,4)],
@@ -373,7 +345,6 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
// create berry bush
log("Creating berry bush...");
group = new SimpleGroup(
[new SimpleObject(oBerryBush, 5,7, 0,4)],
@@ -386,7 +357,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(80);
// create straggler trees
log("Creating straggler trees...");
var types = [oOak, oBeech]; // some variation
var num = floor(numStragglers / types.length);
@@ -404,7 +374,6 @@ for (var i = 0; i < types.length; ++i)
RMS.SetProgress(85);
//create small grass tufts
log("Creating small grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 1,2, 0,1, -PI/8,PI/8)]
@@ -416,7 +385,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(90);
// create large grass tufts
log("Creating large grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrass, 2,4, 0,1.8, -PI/8,PI/8), new SimpleObject(aGrassShort, 3,6, 1.2,2.5, -PI/8,PI/8)]
@@ -428,7 +396,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(95);
// create bushes
log("Creating bushes...");
group = new SimpleGroup(
[new SimpleObject(aBushMedium, 1,2, 0,2), new SimpleObject(aBushSmall, 2,4, 0,2)]
@@ -438,7 +405,6 @@ createObjectGroupsDeprecated(group, 0,
scaleByMapSize(13, 200), 50
);
// Set environment
setSkySet("cirrus");
setWaterColor(0.753,0.635,0.345); // muddy brown
setWaterTint(0.161,0.514,0.635); // clear blue for blueness
@@ -39,7 +39,6 @@ const pForestD = [tForestFloor + TERRAIN_SEPARATOR + oTree, tForestFloor];
const pForestP1 = [tForestFloor + TERRAIN_SEPARATOR + oPalm1, tForestFloor];
const pForestP2 = [tForestFloor + TERRAIN_SEPARATOR + oPalm2, tForestFloor];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
@@ -23,7 +23,6 @@ if (currentBiome() == "tropic")
tShore = "tropic_dirt_b_plants";
tWater = "tropic_dirt_b";
}
// gaia entities
const oTree1 = g_Gaia.tree1;
const oTree2 = g_Gaia.tree2;
const oTree3 = g_Gaia.tree3;
@@ -37,7 +36,6 @@ const oStoneLarge = g_Gaia.stoneLarge;
const oStoneSmall = g_Gaia.stoneSmall;
const oMetalLarge = g_Gaia.metalLarge;
// decorative props
const aGrass = g_Decoratives.grass;
const aGrassShort = g_Decoratives.grassShort;
const aReeds = g_Decoratives.reeds;
@@ -50,16 +48,12 @@ const aBushSmall = g_Decoratives.bushSmall;
const pForest1 = [tForestFloor2 + TERRAIN_SEPARATOR + oTree1, tForestFloor2 + TERRAIN_SEPARATOR + oTree2, tForestFloor2];
const pForest2 = [tForestFloor1 + TERRAIN_SEPARATOR + oTree4, tForestFloor1 + TERRAIN_SEPARATOR + oTree5, tForestFloor1];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -103,13 +97,10 @@ createArea(placer, [terrainPainter, elevationPainter, paintClass(clWater)], null
// randomize player order
var playerIDs = [];
for (var i = 0; i < numPlayers; i++)
{
playerIDs.push(i+1);
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -127,7 +118,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -149,7 +139,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -168,9 +157,8 @@ for (var i = 0; i < numPlayers; i++)
// create metal mine
var mAngle = bbAngle;
while(abs(mAngle - bbAngle) < PI/3)
{
mAngle = randFloat(0, TWO_PI);
}
var mDist = 12;
var mX = round(fx + mDist * cos(mAngle));
var mZ = round(fz + mDist * sin(mAngle));
@@ -213,16 +201,12 @@ var PZ = new Array(numPlayers+1);
//isRiver actually tells us if two points must be joined by river
var isRiver = new Array(numPlayers+1);
for (var q=0; q <numPlayers+1; q++)
{
isRiver[q]=new Array(numPlayers+1);
}
//At first nothing is joined
for (var m = 0; m < numPlayers+1; m++){
for (var n = 0; n < numPlayers+1; n++){
for (let m = 0; m < numPlayers + 1; ++m)
for (let n = 0; n < numPlayers + 1; ++n)
isRiver[m][n] = 0;
}
}
//creating the first point in the center. all others are
//connected to this one so all of our rivers join together
@@ -233,6 +217,7 @@ var ix = round(fx);
var iz = round(fz);
PX[numPlayers]= fx;
PZ[numPlayers]= fz;
var riverAngle = new Array(numPlayers);
for (var c = 0 ; c < numPlayers ; c++)
{
@@ -244,13 +229,9 @@ for (var c = 0 ; c < numPlayers ; c++)
//log (playerIDs[c], ",,," ,playerIDs[0]);
//isRiver[c][numPlayers]=1;
if ((c == numPlayers-1)&&(!areAllies(playerIDs[c]-1, playerIDs[0]-1)))
{
isRiver[c][numPlayers]=1;
}
else if ((c < numPlayers-1)&&(!areAllies(playerIDs[c]-1, playerIDs[c+1]-1)))
{
isRiver[c][numPlayers]=1;
}
}
//theta is the start value for rndRiver function. seed implies
@@ -260,21 +241,19 @@ var theta = new Array(numPlayers);
var seed = new Array(numPlayers);
var shallowpoint = new Array(numPlayers);
var shallowlength = new Array(numPlayers);
for (var q=0; q <numPlayers+1; q++)
for (let q = 0; q < numPlayers + 1; ++q)
{
theta[q]=randFloat(0, 1);
seed[q]=randFloat(2,3);
shallowpoint[q]=randFloat(0.2,0.7);
shallowlength[q]=randFloat(0.12,0.21);
}
//create rivers
log ("Creating rivers...");
//checking all the tiles
for (var ix = 0; ix < mapSize; ix++)
{
for (var iz = 0; iz < mapSize; iz++)
{
for (var m = 0; m < numPlayers+1; m++)
{
for (var n = 0; n < numPlayers+1; n++)
{
//checking if there is a river between those points
@@ -359,16 +338,11 @@ for (var ix = 0; ix < mapSize; ix++)
}
}
}
}
}
}
RMS.SetProgress(40);
// create bumps
createBumps(avoidClasses(clWater, 2, clPlayer, 20));
// create hills
if (randBool())
createHills([tMainTerrain, tCliff, tHill], avoidClasses(clPlayer, 20, clHill, 15, clWater, 2), clHill, scaleByMapSize(3, 15));
else
@@ -383,7 +357,6 @@ createForests(
RMS.SetProgress(50);
// create dirt patches
log("Creating dirt patches...");
createLayeredPatches(
[scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)],
@@ -392,7 +365,6 @@ createLayeredPatches(
avoidClasses(clWater, 3, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12)
);
// create grass patches
log("Creating grass patches...");
createPatches(
[scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)],
@@ -403,7 +375,6 @@ createPatches(
RMS.SetProgress(55);
log("Creating stone mines...");
// create stone quarries
createMines(
[
[new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)],
@@ -413,7 +384,6 @@ createMines(
);
log("Creating metal mines...");
// create large metal quarries
createMines(
[
[new SimpleObject(oMetalLarge, 1,1, 0,4)]
@@ -424,7 +394,6 @@ createMines(
RMS.SetProgress(65);
// create decoration
var planetm = 1;
if (currentBiome() == "tropic")
@@ -463,7 +432,6 @@ createDecoration
RMS.SetProgress(70);
// create animals
createFood
(
[
@@ -477,7 +445,6 @@ createFood
avoidClasses(clWater, 3, clForest, 0, clPlayer, 20, clHill, 1, clFood, 20)
);
// create fruits
createFood
(
[
@@ -489,7 +456,6 @@ createFood
avoidClasses(clWater, 3, clForest, 0, clPlayer, 20, clHill, 1, clFood, 10)
);
// create fish
createFood
(
[
@@ -503,12 +469,10 @@ createFood
RMS.SetProgress(85);
// create straggler trees
var types = [oTree1, oTree2, oTree4, oTree3]; // some variation
createStragglerTrees(types, avoidClasses(clWater, 5, clForest, 7, clHill, 1, clPlayer, 12, clMetal, 6, clRock, 6));
setWaterWaviness(3.0);
setWaterType("lake");
// Export map data
ExportMap();
@@ -413,7 +413,6 @@ function setHeight(x, z, height)
g_Map.setHeight(x, z, height);
}
/**
* Utility functions for classes
*/
@@ -1,7 +1,7 @@
/////////////////////////////////////////////////////////////////////////////////////////
// passageMaker
//
// Function for creating shallow water between two given points by changing the heiight of all tiles in
// Function for creating shallow water between two given points by changing the height of all tiles in
// the path with height less than or equal to "maxheight" to "height"
//
// x1,z1: Starting point of path
@@ -128,7 +128,6 @@ function rndRiver(f, seed)
return rndRa;
}
/////////////////////////////////////////////////////////////////////////////////////////
// createStartingPlayerEntities
//
@@ -354,7 +353,6 @@ function paintTileClassBasedOnHeight(minheight, maxheight, mode, tileclass)
}
}
function unPaintTileClassBasedOnHeight(minheight, maxheight, mode, tileclass)
{
var mSize = g_Map.size;
@@ -705,7 +703,6 @@ function createMountain(maxHeight, minRadius, maxRadius, numCircles, constraint,
else
circles.push([cx, cz, radius]);
for (var ix = sx; ix <= lx; ++ix)
{
for (var iz = sz; iz <= lz; ++ iz)
@@ -124,7 +124,6 @@ PathPlacer.prototype.place = function(constraint)
var pz2 = Math.round(nz2 + ndx * taperedWidth);
segments2.push(new PointXZ(px2, pz2));
}
var retVec = [];
@@ -257,7 +257,6 @@ ChainPlacer.prototype.place = function(constraint)
}
}
return failed > count * this.failFraction ? undefined : retVec;
};
@@ -60,7 +60,6 @@ RangeOp.prototype.get = function(start, end)
return ret;
};
//////////////////////////////////////////////////////////////////////
// TileClass
//
@@ -33,7 +33,6 @@
// ?Think of something to enable splitting walls into two walls so more complex walls can be build and roads can have branches/crossroads?
// ?Readjust placement angle for wall elements with bending when used in linear/circular walls by their bending?
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// WallElement class definition
//
@@ -442,7 +441,6 @@ function getWallLength(wall, style)
return length;
}
/////////////////////////////////////////////
// Define the different wall placer functions
/////////////////////////////////////////////
@@ -179,7 +179,6 @@ function createBase(player, walls = true)
addToClass(ix - 5, iz, g_TileClasses.player);
addToClass(ix, iz - 5, g_TileClasses.player);
// Create starting units
if (walls && g_MapInfo.mapSize > 192)
placeCivDefaultEntities(fx, fz, player.id);
else
@@ -17,7 +17,6 @@ const tLush = "desert_grass_a";
const tSLush = "desert_grass_a_sand";
const tSDry = "desert_plants_b";
// gaia entities
const oGrapeBush = "gaia/flora_bush_grapes";
const oCamel = "gaia/fauna_camel";
const oFish = "gaia/fauna_fish";
@@ -33,7 +32,6 @@ const oSDatePalm = "gaia/flora_tree_cretan_date_palm_short";
const oWood = "gaia/special_treasure_wood";
const oFood = "gaia/special_treasure_food_bin";
// decorative props
const aBush1 = "actor|props/flora/bush_desert_a.xml";
const aBush2 = "actor|props/flora/bush_desert_dry_a.xml";
const aBush3 = "actor|props/flora/bush_medit_sm_dry.xml";
@@ -46,16 +44,12 @@ const aLillies = "actor|props/flora/water_lillies.xml";
// terrain + entity (for painting)
const pForest = [tLush + TERRAIN_SEPARATOR + oDatePalm, tLush + TERRAIN_SEPARATOR + oSDatePalm, tLush];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clForest = createTileClass();
var clWater = createTileClass();
@@ -96,7 +90,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -114,7 +107,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tCityPlaza, tCity], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -174,7 +166,6 @@ RMS.SetProgress(30);
for (var i = 0; i < numPlayers; i++)
{
// create the oases
log("Creating oases...");
var oRadius = scaleByMapSize(16, 60);
placer = new ClumpPlacer(PI*oRadius*oRadius*0.185, 0.6, 0.15, 0, mapSize*(0.5 + 0.18*cos(playerAngle[i]) + scaleByMapSize(1, 4)*cos(playerAngle[i])/100), mapSize*(0.5 + 0.18*sin(playerAngle[i]) + scaleByMapSize(1, 4)*sin(playerAngle[i])/100));
@@ -183,7 +174,6 @@ for (var i = 0; i < numPlayers; i++)
createArea(placer, [painter, elevationPainter, paintClass(clWater)], null);
}
// create grass patches
log("Creating grass patches...");
var sizes = [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)];
for (var i = 0; i < sizes.length; i++)
@@ -203,7 +193,6 @@ for (var i = 0; i < sizes.length; i++)
RMS.SetProgress(55);
// create dirt patches
log("Creating dirt patches...");
var sizes = [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)];
for (var i = 0; i < sizes.length; i++)
@@ -224,14 +213,13 @@ for (var i = 0; i < sizes.length; i++)
RMS.SetProgress(60);
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clForest, 1, clPlayer, 26, clRock, 10, clWater, 1),
2*scaleByMapSize(4,16), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clForest, 1, clPlayer, 26, clRock, 10, clWater, 1),
@@ -239,14 +227,12 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clForest, 1, clPlayer, 26, clMetal, 10, clRock, 5, clWater, 1),
2*scaleByMapSize(4,16), 100
);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aDecorativeRock, 1,3, 0,1)],
@@ -258,7 +244,6 @@ createObjectGroupsDeprecated(
scaleByMapSize(16, 262), 50
);
// create shrubs
log("Creating shrubs...");
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)],
@@ -270,8 +255,7 @@ createObjectGroupsDeprecated(
scaleByMapSize(10, 100), 50
);
// create small decorative rocks on mines
log("Creating small decorative rocks...");
log("Creating small decorative rocks on mines...");
group = new SimpleGroup(
[new SimpleObject(aDecorativeRock, 1,3, 0,1)],
true
@@ -292,7 +276,6 @@ createObjectGroupsDeprecated(
5*scaleByMapSize(16, 262), 50
);
// create gazelles
log("Creating gazelles...");
group = new SimpleGroup([new SimpleObject(oGazelle, 5,7, 0,4)], true, clFood);
createObjectGroupsDeprecated(group, 0,
@@ -300,7 +283,6 @@ createObjectGroupsDeprecated(group, 0,
6*scaleByMapSize(5,20), 50
);
// create goats
log("Creating goats...");
group = new SimpleGroup([new SimpleObject(oGoat, 2,4, 0,3)], true, clFood);
createObjectGroupsDeprecated(group, 0,
@@ -308,7 +290,6 @@ createObjectGroupsDeprecated(group, 0,
5*scaleByMapSize(5,20), 50
);
// create treasures
log("Creating treasures...");
group = new SimpleGroup([new SimpleObject(oFood, 1,1, 0,2)], true, clTreasure);
createObjectGroupsDeprecated(group, 0,
@@ -322,7 +303,6 @@ createObjectGroupsDeprecated(group, 0,
3*scaleByMapSize(5,20), 50
);
// create camels
log("Creating camels...");
group = new SimpleGroup([new SimpleObject(oCamel, 2,4, 0,2)], true, clFood);
createObjectGroupsDeprecated(group, 0,
@@ -330,7 +310,6 @@ createObjectGroupsDeprecated(group, 0,
5*scaleByMapSize(5,20), 50
);
// Set environment
setSkySet("sunny");
setSunColor(0.746, 0.718, 0.539);
setWaterColor(0, 0.227, 0.843);
@@ -339,5 +318,4 @@ setWaterWaviness(1.0);
setWaterType("clap");
setWaterMurkiness(0.5);
// Export map data
ExportMap();
@@ -11,7 +11,6 @@ const tCityTiles = "savanna_tile_a";
const tShore = "savanna_riparian_bank";
const tWater = "savanna_riparian_wet";
// gaia entities
const oBaobab = "gaia/flora_tree_baobab";
const oBerryBush = "gaia/flora_bush_berry";
const oGazelle = "gaia/fauna_gazelle";
@@ -25,19 +24,15 @@ const oZebra = "gaia/fauna_zebra";
const oStoneSmall = "gaia/geology_stone_savanna_small";
const oMetalLarge = "gaia/geology_metal_savanna_slabs";
// decorative props
const aBush = "actor|props/flora/bush_medit_sm_dry.xml";
const aRock = "actor|geology/stone_savanna_med.xml";
log("Initializing map...");
InitMap();
var numPlayers = getNumPlayers();
var mapSize = getMapSize();
var mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -57,8 +52,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -77,7 +70,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -93,7 +85,6 @@ for (var i = 0; i < numPlayers; i++)
addToClass(ix-5, iz, clPlayer);
addToClass(ix, iz-5, clPlayer);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -153,7 +144,6 @@ for (var i = 0; i < numPlayers; i++)
RMS.SetProgress(20);
// create big patches
log("Creating big patches...");
var patches = [tGrass2, tGrass3];
for (var i = 0; i < patches.length; i++)
@@ -168,7 +158,6 @@ for (var i = 0; i < patches.length; i++)
);
}
// create small patches
log("Creating small patches...");
var patches = [tDirt1, tDirt2, tDirt3];
var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)];
@@ -187,7 +176,6 @@ for (var i = 0; i < sizes.length; i++)
}
}
// create water holes
log("Creating water holes...");
placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), floor(scaleByMapSize(20, 60)), 1);
var terrainPainter = new LayeredPainter(
@@ -202,7 +190,6 @@ createAreas(
scaleByMapSize(1, 3)
);
RMS.SetProgress(55);
var playerConstraint = new AvoidTileClassConstraint(clPlayer, 30);
@@ -210,7 +197,6 @@ var minesConstraint = new AvoidTileClassConstraint(clRock, 25);
var waterConstraint = new AvoidTileClassConstraint(clWater, 10);
log("Creating stone mines...");
// create stone mines
for (var i = 0; i < scaleByMapSize(12,30); ++i)
{
var mX = randIntExclusive(0, mapSize);
@@ -223,7 +209,6 @@ for (var i = 0; i < scaleByMapSize(12,30); ++i)
}
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clPlayer, 20, clMetal, 10, clRock, 8, clWater, 4),
@@ -232,7 +217,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(65);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRock, 1,3, 0,3)],
@@ -246,7 +230,6 @@ createObjectGroupsDeprecated(
RMS.SetProgress(70);
// create gazelle
log("Creating gazelle...");
group = new SimpleGroup(
[new SimpleObject(oGazelle, 5,7, 0,4)],
@@ -257,7 +240,6 @@ createObjectGroupsDeprecated(group, 0,
scaleByMapSize(4,12), 50
);
// create zebra
log("Creating zebra...");
group = new SimpleGroup(
[new SimpleObject(oZebra, 5,7, 0,4)],
@@ -268,7 +250,6 @@ createObjectGroupsDeprecated(group, 0,
scaleByMapSize(4,12), 50
);
// create giraffe
log("Creating giraffe...");
group = new SimpleGroup(
[new SimpleObject(oGiraffe, 2,4, 0,4), new SimpleObject(oGiraffeInfant, 0,2, 0,4)],
@@ -279,7 +260,6 @@ createObjectGroupsDeprecated(group, 0,
scaleByMapSize(4,12), 50
);
// create elephants
log("Creating elephants...");
group = new SimpleGroup(
[new SimpleObject(oElephant, 2,4, 0,4), new SimpleObject(oElephantInfant, 0,2, 0,4)],
@@ -290,7 +270,6 @@ createObjectGroupsDeprecated(group, 0,
scaleByMapSize(4,12), 50
);
// create lions
log("Creating lions...");
group = new SimpleGroup(
[new SimpleObject(oLion, 0,1, 0,4), new SimpleObject(oLioness, 2,3, 0,4)],
@@ -301,7 +280,6 @@ createObjectGroupsDeprecated(group, 0,
scaleByMapSize(4,12), 50
);
// create berry bush
log("Creating berry bush...");
group = new SimpleGroup(
[new SimpleObject(oBerryBush, 5,7, 0,4)],
@@ -314,8 +292,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(85);
// create straggler trees
log("Creating straggler trees...");
var num = scaleByMapSize(70, 500);
group = new SimpleGroup(
@@ -327,8 +303,6 @@ createObjectGroupsDeprecated(group, 0,
num
);
// create large grass tufts
log("Creating large grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aBush, 2,4, 0,1.8, -PI/8,PI/8)]
@@ -14,7 +14,6 @@ const tShoreBlend = "savanna_riparian";
const tShore = "savanna_riparian_bank";
const tWater = "savanna_riparian_wet";
// gaia entities
const oBaobab = "gaia/flora_tree_baobab";
const oFig = "gaia/flora_tree_fig";
const oBerryBush = "gaia/flora_bush_berry";
@@ -28,7 +27,6 @@ const oStoneLarge = "gaia/geology_stonemine_desert_quarry";
const oStoneSmall = "gaia/geology_stone_savanna_small";
const oMetalLarge = "gaia/geology_metal_savanna_slabs";
// decorative props
const aGrass = "actor|props/flora/grass_savanna.xml";
const aGrassShort = "actor|props/flora/grass_medit_field.xml";
const aReeds = "actor|props/flora/reeds_pond_lush_a.xml";
@@ -40,16 +38,12 @@ const aBushSmall = "actor|props/flora/bush_dry_a.xml";
const pForest = [tForestFloor + TERRAIN_SEPARATOR + oBaobab, tForestFloor + TERRAIN_SEPARATOR + oBaobab, tForestFloor];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -70,8 +64,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -89,7 +81,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -111,7 +102,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -169,7 +159,6 @@ for (var i = 0; i < numPlayers; i++)
RMS.SetProgress(20);
//create rivers
log ("Creating rivers...");
for (var m = 0; m < numPlayers; m++)
{
@@ -195,7 +184,6 @@ for (var m = 0; m < numPlayers; m++)
createArea(placer, [painter, elevationPainter, paintClass(clWater)], avoidClasses(clPlayer, 5));
}
for (var i = 0; i < numPlayers; i++)
{
if (i+1 == numPlayers)
@@ -207,7 +195,6 @@ for (var i = 0; i < numPlayers; i++)
round(fractionToTiles(playerZ[0])),
6, -2, -2, 4, clShallows, undefined, -4);
// create animals in shallows
log("Creating animals in shallows...");
var group = new SimpleGroup(
[new SimpleObject(oElephant, 2,3, 0,4)],
@@ -231,7 +218,6 @@ for (var i = 0; i < numPlayers; i++)
fractionToTiles(playerZ[i+1]),
6, -2, -2, 4, clShallows, undefined, -4);
// create animals in shallows
log("Creating animals in shallows...");
var group = new SimpleGroup(
[new SimpleObject(oElephant, 2,3, 0,4)],
@@ -250,8 +236,6 @@ for (var i = 0; i < numPlayers; i++)
}
paintTerrainBasedOnHeight(-6, 2, 1, tWater);
// create bumps
log("Creating bumps...");
placer = new ClumpPlacer(scaleByMapSize(20, 50), 0.3, 0.06, 1);
painter = new SmoothElevationPainter(ELEVATION_MODIFY, 2, 2);
@@ -262,7 +246,6 @@ createAreas(
scaleByMapSize(100, 200)
);
// create hills
log("Creating hills...");
placer = new ClumpPlacer(scaleByMapSize(20, 150), 0.2, 0.1, 1);
terrainPainter = new LayeredPainter(
@@ -277,7 +260,6 @@ createAreas(
scaleByMapSize(1, 4) * numPlayers
);
// calculate desired number of trees for map (based on size)
var MIN_TREES = 160;
var MAX_TREES = 900;
@@ -287,13 +269,11 @@ var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES);
var numForest = totalTrees * P_FOREST;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create forests
log("Creating forests...");
var types = [
[[tForestFloor, tGrass, pForest], [tForestFloor, pForest]]
]; // some variation
var size = numForest / (0.5 * scaleByMapSize(2,8) * numPlayers);
var num = floor(size / types.length);
for (var i = 0; i < types.length; ++i)
@@ -313,7 +293,6 @@ for (var i = 0; i < types.length; ++i)
RMS.SetProgress(50);
// create dirt patches
log("Creating dirt patches...");
var sizes = [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)];
for (var i = 0; i < sizes.length; i++)
@@ -331,7 +310,6 @@ for (var i = 0; i < sizes.length; i++)
);
}
// create grass patches
log("Creating grass patches...");
var sizes = [scaleByMapSize(2, 32), scaleByMapSize(3, 48), scaleByMapSize(5, 80)];
for (var i = 0; i < sizes.length; i++)
@@ -347,16 +325,14 @@ for (var i = 0; i < sizes.length; i++)
}
RMS.SetProgress(55);
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clRock, 10, clHill, 1),
scaleByMapSize(4,16), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clRock, 10, clHill, 1),
@@ -364,7 +340,6 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 1),
@@ -373,7 +348,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(65);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockMedium, 1,3, 0,1)],
@@ -385,8 +359,6 @@ createObjectGroupsDeprecated(
scaleByMapSize(16, 262), 50
);
// create large decorative rocks
log("Creating large decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockLarge, 1,2, 0,1), new SimpleObject(aRockMedium, 1,3, 0,2)],
@@ -400,7 +372,6 @@ createObjectGroupsDeprecated(
RMS.SetProgress(70);
// create wildebeest
log("Creating wildebeest...");
group = new SimpleGroup(
[new SimpleObject(oWildebeest, 5,7, 0,4)],
@@ -413,7 +384,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(75);
// create gazelle
log("Creating gazelle...");
group = new SimpleGroup(
[new SimpleObject(oGazelle, 2,3, 0,2)],
@@ -424,7 +394,6 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
// create elephant
log("Creating elephant...");
group = new SimpleGroup(
[new SimpleObject(oElephant, 2,3, 0,2)],
@@ -435,7 +404,6 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
// create giraffe
log("Creating giraffe...");
group = new SimpleGroup(
[new SimpleObject(oGiraffe, 2,3, 0,2)],
@@ -446,7 +414,6 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
// create zebra
log("Creating zebra...");
group = new SimpleGroup(
[new SimpleObject(oZebra, 2,3, 0,2)],
@@ -457,7 +424,6 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
// create fish
log("Creating fish...");
group = new SimpleGroup(
[new SimpleObject(oFish, 2,3, 0,2)],
@@ -468,7 +434,6 @@ createObjectGroupsDeprecated(group, 0,
25 * numPlayers, 60
);
// create berry bush
log("Creating berry bush...");
group = new SimpleGroup(
[new SimpleObject(oBerryBush, 5,7, 0,4)],
@@ -481,7 +446,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(85);
// create straggler trees
log("Creating straggler trees...");
var types = [oBaobab, oBaobab, oBaobab, oFig]; // some variation
var num = floor(numStragglers / types.length);
@@ -498,7 +462,6 @@ for (var i = 0; i < types.length; ++i)
}
var planetm = 4;
//create small grass tufts
log("Creating small grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 1,2, 0,1, -PI/8,PI/8)]
@@ -510,7 +473,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(90);
// create large grass tufts
log("Creating large grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrass, 2,4, 0,1.8, -PI/8,PI/8), new SimpleObject(aGrassShort, 3,6, 1.2,2.5, -PI/8,PI/8)]
@@ -522,7 +484,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(95);
// create bushes
log("Creating bushes...");
group = new SimpleGroup(
[new SimpleObject(aBushMedium, 1,2, 0,2), new SimpleObject(aBushSmall, 2,4, 0,2)]
@@ -532,7 +493,6 @@ createObjectGroupsDeprecated(group, 0,
planetm * scaleByMapSize(13, 200), 50
);
setSkySet("sunny");
setSunRotation(randFloat(0, TWO_PI));
@@ -543,6 +503,4 @@ setWaterMurkiness(0.87);
setWaterWaviness(0.5);
setWaterType("clap");
// Export map data
ExportMap();
@@ -5,33 +5,22 @@ log('Initializing map...');
InitMap();
////////////////
//
// Initializing
//
////////////////
//sky
setSkySet("fog");
setFogFactor(0.35);
setFogThickness(0.19);
// water
setWaterColor(0.501961, 0.501961, 0.501961);
setWaterTint(0.25098, 0.501961, 0.501961);
setWaterWaviness(0.5);
setWaterType("clap");
setWaterMurkiness(0.75);
// post processing
setPPSaturation(0.37);
setPPContrast(0.4);
setPPBrightness(0.4);
setPPEffect("hdr");
setPPBloom(0.4);
// Setup tile classes
var clPlayer = createTileClass();
var clPath = createTileClass();
var clHill = createTileClass();
@@ -42,7 +31,6 @@ var clFood = createTileClass();
var clBaseResource = createTileClass();
var clOpen = createTileClass();
// Setup Templates
var templateStone = 'gaia/geology_stone_alpine_a';
var templateStoneMine = 'gaia/geology_stonemine_alpine_quarry';
var templateMetal = 'actor|geology/stone_granite_med.xml';
@@ -58,8 +46,6 @@ var aBushSmall = 'actor|props/flora/bush_medit_sm.xml';
var aReeds = 'actor|props/flora/reeds_pond_lush_b.xml';
var oFish = "gaia/fauna_fish";
// Setup terrain
var terrainWood = ['alpine_forrestfloor|gaia/flora_tree_oak', 'alpine_forrestfloor|gaia/flora_tree_pine'];
var terrainWoodBorder = ['new_alpine_grass_mossy|gaia/flora_tree_oak', 'alpine_forrestfloor|gaia/flora_tree_pine',
@@ -109,14 +95,12 @@ var terrainHillBorder = ['temp_highlands', 'temp_highlands', 'temp_highlands', '
var tWater = ['dirt_brown_d'];
var tWaterBorder = ['dirt_brown_d'];
// Setup map
var mapSize = getMapSize();
var mapRadius = mapSize/2;
var playableMapRadius = mapRadius - 5;
var mapCenterX = mapRadius;
var mapCenterZ = mapRadius;
// Setup players and bases
var numPlayers = getNumPlayers();
var baseRadius = 15;
var minPlayerRadius = min(mapRadius-1.5*baseRadius, 5*mapRadius/8);
@@ -129,14 +113,11 @@ var playerAngleStart = randFloat(0, 2*PI);
var playerAngleAddAvrg = 2*PI / numPlayers;
var playerAngleMaxOff = playerAngleAddAvrg/4;
// Setup paths
var pathSucsessRadius = baseRadius/2;
var pathAngleOff = PI/2;
var pathWidth = 10; // This is not really the path's thickness in tiles but the number of tiles in the clumbs of the path
// Setup additional resources
var resourceRadius = 2*mapRadius/3; // 3*mapRadius/8;
//var resourcePerPlayer = [templateStone, templateMetalMine];
var resourceRadius = 2/3 * mapRadius;
// Setup woods
// For large maps there are memory errors with too many trees. A density of 256*192/mapArea works with 0 players.
@@ -144,7 +125,6 @@ var resourceRadius = 2*mapRadius/3; // 3*mapRadius/8;
var maxTreeDensity = min(256 * (192 + 8 * numPlayers) / (mapSize * mapSize), 1); // Has to be tweeked but works ok
var bushChance = 1/3; // 1 means 50% chance in deepest wood, 0.5 means 25% chance in deepest wood
////////////////
//
// Some general functions
@@ -170,7 +150,6 @@ HeightPlacer.prototype.place = function (constraint) {
return ret;
};
////////////////
// Set height limits and water level by map size
////////////////
@@ -236,8 +215,6 @@ for (var i=0; i < numPlayers; i++)
playerStartLocX[i] = x;
playerStartLocZ[i] = z;
// Place starting entities
rectangularSmoothToHeight({"x": x,"y": z} , 20, 20, playerHeight, 0.8);
placeCivDefaultEntities(x, z, i+1, { 'iberWall': false });
@@ -281,7 +258,6 @@ paintTileClassBasedOnHeight(heightRange.min, heighLimits[2], 1, clWater);
RMS.SetProgress(60);
// Place paths
log("Placing paths...");
var doublePaths = true;
@@ -365,7 +341,6 @@ for (var i = 0; i < maxI; i++)
RMS.SetProgress(75);
//create general decoration
log("Creating decoration...");
createDecoration
(
@@ -387,7 +362,6 @@ createDecoration
RMS.SetProgress(80);
//create fish
log("Growing fish...");
createFood
(
@@ -402,7 +376,6 @@ createFood
RMS.SetProgress(85);
// create reeds
log("Planting reeds...");
var types = [aReeds]; // some variation
for (var i = 0; i < types.length; ++i)
@@ -416,7 +389,6 @@ for (var i = 0; i < types.length; ++i)
RMS.SetProgress(90);
// place trees
log("Planting trees...");
for (var x = 0; x < mapSize; x++)
{
@@ -19,7 +19,6 @@ const tShoreBlend = g_Terrains.shoreBlend;
const tShore = g_Terrains.shore;
const tWater = g_Terrains.water;
// gaia entities
const oTree1 = g_Gaia.tree1;
const oTree2 = g_Gaia.tree2;
const oTree3 = g_Gaia.tree3;
@@ -33,7 +32,6 @@ const oStoneLarge = g_Gaia.stoneLarge;
const oStoneSmall = g_Gaia.stoneSmall;
const oMetalLarge = g_Gaia.metalLarge;
// decorative props
const aGrass = g_Decoratives.grass;
const aGrassShort = g_Decoratives.grassShort;
const aReeds = g_Decoratives.reeds;
@@ -46,8 +44,6 @@ const aBushSmall = g_Decoratives.bushSmall;
const pForest1 = [tForestFloor2 + TERRAIN_SEPARATOR + oTree1, tForestFloor2 + TERRAIN_SEPARATOR + oTree2, tForestFloor2];
const pForest2 = [tForestFloor1 + TERRAIN_SEPARATOR + oTree4, tForestFloor1 + TERRAIN_SEPARATOR + oTree5, tForestFloor1];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
@@ -56,8 +52,6 @@ const mapArea = mapSize*mapSize;
log(mapSize);
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -93,8 +87,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -602,8 +594,6 @@ if ((mapSize == 128)||(mapSize == 192)){
cliffRadius // blend radius
);
createArea(placer, [terrainPainter, elevationPainter, paintClass(clLand)], null);
}
}
@@ -780,10 +770,7 @@ if (mapSize == 256){
var sX = 0;
var sZ = 0;
//centeral island id numPlayers
for (var e = 0; e <numPlayers; e++)
{
if (e+1<numPlayers)
@@ -1147,10 +1134,7 @@ if (mapSize == 320){
var sX = 0;
var sZ = 0;
//centeral island id numPlayers
for (var e = 0; e <numPlayers; e++)
{
if (e+1<numPlayers)
@@ -1398,10 +1382,7 @@ if (mapSize > 383){
);
createArea(placer, [terrainPainter, elevationPainter, paintClass(clLand)], null);
//centeral island id numPlayers
for (var e = 0; e <numPlayers; e++)
{
isConnected[e+2*numPlayers][e] = 1;
@@ -1508,16 +1489,11 @@ for (var m = 0; m < numIslands; m++){
}
}
for (var i = 0; i < numPlayers; i++)
{
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
// get the x and z in tiles
var fx = fractionToTiles(playerX[i]);
var fz = fractionToTiles(playerZ[i]);
@@ -1541,14 +1517,12 @@ for (var i = 0; i < numPlayers; i++)
);
createArea(placer, [terrainPainter, elevationPainter, paintClass(clPlayer)], null);
// create the city patch
var cityRadius = radius/3;
placer = new ClumpPlacer(PI*cityRadius*cityRadius, 0.6, 0.3, 10, ix, iz);
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id, { 'iberWall': 'towers' });
placeDefaultChicken(fx, fz, clBaseResource);
@@ -1567,9 +1541,8 @@ for (var i = 0; i < numPlayers; i++)
// create metal mine
var mAngle = bbAngle;
while(abs(mAngle - bbAngle) < PI/3)
{
mAngle = randFloat(0, TWO_PI);
}
var mDist = radius - 4;
var mX = round(fx + mDist * cos(mAngle));
var mZ = round(fz + mDist * sin(mAngle));
@@ -1608,13 +1581,9 @@ RMS.SetProgress(30);
//Create connectors
for (var ix = 0; ix < mapSize; ix++)
{
for (var iz = 0; iz < mapSize; iz++)
{
for (var m = 0; m < numIslands; m++)
{
for (var n = 0; n < numIslands; n++)
{
if(isConnected[m][n] == 1)
{
var a = IslandZ[m]-IslandZ[n];
@@ -1625,16 +1594,13 @@ for (var ix = 0; ix < mapSize; ix++)
var y = iz-(b*k);
if((dis < 5)&&(y <= Math.max(IslandZ[m],IslandZ[n]))&&(y >= Math.min(IslandZ[m],IslandZ[n])))
{
if (dis < 3){
if (dis < 3)
{
var h = 20;
if (dis < 2)
{
var t = tHill;
}
else
{
var t = tCliff;
}
addToClass(ix, iz, clLand);
}
else
@@ -1643,6 +1609,7 @@ for (var ix = 0; ix < mapSize; ix++)
var t = tCliff;
addToClass(ix, iz, clLand);
}
if (getHeight(ix, iz)<h)
{
placeTerrain(ix, iz, t);
@@ -1650,10 +1617,6 @@ for (var ix = 0; ix < mapSize; ix++)
}
}
}
}
}
}
}
// calculate desired number of trees for map (based on size)
if (currentBiome() == "savanna")
@@ -1678,7 +1641,6 @@ var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES);
var numForest = totalTrees * P_FOREST;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create forests
log("Creating forests...");
var types = [
[[tForestFloor2, tMainTerrain, pForest1], [tForestFloor2, pForest1]],
@@ -1705,19 +1667,16 @@ for (var i = 0; i < types.length; ++i)
num
);
}
RMS.SetProgress(55);
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 10, clRock, 10, clHill, 1), stayClasses(clLand, 5)],
5*scaleByMapSize(4,16), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 10, clRock, 10, clHill, 1), stayClasses(clLand, 5)],
@@ -1725,7 +1684,6 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 10, clMetal, 10, clRock, 5, clHill, 1), stayClasses(clLand, 5)],
@@ -1733,7 +1691,6 @@ createObjectGroupsDeprecated(group, 0,
);
RMS.SetProgress(65);
// create dirt patches
log("Creating dirt patches...");
var sizes = [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)];
for (var i = 0; i < sizes.length; i++)
@@ -1751,7 +1708,6 @@ for (var i = 0; i < sizes.length; i++)
);
}
// create grass patches
log("Creating grass patches...");
var sizes = [scaleByMapSize(2, 32), scaleByMapSize(3, 48), scaleByMapSize(5, 80)];
for (var i = 0; i < sizes.length; i++)
@@ -1766,7 +1722,6 @@ for (var i = 0; i < sizes.length; i++)
);
}
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockMedium, 1,3, 0,1)],
@@ -1778,8 +1733,6 @@ createObjectGroupsDeprecated(
scaleByMapSize(16, 262), 50
);
// create large decorative rocks
log("Creating large decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockLarge, 1,2, 0,1), new SimpleObject(aRockMedium, 1,3, 0,2)],
@@ -1793,7 +1746,6 @@ createObjectGroupsDeprecated(
RMS.SetProgress(70);
// create deer
log("Creating deer...");
group = new SimpleGroup(
[new SimpleObject(oMainHuntableAnimal, 5,7, 0,4)],
@@ -1806,7 +1758,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(75);
// create sheep
log("Creating sheep...");
group = new SimpleGroup(
[new SimpleObject(oSecondaryHuntableAnimal, 2,3, 0,2)],
@@ -1817,7 +1768,6 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
// create fruits
log("Creating fruits...");
group = new SimpleGroup(
[new SimpleObject(oFruitBush, 5,7, 0,4)],
@@ -1827,11 +1777,8 @@ createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 0, clPlayer, 10, clHill, 1, clFood, 20), stayClasses(clLand, 4)],
3 * numPlayers, 50
);
RMS.SetProgress(85);
// create straggler trees
log("Creating straggler trees...");
var types = [oTree1, oTree2, oTree4, oTree3]; // some variation
var num = floor(numStragglers / types.length);
@@ -1851,7 +1798,6 @@ var planetm = 1;
if (currentBiome() == "tropic")
planetm = 8;
//create small grass tufts
log("Creating small grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 1,2, 0,1, -PI/8,PI/8)]
@@ -1863,7 +1809,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(90);
// create large grass tufts
log("Creating large grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrass, 2,4, 0,1.8, -PI/8,PI/8), new SimpleObject(aGrassShort, 3,6, 1.2,2.5, -PI/8,PI/8)]
@@ -1872,10 +1817,8 @@ createObjectGroupsDeprecated(group, 0,
[avoidClasses(clHill, 2, clPlayer, 2, clDirt, 1, clForest, 0), stayClasses(clLand, 4)],
planetm * scaleByMapSize(13, 200)
);
RMS.SetProgress(95);
// create bushes
log("Creating bushes...");
group = new SimpleGroup(
[new SimpleObject(aBushMedium, 1,2, 0,2), new SimpleObject(aBushSmall, 2,4, 0,2)]
@@ -1889,5 +1832,4 @@ setSkySet(pickRandom(["cirrus", "cumulus", "sunny"]));
setSunRotation(randFloat(0, TWO_PI));
setSunElevation(randFloat(PI/ 5, PI / 3));
// Export map data
ExportMap();
@@ -13,14 +13,12 @@ const tTier2Terrain = g_Terrains.tier2Terrain;
const tTier3Terrain = g_Terrains.tier3Terrain;
const tTier4Terrain = g_Terrains.tier4Terrain;
// gaia entities
const oTree1 = g_Gaia.tree1;
const oTree2 = g_Gaia.tree2;
const oTree3 = g_Gaia.tree3;
const oTree4 = g_Gaia.tree4;
const oTree5 = g_Gaia.tree5;
// decorative props
const aGrass = g_Decoratives.grass;
const aGrassShort = g_Decoratives.grassShort;
const aRockLarge = g_Decoratives.rockLarge;
@@ -43,7 +41,6 @@ const triggerPointTreasures = [
"special/trigger_point_D"
];
log("Initializing map...");
InitMap();
var numPlayers = getNumPlayers();
+1 -31
View File
@@ -13,7 +13,6 @@ const tDirt = ["desert_dirt_rough", "desert_dirt_rough_2"];
const tRoad = "desert_shore_stones";;
const tRoadWild = "desert_grass_a_stones";;
// gaia entities
const oTamarix = "gaia/flora_tree_tamarix";
const oPalm = "gaia/flora_tree_date_palm";
const oPine = "gaia/flora_tree_aleppo_pine";
@@ -26,7 +25,6 @@ const oStoneLarge = "gaia/geology_stonemine_desert_quarry";
const oStoneSmall = "gaia/geology_stone_desert_small";
const oMetalLarge = "gaia/geology_metal_desert_slabs";
// decorative props
const aFlower1 = "actor|props/flora/decals_flowers_daisies.xml";
const aWaterFlower = "actor|props/flora/water_lillies.xml";
const aReedsA = "actor|props/flora/reeds_pond_lush_a.xml";
@@ -40,16 +38,12 @@ const aSand = "actor|particle/blowing_sand.xml";
const pForestP = [tForestFloor2 + TERRAIN_SEPARATOR + oPalm, tForestFloor2];
const pForestT = [tForestFloor1 + TERRAIN_SEPARATOR + oTamarix,tForestFloor2];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -68,8 +62,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -115,7 +107,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [3]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -171,7 +162,6 @@ for (var i = 0; i < numPlayers; i++)
RMS.SetProgress(10);
// create bumps
log("Creating bumps...");
placer = new ClumpPlacer(scaleByMapSize(20, 50), 0.3, 0.06, 1);
painter = new SmoothElevationPainter(ELEVATION_MODIFY, 2, 2);
@@ -182,7 +172,6 @@ createAreas(
scaleByMapSize(300, 800)
);
// create hills
log("Creating hills...");
placer = new ChainPlacer(1, floor(scaleByMapSize(4, 6)), floor(scaleByMapSize(16, 40)), 0.5);
var terrainPainter = new LayeredPainter(
@@ -208,7 +197,6 @@ var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES);
var numForest = totalTrees * P_FOREST;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create forests
log("Creating forests...");
var types = [
[[tMainDirt, tForestFloor2, pForestP], [tForestFloor2, pForestP]],
@@ -233,7 +221,6 @@ for (var i = 0; i < types.length; ++i)
RMS.SetProgress(40);
// create dirt patches
log("Creating dirt patches...");
var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)];
for (var i = 0; i < sizes.length; i++)
@@ -252,7 +239,6 @@ for (var i = 0; i < sizes.length; i++)
}
RMS.SetProgress(60);
// create big patches
log("Creating big patches...");
var sizes = [scaleByMapSize(6, 30), scaleByMapSize(10, 50), scaleByMapSize(16, 70)];
for (var i = 0; i < sizes.length; i++)
@@ -272,14 +258,13 @@ for (var i = 0; i < sizes.length; i++)
RMS.SetProgress(70);
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4), new RandomObject(aBushes, 2,4, 0,2)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 10, clRock, 10, clHill, 1, clGrass, 1)],
scaleByMapSize(2,8), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3), new RandomObject(aBushes, 2,4, 0,2)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 10, clRock, 10, clHill, 1, clGrass, 1)],
@@ -287,14 +272,12 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4), new RandomObject(aBushes, 2,4, 0,2)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 10, clMetal, 10, clRock, 5, clHill, 1, clGrass, 1)],
scaleByMapSize(2,8), 100
);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRock, 1,3, 0,1)],
@@ -306,8 +289,6 @@ createObjectGroupsDeprecated(
scaleByMapSize(16, 262), 50
);
//create bushes
log("Creating bushes...");
group = new SimpleGroup(
[new SimpleObject(aBushB, 1,2, 0,1), new SimpleObject(aBushA, 1,3, 0,2)],
@@ -318,10 +299,8 @@ createObjectGroupsDeprecated(
avoidClasses(clForest, 0, clPlayer, 0, clHill, 0),
scaleByMapSize(50, 500), 50
);
RMS.SetProgress(80);
// create gazelle
log("Creating gazelle...");
group = new SimpleGroup(
[new SimpleObject(oGazelle, 5,7, 0,4)],
@@ -332,7 +311,6 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
// create lions
log("Creating lions...");
group = new SimpleGroup(
[new SimpleObject(oLion, 2,3, 0,2)],
@@ -343,7 +321,6 @@ createObjectGroupsDeprecated(group, 0,
3 * numPlayers, 50
);
// create camels
log("Creating camels...");
group = new SimpleGroup(
[new SimpleObject(oCamel, 2,3, 0,2)],
@@ -353,12 +330,8 @@ createObjectGroupsDeprecated(group, 0,
avoidClasses(clForest, 0, clPlayer, 1, clHill, 1, clFood, 20, clGrass, 2),
3 * numPlayers, 50
);
RMS.SetProgress(85);
// create straggler trees
log("Creating straggler trees...");
var types = [oPalm, oTamarix, oPine]; // some variation
var num = floor(numStragglers / types.length);
@@ -374,7 +347,6 @@ for (var i = 0; i < types.length; ++i)
);
}
// create inner straggler trees
log("Creating straggler trees...");
var types = [oPalm, oTamarix, oPine]; // some variation
var num = floor(numStragglers / types.length);
@@ -390,7 +362,6 @@ for (var i = 0; i < types.length; ++i)
);
}
// Set environment
setSkySet("sunny");
setSunElevation(PI / 8);
setSunRotation(randFloat(0, TWO_PI));
@@ -408,5 +379,4 @@ setPPContrast(0.65);
setPPSaturation(0.42);
setPPBloom(0.6);
// Export map data
ExportMap();
@@ -16,7 +16,7 @@ var tShore = "desert_sand_wet";
var tLush = "desert_grass_a";
var tSLush = "desert_grass_a_sand";
var tSDry = "desert_plants_b";
// gaia entities
var oBerryBush = "gaia/flora_bush_berry";
var oCamel = "gaia/fauna_camel";
var oFish = "gaia/fauna_fish";
@@ -34,7 +34,6 @@ var ePyramid = "other/pyramid_minor";
var oWood = "gaia/special_treasure_wood";
var oFood = "gaia/special_treasure_food_bin";
// decorative props
var aBush1 = "actor|props/flora/bush_desert_a.xml";
var aBush2 = "actor|props/flora/bush_desert_dry_a.xml";
var aBush3 = "actor|props/flora/bush_medit_sm_dry.xml";
@@ -48,24 +47,16 @@ var aLillies = "actor|props/flora/water_lillies.xml";
var pForest = [tForestFloor + TERRAIN_SEPARATOR + oDatePalm, tForestFloor + TERRAIN_SEPARATOR + oSDatePalm, tForestFloor];
var pForestOasis = [tGrass + TERRAIN_SEPARATOR + oDatePalm, tGrass + TERRAIN_SEPARATOR + oSDatePalm, tGrass];
log("Initializing map...");
InitMap();
var mapSize = getMapSize();
if (mapSize < 256)
{
var aPlants = "actor|props/flora/grass_tropical.xml";
}
else
{
var aPlants = "actor|props/flora/grass_tropic_field_tall.xml";
}
var aPlants = mapSize < 256 ?
"actor|props/flora/grass_tropical.xml" :
"actor|props/flora/grass_tropic_field_tall.xml";
var numPlayers = getNumPlayers();
var mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clForest = createTileClass();
var clWater = createTileClass();
@@ -84,13 +75,10 @@ var clTreasure = createTileClass();
// randomize player order
var playerIDs = [];
for (var i = 0; i < numPlayers; i++)
{
playerIDs.push(i+1);
}
playerIDs = primeSortPlayers(sortPlayers(playerIDs));
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -99,19 +87,14 @@ var iop = 0;
for (var i = 0; i < numPlayers; i++)
{
iop = i - 1;
if (!(numPlayers%2)){
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);
@@ -122,7 +105,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(15,25);
var cliffRadius = 2;
var elevation = 20;
@@ -140,7 +122,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tCityPlaza, tCity], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
@@ -159,9 +140,7 @@ for (var i = 0; i < numPlayers; i++)
// create metal mine
var mAngle = bbAngle;
while(abs(mAngle - bbAngle) < PI/3)
{
mAngle = randFloat(0, TWO_PI);
}
var mDist = radius - 4;
var mX = round(fx + mDist * cos(mAngle));
var mZ = round(fz + mDist * sin(mAngle));
@@ -199,6 +178,7 @@ for (var i = 0; i < numPlayers; i++)
RMS.SetProgress(30);
const WATER_WIDTH = 0.1;
log("Creating river");
var theta = randFloat(0, 1);
var seed = randFloat(2,3);
@@ -206,8 +186,8 @@ var theta2 = randFloat(0, 1);
var seed2 = randFloat(2,3);
var rifp = 0;
var rifp2 = 0;
for (var ix = 0; ix < mapSize; ix++)
{
for (var iz = 0; iz < mapSize; iz++)
{
var x = ix / (mapSize + 1.0);
@@ -218,9 +198,8 @@ for (var ix = 0; ix < mapSize; ix++)
h = 32 * (z - 0.5);
if ((x < 0.25)||(x > 0.75))
{
addToClass(ix, iz, clDesert);
}
// add the rough shape of the water
var km = 12/scaleByMapSize(35, 160);
var cu = km*rndRiver(theta+z*0.5*(mapSize/64),seed)+(50/scaleByMapSize(35, 100))*rndRiver(theta2+z*0.5*(mapSize/128),seed2);
@@ -256,14 +235,13 @@ for (var ix = 0; ix < mapSize; ix++)
}
}
else
{
h = -3.0;
}
h = -3.0;
setHeight(ix, iz, h);
addToClass(ix, iz, clWater);
placeTerrain(ix, iz, tShore);
}
}
if (((xk > cu+((1.0-WATER_WIDTH)/2)-0.04)&&(xk < cu+((1.0-WATER_WIDTH)/2)))||((xk > cu+((1.0+WATER_WIDTH)/2))&&(xk < cu+((1.0+WATER_WIDTH)/2) + 0.04)))
{
placeTerrain(ix, iz, tLush);
@@ -280,10 +258,8 @@ for (var ix = 0; ix < mapSize; ix++)
addToClass(ix, iz, clShore);
}
}
}
RMS.SetProgress(40);
// create bumps
log("Creating bumps...");
placer = new ClumpPlacer(scaleByMapSize(20, 50), 0.3, 0.06, 1);
painter = new SmoothElevationPainter(ELEVATION_MODIFY, 2, 2);
@@ -294,7 +270,6 @@ createAreas(
scaleByMapSize(100, 200)
);
// create ponds
log("Creating ponds...");
var numLakes = round(scaleByMapSize(1,4) * numPlayers / 2);
placer = new ClumpPlacer(scaleByMapSize(100,250), 0.8, 0.1, 10);
@@ -343,7 +318,6 @@ var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES);
var numForest = totalTrees * P_FOREST;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create forests
log("Creating forests...");
var num = scaleByMapSize(10,30);
placer = new ClumpPlacer(numForest / num, 0.15, 0.1, 0.5);
@@ -355,8 +329,6 @@ createAreas(placer, [painter, paintClass(clForest)],
RMS.SetProgress(50);
// create grass patches
log("Creating grass patches...");
var sizes = [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)];
for (var i = 0; i < sizes.length; i++)
@@ -373,10 +345,8 @@ for (var i = 0; i < sizes.length; i++)
scaleByMapSize(15, 45)
);
}
RMS.SetProgress(55);
// create dirt patches
log("Creating dirt patches...");
var sizes = [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)];
for (var i = 0; i < sizes.length; i++)
@@ -394,19 +364,16 @@ for (var i = 0; i < sizes.length; i++)
);
}
RMS.SetProgress(60);
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clForest, 1, clPlayer, 20, clRock, 10, clWater, 1, clPond, 1),
scaleByMapSize(4,16), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clForest, 1, clPlayer, 20, clRock, 10, clWater, 1, clPond, 1),
@@ -414,7 +381,6 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clWater, 1, clPond, 1),
@@ -422,14 +388,13 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 20, clRock, 10, clWater, 1, clPond, 1), stayClasses(clDesert, 3)],
scaleByMapSize(6,20), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 20, clRock, 10, clWater, 1, clPond, 1), stayClasses(clDesert, 3)],
@@ -437,7 +402,6 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clWater, 1, clPond, 1), stayClasses(clDesert, 3)],
@@ -446,7 +410,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(65);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aDecorativeRock, 1,3, 0,1)],
@@ -458,8 +421,6 @@ createObjectGroupsDeprecated(
scaleByMapSize(16, 262), 50
);
// create shrubs
log("Creating shrubs...");
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)],
@@ -470,10 +431,8 @@ createObjectGroupsDeprecated(
avoidClasses(clWater, 1, clPlayer, 0, clPond, 1),
scaleByMapSize(20, 180), 50
);
RMS.SetProgress(70);
// create gazelles
log("Creating gazelles...");
group = new SimpleGroup([new SimpleObject(oGazelle, 5,7, 0,4)], true, clFood);
createObjectGroupsDeprecated(group, 0,
@@ -481,7 +440,6 @@ createObjectGroupsDeprecated(group, 0,
3*scaleByMapSize(5,20), 50
);
// create goats
log("Creating goats...");
group = new SimpleGroup([new SimpleObject(oGoat, 2,4, 0,3)], true, clFood);
createObjectGroupsDeprecated(group, 0,
@@ -489,7 +447,6 @@ createObjectGroupsDeprecated(group, 0,
3*scaleByMapSize(5,20), 50
);
// create treasures
log("Creating treasures...");
group = new SimpleGroup([new SimpleObject(oFood, 1,1, 0,2)], true, clTreasure);
createObjectGroupsDeprecated(group, 0,
@@ -503,7 +460,6 @@ createObjectGroupsDeprecated(group, 0,
3*scaleByMapSize(5,20), 50
);
// create camels
log("Creating camels...");
group = new SimpleGroup([new SimpleObject(oCamel, 2,4, 0,2)], true, clFood);
createObjectGroupsDeprecated(group, 0,
@@ -513,7 +469,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(90);
// create straggler trees
log("Creating straggler trees...");
var types = [oDatePalm, oSDatePalm]; // some variation
var num = floor(0.5 * numStragglers / types.length);
@@ -537,7 +492,6 @@ for (var i = 0; i < types.length; ++i)
);
}
// create pond trees
log("Creating straggler trees...");
var types = [oDatePalm, oSDatePalm]; // some variation
var num = floor(numStragglers / types.length);
@@ -550,7 +504,6 @@ for (var i = 0; i < types.length; ++i)
);
}
//create eyecandy
log("Creating obelisks");
group = new SimpleGroup(
[new SimpleObject(eObelisk, 1,1, 0,1)],
@@ -573,7 +526,6 @@ createObjectGroupsDeprecated(
scaleByMapSize(2, 6), 50
);
// Set environment
setSkySet("sunny");
setSunColor(0.711, 0.746, 0.574);
setWaterColor(0.541,0.506,0.416);
@@ -582,5 +534,4 @@ setWaterMurkiness(1);
setWaterWaviness(3.0);
setWaterType("lake");
// Export map data
ExportMap();
@@ -21,7 +21,6 @@ const tShoreBlend = g_Terrains.shoreBlend;
const tShore = g_Terrains.shore;
const tWater = g_Terrains.water;
// gaia entities
const oTree1 = g_Gaia.tree1;
const oTree2 = g_Gaia.tree2;
const oTree3 = g_Gaia.tree3;
@@ -36,7 +35,6 @@ const oStoneSmall = g_Gaia.stoneSmall;
const oMetalLarge = g_Gaia.metalLarge;
const oWood = "gaia/special_treasure_wood";
// decorative props
const aGrass = g_Decoratives.grass;
const aGrassShort = g_Decoratives.grassShort;
const aReeds = g_Decoratives.reeds;
@@ -49,16 +47,12 @@ const aBushSmall = g_Decoratives.bushSmall;
const pForest1 = [tForestFloor2 + TERRAIN_SEPARATOR + oTree1, tForestFloor2 + TERRAIN_SEPARATOR + oTree2, tForestFloor2];
const pForest2 = [tForestFloor1 + TERRAIN_SEPARATOR + oTree4, tForestFloor1 + TERRAIN_SEPARATOR + oTree5, tForestFloor1];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -99,8 +93,6 @@ if (md == 1) //archipelago and island
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -142,7 +134,6 @@ if (md == 1) //archipelago and island
}
if (mdd1 == 1) //archipelago
{
// create islands
log("Creating islands...");
placer = new ClumpPlacer(floor(hillSize*randFloat(0.8,1.2)), 0.80, 0.1, 10);
terrainPainter = new LayeredPainter(
@@ -157,7 +148,6 @@ if (md == 1) //archipelago and island
scaleByMapSize(2, 5)*randIntInclusive(8,14)
);
// create shore jaggedness
log("Creating shore jaggedness...");
placer = new ClumpPlacer(scaleByMapSize(15, 80), 0.2, 0.1, 1);
terrainPainter = new LayeredPainter(
@@ -174,7 +164,6 @@ if (md == 1) //archipelago and island
}
else if (mdd1 == 2) //islands
{
// create islands
log("Creating islands...");
placer = new ClumpPlacer(floor(hillSize*randFloat(0.6,1.4)), 0.80, 0.1, randFloat(0.0, 0.2));
terrainPainter = new LayeredPainter(
@@ -189,7 +178,6 @@ if (md == 1) //archipelago and island
scaleByMapSize(6, 10)*randIntInclusive(8,14)
);
// create small islands
log("Creating small islands...");
placer = new ClumpPlacer(floor(hillSize*randFloat(0.3,0.7)), 0.80, 0.1, 0.07);
terrainPainter = new LayeredPainter(
@@ -206,7 +194,6 @@ if (md == 1) //archipelago and island
}
else if (mdd1 == 3) // tight islands
{
// create islands
log("Creating islands...");
placer = new ClumpPlacer(floor(hillSize*randFloat(0.8,1.2)), 0.80, 0.1, 10);
terrainPainter = new LayeredPainter(
@@ -235,8 +222,6 @@ else if (md == 2) //continent
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -308,7 +293,6 @@ else if (md == 2) //continent
createArea(placer, [paintClass(clPeninsulaSteam)], null);
}
// create shore jaggedness
log("Creating shore jaggedness...");
placer = new ClumpPlacer(scaleByMapSize(20, 150), 0.2, 0.1, 1);
terrainPainter = new LayeredPainter(
@@ -323,7 +307,6 @@ else if (md == 2) //continent
scaleByMapSize(7, 130) * 2, 150
);
// create outward shore jaggedness
log("Creating shore jaggedness...");
placer = new ClumpPlacer(scaleByMapSize(20, 150), 0.2, 0.1, 1);
terrainPainter = new LayeredPainter(
@@ -349,8 +332,6 @@ for (var i = 0; i < numPlayers; i++)
}
playerIDs = primeSortPlayers(sortPlayers(playerIDs));
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -405,7 +386,6 @@ playerIDs = primeSortPlayers(sortPlayers(playerIDs));
}
}
var WATER_WIDTH = randFloat(0.22,0.3)+scaleByMapSize(1,4)/20;
log("Creating sea");
var theta = randFloat(0, 1);
@@ -534,7 +514,6 @@ playerIDs = primeSortPlayers(sortPlayers(playerIDs));
var mdd2 = randIntInclusive(1,7);
if (mdd2 == 1)
{
// create islands
log("Creating islands...");
placer = new ClumpPlacer(randIntInclusive(scaleByMapSize(8,15),scaleByMapSize(15,23))*randIntInclusive(scaleByMapSize(8,15),scaleByMapSize(15,23)), 0.80, 0.1, randFloat(0.0, 0.2));
terrainPainter = new LayeredPainter(
@@ -551,7 +530,6 @@ playerIDs = primeSortPlayers(sortPlayers(playerIDs));
}
else if (mdd2 == 2)
{
// create extentions
log("Creating extentions...");
placer = new ClumpPlacer(randIntInclusive(scaleByMapSize(13,24),scaleByMapSize(24,45))*randIntInclusive(scaleByMapSize(13,24),scaleByMapSize(24,45)), 0.80, 0.1, 10);
terrainPainter = new LayeredPainter(
@@ -589,8 +567,6 @@ else if (md == 4) //central river
}
playerIDs = primeSortPlayers(sortPlayers(playerIDs));
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -646,7 +622,6 @@ else if (md == 4) //central river
}
}
// create the main river
log("Creating the main river");
if (mdd1 == 2)
@@ -686,7 +661,6 @@ else if (md == 4) //central river
var mdd2 = randIntInclusive(1,2);
if (mdd2 == 1)
{
// create the shallows of the main river
log("Creating the shallows of the main river");
for (var i = 0; i <= randIntInclusive(1, scaleByMapSize(4,8)); i++)
@@ -713,7 +687,6 @@ else if (md == 4) //central river
createArea(placer, paintClass(clPlayer), null);
}
// create tributaries
log("Creating tributaries");
for (var i = 0; i <= randIntInclusive(8, (scaleByMapSize(12,20))); i++)
@@ -740,7 +713,6 @@ else if (md == 4) //central river
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 terrainPainter = new LayeredPainter(
[tShore, tWater, tWater], // terrains
[1, 3] // widths
@@ -778,8 +750,6 @@ else if (md == 5) //rivers and lake
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -802,8 +772,6 @@ else if (md == 5) //rivers and lake
addToClass(ix, iz-5, clPlayer);
}
for (var ix = 0; ix < mapSize; ix++)
{
for (var iz = 0; iz < mapSize; iz++)
@@ -835,7 +803,6 @@ else if (md == 5) //rivers and lake
);
createArea(placer, [terrainPainter, elevationPainter, paintClass(clWater)], null);
// create shore jaggedness
log("Creating shore jaggedness...");
placer = new ClumpPlacer(scaleByMapSize(20, 150), 0.2, 0.1, 1);
terrainPainter = new LayeredPainter(
@@ -866,7 +833,6 @@ else if (md == 5) //rivers and lake
if (randBool()) // rivers
{
//create rivers
log ("Creating rivers...");
for (var m = 0; m < numPlayers; m++)
{
@@ -946,8 +912,6 @@ else if (md == 6) //edge seas
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerPos = new Array(numPlayers);
@@ -1114,7 +1078,6 @@ else if (md == 6) //edge seas
}
}
// create shore jaggedness
log("Creating shore jaggedness...");
placer = new ClumpPlacer(scaleByMapSize(20, 150), 0.2, 0.1, 1);
terrainPainter = new LayeredPainter(
@@ -1145,7 +1108,6 @@ else if (md == 6) //edge seas
var mdd3 = randIntInclusive(1,3);
if (mdd3 == 1)
{
// create islands
log("Creating islands...");
placer = new ClumpPlacer(randIntInclusive(scaleByMapSize(8,15),scaleByMapSize(15,23))*randIntInclusive(scaleByMapSize(8,15),scaleByMapSize(15,23)), 0.80, 0.1, randFloat(0.0, 0.2));
terrainPainter = new LayeredPainter(
@@ -1162,7 +1124,6 @@ else if (md == 6) //edge seas
}
else if (mdd3 == 2)
{
// create extentions
log("Creating extentions...");
placer = new ClumpPlacer(randIntInclusive(scaleByMapSize(13,24),scaleByMapSize(24,45))*randIntInclusive(scaleByMapSize(13,24),scaleByMapSize(24,45)), 0.80, 0.1, 10);
terrainPainter = new LayeredPainter(
@@ -1202,8 +1163,6 @@ else if (md == 7) //gulf
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -1298,8 +1257,6 @@ else if (md == 8) //lakes
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -1334,7 +1291,6 @@ else if (md == 8) //lakes
createArea(placer, paintClass(clPlayer), null);
}
// create lakes
log("Creating lakes...");
placer = new ClumpPlacer(scaleByMapSize(160, 700), 0.2, 0.1, 1);
terrainPainter = new LayeredPainter(
@@ -1373,8 +1329,6 @@ else if (md == 9) //passes
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -1397,7 +1351,6 @@ else if (md == 9) //passes
}
}
//create ranges
log ("Creating ranges...");
for (var m = 0; m < numPlayers; m++)
{
@@ -1476,8 +1429,6 @@ else if (md == 10) //lowlands
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -1500,7 +1451,6 @@ else if (md == 10) //lowlands
}
}
var radius = scaleByMapSize(18,32);
var cliffRadius = 2;
var elevation = 20;
@@ -1600,8 +1550,6 @@ else //mainland
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -1641,7 +1589,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(17,29);
var shoreRadius = 4;
var elevation = 3;
@@ -1653,7 +1600,6 @@ for (var i = 0; i < numPlayers; i++)
var ix = round(fx);
var iz = round(fz);
// create starting units
if (iberianTowers)
placeCivDefaultEntities(fx, fz, id, { 'iberWall': 'towers' });
else
@@ -1738,7 +1684,6 @@ for (var i = 0; i < numPlayers; i++)
createArea(placer, [painter, paintClass(clPlayer)], null);
}
// create bumps
log("Creating bumps...");
placer = new ClumpPlacer(scaleByMapSize(20, 50), 0.3, 0.06, 1);
painter = new SmoothElevationPainter(ELEVATION_MODIFY, 2, 2);
@@ -1749,7 +1694,6 @@ createAreas(
randIntInclusive(0,scaleByMapSize(200, 400))
);
// create hills
log("Creating hills...");
placer = new ClumpPlacer(scaleByMapSize(20, 150), 0.2, 0.1, 1);
terrainPainter = new LayeredPainter(
@@ -1784,11 +1728,11 @@ else
var MAX_TREES = floor(3000*multiplier);
var P_FOREST = randFloat(0.5,0.8);
}
var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES);
var numForest = totalTrees * P_FOREST;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create forests
log("Creating forests...");
var types = [
[[tForestFloor2, tMainTerrain, pForest1], [tForestFloor2, pForest1]],
@@ -1817,7 +1761,7 @@ for (var i = 0; i < types.length; ++i)
}
RMS.SetProgress(50);
// create dirt patches
log("Creating dirt patches...");
var sizes = [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)];
var numb = 1;
@@ -1838,7 +1782,6 @@ for (var i = 0; i < sizes.length; i++)
);
}
// create grass patches
log("Creating grass patches...");
var sizes = [scaleByMapSize(2, 32), scaleByMapSize(3, 48), scaleByMapSize(5, 80)];
for (var i = 0; i < sizes.length; i++)
@@ -1854,16 +1797,14 @@ for (var i = 0; i < sizes.length; i++)
}
RMS.SetProgress(55);
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 20, clRock, 10, clHill, 1), stayClasses(clLand, 4)],
randIntInclusive(scaleByMapSize(2,9),scaleByMapSize(9,40)), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 20, clRock, 10, clHill, 1), stayClasses(clLand, 4)],
@@ -1871,7 +1812,6 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 1), stayClasses(clLand, 4)],
@@ -1880,7 +1820,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(65);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockMedium, 1,3, 0,1)],
@@ -1892,8 +1831,6 @@ createObjectGroupsDeprecated(
scaleByMapSize(16, 262), 50
);
// create large decorative rocks
log("Creating large decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockLarge, 1,2, 0,1), new SimpleObject(aRockMedium, 1,3, 0,2)],
@@ -1904,10 +1841,8 @@ createObjectGroupsDeprecated(
[avoidClasses(clWater, 0, clForest, 0, clPlayer, 0, clHill, 0), stayClasses(clLand, 4)],
scaleByMapSize(8, 131), 50
);
RMS.SetProgress(70);
// create deer
log("Creating deer...");
group = new SimpleGroup(
[new SimpleObject(oMainHuntableAnimal, 5,7, 0,4)],
@@ -1918,7 +1853,6 @@ createObjectGroupsDeprecated(group, 0,
randIntInclusive(numPlayers+3, 5*numPlayers+4), 50
);
// create berry bush
log("Creating berry bush...");
group = new SimpleGroup(
[new SimpleObject(oFruitBush, 5,7, 0,4)],
@@ -1931,7 +1865,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(75);
// create sheep
log("Creating sheep...");
group = new SimpleGroup(
[new SimpleObject(oSecondaryHuntableAnimal, 2,3, 0,2)],
@@ -1942,7 +1875,6 @@ createObjectGroupsDeprecated(group, 0,
randIntInclusive(numPlayers+3, 5*numPlayers+4), 50
);
// create fish
log("Creating fish...");
group = new SimpleGroup(
[new SimpleObject(oFish, 2,3, 0,2)],
@@ -1955,8 +1887,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(85);
// create straggler trees
log("Creating straggler trees...");
var types = [oTree1, oTree2, oTree4, oTree3]; // some variation
var num = floor(numStragglers / types.length);
@@ -1976,7 +1906,6 @@ var planetm = 1;
if (currentBiome() == "tropic")
planetm = 8;
//create small grass tufts
log("Creating small grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 1,2, 0,1, -PI/8,PI/8)]
@@ -1988,7 +1917,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(90);
// create large grass tufts
log("Creating large grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrass, 2,4, 0,1.8, -PI/8,PI/8), new SimpleObject(aGrassShort, 3,6, 1.2,2.5, -PI/8,PI/8)]
@@ -1997,10 +1925,8 @@ createObjectGroupsDeprecated(group, 0,
[avoidClasses(clWater, 3, clHill, 2, clPlayer, 2, clDirt, 1, clForest, 0), stayClasses(clLand, 4)],
planetm * scaleByMapSize(13, 200)
);
RMS.SetProgress(95);
// create shallow flora
log("Creating shallow flora...");
group = new SimpleGroup(
[new SimpleObject(aLillies, 1,2, 0,2), new SimpleObject(aReeds, 2,4, 0,2)]
@@ -2010,7 +1936,6 @@ createObjectGroupsDeprecated(group, 0,
60 * scaleByMapSize(13, 200), 80
);
// create bushes
log("Creating bushes...");
group = new SimpleGroup(
[new SimpleObject(aBushMedium, 1,2, 0,2), new SimpleObject(aBushSmall, 2,4, 0,2)]
@@ -2024,5 +1949,4 @@ setSkySet(pickRandom(["cirrus", "cumulus", "sunny", "sunny 1", "mountainous", "s
setSunRotation(randFloat(0, TWO_PI));
setSunElevation(randFloat(PI/ 5, PI / 3));
// Export map data
ExportMap();
@@ -21,7 +21,6 @@ const tShoreBlend = g_Terrains.shoreBlend;
const tShore = g_Terrains.shore;
const tWater = g_Terrains.water;
// gaia entities
const oTree1 = g_Gaia.tree1;
const oTree2 = g_Gaia.tree2;
const oTree3 = g_Gaia.tree3;
@@ -36,7 +35,6 @@ const oStoneSmall = g_Gaia.stoneSmall;
const oMetalLarge = g_Gaia.metalLarge;
const oWood = "gaia/special_treasure_wood";
// decorative props
const aGrass = g_Decoratives.grass;
const aGrassShort = g_Decoratives.grassShort;
const aReeds = g_Decoratives.reeds;
@@ -49,16 +47,12 @@ const aBushSmall = g_Decoratives.bushSmall;
const pForest1 = [tForestFloor2 + TERRAIN_SEPARATOR + oTree1, tForestFloor2 + TERRAIN_SEPARATOR + oTree2, tForestFloor2];
const pForest2 = [tForestFloor1 + TERRAIN_SEPARATOR + oTree4, tForestFloor1 + TERRAIN_SEPARATOR + oTree5, tForestFloor1];
log("Initializing map...");
InitMap();
const numPlayers = getNumPlayers();
const mapSize = getMapSize();
const mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -87,7 +81,6 @@ var needsAdditionalWood = false;
//*****************************************************************************************************************************
if (md == 2) //continent
{
// randomize player order
var playerIDs = [];
for (var i = 0; i < numPlayers; i++)
@@ -97,7 +90,6 @@ if (md == 2) //continent
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -189,7 +181,6 @@ for (var i = 0; i < numPlayers; i++)
playerIDs = primeSortPlayers(sortPlayers(playerIDs));
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -244,7 +235,6 @@ playerIDs = primeSortPlayers(sortPlayers(playerIDs));
}
}
var WATER_WIDTH = randFloat(0.22,0.3)+scaleByMapSize(1,4)/20;
log("Creating sea");
var theta = randFloat(0, 1);
@@ -348,7 +338,6 @@ playerIDs = primeSortPlayers(sortPlayers(playerIDs));
}
}
// linked
if (mdd1 == 1) //vertical
{
@@ -372,7 +361,6 @@ playerIDs = primeSortPlayers(sortPlayers(playerIDs));
var mdd2 = randIntInclusive(1,7);
if (mdd2 == 1)
{
// create islands
log("Creating islands...");
placer = new ChainPlacer(floor(scaleByMapSize(4, 7)), floor(scaleByMapSize(7, 10)), floor(scaleByMapSize(16, 40)), 0.07);
terrainPainter = new LayeredPainter(
@@ -389,7 +377,6 @@ playerIDs = primeSortPlayers(sortPlayers(playerIDs));
}
else if (mdd2 == 2)
{
// create extentions
log("Creating extentions...");
placer = new ClumpPlacer(randIntInclusive(scaleByMapSize(13,24),scaleByMapSize(24,45))*randIntInclusive(scaleByMapSize(13,24),scaleByMapSize(24,45)), 0.80, 0.1, 10);
terrainPainter = new LayeredPainter(
@@ -428,7 +415,6 @@ else if (md == 4) //central river
playerIDs = primeSortPlayers(sortPlayers(playerIDs));
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -484,7 +470,6 @@ else if (md == 4) //central river
}
}
// create the main river
log("Creating the main river");
if (mdd1 == 2)
@@ -521,7 +506,6 @@ else if (md == 4) //central river
var elevationPainter = new SmoothElevationPainter(ELEVATION_SET, -4, 2);
createArea(placer, [painter, elevationPainter], avoidClasses(clPlayer, 8));
// create the shallows of the main river
log("Creating the shallows of the main river");
for (var i = 0; i <= randIntInclusive(1, scaleByMapSize(4,8)); i++)
@@ -547,7 +531,6 @@ else if (md == 4) //central river
createArea(placer, paintClass(clPlayer), null);
}
// create tributaries
log("Creating tributaries");
for (var i = 0; i <= randIntInclusive(8, (scaleByMapSize(12,20))); i++)
@@ -574,7 +557,6 @@ else if (md == 4) //central river
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 terrainPainter = new LayeredPainter(
[tShore, tWater, tWater], // terrains
[1, 3] // widths
@@ -612,8 +594,6 @@ else if (md == 5) //rivers and lake
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -636,8 +616,6 @@ else if (md == 5) //rivers and lake
addToClass(ix, iz-5, clPlayer);
}
for (var ix = 0; ix < mapSize; ix++)
{
for (var iz = 0; iz < mapSize; iz++)
@@ -669,9 +647,7 @@ else if (md == 5) //rivers and lake
);
createArea(placer, [terrainPainter, elevationPainter, paintClass(clWater)], null);
// create shore jaggedness
log("Creating shore jaggedness...");
placer = new ChainPlacer(2, floor(scaleByMapSize(4, 6)), 3, 1);
terrainPainter = new LayeredPainter(
[tCliff, tHill], // terrains
@@ -726,7 +702,6 @@ else if (md == 6) //edge seas
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerPos = new Array(numPlayers);
@@ -863,7 +838,6 @@ else if (md == 6) //edge seas
}
}
// create shore jaggedness
log("Creating shore jaggedness...");
placer = new ChainPlacer(2, floor(scaleByMapSize(4, 6)), 3, 1);
terrainPainter = new LayeredPainter(
@@ -894,7 +868,6 @@ else if (md == 6) //edge seas
var mdd3 = randIntInclusive(1,5);
if (mdd3 == 1)
{
// create islands
log("Creating islands...");
placer = new ChainPlacer(floor(scaleByMapSize(4, 7)), floor(scaleByMapSize(7, 10)), floor(scaleByMapSize(16, 40)), 0.07);
terrainPainter = new LayeredPainter(
@@ -911,7 +884,6 @@ else if (md == 6) //edge seas
}
else if (mdd3 == 2)
{
// create extentions
log("Creating extentions...");
placer = new ChainPlacer(floor(scaleByMapSize(4, 7)), floor(scaleByMapSize(7, 10)), floor(scaleByMapSize(16, 40)), 0.07);
terrainPainter = new LayeredPainter(
@@ -930,7 +902,6 @@ else if (md == 6) //edge seas
//********************************************************************************************************
else if (md == 7) //gulf
{
for (var ix = 0; ix < mapSize; ix++)
{
for (var iz = 0; iz < mapSize; iz++)
@@ -952,7 +923,6 @@ else if (md == 7) //gulf
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -1038,7 +1008,6 @@ else if (md == 7) //gulf
//********************************************************************************************************
else if (md == 8) //lakes
{
// randomize player order
var playerIDs = [];
for (var i = 0; i < numPlayers; i++)
@@ -1048,7 +1017,6 @@ else if (md == 8) //lakes
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -1095,9 +1063,7 @@ else if (md == 8) //lakes
var chosenPoint;
var lakeAreaLen;
// create lakes
log("Creating lakes...");
var numLakes = scaleByMapSize(5, 16);
for (var i = 0; i < numLakes; ++i)
{
@@ -1145,8 +1111,6 @@ else if (md == 9) //passes
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -1169,7 +1133,6 @@ else if (md == 9) //passes
}
}
//create ranges
log ("Creating ranges...");
for (var m = 0; m < numPlayers; m++)
{
@@ -1248,8 +1211,6 @@ else if (md == 10) //lowlands
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -1272,7 +1233,6 @@ else if (md == 10) //lowlands
}
}
var radius = scaleByMapSize(18,32);
var cliffRadius = 2;
var elevation = 20;
@@ -1372,8 +1332,6 @@ else //mainland
}
playerIDs = sortPlayers(playerIDs);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var playerAngle = new Array(numPlayers);
@@ -1413,7 +1371,6 @@ for (var i = 0; i < numPlayers; i++)
var id = playerIDs[i];
log("Creating base for player " + id + "...");
// some constants
var radius = scaleByMapSize(17,29);
var shoreRadius = 4;
var elevation = 3;
@@ -1425,9 +1382,7 @@ for (var i = 0; i < numPlayers; i++)
var ix = round(fx);
var iz = round(fz);
// create starting units
placeCivDefaultEntities(fx, fz, id);
placeDefaultChicken(fx, fz, clBaseResource);
// create berry bushes
@@ -1507,7 +1462,6 @@ for (var i = 0; i < numPlayers; i++)
createArea(placer, [painter, paintClass(clPlayer)], null);
}
// create bumps
log("Creating bumps...");
placer = new ClumpPlacer(scaleByMapSize(20, 50), 0.3, 0.06, 1);
painter = new SmoothElevationPainter(ELEVATION_MODIFY, 2, 2);
@@ -1518,7 +1472,6 @@ createAreas(
randIntInclusive(0,scaleByMapSize(200, 400))
);
// create hills
log("Creating hills...");
placer = new ChainPlacer(1, floor(scaleByMapSize(4, 6)), floor(scaleByMapSize(16, 40)), 0.5);
terrainPainter = new LayeredPainter(
@@ -1557,7 +1510,6 @@ var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES);
var numForest = totalTrees * P_FOREST;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create forests
log("Creating forests...");
var types = [
[[tForestFloor2, tMainTerrain, pForest1], [tForestFloor2, pForest1]],
@@ -1585,7 +1537,6 @@ if (currentBiome() != "savanna")
}
RMS.SetProgress(50);
// create dirt patches
log("Creating dirt patches...");
var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)];
var numb = 1;
@@ -1606,7 +1557,6 @@ for (var i = 0; i < sizes.length; i++)
);
}
// create grass patches
log("Creating grass patches...");
var sizes = [scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)];
for (var i = 0; i < sizes.length; i++)
@@ -1622,16 +1572,14 @@ for (var i = 0; i < sizes.length; i++)
}
RMS.SetProgress(55);
log("Creating stone mines...");
// create large stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 20, clRock, 10, clHill, 1), stayClasses(clLand, 4)],
randIntInclusive(scaleByMapSize(2,9),scaleByMapSize(9,40)), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 20, clRock, 10, clHill, 1), stayClasses(clLand, 4)],
@@ -1639,7 +1587,6 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 1), stayClasses(clLand, 4)],
@@ -1648,7 +1595,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(65);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockMedium, 1,3, 0,1)],
@@ -1660,8 +1606,6 @@ createObjectGroupsDeprecated(
scaleByMapSize(16, 262), 50
);
// create large decorative rocks
log("Creating large decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockLarge, 1,2, 0,1), new SimpleObject(aRockMedium, 1,3, 0,2)],
@@ -1672,10 +1616,8 @@ createObjectGroupsDeprecated(
[avoidClasses(clWater, 0, clForest, 0, clPlayer, 0, clHill, 0), stayClasses(clLand, 4)],
scaleByMapSize(8, 131), 50
);
RMS.SetProgress(70);
// create deer
log("Creating deer...");
group = new SimpleGroup(
[new SimpleObject(oMainHuntableAnimal, 5,7, 0,4)],
@@ -1686,7 +1628,6 @@ createObjectGroupsDeprecated(group, 0,
randIntInclusive(numPlayers+3, 5*numPlayers+4), 50
);
// create berry bush
log("Creating berry bush...");
group = new SimpleGroup(
[new SimpleObject(oFruitBush, 5,7, 0,4)],
@@ -1696,10 +1637,8 @@ createObjectGroupsDeprecated(group, 0,
[avoidClasses(clWater, 0, clForest, 0, clPlayer, 20, clHill, 1, clFood, 20), stayClasses(clLand, 4)],
randIntInclusive(1, 4) * numPlayers + 2, 50
);
RMS.SetProgress(75);
// create sheep
log("Creating sheep...");
group = new SimpleGroup(
[new SimpleObject(oSecondaryHuntableAnimal, 2,3, 0,2)],
@@ -1710,7 +1649,6 @@ createObjectGroupsDeprecated(group, 0,
randIntInclusive(numPlayers+3, 5*numPlayers+4), 50
);
// create fish
log("Creating fish...");
group = new SimpleGroup(
[new SimpleObject(oFish, 2,3, 0,2)],
@@ -1720,11 +1658,8 @@ createObjectGroupsDeprecated(group, 0,
avoidClasses(clLand, 5, clForest, 0, clPlayer, 0, clHill, 0, clFood, 20),
randIntInclusive(15, 40) * numPlayers, 60
);
RMS.SetProgress(85);
// create straggler trees
log("Creating straggler trees...");
var types = [oTree1, oTree2, oTree4, oTree3]; // some variation
var num = floor(numStragglers / types.length);
@@ -1744,7 +1679,6 @@ var planetm = 1;
if (currentBiome() == "tropic")
planetm = 8;
//create small grass tufts
log("Creating small grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrassShort, 1,2, 0,1, -PI/8,PI/8)]
@@ -1753,10 +1687,8 @@ createObjectGroupsDeprecated(group, 0,
[avoidClasses(clWater, 2, clHill, 2, clPlayer, 2, clDirt, 0), stayClasses(clLand, 4)],
planetm * scaleByMapSize(13, 200)
);
RMS.SetProgress(90);
// create large grass tufts
log("Creating large grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrass, 2,4, 0,1.8, -PI/8,PI/8), new SimpleObject(aGrassShort, 3,6, 1.2,2.5, -PI/8,PI/8)]
@@ -1765,10 +1697,8 @@ createObjectGroupsDeprecated(group, 0,
[avoidClasses(clWater, 3, clHill, 2, clPlayer, 2, clDirt, 1, clForest, 0), stayClasses(clLand, 4)],
planetm * scaleByMapSize(13, 200)
);
RMS.SetProgress(95);
// create shallow flora
log("Creating shallow flora...");
group = new SimpleGroup(
[new SimpleObject(aLillies, 1,2, 0,2), new SimpleObject(aReeds, 2,4, 0,2)]
@@ -1778,7 +1708,6 @@ createObjectGroupsDeprecated(group, 0,
60 * scaleByMapSize(13, 200), 80
);
// create bushes
log("Creating bushes...");
group = new SimpleGroup(
[new SimpleObject(aBushMedium, 1,2, 0,2), new SimpleObject(aBushSmall, 2,4, 0,2)]
@@ -1792,5 +1721,4 @@ setSkySet(pickRandom(["cirrus", "cumulus", "sunny", "sunny 1", "mountainous", "s
setSunRotation(randFloat(0, TWO_PI));
setSunElevation(randFloat(PI/ 5, PI / 3));
// Export map data
ExportMap();
@@ -21,7 +21,6 @@ var tShoreBlend = g_Terrains.shoreBlend;
var tShore = g_Terrains.shore;
var tWater = g_Terrains.water;
// gaia entities
var oOak = g_Gaia.tree1;
var oOakLarge = g_Gaia.tree2;
var oApple = g_Gaia.tree3;
@@ -36,7 +35,6 @@ var oStoneSmall = g_Gaia.stoneSmall;
var oMetalLarge = g_Gaia.metalLarge;
var oWood = "gaia/special_treasure_wood";
// decorative props
var aGrass = g_Decoratives.grass;
var aGrassShort = g_Decoratives.grassShort;
var aReeds = g_Decoratives.reeds;
@@ -49,16 +47,12 @@ var aBushSmall = g_Decoratives.bushSmall;
var pForestD = [tGrassDForest + TERRAIN_SEPARATOR + oOak, tGrassDForest + TERRAIN_SEPARATOR + oOakLarge, tGrassDForest];
var pForestP = [tGrassPForest + TERRAIN_SEPARATOR + oPine, tGrassPForest + TERRAIN_SEPARATOR + oAleppoPine, tGrassPForest];
log("Initializing map...");
InitMap();
var numPlayers = getNumPlayers();
var mapSize = getMapSize();
var mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -105,7 +99,6 @@ if (md == 1) //archipelago and island
if (mdd1 == 1) //archipelago
{
// create islands
log("Creating islands...");
placer = new ClumpPlacer(floor(hillSize*randFloat(0.8,1.2)), 0.80, 0.1, 10);
terrainPainter = new LayeredPainter(
@@ -122,7 +115,6 @@ if (md == 1) //archipelago and island
}
else if (mdd1 == 2) //islands
{
// create islands
log("Creating islands...");
placer = new ClumpPlacer(floor(hillSize*randFloat(0.6,1.4)), 0.80, 0.1, randFloat(0.0, 0.2));
terrainPainter = new LayeredPainter(
@@ -139,7 +131,6 @@ if (md == 1) //archipelago and island
}
else if (mdd1 == 3) // tight islands
{
// create islands
log("Creating islands...");
placer = new ClumpPlacer(floor(hillSize*randFloat(0.8,1.2)), 0.80, 0.1, 10);
terrainPainter = new LayeredPainter(
@@ -210,7 +201,6 @@ else if (md == 2) //continent
var mdd1 = randIntInclusive(1,3);
if (mdd1 == 1)
{
// create islands
log("Creating islands...");
placer = new ClumpPlacer(randIntInclusive(scaleByMapSize(8,15),scaleByMapSize(15,23))*randIntInclusive(scaleByMapSize(8,15),scaleByMapSize(15,23)), 0.80, 0.1, randFloat(0.0, 0.2));
terrainPainter = new LayeredPainter(
@@ -227,7 +217,6 @@ else if (md == 2) //continent
}
else if (mdd1 == 2)
{
// create extentions
log("Creating extentions...");
placer = new ClumpPlacer(randIntInclusive(scaleByMapSize(13,24),scaleByMapSize(24,45))*randIntInclusive(scaleByMapSize(13,24),scaleByMapSize(24,45)), 0.80, 0.1, 10);
terrainPainter = new LayeredPainter(
@@ -381,7 +370,6 @@ else if (md == 3) //central sea
var mdd2 = randIntInclusive(1,3);
if (mdd2 == 1)
{
// create islands
log("Creating islands...");
placer = new ClumpPlacer(randIntInclusive(scaleByMapSize(8,15),scaleByMapSize(15,23))*randIntInclusive(scaleByMapSize(8,15),scaleByMapSize(15,23)), 0.80, 0.1, randFloat(0.0, 0.2));
terrainPainter = new LayeredPainter(
@@ -398,7 +386,6 @@ else if (md == 3) //central sea
}
else if (mdd2 == 2)
{
// create extentions
log("Creating extentions...");
placer = new ClumpPlacer(randIntInclusive(scaleByMapSize(13,24),scaleByMapSize(24,45))*randIntInclusive(scaleByMapSize(13,24),scaleByMapSize(24,45)), 0.80, 0.1, 10);
terrainPainter = new LayeredPainter(
@@ -436,7 +423,6 @@ else if (md == 4) //central river
}
playerIDs = primeSortPlayers(sortPlayers(playerIDs));
// create the main river
log("Creating the main river");
if (mdd1 == 2)
@@ -476,7 +462,6 @@ else if (md == 4) //central river
var mdd2 = randIntInclusive(1,2);
if (mdd2 == 1)
{
// create the shallows of the main river
log("Creating the shallows of the main river");
for (var i = 0; i <= randIntInclusive(1, scaleByMapSize(4,8)); i++)
@@ -491,8 +476,6 @@ else if (md == 4) //central river
if (randBool())
{
// create tributaries
log("Creating tributaries");
for (var i = 0; i <= randIntInclusive(8, (scaleByMapSize(12,20))); i++)
@@ -519,7 +502,6 @@ else if (md == 4) //central river
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 terrainPainter = new LayeredPainter(
[tShore, tWater, tWater], // terrains
[1, 3] // widths
@@ -593,7 +575,6 @@ else if (md == 5) //rivers and lake
if (mdd1 > 1) //rivers
{
//create rivers
log ("Creating rivers...");
for (var m = 0; m < numPlayers; m++)
{
@@ -843,7 +824,6 @@ else if (md == 6) //edge seas
var mdd3 = randIntInclusive(1,3);
if (mdd3 == 1)
{
// create islands
log("Creating islands...");
placer = new ClumpPlacer(randIntInclusive(scaleByMapSize(8,15),scaleByMapSize(15,23))*randIntInclusive(scaleByMapSize(8,15),scaleByMapSize(15,23)), 0.80, 0.1, randFloat(0.0, 0.2));
terrainPainter = new LayeredPainter(
@@ -860,7 +840,6 @@ else if (md == 6) //edge seas
}
else if (mdd3 == 2)
{
// create extentions
log("Creating extentions...");
placer = new ClumpPlacer(randIntInclusive(scaleByMapSize(13,24),scaleByMapSize(24,45))*randIntInclusive(scaleByMapSize(13,24),scaleByMapSize(24,45)), 0.80, 0.1, 10);
terrainPainter = new LayeredPainter(
@@ -980,8 +959,6 @@ else if (md == 8) //lakes
}
}
// create lakes
log("Creating lakes...");
placer = new ClumpPlacer(scaleByMapSize(160, 700), 0.2, 0.1, 1);
terrainPainter = new LayeredPainter(
@@ -1011,7 +988,6 @@ else if (md == 8) //lakes
//********************************************************************************************************
else if (md == 9) //passes
{
// randomize player order
var playerIDs = [];
for (var i = 0; i < numPlayers; i++)
@@ -1119,7 +1095,6 @@ else if (md == 10) //lowlands
}
}
var radius = scaleByMapSize(18,32);
var cliffRadius = 2;
var elevation = 20;
@@ -1241,8 +1216,6 @@ paintTileClassBasedOnHeight(-6, 0, 1, clWater);
paintTileClassBasedOnHeight(0, 3.12, 1, clLand);
paintTileClassBasedOnHeight(3.12, 40, 1, clHill);
// place players
var playerX = new Array(numPlayers);
var playerZ = new Array(numPlayers);
var distmin = scaleByMapSize(60,240);
@@ -1374,7 +1347,6 @@ for (var i = 0; i < numPlayers; i++)
createArea(placer, paintClass(clPlayer), null);
}
// create bumps
log("Creating bumps...");
placer = new ClumpPlacer(scaleByMapSize(20, 50), 0.3, 0.06, 1);
var painter = new SmoothElevationPainter(ELEVATION_MODIFY, 2, 2);
@@ -1385,7 +1357,6 @@ createAreas(
randIntInclusive(0,scaleByMapSize(200, 400))
);
// create hills
log("Creating hills...");
placer = new ClumpPlacer(scaleByMapSize(20, 150), 0.2, 0.1, 1);
terrainPainter = new LayeredPainter(
@@ -1424,7 +1395,6 @@ var totalTrees = scaleByMapSize(MIN_TREES, MAX_TREES);
var numForest = totalTrees * P_FOREST;
var numStragglers = totalTrees * (1.0 - P_FOREST);
// create forests
log("Creating forests...");
var types = [
[[tGrassDForest, tGrass, pForestD], [tGrassDForest, pForestD]],
@@ -1456,7 +1426,6 @@ for (var i = 0; i < types.length; ++i)
}
RMS.SetProgress(50);
// create dirt patches
log("Creating dirt patches...");
var sizes = [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)];
var numb = 1;
@@ -1477,7 +1446,6 @@ for (var i = 0; i < sizes.length; i++)
);
}
// create grass patches
log("Creating grass patches...");
var sizes = [scaleByMapSize(2, 32), scaleByMapSize(3, 48), scaleByMapSize(5, 80)];
for (var i = 0; i < sizes.length; i++)
@@ -1493,16 +1461,14 @@ for (var i = 0; i < sizes.length; i++)
}
RMS.SetProgress(55);
log("Creating stone mines...");
// create large stone quarries
var group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 10, clRock, 10, clHill, 1), stayClasses(clLand, 3)],
randIntInclusive(scaleByMapSize(2,9),scaleByMapSize(9,40)), 100
);
// create small stone quarries
log("Creating small stone quarries...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 10, clRock, 10, clHill, 1), stayClasses(clLand, 3)],
@@ -1510,16 +1476,13 @@ createObjectGroupsDeprecated(group, 0,
);
log("Creating metal mines...");
// create large metal quarries
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroupsDeprecated(group, 0,
[avoidClasses(clForest, 1, clPlayer, 10, clMetal, 10, clRock, 5, clHill, 1), stayClasses(clLand, 3)],
randIntInclusive(scaleByMapSize(2,9),scaleByMapSize(9,40)), 100
);
RMS.SetProgress(65);
// create small decorative rocks
log("Creating small decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockMedium, 1,3, 0,1)],
@@ -1531,8 +1494,6 @@ createObjectGroupsDeprecated(
scaleByMapSize(16, 262), 50
);
// create large decorative rocks
log("Creating large decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockLarge, 1,2, 0,1), new SimpleObject(aRockMedium, 1,3, 0,2)],
@@ -1546,7 +1507,6 @@ createObjectGroupsDeprecated(
RMS.SetProgress(70);
// create deer
log("Creating deer...");
group = new SimpleGroup(
[new SimpleObject(oDeer, 5,7, 0,4)],
@@ -1557,7 +1517,6 @@ createObjectGroupsDeprecated(group, 0,
randIntInclusive(numPlayers+3, 5*numPlayers+4), 50
);
// create berry bush
log("Creating berry bush...");
group = new SimpleGroup(
[new SimpleObject(oBerryBush, 5,7, 0,4)],
@@ -1570,7 +1529,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(75);
// create sheep
log("Creating sheep...");
group = new SimpleGroup(
[new SimpleObject(oSheep, 2,3, 0,2)],
@@ -1581,7 +1539,6 @@ createObjectGroupsDeprecated(group, 0,
randIntInclusive(numPlayers+3, 5*numPlayers+4), 50
);
// create fish
log("Creating fish...");
group = new SimpleGroup(
[new SimpleObject(oFish, 2,3, 0,2)],
@@ -1591,11 +1548,8 @@ createObjectGroupsDeprecated(group, 0,
avoidClasses(clLand, 4, clForest, 0, clPlayer, 0, clHill, 0, clFood, 20),
randIntInclusive(15, 40) * numPlayers, 60
);
RMS.SetProgress(85);
// create straggler trees
log("Creating straggler trees...");
var types = [oOak, oOakLarge, oPine, oApple]; // some variation
var num = floor(numStragglers / types.length);
@@ -1624,7 +1578,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(90);
// create large grass tufts
log("Creating large grass tufts...");
group = new SimpleGroup(
[new SimpleObject(aGrass, 2,4, 0,1.8, -PI/8,PI/8), new SimpleObject(aGrassShort, 3,6, 1.2,2.5, -PI/8,PI/8)]
@@ -1636,7 +1589,6 @@ createObjectGroupsDeprecated(group, 0,
RMS.SetProgress(95);
// create shallow flora
log("Creating shallow flora...");
group = new SimpleGroup(
[new SimpleObject(aLillies, 1,2, 0,2), new SimpleObject(aReeds, 2,4, 0,2)]
@@ -1646,7 +1598,6 @@ createObjectGroupsDeprecated(group, 0,
60 * scaleByMapSize(13, 200), 80
);
// create bushes
log("Creating bushes...");
group = new SimpleGroup(
[new SimpleObject(aBushMedium, 1,2, 0,2), new SimpleObject(aBushSmall, 2,4, 0,2)]
@@ -1660,5 +1611,4 @@ setSkySet(pickRandom(["cirrus", "cumulus", "sunny", "sunny 1", "mountainous", "s
setSunRotation(randFloat(0, TWO_PI));
setSunElevation(randFloat(PI/ 5, PI / 3));
// Export map data
ExportMap();
@@ -11,27 +11,23 @@ var tLava1 = "LavaTest05";
var tLava2 = "LavaTest04";
var tLava3 = "LavaTest03";
// gaia entities
var oTree = "gaia/flora_tree_dead";
var oStoneLarge = "gaia/geology_stonemine_alpine_quarry";
var oStoneSmall = "gaia/geology_stone_alpine_a";
var oMetalLarge = "gaia/geology_metal_alpine_slabs";
// decorative props
var aRockLarge = "actor|geology/stone_granite_med.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var pForestD = [tGrassC + TERRAIN_SEPARATOR + oTree, tGrassC];
var pForestP = [tGrassB + TERRAIN_SEPARATOR + oTree, tGrassB];
log("Initializing map...");
InitMap();
var numPlayers = getNumPlayers();
var mapSize = getMapSize();
var mapArea = mapSize*mapSize;
// create tile classes
var clPlayer = createTileClass();
var clHill = createTileClass();
var clForest = createTileClass();
@@ -83,7 +79,6 @@ for (var i = 0; i < numPlayers; i++)
var painter = new LayeredPainter([tRoadWild, tRoad], [1]);
createArea(placer, painter, null);
// create starting units
placeCivDefaultEntities(fx, fz, id);
// create metal mine
@@ -147,7 +142,6 @@ createAreas(
scaleByMapSize(2, 8) * numPlayers
);
// calculate desired number of trees for map (based on size)
var MIN_TREES = 200;
var MAX_TREES = 1250;
@@ -237,7 +231,7 @@ createObjectGroupsDeprecated(group, 0,
scaleByMapSize(4,16), 100
);
// create small stone quarries
log("Creating small stone mines...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroupsDeprecated(group, 0,
avoidClasses(clForest, 1, clPlayer, 10, clRock, 10, clHill, 1),
@@ -264,7 +258,6 @@ createObjectGroupsDeprecated(
scaleByMapSize(16, 262), 50
);
log("Creating large decorative rocks...");
group = new SimpleGroup(
[new SimpleObject(aRockLarge, 1,2, 0,1), new SimpleObject(aRockMedium, 1,3, 0,2)],
@@ -1,17 +1,13 @@
RMS.LoadLibrary("rmgen");
// initialize map
log("Initializing map...");
InitMap();
// General map setup
var mapSize = getMapSize();
var mapCenterX = mapSize/2;
var mapCenterY = mapSize/2;
const BUILDING_ANlE = -PI/4;
////////////////////////////////////////
// Demonstration code for wall placement
////////////////////////////////////////
@@ -54,7 +50,6 @@ const BUILDING_ANlE = -PI/4;
// Some other arguments are taken but all of them are optional and in most cases not needed
// One example is maxAngle for placeCircularWall that defines how far the wall will circumvent the center. Default is 2*PI which makes a full circle
// General wall placement setup
const distToMapBorder = 5;
const distToOtherWalls = 10;
@@ -65,7 +60,6 @@ var actualY = distToMapBorder;
// Other styles may be present as well but besides the civ styles only 'palisades' includes all wall element types (yet)
const wallStyleList = ["athen", "brit", "cart", "gaul", "iber", "mace", "maur", "pers", "ptol", "rome", "sele", "spart", "rome_siege", "palisades"];
////////////////////////////////////////
// Custom wall placement (element based)
////////////////////////////////////////
@@ -152,7 +146,6 @@ actualY += 2 * radius + distToOtherWalls; // Increase actualY for next wall plac
var maxWallLength = (mapSize - actualY - distToMapBorder - distToOtherWalls); // Just for this maps design. How long the longest wall will be
var numWallsPerStyle = floor(buildableMapSize / distToOtherWalls / wallStyleList.length); // Just for this maps design. How many walls of the same style will be placed
for (var styleIndex = 0; styleIndex < wallStyleList.length; styleIndex++)
{
for (var wallIndex = 0; wallIndex < numWallsPerStyle; wallIndex++)
{
var startX = actualX + (styleIndex * numWallsPerStyle + wallIndex) * distToOtherWalls; // X coordinate the wall will start from
@@ -166,10 +159,8 @@ for (var styleIndex = 0; styleIndex < wallStyleList.length; styleIndex++)
// placeObject(startX, startY, 'other/obelisk', 0, 0*PI); // Place visual marker to see where exsactly the wall begins
// placeObject(endX, endY, 'other/obelisk', 0, 0*PI); // Place visual marker to see where exsactly the wall ends
}
}
actualX = distToMapBorder; // Reset actualX
actualY += maxWallLength + distToOtherWalls; // Increase actualY for next wall placement method
// Export map data
ExportMap();