diff --git a/core/src/com/unciv/logic/city/CityStats.kt b/core/src/com/unciv/logic/city/CityStats.kt index 32b414e2f2..26980889b1 100644 --- a/core/src/com/unciv/logic/city/CityStats.kt +++ b/core/src/com/unciv/logic/city/CityStats.kt @@ -167,7 +167,7 @@ class CityStats(val cityInfo: CityInfo) { fun getStatsOfSpecialist(specialistName: String): Stats { val specialist = cityInfo.getRuleset().specialists[specialistName] ?: return Stats() - val stats = specialist.clone() + val stats = specialist.cloneStats() for (unique in cityInfo.getMatchingUniques(UniqueType.StatsFromSpecialist)) if (cityInfo.matchesFilter(unique.params[1])) stats.add(unique.stats) diff --git a/core/src/com/unciv/logic/map/TileInfo.kt b/core/src/com/unciv/logic/map/TileInfo.kt index 848e4b8d1b..35590cc17c 100644 --- a/core/src/com/unciv/logic/map/TileInfo.kt +++ b/core/src/com/unciv/logic/map/TileInfo.kt @@ -240,19 +240,19 @@ open class TileInfo { fun getTileStats(observingCiv: CivilizationInfo): Stats = getTileStats(getCity(), observingCiv) fun getTileStats(city: CityInfo?, observingCiv: CivilizationInfo): Stats { - var stats = getBaseTerrain().clone() + var stats = getBaseTerrain().cloneStats() for (terrainFeatureBase in getTerrainFeatures()) { when { terrainFeatureBase.hasUnique(UniqueType.NullifyYields) -> - return terrainFeatureBase.clone() - terrainFeatureBase.overrideStats -> stats = terrainFeatureBase.clone() + return terrainFeatureBase.cloneStats() + terrainFeatureBase.overrideStats -> stats = terrainFeatureBase.cloneStats() else -> stats.add(terrainFeatureBase) } } if (naturalWonder != null) { - val wonderStats = getNaturalWonder().clone() + val wonderStats = getNaturalWonder().cloneStats() // Spain doubles tile yield if (city != null && city.civInfo.hasUnique("Tile yields from Natural Wonders doubled")) { @@ -335,11 +335,11 @@ open class TileInfo { } private fun getTileStartYield(isCenter: Boolean): Float { - var stats = getBaseTerrain().clone() + var stats = getBaseTerrain().cloneStats() for (terrainFeatureBase in getTerrainFeatures()) { if (terrainFeatureBase.overrideStats) - stats = terrainFeatureBase.clone() + stats = terrainFeatureBase.cloneStats() else stats.add(terrainFeatureBase) } diff --git a/core/src/com/unciv/models/ruleset/Building.kt b/core/src/com/unciv/models/ruleset/Building.kt index 59b01a0a2d..fbedcd79ba 100644 --- a/core/src/com/unciv/models/ruleset/Building.kt +++ b/core/src/com/unciv/models/ruleset/Building.kt @@ -151,7 +151,7 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction { fun getStats(city: CityInfo?): Stats { // Calls the clone function of the NamedStats this class is derived from, not a clone function of this class - val stats = this.clone() + val stats = cloneStats() if (city == null) return stats val civInfo = city.civInfo @@ -246,7 +246,7 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction { } } - val stats = this.clone() + val stats = cloneStats() val percentStats = getStatPercentageBonuses(null) val specialists = newSpecialists() if (uniques.isNotEmpty() || !stats.isEmpty() || !percentStats.isEmpty() || this.greatPersonPoints.isNotEmpty() || specialists.isNotEmpty()) diff --git a/core/src/com/unciv/models/ruleset/Nation.kt b/core/src/com/unciv/models/ruleset/Nation.kt index 472d4221df..6d1d5574c8 100644 --- a/core/src/com/unciv/models/ruleset/Nation.kt +++ b/core/src/com/unciv/models/ruleset/Nation.kt @@ -276,10 +276,10 @@ class Nation : RulesetObject() { private fun addUniqueImprovementsText(textList: ArrayList, ruleset: Ruleset) { for (improvement in ruleset.tileImprovements.values) { - if (improvement.uniqueTo != name ) continue + if (improvement.uniqueTo != name) continue textList += FormattedLine(improvement.name, link = "Improvement/${improvement.name}") - textList += FormattedLine(improvement.clone().toString(), indent = 1) // = (improvement as Stats).toString minus import plus copy overhead + textList += FormattedLine(improvement.cloneStats().toString(), indent = 1) // = (improvement as Stats).toString minus import plus copy overhead if (improvement.terrainsCanBeBuiltOn.isNotEmpty()) { improvement.terrainsCanBeBuiltOn.withIndex().forEach { textList += FormattedLine(if (it.index == 0) "{Can be built on} {${it.value}}" else "or [${it.value}]", diff --git a/core/src/com/unciv/models/ruleset/tile/Terrain.kt b/core/src/com/unciv/models/ruleset/tile/Terrain.kt index 6cccd3a74c..c36b48ae34 100644 --- a/core/src/com/unciv/models/ruleset/tile/Terrain.kt +++ b/core/src/com/unciv/models/ruleset/tile/Terrain.kt @@ -72,7 +72,7 @@ class Terrain : RulesetStatsObject() { textList += FormattedLine("Natural Wonder", header=3, color="#3A0") } - val stats = this.clone() + val stats = cloneStats() if (!stats.isEmpty()) { textList += FormattedLine() textList += FormattedLine("$stats") diff --git a/core/src/com/unciv/models/ruleset/tile/TileImprovement.kt b/core/src/com/unciv/models/ruleset/tile/TileImprovement.kt index 33a7bd6d43..b6cc5349d7 100644 --- a/core/src/com/unciv/models/ruleset/tile/TileImprovement.kt +++ b/core/src/com/unciv/models/ruleset/tile/TileImprovement.kt @@ -37,7 +37,7 @@ class TileImprovement : RulesetStatsObject() { fun getDescription(ruleset: Ruleset): String { val lines = ArrayList() - val statsDesc = this.clone().toString() + val statsDesc = cloneStats().toString() if (statsDesc.isNotEmpty()) lines += statsDesc if (!terrainsCanBeBuiltOn.isEmpty()) { val terrainsCanBeBuiltOnString: ArrayList = arrayListOf() @@ -96,7 +96,7 @@ class TileImprovement : RulesetStatsObject() { override fun getCivilopediaTextLines(ruleset: Ruleset): List { val textList = ArrayList() - val statsDesc = this.clone().toString() + val statsDesc = cloneStats().toString() if (statsDesc.isNotEmpty()) textList += FormattedLine(statsDesc) if (uniqueTo!=null) { diff --git a/core/src/com/unciv/models/ruleset/tile/TileResource.kt b/core/src/com/unciv/models/ruleset/tile/TileResource.kt index 02cf3f7514..681d4aa305 100644 --- a/core/src/com/unciv/models/ruleset/tile/TileResource.kt +++ b/core/src/com/unciv/models/ruleset/tile/TileResource.kt @@ -28,7 +28,7 @@ class TileResource : RulesetStatsObject() { textList += FormattedLine("${resourceType.name} resource", header = 4, color = resourceType.color) textList += FormattedLine() - textList += FormattedLine(this.clone().toString()) + textList += FormattedLine(cloneStats().toString()) if (terrainsCanBeFoundOn.isNotEmpty()) { textList += FormattedLine() diff --git a/core/src/com/unciv/ui/mapeditor/MapEditorOptionsTable.kt b/core/src/com/unciv/ui/mapeditor/MapEditorOptionsTable.kt index dbb086603d..6645eaf96a 100644 --- a/core/src/com/unciv/ui/mapeditor/MapEditorOptionsTable.kt +++ b/core/src/com/unciv/ui/mapeditor/MapEditorOptionsTable.kt @@ -143,7 +143,7 @@ class MapEditorOptionsTable(val mapEditorScreen: MapEditorScreen): Table(CameraS } } val improvementIcon = getHex(ImageGetter.getImprovementIcon(improvement.name, 40f)) - setCurrentHex(improvementIcon, improvement.name.tr() + "\n" + improvement.clone().toString()) + setCurrentHex(improvementIcon, improvement.name.tr() + "\n" + improvement.cloneStats().toString()) } improvementsTable.add(improvementImage).row() } @@ -309,7 +309,7 @@ class MapEditorOptionsTable(val mapEditorScreen: MapEditorScreen): Table(CameraS tileInfo.resource = resource.name tileInfo.setTerrainTransients() - setCurrentHex(tileInfo, resource.name.tr() + "\n" + resource.clone().toString()) + setCurrentHex(tileInfo, resource.name.tr() + "\n" + resource.cloneStats().toString()) } resources.add(resourceHex) } @@ -340,7 +340,7 @@ class MapEditorOptionsTable(val mapEditorScreen: MapEditorScreen): Table(CameraS else -> it.baseTerrain = terrain.name } } - setCurrentHex(tileInfo, terrain.name.tr() + "\n" + terrain.clone().toString()) + setCurrentHex(tileInfo, terrain.name.tr() + "\n" + terrain.cloneStats().toString()) } if (terrain.type == TerrainType.TerrainFeature)