diff --git a/core/src/com/unciv/logic/BackwardCompatibility.kt b/core/src/com/unciv/logic/BackwardCompatibility.kt index d563aff828..48129e975b 100644 --- a/core/src/com/unciv/logic/BackwardCompatibility.kt +++ b/core/src/com/unciv/logic/BackwardCompatibility.kt @@ -70,11 +70,7 @@ object BackwardCompatibility { if (!ruleSet.technologies.containsKey(tech)) civInfo.tech.techsResearched.remove(tech) for (policy in civInfo.policies.adoptedPolicies.toList()) - if (!ruleSet.policies.containsKey(policy) - // Conversion code for deprecated policies since 3.16.15 - && !(policy == "Patronage " || policy == "Patronage Complete") - // - ) + if (!ruleSet.policies.containsKey(policy)) civInfo.policies.adoptedPolicies.remove(policy) } } diff --git a/core/src/com/unciv/logic/battle/Battle.kt b/core/src/com/unciv/logic/battle/Battle.kt index e2dda185a0..d178b6207e 100644 --- a/core/src/com/unciv/logic/battle/Battle.kt +++ b/core/src/com/unciv/logic/battle/Battle.kt @@ -37,7 +37,7 @@ object Battle { /** Alternatively, maybe we DID reach that tile, but it turned out to be a hill or something, * so we expended all of our movement points! */ - if (attacker.unit.currentMovement != attackableTile.movementLeftAfterMovingToAttackTile) + if (attacker.unit.currentMovement == 0f) return if (attacker.unit.hasUnique(UniqueType.MustSetUp) && !attacker.unit.isSetUpForSiege()) { attacker.unit.action = UnitActionType.SetUp.value diff --git a/core/src/com/unciv/logic/city/CityStats.kt b/core/src/com/unciv/logic/city/CityStats.kt index 26980889b1..f44f23855b 100644 --- a/core/src/com/unciv/logic/city/CityStats.kt +++ b/core/src/com/unciv/logic/city/CityStats.kt @@ -614,11 +614,11 @@ class CityStats(val cityInfo: CityInfo) { var foodEatenBySpecialists = 2f * cityInfo.population.getNumberOfSpecialists() // Deprecated since 3.16.11 - for (unique in cityInfo.civInfo.getMatchingUniques("-[]% food consumption by specialists")) + for (unique in cityInfo.civInfo.getMatchingUniques(UniqueType.FoodConsumptionBySpecialistsDeprecated)) foodEatenBySpecialists *= 1f - unique.params[0].toFloat() / 100f // - for (unique in cityInfo.getMatchingUniques("[]% food consumption by specialists []")) + for (unique in cityInfo.getMatchingUniques(UniqueType.FoodConsumptionBySpecialists)) if (cityInfo.matchesFilter(unique.params[1])) foodEatenBySpecialists *= unique.params[0].toPercent() diff --git a/core/src/com/unciv/logic/civilization/CivInfoStats.kt b/core/src/com/unciv/logic/civilization/CivInfoStats.kt index 33df7f56ee..4a9dd3353e 100644 --- a/core/src/com/unciv/logic/civilization/CivInfoStats.kt +++ b/core/src/com/unciv/logic/civilization/CivInfoStats.kt @@ -182,7 +182,7 @@ class CivInfoStats(val civInfo: CivilizationInfo) { } // Deprecated since 3.16.15 - if (civInfo.hasUnique("50% of excess happiness added to culture towards policies")) { + if (civInfo.hasUnique(UniqueType.ExcessHappinessToCultureDeprecated)) { val happiness = civInfo.getHappiness() if (happiness > 0) statMap.add("Policies", Stats(culture = happiness / 2f)) } diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index b014852bb5..ec8c12b3b3 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -155,6 +155,15 @@ enum class UniqueType(val text:String, vararg targets: UniqueTarget, val flags: FreeExtraBeliefs("May choose [amount] additional [beliefType] beliefs when [foundingOrEnhancing] a religion", UniqueTarget.Global), FreeExtraAnyBeliefs("May choose [amount] additional belief(s) of any type when [foundingOrEnhancing] a religion", UniqueTarget.Global), + FoodConsumptionBySpecialists("[amount]% food consumption by specialists [cityFilter]", UniqueTarget.Global), + @Deprecated("As of 3.18.2", ReplaceWith("[-amount]% food consumption by specialists [cityFilter]"), DeprecationLevel.WARNING) + FoodConsumptionBySpecialistsDeprecated("-[amount]% food consumption by specialists [cityFilter]", UniqueTarget.Global), + + ExcessHappinessToGlobalStat("[amount]% of excess happiness converted to [stat]", UniqueTarget.Global), + @Deprecated("As of 3.18.2", ReplaceWith("[50]% of excess happiness converted to [Culture]"), DeprecationLevel.WARNING) + ExcessHappinessToCultureDeprecated("50% of excess happiness added to culture towards policies", UniqueTarget.Global), + + // There is potential to merge these BuyUnitsIncreasingCost("May buy [baseUnitFilter] units for [amount] [stat] [cityFilter] at an increasing price ([amount])", UniqueTarget.Global), BuyBuildingsIncreasingCost("May buy [buildingFilter] buildings for [amount] [stat] [cityFilter] at an increasing price ([amount])", UniqueTarget.Global), diff --git a/core/src/com/unciv/models/tilesets/TileSetCache.kt b/core/src/com/unciv/models/tilesets/TileSetCache.kt index 1eb502f974..5010b5a710 100644 --- a/core/src/com/unciv/models/tilesets/TileSetCache.kt +++ b/core/src/com/unciv/models/tilesets/TileSetCache.kt @@ -22,8 +22,8 @@ object TileSetCache : HashMap() { val mods = mutableListOf("") if (UncivGame.isCurrentInitialized()) { mods.addAll(UncivGame.Current.settings.visualMods) - mods.addAll(ruleSetMods) } + mods.addAll(ruleSetMods) clear() for (mod in mods.distinct()) { val entry = allConfigs.entries.firstOrNull { it.key.mod == mod } ?: continue