diff --git a/android/assets/jsons/Civ V - G&K/Units.json b/android/assets/jsons/Civ V - G&K/Units.json index 9bbe10bf56..ff90b85fb3 100644 --- a/android/assets/jsons/Civ V - G&K/Units.json +++ b/android/assets/jsons/Civ V - G&K/Units.json @@ -25,6 +25,7 @@ "movement": 2, "strength": 5, "cost": 25, + "obsoleteTech": "Scientific Theory", "uniques": ["Ignores terrain cost"], "attackSound": "nonmetalhit" }, @@ -913,6 +914,7 @@ "strength": 34, "cost": 225, "requiredTech": "Military Science", + "obsoleteTech": "Combustion", "requiredResource": "Horses", "upgradesTo": "Landship", "uniques": ["Can move after attacking","No defensive terrain bonus","Penalty vs City 33%" ], diff --git a/android/assets/jsons/Civ V - Vanilla/Units.json b/android/assets/jsons/Civ V - Vanilla/Units.json index 98ba730e0f..b2184b18f8 100644 --- a/android/assets/jsons/Civ V - Vanilla/Units.json +++ b/android/assets/jsons/Civ V - Vanilla/Units.json @@ -25,6 +25,7 @@ "movement": 2, "strength": 5, "cost": 25, + "obsoleteTech": "Scientific Theory", "uniques": ["Ignores terrain cost"], "attackSound": "nonmetalhit" }, @@ -913,6 +914,7 @@ "strength": 34, "cost": 225, "requiredTech": "Military Science", + "obsoleteTech": "Combustion", "requiredResource": "Horses", "upgradesTo": "Landship", "uniques": ["Can move after attacking","No defensive terrain bonus","Penalty vs City 33%" ], diff --git a/core/src/com/unciv/logic/civilization/TechManager.kt b/core/src/com/unciv/logic/civilization/TechManager.kt index ee26825ce4..7453338e66 100644 --- a/core/src/com/unciv/logic/civilization/TechManager.kt +++ b/core/src/com/unciv/logic/civilization/TechManager.kt @@ -267,10 +267,10 @@ class TechManager { for (constructionName in oldQueue) { var newConstructionName = constructionName if (constructionName in obsoleteUnits) { - val constructionUnit = city.cityConstructions.getConstruction(constructionName) as BaseUnit - newConstructionName = civInfo.getEquivalentUnit(constructionUnit.upgradesTo!!).name + val text = "[$constructionName] has been obsolete and will remove from construction queue in [${city.name}]!" + civInfo.addNotification(text, city.location, Color.BROWN) } - city.cityConstructions.constructionQueue.add(newConstructionName) + else city.cityConstructions.constructionQueue.add(newConstructionName) } } diff --git a/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt b/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt index e3452104b2..1332e1214e 100644 --- a/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt +++ b/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt @@ -123,7 +123,7 @@ class BaseUnit : INamed, IConstruction { fun getRejectionReason(construction: CityConstructions): String { if(unitType.isWaterUnit() && !construction.cityInfo.getCenterTile().isCoastalTile()) - return "Can't build water units by the coast" + return "Can only build water units in coastal cities" val civRejectionReason = getRejectionReason(construction.cityInfo.civInfo) if(civRejectionReason!="") return civRejectionReason return "" diff --git a/core/src/com/unciv/ui/mapeditor/LoadMapScreen.kt b/core/src/com/unciv/ui/mapeditor/LoadMapScreen.kt index ec5932ed5a..fc0f95493e 100644 --- a/core/src/com/unciv/ui/mapeditor/LoadMapScreen.kt +++ b/core/src/com/unciv/ui/mapeditor/LoadMapScreen.kt @@ -76,8 +76,7 @@ class LoadMapScreen(previousMap: TileMap?) : PickerScreen(){ rightSideTable.add(deleteMapButton).row() topTable.add(rightSideTable) - if(previousMap==null) closeButton.isVisible=false - else closeButton.onClick { UncivGame.Current.setScreen(MapEditorScreen(previousMap)) } + if(previousMap!=null) closeButton.onClick { UncivGame.Current.setScreen(MapEditorScreen(previousMap)) } } } diff --git a/core/src/com/unciv/ui/mapeditor/LoadScenarioScreen.kt b/core/src/com/unciv/ui/mapeditor/LoadScenarioScreen.kt index 0da35382d3..ffd674b6cf 100644 --- a/core/src/com/unciv/ui/mapeditor/LoadScenarioScreen.kt +++ b/core/src/com/unciv/ui/mapeditor/LoadScenarioScreen.kt @@ -82,8 +82,7 @@ class LoadScenarioScreen(previousMap: TileMap?): PickerScreen(){ rightSideTable.add(deleteScenarioButton).row() topTable.add(rightSideTable) - if(previousMap==null) closeButton.isVisible=false - else closeButton.onClick { UncivGame.Current.setScreen(MapEditorScreen(previousMap)) } + if(previousMap!=null) closeButton.onClick { UncivGame.Current.setScreen(MapEditorScreen(previousMap)) } } } \ No newline at end of file diff --git a/tests/src/com/unciv/testing/BasicTests.kt b/tests/src/com/unciv/testing/BasicTests.kt index fe2cc402b0..c157484d8f 100644 --- a/tests/src/com/unciv/testing/BasicTests.kt +++ b/tests/src/com/unciv/testing/BasicTests.kt @@ -53,7 +53,7 @@ class BasicTests { val units: Collection = ruleset.units.values var allObsoletingUnitsHaveUpgrades = true for (unit in units) { - if (unit.obsoleteTech != null && unit.upgradesTo == null) { + if (unit.obsoleteTech != null && unit.upgradesTo == null && unit.name !="Scout" ) { println(unit.name + " obsoletes but has no upgrade") allObsoletingUnitsHaveUpgrades = false }