chore: rename hasUnique(String) -> hasTagUnique(String)

Now that we *know* tag unique checks are *always* without conditional state, we can name them accordingly
This commit is contained in:
yairm210 2024-09-08 00:45:18 +03:00
parent 4d640a254c
commit d59816af0f
7 changed files with 15 additions and 14 deletions

View File

@ -232,7 +232,7 @@ class WorkerAutomation(
if (tile.providesYield()) priority += 2
if (tile.isPillaged()) priority += 1
if (tile.hasFalloutEquivalent()) priority += 1
if (tile.terrainFeatures.isNotEmpty() && tile.lastTerrain.hasUnique("Provides a one-time Production bonus to the closest city when cut down")) priority += 1 // removing our forests is good for tempo
if (tile.terrainFeatures.isNotEmpty() && tile.lastTerrain.hasUnique(UniqueType.ProductionBonusWhenRemoved)) priority += 1 // removing our forests is good for tempo
if (tile.terrainHasUnique(UniqueType.FreshWater)) priority += 1 // we want our farms up when unlocking Civil Service
}
// give a minor priority to tiles that we could expand onto
@ -421,7 +421,7 @@ class WorkerAutomation(
stats.add(statDiff)
// Take into account that the resource might be improved by the *final* improvement
isResourceImprovedByNewImprovement = newTile.resource != null && newTile.tileResource.isImprovedBy(wantedFinalImprovement.name)
if (tile.terrainFeatures.isNotEmpty() && tile.lastTerrain.hasUnique("Provides a one-time Production bonus to the closest city when cut down"))
if (tile.terrainFeatures.isNotEmpty() && tile.lastTerrain.hasUnique(UniqueType.ProductionBonusWhenRemoved))
stats.add(Stat.Production, 0.5f) //We're gaining tempo by chopping the forest, adding an imaginary yield per turn is a way to correct for this
}

View File

