From 6a73c3f3700a2d98b6af7fa3a7613e8ba84b2dd2 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Wed, 6 Dec 2017 23:24:39 +0200 Subject: [PATCH] Can now build roads on jungle/forest Building picker now displays more relevant information --- core/src/com/unciv/civinfo/TileInfo.java | 4 ++-- .../game/pickerscreens/BuildingPickerScreen.java | 2 +- .../game/pickerscreens/ImprovementPickerScreen.java | 3 ++- core/src/com/unciv/models/gamebasics/Building.java | 12 +++++++----- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/core/src/com/unciv/civinfo/TileInfo.java b/core/src/com/unciv/civinfo/TileInfo.java index 2359559329..ae7c1a413a 100644 --- a/core/src/com/unciv/civinfo/TileInfo.java +++ b/core/src/com/unciv/civinfo/TileInfo.java @@ -95,12 +95,12 @@ public class TileInfo Terrain topTerrain = terrainFeature ==null ? getBaseTerrain() : getTerrainFeature(); if (improvement.techRequired != null && !isResearched(improvement.techRequired)) return false; if (improvement.terrainsCanBeBuiltOn.contains(topTerrain.name)) return true; + if(improvement.name.equals("Road") && this.roadStatus== RoadStatus.None) return true; + if(improvement.name.equals("Railroad") && this.roadStatus != RoadStatus.Railroad) return true; if (topTerrain.unbuildable) return false; if(improvement.name.equals(this.improvement)) return false; - if(improvement.name.equals("Road") && this.roadStatus== RoadStatus.None) return true; - if(improvement.name.equals("Railroad") && this.roadStatus != RoadStatus.Railroad) return true; return resource != null && getTileResource().improvement.equals(improvement.name); } diff --git a/core/src/com/unciv/game/pickerscreens/BuildingPickerScreen.java b/core/src/com/unciv/game/pickerscreens/BuildingPickerScreen.java index c0dbfe98ef..201392f005 100644 --- a/core/src/com/unciv/game/pickerscreens/BuildingPickerScreen.java +++ b/core/src/com/unciv/game/pickerscreens/BuildingPickerScreen.java @@ -64,7 +64,7 @@ public class BuildingPickerScreen extends PickerScreen { if(!cityBuildings.canBuild(building)) continue; TextButton TB = getProductionButton(building.name, building.name +"\r\n"+cityBuildings.turnsToBuilding(building.name)+" turns", - building.description, + building.getDescription(true), "Build "+building.name); if(building.isWonder) wonders.addActor(TB); else regularBuildings.addActor(TB); diff --git a/core/src/com/unciv/game/pickerscreens/ImprovementPickerScreen.java b/core/src/com/unciv/game/pickerscreens/ImprovementPickerScreen.java index d3dfcba40b..b8be2047de 100644 --- a/core/src/com/unciv/game/pickerscreens/ImprovementPickerScreen.java +++ b/core/src/com/unciv/game/pickerscreens/ImprovementPickerScreen.java @@ -7,6 +7,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.unciv.civinfo.CivilizationInfo; +import com.unciv.civinfo.TileInfo; import com.unciv.game.UnCivGame; import com.unciv.models.gamebasics.GameBasics; import com.unciv.models.gamebasics.TileImprovement; @@ -15,7 +16,7 @@ public class ImprovementPickerScreen extends PickerScreen { String SelectedImprovement; int TurnsToImprovement; - public ImprovementPickerScreen(final UnCivGame game, final com.unciv.civinfo.TileInfo tileInfo) { + public ImprovementPickerScreen(final UnCivGame game, final TileInfo tileInfo) { super(game); rightSideButton.setText("Pick improvement"); diff --git a/core/src/com/unciv/models/gamebasics/Building.java b/core/src/com/unciv/models/gamebasics/Building.java index 22c3e78c73..86c2df757b 100644 --- a/core/src/com/unciv/models/gamebasics/Building.java +++ b/core/src/com/unciv/models/gamebasics/Building.java @@ -25,14 +25,16 @@ public class Building extends NamedStats implements ICivilopedia { /** The bonus stats that a resource gets when this building is built */ public FullStats resourceBonusStats; - public String getDescription() { + public String getDescription(){return getDescription(false);} + + public String getDescription(boolean forBuildingPickerScreen) { FullStats stats = new FullStats(this); StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("Cost: "+cost+"\r\n"); + if (!forBuildingPickerScreen) stringBuilder.append("Cost: "+cost+"\r\n"); if (isWonder) stringBuilder.append("Wonder\r\n"); - if (requiredTech != null) stringBuilder.append("Requires "+requiredTech+" to be researched\r\n"); - if (requiredBuilding != null) stringBuilder.append("Requires a "+requiredBuilding+" to be built in this city\r\n"); - if (requiredBuildingInAllCities != null) stringBuilder.append("Requires a "+requiredBuildingInAllCities+" to be built in all cities\r\n"); + if (!forBuildingPickerScreen && requiredTech != null) stringBuilder.append("Requires "+requiredTech+" to be researched\r\n"); + if (!forBuildingPickerScreen && requiredBuilding != null) stringBuilder.append("Requires a "+requiredBuilding+" to be built in this city\r\n"); + if (!forBuildingPickerScreen && requiredBuildingInAllCities != null) stringBuilder.append("Requires a "+requiredBuildingInAllCities+" to be built in all cities\r\n"); if(providesFreeBuilding!=null) stringBuilder.append("Provides a free "+providesFreeBuilding+" in this city\r\n"); if(maintainance!=0) stringBuilder.append("Maintainance cost: "+maintainance+" gold\r\n"); stringBuilder.append(description + "\r\n" + stats);