Resolved #13091 - Resource uniques cannot use countables that depend on citywide resources

This commit is contained in:
yairm210 2025-03-25 11:36:59 +02:00
parent f5ba786e61
commit c3e44daa4c

View File

@ -176,6 +176,20 @@ class UniqueValidator(val ruleset: Ruleset) {
" 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)
// Find resource uniques with countable parameters in conditionals, that depend on citywide resources
// This too leads to an endless loop
if (unique.type in resourceUniques)
for ((index, param) in conditional.params.withIndex()){
if (ruleset.tileResources[param]?.isCityWide != true) continue
if (unique.type!!.parameterTypeMap.getOrNull(index)?.contains(UniqueParameterType.Countable) != true) continue
rulesetErrors.add(
"$prefix contains the modifier \"${conditional.text}\"," +
" which references a citywide resource as a countable." +
" 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)