mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-28 22:37:02 -04:00
More typings for building specific uniques
This commit is contained in:
parent
ed224d257a
commit
ca706db753
@ -321,7 +321,7 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction {
|
|||||||
override fun getProductionCost(civInfo: CivilizationInfo): Int {
|
override fun getProductionCost(civInfo: CivilizationInfo): Int {
|
||||||
var productionCost = cost.toFloat()
|
var productionCost = cost.toFloat()
|
||||||
|
|
||||||
for (unique in uniqueObjects.filter { it.placeholderText == "Cost increases by [] per owned city" })
|
for (unique in uniqueObjects.filter { it.isOfType(UniqueType.CostIncreasesPerCity) })
|
||||||
productionCost += civInfo.cities.count() * unique.params[0].toInt()
|
productionCost += civInfo.cities.count() * unique.params[0].toInt()
|
||||||
|
|
||||||
if (civInfo.isCityState())
|
if (civInfo.isCityState())
|
||||||
@ -555,7 +555,7 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (unique in uniqueObjects) when (unique.placeholderText) {
|
for (unique in uniqueObjects) when (unique.placeholderText) {
|
||||||
"Requires a [] in this city" -> {
|
UniqueType.RequiresAnotherBuilding.text -> {
|
||||||
val filter = unique.params[0]
|
val filter = unique.params[0]
|
||||||
if (civInfo.gameInfo.ruleSet.buildings.containsKey(filter) && !cityConstructions.containsBuildingOrEquivalent(filter))
|
if (civInfo.gameInfo.ruleSet.buildings.containsKey(filter) && !cityConstructions.containsBuildingOrEquivalent(filter))
|
||||||
rejectionReasons.add(
|
rejectionReasons.add(
|
||||||
@ -602,11 +602,10 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val cannotBeBuiltWith = uniqueObjects
|
val cannotBeBuiltWithUnique = uniqueObjects
|
||||||
.firstOrNull { it.placeholderText == "Cannot be built with []" }
|
.firstOrNull { it.isOfType(UniqueType.CannotBeBuiltWith) }
|
||||||
?.params?.get(0)
|
if (cannotBeBuiltWithUnique != null && cityConstructions.isBuilt(cannotBeBuiltWithUnique.params[0]))
|
||||||
if (cannotBeBuiltWith != null && cityConstructions.isBuilt(cannotBeBuiltWith))
|
rejectionReasons.add(RejectionReason.CannotBeBuiltWith.apply { errorMessage = cannotBeBuiltWithUnique.text })
|
||||||
rejectionReasons.add(RejectionReason.CannotBeBuiltWith.apply { errorMessage = "Cannot be built with [$cannotBeBuiltWith]" })
|
|
||||||
|
|
||||||
for ((resource, amount) in getResourceRequirements())
|
for ((resource, amount) in getResourceRequirements())
|
||||||
if (civInfo.getCivResourcesByName()[resource]!! < amount) {
|
if (civInfo.getCivResourcesByName()[resource]!! < amount) {
|
||||||
|
@ -141,6 +141,9 @@ enum class UniqueType(val text:String, vararg targets: UniqueTarget) {
|
|||||||
///////////////////////////////////////// BUILDING UNIQUES /////////////////////////////////////////
|
///////////////////////////////////////// BUILDING UNIQUES /////////////////////////////////////////
|
||||||
|
|
||||||
Unbuildable("Unbuildable", UniqueTarget.Building),
|
Unbuildable("Unbuildable", UniqueTarget.Building),
|
||||||
|
CostIncreasesPerCity("Cost increases by [amount] per owned city", UniqueTarget.Building),
|
||||||
|
CannotBeBuiltWith("Cannot be built with [buildingName]", UniqueTarget.Building),
|
||||||
|
RequiresAnotherBuilding("Requires a [buildingName] in this city", UniqueTarget.Building),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user