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 =
Cannot be built with [buildingName] =
Consumes [amount] [resource] =
Need [amount] more [resource] =
[amount] available =
Required tech: [requiredTech] =
Requires [PolicyOrNationalWonder] =

View File

@ -24,6 +24,7 @@ import com.unciv.models.translations.tr
import com.unciv.ui.civilopedia.FormattedLine
import com.unciv.ui.utils.Fonts
import com.unciv.ui.utils.extensions.getConsumesAmountString
import com.unciv.ui.utils.extensions.getNeedMoreAmountString
import com.unciv.ui.utils.extensions.toPercent
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"))
}
for ((resource, amount) in getResourceRequirements())
if (civInfo.getCivResourcesByName()[resource]!! < amount) {
rejectionReasons.add(RejectionReason.ConsumesResources.toInstance(resource.getConsumesAmountString(amount)))
for ((resource, requiredAmount) in getResourceRequirements()) {
val availableAmount = civInfo.getCivResourcesByName()[resource]!!
if (availableAmount < requiredAmount) {
rejectionReasons.add(RejectionReason.ConsumesResources.toInstance(resource.getNeedMoreAmountString(requiredAmount - availableAmount)))
}
}
if (requiredNearbyImprovedResources != null) {
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.extensions.filterAndLogic
import com.unciv.ui.utils.extensions.getConsumesAmountString
import com.unciv.ui.utils.extensions.getNeedMoreAmountString
import com.unciv.ui.utils.extensions.toPercent
import kotlin.math.pow
@ -417,10 +418,12 @@ class BaseUnit : RulesetObject(), INonPerpetualConstruction {
}
if (!civInfo.isBarbarian()) { // Barbarians don't need resources
for ((resource, amount) in getResourceRequirements())
if (civInfo.getCivResourcesByName()[resource]!! < amount) {
rejectionReasons.add(RejectionReason.ConsumesResources.toInstance(resource.getConsumesAmountString(amount)))
for ((resource, requiredAmount) in getResourceRequirements()) {
val availableAmount = civInfo.getCivResourcesByName()[resource]!!
if (availableAmount < requiredAmount) {
rejectionReasons.add(RejectionReason.ConsumesResources.toInstance(resource.getNeedMoreAmountString(requiredAmount - availableAmount)))
}
}
}
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) */
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 */
fun Duration.format(): String {
val sb = StringBuilder()