From 1ceb3548dd81ab9fa1ec5dd866083102cff86c88 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Wed, 16 Sep 2020 19:17:25 +0300 Subject: [PATCH] Resolved #3130 - "All policies adopted" shown in policy picker screen when relevant --- .../jsons/translations/template.properties | 1 + core/src/com/unciv/logic/map/TileInfo.kt | 18 +++++++++++------- .../ui/pickerscreens/PolicyPickerScreen.kt | 3 +++ 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/android/assets/jsons/translations/template.properties b/android/assets/jsons/translations/template.properties index c9b4d2e7f2..1785941f22 100644 --- a/android/assets/jsons/translations/template.properties +++ b/android/assets/jsons/translations/template.properties @@ -811,6 +811,7 @@ Adopt policy = Adopt free policy = Unlocked at = Gain 2 free technologies = +All policies adopted = # Technologies diff --git a/core/src/com/unciv/logic/map/TileInfo.kt b/core/src/com/unciv/logic/map/TileInfo.kt index 335dd7f60a..51ef0e4398 100644 --- a/core/src/com/unciv/logic/map/TileInfo.kt +++ b/core/src/com/unciv/logic/map/TileInfo.kt @@ -248,11 +248,13 @@ open class TileInfo { for (unique in improvement.uniqueObjects) if (unique.placeholderText == "[] once [] is discovered" && observingCiv.tech.isResearched(unique.params[1])) stats.add(Stats.parse(unique.params[0])) - if(city!=null) { + if (city != null) { val cityWideUniques = city.cityConstructions.builtBuildingUniqueMap.getUniques("[] from [] tiles in this city") val civWideUniques = city.civInfo.getMatchingUniques("[] from every []") - val improvementUniques = improvement.uniqueObjects.filter { it.placeholderText == "[] on [] tiles once [] is discovered" - && observingCiv.tech.isResearched(it.params[2]) } + val improvementUniques = improvement.uniqueObjects.filter { + it.placeholderText == "[] on [] tiles once [] is discovered" + && observingCiv.tech.isResearched(it.params[2]) + } for (unique in cityWideUniques + civWideUniques + improvementUniques) { if (improvement.name == unique.params[1] || (unique.params[1] == "Great Improvement" && improvement.isGreatImprovement()) @@ -267,12 +269,14 @@ open class TileInfo { && observingCiv.hasUnique("Tile yield from Great Improvements +100%")) stats.add(improvement) // again, for the double effect - for(unique in improvement.uniqueObjects) + for (unique in improvement.uniqueObjects) if (unique.placeholderText == "[] for each adjacent []") { val adjacent = unique.params[1] - val numberOfBonuses = neighbors.count { it.improvement == adjacent - || it.fitsUniqueFilter(adjacent) - || it.roadStatus.name == adjacent} + val numberOfBonuses = neighbors.count { + it.improvement == adjacent + || it.fitsUniqueFilter(adjacent) + || it.roadStatus.name == adjacent + } stats.add(Stats.parse(unique.params[0]).times(numberOfBonuses.toFloat())) } diff --git a/core/src/com/unciv/ui/pickerscreens/PolicyPickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/PolicyPickerScreen.kt index 6c39999ccf..4a5e032844 100644 --- a/core/src/com/unciv/ui/pickerscreens/PolicyPickerScreen.kt +++ b/core/src/com/unciv/ui/pickerscreens/PolicyPickerScreen.kt @@ -25,6 +25,9 @@ class PolicyPickerScreen(val worldScreen: WorldScreen, civInfo: CivilizationInfo rightSideButton.setText("{Adopt policy}\r\n(".tr() + policies.storedCulture + "/" + policies.getCultureNeededForNextPolicy() + ")") + if (viewingCiv.gameInfo.ruleSet.policyBranches.values.flatMap { it.policies }.all { it.name in policies.adoptedPolicies}) + rightSideButton.setText("All policies adopted".tr()) + setDefaultCloseAction() if (policies.freePolicies > 0) { rightSideButton.setText("Adopt free policy".tr())