mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-28 22:37:02 -04:00
Fixed a bug where buying units with faith would not increase in cost (#5546)
This commit is contained in:
parent
6ac3547b8e
commit
074676c342
@ -534,19 +534,21 @@ class CityConstructions {
|
|||||||
if (!cityInfo.civInfo.gameInfo.gameParameters.godMode) {
|
if (!cityInfo.civInfo.gameInfo.gameParameters.godMode) {
|
||||||
val construction = getConstruction(constructionName)
|
val construction = getConstruction(constructionName)
|
||||||
if (construction is PerpetualConstruction) return false
|
if (construction is PerpetualConstruction) return false
|
||||||
val constructionCost =
|
val constructionCost = (construction as INonPerpetualConstruction).getStatBuyCost(cityInfo, stat)
|
||||||
(construction as INonPerpetualConstruction).getStatBuyCost(cityInfo, stat)
|
|
||||||
if (constructionCost == null) return false // We should never end up here anyway, so things have already gone _way_ wrong
|
if (constructionCost == null) return false // We should never end up here anyway, so things have already gone _way_ wrong
|
||||||
cityInfo.addStat(stat, -1 * constructionCost)
|
cityInfo.addStat(stat, -1 * constructionCost)
|
||||||
|
|
||||||
if (cityInfo.civInfo.getMatchingUniques("May buy [] units for [] [] [] starting from the [] at an increasing price ([])")
|
val conditionalState = StateForConditionals(civInfo = cityInfo.civInfo, cityInfo = cityInfo)
|
||||||
.any {
|
|
||||||
|
if ((
|
||||||
|
cityInfo.civInfo.getMatchingUniques(UniqueType.BuyUnitsIncreasingCost, conditionalState) +
|
||||||
|
cityInfo.civInfo.getMatchingUniques(UniqueType.BuyBuildingsIncreasingCost, conditionalState)
|
||||||
|
).any {
|
||||||
(
|
(
|
||||||
construction is BaseUnit && construction.matchesFilter(it.params[0]) ||
|
construction is BaseUnit && construction.matchesFilter(it.params[0]) ||
|
||||||
construction is Building && construction.matchesFilter(it.params[0])
|
construction is Building && construction.matchesFilter(it.params[0])
|
||||||
)
|
)
|
||||||
&& cityInfo.matchesFilter(it.params[3])
|
&& cityInfo.matchesFilter(it.params[3])
|
||||||
&& cityInfo.civInfo.getEraNumber() >= cityInfo.civInfo.gameInfo.ruleSet.eras[it.params[4]]!!.eraNumber
|
|
||||||
&& it.params[2] == stat.name
|
&& it.params[2] == stat.name
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
|
@ -151,6 +151,7 @@ enum class UniqueType(val text:String, vararg targets: UniqueTarget) {
|
|||||||
FreeExtraAnyBeliefs("May choose [amount] additional belief(s) of any type when [foundingOrEnhancing] a religion", UniqueTarget.Global),
|
FreeExtraAnyBeliefs("May choose [amount] additional belief(s) of any type when [foundingOrEnhancing] a religion", UniqueTarget.Global),
|
||||||
|
|
||||||
BuyUnitsIncreasingCost("May buy [baseUnitFilter] units for [amount] [stat] [cityFilter] at an increasing price ([amount])", UniqueTarget.Global),
|
BuyUnitsIncreasingCost("May buy [baseUnitFilter] units for [amount] [stat] [cityFilter] at an increasing price ([amount])", UniqueTarget.Global),
|
||||||
|
BuyBuildingsIncreasingCost("May buy [buildingFilter] buildings for [amount] [stat] [cityFilter] at an increasing price ([amount])", UniqueTarget.Global),
|
||||||
@Deprecated("As of 3.17.9", ReplaceWith ("May buy [baseUnitFilter] units for [amount] [stat] [cityFilter] at an increasing price ([amount]) <starting from the [era]>"))
|
@Deprecated("As of 3.17.9", ReplaceWith ("May buy [baseUnitFilter] units for [amount] [stat] [cityFilter] at an increasing price ([amount]) <starting from the [era]>"))
|
||||||
BuyUnitsIncreasingCostEra("May buy [baseUnitFilter] units for [amount] [stat] [cityFilter] starting from the [era] at an increasing price ([amount])", UniqueTarget.Global),
|
BuyUnitsIncreasingCostEra("May buy [baseUnitFilter] units for [amount] [stat] [cityFilter] starting from the [era] at an increasing price ([amount])", UniqueTarget.Global),
|
||||||
BuyUnitsByProductionCost("May buy [baseUnitFilter] units with [stat] for [amount] times their normal Production cost", UniqueTarget.FollowerBelief, UniqueTarget.Global),
|
BuyUnitsByProductionCost("May buy [baseUnitFilter] units with [stat] for [amount] times their normal Production cost", UniqueTarget.FollowerBelief, UniqueTarget.Global),
|
||||||
|
@ -319,9 +319,8 @@ class BaseUnit : RulesetObject(), INonPerpetualConstruction {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
+ (cityInfo.getMatchingUniques(
|
+ (cityInfo.getMatchingUniques(UniqueType.BuyUnitsByProductionCost, conditionalState)
|
||||||
UniqueType.BuyUnitsByProductionCost, conditionalState
|
.filter {
|
||||||
).filter {
|
|
||||||
it.params[1] == stat.name
|
it.params[1] == stat.name
|
||||||
&& matchesFilter(it.params[0])
|
&& matchesFilter(it.params[0])
|
||||||
}.map {
|
}.map {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user