mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-22 02:42:16 -04:00
Merge branch 'civfilter-diplomacy' of github.com:RobLoach/Unciv into add-great-admiral
This commit is contained in:
commit
13d0c3c025
@ -16,6 +16,7 @@ import com.unciv.logic.civilization.diplomacy.CityStatePersonality
|
||||
import com.unciv.logic.civilization.diplomacy.DiplomacyFunctions
|
||||
import com.unciv.logic.civilization.diplomacy.DiplomacyManager
|
||||
import com.unciv.logic.civilization.diplomacy.DiplomaticStatus
|
||||
import com.unciv.logic.civilization.diplomacy.RelationshipLevel
|
||||
import com.unciv.logic.civilization.managers.EspionageManager
|
||||
import com.unciv.logic.civilization.managers.GoldenAgeManager
|
||||
import com.unciv.logic.civilization.managers.GreatPersonManager
|
||||
@ -576,6 +577,9 @@ class Civilization : IsPartOfGameInfoSerialization {
|
||||
return when (filter) {
|
||||
"Human player" -> isHuman()
|
||||
"AI player" -> isAI()
|
||||
"Open Borders" -> state?.civInfo?.diplomacy[civName]?.hasOpenBorders ?: false
|
||||
"Friendly" -> state?.civInfo?.let { it.civName == civName || (it.diplomacy[civName]?.isRelationshipLevelGE(RelationshipLevel.Friend) == true) } ?: false
|
||||
"Hostile" -> state?.civInfo?.let { isAtWarWith(it) } ?: false
|
||||
else -> nation.matchesFilter(filter, state, false)
|
||||
}
|
||||
}
|
||||
|
@ -168,11 +168,13 @@ enum class Countables(
|
||||
override fun eval(parameterText: String, gameContext: GameContext): Int? {
|
||||
val filter = parameterText.getPlaceholderParameters()[0]
|
||||
val civilizations = gameContext.gameInfo?.civilizations ?: return null
|
||||
return civilizations.count { it.isAlive() && it.matchesFilter(filter) }
|
||||
return civilizations.count { it.isAlive() && it.matchesFilter(filter, gameContext) }
|
||||
}
|
||||
override fun getErrorSeverity(parameterText: String, ruleset: Ruleset): UniqueType.UniqueParameterErrorSeverity? =
|
||||
UniqueParameterType.CivFilter.getTranslatedErrorSeverity(parameterText, ruleset)
|
||||
override fun getKnownValuesForAutocomplete(ruleset: Ruleset) = setOf<String>()
|
||||
override fun getKnownValuesForAutocomplete(ruleset: Ruleset): Set<String> =
|
||||
UniqueParameterType.CivFilter.getKnownValuesForAutocomplete(ruleset)
|
||||
.map { text.fillPlaceholders(it) }.toSet()
|
||||
},
|
||||
OwnedTiles("Owned [tileFilter] Tiles") {
|
||||
override fun eval(parameterText: String, gameContext: GameContext): Int? {
|
||||
|
@ -216,7 +216,7 @@ enum class UniqueParameterType(
|
||||
|
||||
/** Implemented by [Civ.matchesFilter][com.unciv.logic.civilization.Civilization.matchesFilter] */
|
||||
CivFilter("civFilter", Constants.cityStates) {
|
||||
override val staticKnownValues = setOf("AI player", "Human player")
|
||||
override val staticKnownValues = setOf("AI player", "Human player", "Open Borders", "Friendly", "Hostile")
|
||||
|
||||
override fun getErrorSeverity(parameterText: String, ruleset: Ruleset) = getErrorSeverityForFilter(parameterText, ruleset)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user