Added Stats as unique parameter type

This commit is contained in:
yairm210 2021-09-17 10:43:03 +03:00
parent af9e691102
commit 2f8de2d196
2 changed files with 12 additions and 1 deletions

View File

@ -8,6 +8,7 @@ import com.unciv.models.Counter
import com.unciv.models.ruleset.Building
import com.unciv.models.ruleset.ModOptionsConstants
import com.unciv.models.ruleset.Unique
import com.unciv.models.ruleset.UniqueType
import com.unciv.models.ruleset.unit.BaseUnit
import com.unciv.models.stats.Stat
import com.unciv.models.stats.Stats
@ -236,7 +237,8 @@ class CityStats(val cityInfo: CityInfo) {
stats.add(unique.stats)
// "[stats] if this city has at least [amount] specialists"
if (unique.placeholderText == "[] if this city has at least [] specialists" && cityInfo.population.getNumberOfSpecialists() >= unique.params[1].toInt())
if (unique.matches(UniqueType.StatBonusForNumberOfSpecialists, cityInfo.getRuleset())
&& cityInfo.population.getNumberOfSpecialists() >= unique.params[1].toInt())
stats.add(unique.stats)
// Deprecated since a very long time ago, moved here from another code section

View File

@ -40,6 +40,14 @@ enum class UniqueParameterType(val parameterName:String) {
return UniqueType.UniqueComplianceErrorSeverity.WarningOnly
}
},
Stats("stats"){
override fun getErrorSeverity(parameterText: String, ruleset: Ruleset):
UniqueType.UniqueComplianceErrorSeverity? {
if (!com.unciv.models.stats.Stats.isStats(parameterText))
return UniqueType.UniqueComplianceErrorSeverity.RulesetInvariant
return null
}
},
Unknown("param") {
override fun getErrorSeverity(parameterText: String, ruleset: Ruleset):
UniqueType.UniqueComplianceErrorSeverity? {
@ -85,6 +93,7 @@ enum class UniqueType(val text:String, val replacedBy: UniqueType? = null) {
DecreasedUnitMaintenanceCostsByFilter("-[amount]% [mapUnitFilter] unit maintenance costs", UnitMaintenanceDiscount),
@Deprecated("As of 3.16.16")
DecreasedUnitMaintenanceCostsGlobally("-[amount]% unit upkeep costs", UnitMaintenanceDiscount),
StatBonusForNumberOfSpecialists("[stats] if this city has at least [amount] specialists")
;
/** For uniques that have "special" parameters that can accept multiple types, we can override them manually