mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-29 22:29:15 +07:00
Add unique to conditionally control construction costs
This commit is contained in:
@ -114,6 +114,9 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction {
|
||||
for (unique in getMatchingUniques(UniqueType.CostIncreasesPerCity, stateForConditionals))
|
||||
productionCost += civInfo.cities.size * unique.params[0].toInt()
|
||||
|
||||
for (unique in getMatchingUniques(UniqueType.CostPercentageChange, stateForConditionals))
|
||||
productionCost *= unique.params[0].toPercent()
|
||||
|
||||
if (civInfo.isCityState())
|
||||
productionCost *= 1.5f
|
||||
if (civInfo.isHuman()) {
|
||||
|
@ -282,6 +282,7 @@ enum class UniqueType(
|
||||
|
||||
CostIncreasesPerCity("Cost increases by [amount] per owned city", UniqueTarget.Building, UniqueTarget.Unit),
|
||||
CostIncreasesWhenBuilt("Cost increases by [amount] when built", UniqueTarget.Building, UniqueTarget.Unit),
|
||||
CostPercentageChange("[amount]% production cost", UniqueTarget.Building, UniqueTarget.Unit, docDescription = "Intended to be used with conditionals to dynamically alter construction costs"),
|
||||
|
||||
@Deprecated("as of 4.10.17", ReplaceWith("Only available <if [buildingFilter] is constructed in all [non-[Puppeted]] cities>"))
|
||||
RequiresBuildingInAllCities("Requires a [buildingFilter] in all cities", UniqueTarget.Building),
|
||||
|
@ -19,6 +19,9 @@ class BaseUnitCost(val baseUnit: BaseUnit) {
|
||||
for (unique in baseUnit.getMatchingUniques(UniqueType.CostIncreasesWhenBuilt, stateForConditionals))
|
||||
productionCost += civInfo.civConstructions.builtItemsWithIncreasingCost[baseUnit.name] * unique.params[0].toInt()
|
||||
|
||||
for (unique in baseUnit.getMatchingUniques(UniqueType.CostPercentageChange, stateForConditionals))
|
||||
productionCost *= unique.params[0].toPercent()
|
||||
|
||||
if (civInfo.isCityState())
|
||||
productionCost *= 1.5f
|
||||
productionCost *= if (civInfo.isHuman())
|
||||
|
Reference in New Issue
Block a user