mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-24 03:53:12 -04:00
Add buildingFilter to building maintenance unique (second attempt) (#13334)
* Added buildingFilter to building maintenance unique * Restored the old unique * Replaced the unique to new version in rulesets * Changed buildingFilter parameter to lowercase * Fixed building maintenance calculation * Un-deprecated the old unique * Re-added Deprecated annotation * Removed the old unique from list again * Update core/src/com/unciv/models/ruleset/unique/UniqueType.kt --------- Co-authored-by: Yair Morgenstern <yairm210@hotmail.com>
This commit is contained in:
parent
b67429d5cb
commit
f8411ec220
@ -656,7 +656,7 @@
|
||||
"name": "Socialism",
|
||||
"requires": ["Planned Economy"],
|
||||
"uniques": [
|
||||
"[-15]% maintenance cost for buildings [in all cities]"
|
||||
"[-15]% maintenance cost for [all] buildings [in all cities]"
|
||||
],
|
||||
"row": 2,
|
||||
"column": 3
|
||||
|
@ -647,7 +647,7 @@
|
||||
"name": "Socialism",
|
||||
"requires": ["Planned Economy"],
|
||||
"uniques": [
|
||||
"[-15]% maintenance cost for buildings [in all cities]"
|
||||
"[-15]% maintenance cost for [all] buildings [in all cities]"
|
||||
],
|
||||
"row": 2,
|
||||
"column": 3
|
||||
|
@ -16,6 +16,7 @@ import com.unciv.models.stats.Stats
|
||||
import com.unciv.ui.components.extensions.toPercent
|
||||
import com.unciv.utils.DebugUtils
|
||||
import kotlin.math.min
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
|
||||
class StatTreeNode {
|
||||
@ -334,9 +335,17 @@ class CityStats(val city: City) {
|
||||
buildingsMaintenance *= city.civ.gameInfo.getDifficulty().aiBuildingMaintenanceModifier
|
||||
}
|
||||
|
||||
for (unique in city.getMatchingUniques(UniqueType.BuildingMaintenance)) {
|
||||
for (unique in city.getMatchingUniques(UniqueType.BuildingMaintenanceOld)) {
|
||||
buildingsMaintenance *= unique.params[0].toPercent()
|
||||
}
|
||||
|
||||
for (unique in city.getMatchingUniques(UniqueType.BuildingMaintenance)) {
|
||||
city.cityConstructions.getBuiltBuildings().filter {
|
||||
it.matchesFilter(unique.params[1])
|
||||
}.forEach {
|
||||
it.maintenance = (it.maintenance * unique.params[0].toPercent()).roundToInt()
|
||||
}
|
||||
}
|
||||
|
||||
return buildingsMaintenance
|
||||
}
|
||||
|
@ -141,7 +141,9 @@ enum class UniqueType(
|
||||
/// Building Maintenance
|
||||
GainFreeBuildings("Gain a free [buildingName] [cityFilter]", UniqueTarget.Global, UniqueTarget.Triggerable,
|
||||
docDescription = "Free buildings CANNOT be self-removing - this leads to an endless loop of trying to add the building"),
|
||||
BuildingMaintenance("[relativeAmount]% maintenance cost for buildings [cityFilter]", UniqueTarget.Global, UniqueTarget.FollowerBelief),
|
||||
BuildingMaintenance("[relativeAmount]% maintenance cost for [buildingFilter] buildings [cityFilter]", UniqueTarget.Global, UniqueTarget.FollowerBelief),
|
||||
@Deprecated(message = "as of 4.6.13", ReplaceWith("[relativeAmount]% maintenance cost for [all] buildings [cityFilter]"), level = DeprecationLevel.WARNING)
|
||||
BuildingMaintenanceOld("[relativeAmount]% maintenance cost for buildings [cityFilter]", UniqueTarget.Global, UniqueTarget.FollowerBelief),
|
||||
RemoveBuilding("Remove [buildingFilter] [cityFilter]", UniqueTarget.Global, UniqueTarget.Triggerable),
|
||||
OneTimeSellBuilding("Sell [buildingFilter] buildings [cityFilter]", UniqueTarget.Global, UniqueTarget.Triggerable),
|
||||
|
||||
|
@ -609,8 +609,8 @@ Simple unique parameters are explained by mouseover. Complex parameters are expl
|
||||
|
||||
Applicable to: Triggerable, Global
|
||||
|
||||
??? example "[relativeAmount]% maintenance cost for buildings [cityFilter]"
|
||||
Example: "[+20]% maintenance cost for buildings [in all cities]"
|
||||
??? example "[relativeAmount]% maintenance cost for [buildingFilter] buildings [cityFilter]"
|
||||
Example: "[+20]% maintenance cost for [Culture] buildings [in all cities]"
|
||||
|
||||
Applicable to: Global, FollowerBelief
|
||||
|
||||
@ -1366,8 +1366,8 @@ Simple unique parameters are explained by mouseover. Complex parameters are expl
|
||||
|
||||
Applicable to: Global, FollowerBelief
|
||||
|
||||
??? example "[relativeAmount]% maintenance cost for buildings [cityFilter]"
|
||||
Example: "[+20]% maintenance cost for buildings [in all cities]"
|
||||
??? example "[relativeAmount]% maintenance cost for [buildingFilter] buildings [cityFilter]"
|
||||
Example: "[+20]% maintenance cost for [Culture] buildings [in all cities]"
|
||||
|
||||
Applicable to: Global, FollowerBelief
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user