Index: ps/trunk/binaries/data/mods/public/gui/credits/texts/programming.json =================================================================== --- ps/trunk/binaries/data/mods/public/gui/credits/texts/programming.json (revision 21229) +++ ps/trunk/binaries/data/mods/public/gui/credits/texts/programming.json (revision 21230) @@ -1,246 +1,247 @@ { "Title": "Programming", "Content": [ { "Title": "Programming managers", "List": [ {"nick": "Acumen", "name": "Stuart Walpole"}, {"nick": "Dak Lozar", "name": "Dave Loeser"}, {"nick": "h20", "name": "Daniel Wilhelm"}, {"nick": "Janwas", "name": "Jan Wassenberg"}, {"nick": "Raj", "name": "Raj Sharma"} ] }, { "Subtitle": "Special thanks to", "List": [{"nick": "Ykkrosh", "name": "Philip Taylor"}] }, { "List": [ {"nick": "01d55"}, {"nick": "Acumen", "name": "Stuart Walpole"}, {"name": "Adrian Fatol"}, {"nick": "AI-Amsterdam"}, {"nick": "Alan", "name": "Alan Kemp"}, {"nick": "aBothe", "name": "Alexander Bothe"}, {"nick": "alpha123", "name": "Peter P. Cannici"}, {"nick": "andy5995", "name": "Andy Alt"}, {"nick": "Angen"}, {"nick": "ArnH", "name": "Arno Hemelhof"}, {"nick": "Aurium", "name": "Aurélio Heckert"}, {"nick": "badmadblacksad", "name": "Martin F"}, {"name": "Mikołaj \"Bajter\" Korcz"}, {"nick": "bb", "name": "Bouke Jansen"}, {"nick": "Ben", "name": "Ben Vinegar"}, {"nick": "Bird"}, {"nick": "Blue", "name": "Richard Welsh"}, {"nick": "bmwiedemann"}, {"nick": "boeseRaupe", "name": "Michael Kluge"}, {"nick": "bog_dan_ro", "name": "BogDan Vatra"}, {"nick": "Bonk", "name": "Christopher Ebbert"}, {"nick": "borg-", "name": "Estevan Borges Martins"}, {"nick": "Boudica"}, {"nick": "Caius", "name": "Lars Kemmann"}, {"nick": "Calefaction", "name": "Matt Holmes"}, {"nick": "Calvinh", "name": "Carl-Johan Höiby"}, {"nick": "causative", "name": "Bart Parkis"}, {"name": "Cédric Houbart"}, {"nick": "Chakakhan", "name": "Kenny Long"}, {"nick": "Clockwork-Muse", "name": "Stephen A. Imhoff"}, {"nick": "Cracker78", "name": "Chad Heim"}, {"nick": "Crynux", "name": "Stephen J. Fewer"}, {"nick": "cwprogger"}, {"nick": "Dak Lozar", "name": "Dave Loeser"}, {"nick": "dalerank", "name": "Sergey Kushnirenko"}, {"nick": "dan", "name": "Dan Strandberg"}, {"name": "Daniel Trevitz"}, {"nick": "DanCar", "name": "Daniel Cardenas"}, {"nick": "danger89", "name": "Melroy van den Berg"}, {"nick": "Dariost", "name": "Dario Ostuni"}, {"nick": "Dave", "name": "David Protasowski"}, {"nick": "dax", "name": "Dacian Fiordean"}, {"nick": "deebee", "name": "Deepak Anthony"}, {"nick": "Deiz"}, {"nick": "Dietger", "name": "Dietger van Antwerpen"}, {"nick": "dp304"}, {"nick": "dpiquet", "name": "Damien Piquet"}, {"nick": "dumbo"}, {"nick": "Dunedan", "name": "Daniel Roschka"}, {"nick": "dvangennip", "name": "Doménique"}, {"nick": "Echelon9", "name": "Rhys Kidd"}, {"nick": "echotangoecho"}, {"nick": "eihrul", "name": "Lee Salzman"}, {"nick": "elexis", "name": "Alexander Heinsius"}, {"nick": "EmjeR", "name": "Matthijs de Rijk"}, {"nick": "EMontana"}, {"nick": "ericb"}, {"nick": "evanssthomas", "name": "Evans Thomas"}, {"nick": "Evulant", "name": "Alexander S."}, {"nick": "fabio", "name": "Fabio Pedretti"}, {"nick": "falsevision", "name": "Mahdi Khodadadifard"}, {"nick": "fatherbushido", "name": "Nicolas Tisserand"}, {"nick": "fcxSanya", "name": "Alexander Olkhovskiy"}, {"nick": "FeXoR", "name": "Florian Finke"}, {"nick": "Fire Giant", "name": "Malte Schwarzkopf"}, {"nick": "fpre", "name": "Frederick Stallmeyer"}, {"nick": "freenity", "name": "Anton Galitch"}, {"nick": "Gallaecio", "name": "Adrián Chaves"}, {"nick": "gbish (aka Iny)", "name": "Grant Bishop"}, {"nick": "Gee", "name": "Gustav Larsson"}, {"nick": "gerbilOFdoom"}, {"nick": "godlikeldh"}, {"nick": "greybeard", "name": "Joe Cocovich"}, {"nick": "grillaz"}, {"nick": "Grugnas", "name": "Giuseppe Tranchese"}, {"nick": "gudo"}, {"nick": "Guuts", "name": "Matthew Guttag"}, {"name": "Samuel Guarnieri"}, {"nick": "Hannibal_Baraq", "name": "Clive Juhász S."}, {"nick": "Haommin"}, {"nick": "h20", "name": "Daniel Wilhelm"}, {"nick": "historic_bruno", "name": "Ben Brian"}, {"nick": "idanwin"}, {"nick": "Imarok", "name": "J. S."}, {"nick": "infyquest", "name": "Vijay Kiran Kamuju"}, {"nick": "IronNerd", "name": "Matthew McMullan"}, {"nick": "Itms", "name": "Nicolas Auvray"}, {"nick": "Jaison", "name": "Marco tom Suden"}, {"nick": "jammus", "name": "James Scott"}, {"nick": "javiergodas", "name": "Javier Godas Vieitez"}, {"nick": "Jgwman"}, {"nick": "JonBaer", "name": "Jon Baer"}, {"nick": "Josh", "name": "Joshua J. Bakita"}, {"nick": "joskar", "name": "Johnny Oskarsson"}, {"nick": "jP_wanN", "name": "Jonas Platte"}, {"nick": "Jubalbarca", "name": "James Baillie"}, {"nick": "JubJub", "name": "Sebastian Vetter"}, {"nick": "jurgemaister"}, {"nick": "kabzerek", "name": "Grzegorz Kabza"}, {"nick": "Kai", "name": "Kai Chen"}, {"name": "Kareem Ergawy"}, {"nick": "kevmo", "name": "Kevin Caffrey"}, {"nick": "kezz", "name": "Graeme Kerry"}, {"nick": "kingadami", "name": "Adam Winsor"}, {"nick": "kingbasil", "name": "Giannis Fafalios"}, {"nick": "lafferjm", "name": "Justin Lafferty"}, {"nick": "LeanderH", "name": "Leander Hemelhof"}, {"nick": "leper", "name": "Georg Kilzer"}, {"nick": "LittleDev"}, {"nick": "livingaftermidnight", "name": "Will Dull"}, {"nick": "Louhike"}, {"nick": "lsdh"}, {"nick": "Ludovic", "name": "Ludovic Rousseau"}, {"nick": "madmax", "name": "Abhijit Nandy"}, {"nick": "madpilot", "name": "Guido Falsi"}, {"nick": "m0l0t0ph", "name": "Christoph Gielisch"}, {"nick": "markcho"}, {"nick": "MarkT", "name": "Mark Thompson"}, {"nick": "Markus"}, {"nick": "Matei", "name": "Matei Zaharia"}, {"nick": "Mate-86", "name": "Mate Kovacs"}, {"nick": "MattDoerksen", "name": "Matt Doerksen"}, {"nick": "mattlott", "name": "Matt Lott"}, {"nick": "maveric", "name": "Anton Protko"}, {"nick": "Micnasty", "name": "Travis Gorkin"}, {"nick": "mimo"}, {"nick": "mk12", "name": "Mitchell Kember"}, {"nick": "mmayfield45", "name": "Michael Mayfield"}, {"nick": "mmoanis", "name": "Mohamed Moanis"}, {"nick": "Molotov", "name": "Dario Alvarez"}, {"nick": "mpmoreti", "name": "Marcos Paulo Moreti"}, {"nick": "mreiland", "name": "Michael Reiland"}, {"nick": "myconid"}, {"nick": "nd3c3nt", "name": "Gavin Fowler"}, {"nick": "niektb", "name": "Niek ten Brinke"}, {"nick": "njm"}, {"nick": "NoMonkey", "name": "John Mena"}, {"nick": "notpete", "name": "Rich Cross"}, {"nick": "nwtour"}, {"nick": "odoaker", "name": "Ágoston Sipos"}, {"nick": "Offensive ePeen", "name": "Jared Ryan Bills"}, {"nick": "Ols", "name": "Oliver Whiteman"}, {"nick": "olsner", "name": "Simon Brenner"}, {"nick": "OptimusShepard", "name": "Pirmin Stanglmeier"}, {"nick": "otero"}, {"nick": "Nescio"}, {"name": "Nick Owens"}, {"nick": "Palaxin", "name": "David A. Freitag"}, {"name": "Paul Withers"}, {"nick": "paulobezerr", "name": "Paulo George Gomes Bezerra"}, {"nick": "pcpa", "name": "Paulo Andrade"}, {"nick": "Pendingchaos"}, {"nick": "PeteVasi", "name": "Pete Vasiliauskas"}, {"nick": "pilino1234"}, {"nick": "PingvinBetyar", "name": "Schronk Tamás"}, {"nick": "plugwash", "name": "Peter Michael Green"}, {"nick": "Polakrity"}, {"nick": "Poya", "name": "Poya Manouchehri"}, {"name": "Quentin Pradet"}, {"nick": "prefect", "name": "Nicolai Hähnle"}, {"nick": "pstumpf", "name": "Pascal Stumpf"}, {"name": "André Puel"}, {"nick": "Prodigal Son"}, {"nick": "pyrolink", "name": "Andrew Decker"}, {"nick": "quantumstate", "name": "Jonathan Waller"}, {"nick": "QuickShot", "name": "Walter Krawec"}, {"nick": "quonter"}, {"nick": "qwertz"}, {"nick": "Radagast"}, {"nick": "Raj", "name": "Raj Sharma"}, {"nick": "RedFox", "name": "Jorma Rebane"}, {"nick": "RefinedCode"}, {"nick": "Riemer"}, {"name": "Rolf Sievers"}, {"nick": "s0600204", "name": "Matthew Norwood"}, {"nick": "sacha_vrand", "name": "Sacha Vrand"}, {"nick": "SafaAlfulaij"}, {"nick": "Sandarac"}, {"nick": "sanderd17", "name": "Sander Deryckere"}, {"nick": "sathyam", "name": "Sathyam Vellal"}, {"nick": "sbirmi", "name": "Sharad Birmiwal"}, {"nick": "sbte", "name": "Sven Baars"}, {"nick": "scroogie", "name": "André Gemünd"}, {"nick": "scythetwirler", "name": "Casey X."}, {"nick": "serveurix"}, {"nick": "Shane", "name": "Shane Grant"}, {"nick": "Silk", "name": "Josh Godsiff"}, {"nick": "silure"}, {"nick": "Simikolon", "name": "Yannick & Simon"}, + {"nick": "smiley", "name": "M. L."}, {"nick": "Spahbod", "name": "Omid Davoodi"}, {"nick": "stanislas69", "name": "Stanislas Dolcini"}, {"nick": "Stefan"}, {"nick": "stilz", "name": "Sławomir Zborowski"}, {"nick": "stwf", "name": "Steven Fuchs"}, {"nick": "svott", "name": "Sven Ott"}, {"nick": "t4nk004"}, {"nick": "tbm", "name": "Martin Michlmayr"}, {"nick": "tau"}, {"nick": "Teiresias"}, {"nick": "temple"}, {"nick": "texane"}, {"nick": "thamlett", "name": "Timothy Hamlett"}, {"nick": "thedrunkyak", "name": "Dan Fuhr"}, {"nick": "TrinityDeath", "name": "Jethro Lu"}, {"nick": "triumvir", "name": "Corin Schedler"}, {"nick": "trompetin17", "name": "Juan Guillermo"}, {"nick": "user1", "name": "A. C."}, {"nick": "usey11"}, {"nick": "vincent_c", "name": "Vincent Cheng"}, {"nick": "vladislavbelov", "name": "Vladislav Belov"}, {"nick": "vts", "name": "Jeroen DR"}, {"nick": "WhiteTreePaladin", "name": "Brian Ashley"}, {"nick": "wraitii", "name": "Lancelot de Ferrière le Vayer"}, {"nick": "Xentelian", "name": "Mark Strawson"}, {"nick": "Xienen", "name": "Dayle Flowers"}, {"nick": "xtizer", "name": "Matt Green"}, {"nick": "yashi", "name": "Yasushi Shoji"}, {"nick": "Ykkrosh", "name": "Philip Taylor"}, {"nick": "Yves"}, {"nick": "Zeusthor", "name": "Jeffrey Tavares"}, {"nick": "zoot"}, {"nick": "zsol", "name": "Zsolt Dollenstein"}, {"nick": "Zyi", "name": "Charles De Meulenaer"} ] } ] } Index: ps/trunk/binaries/data/mods/public/maps/random/fortress.js =================================================================== --- ps/trunk/binaries/data/mods/public/maps/random/fortress.js (revision 21229) +++ ps/trunk/binaries/data/mods/public/maps/random/fortress.js (revision 21230) @@ -1,298 +1,299 @@ Engine.LoadLibrary("rmgen"); const tGrass = ["temp_grass_aut", "temp_grass_aut", "temp_grass_d_aut"]; const tForestFloor = "temp_grass_aut"; const tGrassA = "temp_grass_plants_aut"; const tGrassB = "temp_grass_b_aut"; const tGrassC = "temp_grass_c_aut"; const tHill = ["temp_highlands_aut", "temp_grass_long_b_aut"]; const tCliff = ["temp_cliff_a", "temp_cliff_b"]; const tRoad = "temp_road_aut"; const tGrassPatch = "temp_grass_plants_aut"; const tShore = "temp_plants_bog_aut"; const tWater = "temp_mud_a"; const oBeech = "gaia/flora_tree_euro_beech_aut"; const oOak = "gaia/flora_tree_oak_aut"; const oPine = "gaia/flora_tree_pine"; const oDeer = "gaia/fauna_deer"; const oFish = "gaia/fauna_fish"; const oSheep = "gaia/fauna_rabbit"; const oBerryBush = "gaia/flora_bush_berry"; const oStoneLarge = "gaia/geology_stonemine_temperate_quarry"; const oStoneSmall = "gaia/geology_stone_temperate"; const oMetalLarge = "gaia/geology_metal_temperate_slabs"; const oFoodTreasure = "gaia/treasure/food_bin"; const oWoodTreasure = "gaia/treasure/wood"; const oStoneTreasure = "gaia/treasure/stone"; const oMetalTreasure = "gaia/treasure/metal"; const aGrass = "actor|props/flora/grass_soft_dry_small_tall.xml"; const aGrassShort = "actor|props/flora/grass_soft_dry_large.xml"; const aRockLarge = "actor|geology/stone_granite_med.xml"; const aRockMedium = "actor|geology/stone_granite_med.xml"; const aReeds = "actor|props/flora/reeds_pond_dry.xml"; const aLillies = "actor|props/flora/water_lillies.xml"; const aBushMedium = "actor|props/flora/bush_medit_me_dry.xml"; const aBushSmall = "actor|props/flora/bush_medit_sm_dry.xml"; const pForestD = [tForestFloor + TERRAIN_SEPARATOR + oBeech, tForestFloor]; const pForestO = [tForestFloor + TERRAIN_SEPARATOR + oOak, tForestFloor]; const pForestP = [tForestFloor + TERRAIN_SEPARATOR + oPine, tForestFloor]; var heightSeaGround = -4; var heightLand = 3; var g_Map = new RandomMap(heightLand, tGrass); const numPlayers = getNumPlayers(); var clPlayer = g_Map.createTileClass(); var clHill = g_Map.createTileClass(); var clForest = g_Map.createTileClass(); var clWater = g_Map.createTileClass(); var clDirt = g_Map.createTileClass(); var clRock = g_Map.createTileClass(); var clMetal = g_Map.createTileClass(); var clFood = g_Map.createTileClass(); var clBaseResource = g_Map.createTileClass(); var treasures = [ { "template": oFoodTreasure, "distance": 5 }, { "template": oWoodTreasure, "distance": 5 }, { "template": oMetalTreasure, "distance": 3 }, { "template": oStoneTreasure, "distance": 2 } ]; var [playerIDs, playerPosition] = playerPlacementCircle(fractionToTiles(0.35)); g_Map.log("Creating playerbases"); var playerAngle = BUILDING_ORIENTATION; for (let i = 0; i < numPlayers; ++i) { if (isNomad()) break; // CC and units for (let dist of [6, 8]) { let ents = getStartingEntities(playerIDs[i]); if (dist == 8) ents = ents.filter(ent => ent.Template.indexOf("female") != -1 || ent.Template.indexOf("infantry") != -1); placeStartingEntities(playerPosition[i], playerIDs[i], ents, dist); } // Treasure for (let j = 0; j < treasures.length; ++j) createObjectGroup( new SimpleGroup( [new SimpleObject(treasures[j].template, treasures[j].distance, treasures[j].distance, 0, 2)], false, clBaseResource, Vector2D.add(playerPosition[i], new Vector2D(10, 0).rotate(-j * Math.PI / 2 - playerAngle))), 0); // Ground texture var civ = getCivCode(playerIDs[i]); var tilesSize = civ == "cart" ? 23 : 21; createArea( new ConvexPolygonPlacer( new Array(4).fill(0).map((zero, j) => new Vector2D(tilesSize, 0).rotate(j * Math.PI / 2 - playerAngle - Math.PI/4).add(playerPosition[i])), Infinity), [ new TerrainPainter(tRoad), new TileClassPainter(clPlayer) ]); // Fortress - if (civ == "brit" || civ == "gaul" || civ == "iber") + // To take into account houses that offer a lower population bonus + if (Engine.GetTemplate("structures/" + civ + "_house").Cost.PopulationBonus <= 5) { var wall = ["gate", "tower", "long", "cornerIn", "long", "barracks", "tower", "long", "tower", "house", "long", "cornerIn", "long", "house", "tower", "gate", "tower", "house", "long", "cornerIn", "long", "house", "tower", "long", "tower", "house", "long", "cornerIn", "long", "house", "tower"]; } else { var wall = ["gate", "tower", "long", "cornerIn", "long", "barracks", "tower", "long", "tower", "long", "cornerIn", "long", "house", "tower", "gate", "tower", "long", "cornerIn", "long", "house", "tower", "long", "tower", "long", "cornerIn", "long", "house", "tower"]; } placeCustomFortress(playerPosition[i], new Fortress("Spahbod", wall), civ, playerIDs[i], playerAngle); } g_Map.log("Creating lakes"); var numLakes = Math.round(scaleByMapSize(1,4) * numPlayers); var waterAreas = createAreas( new ClumpPlacer(scaleByMapSize(100,250), 0.8, 0.1, Infinity), [ new LayeredPainter([tShore, tWater, tWater], [1, 1]), new SmoothElevationPainter(ELEVATION_SET, heightSeaGround, 3), new TileClassPainter(clWater) ], avoidClasses(clPlayer, 7, clWater, 20), numLakes); Engine.SetProgress(15); g_Map.log("Creating reeds"); createObjectGroupsByAreasDeprecated( new SimpleGroup([new SimpleObject(aReeds, 5,10, 0,4), new SimpleObject(aLillies, 0,1, 0,4)], true), 0, [borderClasses(clWater, 3, 0), stayClasses(clWater, 1)], numLakes, 100, waterAreas); Engine.SetProgress(25); g_Map.log("Creating fish"); createObjectGroupsByAreasDeprecated( new SimpleGroup( [new SimpleObject(oFish, 1,1, 0,1)], true, clFood ), 0, [stayClasses(clWater, 4), avoidClasses(clFood, 8)], numLakes / 4, 50, waterAreas); Engine.SetProgress(30); createBumps(avoidClasses(clWater, 2, clPlayer, 5)); Engine.SetProgress(35); createHills([tCliff, tCliff, tHill], avoidClasses(clPlayer, 5, clWater, 5, clHill, 15), clHill, scaleByMapSize(1, 4) * numPlayers); Engine.SetProgress(40); g_Map.log("Creating forests"); var [forestTrees, stragglerTrees] = getTreeCounts(500, 2500, 0.7); var types = [ [[tForestFloor, tGrass, pForestD], [tForestFloor, pForestD]], [[tForestFloor, tGrass, pForestO], [tForestFloor, pForestO]], [[tForestFloor, tGrass, pForestP], [tForestFloor, pForestP]] ]; var size = forestTrees / (scaleByMapSize(3,6) * numPlayers); var num = Math.floor(size / types.length); for (let type of types) createAreas( new ChainPlacer(1, Math.floor(scaleByMapSize(3, 5)), forestTrees / num, 0.5), [ new LayeredPainter(type, [2]), new TileClassPainter(clForest) ], avoidClasses(clPlayer, 5, clWater, 3, clForest, 15, clHill, 1), num); Engine.SetProgress(50); g_Map.log("Creating dirt patches"); createLayeredPatches( [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)], [[tGrass,tGrassA],[tGrassA,tGrassB], [tGrassB,tGrassC]], [1,1], avoidClasses(clWater, 1, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 1), scaleByMapSize(15, 45), clDirt); Engine.SetProgress(55); g_Map.log("Creating grass patches"); createPatches( [scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)], tGrassPatch, avoidClasses(clWater, 1, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 1), scaleByMapSize(15, 45), clDirt); Engine.SetProgress(60); g_Map.log("Creating stone mines"); createMines( [ [new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], [new SimpleObject(oStoneSmall, 2,5, 1,3)] ], avoidClasses(clWater, 0, clForest, 1, clPlayer, 5, clRock, 10, clHill, 1), clRock); Engine.SetProgress(65); g_Map.log("Creating metal mines"); createMines( [ [new SimpleObject(oMetalLarge, 1,1, 0,4)] ], avoidClasses(clWater, 0, clForest, 1, clPlayer, 5, clMetal, 10, clRock, 5, clHill, 1), clMetal ); Engine.SetProgress(70); createDecoration( [ [new SimpleObject(aRockMedium, 1, 3, 0, 1)], [new SimpleObject(aRockLarge, 1, 2, 0, 1), new SimpleObject(aRockMedium, 1, 3, 0, 2)], [new SimpleObject(aGrassShort, 1, 2, 0, 1)], [new SimpleObject(aGrass, 2, 4, 0, 1.8), new SimpleObject(aGrassShort, 3, 6, 1.2, 2.5)], [new SimpleObject(aBushMedium, 1, 2, 0, 2), new SimpleObject(aBushSmall, 2, 4, 0, 2)] ], [ scaleByMapSize(16, 262), scaleByMapSize(8, 131), scaleByMapSize(13, 200), scaleByMapSize(13, 200), scaleByMapSize(13, 200) ], avoidClasses(clWater, 0, clForest, 0, clPlayer, 1, clHill, 0)); Engine.SetProgress(80); createFood( [ [new SimpleObject(oSheep, 2, 3, 0, 2)], [new SimpleObject(oDeer, 5, 7, 0, 4)] ], [ 3 * numPlayers, 3 * numPlayers ], avoidClasses(clWater, 0, clForest, 0, clPlayer, 6, clHill, 1, clFood, 20), clFood); Engine.SetProgress(85); createFood( [ [new SimpleObject(oBerryBush, 5, 7, 0, 4)] ], [ randIntInclusive(1, 4) * numPlayers + 2 ], avoidClasses(clWater, 2, clForest, 0, clPlayer, 6, clHill, 1, clFood, 10), clFood); Engine.SetProgress(90); createStragglerTrees( [oOak, oBeech, oPine], avoidClasses(clWater, 1, clForest, 1, clHill, 1, clPlayer, 1, clMetal, 6, clRock, 6), clForest, stragglerTrees); Engine.SetProgress(95); placePlayersNomad(clPlayer, avoidClasses(clWater, 2, clHill, 2, clForest, 1, clMetal, 4, clRock, 4, clHill, 4, clFood, 2)); setSkySet("sunny"); setWaterColor(0.157, 0.149, 0.443); setWaterTint(0.443,0.42,0.824); setWaterWaviness(2.0); setWaterType("lake"); setWaterMurkiness(0.83); setFogFactor(0.35); setFogThickness(0.22); setFogColor(0.82,0.82, 0.73); setPPSaturation(0.56); setPPContrast(0.56); setPPBloom(0.38); setPPEffect("hdr"); g_Map.ExportMap();