mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-27 05:46:43 -04:00
chore: Split conditional unique validation to separate function
This commit is contained in:
parent
6d56fafbbe
commit
c4aeb4d32a
@ -667,7 +667,7 @@ class RulesetValidator(val ruleset: Ruleset) {
|
|||||||
unit.isCivilian() &&
|
unit.isCivilian() &&
|
||||||
!unit.isGreatPersonOfType("War")) {
|
!unit.isGreatPersonOfType("War")) {
|
||||||
lines.add("${unit.name} can place improvement $improvementName which has no stats, preventing unit automation!",
|
lines.add("${unit.name} can place improvement $improvementName which has no stats, preventing unit automation!",
|
||||||
RulesetErrorSeverity.Warning)
|
RulesetErrorSeverity.WarningOptionsOnly)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,35 +56,7 @@ class UniqueValidator(val ruleset: Ruleset) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (conditional in unique.conditionals) {
|
for (conditional in unique.conditionals) {
|
||||||
if (conditional.type == null) {
|
addConditionalErrors(conditional, rulesetErrors, prefix, unique, severityToReport)
|
||||||
rulesetErrors.add(
|
|
||||||
"$prefix unique \"${unique.text}\" contains the conditional \"${conditional.text}\"," +
|
|
||||||
" which is of an unknown type!",
|
|
||||||
RulesetErrorSeverity.Warning
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
if (conditional.type.targetTypes.none { it.modifierType != UniqueTarget.ModifierType.None })
|
|
||||||
rulesetErrors.add("$prefix unique \"${unique.text}\" contains the conditional \"${conditional.text}\"," +
|
|
||||||
" which is a Unique type not allowed as conditional or trigger.",
|
|
||||||
RulesetErrorSeverity.Warning)
|
|
||||||
|
|
||||||
if (conditional.type.targetTypes.contains(UniqueTarget.UnitActionModifier)
|
|
||||||
&& unique.type.targetTypes.none { UniqueTarget.UnitAction.canAcceptUniqueTarget(it) })
|
|
||||||
rulesetErrors.add("$prefix unique \"${unique.text}\" contains the conditional \"${conditional.text}\"," +
|
|
||||||
" which as a UnitActionModifier is only allowed on UnitAciton uniques.",
|
|
||||||
RulesetErrorSeverity.Warning)
|
|
||||||
|
|
||||||
val conditionalComplianceErrors =
|
|
||||||
getComplianceErrors(conditional)
|
|
||||||
for (complianceError in conditionalComplianceErrors) {
|
|
||||||
if (complianceError.errorSeverity == severityToReport)
|
|
||||||
rulesetErrors.add(RulesetError( "$prefix unique \"${unique.text}\" contains the conditional \"${conditional.text}\"." +
|
|
||||||
" This contains the parameter ${complianceError.parameterName} which does not fit parameter type" +
|
|
||||||
" ${complianceError.acceptableParameterTypes.joinToString(" or ") { it.parameterName }} !",
|
|
||||||
complianceError.errorSeverity.getRulesetErrorSeverity(severityToReport)
|
|
||||||
))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -93,7 +65,63 @@ class UniqueValidator(val ruleset: Ruleset) {
|
|||||||
// The tests are RulesetInvariant in nature, but RulesetSpecific is called for _all_ objects, invariant is not.
|
// The tests are RulesetInvariant in nature, but RulesetSpecific is called for _all_ objects, invariant is not.
|
||||||
return rulesetErrors
|
return rulesetErrors
|
||||||
|
|
||||||
|
addDeprecationAnnotationErrors(unique, prefix, rulesetErrors)
|
||||||
|
|
||||||
|
return rulesetErrors
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun addConditionalErrors(
|
||||||
|
conditional: Unique,
|
||||||
|
rulesetErrors: RulesetErrorList,
|
||||||
|
prefix: String,
|
||||||
|
unique: Unique,
|
||||||
|
severityToReport: UniqueType.UniqueComplianceErrorSeverity
|
||||||
|
) {
|
||||||
|
if (conditional.type == null) {
|
||||||
|
rulesetErrors.add(
|
||||||
|
"$prefix unique \"${unique.text}\" contains the conditional \"${conditional.text}\"," +
|
||||||
|
" which is of an unknown type!",
|
||||||
|
RulesetErrorSeverity.Warning
|
||||||
|
)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (conditional.type.targetTypes.none { it.modifierType != UniqueTarget.ModifierType.None })
|
||||||
|
rulesetErrors.add(
|
||||||
|
"$prefix unique \"${unique.text}\" contains the conditional \"${conditional.text}\"," +
|
||||||
|
" which is a Unique type not allowed as conditional or trigger.",
|
||||||
|
RulesetErrorSeverity.Warning
|
||||||
|
)
|
||||||
|
|
||||||
|
if (conditional.type.targetTypes.contains(UniqueTarget.UnitActionModifier)
|
||||||
|
&& conditional.type.targetTypes.none { UniqueTarget.UnitAction.canAcceptUniqueTarget(it) }
|
||||||
|
)
|
||||||
|
rulesetErrors.add(
|
||||||
|
"$prefix unique \"${unique.text}\" contains the conditional \"${conditional.text}\"," +
|
||||||
|
" which as a UnitActionModifier is only allowed on UnitAciton uniques.",
|
||||||
|
RulesetErrorSeverity.Warning
|
||||||
|
)
|
||||||
|
|
||||||
|
val conditionalComplianceErrors =
|
||||||
|
getComplianceErrors(conditional)
|
||||||
|
for (complianceError in conditionalComplianceErrors) {
|
||||||
|
if (complianceError.errorSeverity == severityToReport)
|
||||||
|
rulesetErrors.add(
|
||||||
|
RulesetError(
|
||||||
|
"$prefix unique \"${unique.text}\" contains the conditional \"${conditional.text}\"." +
|
||||||
|
" This contains the parameter ${complianceError.parameterName} which does not fit parameter type" +
|
||||||
|
" ${complianceError.acceptableParameterTypes.joinToString(" or ") { it.parameterName }} !",
|
||||||
|
complianceError.errorSeverity.getRulesetErrorSeverity(severityToReport)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun addDeprecationAnnotationErrors(
|
||||||
|
unique: Unique,
|
||||||
|
prefix: String,
|
||||||
|
rulesetErrors: RulesetErrorList
|
||||||
|
) {
|
||||||
val deprecationAnnotation = unique.getDeprecationAnnotation()
|
val deprecationAnnotation = unique.getDeprecationAnnotation()
|
||||||
if (deprecationAnnotation != null) {
|
if (deprecationAnnotation != null) {
|
||||||
val replacementUniqueText = unique.getReplacementText(ruleset)
|
val replacementUniqueText = unique.getReplacementText(ruleset)
|
||||||
@ -106,8 +134,6 @@ class UniqueValidator(val ruleset: Ruleset) {
|
|||||||
|
|
||||||
rulesetErrors.add(deprecationText, severity)
|
rulesetErrors.add(deprecationText, severity)
|
||||||
}
|
}
|
||||||
|
|
||||||
return rulesetErrors
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Maps uncompliant parameters to their required types */
|
/** Maps uncompliant parameters to their required types */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user