mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-27 22:06:05 -04:00
Add unique to conditionally control construction costs
This commit is contained in:
parent
b4cb0e3d75
commit
3689eed3aa
@ -114,6 +114,9 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction {
|
|||||||
for (unique in getMatchingUniques(UniqueType.CostIncreasesPerCity, stateForConditionals))
|
for (unique in getMatchingUniques(UniqueType.CostIncreasesPerCity, stateForConditionals))
|
||||||
productionCost += civInfo.cities.size * unique.params[0].toInt()
|
productionCost += civInfo.cities.size * unique.params[0].toInt()
|
||||||
|
|
||||||
|
for (unique in getMatchingUniques(UniqueType.CostPercentageChange, stateForConditionals))
|
||||||
|
productionCost *= unique.params[0].toPercent()
|
||||||
|
|
||||||
if (civInfo.isCityState())
|
if (civInfo.isCityState())
|
||||||
productionCost *= 1.5f
|
productionCost *= 1.5f
|
||||||
if (civInfo.isHuman()) {
|
if (civInfo.isHuman()) {
|
||||||
|
@ -282,6 +282,7 @@ enum class UniqueType(
|
|||||||
|
|
||||||
CostIncreasesPerCity("Cost increases by [amount] per owned city", UniqueTarget.Building, UniqueTarget.Unit),
|
CostIncreasesPerCity("Cost increases by [amount] per owned city", UniqueTarget.Building, UniqueTarget.Unit),
|
||||||
CostIncreasesWhenBuilt("Cost increases by [amount] when built", 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>"))
|
@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),
|
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))
|
for (unique in baseUnit.getMatchingUniques(UniqueType.CostIncreasesWhenBuilt, stateForConditionals))
|
||||||
productionCost += civInfo.civConstructions.builtItemsWithIncreasingCost[baseUnit.name] * unique.params[0].toInt()
|
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())
|
if (civInfo.isCityState())
|
||||||
productionCost *= 1.5f
|
productionCost *= 1.5f
|
||||||
productionCost *= if (civInfo.isHuman())
|
productionCost *= if (civInfo.isHuman())
|
||||||
|
@ -1070,6 +1070,12 @@ Simple unique parameters are explained by mouseover. Complex parameters are expl
|
|||||||
|
|
||||||
Applicable to: Building, Unit
|
Applicable to: Building, Unit
|
||||||
|
|
||||||
|
??? example "[amount]% Cost"
|
||||||
|
Intended to be used with conditionals to dynamically alter construction costs
|
||||||
|
Example: "[3]% Cost"
|
||||||
|
|
||||||
|
Applicable to: Building, Unit
|
||||||
|
|
||||||
??? example "Can only be built [cityFilter]"
|
??? example "Can only be built [cityFilter]"
|
||||||
Example: "Can only be built [in all cities]"
|
Example: "Can only be built [in all cities]"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user