Fixed unique validation refactor breaks

This commit is contained in:
Yair Morgenstern 2023-10-01 15:29:04 +03:00
parent c4aeb4d32a
commit 43ff2ac1f5
4 changed files with 14 additions and 13 deletions

View File

@ -21,6 +21,7 @@ import com.unciv.models.ruleset.unit.BaseUnit
import com.unciv.models.ruleset.unit.Promotion
import com.unciv.models.ruleset.unit.UnitType
import com.unciv.models.ruleset.validation.RulesetValidator
import com.unciv.models.ruleset.validation.UniqueValidator
import com.unciv.models.stats.INamed
import com.unciv.models.translations.tr
import com.unciv.utils.Log
@ -378,7 +379,7 @@ class Ruleset {
name = cityStateType.name
color = cityStateType.color
friendBonusUniques = ArrayList(cityStateType.friendBonusUniques.filter {
RulesetValidator(this@Ruleset).checkUnique(
UniqueValidator(this@Ruleset).checkUnique(
Unique(it),
false,
cityStateType,
@ -386,7 +387,7 @@ class Ruleset {
).isEmpty()
})
allyBonusUniques = ArrayList(cityStateType.allyBonusUniques.filter {
RulesetValidator(this@Ruleset).checkUnique(
UniqueValidator(this@Ruleset).checkUnique(
Unique(it),
false,
cityStateType,

View File

@ -8,7 +8,7 @@ import com.unciv.logic.city.City
import com.unciv.logic.civilization.Civilization
import com.unciv.logic.civilization.managers.ReligionState
import com.unciv.models.ruleset.Ruleset
import com.unciv.models.ruleset.validation.RulesetValidator
import com.unciv.models.ruleset.validation.UniqueValidator
import com.unciv.models.stats.Stats
import com.unciv.models.translations.getConditionals
import com.unciv.models.translations.getPlaceholderParameters
@ -119,7 +119,7 @@ class Unique(val text: String, val sourceObjectType: UniqueTarget? = null, val s
// filter out possible replacements that are obviously wrong
val uniquesWithNoErrors = finalPossibleUniques.filter {
val unique = Unique(it)
val errors = RulesetValidator(ruleset).checkUnique(
val errors = UniqueValidator(ruleset).checkUnique(
unique, true, null,
UniqueType.UniqueComplianceErrorSeverity.RulesetSpecific
)

View File

@ -85,7 +85,7 @@ class UniqueValidator(val ruleset: Ruleset) {
)
return
}
if (conditional.type.targetTypes.none { it.modifierType != UniqueTarget.ModifierType.None })
rulesetErrors.add(
"$prefix unique \"${unique.text}\" contains the conditional \"${conditional.text}\"," +
@ -94,11 +94,11 @@ class UniqueValidator(val ruleset: Ruleset) {
)
if (conditional.type.targetTypes.contains(UniqueTarget.UnitActionModifier)
&& conditional.type.targetTypes.none { UniqueTarget.UnitAction.canAcceptUniqueTarget(it) }
&& 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.",
" which as a UnitActionModifier is only allowed on UnitAction uniques.",
RulesetErrorSeverity.Warning
)

View File

@ -7,14 +7,15 @@ import com.badlogic.gdx.scenes.scene2d.ui.Table
import com.badlogic.gdx.utils.Align
import com.unciv.models.ruleset.Ruleset
import com.unciv.models.ruleset.RulesetCache
import com.unciv.models.ruleset.validation.RulesetError
import com.unciv.models.ruleset.validation.RulesetErrorSeverity
import com.unciv.models.ruleset.validation.RulesetValidator
import com.unciv.models.ruleset.unique.Unique
import com.unciv.models.ruleset.unique.UniqueType
import com.unciv.models.ruleset.validation.RulesetError
import com.unciv.models.ruleset.validation.RulesetErrorSeverity
import com.unciv.models.ruleset.validation.UniqueValidator
import com.unciv.models.translations.tr
import com.unciv.ui.components.ExpanderTab
import com.unciv.ui.components.TabbedPager
import com.unciv.ui.components.TranslatedSelectBox
import com.unciv.ui.components.extensions.surroundWithCircle
import com.unciv.ui.components.extensions.toLabel
import com.unciv.ui.components.extensions.toTextButton
@ -23,7 +24,6 @@ import com.unciv.ui.components.input.onClick
import com.unciv.ui.images.ImageGetter
import com.unciv.ui.popups.ToastPopup
import com.unciv.ui.screens.basescreen.BaseScreen
import com.unciv.ui.components.TranslatedSelectBox
import com.unciv.utils.Concurrency
import com.unciv.utils.Log
import com.unciv.utils.debug
@ -200,7 +200,7 @@ class ModCheckTab(
uniqueReplacementText += " <${conditional.text}>"
val replacementUnique = Unique(uniqueReplacementText)
val modInvariantErrors = RulesetValidator(mod).checkUnique(
val modInvariantErrors = UniqueValidator(mod).checkUnique(
replacementUnique,
false,
null,
@ -211,7 +211,7 @@ class ModCheckTab(
if (modInvariantErrors.isNotEmpty()) continue // errors means no autoreplace
if (mod.modOptions.isBaseRuleset) {
val modSpecificErrors = RulesetValidator(mod).checkUnique(
val modSpecificErrors = UniqueValidator(mod).checkUnique(
replacementUnique,
false,
null,