fix #7565: Remove duplicate "Consumes ..." lines of city screen (#7592)

* fix #7565: Delete one "Consumes ..." lines of city screen

* fix #7565: Delete one "Consumes ..." lines of city screen

* fix #7565: Delete one "Consumes ..." lines of city screen
This commit is contained in:
Nika Kasradze 2022-08-03 21:38:35 +04:00 committed by GitHub
parent 61d48a5c37
commit 33ca2d8ef9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 6 deletions

View File

@ -87,6 +87,7 @@ Requires a [buildingName] in all cities =
Requires a [buildingName] in this city = Requires a [buildingName] in this city =
Cannot be built with [buildingName] = Cannot be built with [buildingName] =
Consumes [amount] [resource] = Consumes [amount] [resource] =
Need [amount] more [resource] =
[amount] available = [amount] available =
Required tech: [requiredTech] = Required tech: [requiredTech] =
Requires [PolicyOrNationalWonder] = Requires [PolicyOrNationalWonder] =

View File

@ -24,6 +24,7 @@ import com.unciv.models.translations.tr
import com.unciv.ui.civilopedia.FormattedLine import com.unciv.ui.civilopedia.FormattedLine
import com.unciv.ui.utils.Fonts import com.unciv.ui.utils.Fonts
import com.unciv.ui.utils.extensions.getConsumesAmountString import com.unciv.ui.utils.extensions.getConsumesAmountString
import com.unciv.ui.utils.extensions.getNeedMoreAmountString
import com.unciv.ui.utils.extensions.toPercent import com.unciv.ui.utils.extensions.toPercent
import kotlin.math.pow import kotlin.math.pow
@ -613,10 +614,12 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction {
rejectionReasons.add(RejectionReason.RequiresBuildingInThisCity.toInstance("Requires a [${civInfo.getEquivalentBuilding(requiredBuilding!!)}] in this city")) rejectionReasons.add(RejectionReason.RequiresBuildingInThisCity.toInstance("Requires a [${civInfo.getEquivalentBuilding(requiredBuilding!!)}] in this city"))
} }
for ((resource, amount) in getResourceRequirements()) for ((resource, requiredAmount) in getResourceRequirements()) {
if (civInfo.getCivResourcesByName()[resource]!! < amount) { val availableAmount = civInfo.getCivResourcesByName()[resource]!!
rejectionReasons.add(RejectionReason.ConsumesResources.toInstance(resource.getConsumesAmountString(amount))) if (availableAmount < requiredAmount) {
rejectionReasons.add(RejectionReason.ConsumesResources.toInstance(resource.getNeedMoreAmountString(requiredAmount - availableAmount)))
} }
}
if (requiredNearbyImprovedResources != null) { if (requiredNearbyImprovedResources != null) {
val containsResourceWithImprovement = cityConstructions.cityInfo.getWorkableTiles() val containsResourceWithImprovement = cityConstructions.cityInfo.getWorkableTiles()

View File

@ -19,6 +19,7 @@ import com.unciv.ui.civilopedia.FormattedLine
import com.unciv.ui.utils.Fonts import com.unciv.ui.utils.Fonts
import com.unciv.ui.utils.extensions.filterAndLogic import com.unciv.ui.utils.extensions.filterAndLogic
import com.unciv.ui.utils.extensions.getConsumesAmountString import com.unciv.ui.utils.extensions.getConsumesAmountString
import com.unciv.ui.utils.extensions.getNeedMoreAmountString
import com.unciv.ui.utils.extensions.toPercent import com.unciv.ui.utils.extensions.toPercent
import kotlin.math.pow import kotlin.math.pow
@ -417,10 +418,12 @@ class BaseUnit : RulesetObject(), INonPerpetualConstruction {
} }
if (!civInfo.isBarbarian()) { // Barbarians don't need resources if (!civInfo.isBarbarian()) { // Barbarians don't need resources
for ((resource, amount) in getResourceRequirements()) for ((resource, requiredAmount) in getResourceRequirements()) {
if (civInfo.getCivResourcesByName()[resource]!! < amount) { val availableAmount = civInfo.getCivResourcesByName()[resource]!!
rejectionReasons.add(RejectionReason.ConsumesResources.toInstance(resource.getConsumesAmountString(amount))) if (availableAmount < requiredAmount) {
rejectionReasons.add(RejectionReason.ConsumesResources.toInstance(resource.getNeedMoreAmountString(requiredAmount - availableAmount)))
} }
}
} }
for (unique in civInfo.getMatchingUniques(UniqueType.CannotBuildUnits)) for (unique in civInfo.getMatchingUniques(UniqueType.CannotBuildUnits))

View File

@ -19,6 +19,9 @@ fun Float.toPercent() = 1 + this/100
/** Convert a [resource name][this] into "Consumes [amount] $resource" string (untranslated) */ /** Convert a [resource name][this] into "Consumes [amount] $resource" string (untranslated) */
fun String.getConsumesAmountString(amount: Int) = "Consumes [$amount] [$this]" fun String.getConsumesAmountString(amount: Int) = "Consumes [$amount] [$this]"
/** Convert a [resource name][this] into "Need [amount] more $resource" string (untranslated) */
fun String.getNeedMoreAmountString(amount: Int) = "Need [$amount] more [$this]"
/** Formats the [Duration] into a translated string */ /** Formats the [Duration] into a translated string */
fun Duration.format(): String { fun Duration.format(): String {
val sb = StringBuilder() val sb = StringBuilder()