From 7731211b090227cdbfe6a4f9428f6934ce9ca5b9 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sun, 13 Dec 2020 09:19:45 +0200 Subject: [PATCH] All relevant unit filtering moved to baseUnit, so we can filter on constructions as well --- core/src/com/unciv/logic/map/MapUnit.kt | 9 +-------- core/src/com/unciv/models/ruleset/unit/BaseUnit.kt | 12 ++++++++++++ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/core/src/com/unciv/logic/map/MapUnit.kt b/core/src/com/unciv/logic/map/MapUnit.kt index 22e7a15156..acac7716b5 100644 --- a/core/src/com/unciv/logic/map/MapUnit.kt +++ b/core/src/com/unciv/logic/map/MapUnit.kt @@ -720,15 +720,8 @@ class MapUnit { } fun matchesFilter(filter: String): Boolean { - if (filter == type.name) return true - if (filter == name) return true - if (filter == "All") return true + if (baseUnit.matchesFilter(filter)) return true if ((filter == "Wounded" || filter == "wounded units") && health < 100) return true - if ((filter == "Land" || filter == "land units") && type.isLandUnit()) return true - if ((filter == "Water" || filter == "water units") && type.isWaterUnit()) return true - if ((filter == "Air" || filter == "air units") && type.isAirUnit()) return true - if (filter == "non-air" && !type.isAirUnit()) return true - if ((filter == "military" || filter == "military units") && type.isMilitary()) return true if (hasUnique(filter)) return true if ((filter == "Barbarians" || filter == "Barbarian") && civInfo.isBarbarian()) return true diff --git a/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt b/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt index 2fa65560b8..a7c979ecbb 100644 --- a/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt +++ b/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt @@ -211,4 +211,16 @@ class BaseUnit : INamed, IConstruction { return if (replaces == null) this else ruleset.units[replaces!!]!! } + + fun matchesFilter(filter:String):Boolean{ + if (filter == unitType.name) return true + if (filter == name) return true + if (filter == "All") return true + if ((filter == "Land" || filter == "land units") && unitType.isLandUnit()) return true + if ((filter == "Water" || filter == "water units") && unitType.isWaterUnit()) return true + if ((filter == "Air" || filter == "air units") && unitType.isAirUnit()) return true + if (filter == "non-air" && !unitType.isAirUnit()) return true + if ((filter == "military" || filter == "military units") && unitType.isMilitary()) return true + return false + } }