About 25 random maps use the random biome system. It would be nice if players could chose the biome in the gamesetup.
The proposed patch is remotly based on a patch Grugnas had sent me.
The descriptions come from @Hannibal_Barca.
Details
do a barrel roll
Diff Detail
- Repository
- rP 0 A.D. Public Repository
- Lint
Automatic diff as part of commit; lint not applicable. - Unit
Automatic diff as part of commit; unit tests not applicable.
Event Timeline
Build is green
Updating workspaces. Build (release)... Build (debug)... Running release tests... Running cxxtest tests (306 tests)..................................................................................................................................................................................................................................................................................................................OK! Running debug tests... Running cxxtest tests (306 tests)..................................................................................................................................................................................................................................................................................................................OK! Checking XML files...
http://jenkins-master:8080/job/phabricator/1940/ for more details.
Executing section Default... Executing section Source... Executing section JS... binaries/data/mods/public/gui/gamesetup/gamesetup.js |1660| » while·(g_IsNetworked) | | [NORMAL] ESLintBear (no-unmodified-loop-condition): | | 'g_IsNetworked' is not modified in this loop. binaries/data/mods/public/gui/gamesetup/gamesetup.js |1485| » » » » if·(g_Settings.Biomes.every(bio·=>·bio.Id·!=·biome)) | | [NORMAL] JSHintBear: | | Don't make functions within a loop. binaries/data/mods/public/gui/gamesetup/gamesetup.js |1486| » » » » » warn("Map·'"·+·g_GameAttributes.map·+·"'·contains·unknown·biome·'"·+·biome·+·"'") | | [NORMAL] JSHintBear: | | Missing semicolon. binaries/data/mods/public/gui/gamesetup/gamesetup.js |1642| » if·(g_LoadingState·==·0) | | [NORMAL] JSHintBear: | | Use '===' to compare with '0'. binaries/data/mods/public/gui/gamesetup/gamesetup.js |1694| » » if·(playerData.some((pData,·j)·=>·i·!=·j·&&·sameColor(playerData[i].Color,·pData.Color))) | | [NORMAL] JSHintBear: | | Don't make functions within a loop. binaries/data/mods/public/gui/gamesetup/gamesetup.js |1695| » » » playerData[i].Color·=·g_PlayerColorPickerList.find(color·=>·playerData.every(pData·=>·!sameColor(color,·pData.Color))); | | [NORMAL] JSHintBear: | | Don't make functions within a loop. binaries/data/mods/public/gui/gamesetup/gamesetup.js |1876| » » » chosenCiv·=·pickRandom(Object.keys(g_CivData).filter(civ·=>·g_CivData[civ].Culture·==·culture)); | | [NORMAL] JSHintBear: | | Don't make functions within a loop. binaries/data/mods/public/gui/gamesetup/gamesetup.js |1890| » » let·usedName·=·g_GameAttributes.settings.PlayerData.filter(pData·=>·pData.Name·&&·pData.Name.indexOf(chosenName)·!==·-1).length; | | [NORMAL] JSHintBear: | | Don't make functions within a loop. binaries/data/mods/public/maps/random/rmgen/randombiome.js | 466| » » var·random_trees·=·randIntInclusive(1,·3); | | [NORMAL] JSHintBear: | | 'random_trees' is already defined. binaries/data/mods/public/gui/common/settings.js | 356| » let·mapSize·=·g_Settings.MapSizes.find(mapSize·=>·mapSize.Tiles·==·+tiles); | | [NORMAL] ESLintBear (no-shadow): | | 'mapSize' is already declared in the upper scope. binaries/data/mods/public/gui/common/settings.js | 380| » let·vc·=·g_Settings.VictoryConditions.find(vc·=>·vc.Name·==·gameType); | | [NORMAL] ESLintBear (no-shadow): | | 'vc' is already declared in the upper scope. binaries/data/mods/public/gui/common/settings.js | 174| » » "Title":·timeout·==·0·?·translateWithContext("ceasefire",·"No·ceasefire")·: | | [NORMAL] JSHintBear: | | Use '===' to compare with '0'. binaries/data/mods/public/gui/common/settings.js | 225| » if·(victoryConditions.some(vc·=>·vc·==·undefined)) | | [NORMAL] JSHintBear: | | Use '===' to compare with 'undefined'. | | [NORMAL] ESLintBear (no-multi-spaces): | | Multiple spaces found before '"gaia/fauna_lion"'. |----| | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/maps/random/ngorongoro.js | |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/maps/random/ngorongoro.js | 261| 261| RMS.SetProgress(60); | 262| 262| | 263| 263| g_Gaia.mainHuntableAnimal = "gaia/fauna_lioness"; | 264| |-g_Gaia.secondaryHuntableAnimal = "gaia/fauna_lion"; | | 264|+g_Gaia.secondaryHuntableAnimal = "gaia/fauna_lion"; | 265| 265| g_Terrains.mainTerrain = "savanna_grass_a_wetseason"; | 266| 266| g_Terrains.forestFloor1 = "savanna_grass_a"; | 267| 267| g_Terrains.forestFloor2 = "savanna_grass_b"; | | [NORMAL] ESLintBear (no-multi-spaces): | | Multiple spaces found before '"gaia/fauna_elephant_african_bush"'. |----| | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/maps/random/ngorongoro.js | |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/m
http://jenkins-master:8080/job/phabricator_lint/458/ for more details.
Build is green
Updating workspaces. Build (release)... Build (debug)... Running release tests... Running cxxtest tests (306 tests)..................................................................................................................................................................................................................................................................................................................OK! Running debug tests... Running cxxtest tests (306 tests)..................................................................................................................................................................................................................................................................................................................OK! Checking XML files...
http://jenkins-master:8080/job/phabricator/1941/ for more details.
Executing section Default... Executing section Source... Executing section JS... binaries/data/mods/public/maps/random/flood.js | 120| » let·fx·=·fractionToTiles(playerX[i]); | | [NORMAL] ESLintBear (no-shadow): | | 'fx' is already declared in the upper scope. binaries/data/mods/public/maps/random/flood.js | 121| » let·fz·=·fractionToTiles(playerZ[i]); | | [NORMAL] ESLintBear (no-shadow): | | 'fz' is already declared in the upper scope. binaries/data/mods/public/maps/random/flood.js | 122| » let·ix·=·round(fx); | | [NORMAL] ESLintBear (no-shadow): | | 'ix' is already declared in the upper scope. binaries/data/mods/public/maps/random/flood.js | 123| » let·iz·=·round(fz); | | [NORMAL] ESLintBear (no-shadow): | | 'iz' is already declared in the upper scope. binaries/data/mods/public/maps/random/flood.js | 128| » let·placer·=·new·ClumpPlacer(hillSize,·0.80,·0.1,·10,·ix,·iz); | | [NORMAL] ESLintBear (no-shadow): | | 'placer' is already declared in the upper scope. binaries/data/mods/public/maps/random/flood.js | 129| » let·terrainPainter·=·new·LayeredPainter( | | [NORMAL] ESLintBear (no-shadow): | | 'terrainPainter' is already declared in the upper scope. binaries/data/mods/public/maps/random/flood.js | 133| » let·elevationPainter·=·new·SmoothElevationPainter( | | [NORMAL] ESLintBear (no-shadow): | | 'elevationPainter' is already declared in the upper scope. binaries/data/mods/public/maps/random/flood.js | 229| » let·placer·=·new·ChainPlacer( | | [NORMAL] ESLintBear (no-shadow): | | 'placer' is already declared in the upper scope. binaries/data/mods/public/maps/random/flood.js | 240| » let·terrainPainter·=·new·LayeredPainter( | | [NORMAL] ESLintBear (no-shadow): | | 'terrainPainter' is already declared in the upper scope. binaries/data/mods/public/maps/random/flood.js | 244| » let·elevationPainter·=·new·SmoothElevationPainter( | | [NORMAL] ESLintBear (no-shadow): | | 'elevationPainter' is already declared in the upper scope. binaries/data/mods/public/maps/random/flood.js | 254| » let·placer·=·new·ChainPlacer( | | [NORMAL] ESLintBear (no-shadow): | | 'placer' is already declared in the upper scope. binaries/data/mods/public/maps/random/flood.js | 265| » let·terrainPainter·=·new·LayeredPainter( | | [NORMAL] ESLintBear (no-shadow): | | 'terrainPainter' is already declared in the upper scope. binaries/data/mods/public/maps/random/flood.js | 269| » let·elevationPainter·=·new·SmoothElevationPainter( | | [NORMAL] ESLintBear (no-shadow): | | 'elevationPainter' is already declared in the upper scope. | | [NORMAL] ESLintBear (no-multi-spaces): | | Multiple spaces found before '"gaia/fauna_lion"'. |----| | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/maps/random/ngorongoro.js | |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/maps/random/ngorongoro.js | 261| 261| RMS.SetProgress(60); | 262| 262| | 263| 263| g_Gaia.mainHuntableAnimal = "gaia/fauna_lioness"; | 264| |-g_Gaia.secondaryHuntableAnimal = "gaia/fauna_lion"; | | 264|+g_Gaia.secondaryHuntableAnimal = "gaia/fauna_lion"; | 265| 265| g_Terrains.mainTerrain = "savanna_grass_a_wetseason"; | 266| 266| g_Terrains.forestFloor1 = "savanna_grass_a"; | 267| 267| g_Terrains.forestFloor2 = "savanna_grass_b"; | | [NORMAL] ESLintBear (no-multi-spaces): | | Multiple spaces found before '"gaia/fauna_elephant_african_bush"'. |----| | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/maps/random/ngorongoro.js | |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/maps/random/ngorongoro.js | 388| 388| RMS.SetProgress(70); | 389| 389| | 390| 390| g_Gaia.mainHuntableAnimal = "gaia/fauna_rhino"; | 391| |-g_Gaia.secondaryHuntableAnimal = "gaia/fauna_elephant_african_bush"; | | 391|+g_Gaia.secondaryHuntableAnimal = "gaia/fauna_elephant_african_bush"; | 392| 392| initBiome(); | 393| 393| | 394| 394| log("Render eden..."); binaries/data/mods/public/gui/gamesetup/gamesetup.js |1660| » while·(g_IsNetworked) | | [NORMAL] ESLintBear (no-unmodified-loop-condition): | | 'g_IsNetworked' is not modified in this loop. binaries/data/mods/public/gui/gamesetup/gamesetup.js |1485| » » » » if·(g_Settings.Biomes.every(bio·=>·bio.Id·!=·biome)) | | [NORMAL] JSHintBear: | | Don't make functions within a loop. binaries/data/mods/public/gui/gamesetup/gamesetup.js |1486| » » » » » warn("Map·'"·+·g_GameAttributes.map·+·"'·contains·unknown·biome·'"·+·biome·+·"'") | | [NORMAL] JSHintBear: | | Missing semicolon. binaries/data/mods/public/gui/gamesetup/gamesetup.js |1642| » if·(g_LoadingState·==·0) | | [NORMAL] JSHintBear: | | Use '===' to compare with '0'. binaries/data/mods/public/gui/gamesetup/gamesetup.js |1694| » » if·(playerData.some((pData,·j)·=>·i·!=·j·&&·sameColor(playerData[i].Color,·pData.Color))) | | [NORMAL] JSHintBear: | | Don't make functions within a loop. binaries/data/mods/public/gui/gamesetup/gamesetup.js |1695| » » » playerData[i].Color·=·g_PlayerColorPickerList.find(color·=>·playerData.every(pData·=>·!sameColor(color,·pData.Color))); | | [NORMAL] JSHintBear: | | Don't make functions within a loop. binaries/data/mods/public/gui/gamesetup/gamesetup.js |1876| » » » chosenCiv·=·pickRandom(Object.keys(g_CivData).filter(civ·=>·g_CivData[civ].Culture·==·culture)); | | [NORMAL] JSHintBear: | | Don't make functions within a loop. binaries/data/mods/public/gui/gamesetup/gamesetup.js |1890| » » let·usedName·=·g_GameAttributes.settings.PlayerData.filter(pData·=>·pData.Name·&&·pData.Name.indexOf(chosenName)·!==·-1).length; | | [NORMAL] JSHintBear: | | Don't make functions within a loop. binaries/data/mods/public/maps/random/rmgen/randombiome.js | 466| » » var·random_trees·=·randIntInclusive(1,·3); | | [NORMAL] JSHintBear: | | 'random_trees' is already defined. binaries/data/mods/public/gui/common/settings.js | 356| » let·mapSize·=·g_Settings.MapSizes.find(mapSize·=>·mapSize.Tiles·==·+tiles); | | [NORMAL] ESLintBear (no-shadow): | | 'mapSize' is already declared in the upper scope. binaries/data/mods/public/gui/common/settings.js | 380| » let·vc·=·g_Settings.VictoryConditions.find(vc·=>·vc.Name·==·gameType); | | [NORMAL] ESLintBear (no-shadow): | | 'vc' is already declared in the upper scope. binaries/data/mods/public/gui/common/settings.js | 174| » » "Title":·timeout·==·0·?·translateWithContext("ceasefire",·"No·ceasefire")·: | | [NORMAL] JSHintBear: | | Use '===' to compare with '0'. binaries/data/mods/public/gui/common/settings.js | 225| » if·(victoryConditions.some(vc·=>·vc·==·undefined)) | | [NORMAL] JSHintBear: | | Use '===' to compare with 'undefined'. | | [NORMAL] ESLintBear (no-multi-spaces): | | Multiple spaces found before '"gaia/fauna_hawk"'. |----| | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/maps/random/pompeii.js | |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/maps/random/pompeii.js | 48| 48| g_Terrains.roadWild = "road1"; | 49| 49| g_Terrains.road = "road1"; | 50| 50| g_Gaia.mainHuntableAnimal = "gaia/fauna_goat"; | 51| |-g_Gaia.secondaryHuntableAnimal = "gaia/fauna_hawk"; | | 51|+g_Gaia.secondaryHuntableAnimal = "gaia/fauna_hawk"; | 52| 52| g_Gaia.fruitBush = "gaia/fauna_chicken"; | 53| 53| g_Gaia.fish = "gaia/fauna_fish"; | 54| 54| g_Gaia.tree1 = "gaia/flora_tree_dead"; | | [NORMAL] ESLintBear (no-multi-spaces): | | Multiple spaces found before '"gaia/fauna_gazelle"'. |----| | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/maps/random/bahrain.js | |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/maps/r
http://jenkins-master:8080/job/phabricator_lint/459/ for more details.
the patch works and looks quite good.
binaries/data/mods/public/gui/gamesetup/gamesetup.js | ||
---|---|---|
206 ↗ | (On Diff #3401) | the variable contains biomes supported by the map |
364 ↗ | (On Diff #3401) | Indeed dispalying the biomes dropdown in the more options dialog makes me think that this is the place also for other settings relative to the map generation like the approximative amount ( e.g. amount: sparse / average / abundant) for each type of resources (wood, food, mines). I wonder if players should also know about the current biome directly the settings as long the preview image doesn't change. |
"Description": "This biome is a variant of the Temperate biome and features a warm, inviting and colourful environment. Fallen leaves carpet the ground and make this a truly amazing place to play at."
I'm still uncertain whether the phrase "place to play at" is suitable in this context.
I did not suggest it and I certainly don't commend it while in doubt.
Anyway as its otherwise good and working, I accept this as long as the mentioned problem is addressed.
Committing this without the strings. Please enhance them.
binaries/data/mods/public/gui/gamesetup/gamesetup.js | ||
---|---|---|
364 ↗ | (On Diff #3401) | Agree, it should be added to gamedescriptions! Prefer to do it separately. |
1490 ↗ | (On Diff #3401) | Adding deepfreeze here... oh wait, it's already in prepareForDropdown :-) |
binaries/data/mods/public/simulation/data/settings/biomes.json | ||
1 ↗ | (On Diff #3401) | Not fond of starting every sentence in the same pattern "Foo biome ..." |
8 ↗ | (On Diff #3401) | The |
13 ↗ | (On Diff #3401) | According to wikipedia,
So it would be great to at least avoid the word "Snowy biome" in the desription.
Doesn't add value to the description. If something is redundant, mentioning that we have redundancy just adds to the redundancy instead of avoiding it. "conifers" is good
needlessly complicated sentence structure |
18 ↗ | (On Diff #3401) | sporting? |