@ -243,7 +243,7 @@ class CityConstructions : IsPartOfGameInfoSerialization {
fun getBuiltBuildings(): Sequence<Building> = builtBuildingObjects.asSequence()
fun containsBuildingOrEquivalent(buildingNameOrUnique: String): Boolean =
isBuilt(buildingNameOrUnique) || getBuiltBuildings().any { it.replaces == buildingNameOrUnique || it.hasUnique(buildingNameOrUnique) }
isBuilt(buildingNameOrUnique) || getBuiltBuildings().any { it.replaces == buildingNameOrUnique || it.hasTagUnique(buildingNameOrUnique) }
fun getWorkDone(constructionName: String): Int {
return if (inProgressConstructions.containsKey(constructionName)) inProgressConstructions[constructionName]!!

View File

@ -516,7 +516,7 @@ class Tile : IsPartOfGameInfoSerialization, Json.Serializable {
val resourceObject = tileResource
val hasResourceWithFilter =
tileResource.name == filter
|| tileResource.hasUnique(filter)
|| tileResource.hasTagUnique(filter)
|| filter.removeSuffix(" resource") == tileResource.resourceType.name
if (!hasResourceWithFilter) return false

View File

@ -42,7 +42,7 @@ interface IHasUniques : INamed {
fun hasUnique(uniqueType: UniqueType, state: StateForConditionals? = null) =
uniqueMap.hasMatchingUnique(uniqueType, state ?: StateForConditionals.EmptyState)
fun hasUnique(tagUnique: String) =
fun hasTagUnique(tagUnique: String) =
uniqueMap.hasTagUnique(tagUnique)
fun availabilityUniques(): Sequence<Unique> = getMatchingUniques(UniqueType.OnlyAvailable, StateForConditionals.IgnoreConditionals) + getMatchingUniques(UniqueType.CanOnlyBeBuiltWhen, StateForConditionals.IgnoreConditionals)

View File

@ -118,7 +118,7 @@ enum class UniqueParameterType(
override fun isKnownValue(parameterText: String, ruleset: Ruleset) = when {
parameterText in staticKnownValues -> true
parameterText in ruleset.unitPromotions -> true
ruleset.unitPromotions.values.any { it.hasUnique(parameterText) } -> true
ruleset.unitPromotions.values.any { it.hasTagUnique(parameterText) } -> true
CivFilter.isKnownValue(parameterText, ruleset) -> true
BaseUnitFilter.isKnownValue(parameterText, ruleset) -> true
else -> false
@ -237,7 +237,7 @@ enum class UniqueParameterType(
override fun isKnownValue(parameterText: String, ruleset: Ruleset) = when (parameterText) {
in staticKnownValues -> true
in ruleset.nations -> true
else -> ruleset.nations.values.any { it.hasUnique(parameterText) }
else -> ruleset.nations.values.any { it.hasTagUnique(parameterText) }
}
override fun getKnownValuesForAutocomplete(ruleset: Ruleset): Set<String> =
@ -289,7 +289,7 @@ enum class UniqueParameterType(
override fun isKnownValue(parameterText: String, ruleset: Ruleset) = when {
parameterText in staticKnownValues -> true
BuildingName.isKnownValue(parameterText, ruleset) -> true
ruleset.buildings.values.any { it.hasUnique(parameterText) } -> true
ruleset.buildings.values.any { it.hasTagUnique(parameterText) } -> true
TechFilter.isKnownValue(parameterText, ruleset) -> true
else -> false
}
@ -439,7 +439,7 @@ enum class UniqueParameterType(
override fun isKnownValue(parameterText: String, ruleset: Ruleset) = when {
parameterText in staticKnownValues -> true
ImprovementName.isKnownValue(parameterText, ruleset) -> true
ruleset.tileImprovements.values.any { it.hasUnique(parameterText) } -> true
ruleset.tileImprovements.values.any { it.hasTagUnique(parameterText) } -> true
else -> false
}
@ -515,7 +515,7 @@ enum class UniqueParameterType(
in staticKnownValues -> true
in ruleset.technologies -> true
in ruleset.eras -> true
else -> ruleset.technologies.values.any { it.hasUnique(parameterText) }
else -> ruleset.technologies.values.any { it.hasTagUnique(parameterText) }
}
override fun getKnownValuesForAutocomplete(ruleset: Ruleset) = staticKnownValues + ruleset.technologies.keys + ruleset.eras.keys
override fun getErrorSeverity(parameterText: String, ruleset: Ruleset) = getErrorSeverityForFilter(parameterText, ruleset)
@ -538,7 +538,7 @@ enum class UniqueParameterType(
override fun isKnownValue(parameterText: String, ruleset: Ruleset) = when {
parameterText in staticKnownValues -> true
parameterText in ruleset.policies -> true
ruleset.policies.values.any { it.hasUnique(parameterText) } -> true
ruleset.policies.values.any { it.hasTagUnique(parameterText) } -> true
else -> false
}
override fun getKnownValuesForAutocomplete(ruleset: Ruleset) = staticKnownValues + ruleset.policies.keys

View File

@ -120,8 +120,8 @@ class BaseUnit : RulesetObject(), INonPerpetualConstruction {
return super<RulesetObject>.hasUnique(uniqueType, state) || ::ruleset.isInitialized && type.hasUnique(uniqueType, state)
}
override fun hasUnique(tagUnique: String): Boolean {
return super<RulesetObject>.hasUnique(tagUnique) || ::ruleset.isInitialized && type.hasUnique(tagUnique)
override fun hasTagUnique(tagUnique: String): Boolean {
return super<RulesetObject>.hasTagUnique(tagUnique) || ::ruleset.isInitialized && type.hasTagUnique(tagUnique)
}
/** Allows unique functions (getMatchingUniques, hasUnique) to "see" uniques from the UnitType */

View File

@ -277,7 +277,8 @@ class CityConstructionsTable(private val cityScreen: CityScreen) {
&& dto.rejectionReason?.type == RejectionReasonType.RequiresBuildingInThisCity
&& constructionButtonDTOList.any {
(it.construction is Building) && (it.construction.name == dto.construction.requiredBuilding
|| it.construction.replaces == dto.construction.requiredBuilding || it.construction.hasUnique(dto.construction.requiredBuilding!!))
|| it.construction.replaces == dto.construction.requiredBuilding
|| it.construction.hasTagUnique(dto.construction.requiredBuilding!!))
})
continue