1
0
forked from 0ad/0ad

Adds the path placer library by historic_brunno to rmgen. Fixes #892.

Also takes all the duplicated parts of random maps including the new
player start entities and random biome system into rmgen libraries.
Tweaks nile river and snowflake random maps.

This was SVN commit r11152.
This commit is contained in:
O.Davoodi 2012-02-25 15:53:43 +00:00
parent ce82f83798
commit bc805bd357
22 changed files with 470 additions and 2003 deletions

View File

@ -1,48 +1,6 @@
RMS.LoadLibrary("rmgen");
//TILE_CENTERED_HEIGHT_MAP = true;
function rndRiver(f, seed)
{
var rndRq = seed;
var rndRw = rndRq;
var rndRe = 0;
var rndRr = f-floor(f);
var rndRa = 0;
for (var rndRx=0; rndRx<=floor(f); rndRx++)
{
rndRw = 10*(rndRw-floor(rndRw));
}
if (rndRx%2==0)
{
var rndRs = -1;
}
else
{
var rndRs = 1;
}
rndRe = (floor(rndRw))%5;
if (rndRe==0)
{
rndRa = (rndRs)*2.3*(rndRr)*(rndRr-1)*(rndRr-0.5)*(rndRr-0.5);
}
else if (rndRe==1)
{
rndRa = (rndRs)*2.6*(rndRr)*(rndRr-1)*(rndRr-0.3)*(rndRr-0.7);
}
else if (rndRe==2)
{
rndRa = (rndRs)*22*(rndRr)*(rndRr-1)*(rndRr-0.2)*(rndRr-0.3)*(rndRr-0.3)*(rndRr-0.8);
}
else if (rndRe==3)
{
rndRa = (rndRs)*180*(rndRr)*(rndRr-1)*(rndRr-0.2)*(rndRr-0.2)*(rndRr-0.4)*(rndRr-0.6)*(rndRr-0.6)*(rndRr-0.8);
}
else if (rndRe==4)
{
rndRa = (rndRs)*2.6*(rndRr)*(rndRr-1)*(rndRr-0.5)*(rndRr-0.7);
}
return rndRa;
}
const tCity = "medit_city_pavement";
const tCityPlaza = "medit_city_pavement";
@ -173,27 +131,8 @@ for (var i = 0; i < numPlayers; i++)
// get civ specific starting entities
var civEntities = getStartingEntities(id-1);
// create the TC
var group = new SimpleGroup( // elements (type, min/max count, min/max distance, min/max angle)
[new SimpleObject(civEntities[0].Template, 1,1, 0,0, BUILDING_ANGlE, BUILDING_ANGlE)],
true, null, ix, iz
);
createObjectGroup(group, id);
// create starting units
var uDist = 6;
var uSpace = 2;
for (var j = 1; j < civEntities.length; ++j)
{
var uAngle = -BUILDING_ANGlE + PI * (j - 1) / 2;
var count = (civEntities[j].Count !== undefined ? civEntities[j].Count : 1);
for (var numberofentities = 0; numberofentities < count; numberofentities++)
{
var ux = fx + uDist * cos(uAngle) + numberofentities * uSpace * cos(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * cos(uAngle + PI/2));
var uz = fz + uDist * sin(uAngle) + numberofentities * uSpace * sin(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * sin(uAngle + PI/2));
placeObject(ux, uz, civEntities[j].Template, id, (j % 2 - 1) * PI + uAngle);
}
}
createStartingPlayerEntities(fx, fz, id, civEntities, BUILDING_ANGlE)
// create animals
for (var j = 0; j < 2; ++j)
@ -202,7 +141,7 @@ for (var i = 0; i < numPlayers; i++)
var aDist = 7;
var aX = round(fx + aDist * cos(aAngle));
var aZ = round(fz + aDist * sin(aAngle));
group = new SimpleGroup(
var group = new SimpleGroup(
[new SimpleObject(oChicken, 5,5, 0,3)],
true, clBaseResource, aX, aZ
);

File diff suppressed because one or more lines are too long

View File

@ -123,27 +123,8 @@ for (var i = 0; i < numPlayers; i++)
// get civ specific starting entities
var civEntities = getStartingEntities(id-1);
// create the TC
var group = new SimpleGroup( // elements (type, min/max count, min/max distance, min/max angle)
[new SimpleObject(civEntities[0].Template, 1,1, 0,0, BUILDING_ANGlE, BUILDING_ANGlE)],
true, null, ix, iz
);
createObjectGroup(group, id);
// create starting units
var uDist = 6;
var uSpace = 2;
for (var j = 1; j < civEntities.length; ++j)
{
var uAngle = -BUILDING_ANGlE + PI * (j - 1) / 2;
var count = (civEntities[j].Count !== undefined ? civEntities[j].Count : 1);
for (var numberofentities = 0; numberofentities < count; numberofentities++)
{
var ux = fx + uDist * cos(uAngle) + numberofentities * uSpace * cos(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * cos(uAngle + PI/2));
var uz = fz + uDist * sin(uAngle) + numberofentities * uSpace * sin(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * sin(uAngle + PI/2));
placeObject(ux, uz, civEntities[j].Template, id, (j % 2 - 1) * PI + uAngle);
}
}
createStartingPlayerEntities(fx, fz, id, civEntities, BUILDING_ANGlE)
// create animals
for (var j = 0; j < 2; ++j)
@ -152,7 +133,7 @@ for (var i = 0; i < numPlayers; i++)
var aDist = 7;
var aX = round(fx + aDist * cos(aAngle));
var aZ = round(fz + aDist * sin(aAngle));
group = new SimpleGroup(
var group = new SimpleGroup(
[new SimpleObject(oChicken, 5,5, 0,3)],
true, clBaseResource, aX, aZ
);

View File

@ -146,27 +146,8 @@ for (var i = 0; i < numPlayers; i++)
// get civ specific starting entities
var civEntities = getStartingEntities(id-1);
// create the TC
var group = new SimpleGroup( // elements (type, min/max count, min/max distance, min/max angle)
[new SimpleObject(civEntities[0].Template, 1,1, 0,0, BUILDING_ANGlE, BUILDING_ANGlE)],
true, null, ix, iz
);
createObjectGroup(group, id);
// create starting units
var uDist = 6;
var uSpace = 2;
for (var j = 1; j < civEntities.length; ++j)
{
var uAngle = -BUILDING_ANGlE + PI * (j - 1) / 2;
var count = (civEntities[j].Count !== undefined ? civEntities[j].Count : 1);
for (var numberofentities = 0; numberofentities < count; numberofentities++)
{
var ux = fx + uDist * cos(uAngle) + numberofentities * uSpace * cos(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * cos(uAngle + PI/2));
var uz = fz + uDist * sin(uAngle) + numberofentities * uSpace * sin(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * sin(uAngle + PI/2));
placeObject(ux, uz, civEntities[j].Template, id, (j % 2 - 1) * PI + uAngle);
}
}
createStartingPlayerEntities(fx, fz, id, civEntities, BUILDING_ANGlE)
// create animals
for (var j = 0; j < 2; ++j)
@ -175,7 +156,7 @@ for (var i = 0; i < numPlayers; i++)
var aDist = 7;
var aX = round(fx + aDist * cos(aAngle));
var aZ = round(fz + aDist * sin(aAngle));
group = new SimpleGroup(
var group = new SimpleGroup(
[new SimpleObject(oChicken, 5,5, 0,3)],
true, clBaseResource, aX, aZ
);

View File

@ -1,338 +1,48 @@
RMS.LoadLibrary("rmgen");
//random terrain textures
var rt = randInt(1,7);
//temperate
if (rt == 1){
var tGrass = ["temp_grass_long_b"];
var tGrassPForest = "temp_forestfloor_pine";
var tGrassDForest = "temp_plants_bog";
var tCliff = ["temp_cliff_a", "temp_cliff_b"];
var tGrassA = "temp_grass_d";
var tGrassB = "temp_grass_c";
var tGrassC = "temp_grass_clovers_2";
var tHill = ["temp_dirt_gravel", "temp_dirt_gravel_b"];
var tDirt = ["temp_dirt_gravel", "temp_dirt_gravel_b"];
var tRoad = "temp_road";
var tRoadWild = "temp_road_overgrown";
var tGrassPatch = "temp_grass_plants";
var tShoreBlend = "temp_mud_plants";
var tShore = "sand_grass_25";
var tWater = "medit_sand_wet";
var rt = randomizeBiome();
var tGrass = rBiomeT1();
var tGrassPForest = rBiomeT2();
var tGrassDForest = rBiomeT3();
var tCliff = rBiomeT4();
var tGrassA = rBiomeT5();
var tGrassB = rBiomeT6();
var tGrassC = rBiomeT7();
var tHill = rBiomeT8();
var tDirt = rBiomeT9();
var tRoad = rBiomeT10();
var tRoadWild = rBiomeT11();
var tGrassPatch = rBiomeT12();
var tShoreBlend = rBiomeT13();
var tShore = rBiomeT14();
var tWater = rBiomeT15();
// gaia entities
var oOak = "gaia/flora_tree_oak";
var oOakLarge = "gaia/flora_tree_oak_large";
var oApple = "gaia/flora_tree_apple";
var oPine = "gaia/flora_tree_pine";
var oAleppoPine = "gaia/flora_tree_aleppo_pine";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_deer";
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_sheep";
var oStoneLarge = "gaia/geology_stonemine_medit_quarry";
var oStoneSmall = "gaia/geology_stone_mediterranean";
var oMetalLarge = "gaia/geology_metal_mediterranean_slabs";
var oOak = rBiomeE1();
var oOakLarge = rBiomeE2();
var oApple = rBiomeE3();
var oPine = rBiomeE4();
var oAleppoPine = rBiomeE5();
var oBerryBush = rBiomeE6();
var oChicken = rBiomeE7();
var oDeer = rBiomeE8();
var oFish = rBiomeE9();
var oSheep = rBiomeE10();
var oStoneLarge = rBiomeE11();
var oStoneSmall = rBiomeE12();
var oMetalLarge = rBiomeE13();
// decorative props
var aGrass = "actor|props/flora/grass_soft_large_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_large.xml";
var aReeds = "actor|props/flora/reeds_pond_lush_a.xml";
var aLillies = "actor|props/flora/pond_lillies_large.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/bush_medit_me.xml";
var aBushSmall = "actor|props/flora/bush_medit_sm.xml";
// terrain + entity (for painting)
}
//snowy
else if (rt == 2)
{
setSunColour(0.550, 0.601, 0.644); // a little darker
var tGrass = ["polar_snow_b", "snow grass 75", "snow rocks", "snow forest"];
var tGrassPForest = "polar_tundra_snow";
var tGrassDForest = "polar_tundra_snow";
var tCliff = ["polar_cliff_a", "polar_cliff_b"];
var tGrassA = "snow grass 2";
var tGrassB = "polar_snow_a";
var tGrassC = "polar_ice_snow";
var tHill = ["polar_snow_rocks", "polar_cliff_snow"];
var tDirt = ["polar_ice_b", "polar_ice_c"];
var tRoad = "new_alpine_citytile";
var tRoadWild = "polar_ice_cracked";
var tGrassPatch = "snow grass 2";
var tShoreBlend = "polar_ice";
var tShore = "snow_glacial_01";
var tWater = "polar_ice_c";
// gaia entities
var oOak = "gaia/flora_tree_pine_w";
var oOakLarge = "gaia/flora_tree_pine_w";
var oApple = "gaia/flora_tree_pine_w";
var oPine = "gaia/flora_tree_pine_w";
var oAleppoPine = "gaia/flora_tree_pine";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_muskox";
var oFish = "gaia/fauna_fish_tuna";
var oSheep = "gaia/fauna_walrus";
var oStoneLarge = "gaia/geology_stone_alpine_a";
var oStoneSmall = "gaia/geology_stone_alpine_a";
var oMetalLarge = "gaia/geology_metal_alpine";
// decorative props
var aGrass = "actor|props/flora/grass_soft_dry_small_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_dry_large.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/bush_desert_dry_a.xml";
var aBushSmall = "actor|props/flora/bush_desert_dry_a.xml";
// terrain + entity (for painting)
}
//desert
else if (rt == 3)
{
setSunColour(0.733, 0.746, 0.574);
var tGrass = ["desert_dirt_rough", "desert_dirt_rough_2", "desert_sand_dunes_50", "desert_sand_smooth"];
var tGrassPForest = "forestfloor_dirty";
var tGrassDForest = "desert_forestfloor_palms";
var tCliff = ["desert_cliff_1", "desert_cliff_2", "desert_cliff_3", "desert_cliff_4", "desert_cliff_5"];
var tGrassA = ["desert_dirt_persia_1", "desert_dirt_persia_2"];
var tGrassB = "dirta";
var tGrassC = "medit_dirt_dry";
var tHill = ["desert_dirt_rocks_1", "desert_dirt_rocks_2", "desert_dirt_rocks_3"];
var tDirt = ["desert_lakebed_dry", "desert_lakebed_dry_b"];
var tRoad = "desert_city_tile";
var tRoadWild = "desert_city_tile";
var tGrassPatch = "desert_dirt_rough";
var tShoreBlend = "desert_shore_stones";
var tShore = "dirta";
var tWater = "desert_sand_wet";
// gaia entities
var oOak = "gaia/flora_tree_cretan_date_palm_short";
var oOakLarge = "gaia/flora_tree_cretan_date_palm_tall";
var oApple = "gaia/flora_tree_fig";
var oPine = "gaia/flora_tree_dead";
var oAleppoPine = "gaia/flora_tree_date_palm";
var oBerryBush = "gaia/flora_bush_grapes";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_camel";
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_gazelle";
var oStoneLarge = "gaia/geology_stonemine_desert_quarry";
var oStoneSmall = "gaia/geology_stone_desert_small";
var oMetalLarge = "gaia/geology_metal_desert_slabs";
// decorative props
var aGrass = "actor|props/flora/grass_soft_dry_small_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_dry_large.xml";
var aRockLarge = "actor|geology/stone_desert_med.xml";
var aRockMedium = "actor|geology/stone_desert_med.xml";
var aBushMedium = "actor|props/flora/bush_desert_dry_a.xml";
var aBushSmall = "actor|props/flora/bush_desert_dry_a.xml";
// terrain + entity (for painting)
}
//alpine
else if (rt == 4)
{
var tGrass = ["alpine_dirt_grass_50"];
var tGrassPForest = "alpine_forrestfloor";
var tGrassDForest = "alpine_forrestfloor";
var tCliff = ["alpine_cliff_a", "alpine_cliff_b", "alpine_cliff_c"];
var tGrassA = "alpine_grass_rocky";
var tGrassB = ["alpine_grass_snow_50", "alpine_dirt_snow"];
var tGrassC = ["alpine_snow_a", "alpine_snow_b"];
var tHill = "alpine_cliff_snow";
var tDirt = ["alpine_dirt", "alpine_grass_d"];
var tRoad = "new_alpine_citytile";
var tRoadWild = "new_alpine_citytile";
var tGrassPatch = "new_alpine_grass_a";
var tShoreBlend = "alpine_shore_rocks";
var tShore = "alpine_shore_rocks_grass_50";
var tWater = "alpine_shore_rocks";
// gaia entities
var oOak = "gaia/flora_tree_pine";
var oOakLarge = "gaia/flora_tree_pine";
var oApple = "gaia/flora_tree_pine";
var oPine = "gaia/flora_tree_pine";
var oAleppoPine = "gaia/flora_tree_pine";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_goat";
var oFish = "gaia/fauna_fish_tuna";
var oSheep = "gaia/fauna_deer";
var oStoneLarge = "gaia/geology_stone_alpine_a";
var oStoneSmall = "gaia/geology_stone_alpine_a";
var oMetalLarge = "gaia/geology_metal_alpine";
// decorative props
var aGrass = "actor|props/flora/grass_soft_dry_small_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_dry_large.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/bush_desert_dry_a.xml";
var aBushSmall = "actor|props/flora/bush_desert_dry_a.xml";
// terrain + entity (for painting)
}
//medit
else if (rt == 5){
var tGrass = ["medit_grass_field_a", "medit_grass_field_b"];
var tGrassPForest = "medit_plants_dirt";
var tGrassDForest = "medit_grass_shrubs";
var tCliff = ["medit_cliff_grass", "medit_cliff_greek", "medit_cliff_greek_2", "medit_cliff_aegean", "medit_cliff_italia", "medit_cliff_italia_grass"];
var tGrassA = "medit_grass_field_b";
var tGrassB = "medit_grass_field_brown";
var tGrassC = "medit_grass_field_dry";
var tHill = ["medit_rocks_grass_shrubs", "medit_rocks_shrubs"];
var tDirt = ["medit_dirt", "medit_dirt_b"];
var tRoad = "medit_city_tile";
var tRoadWild = "medit_city_tile";
var tGrassPatch = "medit_grass_wild";
var tShoreBlend = "medit_sand";
var tShore = "sand_grass_25";
var tWater = "medit_sand_wet";
// gaia entities
var oOak = "gaia/flora_tree_cretan_date_palm_short";
var oOakLarge = "gaia/flora_tree_medit_fan_palm";
var oApple = "gaia/flora_tree_apple";
var oPine = "gaia/flora_tree_cypress";
var oAleppoPine = "gaia/flora_tree_aleppo_pine";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_deer";
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_sheep";
var oStoneLarge = "gaia/geology_stonemine_medit_quarry";
var oStoneSmall = "gaia/geology_stone_mediterranean";
var oMetalLarge = "gaia/geology_metal_mediterranean_slabs";
// decorative props
var aGrass = "actor|props/flora/grass_soft_large_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_large.xml";
var aReeds = "actor|props/flora/reeds_pond_lush_a.xml";
var aLillies = "actor|props/flora/pond_lillies_large.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/bush_medit_me.xml";
var aBushSmall = "actor|props/flora/bush_medit_sm.xml";
// terrain + entity (for painting)
}
//savanah
else if (rt == 6)
{
var tGrass = ["savanna_grass_a", "savanna_grass_b"];
var tGrassPForest = "savanna_forestfloor_a";
var tGrassDForest = "savanna_forestfloor_b";
var tCliff = ["savanna_cliff_a", "savanna_cliff_b"];
var tGrassA = "savanna_shrubs_a";
var tGrassB = "savanna_dirt_rocks_b";
var tGrassC = "dirt_brown_e";
var tHill = ["savanna_grass_a", "savanna_grass_b"];
var tDirt = ["savanna_dirt_rocks_b", "dirt_brown_e"];
var tRoad = "savanna_tile_a";
var tRoadWild = "savanna_tile_a";
var tGrassPatch = "savanna_grass_a";
var tShoreBlend = "savanna_riparian";
var tShore = "savanna_riparian_bank";
var tWater = "savanna_riparian_wet";
// gaia entities
var oOak = "gaia/flora_tree_baobab";
var oOakLarge = "gaia/flora_tree_baobab";
var oApple = "gaia/flora_tree_baobab";
var oPine = "gaia/flora_tree_baobab";
var oAleppoPine = "gaia/flora_tree_baobab";
var oBerryBush = "gaia/flora_bush_grapes";
var oChicken = "gaia/fauna_chicken";
var rts = randInt(1,4);
if (rts==1){
var oDeer = "gaia/fauna_wildebeest";
}
else if (rts==2)
{
var oDeer = "gaia/fauna_zebra";
}
else if (rts==3)
{
var oDeer = "gaia/fauna_giraffe";
}
else if (rts==4)
{
var oDeer = "gaia/fauna_elephant_african_bush";
}
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_gazelle";
var oStoneLarge = "gaia/geology_stonemine_desert_quarry";
var oStoneSmall = "gaia/geology_stone_savanna_small";
var oMetalLarge = "gaia/geology_metal_savanna_slabs";
// decorative props
var aGrass = "actor|props/flora/grass_savanna.xml";
var aGrassShort = "actor|props/flora/grass_medit_field.xml";
var aRockLarge = "actor|geology/stone_savanna_med.xml";
var aRockMedium = "actor|geology/stone_savanna_med.xml";
var aBushMedium = "actor|props/flora/bush_desert_dry_a.xml";
var aBushSmall = "actor|props/flora/bush_dry_a.xml";
// terrain + entity (for painting)
}
else if (rt == 7){
var tGrass = ["tropic_grass_c", "tropic_grass_c", "tropic_grass_c", "tropic_grass_c", "tropic_grass_plants", "tropic_plants", "tropic_plants_b"];
var tGrassPForest = "tropic_plants_c";
var tGrassDForest = "tropic_plants_c";
var tCliff = ["tropic_cliff_a", "tropic_cliff_a", "tropic_cliff_a", "tropic_cliff_a_plants"];
var tGrassA = "tropic_grass_c";
var tGrassB = "tropic_grass_plants";
var tGrassC = "tropic_plants";
var tHill = ["tropic_cliff_grass"];
var tDirt = ["tropic_dirt_a", "tropic_dirt_a_plants"];
var tRoad = "tropic_citytile_a";
var tRoadWild = "tropic_citytile_plants";
var tGrassPatch = "tropic_plants_b";
var tShoreBlend = "temp_mud_plants";
var tShore = "tropic_beach_dry";
var tWater = "tropic_beach_wet";
// gaia entities
var oOak = "gaia/flora_tree_poplar";
var oOakLarge = "gaia/flora_tree_poplar";
var oApple = "gaia/flora_tree_poplar";
var oPine = "gaia/flora_tree_cretan_date_palm_short";
var oAleppoPine = "gaia/flora_tree_cretan_date_palm_tall";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_deer";
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_tiger";
var oStoneLarge = "gaia/geology_stonemine_tropic_quarry";
var oStoneSmall = "gaia/geology_stone_tropic_a";
var oMetalLarge = "gaia/geology_metal_tropic_slabs";
// decorative props
var aGrass = "actor|props/flora/plant_tropic_a.xml";
var aGrassShort = "actor|props/flora/plant_lg.xml";
var aReeds = "actor|props/flora/reeds_pond_lush_b.xml";
var aLillies = "actor|props/flora/water_lillies.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/plant_tropic_large.xml";
var aBushSmall = "actor|props/flora/plant_tropic_large.xml";
// terrain + entity (for painting)
}
var aGrass = rBiomeA1();
var aGrassShort = rBiomeA2();
var aReeds = rBiomeA3();
var aLillies = rBiomeA4();
var aRockLarge = rBiomeA5();
var aRockMedium = rBiomeA6();
var aBushMedium = rBiomeA7();
var aBushSmall = rBiomeA8();
var pForestD = [tGrassDForest + TERRAIN_SEPARATOR + oOak, tGrassDForest + TERRAIN_SEPARATOR + oOakLarge, tGrassDForest];
var pForestP = [tGrassPForest + TERRAIN_SEPARATOR + oPine, tGrassPForest + TERRAIN_SEPARATOR + oAleppoPine, tGrassPForest];
@ -443,28 +153,8 @@ for (var i = 0; i < numPlayers; i++)
// get civ specific starting entities
var civEntities = getStartingEntities(id-1);
// create the TC
var group = new SimpleGroup( // elements (type, min/max count, min/max distance, min/max angle)
[new SimpleObject(civEntities[0].Template, 1,1, 0,0, BUILDING_ANGlE, BUILDING_ANGlE)],
true, null, ix, iz
);
createObjectGroup(group, id);
// create starting units
// create starting units
var uDist = 6;
var uSpace = 2;
for (var j = 1; j < civEntities.length; ++j)
{
var uAngle = -BUILDING_ANGlE + PI * (j - 1) / 2;
var count = (civEntities[j].Count !== undefined ? civEntities[j].Count : 1);
for (var numberofentities = 0; numberofentities < count; numberofentities++)
{
var ux = fx + uDist * cos(uAngle) + numberofentities * uSpace * cos(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * cos(uAngle + PI/2));
var uz = fz + uDist * sin(uAngle) + numberofentities * uSpace * sin(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * sin(uAngle + PI/2));
placeObject(ux, uz, civEntities[j].Template, id, (j % 2 - 1) * PI + uAngle);
}
}
createStartingPlayerEntities(fx, fz, id, civEntities, BUILDING_ANGlE)
// create animals
for (var j = 0; j < 2; ++j)
@ -473,7 +163,7 @@ for (var i = 0; i < numPlayers; i++)
var aDist = 7;
var aX = round(fx + aDist * cos(aAngle));
var aZ = round(fz + aDist * sin(aAngle));
group = new SimpleGroup(
var group = new SimpleGroup(
[new SimpleObject(oChicken, 5,5, 0,3)],
true, clBaseResource, aX, aZ
);

View File

@ -1,48 +1,5 @@
RMS.LoadLibrary("rmgen");
function rndRiver(f, seed)
{
var rndRq = seed;
var rndRw = rndRq;
var rndRe = 0;
var rndRr = f-floor(f);
var rndRa = 0;
for (var rndRx=0; rndRx<=floor(f); rndRx++)
{
rndRw = 10*(rndRw-floor(rndRw));
}
if (rndRx%2==0)
{
var rndRs = -1;
}
else
{
var rndRs = 1;
}
rndRe = (floor(rndRw))%5;
if (rndRe==0)
{
rndRa = (rndRs)*2.3*(rndRr)*(rndRr-1)*(rndRr-0.5)*(rndRr-0.5);
}
else if (rndRe==1)
{
rndRa = (rndRs)*2.6*(rndRr)*(rndRr-1)*(rndRr-0.3)*(rndRr-0.7);
}
else if (rndRe==2)
{
rndRa = (rndRs)*22*(rndRr)*(rndRr-1)*(rndRr-0.2)*(rndRr-0.3)*(rndRr-0.3)*(rndRr-0.8);
}
else if (rndRe==3)
{
rndRa = (rndRs)*180*(rndRr)*(rndRr-1)*(rndRr-0.2)*(rndRr-0.2)*(rndRr-0.4)*(rndRr-0.6)*(rndRr-0.6)*(rndRr-0.8);
}
else if (rndRe==4)
{
rndRa = (rndRs)*2.6*(rndRr)*(rndRr-1)*(rndRr-0.5)*(rndRr-0.7);
}
return rndRa;
}
var tGrass = ["medit_grass_field_a", "medit_grass_field_b"];
var tGrassPForest = "medit_plants_dirt";
var tGrassDForest = "medit_grass_shrubs";
@ -187,36 +144,17 @@ for (var i = 0; i < numPlayers; i++)
// get civ specific starting entities
var civEntities = getStartingEntities(id-1);
// create the TC
var group = new SimpleGroup( // elements (type, min/max count, min/max distance, min/max angle)
[new SimpleObject(civEntities[0].Template, 1,1, 0,0, BUILDING_ANGlE, BUILDING_ANGlE)],
true, null, ix, iz
);
createObjectGroup(group, id);
// create starting units
var uDist = 6;
var uSpace = 2;
for (var j = 1; j < civEntities.length; ++j)
{
var uAngle = -BUILDING_ANGlE + PI * (j - 1) / 2;
var count = (civEntities[j].Count !== undefined ? civEntities[j].Count : 1);
for (var numberofentities = 0; numberofentities < count; numberofentities++)
{
var ux = fx + uDist * cos(uAngle) + numberofentities * uSpace * cos(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * cos(uAngle + PI/2));
var uz = fz + uDist * sin(uAngle) + numberofentities * uSpace * sin(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * sin(uAngle + PI/2));
placeObject(ux, uz, civEntities[j].Template, id, (j % 2 - 1) * PI + uAngle);
}
}
createStartingPlayerEntities(fx, fz, id, civEntities, BUILDING_ANGlE)
// create animals
for (var j = 0; j < 2; ++j)
{
var aAngle = randFloat(0, TWO_PI);
var aDist = 7;
var aDist = 6;
var aX = round(fx + aDist * cos(aAngle));
var aZ = round(fz + aDist * sin(aAngle));
group = new SimpleGroup(
var group = new SimpleGroup(
[new SimpleObject(oChicken, 5,5, 0,3)],
true, clBaseResource, aX, aZ
);
@ -225,7 +163,7 @@ for (var i = 0; i < numPlayers; i++)
// create berry bushes
var bbAngle = randFloat(0, TWO_PI);
var bbDist = 12;
var bbDist = 8;
var bbX = round(fx + bbDist * cos(bbAngle));
var bbZ = round(fz + bbDist * sin(bbAngle));
group = new SimpleGroup(
@ -240,7 +178,7 @@ for (var i = 0; i < numPlayers; i++)
{
mAngle = randFloat(0, TWO_PI);
}
var mDist = radius - 4;
var mDist = radius - 7;
var mX = round(fx + mDist * cos(mAngle));
var mZ = round(fz + mDist * sin(mAngle));
group = new SimpleGroup(

View File

@ -1,47 +1,5 @@
RMS.LoadLibrary("rmgen");
function rndRiver(f, seed)
{
var rndRq = sqrt(seed);
var rndRw = rndRq;
var rndRe = 0;
var rndRr = f-floor(f);
var rndRa = 0;
for (var rndRx=0; rndRx<=floor(f); rndRx++)
{
rndRw = 10*(rndRw-floor(rndRw));
}
if (rndRx%2==0)
{
var rndRs = -1;
}
else
{
var rndRs = 1;
}
rndRe = (floor(rndRw))%5;
if (rndRe==0)
{
rndRa = (rndRs)*2.3*(rndRr)*(rndRr-1)*(rndRr-0.5)*(rndRr-0.5);
}
else if (rndRe==1)
{
rndRa = (rndRs)*2.6*(rndRr)*(rndRr-1)*(rndRr-0.3)*(rndRr-0.7);
}
else if (rndRe==2)
{
rndRa = (rndRs)*22*(rndRr)*(rndRr-1)*(rndRr-0.2)*(rndRr-0.3)*(rndRr-0.3)*(rndRr-0.8);
}
else if (rndRe==3)
{
rndRa = (rndRs)*180*(rndRr)*(rndRr-1)*(rndRr-0.2)*(rndRr-0.2)*(rndRr-0.4)*(rndRr-0.6)*(rndRr-0.6)*(rndRr-0.8);
}
else if (rndRe==4)
{
rndRa = (rndRs)*2.6*(rndRr)*(rndRr-1)*(rndRr-0.5)*(rndRr-0.7);
}
return rndRa;
}
// terrain textures
const tGrass = ["temp_grass_clovers"];
@ -172,36 +130,17 @@ for (var i = 0; i < numPlayers; i++)
// get civ specific starting entities
var civEntities = getStartingEntities(id-1);
// create the TC
var group = new SimpleGroup( // elements (type, min/max count, min/max distance, min/max angle)
[new SimpleObject(civEntities[0].Template, 1,1, 0,0, BUILDING_ANGlE, BUILDING_ANGlE)],
true, null, ix, iz
);
createObjectGroup(group, id);
// create starting units
var uDist = 6;
var uSpace = 2;
for (var j = 1; j < civEntities.length; ++j)
{
var uAngle = -BUILDING_ANGlE + PI * (j - 1) / 2;
var count = (civEntities[j].Count !== undefined ? civEntities[j].Count : 1);
for (var numberofentities = 0; numberofentities < count; numberofentities++)
{
var ux = fx + uDist * cos(uAngle) + numberofentities * uSpace * cos(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * cos(uAngle + PI/2));
var uz = fz + uDist * sin(uAngle) + numberofentities * uSpace * sin(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * sin(uAngle + PI/2));
placeObject(ux, uz, civEntities[j].Template, id, (j % 2 - 1) * PI + uAngle);
}
}
createStartingPlayerEntities(fx, fz, id, civEntities, BUILDING_ANGlE)
// create chickens
// create animals
for (var j = 0; j < 2; ++j)
{
var aAngle = randFloat(0, TWO_PI);
var aDist = 7;
var aX = round(fx + aDist * cos(aAngle));
var aZ = round(fz + aDist * sin(aAngle));
group = new SimpleGroup(
var group = new SimpleGroup(
[new SimpleObject(oChicken, 5,5, 0,3)],
true, clBaseResource, aX, aZ
);

View File

@ -282,27 +282,9 @@ if((numPlayers>=6)||(i==startingPlaces[numPlayers-1][nPlayer])){
// get civ specific starting entities
var civEntities = getStartingEntities(id-1);
// create the TC
var group = new SimpleGroup( // elements (type, min/max count, min/max distance)
[new SimpleObject(civEntities[0].Template, 1,1, 0,0, BUILDING_ANGlE, BUILDING_ANGlE)],
true, null, ix, iz
);
createObjectGroup(group, id);
// create starting units
var uDist = 6;
var uSpace = 2;
for (var j = 1; j < civEntities.length; ++j)
{
var uAngle = -BUILDING_ANGlE + PI * (j - 1) / 2;
var count = (civEntities[j].Count !== undefined ? civEntities[j].Count : 1);
for (var numberofentities = 0; numberofentities < count; numberofentities++)
{
var ux = fx + uDist * cos(uAngle) + numberofentities * uSpace * cos(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * cos(uAngle + PI/2));
var uz = fz + uDist * sin(uAngle) + numberofentities * uSpace * sin(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * sin(uAngle + PI/2));
placeObject(ux, uz, civEntities[j].Template, id, (j % 2 - 1) * PI + uAngle);
}
}
createStartingPlayerEntities(fx, fz, id, civEntities, BUILDING_ANGlE)
nPlayer++;
}

View File

@ -2,339 +2,48 @@ RMS.LoadLibrary("rmgen");
//random terrain textures
var rt = randInt(1,7);
//temperate
if (rt == 1){
var tGrass = ["temp_grass_long_b"];
var tGrassPForest = "temp_forestfloor_pine";
var tGrassDForest = "temp_plants_bog";
var tCliff = ["temp_cliff_a", "temp_cliff_b"];
var tGrassA = "temp_grass_d";
var tGrassB = "temp_grass_c";
var tGrassC = "temp_grass_clovers_2";
var tHill = ["temp_dirt_gravel", "temp_dirt_gravel_b"];
var tDirt = ["temp_dirt_gravel", "temp_dirt_gravel_b"];
var tRoad = "temp_road";
var tRoadWild = "temp_road_overgrown";
var tGrassPatch = "temp_grass_plants";
var tShoreBlend = "temp_mud_plants";
var tShore = "sand_grass_25";
var tWater = "medit_sand_wet";
var rt = randomizeBiome();
var tGrass = rBiomeT1();
var tGrassPForest = rBiomeT2();
var tGrassDForest = rBiomeT3();
var tCliff = rBiomeT4();
var tGrassA = rBiomeT5();
var tGrassB = rBiomeT6();
var tGrassC = rBiomeT7();
var tHill = rBiomeT8();
var tDirt = rBiomeT9();
var tRoad = rBiomeT10();
var tRoadWild = rBiomeT11();
var tGrassPatch = rBiomeT12();
var tShoreBlend = rBiomeT13();
var tShore = rBiomeT14();
var tWater = rBiomeT15();
// gaia entities
var oOak = "gaia/flora_tree_oak";
var oOakLarge = "gaia/flora_tree_oak_large";
var oApple = "gaia/flora_tree_apple";
var oPine = "gaia/flora_tree_pine";
var oAleppoPine = "gaia/flora_tree_aleppo_pine";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_deer";
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_sheep";
var oStoneLarge = "gaia/geology_stonemine_medit_quarry";
var oStoneSmall = "gaia/geology_stone_mediterranean";
var oMetalLarge = "gaia/geology_metal_mediterranean_slabs";
var oOak = rBiomeE1();
var oOakLarge = rBiomeE2();
var oApple = rBiomeE3();
var oPine = rBiomeE4();
var oAleppoPine = rBiomeE5();
var oBerryBush = rBiomeE6();
var oChicken = rBiomeE7();
var oDeer = rBiomeE8();
var oFish = rBiomeE9();
var oSheep = rBiomeE10();
var oStoneLarge = rBiomeE11();
var oStoneSmall = rBiomeE12();
var oMetalLarge = rBiomeE13();
// decorative props
var aGrass = "actor|props/flora/grass_soft_large_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_large.xml";
var aReeds = "actor|props/flora/reeds_pond_lush_a.xml";
var aLillies = "actor|props/flora/pond_lillies_large.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/bush_medit_me.xml";
var aBushSmall = "actor|props/flora/bush_medit_sm.xml";
// terrain + entity (for painting)
}
//snowy
else if (rt == 2)
{
setSunColour(0.550, 0.601, 0.644); // a little darker
var tGrass = ["polar_snow_b", "snow grass 75", "snow rocks", "snow forest"];
var tGrassPForest = "polar_tundra_snow";
var tGrassDForest = "polar_tundra_snow";
var tCliff = ["polar_cliff_a", "polar_cliff_b"];
var tGrassA = "snow grass 2";
var tGrassB = "polar_snow_a";
var tGrassC = "polar_ice_snow";
var tHill = ["polar_snow_rocks", "polar_cliff_snow"];
var tDirt = ["polar_ice_b", "polar_ice_c"];
var tRoad = "new_alpine_citytile";
var tRoadWild = "polar_ice_cracked";
var tGrassPatch = "snow grass 2";
var tShoreBlend = "polar_ice";
var tShore = "snow_glacial_01";
var tWater = "polar_ice_c";
// gaia entities
var oOak = "gaia/flora_tree_pine_w";
var oOakLarge = "gaia/flora_tree_pine_w";
var oApple = "gaia/flora_tree_pine_w";
var oPine = "gaia/flora_tree_pine_w";
var oAleppoPine = "gaia/flora_tree_pine";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_muskox";
var oFish = "gaia/fauna_fish_tuna";
var oSheep = "gaia/fauna_walrus";
var oStoneLarge = "gaia/geology_stone_alpine_a";
var oStoneSmall = "gaia/geology_stone_alpine_a";
var oMetalLarge = "gaia/geology_metal_alpine";
// decorative props
var aGrass = "actor|props/flora/grass_soft_dry_small_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_dry_large.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/bush_desert_dry_a.xml";
var aBushSmall = "actor|props/flora/bush_desert_dry_a.xml";
// terrain + entity (for painting)
}
//desert
else if (rt == 3)
{
setSunColour(0.733, 0.746, 0.574);
var tGrass = ["desert_dirt_rough", "desert_dirt_rough_2", "desert_sand_dunes_50", "desert_sand_smooth"];
var tGrassPForest = "forestfloor_dirty";
var tGrassDForest = "desert_forestfloor_palms";
var tCliff = ["desert_cliff_1", "desert_cliff_2", "desert_cliff_3", "desert_cliff_4", "desert_cliff_5"];
var tGrassA = ["desert_dirt_persia_1", "desert_dirt_persia_2"];
var tGrassB = "dirta";
var tGrassC = "medit_dirt_dry";
var tHill = ["desert_dirt_rocks_1", "desert_dirt_rocks_2", "desert_dirt_rocks_3"];
var tDirt = ["desert_lakebed_dry", "desert_lakebed_dry_b"];
var tRoad = "desert_city_tile";
var tRoadWild = "desert_city_tile";
var tGrassPatch = "desert_dirt_rough";
var tShoreBlend = "desert_shore_stones";
var tShore = "dirta";
var tWater = "desert_sand_wet";
// gaia entities
var oOak = "gaia/flora_tree_cretan_date_palm_short";
var oOakLarge = "gaia/flora_tree_cretan_date_palm_tall";
var oApple = "gaia/flora_tree_fig";
var oPine = "gaia/flora_tree_dead";
var oAleppoPine = "gaia/flora_tree_date_palm";
var oBerryBush = "gaia/flora_bush_grapes";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_camel";
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_gazelle";
var oStoneLarge = "gaia/geology_stonemine_desert_quarry";
var oStoneSmall = "gaia/geology_stone_desert_small";
var oMetalLarge = "gaia/geology_metal_desert_slabs";
// decorative props
var aGrass = "actor|props/flora/grass_soft_dry_small_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_dry_large.xml";
var aRockLarge = "actor|geology/stone_desert_med.xml";
var aRockMedium = "actor|geology/stone_desert_med.xml";
var aBushMedium = "actor|props/flora/bush_desert_dry_a.xml";
var aBushSmall = "actor|props/flora/bush_desert_dry_a.xml";
// terrain + entity (for painting)
}
//alpine
else if (rt == 4)
{
var tGrass = ["alpine_dirt_grass_50"];
var tGrassPForest = "alpine_forrestfloor";
var tGrassDForest = "alpine_forrestfloor";
var tCliff = ["alpine_cliff_a", "alpine_cliff_b", "alpine_cliff_c"];
var tGrassA = "alpine_grass_rocky";
var tGrassB = ["alpine_grass_snow_50", "alpine_dirt_snow"];
var tGrassC = ["alpine_snow_a", "alpine_snow_b"];
var tHill = "alpine_cliff_snow";
var tDirt = ["alpine_dirt", "alpine_grass_d"];
var tRoad = "new_alpine_citytile";
var tRoadWild = "new_alpine_citytile";
var tGrassPatch = "new_alpine_grass_a";
var tShoreBlend = "alpine_shore_rocks";
var tShore = "alpine_shore_rocks_grass_50";
var tWater = "alpine_shore_rocks";
// gaia entities
var oOak = "gaia/flora_tree_pine";
var oOakLarge = "gaia/flora_tree_pine";
var oApple = "gaia/flora_tree_pine";
var oPine = "gaia/flora_tree_pine";
var oAleppoPine = "gaia/flora_tree_pine";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_goat";
var oFish = "gaia/fauna_fish_tuna";
var oSheep = "gaia/fauna_deer";
var oStoneLarge = "gaia/geology_stone_alpine_a";
var oStoneSmall = "gaia/geology_stone_alpine_a";
var oMetalLarge = "gaia/geology_metal_alpine";
// decorative props
var aGrass = "actor|props/flora/grass_soft_dry_small_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_dry_large.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/bush_desert_dry_a.xml";
var aBushSmall = "actor|props/flora/bush_desert_dry_a.xml";
// terrain + entity (for painting)
}
//medit
else if (rt == 5){
var tGrass = ["medit_grass_field_a", "medit_grass_field_b"];
var tGrassPForest = "medit_plants_dirt";
var tGrassDForest = "medit_grass_shrubs";
var tCliff = ["medit_cliff_grass", "medit_cliff_greek", "medit_cliff_greek_2", "medit_cliff_aegean", "medit_cliff_italia", "medit_cliff_italia_grass"];
var tGrassA = "medit_grass_field_b";
var tGrassB = "medit_grass_field_brown";
var tGrassC = "medit_grass_field_dry";
var tHill = ["medit_rocks_grass_shrubs", "medit_rocks_shrubs"];
var tDirt = ["medit_dirt", "medit_dirt_b"];
var tRoad = "medit_city_tile";
var tRoadWild = "medit_city_tile";
var tGrassPatch = "medit_grass_wild";
var tShoreBlend = "medit_sand";
var tShore = "sand_grass_25";
var tWater = "medit_sand_wet";
// gaia entities
var oOak = "gaia/flora_tree_cretan_date_palm_short";
var oOakLarge = "gaia/flora_tree_medit_fan_palm";
var oApple = "gaia/flora_tree_apple";
var oPine = "gaia/flora_tree_cypress";
var oAleppoPine = "gaia/flora_tree_aleppo_pine";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_deer";
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_sheep";
var oStoneLarge = "gaia/geology_stonemine_medit_quarry";
var oStoneSmall = "gaia/geology_stone_mediterranean";
var oMetalLarge = "gaia/geology_metal_mediterranean_slabs";
// decorative props
var aGrass = "actor|props/flora/grass_soft_large_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_large.xml";
var aReeds = "actor|props/flora/reeds_pond_lush_a.xml";
var aLillies = "actor|props/flora/pond_lillies_large.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/bush_medit_me.xml";
var aBushSmall = "actor|props/flora/bush_medit_sm.xml";
// terrain + entity (for painting)
}
//savanah
else if (rt == 6)
{
var tGrass = ["savanna_grass_a", "savanna_grass_b"];
var tGrassPForest = "savanna_forestfloor_a";
var tGrassDForest = "savanna_forestfloor_b";
var tCliff = ["savanna_cliff_a", "savanna_cliff_b"];
var tGrassA = "savanna_shrubs_a";
var tGrassB = "savanna_dirt_rocks_b";
var tGrassC = "dirt_brown_e";
var tHill = ["savanna_grass_a", "savanna_grass_b"];
var tDirt = ["savanna_dirt_rocks_b", "dirt_brown_e"];
var tRoad = "savanna_tile_a";
var tRoadWild = "savanna_tile_a";
var tGrassPatch = "savanna_grass_a";
var tShoreBlend = "savanna_riparian";
var tShore = "savanna_riparian_bank";
var tWater = "savanna_riparian_wet";
// gaia entities
var oOak = "gaia/flora_tree_baobab";
var oOakLarge = "gaia/flora_tree_baobab";
var oApple = "gaia/flora_tree_baobab";
var oPine = "gaia/flora_tree_baobab";
var oAleppoPine = "gaia/flora_tree_baobab";
var oBerryBush = "gaia/flora_bush_grapes";
var oChicken = "gaia/fauna_chicken";
var rts = randInt(1,4);
if (rts==1){
var oDeer = "gaia/fauna_wildebeest";
}
else if (rts==2)
{
var oDeer = "gaia/fauna_zebra";
}
else if (rts==3)
{
var oDeer = "gaia/fauna_giraffe";
}
else if (rts==4)
{
var oDeer = "gaia/fauna_elephant_african_bush";
}
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_gazelle";
var oStoneLarge = "gaia/geology_stonemine_desert_quarry";
var oStoneSmall = "gaia/geology_stone_savanna_small";
var oMetalLarge = "gaia/geology_metal_savanna_slabs";
// decorative props
var aGrass = "actor|props/flora/grass_savanna.xml";
var aGrassShort = "actor|props/flora/grass_medit_field.xml";
var aRockLarge = "actor|geology/stone_savanna_med.xml";
var aRockMedium = "actor|geology/stone_savanna_med.xml";
var aBushMedium = "actor|props/flora/bush_desert_dry_a.xml";
var aBushSmall = "actor|props/flora/bush_dry_a.xml";
// terrain + entity (for painting)
}
//tropic
else if (rt == 7){
var tGrass = ["tropic_grass_c", "tropic_grass_c", "tropic_grass_c", "tropic_grass_c", "tropic_grass_plants", "tropic_plants", "tropic_plants_b"];
var tGrassPForest = "tropic_plants_c";
var tGrassDForest = "tropic_plants_c";
var tCliff = ["tropic_cliff_a", "tropic_cliff_a", "tropic_cliff_a", "tropic_cliff_a_plants"];
var tGrassA = "tropic_grass_c";
var tGrassB = "tropic_grass_plants";
var tGrassC = "tropic_plants";
var tHill = ["tropic_cliff_grass"];
var tDirt = ["tropic_dirt_a", "tropic_dirt_a_plants"];
var tRoad = "tropic_citytile_a";
var tRoadWild = "tropic_citytile_plants";
var tGrassPatch = "tropic_plants_b";
var tShoreBlend = "temp_mud_plants";
var tShore = "tropic_beach_dry";
var tWater = "tropic_beach_wet";
// gaia entities
var oOak = "gaia/flora_tree_poplar";
var oOakLarge = "gaia/flora_tree_poplar";
var oApple = "gaia/flora_tree_poplar";
var oPine = "gaia/flora_tree_cretan_date_palm_short";
var oAleppoPine = "gaia/flora_tree_cretan_date_palm_tall";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_deer";
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_tiger";
var oStoneLarge = "gaia/geology_stonemine_tropic_quarry";
var oStoneSmall = "gaia/geology_stone_tropic_a";
var oMetalLarge = "gaia/geology_metal_tropic_slabs";
// decorative props
var aGrass = "actor|props/flora/plant_tropic_a.xml";
var aGrassShort = "actor|props/flora/plant_lg.xml";
var aReeds = "actor|props/flora/reeds_pond_lush_b.xml";
var aLillies = "actor|props/flora/water_lillies.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/plant_tropic_large.xml";
var aBushSmall = "actor|props/flora/plant_tropic_large.xml";
// terrain + entity (for painting)
}
var aGrass = rBiomeA1();
var aGrassShort = rBiomeA2();
var aReeds = rBiomeA3();
var aLillies = rBiomeA4();
var aRockLarge = rBiomeA5();
var aRockMedium = rBiomeA6();
var aBushMedium = rBiomeA7();
var aBushSmall = rBiomeA8();
var pForestD = [tGrassDForest + TERRAIN_SEPARATOR + oOak, tGrassDForest + TERRAIN_SEPARATOR + oOakLarge, tGrassDForest];
var pForestP = [tGrassPForest + TERRAIN_SEPARATOR + oPine, tGrassPForest + TERRAIN_SEPARATOR + oAleppoPine, tGrassPForest];
@ -444,27 +153,8 @@ for (var i = 0; i < numPlayers; i++)
// get civ specific starting entities
var civEntities = getStartingEntities(id-1);
// create the TC
var group = new SimpleGroup( // elements (type, min/max count, min/max distance, min/max angle)
[new SimpleObject(civEntities[0].Template, 1,1, 0,0, BUILDING_ANGlE, BUILDING_ANGlE)],
true, null, ix, iz
);
createObjectGroup(group, id);
// create starting units
var uDist = 6;
var uSpace = 2;
for (var j = 1; j < civEntities.length; ++j)
{
var uAngle = -BUILDING_ANGlE + PI * (j - 1) / 2;
var count = (civEntities[j].Count !== undefined ? civEntities[j].Count : 1);
for (var numberofentities = 0; numberofentities < count; numberofentities++)
{
var ux = fx + uDist * cos(uAngle) + numberofentities * uSpace * cos(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * cos(uAngle + PI/2));
var uz = fz + uDist * sin(uAngle) + numberofentities * uSpace * sin(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * sin(uAngle + PI/2));
placeObject(ux, uz, civEntities[j].Template, id, (j % 2 - 1) * PI + uAngle);
}
}
createStartingPlayerEntities(fx, fz, id, civEntities, BUILDING_ANGlE)
// create animals
for (var j = 0; j < 2; ++j)
@ -473,7 +163,7 @@ for (var i = 0; i < numPlayers; i++)
var aDist = 7;
var aX = round(fx + aDist * cos(aAngle));
var aZ = round(fz + aDist * sin(aAngle));
group = new SimpleGroup(
var group = new SimpleGroup(
[new SimpleObject(oChicken, 5,5, 0,3)],
true, clBaseResource, aX, aZ
);

View File

@ -433,27 +433,8 @@ for (var i = 1; i <= numPlayers; i++)
// get civ specific starting entities
var civEntities = getStartingEntities(id-1);
// create the TC
var group = new SimpleGroup( // elements (type, min/max count, min/max distance, min/max angle)
[new SimpleObject(civEntities[0].Template, 1,1, 0,0, BUILDING_ANGlE, BUILDING_ANGlE)],
true, null, ix, iz
);
createObjectGroup(group, id);
// create starting units
var uDist = 6;
var uSpace = 2;
for (var j = 1; j < civEntities.length; ++j)
{
var uAngle = -BUILDING_ANGlE + PI * (j - 1) / 2;
var count = (civEntities[j].Count !== undefined ? civEntities[j].Count : 1);
for (var numberofentities = 0; numberofentities < count; numberofentities++)
{
var ux = fx + uDist * cos(uAngle) + numberofentities * uSpace * cos(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * cos(uAngle + PI/2));
var uz = fz + uDist * sin(uAngle) + numberofentities * uSpace * sin(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * sin(uAngle + PI/2));
placeObject(ux, uz, civEntities[j].Template, id, (j % 2 - 1) * PI + uAngle);
}
}
createStartingPlayerEntities(fx, fz, id, civEntities, BUILDING_ANGlE)
// create animals
for (var j = 0; j < 2; ++j)
@ -462,7 +443,7 @@ for (var i = 1; i <= numPlayers; i++)
var aDist = 7;
var aX = round(fx + aDist * cos(aAngle));
var aZ = round(fz + aDist * sin(aAngle));
group = new SimpleGroup(
var group = new SimpleGroup(
[new SimpleObject(oChicken, 5,5, 0,3)],
true, clBaseResource, aX, aZ
);

View File

@ -2,338 +2,48 @@ RMS.LoadLibrary("rmgen");
//random terrain textures
var rt = randInt(1,7);
//temperate
if (rt == 1){
var tGrass = ["temp_grass_long_b"];
var tGrassPForest = "temp_forestfloor_pine";
var tGrassDForest = "temp_plants_bog";
var tCliff = ["temp_cliff_a", "temp_cliff_b"];
var tGrassA = "temp_grass_d";
var tGrassB = "temp_grass_c";
var tGrassC = "temp_grass_clovers_2";
var tHill = ["temp_dirt_gravel", "temp_dirt_gravel_b"];
var tDirt = ["temp_dirt_gravel", "temp_dirt_gravel_b"];
var tRoad = "temp_road";
var tRoadWild = "temp_road_overgrown";
var tGrassPatch = "temp_grass_plants";
var tShoreBlend = "temp_mud_plants";
var tShore = "sand_grass_25";
var tWater = "medit_sand_wet";
var rt = randomizeBiome();
var tGrass = rBiomeT1();
var tGrassPForest = rBiomeT2();
var tGrassDForest = rBiomeT3();
var tCliff = rBiomeT4();
var tGrassA = rBiomeT5();
var tGrassB = rBiomeT6();
var tGrassC = rBiomeT7();
var tHill = rBiomeT8();
var tDirt = rBiomeT9();
var tRoad = rBiomeT10();
var tRoadWild = rBiomeT11();
var tGrassPatch = rBiomeT12();
var tShoreBlend = rBiomeT13();
var tShore = rBiomeT14();
var tWater = rBiomeT15();
// gaia entities
var oOak = "gaia/flora_tree_oak";
var oOakLarge = "gaia/flora_tree_oak_large";
var oApple = "gaia/flora_tree_apple";
var oPine = "gaia/flora_tree_pine";
var oAleppoPine = "gaia/flora_tree_aleppo_pine";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_deer";
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_sheep";
var oStoneLarge = "gaia/geology_stonemine_medit_quarry";
var oStoneSmall = "gaia/geology_stone_mediterranean";
var oMetalLarge = "gaia/geology_metal_mediterranean_slabs";
var oOak = rBiomeE1();
var oOakLarge = rBiomeE2();
var oApple = rBiomeE3();
var oPine = rBiomeE4();
var oAleppoPine = rBiomeE5();
var oBerryBush = rBiomeE6();
var oChicken = rBiomeE7();
var oDeer = rBiomeE8();
var oFish = rBiomeE9();
var oSheep = rBiomeE10();
var oStoneLarge = rBiomeE11();
var oStoneSmall = rBiomeE12();
var oMetalLarge = rBiomeE13();
// decorative props
var aGrass = "actor|props/flora/grass_soft_large_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_large.xml";
var aReeds = "actor|props/flora/reeds_pond_lush_a.xml";
var aLillies = "actor|props/flora/pond_lillies_large.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/bush_medit_me.xml";
var aBushSmall = "actor|props/flora/bush_medit_sm.xml";
// terrain + entity (for painting)
}
//snowy
else if (rt == 2)
{
setSunColour(0.550, 0.601, 0.644); // a little darker
var tGrass = ["polar_snow_b", "snow grass 75", "snow rocks", "snow forest"];
var tGrassPForest = "polar_tundra_snow";
var tGrassDForest = "polar_tundra_snow";
var tCliff = ["polar_cliff_a", "polar_cliff_b"];
var tGrassA = "snow grass 2";
var tGrassB = "polar_snow_a";
var tGrassC = "polar_ice_snow";
var tHill = ["polar_snow_rocks", "polar_cliff_snow"];
var tDirt = ["polar_ice_b", "polar_ice_c"];
var tRoad = "new_alpine_citytile";
var tRoadWild = "polar_ice_cracked";
var tGrassPatch = "snow grass 2";
var tShoreBlend = "polar_ice";
var tShore = "snow_glacial_01";
var tWater = "polar_ice_c";
// gaia entities
var oOak = "gaia/flora_tree_pine_w";
var oOakLarge = "gaia/flora_tree_pine_w";
var oApple = "gaia/flora_tree_pine_w";
var oPine = "gaia/flora_tree_pine_w";
var oAleppoPine = "gaia/flora_tree_pine";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_muskox";
var oFish = "gaia/fauna_fish_tuna";
var oSheep = "gaia/fauna_walrus";
var oStoneLarge = "gaia/geology_stone_alpine_a";
var oStoneSmall = "gaia/geology_stone_alpine_a";
var oMetalLarge = "gaia/geology_metal_alpine";
// decorative props
var aGrass = "actor|props/flora/grass_soft_dry_small_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_dry_large.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/bush_desert_dry_a.xml";
var aBushSmall = "actor|props/flora/bush_desert_dry_a.xml";
// terrain + entity (for painting)
}
//desert
else if (rt == 3)
{
setSunColour(0.733, 0.746, 0.574);
var tGrass = ["desert_dirt_rough", "desert_dirt_rough_2", "desert_sand_dunes_50", "desert_sand_smooth"];
var tGrassPForest = "forestfloor_dirty";
var tGrassDForest = "desert_forestfloor_palms";
var tCliff = ["desert_cliff_1", "desert_cliff_2", "desert_cliff_3", "desert_cliff_4", "desert_cliff_5"];
var tGrassA = ["desert_dirt_persia_1", "desert_dirt_persia_2"];
var tGrassB = "dirta";
var tGrassC = "medit_dirt_dry";
var tHill = ["desert_dirt_rocks_1", "desert_dirt_rocks_2", "desert_dirt_rocks_3"];
var tDirt = ["desert_lakebed_dry", "desert_lakebed_dry_b"];
var tRoad = "desert_city_tile";
var tRoadWild = "desert_city_tile";
var tGrassPatch = "desert_dirt_rough";
var tShoreBlend = "desert_shore_stones";
var tShore = "dirta";
var tWater = "desert_sand_wet";
// gaia entities
var oOak = "gaia/flora_tree_cretan_date_palm_short";
var oOakLarge = "gaia/flora_tree_cretan_date_palm_tall";
var oApple = "gaia/flora_tree_fig";
var oPine = "gaia/flora_tree_dead";
var oAleppoPine = "gaia/flora_tree_date_palm";
var oBerryBush = "gaia/flora_bush_grapes";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_camel";
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_gazelle";
var oStoneLarge = "gaia/geology_stonemine_desert_quarry";
var oStoneSmall = "gaia/geology_stone_desert_small";
var oMetalLarge = "gaia/geology_metal_desert_slabs";
// decorative props
var aGrass = "actor|props/flora/grass_soft_dry_small_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_dry_large.xml";
var aRockLarge = "actor|geology/stone_desert_med.xml";
var aRockMedium = "actor|geology/stone_desert_med.xml";
var aBushMedium = "actor|props/flora/bush_desert_dry_a.xml";
var aBushSmall = "actor|props/flora/bush_desert_dry_a.xml";
// terrain + entity (for painting)
}
//alpine
else if (rt == 4)
{
var tGrass = ["alpine_dirt_grass_50"];
var tGrassPForest = "alpine_forrestfloor";
var tGrassDForest = "alpine_forrestfloor";
var tCliff = ["alpine_cliff_a", "alpine_cliff_b", "alpine_cliff_c"];
var tGrassA = "alpine_grass_rocky";
var tGrassB = ["alpine_grass_snow_50", "alpine_dirt_snow"];
var tGrassC = ["alpine_snow_a", "alpine_snow_b"];
var tHill = "alpine_cliff_snow";
var tDirt = ["alpine_dirt", "alpine_grass_d"];
var tRoad = "new_alpine_citytile";
var tRoadWild = "new_alpine_citytile";
var tGrassPatch = "new_alpine_grass_a";
var tShoreBlend = "alpine_shore_rocks";
var tShore = "alpine_shore_rocks_grass_50";
var tWater = "alpine_shore_rocks";
// gaia entities
var oOak = "gaia/flora_tree_pine";
var oOakLarge = "gaia/flora_tree_pine";
var oApple = "gaia/flora_tree_pine";
var oPine = "gaia/flora_tree_pine";
var oAleppoPine = "gaia/flora_tree_pine";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_goat";
var oFish = "gaia/fauna_fish_tuna";
var oSheep = "gaia/fauna_deer";
var oStoneLarge = "gaia/geology_stone_alpine_a";
var oStoneSmall = "gaia/geology_stone_alpine_a";
var oMetalLarge = "gaia/geology_metal_alpine";
// decorative props
var aGrass = "actor|props/flora/grass_soft_dry_small_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_dry_large.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/bush_desert_dry_a.xml";
var aBushSmall = "actor|props/flora/bush_desert_dry_a.xml";
// terrain + entity (for painting)
}
//medit
else if (rt == 5){
var tGrass = ["medit_grass_field_a", "medit_grass_field_b"];
var tGrassPForest = "medit_plants_dirt";
var tGrassDForest = "medit_grass_shrubs";
var tCliff = ["medit_cliff_grass", "medit_cliff_greek", "medit_cliff_greek_2", "medit_cliff_aegean", "medit_cliff_italia", "medit_cliff_italia_grass"];
var tGrassA = "medit_grass_field_b";
var tGrassB = "medit_grass_field_brown";
var tGrassC = "medit_grass_field_dry";
var tHill = ["medit_rocks_grass_shrubs", "medit_rocks_shrubs"];
var tDirt = ["medit_dirt", "medit_dirt_b"];
var tRoad = "medit_city_tile";
var tRoadWild = "medit_city_tile";
var tGrassPatch = "medit_grass_wild";
var tShoreBlend = "medit_sand";
var tShore = "sand_grass_25";
var tWater = "medit_sand_wet";
// gaia entities
var oOak = "gaia/flora_tree_cretan_date_palm_short";
var oOakLarge = "gaia/flora_tree_medit_fan_palm";
var oApple = "gaia/flora_tree_apple";
var oPine = "gaia/flora_tree_cypress";
var oAleppoPine = "gaia/flora_tree_aleppo_pine";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_deer";
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_sheep";
var oStoneLarge = "gaia/geology_stonemine_medit_quarry";
var oStoneSmall = "gaia/geology_stone_mediterranean";
var oMetalLarge = "gaia/geology_metal_mediterranean_slabs";
// decorative props
var aGrass = "actor|props/flora/grass_soft_large_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_large.xml";
var aReeds = "actor|props/flora/reeds_pond_lush_a.xml";
var aLillies = "actor|props/flora/pond_lillies_large.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/bush_medit_me.xml";
var aBushSmall = "actor|props/flora/bush_medit_sm.xml";
// terrain + entity (for painting)
}
//savanah
else if (rt == 6)
{
var tGrass = ["savanna_grass_a", "savanna_grass_b"];
var tGrassPForest = "savanna_forestfloor_a";
var tGrassDForest = "savanna_forestfloor_b";
var tCliff = ["savanna_cliff_a", "savanna_cliff_b"];
var tGrassA = "savanna_shrubs_a";
var tGrassB = "savanna_dirt_rocks_b";
var tGrassC = "dirt_brown_e";
var tHill = ["savanna_grass_a", "savanna_grass_b"];
var tDirt = ["savanna_dirt_rocks_b", "dirt_brown_e"];
var tRoad = "savanna_tile_a";
var tRoadWild = "savanna_tile_a";
var tGrassPatch = "savanna_grass_a";
var tShoreBlend = "savanna_riparian";
var tShore = "savanna_riparian_bank";
var tWater = "savanna_riparian_wet";
// gaia entities
var oOak = "gaia/flora_tree_baobab";
var oOakLarge = "gaia/flora_tree_baobab";
var oApple = "gaia/flora_tree_baobab";
var oPine = "gaia/flora_tree_baobab";
var oAleppoPine = "gaia/flora_tree_baobab";
var oBerryBush = "gaia/flora_bush_grapes";
var oChicken = "gaia/fauna_chicken";
var rts = randInt(1,4);
if (rts==1){
var oDeer = "gaia/fauna_wildebeest";
}
else if (rts==2)
{
var oDeer = "gaia/fauna_zebra";
}
else if (rts==3)
{
var oDeer = "gaia/fauna_giraffe";
}
else if (rts==4)
{
var oDeer = "gaia/fauna_elephant_african_bush";
}
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_gazelle";
var oStoneLarge = "gaia/geology_stonemine_desert_quarry";
var oStoneSmall = "gaia/geology_stone_savanna_small";
var oMetalLarge = "gaia/geology_metal_savanna_slabs";
// decorative props
var aGrass = "actor|props/flora/grass_savanna.xml";
var aGrassShort = "actor|props/flora/grass_medit_field.xml";
var aRockLarge = "actor|geology/stone_savanna_med.xml";
var aRockMedium = "actor|geology/stone_savanna_med.xml";
var aBushMedium = "actor|props/flora/bush_desert_dry_a.xml";
var aBushSmall = "actor|props/flora/bush_dry_a.xml";
// terrain + entity (for painting)
}
else if (rt == 7){
var tGrass = ["tropic_grass_c", "tropic_grass_c", "tropic_grass_c", "tropic_grass_c", "tropic_grass_plants", "tropic_plants", "tropic_plants_b"];
var tGrassPForest = "tropic_plants_c";
var tGrassDForest = "tropic_plants_c";
var tCliff = ["tropic_cliff_a", "tropic_cliff_a", "tropic_cliff_a", "tropic_cliff_a_plants"];
var tGrassA = "tropic_grass_c";
var tGrassB = "tropic_grass_plants";
var tGrassC = "tropic_plants";
var tHill = ["tropic_cliff_grass"];
var tDirt = ["tropic_dirt_a", "tropic_dirt_a_plants"];
var tRoad = "tropic_citytile_a";
var tRoadWild = "tropic_citytile_plants";
var tGrassPatch = "tropic_plants_b";
var tShoreBlend = "temp_mud_plants";
var tShore = "tropic_beach_dry";
var tWater = "tropic_beach_wet";
// gaia entities
var oOak = "gaia/flora_tree_poplar";
var oOakLarge = "gaia/flora_tree_poplar";
var oApple = "gaia/flora_tree_poplar";
var oPine = "gaia/flora_tree_cretan_date_palm_short";
var oAleppoPine = "gaia/flora_tree_cretan_date_palm_tall";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_deer";
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_tiger";
var oStoneLarge = "gaia/geology_stonemine_tropic_quarry";
var oStoneSmall = "gaia/geology_stone_tropic_a";
var oMetalLarge = "gaia/geology_metal_tropic_slabs";
// decorative props
var aGrass = "actor|props/flora/plant_tropic_a.xml";
var aGrassShort = "actor|props/flora/plant_lg.xml";
var aReeds = "actor|props/flora/reeds_pond_lush_b.xml";
var aLillies = "actor|props/flora/water_lillies.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/plant_tropic_large.xml";
var aBushSmall = "actor|props/flora/plant_tropic_large.xml";
// terrain + entity (for painting)
}
var aGrass = rBiomeA1();
var aGrassShort = rBiomeA2();
var aReeds = rBiomeA3();
var aLillies = rBiomeA4();
var aRockLarge = rBiomeA5();
var aRockMedium = rBiomeA6();
var aBushMedium = rBiomeA7();
var aBushSmall = rBiomeA8();
var pForestD = [tGrassDForest + TERRAIN_SEPARATOR + oOak, tGrassDForest + TERRAIN_SEPARATOR + oOakLarge, tGrassDForest];
var pForestP = [tGrassPForest + TERRAIN_SEPARATOR + oPine, tGrassPForest + TERRAIN_SEPARATOR + oAleppoPine, tGrassPForest];
@ -444,27 +154,8 @@ for (var i = 0; i < numPlayers; i++)
// get civ specific starting entities
var civEntities = getStartingEntities(id-1);
// create the TC
var group = new SimpleGroup( // elements (type, min/max count, min/max distance, min/max angle)
[new SimpleObject(civEntities[0].Template, 1,1, 0,0, BUILDING_ANGlE, BUILDING_ANGlE)],
true, null, ix, iz
);
createObjectGroup(group, id);
// create starting units
var uDist = 6;
var uSpace = 2;
for (var j = 1; j < civEntities.length; ++j)
{
var uAngle = -BUILDING_ANGlE + PI * (j - 1) / 2;
var count = (civEntities[j].Count !== undefined ? civEntities[j].Count : 1);
for (var numberofentities = 0; numberofentities < count; numberofentities++)
{
var ux = fx + uDist * cos(uAngle) + numberofentities * uSpace * cos(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * cos(uAngle + PI/2));
var uz = fz + uDist * sin(uAngle) + numberofentities * uSpace * sin(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * sin(uAngle + PI/2));
placeObject(ux, uz, civEntities[j].Template, id, (j % 2 - 1) * PI + uAngle);
}
}
createStartingPlayerEntities(fx, fz, id, civEntities, BUILDING_ANGlE)
// create animals
for (var j = 0; j < 2; ++j)
@ -473,7 +164,7 @@ for (var i = 0; i < numPlayers; i++)
var aDist = 7;
var aX = round(fx + aDist * cos(aAngle));
var aZ = round(fz + aDist * sin(aAngle));
group = new SimpleGroup(
var group = new SimpleGroup(
[new SimpleObject(oChicken, 5,5, 0,3)],
true, clBaseResource, aX, aZ
);

View File

@ -58,28 +58,12 @@ for (var i=0; i < numPlayers; i++)
// get civ specific starting entities
var civEntities = getStartingEntities(id-1);
// create the TC
var group = new SimpleGroup( // elements (type, min/max count, min/max distance, min/max angle)
[new SimpleObject(civEntities[0].Template, 1,1, 0,0, BUILDING_ANGlE, BUILDING_ANGlE)],
true, null, ix, iz
);
createObjectGroup(group, id);
// create starting units
var uDist = 6;
var uSpace = 2;
for (var j = 1; j < civEntities.length; ++j)
{
var uAngle = -BUILDING_ANGlE + PI * (j - 1) / 2;
var count = (civEntities[j].Count !== undefined ? civEntities[j].Count : 1);
for (var numberofentities = 0; numberofentities < count; numberofentities++)
{
var ux = fx + uDist * cos(uAngle) + numberofentities * uSpace * cos(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * cos(uAngle + PI/2));
var uz = fz + uDist * sin(uAngle) + numberofentities * uSpace * sin(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * sin(uAngle + PI/2));
placeObject(ux, uz, civEntities[j].Template, id, (j % 2 - 1) * PI + uAngle);
}
}
createStartingPlayerEntities(fx, fz, id, civEntities, BUILDING_ANGlE)
}
// Export map data
ExportMap();

View File

@ -113,27 +113,8 @@ for (var i = 0; i < numPlayers; i++)
// get civ specific starting entities
var civEntities = getStartingEntities(id-1);
// create the TC
var group = new SimpleGroup( // elements (type, min/max count, min/max distance, min/max angle)
[new SimpleObject(civEntities[0].Template, 1,1, 0,0, BUILDING_ANGlE, BUILDING_ANGlE)],
true, null, ix, iz
);
createObjectGroup(group, id);
// create starting units
var uDist = 6;
var uSpace = 2;
for (var j = 1; j < civEntities.length; ++j)
{
var uAngle = -BUILDING_ANGlE + PI * (j - 1) / 2;
var count = (civEntities[j].Count !== undefined ? civEntities[j].Count : 1);
for (var numberofentities = 0; numberofentities < count; numberofentities++)
{
var ux = fx + uDist * cos(uAngle) + numberofentities * uSpace * cos(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * cos(uAngle + PI/2));
var uz = fz + uDist * sin(uAngle) + numberofentities * uSpace * sin(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * sin(uAngle + PI/2));
placeObject(ux, uz, civEntities[j].Template, id, (j % 2 - 1) * PI + uAngle);
}
}
createStartingPlayerEntities(fx, fz, id, civEntities, BUILDING_ANGlE)
// create animals
for (var j = 0; j < 2; ++j)
@ -142,7 +123,7 @@ for (var i = 0; i < numPlayers; i++)
var aDist = 7;
var aX = round(fx + aDist * cos(aAngle));
var aZ = round(fz + aDist * sin(aAngle));
group = new SimpleGroup(
var group = new SimpleGroup(
[new SimpleObject(oChicken, 5,5, 0,3)],
true, clBaseResource, aX, aZ
);

View File

@ -1,48 +1,7 @@
RMS.LoadLibrary("rmgen");
//TILE_CENTERED_HEIGHT_MAP = true;
function rndRiver(f, seed)
{
var rndRq = seed;
var rndRw = rndRq;
var rndRe = 0;
var rndRr = f-floor(f);
var rndRa = 0;
for (var rndRx=0; rndRx<=floor(f); rndRx++)
{
rndRw = 10*(rndRw-floor(rndRw));
}
if (rndRx%2==0)
{
var rndRs = -1;
}
else
{
var rndRs = 1;
}
rndRe = (floor(rndRw))%5;
if (rndRe==0)
{
rndRa = (rndRs)*2.3*(rndRr)*(rndRr-1)*(rndRr-0.5)*(rndRr-0.5);
}
else if (rndRe==1)
{
rndRa = (rndRs)*2.6*(rndRr)*(rndRr-1)*(rndRr-0.3)*(rndRr-0.7);
}
else if (rndRe==2)
{
rndRa = (rndRs)*22*(rndRr)*(rndRr-1)*(rndRr-0.2)*(rndRr-0.3)*(rndRr-0.3)*(rndRr-0.8);
}
else if (rndRe==3)
{
rndRa = (rndRs)*180*(rndRr)*(rndRr-1)*(rndRr-0.2)*(rndRr-0.2)*(rndRr-0.4)*(rndRr-0.6)*(rndRr-0.6)*(rndRr-0.8);
}
else if (rndRe==4)
{
rndRa = (rndRs)*2.6*(rndRr)*(rndRr-1)*(rndRr-0.5)*(rndRr-0.7);
}
return rndRa;
}
const tCity = "medit_city_pavement";
const tCityPlaza = "medit_city_pavement";
@ -158,27 +117,8 @@ for (var i = 0; i < numPlayers; i++)
// get civ specific starting entities
var civEntities = getStartingEntities(id-1);
// create the TC
var group = new SimpleGroup( // elements (type, min/max count, min/max distance, min/max angle)
[new SimpleObject(civEntities[0].Template, 1,1, 0,0, BUILDING_ANGlE, BUILDING_ANGlE)],
true, null, ix, iz
);
createObjectGroup(group, id);
// create starting units
var uDist = 6;
var uSpace = 2;
for (var j = 1; j < civEntities.length; ++j)
{
var uAngle = -BUILDING_ANGlE + PI * (j - 1) / 2;
var count = (civEntities[j].Count !== undefined ? civEntities[j].Count : 1);
for (var numberofentities = 0; numberofentities < count; numberofentities++)
{
var ux = fx + uDist * cos(uAngle) + numberofentities * uSpace * cos(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * cos(uAngle + PI/2));
var uz = fz + uDist * sin(uAngle) + numberofentities * uSpace * sin(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * sin(uAngle + PI/2));
placeObject(ux, uz, civEntities[j].Template, id, (j % 2 - 1) * PI + uAngle);
}
}
createStartingPlayerEntities(fx, fz, id, civEntities, BUILDING_ANGlE)
// create animals
for (var j = 0; j < 2; ++j)
@ -187,7 +127,7 @@ for (var i = 0; i < numPlayers; i++)
var aDist = 7;
var aX = round(fx + aDist * cos(aAngle));
var aZ = round(fz + aDist * sin(aAngle));
group = new SimpleGroup(
var group = new SimpleGroup(
[new SimpleObject(oChicken, 5,5, 0,3)],
true, clBaseResource, aX, aZ
);

View File

@ -1,395 +1,49 @@
RMS.LoadLibrary("rmgen");
//very important. DO NOT CHANGE ANYTHING. this is
//rndRiver is a fuction that creates random values useful for making the river jagged.
//it works the same as sin or cos function. the only difference is that it's period is 1 instead of 2*pi
//it needs the "seed" parameter to use it to make random curves that don't get broken.
//seed must be created using randFloat(). or else it won't work
function rndRiver(f, seed)
{
var rndRq = sqrt(seed);
var rndRw = rndRq;
var rndRe = 0;
var rndRr = f-floor(f);
var rndRa = 0;
for (var rndRx=0; rndRx<=floor(f); rndRx++)
{
rndRw = 10*(rndRw-floor(rndRw));
}
if (rndRx%2==0)
{
var rndRs = -1;
}
else
{
var rndRs = 1;
}
rndRe = (floor(rndRw))%5;
if (rndRe==0)
{
rndRa = (rndRs)*2.3*(rndRr)*(rndRr-1)*(rndRr-0.5)*(rndRr-0.5);
}
else if (rndRe==1)
{
rndRa = (rndRs)*2.6*(rndRr)*(rndRr-1)*(rndRr-0.3)*(rndRr-0.7);
}
else if (rndRe==2)
{
rndRa = (rndRs)*22*(rndRr)*(rndRr-1)*(rndRr-0.2)*(rndRr-0.3)*(rndRr-0.3)*(rndRr-0.8);
}
else if (rndRe==3)
{
rndRa = (rndRs)*180*(rndRr)*(rndRr-1)*(rndRr-0.2)*(rndRr-0.2)*(rndRr-0.4)*(rndRr-0.6)*(rndRr-0.6)*(rndRr-0.8);
}
else if (rndRe==4)
{
rndRa = (rndRs)*2.6*(rndRr)*(rndRr-1)*(rndRr-0.5)*(rndRr-0.7);
}
return rndRa;
}
//random terrain textures
var rt = randInt(1,7);
//temperate
if (rt == 1){
var tGrass = ["temp_grass_long_b"];
var tGrassPForest = "temp_forestfloor_pine";
var tGrassDForest = "temp_plants_bog";
var tCliff = ["temp_cliff_a", "temp_cliff_b"];
var tGrassA = "temp_grass_d";
var tGrassB = "temp_grass_c";
var tGrassC = "temp_grass_clovers_2";
var tHill = ["temp_dirt_gravel", "temp_dirt_gravel_b"];
var tDirt = ["temp_dirt_gravel", "temp_dirt_gravel_b"];
var tRoad = "temp_road";
var tRoadWild = "temp_road_overgrown";
var tGrassPatch = "temp_grass_plants";
var tShoreBlend = "temp_mud_plants";
var tShore = "sand_grass_25";
var tWater = "medit_sand_wet";
var rt = randomizeBiome();
var tGrass = rBiomeT1();
var tGrassPForest = rBiomeT2();
var tGrassDForest = rBiomeT3();
var tCliff = rBiomeT4();
var tGrassA = rBiomeT5();
var tGrassB = rBiomeT6();
var tGrassC = rBiomeT7();
var tHill = rBiomeT8();
var tDirt = rBiomeT9();
var tRoad = rBiomeT10();
var tRoadWild = rBiomeT11();
var tGrassPatch = rBiomeT12();
var tShoreBlend = rBiomeT13();
var tShore = rBiomeT14();
var tWater = rBiomeT15();
// gaia entities
var oOak = "gaia/flora_tree_oak";
var oOakLarge = "gaia/flora_tree_oak_large";
var oApple = "gaia/flora_tree_apple";
var oPine = "gaia/flora_tree_pine";
var oAleppoPine = "gaia/flora_tree_aleppo_pine";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_deer";
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_sheep";
var oStoneLarge = "gaia/geology_stonemine_medit_quarry";
var oStoneSmall = "gaia/geology_stone_mediterranean";
var oMetalLarge = "gaia/geology_metal_mediterranean_slabs";
var oOak = rBiomeE1();
var oOakLarge = rBiomeE2();
var oApple = rBiomeE3();
var oPine = rBiomeE4();
var oAleppoPine = rBiomeE5();
var oBerryBush = rBiomeE6();
var oChicken = rBiomeE7();
var oDeer = rBiomeE8();
var oFish = rBiomeE9();
var oSheep = rBiomeE10();
var oStoneLarge = rBiomeE11();
var oStoneSmall = rBiomeE12();
var oMetalLarge = rBiomeE13();
// decorative props
var aGrass = "actor|props/flora/grass_soft_large_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_large.xml";
var aReeds = "actor|props/flora/reeds_pond_lush_a.xml";
var aLillies = "actor|props/flora/water_lillies.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/bush_medit_me.xml";
var aBushSmall = "actor|props/flora/bush_medit_sm.xml";
// terrain + entity (for painting)
}
//snowy
else if (rt == 2)
{
setSunColour(0.550, 0.601, 0.644); // a little darker
var tGrass = ["polar_snow_b", "snow grass 75", "snow rocks", "snow forest"];
var tGrassPForest = "polar_tundra_snow";
var tGrassDForest = "polar_tundra_snow";
var tCliff = ["polar_cliff_a", "polar_cliff_b"];
var tGrassA = "snow grass 2";
var tGrassB = "polar_snow_a";
var tGrassC = "polar_ice_snow";
var tHill = ["polar_snow_rocks", "polar_cliff_snow"];
var tDirt = ["polar_ice_b", "polar_ice_c"];
var tRoad = "new_alpine_citytile";
var tRoadWild = "polar_ice_cracked";
var tGrassPatch = "snow grass 2";
var tShoreBlend = "polar_ice";
var tShore = "alpine_shore_rocks_icy";
var tWater = "alpine_shore_rocks";
// gaia entities
var oOak = "gaia/flora_tree_pine_w";
var oOakLarge = "gaia/flora_tree_pine_w";
var oApple = "gaia/flora_tree_pine_w";
var oPine = "gaia/flora_tree_pine_w";
var oAleppoPine = "gaia/flora_tree_pine";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_muskox";
var oFish = "gaia/fauna_fish_tuna";
var oSheep = "gaia/fauna_walrus";
var oStoneLarge = "gaia/geology_stone_alpine_a";
var oStoneSmall = "gaia/geology_stone_alpine_a";
var oMetalLarge = "gaia/geology_metal_alpine";
// decorative props
var aGrass = "actor|props/flora/grass_soft_dry_small_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_dry_large.xml";
var aReeds = "actor|props/flora/reeds_pond_dry.xml";
var aLillies = "actor|geology/stone_granite_large.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/bush_desert_dry_a.xml";
var aBushSmall = "actor|props/flora/bush_desert_dry_a.xml";
// terrain + entity (for painting)
}
//desert
else if (rt == 3)
{
setSunColour(0.733, 0.746, 0.574);
var tGrass = ["desert_dirt_rough", "desert_dirt_rough_2", "desert_sand_dunes_50", "desert_sand_smooth"];
var tGrassPForest = "forestfloor_dirty";
var tGrassDForest = "desert_forestfloor_palms";
var tCliff = ["desert_cliff_1", "desert_cliff_2", "desert_cliff_3", "desert_cliff_4", "desert_cliff_5"];
var tGrassA = ["desert_dirt_persia_1", "desert_dirt_persia_2"];
var tGrassB = "dirta";
var tGrassC = "medit_dirt_dry";
var tHill = ["desert_dirt_rocks_1", "desert_dirt_rocks_2", "desert_dirt_rocks_3"];
var tDirt = ["desert_lakebed_dry", "desert_lakebed_dry_b"];
var tRoad = "desert_city_tile";
var tRoadWild = "desert_city_tile";
var tGrassPatch = "desert_dirt_rough";
var tShoreBlend = "desert_shore_stones";
var tShore = "dirta";
var tWater = "desert_sand_wet";
// gaia entities
var oOak = "gaia/flora_tree_cretan_date_palm_short";
var oOakLarge = "gaia/flora_tree_cretan_date_palm_tall";
var oApple = "gaia/flora_tree_fig";
var oPine = "gaia/flora_tree_dead";
var oAleppoPine = "gaia/flora_tree_date_palm";
var oBerryBush = "gaia/flora_bush_grapes";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_camel";
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_gazelle";
var oStoneLarge = "gaia/geology_stonemine_desert_quarry";
var oStoneSmall = "gaia/geology_stone_desert_small";
var oMetalLarge = "gaia/geology_metal_desert_slabs";
// decorative props
var aGrass = "actor|props/flora/grass_soft_dry_small_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_dry_large.xml";
var aReeds = "actor|props/flora/reeds_pond_lush_a.xml";
var aLillies = "actor|props/flora/reeds_pond_lush_b.xml";
var aRockLarge = "actor|geology/stone_desert_med.xml";
var aRockMedium = "actor|geology/stone_desert_med.xml";
var aBushMedium = "actor|props/flora/bush_desert_dry_a.xml";
var aBushSmall = "actor|props/flora/bush_desert_dry_a.xml";
// terrain + entity (for painting)
}
//alpine
else if (rt == 4)
{
var tGrass = ["alpine_dirt_grass_50"];
var tGrassPForest = "alpine_forrestfloor";
var tGrassDForest = "alpine_forrestfloor";
var tCliff = ["alpine_cliff_a", "alpine_cliff_b", "alpine_cliff_c"];
var tGrassA = "alpine_grass_rocky";
var tGrassB = ["alpine_grass_snow_50", "alpine_dirt_snow"];
var tGrassC = ["alpine_snow_a", "alpine_snow_b"];
var tHill = "alpine_cliff_snow";
var tDirt = ["alpine_dirt", "alpine_grass_d"];
var tRoad = "new_alpine_citytile";
var tRoadWild = "new_alpine_citytile";
var tGrassPatch = "new_alpine_grass_a";
var tShoreBlend = "alpine_shore_rocks";
var tShore = "alpine_shore_rocks_grass_50";
var tWater = "alpine_shore_rocks";
// gaia entities
var oOak = "gaia/flora_tree_pine";
var oOakLarge = "gaia/flora_tree_pine";
var oApple = "gaia/flora_tree_pine";
var oPine = "gaia/flora_tree_pine";
var oAleppoPine = "gaia/flora_tree_pine";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_goat";
var oFish = "gaia/fauna_fish_tuna";
var oSheep = "gaia/fauna_deer";
var oStoneLarge = "gaia/geology_stone_alpine_a";
var oStoneSmall = "gaia/geology_stone_alpine_a";
var oMetalLarge = "gaia/geology_metal_alpine";
// decorative props
var aGrass = "actor|props/flora/grass_soft_dry_small_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_dry_large.xml";
var aReeds = "actor|props/flora/reeds_pond_dry.xml";
var aLillies = "actor|geology/stone_granite_large.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/bush_desert_dry_a.xml";
var aBushSmall = "actor|props/flora/bush_desert_dry_a.xml";
// terrain + entity (for painting)
}
//medit
else if (rt == 5){
var tGrass = ["medit_grass_field_a", "medit_grass_field_b"];
var tGrassPForest = "medit_plants_dirt";
var tGrassDForest = "medit_grass_shrubs";
var tCliff = ["medit_cliff_grass", "medit_cliff_greek", "medit_cliff_greek_2", "medit_cliff_aegean", "medit_cliff_italia", "medit_cliff_italia_grass"];
var tGrassA = "medit_grass_field_b";
var tGrassB = "medit_grass_field_brown";
var tGrassC = "medit_grass_field_dry";
var tHill = ["medit_rocks_grass_shrubs", "medit_rocks_shrubs"];
var tDirt = ["medit_dirt", "medit_dirt_b"];
var tRoad = "medit_city_tile";
var tRoadWild = "medit_city_tile";
var tGrassPatch = "medit_grass_wild";
var tShoreBlend = "medit_sand";
var tShore = "medit_rocks";
var tWater = "medit_rocks_wet";
// gaia entities
var oOak = "gaia/flora_tree_cretan_date_palm_short";
var oOakLarge = "gaia/flora_tree_medit_fan_palm";
var oApple = "gaia/flora_tree_apple";
var oPine = "gaia/flora_tree_cypress";
var oAleppoPine = "gaia/flora_tree_aleppo_pine";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_deer";
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_sheep";
var oStoneLarge = "gaia/geology_stonemine_medit_quarry";
var oStoneSmall = "gaia/geology_stone_mediterranean";
var oMetalLarge = "gaia/geology_metal_mediterranean_slabs";
// decorative props
var aGrass = "actor|props/flora/grass_soft_large_tall.xml";
var aGrassShort = "actor|props/flora/grass_soft_large.xml";
var aReeds = "actor|props/flora/reeds_pond_lush_b.xml";
var aLillies = "actor|props/flora/water_lillies.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/bush_medit_me.xml";
var aBushSmall = "actor|props/flora/bush_medit_sm.xml";
// terrain + entity (for painting)
}
//savanah
else if (rt == 6)
{
var tGrass = ["savanna_grass_a", "savanna_grass_b"];
var tGrassPForest = "savanna_forestfloor_a";
var tGrassDForest = "savanna_forestfloor_b";
var tCliff = ["savanna_cliff_a", "savanna_cliff_b"];
var tGrassA = "savanna_shrubs_a";
var tGrassB = "savanna_dirt_rocks_b";
var tGrassC = "dirt_brown_e";
var tHill = ["savanna_grass_a", "savanna_grass_b"];
var tDirt = ["savanna_dirt_rocks_b", "dirt_brown_e"];
var tRoad = "savanna_tile_a";
var tRoadWild = "savanna_tile_a";
var tGrassPatch = "savanna_grass_a";
var tShoreBlend = "savanna_riparian";
var tShore = "savanna_riparian_bank";
var tWater = "savanna_riparian_wet";
// gaia entities
var oOak = "gaia/flora_tree_baobab";
var oOakLarge = "gaia/flora_tree_baobab";
var oApple = "gaia/flora_tree_baobab";
var oPine = "gaia/flora_tree_baobab";
var oAleppoPine = "gaia/flora_tree_baobab";
var oBerryBush = "gaia/flora_bush_grapes";
var oChicken = "gaia/fauna_chicken";
var rts = randInt(1,4);
if (rts==1){
var oDeer = "gaia/fauna_wildebeest";
}
else if (rts==2)
{
var oDeer = "gaia/fauna_zebra";
}
else if (rts==3)
{
var oDeer = "gaia/fauna_giraffe";
}
else if (rts==4)
{
var oDeer = "gaia/fauna_elephant_african_bush";
}
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_gazelle";
var oStoneLarge = "gaia/geology_stonemine_desert_quarry";
var oStoneSmall = "gaia/geology_stone_savanna_small";
var oMetalLarge = "gaia/geology_metal_savanna_slabs";
// decorative props
var aGrass = "actor|props/flora/grass_savanna.xml";
var aGrassShort = "actor|props/flora/grass_medit_field.xml";
var aReeds = "actor|props/flora/reeds_pond_lush_a.xml";
var aLillies = "actor|props/flora/reeds_pond_lush_b.xml";
var aRockLarge = "actor|geology/stone_savanna_med.xml";
var aRockMedium = "actor|geology/stone_savanna_med.xml";
var aBushMedium = "actor|props/flora/bush_desert_dry_a.xml";
var aBushSmall = "actor|props/flora/bush_dry_a.xml";
// terrain + entity (for painting)
}
//tropic
else if (rt == 7){
var tGrass = ["tropic_grass_c", "tropic_grass_c", "tropic_grass_c", "tropic_grass_c", "tropic_grass_plants", "tropic_plants", "tropic_plants_b"];
var tGrassPForest = "tropic_plants_c";
var tGrassDForest = "tropic_plants_c";
var tCliff = ["tropic_cliff_a", "tropic_cliff_a", "tropic_cliff_a", "tropic_cliff_a_plants"];
var tGrassA = "tropic_grass_c";
var tGrassB = "tropic_grass_plants";
var tGrassC = "tropic_plants";
var tHill = ["tropic_cliff_grass"];
var tDirt = ["tropic_dirt_a", "tropic_dirt_a_plants"];
var tRoad = "tropic_citytile_a";
var tRoadWild = "tropic_citytile_plants";
var tGrassPatch = "tropic_plants_b";
var tShoreBlend = "temp_mud_plants";
var tShore = "tropic_dirt_a_plants";
var tWater = "tropic_mud_a";
// gaia entities
var oOak = "gaia/flora_tree_poplar";
var oOakLarge = "gaia/flora_tree_poplar";
var oApple = "gaia/flora_tree_poplar";
var oPine = "gaia/flora_tree_cretan_date_palm_short";
var oAleppoPine = "gaia/flora_tree_cretan_date_palm_tall";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oDeer = "gaia/fauna_deer";
var oFish = "gaia/fauna_fish";
var oSheep = "gaia/fauna_tiger";
var oStoneLarge = "gaia/geology_stonemine_tropic_quarry";
var oStoneSmall = "gaia/geology_stone_tropic_a";
var oMetalLarge = "gaia/geology_metal_tropic_slabs";
// decorative props
var aGrass = "actor|props/flora/plant_tropic_a.xml";
var aGrassShort = "actor|props/flora/plant_lg.xml";
var aReeds = "actor|props/flora/reeds_pond_lush_b.xml";
var aLillies = "actor|props/flora/water_lillies.xml";
var aRockLarge = "actor|geology/stone_granite_large.xml";
var aRockMedium = "actor|geology/stone_granite_med.xml";
var aBushMedium = "actor|props/flora/plant_tropic_large.xml";
var aBushSmall = "actor|props/flora/plant_tropic_large.xml";
// terrain + entity (for painting)
}
var aGrass = rBiomeA1();
var aGrassShort = rBiomeA2();
var aReeds = rBiomeA3();
var aLillies = rBiomeA4();
var aRockLarge = rBiomeA5();
var aRockMedium = rBiomeA6();
var aBushMedium = rBiomeA7();
var aBushSmall = rBiomeA8();
var pForestD = [tGrassDForest + TERRAIN_SEPARATOR + oOak, tGrassDForest + TERRAIN_SEPARATOR + oOakLarge, tGrassDForest];
var pForestP = [tGrassPForest + TERRAIN_SEPARATOR + oPine, tGrassPForest + TERRAIN_SEPARATOR + oAleppoPine, tGrassPForest];
@ -499,27 +153,8 @@ for (var i = 0; i < numPlayers; i++)
// get civ specific starting entities
var civEntities = getStartingEntities(id-1);
// create the TC
var group = new SimpleGroup( // elements (type, min/max count, min/max distance, min/max angle)
[new SimpleObject(civEntities[0].Template, 1,1, 0,0, BUILDING_ANGlE, BUILDING_ANGlE)],
true, null, ix, iz
);
createObjectGroup(group, id);
// create starting units
var uDist = 6;
var uSpace = 2;
for (var j = 1; j < civEntities.length; ++j)
{
var uAngle = -BUILDING_ANGlE + PI * (j - 1) / 2;
var count = (civEntities[j].Count !== undefined ? civEntities[j].Count : 1);
for (var numberofentities = 0; numberofentities < count; numberofentities++)
{
var ux = fx + uDist * cos(uAngle) + numberofentities * uSpace * cos(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * cos(uAngle + PI/2));
var uz = fz + uDist * sin(uAngle) + numberofentities * uSpace * sin(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * sin(uAngle + PI/2));
placeObject(ux, uz, civEntities[j].Template, id, (j % 2 - 1) * PI + uAngle);
}
}
createStartingPlayerEntities(fx, fz, id, civEntities, BUILDING_ANGlE)
// create animals
for (var j = 0; j < 2; ++j)
@ -528,7 +163,7 @@ for (var i = 0; i < numPlayers; i++)
var aDist = 7;
var aX = round(fx + aDist * cos(aAngle));
var aZ = round(fz + aDist * sin(aAngle));
group = new SimpleGroup(
var group = new SimpleGroup(
[new SimpleObject(oChicken, 5,5, 0,3)],
true, clBaseResource, aX, aZ
);

View File

@ -31,16 +31,7 @@ function Map(size, baseHeight)
}
// Create 2D array for heightmap
var mapSize;
if (TILE_CENTERED_HEIGHT_MAP)
{
mapSize = size;
}
else
{
mapSize = size+1;
}
var mapSize = size+1;
this.height = new Array(mapSize);
for (var i = 0; i < mapSize; i++)
{
@ -117,17 +108,10 @@ Map.prototype.validT = function(x, z)
}
};
// Check bounds on height map if TILE_CENTERED_HEIGHT_MAP==false then this is (size + 1 by size + 1) otherwise (size, size)
// Check bounds on height map (size + 1 by size + 1)
Map.prototype.validH = function(x, z)
{
if (TILE_CENTERED_HEIGHT_MAP)
{
return x >= 0 && z >= 0 && x < this.size && z < this.size;
}
else
{
return x >= 0 && z >= 0 && x <= this.size && z <= this.size;
}
return x >= 0 && z >= 0 && x <= this.size && z <= this.size;
};
// Check bounds on tile class
@ -282,28 +266,6 @@ Map.prototype.getExactHeight = function(x, z)
return ( 1 - zf ) * ( ( 1 - xf ) * h00 + xf * h10 ) + zf * ( ( 1 - xf ) * h01 + xf * h11 ) ;
};
// Converts from the tile centered height map to the corner based height map, used when TILE_CENTERED_HEIGHT_MAP = true
Map.prototype.cornerHeight = function(x, z)
{
var count = 0;
var sumHeight = 0;
var dirs = [[-1,-1], [-1,0], [0,-1], [0,0]];
for each (var dir in dirs)
{
if (this.validH(x + dir[0], z + dir[1]))
{
count++;
sumHeight += this.height[x + dir[0]][z + dir[1]];
}
}
if (count == 0)
return 0;
return sumHeight / count;
};
Map.prototype.getMapData = function()
{
var data = {};
@ -343,15 +305,7 @@ Map.prototype.getMapData = function()
{
for (var z = 0; z < mapSize; z++)
{
var intHeight;
if (TILE_CENTERED_HEIGHT_MAP)
{
intHeight = Math.floor((this.cornerHeight(x, z) + SEA_LEVEL) * HEIGHT_UNITS_PER_METRE);
}
else
{
intHeight = Math.floor((this.height[x][z] + SEA_LEVEL) * HEIGHT_UNITS_PER_METRE);
}
var intHeight = Math.floor((this.height[x][z] + SEA_LEVEL) * HEIGHT_UNITS_PER_METRE);
// Prevent under/overflow in terrain data
if (intHeight > 0xFFFF)

View File

@ -1,5 +1,3 @@
var TILE_CENTERED_HEIGHT_MAP = false;
var g_Map;
var g_Environment = {

View File

@ -0,0 +1 @@
///////////////////////////////////////////////////////////////////////////////////////// // passageMaker // // Function for creating shallow water between two given points by changing the heiight of all tiles in // the path with height less than or equal to "maxheight" to "height" // // x1,z1: Starting point of path // x2,z2: Ending point of path // width: Width of the shallow // maxheight: Maximum height that it changes // height: Height of the shallow // smooth: smooth elevation in borders // tileclass: (Optianal) - Adds those tiles to the class given // terrain: (Optional) - Changes the texture of the elevated land // ///////////////////////////////////////////////////////////////////////////////////////// function passageMaker(x1, z1, x2, z2, width, maxheight, height, smooth, tileclass, terrain) { var mapSize = g_Map.size; for (var ix = 0; ix < mapSize; ix++) { for (var iz = 0; iz < mapSize; iz++) { var a = z1-z2; var b = x2-x1; var c = (z1*(x1-x2))-(x1*(z1-z2)); var dis = abs(a*ix + b*iz + c)/sqrt(a*a + b*b); var k = (a*ix + b*iz + c)/(a*a + b*b); var my = iz-(b*k); var inline = 0; if (b == 0) { if ((iz <= Math.max(z1,z2))&&(Math.min(z1,z2))) { inline = 1; } } else { if ((my <= Math.max(z1,z2))&&(my >= Math.min(z1,z2))) { inline = 1; } } if ((dis <= width)&&(inline)) { if(g_Map.getHeight(ix, iz) <= maxheight) { if (dis >= width - smooth) { g_Map.setHeight(ix, iz, ((width - dis)*(height)+(g_Map.getHeight(ix, iz))*(dis + smooth - width))/(width - smooth)/2); } else { g_Map.setHeight(ix, iz, height); } if (tileclass !== null) { addToClass(ix, iz, tileclass); } if (terrain !== null) { placeTerrain(ix, iz, terrain); } } } } } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //rndRiver is a fuction that creates random values useful for making a jagged river. // //it works the same as sin or cos function. the only difference is that it's period is 1 instead of 2*pi //it needs the "seed" parameter to use it to make random curves that don't get broken. //seed must be created using randFloat(). or else it won't work // // f: Input: Same as angle in a sine function // seed: Random Seed: Best to implement is to use randFloat() // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function rndRiver(f, seed) { var rndRq = seed; var rndRw = rndRq; var rndRe = 0; var rndRr = f-floor(f); var rndRa = 0; for (var rndRx=0; rndRx<=floor(f); rndRx++) { rndRw = 10*(rndRw-floor(rndRw)); } if (rndRx%2==0) { var rndRs = -1; } else { var rndRs = 1; } rndRe = (floor(rndRw))%5; if (rndRe==0) { rndRa = (rndRs)*2.3*(rndRr)*(rndRr-1)*(rndRr-0.5)*(rndRr-0.5); } else if (rndRe==1) { rndRa = (rndRs)*2.6*(rndRr)*(rndRr-1)*(rndRr-0.3)*(rndRr-0.7); } else if (rndRe==2) { rndRa = (rndRs)*22*(rndRr)*(rndRr-1)*(rndRr-0.2)*(rndRr-0.3)*(rndRr-0.3)*(rndRr-0.8); } else if (rndRe==3) { rndRa = (rndRs)*180*(rndRr)*(rndRr-1)*(rndRr-0.2)*(rndRr-0.2)*(rndRr-0.4)*(rndRr-0.6)*(rndRr-0.6)*(rndRr-0.8); } else if (rndRe==4) { rndRa = (rndRs)*2.6*(rndRr)*(rndRr-1)*(rndRr-0.5)*(rndRr-0.7); } return rndRa; } ///////////////////////////////////////////////////////////////////////////////////////// // createStartingPlayerEntities // // Creates the starting player entities // fx&fz: position of player base // playerid: id of player // civEntities: use getStartingEntities(id-1) fo this one // BUILDING_ANGlE: angle of main base building // /////////////////////////////////////////////////////////////////////////////////////////// function createStartingPlayerEntities(fx, fz, playerid, civEntities, BUILDING_ANGlE) { var uDist = 6; var uSpace = 2; for (var j = 1; j < civEntities.length; ++j) { placeObject(fx, fz, civEntities[0].Template, playerid, BUILDING_ANGlE); var uAngle = -BUILDING_ANGlE + PI * (j - 1) / 2; var count = (civEntities[j].Count !== undefined ? civEntities[j].Count : 1); for (var numberofentities = 0; numberofentities < count; numberofentities++) { var ux = fx + uDist * cos(uAngle) + numberofentities * uSpace * cos(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * cos(uAngle + PI/2)); var uz = fz + uDist * sin(uAngle) + numberofentities * uSpace * sin(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * sin(uAngle + PI/2)); placeObject(ux, uz, civEntities[j].Template, playerid, (j % 2 - 1) * PI + uAngle); } } }

View File

@ -0,0 +1,195 @@
/////////////////////////////////////////////////////////////////////////////////////////
// PathPlacer
//
// Class for creating a winding path between two points
//
// x1,z1: Starting point of path
// x2,z2: Ending point of path
// width: Width of the path
// a: Waviness - how wavy the path will be (higher is wavier, 0.0 is straight line)
// b: Smoothness - how smooth the path will be (higher is smoother)
// c: Offset - max amplitude of waves along the path (0.0 is straight line)
// taper: Tapering - how much the width of the path changes from start to end
// if positive, the width will decrease by that factor, if negative the width
// will increase by that factor
//
/////////////////////////////////////////////////////////////////////////////////////////
function PathPlacer(x1, z1, x2, z2, width, a, b, c, taper)
{
this.x1 = x1;
this.z1 = z1;
this.x2 = x2;
this.z2 = z2;
this.width = width;
this.a = a;
this.b = b;
this.c = c;
this.taper = taper;
}
PathPlacer.prototype.place = function(constraint)
{
// Preliminary bounds check
if (!g_Map.validT(this.x1, this.z1) || !constraint.allows(this.x1, this.z1) ||
!g_Map.validT(this.x2, this.z2) || !constraint.allows(this.x2, this.z2))
{
return undefined;
}
var dx = (this.x2 - this.x1);
var dz = (this.z2 - this.z1);
var dist = Math.sqrt(dx*dx + dz*dz);
dx /= dist;
dz /= dist;
var numSteps = 1 + Math.floor(dist/4 * this.a);
var numISteps = 1 + Math.floor(dist/4 * this.b);
var totalSteps = numSteps*numISteps;
var offset = 1 + Math.floor(dist/4 * this.c);
// Generate random offsets
var ctrlVals = new Float32Array(numSteps); //float32
for (var j = 1; j < (numSteps-1); ++j)
{
ctrlVals[j] = randFloat(-offset, offset);
}
// Interpolate for smoothed 1D noise
var noise = new Float32Array(totalSteps+1); //float32
for (var j = 0; j < numSteps; ++j)
{
// Cubic interpolation
var v0 = ctrlVals[(j+numSteps-1)%numSteps];
var v1 = ctrlVals[j];
var v2 = ctrlVals[(j+1)%numSteps];
var v3 = ctrlVals[(j+2)%numSteps];
var P = (v3 - v2) - (v0 - v1);
var Q = (v0 - v1) - P;
var R = v2 - v0;
var S = v1;
for (var k = 0; k < numISteps; ++k)
{
var t = k/numISteps;
noise[j*numISteps + k] = P*t*t*t + Q*t*t + R*t + S;
}
}
var halfWidth = 0.5 * this.width;
// Add smoothed noise to straight path
var segments1 = [];
var segments2 = [];
for (var j = 0; j < totalSteps; ++j)
{
// Interpolated points along straight path
var t = j/totalSteps;
var tx = this.x1 * (1.0 - t) + this.x2 * t;
var tz = this.z1 * (1.0 - t) + this.z2 * t;
var t2 = (j+1)/totalSteps;
var tx2 = this.x1 * (1.0 - t2) + this.x2 * t2;
var tz2 = this.z1 * (1.0 - t2) + this.z2 * t2;
// Find noise offset points
var nx = (tx - dz * noise[j]);
var nz = (tz + dx * noise[j]);
var nx2 = (tx2 - dz * noise[j+1]);
var nz2 = (tz2 + dx * noise[j+1]);
// Find slope of offset points
var ndx = (nx2 - nx);
var ndz = (nz2 - nz);
var dist = Math.sqrt(ndx*ndx + ndz*ndz);
ndx /= dist;
ndz /= dist;
var taperedWidth = (1.0 - t*this.taper) * halfWidth;
// Find slope of offset path
var px = Math.round(nx - ndz * -taperedWidth);
var pz = Math.round(nz + ndx * -taperedWidth);
segments1.push(new PointXZ(px, pz));
var px2 = Math.round(nx2 - ndz * taperedWidth);
var pz2 = Math.round(nz2 + ndx * taperedWidth);
segments2.push(new PointXZ(px2, pz2));
}
var retVec = [];
// Draw path segments
var num = segments1.length - 1;
for (var j = 0; j < num; ++j)
{
// Fill quad formed by these 4 points
// Note the code assumes these points have been rounded to integer values
var pt11 = segments1[j];
var pt12 = segments1[j+1];
var pt21 = segments2[j];
var pt22 = segments2[j+1];
var tris = [[pt12, pt11, pt21], [pt12, pt21, pt22]];
for (var t = 0; t < 2; ++t)
{
// Sort vertices by min z
var tri = tris[t].sort(
function(a, b)
{
return a.z - b.z;
}
);
// Fills in a line from (z, x1) to (z,x2)
var fillLine = function(z, x1, x2)
{
var left = Math.round(Math.min(x1, x2));
var right = Math.round(Math.max(x1, x2));
for (var x = left; x <= right; x++)
{
if (g_Map.validT(x, z) && constraint.allows(x, z))
{
retVec.push(new PointXZ(x, z));
}
}
}
var A = tri[0];
var B = tri[1];
var C = tri[2];
var dx1 = (B.z != A.z) ? ((B.x - A.x) / (B.z - A.z)) : 0;
var dx2 = (C.z != A.z) ? ((C.x - A.x) / (C.z - A.z)) : 0;
var dx3 = (C.z != B.z) ? ((C.x - B.x) / (C.z - B.z)) : 0;
if (A.z == B.z)
{
fillLine(A.z, A.x, B.x);
}
else
{
for (var z = A.z; z <= B.z; z++)
{
fillLine(z, A.x + dx1*(z - A.z), A.x + dx2*(z - A.z));
}
}
if (B.z == C.z)
{
fillLine(B.z, B.x, C.x);
}
else
{
for (var z = B.z + 1; z < C.z; z++)
{
fillLine(z, B.x + dx3*(z - B.z), A.x + dx2*(z - A.z));
}
}
}
}
return retVec;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,105 +1,71 @@
RMS.LoadLibrary("rmgen");
function rndRiver(f, seed)
{
var rndRq = seed;
var rndRw = rndRq;
var rndRe = 0;
var rndRr = f-floor(f);
var rndRa = 0;
for (var rndRx=0; rndRx<=floor(f); rndRx++)
{
rndRw = 10*(rndRw-floor(rndRw));
}
if (rndRx%2==0)
{
var rndRs = -1;
}
else
{
var rndRs = 1;
}
rndRe = (floor(rndRw))%5;
if (rndRe==0)
{
rndRa = (rndRs)*2.3*(rndRr)*(rndRr-1)*(rndRr-0.5)*(rndRr-0.5);
}
else if (rndRe==1)
{
rndRa = (rndRs)*2.6*(rndRr)*(rndRr-1)*(rndRr-0.3)*(rndRr-0.7);
}
else if (rndRe==2)
{
rndRa = (rndRs)*22*(rndRr)*(rndRr-1)*(rndRr-0.2)*(rndRr-0.3)*(rndRr-0.3)*(rndRr-0.8);
}
else if (rndRe==3)
{
rndRa = (rndRs)*180*(rndRr)*(rndRr-1)*(rndRr-0.2)*(rndRr-0.2)*(rndRr-0.4)*(rndRr-0.6)*(rndRr-0.6)*(rndRr-0.8);
}
else if (rndRe==4)
{
rndRa = (rndRs)*2.6*(rndRr)*(rndRr-1)*(rndRr-0.5)*(rndRr-0.7);
}
return rndRa;
}
const tCity = "desert_city_tile";
const tCityPlaza = "desert_city_tile_plaza";
const tSand = ["desert_dirt_rough", "desert_dirt_rough_2", "desert_sand_dunes_50", "desert_sand_smooth"];
const tDunes = "desert_sand_dunes_100";
const tFineSand = "desert_sand_smooth";
const tCliff = ["desert_cliff_badlands", "desert_cliff_badlands_2"];
const tForestFloor = "desert_forestfloor_palms";
const tGrass = "desert_dirt_rough_2";
const tGrassSand50 = "desert_sand_dunes_50";
const tGrassSand25 = "desert_dirt_rough";
const tDirt = "desert_dirt_rough";
const tDirtCracks = "desert_dirt_cracks";
const tShore = "desert_sand_wet";
const tLush = "desert_grass_a";
const tSLush = "desert_grass_a_sand";
const tSDry = "desert_plants_b";
var tCity = "desert_city_tile";
var tCityPlaza = "desert_city_tile_plaza";
var tSand = ["desert_dirt_rough", "desert_dirt_rough_2", "desert_sand_dunes_50", "desert_sand_smooth"];
var tDunes = "desert_sand_dunes_100";
var tFineSand = "desert_sand_smooth";
var tCliff = ["desert_cliff_badlands", "desert_cliff_badlands_2"];
var tForestFloor = "desert_forestfloor_palms";
var tGrass = "desert_dirt_rough_2";
var tGrassSand50 = "desert_sand_dunes_50";
var tGrassSand25 = "desert_dirt_rough";
var tDirt = "desert_dirt_rough";
var tDirtCracks = "desert_dirt_cracks";
var tShore = "desert_sand_wet";
var tLush = "desert_grass_a";
var tSLush = "desert_grass_a_sand";
var tSDry = "desert_plants_b";
// gaia entities
const oBerryBush = "gaia/flora_bush_berry";
const oChicken = "gaia/fauna_chicken";
const oCamel = "gaia/fauna_camel";
const oFish = "gaia/fauna_fish";
const oGazelle = "gaia/fauna_gazelle";
const oGiraffe = "gaia/fauna_giraffe";
const oGoat = "gaia/fauna_goat";
const oWildebeest = "gaia/fauna_wildebeest";
const oStoneLarge = "gaia/geology_stonemine_desert_badlands_quarry";
const oStoneSmall = "gaia/geology_stone_desert_small";
const oMetalLarge = "gaia/geology_metal_desert_slabs";
const oDatePalm = "gaia/flora_tree_date_palm";
const oSDatePalm = "gaia/flora_tree_cretan_date_palm_short";
const eObelisk = "other/obelisk";
const ePyramid = "other/pyramid_minor";
const oWood = "gaia/special_treasure_wood";
const oFood = "gaia/special_treasure_food_bin";
var oBerryBush = "gaia/flora_bush_berry";
var oChicken = "gaia/fauna_chicken";
var oCamel = "gaia/fauna_camel";
var oFish = "gaia/fauna_fish";
var oGazelle = "gaia/fauna_gazelle";
var oGiraffe = "gaia/fauna_giraffe";
var oGoat = "gaia/fauna_goat";
var oWildebeest = "gaia/fauna_wildebeest";
var oStoneLarge = "gaia/geology_stonemine_desert_badlands_quarry";
var oStoneSmall = "gaia/geology_stone_desert_small";
var oMetalLarge = "gaia/geology_metal_desert_slabs";
var oDatePalm = "gaia/flora_tree_date_palm";
var oSDatePalm = "gaia/flora_tree_cretan_date_palm_short";
var eObelisk = "other/obelisk";
var ePyramid = "other/pyramid_minor";
var oWood = "gaia/special_treasure_wood";
var 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";
const aBush4 = "actor|props/flora/plant_desert_a.xml";
const aBushes = [aBush1, aBush2, aBush3, aBush4];
const aDecorativeRock = "actor|geology/stone_desert_med.xml";
const aReeds = "actor|props/flora/reeds_pond_lush_a.xml";
const aLillies = "actor|props/flora/water_lillies.xml";
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";
var aBush4 = "actor|props/flora/plant_desert_a.xml";
var aBushes = [aBush1, aBush2, aBush3, aBush4];
var aDecorativeRock = "actor|geology/stone_desert_med.xml";
var aReeds = "actor|props/flora/reeds_pond_lush_a.xml";
var aLillies = "actor|props/flora/water_lillies.xml";
// terrain + entity (for painting)
var pForest = [tForestFloor + TERRAIN_SEPARATOR + oDatePalm, tForestFloor + TERRAIN_SEPARATOR + oSDatePalm, tForestFloor];
var pForestOasis = [tGrass + TERRAIN_SEPARATOR + oDatePalm, tGrass + TERRAIN_SEPARATOR + oSDatePalm, tGrass];
const BUILDING_ANGlE = 0.75*PI;
var BUILDING_ANGlE = 0.75*PI;
log("Initializing map...");
InitMap();
var numPlayers = getNumPlayers();
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 numPlayers = getNumPlayers();
var mapArea = mapSize*mapSize;
// create tile classes
@ -181,27 +147,8 @@ for (var i = 0; i < numPlayers; i++)
// get civ specific starting entities
var civEntities = getStartingEntities(id-1);
// create the TC
var group = new SimpleGroup( // elements (type, min/max count, min/max distance, min/max angle)
[new SimpleObject(civEntities[0].Template, 1,1, 0,0, BUILDING_ANGlE, BUILDING_ANGlE)],
true, null, ix, iz
);
createObjectGroup(group, id);
// create starting units
var uDist = 6;
var uSpace = 2;
for (var j = 1; j < civEntities.length; ++j)
{
var uAngle = -BUILDING_ANGlE + PI * (j - 1) / 2;
var count = (civEntities[j].Count !== undefined ? civEntities[j].Count : 1);
for (var numberofentities = 0; numberofentities < count; numberofentities++)
{
var ux = fx + uDist * cos(uAngle) + numberofentities * uSpace * cos(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * cos(uAngle + PI/2));
var uz = fz + uDist * sin(uAngle) + numberofentities * uSpace * sin(uAngle + PI/2) - (0.75 * uSpace * floor(count / 2) * sin(uAngle + PI/2));
placeObject(ux, uz, civEntities[j].Template, id, (j % 2 - 1) * PI + uAngle);
}
}
createStartingPlayerEntities(fx, fz, id, civEntities, BUILDING_ANGlE)
// create animals
for (var j = 0; j < 2; ++j)
@ -210,7 +157,7 @@ for (var i = 0; i < numPlayers; i++)
var aDist = 7;
var aX = round(fx + aDist * cos(aAngle));
var aZ = round(fz + aDist * sin(aAngle));
group = new SimpleGroup(
var group = new SimpleGroup(
[new SimpleObject(oChicken, 5,5, 0,3)],
true, clBaseResource, aX, aZ
);
@ -292,6 +239,8 @@ var theta = randFloat(0, 1);
var seed = randFloat(2,3);
var theta2 = randFloat(0, 1);
var seed2 = randFloat(2,3);
var rifp = 0;
var rifp2 = 0;
for (ix = 0; ix < mapSize; ix++)
{
for (iz = 0; iz < mapSize; iz++)
@ -318,11 +267,28 @@ for (ix = 0; ix < mapSize; ix++)
if (xk < cu+((1.05-WATER_WIDTH)/2))
{
h = -3 + 200.0* abs(cu+((1.05-WATER_WIDTH)/2-xk));
if ((h < 0.1)&&(h>-0.2))
{
if (rifp%2 == 0)
{
rifp = 0;
placeObject(ix, iz, aPlants, 0, randFloat(0,TWO_PI));
}
++rifp;
}
}
else if (xk > (cu+(0.95+WATER_WIDTH)/2))
{
h = -3 + 200.0*(xk-(cu+((0.95+WATER_WIDTH)/2)));
if ((h < 0.1)&&(h>-0.2))
{
if (rifp2%2 == 0)
{
rifp2 = 0;
placeObject(ix, iz, aPlants, 0, randFloat(0,TWO_PI));
}
++rifp2;
}
}
else
{
@ -643,12 +609,12 @@ createObjectGroups(
// Set environment
setSkySet("sunny");
setSunColour(0.873, 0.846, 0.674);
setWaterColour(0.312, 0.562, 0.652);
setWaterTint(0.412, 0.212, 0.212);
setWaterReflectionTint(0.447, 0.202, 0.222);
setWaterMurkiness(1.0);
setWaterReflectionTintStrength(0.677);
setSunColour(0.711, 0.746, 0.574);
setWaterColour(0.292, 0.347, 0.691);
setWaterTint(0.550, 0.543, 0.437);
setWaterReflectionTint(0.562, 0.511, 0.425);
setWaterMurkiness(0.83);
setWaterReflectionTintStrength(0.377);
// Export map data
ExportMap();