Deprecated old uniques

This commit is contained in:
yairm210
2024-05-31 19:13:01 +03:00
parent bdb0dcef65
commit 8eda342613
5 changed files with 16 additions and 95 deletions

View File

@ -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)

View File

@ -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)
))

View File

@ -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))

View File

@ -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 <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.
* 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 <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),
@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 <after generating a Great Prophet>"), DeprecationLevel.ERROR)
HiddenAfterGreatProphet("Hidden after generating a Great Prophet", UniqueTarget.Ruins),

View File

@ -87,11 +87,7 @@ object BuildingDescriptions {
fun additionalDescription (building: Building, city: City, lines: ArrayList<String>) {
// 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)