diff --git a/android/assets/jsons/Translations/NewGame,SaveGame,LoadGame,Options.json b/android/assets/jsons/Translations/NewGame,SaveGame,LoadGame,Options.json index 9570b1d9d0..5d65a7fbfe 100644 --- a/android/assets/jsons/Translations/NewGame,SaveGame,LoadGame,Options.json +++ b/android/assets/jsons/Translations/NewGame,SaveGame,LoadGame,Options.json @@ -88,6 +88,10 @@ Ukrainian:"Без варварів" } + "No ancient ruins": { + + } + "Victory conditions": { Italian:"Condizioni di Vittoria" French: "Conditions de victoire" diff --git a/core/src/com/unciv/logic/map/MapGenerator.kt b/core/src/com/unciv/logic/map/MapGenerator.kt index 6551ae4a1a..4909c41303 100644 --- a/core/src/com/unciv/logic/map/MapGenerator.kt +++ b/core/src/com/unciv/logic/map/MapGenerator.kt @@ -45,7 +45,7 @@ class MapGenerator() { setWaterTiles(map) - for(tile in map.values) randomizeTile(tile) + for(tile in map.values) randomizeTile(tile,gameParameters) randomizeResources(map, mapRadius) @@ -95,13 +95,13 @@ class MapGenerator() { } } - fun randomizeTile(tileInfo: TileInfo){ + fun randomizeTile(tileInfo: TileInfo,gameParameters : GameParameters){ if(tileInfo.getBaseTerrain().type==TerrainType.Land && Math.random()<0.05f){ tileInfo.baseTerrain = Constants.mountain tileInfo.setTransients() } addRandomTerrainFeature(tileInfo) - maybeAddAncientRuins(tileInfo) + maybeAddAncientRuins(tileInfo,gameParameters) } fun getLatitude(vector: Vector2): Float { @@ -195,9 +195,9 @@ class MapGenerator() { } - fun maybeAddAncientRuins(tile: TileInfo) { + fun maybeAddAncientRuins(tile: TileInfo, gameParameters: GameParameters) { val baseTerrain = tile.getBaseTerrain() - if(baseTerrain.type!=TerrainType.Water && !baseTerrain.impassable && Random().nextDouble() < 1f/100) + if(!gameParameters.noRuins && baseTerrain.type!=TerrainType.Water && !baseTerrain.impassable && Random().nextDouble() < 1f/100) tile.improvement = Constants.ancientRuins } diff --git a/core/src/com/unciv/models/metadata/GameParameters.kt b/core/src/com/unciv/models/metadata/GameParameters.kt index c0960ea701..b7cb0fb374 100644 --- a/core/src/com/unciv/models/metadata/GameParameters.kt +++ b/core/src/com/unciv/models/metadata/GameParameters.kt @@ -16,6 +16,7 @@ class GameParameters { // Default values are the default new game var numberOfCityStates = 0 var mapType = MapType.pangaea var noBarbarians = false + var noRuins = false; var mapFileName: String? = null var victoryTypes: ArrayList = VictoryType.values().toCollection(ArrayList()) // By default, all victory types var startingEra = TechEra.Ancient diff --git a/core/src/com/unciv/ui/newgamescreen/NewGameScreenOptionsTable.kt b/core/src/com/unciv/ui/newgamescreen/NewGameScreenOptionsTable.kt index e4f6e6bdbf..3a1bac2af0 100644 --- a/core/src/com/unciv/ui/newgamescreen/NewGameScreenOptionsTable.kt +++ b/core/src/com/unciv/ui/newgamescreen/NewGameScreenOptionsTable.kt @@ -27,6 +27,7 @@ class NewGameScreenOptionsTable(val newGameParameters: GameParameters, val onMul addCityStatesSelectBox() addVictoryTypeCheckboxes() addBarbariansCheckbox() + addNoRuinsCheckbox() addIsOnlineMultiplayerCheckbox() @@ -44,6 +45,17 @@ class NewGameScreenOptionsTable(val newGameParameters: GameParameters, val onMul add(noBarbariansCheckbox).colspan(2).row() } + private fun addNoRuinsCheckbox() { + val noRuinsCheckbox = CheckBox("No ancient ruins".tr(), CameraStageBaseScreen.skin) + noRuinsCheckbox.isChecked = newGameParameters.noRuins + noRuinsCheckbox.addListener(object : ChangeListener() { + override fun changed(event: ChangeEvent?, actor: Actor?) { + newGameParameters.noRuins = noRuinsCheckbox.isChecked + } + }) + add(noRuinsCheckbox).colspan(2).row() + } + private fun addIsOnlineMultiplayerCheckbox() { add("HIGHLY EXPERIMENTAL - YOU HAVE BEEN WARNED!".tr()).colspan(2).row()