diff --git a/core/src/com/unciv/logic/trade/TradeOffer.kt b/core/src/com/unciv/logic/trade/TradeOffer.kt index b68c7a7aa7..37ee7cb729 100644 --- a/core/src/com/unciv/logic/trade/TradeOffer.kt +++ b/core/src/com/unciv/logic/trade/TradeOffer.kt @@ -29,7 +29,7 @@ data class TradeOffer(var name:String, var type: TradeType, var amount:Int=1, va var offerText = when(type){ TradeType.WarDeclaration -> "Declare war on [$name]" TradeType.Introduction -> "Introduction to [$name]" - TradeType.City -> UncivGame.Current.gameInfo.getCities().first{ it.id == name }.name + TradeType.City -> UncivGame.Current.gameInfo.getCities().firstOrNull{ it.id == name }?.name ?: "Non-existent city" else -> name }.tr() if (type !in tradesToNotHaveNumbers || name=="Research Agreement") offerText += " ($amount)" diff --git a/core/src/com/unciv/models/ruleset/Nation.kt b/core/src/com/unciv/models/ruleset/Nation.kt index 597f41f44a..008d4c383e 100644 --- a/core/src/com/unciv/models/ruleset/Nation.kt +++ b/core/src/com/unciv/models/ruleset/Nation.kt @@ -100,25 +100,28 @@ class Nation : INamed { private fun addUniqueBuildingsText(textList: ArrayList, ruleset: Ruleset) { for (building in ruleset.buildings.values .filter { it.uniqueTo == name }) { - val originalBuilding = ruleset.buildings[building.replaces!!]!! + if (building.replaces == null) textList += building.getShortDescription(ruleset) + else { + val originalBuilding = ruleset.buildings[building.replaces!!]!! - textList += building.name.tr() + " - "+"Replaces [${originalBuilding.name}]".tr() - val originalBuildingStatMap = originalBuilding.toHashMap() - for (stat in building.toHashMap()) - if (stat.value != originalBuildingStatMap[stat.key]) - textList += " " + stat.key.toString().tr() + " " + "[${stat.value.toInt()}] vs [${originalBuildingStatMap[stat.key]!!.toInt()}]".tr() + textList += building.name.tr() + " - " + "Replaces [${originalBuilding.name}]".tr() + val originalBuildingStatMap = originalBuilding.toHashMap() + for (stat in building.toHashMap()) + if (stat.value != originalBuildingStatMap[stat.key]) + textList += " " + stat.key.toString().tr() + " " + "[${stat.value.toInt()}] vs [${originalBuildingStatMap[stat.key]!!.toInt()}]".tr() - for (unique in building.uniques.filter { it !in originalBuilding.uniques }) - textList += " " + unique.tr() - if (building.maintenance != originalBuilding.maintenance) - textList += " {Maintenance} " + "[${building.maintenance}] vs [${originalBuilding.maintenance}]".tr() - if (building.cost != originalBuilding.cost) - textList += " {Cost} " + "[${building.cost}] vs [${originalBuilding.cost}]".tr() - if (building.cityStrength != originalBuilding.cityStrength) - textList += " {City strength} " + "[${building.cityStrength}] vs [${originalBuilding.cityStrength}]".tr() - if (building.cityHealth != originalBuilding.cityHealth) - textList += " {City health} " + "[${building.cityHealth}] vs [${originalBuilding.cityHealth}]".tr() - textList += "" + for (unique in building.uniques.filter { it !in originalBuilding.uniques }) + textList += " " + unique.tr() + if (building.maintenance != originalBuilding.maintenance) + textList += " {Maintenance} " + "[${building.maintenance}] vs [${originalBuilding.maintenance}]".tr() + if (building.cost != originalBuilding.cost) + textList += " {Cost} " + "[${building.cost}] vs [${originalBuilding.cost}]".tr() + if (building.cityStrength != originalBuilding.cityStrength) + textList += " {City strength} " + "[${building.cityStrength}] vs [${originalBuilding.cityStrength}]".tr() + if (building.cityHealth != originalBuilding.cityHealth) + textList += " {City health} " + "[${building.cityHealth}] vs [${originalBuilding.cityHealth}]".tr() + textList += "" + } } }