mirror of
https://github.com/yairm210/Unciv.git
synced 2025-01-07 14:02:48 +07:00
Avoid modifying the ruleset object and unique stats (#11014)
This commit is contained in:
parent
67329cdabd
commit
ec0cf575f4
@ -38,7 +38,7 @@ class TileStatFunctions(val tile: Tile) {
|
|||||||
|
|
||||||
val percentageStats = getTilePercentageStats(observingCiv, city, localUniqueCache)
|
val percentageStats = getTilePercentageStats(observingCiv, city, localUniqueCache)
|
||||||
for (stats in statsBreakdown) {
|
for (stats in statsBreakdown) {
|
||||||
val tileType = when(stats.first) {
|
val tileType = when (stats.first) {
|
||||||
improvement -> "Improvement"
|
improvement -> "Improvement"
|
||||||
road.name -> "Road"
|
road.name -> "Road"
|
||||||
else -> "Terrain"
|
else -> "Terrain"
|
||||||
@ -121,11 +121,12 @@ class TileStatFunctions(val tile: Tile) {
|
|||||||
val statsFromMinimum = missingFromMinimum(listOfStats.toStats(), minimumStats)
|
val statsFromMinimum = missingFromMinimum(listOfStats.toStats(), minimumStats)
|
||||||
listOfStats.add("Minimum" to statsFromMinimum)
|
listOfStats.add("Minimum" to statsFromMinimum)
|
||||||
|
|
||||||
if (observingCiv != null &&
|
if (observingCiv != null &&
|
||||||
listOfStats.toStats().gold != 0f && observingCiv.goldenAges.isGoldenAge())
|
listOfStats.toStats().gold != 0f && observingCiv.goldenAges.isGoldenAge())
|
||||||
listOfStats.add("Golden Age" to Stats(gold = 1f))
|
listOfStats.add("Golden Age" to Stats(gold = 1f))
|
||||||
|
|
||||||
return listOfStats.filter { !it.second.isEmpty() }
|
// To ensure that the original stats (in uniques, terrains, etc) are not modified in getTileStats, we clone them all
|
||||||
|
return listOfStats.filter { !it.second.isEmpty() }.map { it.first to it.second.clone() }
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Ensures each stat is >= [other].stat - modifies in place */
|
/** Ensures each stat is >= [other].stat - modifies in place */
|
||||||
@ -180,7 +181,7 @@ class TileStatFunctions(val tile: Tile) {
|
|||||||
|
|
||||||
val road = tile.getUnpillagedRoadImprovement()
|
val road = tile.getUnpillagedRoadImprovement()
|
||||||
val roadStats = Stats()
|
val roadStats = Stats()
|
||||||
|
|
||||||
fun addStats(filter: String, stat: Stat, amount: Float) {
|
fun addStats(filter: String, stat: Stat, amount: Float) {
|
||||||
if (tile.matchesFilter(filter, observingCiv, true))
|
if (tile.matchesFilter(filter, observingCiv, true))
|
||||||
terrainStats.add(stat, amount)
|
terrainStats.add(stat, amount)
|
||||||
|
Loading…
Reference in New Issue
Block a user