From 55f4f44e654460e2cf9ffcf63afc19dfc9c186bd Mon Sep 17 00:00:00 2001 From: yairm210 Date: Wed, 29 Jan 2025 15:10:10 +0200 Subject: [PATCH] modding: Added validation for UnitType.movementType --- core/src/com/unciv/models/ruleset/unit/UnitType.kt | 2 +- .../com/unciv/models/ruleset/validation/RulesetValidator.kt | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/core/src/com/unciv/models/ruleset/unit/UnitType.kt b/core/src/com/unciv/models/ruleset/unit/UnitType.kt index 5dbd9b4be5..4a80836f79 100644 --- a/core/src/com/unciv/models/ruleset/unit/UnitType.kt +++ b/core/src/com/unciv/models/ruleset/unit/UnitType.kt @@ -13,7 +13,7 @@ enum class UnitMovementType { // The types of tiles the unit can by default ente } class UnitType() : RulesetObject() { - private var movementType: String? = null + internal var movementType: String? = null private val unitMovementType: UnitMovementType? by lazy { if (movementType == null) null else UnitMovementType.valueOf(movementType!!) } override fun getUniqueTarget() = UniqueTarget.UnitType override fun makeLink() = "UnitType/$name" diff --git a/core/src/com/unciv/models/ruleset/validation/RulesetValidator.kt b/core/src/com/unciv/models/ruleset/validation/RulesetValidator.kt index e4c2c88656..b862ac3a18 100644 --- a/core/src/com/unciv/models/ruleset/validation/RulesetValidator.kt +++ b/core/src/com/unciv/models/ruleset/validation/RulesetValidator.kt @@ -18,6 +18,7 @@ import com.unciv.models.ruleset.unique.StateForConditionals import com.unciv.models.ruleset.unique.UniqueType import com.unciv.models.ruleset.unit.BaseUnit import com.unciv.models.ruleset.unit.Promotion +import com.unciv.models.ruleset.unit.UnitMovementType import com.unciv.models.stats.INamed import com.unciv.models.stats.Stats import com.unciv.models.tilesets.TileSetCache @@ -312,11 +313,14 @@ class RulesetValidator(val ruleset: Ruleset) { } } + val unitMovementTypes = UnitMovementType.entries.map { it.name }.toSet() private fun addUnitTypeErrors( lines: RulesetErrorList, tryFixUnknownUniques: Boolean ) { for (unitType in ruleset.unitTypes.values) { + if (unitType.movementType !in unitMovementTypes) + lines.add("Unit type ${unitType.name} has an invalid movement type ${unitType.movementType}", sourceObject = unitType) uniqueValidator.checkUniques(unitType, lines, true, tryFixUnknownUniques) } }