Added global tiles countable (#13554)

* added new countables

mainly from my own req on discord for terrain to be countable, in this case i added All [tilefilter] Tiles, Unowned [tileFilter] Tiles, and Unclaimed [tileFilter] Tiles which should allow an even broader amount of stuff to be countable.

* recreated to only 1 countable

Thing to see if the 4 tile countables work when combined to a single countable

* Update Countables.kt
This commit is contained in:
PhiRite 2025-07-06 05:07:20 +08:00 committed by GitHub
parent 2019614826
commit 1ef4dcede4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -144,7 +144,6 @@ enum class Countables(
UniqueParameterType.CivFilter.getTranslatedErrorSeverity(parameterText, ruleset) UniqueParameterType.CivFilter.getTranslatedErrorSeverity(parameterText, ruleset)
override fun getKnownValuesForAutocomplete(ruleset: Ruleset) = setOf<String>() override fun getKnownValuesForAutocomplete(ruleset: Ruleset) = setOf<String>()
}, },
OwnedTiles("Owned [tileFilter] Tiles") { OwnedTiles("Owned [tileFilter] Tiles") {
override fun eval(parameterText: String, stateForConditionals: StateForConditionals): Int? { override fun eval(parameterText: String, stateForConditionals: StateForConditionals): Int? {
val filter = parameterText.getPlaceholderParameters()[0] val filter = parameterText.getPlaceholderParameters()[0]
@ -155,7 +154,17 @@ enum class Countables(
UniqueParameterType.TileFilter.getTranslatedErrorSeverity(parameterText, ruleset) UniqueParameterType.TileFilter.getTranslatedErrorSeverity(parameterText, ruleset)
override fun getKnownValuesForAutocomplete(ruleset: Ruleset) = setOf<String>() override fun getKnownValuesForAutocomplete(ruleset: Ruleset) = setOf<String>()
}, },
TileFilterTiles("[tileFilter] Tiles") {
override fun eval(parameterText: String, stateForConditionals: StateForConditionals): Int? {
val filter = parameterText.getPlaceholderParameters()[0]
val tileMap = stateForConditionals.gameInfo?.tileMap ?: return null
return tileMap.tileList.count { it.matchesFilter(filter, stateForConditionals.civInfo) }
}
override fun getErrorSeverity(parameterText: String, ruleset: Ruleset): UniqueType.UniqueParameterErrorSeverity? =
UniqueParameterType.TileFilter.getTranslatedErrorSeverity(parameterText, ruleset)
override fun getKnownValuesForAutocomplete(ruleset: Ruleset) = setOf<String>()
override val example: String = "[Desert] Tiles"
},
TileResources { TileResources {
override val documentationHeader = "Resource name - From [TileResources.json](3-Map-related-JSON-files.md#tileresourcesjson)" override val documentationHeader = "Resource name - From [TileResources.json](3-Map-related-JSON-files.md#tileresourcesjson)"
override val documentationStrings = listOf( override val documentationStrings = listOf(
@ -213,8 +222,6 @@ enum class Countables(
if (Stat.isStat(parameterText.getPlaceholderParameters()[0])) null else UniqueType.UniqueParameterErrorSeverity.RulesetInvariant if (Stat.isStat(parameterText.getPlaceholderParameters()[0])) null else UniqueType.UniqueParameterErrorSeverity.RulesetInvariant
override fun getKnownValuesForAutocomplete(ruleset: Ruleset) = Stat.entries.map { placeholderText.fillPlaceholders(it.name) }.toSet() override fun getKnownValuesForAutocomplete(ruleset: Ruleset) = Stat.entries.map { placeholderText.fillPlaceholders(it.name) }.toSet()
}, },
Expression { Expression {
override val noPlaceholders = false override val noPlaceholders = false