mirror of
https://github.com/yairm210/Unciv.git
synced 2025-01-07 14:02:48 +07:00
Enum rename: OnlyAvailableWhen -> OnlyAvailable
This commit is contained in:
parent
197ec9dc9a
commit
ab7f23835e
@ -470,7 +470,7 @@ object ReligionAutomation {
|
|||||||
(it.type == beliefType || beliefType == BeliefType.Any)
|
(it.type == beliefType || beliefType == BeliefType.Any)
|
||||||
&& !additionalBeliefsToExclude.contains(it)
|
&& !additionalBeliefsToExclude.contains(it)
|
||||||
&& civInfo.religionManager.getReligionWithBelief(it) == null
|
&& civInfo.religionManager.getReligionWithBelief(it) == null
|
||||||
&& it.getMatchingUniques(UniqueType.OnlyAvailableWhen, StateForConditionals.IgnoreConditionals)
|
&& it.getMatchingUniques(UniqueType.OnlyAvailable, StateForConditionals.IgnoreConditionals)
|
||||||
.none { unique -> !unique.conditionalsApply(civInfo) }
|
.none { unique -> !unique.conditionalsApply(civInfo) }
|
||||||
}
|
}
|
||||||
.maxByOrNull { ReligionAutomation.rateBelief(civInfo, it) }
|
.maxByOrNull { ReligionAutomation.rateBelief(civInfo, it) }
|
||||||
|
@ -129,7 +129,7 @@ object UnitAutomation {
|
|||||||
internal fun tryUpgradeUnit(unit: MapUnit): Boolean {
|
internal fun tryUpgradeUnit(unit: MapUnit): Boolean {
|
||||||
if (unit.civ.isHuman() && (!UncivGame.Current.settings.automatedUnitsCanUpgrade
|
if (unit.civ.isHuman() && (!UncivGame.Current.settings.automatedUnitsCanUpgrade
|
||||||
|| UncivGame.Current.settings.autoPlay.isAutoPlayingAndFullAI())) return false
|
|| UncivGame.Current.settings.autoPlay.isAutoPlayingAndFullAI())) return false
|
||||||
|
|
||||||
val upgradeUnits = getUnitsToUpgradeTo(unit)
|
val upgradeUnits = getUnitsToUpgradeTo(unit)
|
||||||
if (upgradeUnits.none()) return false // for resource reasons, usually
|
if (upgradeUnits.none()) return false // for resource reasons, usually
|
||||||
val upgradedUnit = upgradeUnits.minBy { it.cost }
|
val upgradedUnit = upgradeUnits.minBy { it.cost }
|
||||||
@ -153,7 +153,7 @@ object UnitAutomation {
|
|||||||
fun isInvalidUpgradeDestination(baseUnit: BaseUnit): Boolean {
|
fun isInvalidUpgradeDestination(baseUnit: BaseUnit): Boolean {
|
||||||
if (!unit.civ.tech.isResearched(baseUnit))
|
if (!unit.civ.tech.isResearched(baseUnit))
|
||||||
return true
|
return true
|
||||||
return baseUnit.getMatchingUniques(UniqueType.OnlyAvailableWhen, StateForConditionals.IgnoreConditionals)
|
return baseUnit.getMatchingUniques(UniqueType.OnlyAvailable, StateForConditionals.IgnoreConditionals)
|
||||||
.any { !it.conditionalsApply(StateForConditionals(unit.civ, unit = unit)) }
|
.any { !it.conditionalsApply(StateForConditionals(unit.civ, unit = unit)) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -166,7 +166,7 @@ class PolicyManager : IsPartOfGameInfoSerialization {
|
|||||||
if (policy.policyBranchType == PolicyBranchType.BranchComplete) return false
|
if (policy.policyBranchType == PolicyBranchType.BranchComplete) return false
|
||||||
if (!getAdoptedPolicies().containsAll(policy.requires!!)) return false
|
if (!getAdoptedPolicies().containsAll(policy.requires!!)) return false
|
||||||
if (checkEra && civInfo.gameInfo.ruleset.eras[policy.branch.era]!!.eraNumber > civInfo.getEraNumber()) return false
|
if (checkEra && civInfo.gameInfo.ruleset.eras[policy.branch.era]!!.eraNumber > civInfo.getEraNumber()) return false
|
||||||
if (policy.uniqueObjects.filter { it.type == UniqueType.OnlyAvailableWhen }
|
if (policy.uniqueObjects.filter { it.type == UniqueType.OnlyAvailable }
|
||||||
.any { !it.conditionalsApply(civInfo) }) return false
|
.any { !it.conditionalsApply(civInfo) }) return false
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@ -256,7 +256,7 @@ class PolicyManager : IsPartOfGameInfoSerialization {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fun getCultureFromGreatWriter(): Int {
|
fun getCultureFromGreatWriter(): Int {
|
||||||
return (cultureOfLast8Turns.sum() * civInfo.gameInfo.speed.cultureCostModifier).toInt()
|
return (cultureOfLast8Turns.sum() * civInfo.gameInfo.speed.cultureCostModifier).toInt()
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ class RuinsManager(
|
|||||||
|| civInfo.gameInfo.difficulty in possibleReward.excludedDifficulties
|
|| civInfo.gameInfo.difficulty in possibleReward.excludedDifficulties
|
||||||
|| possibleReward.hasUnique(UniqueType.HiddenWithoutReligion) && !civInfo.gameInfo.isReligionEnabled()
|
|| possibleReward.hasUnique(UniqueType.HiddenWithoutReligion) && !civInfo.gameInfo.isReligionEnabled()
|
||||||
|| possibleReward.hasUnique(UniqueType.HiddenAfterGreatProphet) && civInfo.religionManager.greatProphetsEarned() > 0
|
|| possibleReward.hasUnique(UniqueType.HiddenAfterGreatProphet) && civInfo.religionManager.greatProphetsEarned() > 0
|
||||||
|| possibleReward.getMatchingUniques(UniqueType.OnlyAvailableWhen, StateForConditionals.IgnoreConditionals)
|
|| possibleReward.getMatchingUniques(UniqueType.OnlyAvailable, StateForConditionals.IgnoreConditionals)
|
||||||
.any { !it.conditionalsApply(stateForOnlyAvailableWhen) }
|
.any { !it.conditionalsApply(stateForOnlyAvailableWhen) }
|
||||||
}
|
}
|
||||||
// This might be a dirty way to do this, but it works (we do have randomWeighted in CollectionExtensions, but below we
|
// This might be a dirty way to do this, but it works (we do have randomWeighted in CollectionExtensions, but below we
|
||||||
|
@ -161,7 +161,7 @@ class TechManager : IsPartOfGameInfoSerialization {
|
|||||||
|
|
||||||
fun canBeResearched(techName: String): Boolean {
|
fun canBeResearched(techName: String): Boolean {
|
||||||
val tech = getRuleset().technologies[techName]!!
|
val tech = getRuleset().technologies[techName]!!
|
||||||
if (tech.uniqueObjects.any { it.type == UniqueType.OnlyAvailableWhen && !it.conditionalsApply(civInfo) })
|
if (tech.uniqueObjects.any { it.type == UniqueType.OnlyAvailable && !it.conditionalsApply(civInfo) })
|
||||||
return false
|
return false
|
||||||
|
|
||||||
if (isResearched(tech.name) && !tech.isContinuallyResearchable())
|
if (isResearched(tech.name) && !tech.isContinuallyResearchable())
|
||||||
|
@ -118,7 +118,7 @@ class UnitPromotions : IsPartOfGameInfoSerialization {
|
|||||||
.filter { unit.type.name in it.unitTypes && it.name !in promotions }
|
.filter { unit.type.name in it.unitTypes && it.name !in promotions }
|
||||||
.filter { it.prerequisites.isEmpty() || it.prerequisites.any { p->p in promotions } }
|
.filter { it.prerequisites.isEmpty() || it.prerequisites.any { p->p in promotions } }
|
||||||
.filter { promotion -> promotion.uniqueObjects
|
.filter { promotion -> promotion.uniqueObjects
|
||||||
.none { it.type == UniqueType.OnlyAvailableWhen
|
.none { it.type == UniqueType.OnlyAvailable
|
||||||
&& !it.conditionalsApply(StateForConditionals(unit.civ, unit = unit)) }
|
&& !it.conditionalsApply(StateForConditionals(unit.civ, unit = unit)) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,7 @@ class TileInfoImprovementFunctions(val tile: Tile) {
|
|||||||
yield(ImprovementBuildingProblem.NotJustOutsideBorders)
|
yield(ImprovementBuildingProblem.NotJustOutsideBorders)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (improvement.getMatchingUniques(UniqueType.OnlyAvailableWhen, StateForConditionals.IgnoreConditionals)
|
if (improvement.getMatchingUniques(UniqueType.OnlyAvailable, StateForConditionals.IgnoreConditionals)
|
||||||
.any { !it.conditionalsApply(stateForConditionals) })
|
.any { !it.conditionalsApply(stateForConditionals) })
|
||||||
yield(ImprovementBuildingProblem.UnmetConditional)
|
yield(ImprovementBuildingProblem.UnmetConditional)
|
||||||
|
|
||||||
@ -128,7 +128,7 @@ class TileInfoImprovementFunctions(val tile: Tile) {
|
|||||||
// Can only remove roads if that road is actually there
|
// Can only remove roads if that road is actually there
|
||||||
RoadStatus.values().any { it.removeAction == improvement.name } -> tile.roadStatus.removeAction == improvement.name
|
RoadStatus.values().any { it.removeAction == improvement.name } -> tile.roadStatus.removeAction == improvement.name
|
||||||
// Can only remove features or improvement if that feature/improvement is actually there
|
// Can only remove features or improvement if that feature/improvement is actually there
|
||||||
improvement.name.startsWith(Constants.remove) -> tile.terrainFeatures.any { Constants.remove + it == improvement.name }
|
improvement.name.startsWith(Constants.remove) -> tile.terrainFeatures.any { Constants.remove + it == improvement.name }
|
||||||
|| Constants.remove + tile.improvement == improvement.name
|
|| Constants.remove + tile.improvement == improvement.name
|
||||||
// Can only build roads if on land and they are better than the current road
|
// Can only build roads if on land and they are better than the current road
|
||||||
RoadStatus.values().any { it.name == improvement.name } -> !tile.isWater
|
RoadStatus.values().any { it.name == improvement.name } -> !tile.isWater
|
||||||
|
@ -241,7 +241,7 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction {
|
|||||||
yield(RejectionReasonType.AlreadyBuilt.toInstance())
|
yield(RejectionReasonType.AlreadyBuilt.toInstance())
|
||||||
|
|
||||||
for (unique in uniqueObjects) {
|
for (unique in uniqueObjects) {
|
||||||
if (unique.type != UniqueType.OnlyAvailableWhen &&
|
if (unique.type != UniqueType.OnlyAvailable &&
|
||||||
!unique.conditionalsApply(StateForConditionals(civ, cityConstructions.city))) continue
|
!unique.conditionalsApply(StateForConditionals(civ, cityConstructions.city))) continue
|
||||||
|
|
||||||
@Suppress("NON_EXHAUSTIVE_WHEN")
|
@Suppress("NON_EXHAUSTIVE_WHEN")
|
||||||
@ -251,7 +251,7 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction {
|
|||||||
UniqueType.Unbuildable ->
|
UniqueType.Unbuildable ->
|
||||||
yield(RejectionReasonType.Unbuildable.toInstance())
|
yield(RejectionReasonType.Unbuildable.toInstance())
|
||||||
|
|
||||||
UniqueType.OnlyAvailableWhen ->
|
UniqueType.OnlyAvailable ->
|
||||||
if (!unique.conditionalsApply(civ, cityConstructions.city))
|
if (!unique.conditionalsApply(civ, cityConstructions.city))
|
||||||
yield(RejectionReasonType.ShouldNotBeDisplayed.toInstance())
|
yield(RejectionReasonType.ShouldNotBeDisplayed.toInstance())
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ open class Policy : RulesetObject() {
|
|||||||
return (if (policyBranchType == PolicyBranchType.Member) name.tr() + "\n" else "") +
|
return (if (policyBranchType == PolicyBranchType.Member) name.tr() + "\n" else "") +
|
||||||
uniqueObjects.filterNot {
|
uniqueObjects.filterNot {
|
||||||
it.isHiddenToUsers()
|
it.isHiddenToUsers()
|
||||||
|| it.isOfType(UniqueType.OnlyAvailableWhen)
|
|| it.isOfType(UniqueType.OnlyAvailable)
|
||||||
|| it.isOfType(UniqueType.OneTimeGlobalAlert)
|
|| it.isOfType(UniqueType.OneTimeGlobalAlert)
|
||||||
}
|
}
|
||||||
.joinToString("\n") { "• ${it.text.tr()}" }
|
.joinToString("\n") { "• ${it.text.tr()}" }
|
||||||
@ -91,7 +91,7 @@ open class Policy : RulesetObject() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun isEnabledByPolicy(rulesetObject: IRulesetObject) =
|
fun isEnabledByPolicy(rulesetObject: IRulesetObject) =
|
||||||
rulesetObject.getMatchingUniques(UniqueType.OnlyAvailableWhen, StateForConditionals.IgnoreConditionals).any { it.conditionals.any {
|
rulesetObject.getMatchingUniques(UniqueType.OnlyAvailable, StateForConditionals.IgnoreConditionals).any { it.conditionals.any {
|
||||||
it.type == UniqueType.ConditionalAfterPolicyOrBelief && it.params[0] == name
|
it.type == UniqueType.ConditionalAfterPolicyOrBelief && it.params[0] == name
|
||||||
} }
|
} }
|
||||||
|
|
||||||
@ -108,7 +108,7 @@ open class Policy : RulesetObject() {
|
|||||||
|
|
||||||
|
|
||||||
fun isDisabledByPolicy(rulesetObject: IRulesetObject) =
|
fun isDisabledByPolicy(rulesetObject: IRulesetObject) =
|
||||||
rulesetObject.getMatchingUniques(UniqueType.OnlyAvailableWhen, StateForConditionals.IgnoreConditionals).any { it.conditionals.any {
|
rulesetObject.getMatchingUniques(UniqueType.OnlyAvailable, StateForConditionals.IgnoreConditionals).any { it.conditionals.any {
|
||||||
it.type == UniqueType.ConditionalBeforePolicyOrBelief && it.params[0] == name
|
it.type == UniqueType.ConditionalBeforePolicyOrBelief && it.params[0] == name
|
||||||
} }
|
} }
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ class Era : RulesetObject() {
|
|||||||
ruleset.allRulesetObjects()
|
ruleset.allRulesetObjects()
|
||||||
.flatMap { obj ->
|
.flatMap { obj ->
|
||||||
obj.getMatchingUniques(
|
obj.getMatchingUniques(
|
||||||
UniqueType.OnlyAvailableWhen,
|
UniqueType.OnlyAvailable,
|
||||||
StateForConditionals.IgnoreConditionals
|
StateForConditionals.IgnoreConditionals
|
||||||
)
|
)
|
||||||
.map { unique -> obj to unique }
|
.map { unique -> obj to unique }
|
||||||
|
@ -43,7 +43,7 @@ class Technology: RulesetObject() {
|
|||||||
|
|
||||||
// Wrapper so that if the way to require a tech with a Unique ever changes, this only needs to change in one place.
|
// Wrapper so that if the way to require a tech with a Unique ever changes, this only needs to change in one place.
|
||||||
fun uniqueIsRequirementForThisTech(unique: Unique): Boolean =
|
fun uniqueIsRequirementForThisTech(unique: Unique): Boolean =
|
||||||
unique.type == UniqueType.OnlyAvailableWhen
|
unique.type == UniqueType.OnlyAvailable
|
||||||
// OnlyAvailableWhen can take multiple conditionals, in which case the true conditional is implicitly the conjunction of all those conditionals.
|
// OnlyAvailableWhen can take multiple conditionals, in which case the true conditional is implicitly the conjunction of all those conditionals.
|
||||||
// If an OnlyAvailableWhen there are multiple conditionals, one of which requires this tech,
|
// If an OnlyAvailableWhen there are multiple conditionals, one of which requires this tech,
|
||||||
// then IHasUniques.techsRequiredByUniques() will list this tech as required (because it is),
|
// then IHasUniques.techsRequiredByUniques() will list this tech as required (because it is),
|
||||||
|
@ -47,7 +47,7 @@ interface IHasUniques : INamed {
|
|||||||
fun hasUnique(uniqueType: UniqueType, stateForConditionals: StateForConditionals? = null) =
|
fun hasUnique(uniqueType: UniqueType, stateForConditionals: StateForConditionals? = null) =
|
||||||
getMatchingUniques(uniqueType.placeholderText, stateForConditionals).any()
|
getMatchingUniques(uniqueType.placeholderText, stateForConditionals).any()
|
||||||
|
|
||||||
fun availabilityUniques(): Sequence<Unique> = getMatchingUniques(UniqueType.OnlyAvailableWhen, StateForConditionals.IgnoreConditionals)
|
fun availabilityUniques(): Sequence<Unique> = getMatchingUniques(UniqueType.OnlyAvailable, StateForConditionals.IgnoreConditionals)
|
||||||
|
|
||||||
fun techsRequiredByUniques(): Sequence<String> {
|
fun techsRequiredByUniques(): Sequence<String> {
|
||||||
return availabilityUniques()
|
return availabilityUniques()
|
||||||
|
@ -263,7 +263,7 @@ enum class UniqueType(
|
|||||||
MaxNumberBuildable("Limited to [amount] per Civilization", UniqueTarget.Building, UniqueTarget.Unit),
|
MaxNumberBuildable("Limited to [amount] per Civilization", UniqueTarget.Building, UniqueTarget.Unit),
|
||||||
HiddenBeforeAmountPolicies("Hidden until [amount] social policy branches have been completed", UniqueTarget.Building, UniqueTarget.Unit),
|
HiddenBeforeAmountPolicies("Hidden until [amount] social policy branches have been completed", UniqueTarget.Building, UniqueTarget.Unit),
|
||||||
// Meant to be used together with conditionals, like "Only available <after adopting [policy]> <while the empire is happy>"
|
// Meant to be used together with conditionals, like "Only available <after adopting [policy]> <while the empire is happy>"
|
||||||
OnlyAvailableWhen("Only available", UniqueTarget.Unit, UniqueTarget.Building, UniqueTarget.Improvement,
|
OnlyAvailable("Only available", UniqueTarget.Unit, UniqueTarget.Building, UniqueTarget.Improvement,
|
||||||
UniqueTarget.Policy, UniqueTarget.Tech, UniqueTarget.Promotion, UniqueTarget.Ruins, UniqueTarget.FollowerBelief, UniqueTarget.FounderBelief),
|
UniqueTarget.Policy, UniqueTarget.Tech, UniqueTarget.Promotion, UniqueTarget.Ruins, UniqueTarget.FollowerBelief, UniqueTarget.FounderBelief),
|
||||||
|
|
||||||
ConvertFoodToProductionWhenConstructed("Excess Food converted to Production when under construction", UniqueTarget.Building, UniqueTarget.Unit),
|
ConvertFoodToProductionWhenConstructed("Excess Food converted to Production when under construction", UniqueTarget.Building, UniqueTarget.Unit),
|
||||||
|
@ -159,7 +159,7 @@ class BaseUnit : RulesetObject(), INonPerpetualConstruction {
|
|||||||
}
|
}
|
||||||
val civInfo = cityConstructions.city.civ
|
val civInfo = cityConstructions.city.civ
|
||||||
|
|
||||||
for (unique in getMatchingUniques(UniqueType.OnlyAvailableWhen, StateForConditionals.IgnoreConditionals))
|
for (unique in getMatchingUniques(UniqueType.OnlyAvailable, StateForConditionals.IgnoreConditionals))
|
||||||
if (!unique.conditionalsApply(civInfo, cityConstructions.city))
|
if (!unique.conditionalsApply(civInfo, cityConstructions.city))
|
||||||
yield(RejectionReasonType.ShouldNotBeDisplayed.toInstance())
|
yield(RejectionReasonType.ShouldNotBeDisplayed.toInstance())
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ class PantheonPickerScreen(
|
|||||||
if (belief.type != BeliefType.Pantheon) continue
|
if (belief.type != BeliefType.Pantheon) continue
|
||||||
val beliefButton = getBeliefButton(belief, withTypeLabel = false)
|
val beliefButton = getBeliefButton(belief, withTypeLabel = false)
|
||||||
if (choosingCiv.religionManager.getReligionWithBelief(belief) == null
|
if (choosingCiv.religionManager.getReligionWithBelief(belief) == null
|
||||||
&& belief.getMatchingUniques(UniqueType.OnlyAvailableWhen, StateForConditionals.IgnoreConditionals)
|
&& belief.getMatchingUniques(UniqueType.OnlyAvailable, StateForConditionals.IgnoreConditionals)
|
||||||
.none { !it.conditionalsApply(choosingCiv) }) {
|
.none { !it.conditionalsApply(choosingCiv) }) {
|
||||||
beliefButton.onClickSelect(selection, belief) {
|
beliefButton.onClickSelect(selection, belief) {
|
||||||
selectedPantheon = belief
|
selectedPantheon = belief
|
||||||
|
@ -300,9 +300,9 @@ class PolicyPickerScreen(
|
|||||||
label.wrap = true
|
label.wrap = true
|
||||||
labelTable.add(label).pad(7f, 20f, 10f, 20f).grow().row()
|
labelTable.add(label).pad(7f, 20f, 10f, 20f).grow().row()
|
||||||
|
|
||||||
if (branch.uniqueMap.getUniques(UniqueType.OnlyAvailableWhen).any()) {
|
if (branch.uniqueMap.getUniques(UniqueType.OnlyAvailable).any()) {
|
||||||
var warning = UniqueType.OnlyAvailableWhen.text.tr() + ":\n"
|
var warning = UniqueType.OnlyAvailable.text.tr() + ":\n"
|
||||||
for (unique in branch.uniqueMap.getUniques(UniqueType.OnlyAvailableWhen))
|
for (unique in branch.uniqueMap.getUniques(UniqueType.OnlyAvailable))
|
||||||
for (conditional in unique.conditionals) {
|
for (conditional in unique.conditionals) {
|
||||||
warning += "• " + conditional.text.tr() + "\n"
|
warning += "• " + conditional.text.tr() + "\n"
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ class PromotionTree(val unit: MapUnit) {
|
|||||||
/** Off if there is only one "best" path of equal cost to adopt this node's promotion */
|
/** Off if there is only one "best" path of equal cost to adopt this node's promotion */
|
||||||
var pathIsAmbiguous = false
|
var pathIsAmbiguous = false
|
||||||
/** On for promotions having unavailable prerequisites (missing in ruleset, or not allowed for the unit's
|
/** On for promotions having unavailable prerequisites (missing in ruleset, or not allowed for the unit's
|
||||||
* UnitType, and not already adopted either); or currently disabled by a [UniqueType.OnlyAvailableWhen] unique.
|
* UnitType, and not already adopted either); or currently disabled by a [UniqueType.OnlyAvailable] unique.
|
||||||
* (should never be on with a vanilla ruleset) */
|
* (should never be on with a vanilla ruleset) */
|
||||||
var unreachable = false
|
var unreachable = false
|
||||||
|
|
||||||
@ -109,7 +109,7 @@ class PromotionTree(val unit: MapUnit) {
|
|||||||
// defensive - I don't know how to provoke the situation, but if it ever occurs, disallow choosing that promotion
|
// defensive - I don't know how to provoke the situation, but if it ever occurs, disallow choosing that promotion
|
||||||
if (node.promotion.prerequisites.isNotEmpty() && node.parents.isEmpty())
|
if (node.promotion.prerequisites.isNotEmpty() && node.parents.isEmpty())
|
||||||
node.unreachable = true
|
node.unreachable = true
|
||||||
if (node.promotion.getMatchingUniques(UniqueType.OnlyAvailableWhen, StateForConditionals.IgnoreConditionals)
|
if (node.promotion.getMatchingUniques(UniqueType.OnlyAvailable, StateForConditionals.IgnoreConditionals)
|
||||||
.any { !it.conditionalsApply(state) })
|
.any { !it.conditionalsApply(state) })
|
||||||
node.unreachable = true
|
node.unreachable = true
|
||||||
}
|
}
|
||||||
@ -118,7 +118,7 @@ class PromotionTree(val unit: MapUnit) {
|
|||||||
// Also determine preferredParent / pathIsAmbiguous by weighing distanceToAdopted
|
// Also determine preferredParent / pathIsAmbiguous by weighing distanceToAdopted
|
||||||
for (node in allRoots()) {
|
for (node in allRoots()) {
|
||||||
node.depth = 0
|
node.depth = 0
|
||||||
node.distanceToAdopted = if (node.isAdopted) 0
|
node.distanceToAdopted = if (node.isAdopted) 0
|
||||||
else if (node.unreachable) Int.MAX_VALUE else 1
|
else if (node.unreachable) Int.MAX_VALUE else 1
|
||||||
}
|
}
|
||||||
for (depth in 0..99) {
|
for (depth in 0..99) {
|
||||||
|
@ -220,7 +220,7 @@ class ReligiousBeliefsPickerScreen (
|
|||||||
// The Belief is not available because someone already has it
|
// The Belief is not available because someone already has it
|
||||||
beliefButton.disable(redDisableColor)
|
beliefButton.disable(redDisableColor)
|
||||||
}
|
}
|
||||||
belief.getMatchingUniques(UniqueType.OnlyAvailableWhen, StateForConditionals.IgnoreConditionals)
|
belief.getMatchingUniques(UniqueType.OnlyAvailable, StateForConditionals.IgnoreConditionals)
|
||||||
.any { !it.conditionalsApply(choosingCiv) } ->
|
.any { !it.conditionalsApply(choosingCiv) } ->
|
||||||
// The Belief is blocked
|
// The Belief is blocked
|
||||||
beliefButton.disable(redDisableColor)
|
beliefButton.disable(redDisableColor)
|
||||||
|
@ -407,7 +407,7 @@ class TechPickerScreen(
|
|||||||
val pathToTech = civTech.getRequiredTechsToDestination(tech)
|
val pathToTech = civTech.getRequiredTechsToDestination(tech)
|
||||||
for (requiredTech in pathToTech) {
|
for (requiredTech in pathToTech) {
|
||||||
for (unique in requiredTech.uniqueObjects
|
for (unique in requiredTech.uniqueObjects
|
||||||
.filter { it.type == UniqueType.OnlyAvailableWhen && !it.conditionalsApply(civInfo) }) {
|
.filter { it.type == UniqueType.OnlyAvailable && !it.conditionalsApply(civInfo) }) {
|
||||||
rightSideButton.setText(unique.text.tr())
|
rightSideButton.setText(unique.text.tr())
|
||||||
rightSideButton.disable()
|
rightSideButton.disable()
|
||||||
return
|
return
|
||||||
|
@ -305,7 +305,7 @@ object UnitActionsFromUniques {
|
|||||||
val unitToTransformTo = civInfo.getEquivalentUnit(unique.params[0])
|
val unitToTransformTo = civInfo.getEquivalentUnit(unique.params[0])
|
||||||
|
|
||||||
if (unitToTransformTo.getMatchingUniques(
|
if (unitToTransformTo.getMatchingUniques(
|
||||||
UniqueType.OnlyAvailableWhen,
|
UniqueType.OnlyAvailable,
|
||||||
StateForConditionals.IgnoreConditionals
|
StateForConditionals.IgnoreConditionals
|
||||||
)
|
)
|
||||||
.any { !it.conditionalsApply(stateForConditionals) })
|
.any { !it.conditionalsApply(stateForConditionals) })
|
||||||
|
Loading…
Reference in New Issue
Block a user