mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-27 22:06:05 -04: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
|
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(
|
private fun addConditionalErrors(
|
||||||
conditional: Unique,
|
conditional: Unique,
|
||||||
rulesetErrors: RulesetErrorList,
|
rulesetErrors: RulesetErrorList,
|
||||||
@ -162,6 +168,14 @@ class UniqueValidator(val ruleset: Ruleset) {
|
|||||||
RulesetErrorSeverity.Warning, uniqueContainer, unique
|
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 =
|
val conditionalComplianceErrors =
|
||||||
getComplianceErrors(conditional)
|
getComplianceErrors(conditional)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user