mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-21 05:09:25 +07:00
Deprecated old uniques
This commit is contained in:
@ -309,10 +309,6 @@ class TechManager : IsPartOfGameInfoSerialization {
|
|||||||
if (!unique.hasTriggerConditional() && unique.conditionalsApply(StateForConditionals(civInfo)))
|
if (!unique.hasTriggerConditional() && unique.conditionalsApply(StateForConditionals(civInfo)))
|
||||||
UniqueTriggerActivation.triggerUnique(unique, civInfo, triggerNotificationText = triggerNotificationText)
|
UniqueTriggerActivation.triggerUnique(unique, civInfo, triggerNotificationText = triggerNotificationText)
|
||||||
|
|
||||||
for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUponResearchOld))
|
|
||||||
if (unique.conditionals.any {it.type == UniqueType.TriggerUponResearchOld && it.params[0] == techName})
|
|
||||||
UniqueTriggerActivation.triggerUnique(unique, civInfo, triggerNotificationText = triggerNotificationText)
|
|
||||||
|
|
||||||
for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUponResearch))
|
for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUponResearch))
|
||||||
if (unique.conditionals.any {it.type == UniqueType.TriggerUponResearch && newTech.matchesFilter(it.params[0]) })
|
if (unique.conditionals.any {it.type == UniqueType.TriggerUponResearch && newTech.matchesFilter(it.params[0]) })
|
||||||
UniqueTriggerActivation.triggerUnique(unique, civInfo, triggerNotificationText = triggerNotificationText)
|
UniqueTriggerActivation.triggerUnique(unique, civInfo, triggerNotificationText = triggerNotificationText)
|
||||||
|
@ -258,28 +258,6 @@ class CivInfoTransientCache(val civInfo: Civilization) {
|
|||||||
statsGained.add(firstDiscoveredBonus)
|
statsGained.add(firstDiscoveredBonus)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Variable for support of twooo deprecated uniques
|
|
||||||
var goldGained = 0
|
|
||||||
|
|
||||||
// Support for depreciated GoldWhenDiscoveringNaturalWonder unique
|
|
||||||
for (unique in civInfo.getMatchingUniques(UniqueType.GoldWhenDiscoveringNaturalWonder)) {
|
|
||||||
|
|
||||||
goldGained += if (discoveredNaturalWonders.contains(tile.naturalWonder!!)) {
|
|
||||||
100
|
|
||||||
} else {
|
|
||||||
500
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Support for depreciated GrantsGoldToFirstToDiscover unique
|
|
||||||
if (tile.terrainHasUnique(UniqueType.GrantsGoldToFirstToDiscover)
|
|
||||||
&& !discoveredNaturalWonders.contains(tile.naturalWonder!!)) {
|
|
||||||
|
|
||||||
for (unique in tile.getTerrainMatchingUniques(UniqueType.GoldWhenDiscoveringNaturalWonder)) {
|
|
||||||
goldGained += 500
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var naturalWonder: String? = null
|
var naturalWonder: String? = null
|
||||||
|
|
||||||
if (!statsGained.isEmpty()) {
|
if (!statsGained.isEmpty()) {
|
||||||
@ -293,16 +271,6 @@ class CivInfoTransientCache(val civInfo: Civilization) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (goldGained > 0) {
|
|
||||||
naturalWonder = tile.naturalWonder
|
|
||||||
}
|
|
||||||
|
|
||||||
if (goldGained > 0 && naturalWonder != null) {
|
|
||||||
civInfo.addGold(goldGained)
|
|
||||||
civInfo.addNotification("We have received [$goldGained] Gold for discovering [${naturalWonder}]",
|
|
||||||
Notification.NotificationCategory.General, NotificationIcon.Gold)
|
|
||||||
}
|
|
||||||
|
|
||||||
for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUponDiscoveringNaturalWonder,
|
for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUponDiscoveringNaturalWonder,
|
||||||
StateForConditionals(civInfo, tile = tile)
|
StateForConditionals(civInfo, tile = tile)
|
||||||
))
|
))
|
||||||
|
@ -321,10 +321,6 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction {
|
|||||||
)
|
)
|
||||||
yield(RejectionReasonType.MustOwnTile.toInstance(unique.text))
|
yield(RejectionReasonType.MustOwnTile.toInstance(unique.text))
|
||||||
|
|
||||||
UniqueType.CanOnlyBeBuiltInCertainCities ->
|
|
||||||
if (!cityConstructions.city.matchesFilter(unique.params[0]))
|
|
||||||
yield(RejectionReasonType.CanOnlyBeBuiltInSpecificCities.toInstance(unique.text))
|
|
||||||
|
|
||||||
UniqueType.ObsoleteWith ->
|
UniqueType.ObsoleteWith ->
|
||||||
if (civ.tech.isResearched(unique.params[0]))
|
if (civ.tech.isResearched(unique.params[0]))
|
||||||
yield(RejectionReasonType.Obsoleted.toInstance(unique.text))
|
yield(RejectionReasonType.Obsoleted.toInstance(unique.text))
|
||||||
@ -339,41 +335,6 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction {
|
|||||||
yield(RejectionReasonType.RequiresBuildingInSomeCity.toInstance("Apollo project not built!"))
|
yield(RejectionReasonType.RequiresBuildingInSomeCity.toInstance("Apollo project not built!"))
|
||||||
}
|
}
|
||||||
|
|
||||||
UniqueType.RequiresBuildingInSomeCities -> {
|
|
||||||
val buildingFilter = unique.params[0]
|
|
||||||
val numberOfCitiesRequired = unique.params[1].toInt()
|
|
||||||
val numberOfCitiesWithBuilding = civ.cities.count {
|
|
||||||
it.cityConstructions.containsBuildingOrEquivalent(buildingFilter)
|
|
||||||
}
|
|
||||||
if (numberOfCitiesWithBuilding < numberOfCitiesRequired) {
|
|
||||||
val equivalentBuildingFilter = if (ruleSet.buildings.containsKey(buildingFilter))
|
|
||||||
civ.getEquivalentBuilding(buildingFilter).name
|
|
||||||
else buildingFilter
|
|
||||||
yield(
|
|
||||||
// replace with civ-specific building for user
|
|
||||||
RejectionReasonType.RequiresBuildingInSomeCities.toInstance(
|
|
||||||
unique.text.fillPlaceholders(equivalentBuildingFilter, numberOfCitiesRequired.toString()) +
|
|
||||||
" ($numberOfCitiesWithBuilding/$numberOfCitiesRequired)"
|
|
||||||
) )
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
UniqueType.RequiresBuildingInAllCities -> {
|
|
||||||
val filter = unique.params[0]
|
|
||||||
if (civ.gameInfo.ruleset.buildings.containsKey(filter)
|
|
||||||
&& civ.cities.any {
|
|
||||||
!it.isPuppet && !it.cityConstructions.containsBuildingOrEquivalent(unique.params[0])
|
|
||||||
}
|
|
||||||
) {
|
|
||||||
yield(
|
|
||||||
// replace with civ-specific building for user
|
|
||||||
RejectionReasonType.RequiresBuildingInAllCities.toInstance(
|
|
||||||
"Requires a [${civ.getEquivalentBuilding(unique.params[0])}] in all cities"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
UniqueType.HiddenBeforeAmountPolicies -> {
|
UniqueType.HiddenBeforeAmountPolicies -> {
|
||||||
if (cityConstructions.city.civ.getCompletedPolicyBranchesCount() < unique.params[0].toInt())
|
if (cityConstructions.city.civ.getCompletedPolicyBranchesCount() < unique.params[0].toInt())
|
||||||
yield(RejectionReasonType.MorePolicyBranches.toInstance(unique.text))
|
yield(RejectionReasonType.MorePolicyBranches.toInstance(unique.text))
|
||||||
|
@ -150,8 +150,6 @@ enum class UniqueType(
|
|||||||
|
|
||||||
/// Natural Wonders
|
/// Natural Wonders
|
||||||
StatsFromNaturalWonders("[stats] for every known Natural Wonder", UniqueTarget.Global),
|
StatsFromNaturalWonders("[stats] for every known Natural Wonder", UniqueTarget.Global),
|
||||||
@Deprecated("as of 4.10.17", ReplaceWith("[+100 Gold] for discovering a Natural Wonder (bonus enhanced to [+500 Gold] if first to discover it)"))
|
|
||||||
GoldWhenDiscoveringNaturalWonder("100 Gold for discovering a Natural Wonder (bonus enhanced to 500 Gold if first to discover it)", UniqueTarget.Global),
|
|
||||||
StatBonusWhenDiscoveringNaturalWonder("[stats] for discovering a Natural Wonder (bonus enhanced to [stats] if first to discover it)", UniqueTarget.Global),
|
StatBonusWhenDiscoveringNaturalWonder("[stats] for discovering a Natural Wonder (bonus enhanced to [stats] if first to discover it)", UniqueTarget.Global),
|
||||||
|
|
||||||
/// Great Persons
|
/// Great Persons
|
||||||
@ -297,12 +295,6 @@ enum class UniqueType(
|
|||||||
CostIncreasesWhenBuilt("Cost increases by [amount] when built", UniqueTarget.Building, UniqueTarget.Unit),
|
CostIncreasesWhenBuilt("Cost increases by [amount] when built", UniqueTarget.Building, UniqueTarget.Unit),
|
||||||
CostPercentageChange("[amount]% production cost", UniqueTarget.Building, UniqueTarget.Unit, docDescription = "Intended to be used with conditionals to dynamically alter construction costs"),
|
CostPercentageChange("[amount]% production cost", UniqueTarget.Building, UniqueTarget.Unit, docDescription = "Intended to be used with conditionals to dynamically alter construction costs"),
|
||||||
|
|
||||||
@Deprecated("as of 4.10.17", ReplaceWith("Only available <if [buildingFilter] is constructed in all [non-[Puppeted]] cities>"))
|
|
||||||
RequiresBuildingInAllCities("Requires a [buildingFilter] in all cities", UniqueTarget.Building),
|
|
||||||
@Deprecated("as of 4.10.17", ReplaceWith("Only available <if [buildingFilter] is constructed in at least [positiveAmount] of [All] cities>"))
|
|
||||||
RequiresBuildingInSomeCities("Requires a [buildingFilter] in at least [positiveAmount] cities", UniqueTarget.Building),
|
|
||||||
@Deprecated("as of 4.10.18", ReplaceWith("Can only be built <in [cityFilter] cities>"))
|
|
||||||
CanOnlyBeBuiltInCertainCities("Can only be built [cityFilter]", UniqueTarget.Building),
|
|
||||||
/** Triggers [RejectionReasonType] when any conditional does NOT apply.
|
/** Triggers [RejectionReasonType] when any conditional does NOT apply.
|
||||||
* Doesn't restrict Upgrade/Transform pathways.
|
* Doesn't restrict Upgrade/Transform pathways.
|
||||||
* @see [OnlyAvailable]
|
* @see [OnlyAvailable]
|
||||||
@ -539,8 +531,6 @@ enum class UniqueType(
|
|||||||
NaturalWonderConvertNeighbors("Neighboring tiles will convert to [baseTerrain]", UniqueTarget.Terrain, flags = UniqueFlag.setOfHiddenToUsers),
|
NaturalWonderConvertNeighbors("Neighboring tiles will convert to [baseTerrain]", UniqueTarget.Terrain, flags = UniqueFlag.setOfHiddenToUsers),
|
||||||
// The "Except [terrainFilter]" could theoretically be implemented with a conditional
|
// The "Except [terrainFilter]" could theoretically be implemented with a conditional
|
||||||
NaturalWonderConvertNeighborsExcept("Neighboring tiles except [baseTerrain] will convert to [baseTerrain]", UniqueTarget.Terrain, flags = UniqueFlag.setOfHiddenToUsers),
|
NaturalWonderConvertNeighborsExcept("Neighboring tiles except [baseTerrain] will convert to [baseTerrain]", UniqueTarget.Terrain, flags = UniqueFlag.setOfHiddenToUsers),
|
||||||
@Deprecated("As of 4.10.17", ReplaceWith("Grants [+500 Gold] to the first civilization to discover it"))
|
|
||||||
GrantsGoldToFirstToDiscover("Grants 500 Gold to the first civilization to discover it", UniqueTarget.Terrain),
|
|
||||||
GrantsStatsToFirstToDiscover("Grants [stats] to the first civilization to discover it", UniqueTarget.Terrain),
|
GrantsStatsToFirstToDiscover("Grants [stats] to the first civilization to discover it", UniqueTarget.Terrain),
|
||||||
|
|
||||||
// General terrain
|
// General terrain
|
||||||
@ -823,8 +813,6 @@ enum class UniqueType(
|
|||||||
///////////////////////////////////////// region 10 TRIGGERS /////////////////////////////////////////
|
///////////////////////////////////////// region 10 TRIGGERS /////////////////////////////////////////
|
||||||
|
|
||||||
TriggerUponResearch("upon discovering [techFilter] technology", UniqueTarget.TriggerCondition),
|
TriggerUponResearch("upon discovering [techFilter] technology", UniqueTarget.TriggerCondition),
|
||||||
@Deprecated("as of 4.10.15", ReplaceWith("upon discovering [tech] technology"))
|
|
||||||
TriggerUponResearchOld("upon discovering [tech]", UniqueTarget.TriggerCondition),
|
|
||||||
TriggerUponEnteringEra("upon entering the [era]", UniqueTarget.TriggerCondition),
|
TriggerUponEnteringEra("upon entering the [era]", UniqueTarget.TriggerCondition),
|
||||||
TriggerUponEnteringEraUnfiltered("upon entering a new era", UniqueTarget.TriggerCondition),
|
TriggerUponEnteringEraUnfiltered("upon entering a new era", UniqueTarget.TriggerCondition),
|
||||||
TriggerUponAdoptingPolicyOrBelief("upon adopting [policy/belief]", UniqueTarget.TriggerCondition),
|
TriggerUponAdoptingPolicyOrBelief("upon adopting [policy/belief]", UniqueTarget.TriggerCondition),
|
||||||
@ -904,11 +892,23 @@ enum class UniqueType(
|
|||||||
|
|
||||||
///////////////////////////////////////////// region 99 DEPRECATED AND REMOVED /////////////////////////////////////////////
|
///////////////////////////////////////////// region 99 DEPRECATED AND REMOVED /////////////////////////////////////////////
|
||||||
|
|
||||||
@Deprecated("as of 4.10.3", ReplaceWith("[+30]% Strength <vs [City-States]>"))
|
@Deprecated("As of 4.10.17", ReplaceWith("Grants [+500 Gold] to the first civilization to discover it"), DeprecationLevel.ERROR)
|
||||||
|
GrantsGoldToFirstToDiscover("Grants 500 Gold to the first civilization to discover it", UniqueTarget.Terrain),
|
||||||
|
@Deprecated("as of 4.10.17", ReplaceWith("[+100 Gold] for discovering a Natural Wonder (bonus enhanced to [+500 Gold] if first to discover it)"), DeprecationLevel.ERROR)
|
||||||
|
GoldWhenDiscoveringNaturalWonder("100 Gold for discovering a Natural Wonder (bonus enhanced to 500 Gold if first to discover it)", UniqueTarget.Global),
|
||||||
|
@Deprecated("as of 4.10.17", ReplaceWith("Only available <if [buildingFilter] is constructed in all [non-[Puppeted]] cities>"), DeprecationLevel.ERROR)
|
||||||
|
RequiresBuildingInAllCities("Requires a [buildingFilter] in all cities", UniqueTarget.Building),
|
||||||
|
@Deprecated("as of 4.10.17", ReplaceWith("Only available <if [buildingFilter] is constructed in at least [positiveAmount] of [All] cities>"), DeprecationLevel.ERROR)
|
||||||
|
RequiresBuildingInSomeCities("Requires a [buildingFilter] in at least [positiveAmount] cities", UniqueTarget.Building),
|
||||||
|
@Deprecated("as of 4.10.18", ReplaceWith("Can only be built <in [cityFilter] cities>"), DeprecationLevel.ERROR)
|
||||||
|
CanOnlyBeBuiltInCertainCities("Can only be built [cityFilter]", UniqueTarget.Building),
|
||||||
|
@Deprecated("as of 4.10.15", ReplaceWith("upon discovering [tech] technology"), DeprecationLevel.ERROR)
|
||||||
|
TriggerUponResearchOld("upon discovering [tech]", UniqueTarget.TriggerCondition),
|
||||||
|
@Deprecated("as of 4.10.3", ReplaceWith("[+30]% Strength <vs [City-States]>"), DeprecationLevel.ERROR)
|
||||||
StrengthBonusVsCityStates("+30% Strength when fighting City-State units and cities", UniqueTarget.Global),
|
StrengthBonusVsCityStates("+30% Strength when fighting City-State units and cities", UniqueTarget.Global),
|
||||||
@Deprecated("as of 4.10.3", ReplaceWith("with [amount] to [amount] neighboring [{tileFilter} {tileFilter}] tiles"))
|
@Deprecated("as of 4.10.3", ReplaceWith("with [amount] to [amount] neighboring [{tileFilter} {tileFilter}] tiles"), DeprecationLevel.ERROR)
|
||||||
ConditionalNeighborTilesAnd("with [amount] to [amount] neighboring [tileFilter] [tileFilter] tiles", UniqueTarget.Conditional),
|
ConditionalNeighborTilesAnd("with [amount] to [amount] neighboring [tileFilter] [tileFilter] tiles", UniqueTarget.Conditional),
|
||||||
@Deprecated("as of 4.10.3", ReplaceWith("in [{tileFilter} {tileFilter}] tiles"))
|
@Deprecated("as of 4.10.3", ReplaceWith("in [{tileFilter} {tileFilter}] tiles"), DeprecationLevel.ERROR)
|
||||||
ConditionalInTilesAnd("in [tileFilter] [tileFilter] tiles", UniqueTarget.Conditional),
|
ConditionalInTilesAnd("in [tileFilter] [tileFilter] tiles", UniqueTarget.Conditional),
|
||||||
@Deprecated("as of 4.10.3", ReplaceWith("Unavailable <after generating a Great Prophet>"), DeprecationLevel.ERROR)
|
@Deprecated("as of 4.10.3", ReplaceWith("Unavailable <after generating a Great Prophet>"), DeprecationLevel.ERROR)
|
||||||
HiddenAfterGreatProphet("Hidden after generating a Great Prophet", UniqueTarget.Ruins),
|
HiddenAfterGreatProphet("Hidden after generating a Great Prophet", UniqueTarget.Ruins),
|
||||||
|
@ -87,11 +87,7 @@ object BuildingDescriptions {
|
|||||||
fun additionalDescription (building: Building, city: City, lines: ArrayList<String>) {
|
fun additionalDescription (building: Building, city: City, lines: ArrayList<String>) {
|
||||||
// Inefficient in theory. In practice, buildings seem to have only a small handful of uniques.
|
// Inefficient in theory. In practice, buildings seem to have only a small handful of uniques.
|
||||||
for (unique in building.uniqueObjects) {
|
for (unique in building.uniqueObjects) {
|
||||||
if (unique.type == UniqueType.RequiresBuildingInAllCities) {
|
if (unique.type == UniqueType.OnlyAvailable || unique.type == UniqueType.CanOnlyBeBuiltWhen)
|
||||||
missingCityText(unique.params[0], city, "non-[Puppeted]", lines)
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (unique.type == UniqueType.OnlyAvailable || unique.type == UniqueType.CanOnlyBeBuiltWhen)
|
|
||||||
for (conditional in unique.conditionals) {
|
for (conditional in unique.conditionals) {
|
||||||
if (conditional.type == UniqueType.ConditionalBuildingBuiltAll) {
|
if (conditional.type == UniqueType.ConditionalBuildingBuiltAll) {
|
||||||
missingCityText(conditional.params[0], city, conditional.params[1], lines)
|
missingCityText(conditional.params[0], city, conditional.params[1], lines)
|
||||||
|
Reference in New Issue
Block a user