From 8eda3426131cd0ee395cabc76f1e60ce07b5d672 Mon Sep 17 00:00:00 2001 From: yairm210 Date: Fri, 31 May 2024 19:13:01 +0300 Subject: [PATCH] Deprecated old uniques --- .../civilization/managers/TechManager.kt | 4 -- .../transients/CivInfoTransientCache.kt | 32 --------------- core/src/com/unciv/models/ruleset/Building.kt | 39 ------------------- .../unciv/models/ruleset/unique/UniqueType.kt | 30 +++++++------- .../BuildingDescriptions.kt | 6 +-- 5 files changed, 16 insertions(+), 95 deletions(-) diff --git a/core/src/com/unciv/logic/civilization/managers/TechManager.kt b/core/src/com/unciv/logic/civilization/managers/TechManager.kt index 997f70f022..d196c5e21d 100644 --- a/core/src/com/unciv/logic/civilization/managers/TechManager.kt +++ b/core/src/com/unciv/logic/civilization/managers/TechManager.kt @@ -309,10 +309,6 @@ class TechManager : IsPartOfGameInfoSerialization { if (!unique.hasTriggerConditional() && unique.conditionalsApply(StateForConditionals(civInfo))) 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)) if (unique.conditionals.any {it.type == UniqueType.TriggerUponResearch && newTech.matchesFilter(it.params[0]) }) UniqueTriggerActivation.triggerUnique(unique, civInfo, triggerNotificationText = triggerNotificationText) diff --git a/core/src/com/unciv/logic/civilization/transients/CivInfoTransientCache.kt b/core/src/com/unciv/logic/civilization/transients/CivInfoTransientCache.kt index 0f54b7a96e..c152ef7815 100644 --- a/core/src/com/unciv/logic/civilization/transients/CivInfoTransientCache.kt +++ b/core/src/com/unciv/logic/civilization/transients/CivInfoTransientCache.kt @@ -258,28 +258,6 @@ class CivInfoTransientCache(val civInfo: Civilization) { 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 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, StateForConditionals(civInfo, tile = tile) )) diff --git a/core/src/com/unciv/models/ruleset/Building.kt b/core/src/com/unciv/models/ruleset/Building.kt index 6938993314..b796a9698a 100644 --- a/core/src/com/unciv/models/ruleset/Building.kt +++ b/core/src/com/unciv/models/ruleset/Building.kt @@ -321,10 +321,6 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction { ) yield(RejectionReasonType.MustOwnTile.toInstance(unique.text)) - UniqueType.CanOnlyBeBuiltInCertainCities -> - if (!cityConstructions.city.matchesFilter(unique.params[0])) - yield(RejectionReasonType.CanOnlyBeBuiltInSpecificCities.toInstance(unique.text)) - UniqueType.ObsoleteWith -> if (civ.tech.isResearched(unique.params[0])) yield(RejectionReasonType.Obsoleted.toInstance(unique.text)) @@ -339,41 +335,6 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction { 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 -> { if (cityConstructions.city.civ.getCompletedPolicyBranchesCount() < unique.params[0].toInt()) yield(RejectionReasonType.MorePolicyBranches.toInstance(unique.text)) diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index 2251ca96a9..1a0f650d41 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -150,8 +150,6 @@ enum class UniqueType( /// Natural Wonders 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), /// Great Persons @@ -297,12 +295,6 @@ enum class UniqueType( 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"), - @Deprecated("as of 4.10.17", ReplaceWith("Only available ")) - RequiresBuildingInAllCities("Requires a [buildingFilter] in all cities", UniqueTarget.Building), - @Deprecated("as of 4.10.17", ReplaceWith("Only available ")) - RequiresBuildingInSomeCities("Requires a [buildingFilter] in at least [positiveAmount] cities", UniqueTarget.Building), - @Deprecated("as of 4.10.18", ReplaceWith("Can only be built ")) - CanOnlyBeBuiltInCertainCities("Can only be built [cityFilter]", UniqueTarget.Building), /** Triggers [RejectionReasonType] when any conditional does NOT apply. * Doesn't restrict Upgrade/Transform pathways. * @see [OnlyAvailable] @@ -539,8 +531,6 @@ enum class UniqueType( NaturalWonderConvertNeighbors("Neighboring tiles will convert to [baseTerrain]", UniqueTarget.Terrain, flags = UniqueFlag.setOfHiddenToUsers), // The "Except [terrainFilter]" could theoretically be implemented with a conditional 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), // General terrain @@ -823,8 +813,6 @@ enum class UniqueType( ///////////////////////////////////////// region 10 TRIGGERS ///////////////////////////////////////// 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), TriggerUponEnteringEraUnfiltered("upon entering a new era", UniqueTarget.TriggerCondition), TriggerUponAdoptingPolicyOrBelief("upon adopting [policy/belief]", UniqueTarget.TriggerCondition), @@ -904,11 +892,23 @@ enum class UniqueType( ///////////////////////////////////////////// region 99 DEPRECATED AND REMOVED ///////////////////////////////////////////// - @Deprecated("as of 4.10.3", ReplaceWith("[+30]% Strength ")) + @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 "), DeprecationLevel.ERROR) + RequiresBuildingInAllCities("Requires a [buildingFilter] in all cities", UniqueTarget.Building), + @Deprecated("as of 4.10.17", ReplaceWith("Only available "), DeprecationLevel.ERROR) + RequiresBuildingInSomeCities("Requires a [buildingFilter] in at least [positiveAmount] cities", UniqueTarget.Building), + @Deprecated("as of 4.10.18", ReplaceWith("Can only be built "), 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 "), DeprecationLevel.ERROR) 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), - @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), @Deprecated("as of 4.10.3", ReplaceWith("Unavailable "), DeprecationLevel.ERROR) HiddenAfterGreatProphet("Hidden after generating a Great Prophet", UniqueTarget.Ruins), diff --git a/core/src/com/unciv/ui/objectdescriptions/BuildingDescriptions.kt b/core/src/com/unciv/ui/objectdescriptions/BuildingDescriptions.kt index 57a3e6d103..0d7dff97ba 100644 --- a/core/src/com/unciv/ui/objectdescriptions/BuildingDescriptions.kt +++ b/core/src/com/unciv/ui/objectdescriptions/BuildingDescriptions.kt @@ -87,11 +87,7 @@ object BuildingDescriptions { fun additionalDescription (building: Building, city: City, lines: ArrayList) { // Inefficient in theory. In practice, buildings seem to have only a small handful of uniques. for (unique in building.uniqueObjects) { - if (unique.type == UniqueType.RequiresBuildingInAllCities) { - missingCityText(unique.params[0], city, "non-[Puppeted]", lines) - } - - else if (unique.type == UniqueType.OnlyAvailable || unique.type == UniqueType.CanOnlyBeBuiltWhen) + if (unique.type == UniqueType.OnlyAvailable || unique.type == UniqueType.CanOnlyBeBuiltWhen) for (conditional in unique.conditionals) { if (conditional.type == UniqueType.ConditionalBuildingBuiltAll) { missingCityText(conditional.params[0], city, conditional.params[1], lines)