mirror of
https://github.com/yairm210/Unciv.git
synced 2025-02-24 21:51:14 +07:00
Added ruleset check for resource uniques with resource conditionals
This commit is contained in:
parent
bed8d3b176
commit
834567170e
@ -110,6 +110,12 @@ class UniqueValidator(val ruleset: Ruleset) {
|
||||
return rulesetErrors
|
||||
}
|
||||
|
||||
val resourceUniques = setOf(UniqueType.ProvidesResources, UniqueType.ConsumesResources,
|
||||
UniqueType.DoubleResourceProduced, UniqueType.StrategicResourcesIncrease)
|
||||
val resourceConditionals = setOf(UniqueType.ConditionalWithResource, UniqueType.ConditionalWithoutResource,
|
||||
UniqueType.ConditionalWhenBetweenStatResource, UniqueType.ConditionalWhenAboveAmountStatResource, UniqueType.ConditionalWhenBelowAmountStatResource,
|
||||
UniqueType.ConditionalWhenAboveAmountStatResourceSpeed, UniqueType.ConditionalWhenBelowAmountStatResourceSpeed, UniqueType.ConditionalWhenBetweenStatResourceSpeed)
|
||||
|
||||
private fun addConditionalErrors(
|
||||
conditional: Unique,
|
||||
rulesetErrors: RulesetErrorList,
|
||||
@ -162,6 +168,14 @@ class UniqueValidator(val ruleset: Ruleset) {
|
||||
RulesetErrorSeverity.Warning, uniqueContainer, unique
|
||||
)
|
||||
|
||||
if (unique.type in resourceUniques && conditional.type in resourceConditionals
|
||||
&& ruleset.tileResources[conditional.params.last()]?.let { it.hasUnique(UniqueType.CityResource) } == true)
|
||||
rulesetErrors.add(
|
||||
"$prefix contains the conditional \"${conditional.text}\"," +
|
||||
" which references a citywide resource. This is not a valid conditional for a resource uniques, " +
|
||||
"as it causes a recursive evaluation loop.",
|
||||
RulesetErrorSeverity.Error, uniqueContainer, unique)
|
||||
|
||||
val conditionalComplianceErrors =
|
||||
getComplianceErrors(conditional)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user