diff --git a/core/src/com/unciv/logic/map/mapgenerator/MapRegions.kt b/core/src/com/unciv/logic/map/mapgenerator/MapRegions.kt index 23184f1b47..d1b6e1c2e7 100644 --- a/core/src/com/unciv/logic/map/mapgenerator/MapRegions.kt +++ b/core/src/com/unciv/logic/map/mapgenerator/MapRegions.kt @@ -871,11 +871,9 @@ class MapRegions (val ruleset: Ruleset){ // Pick a luxury at random. Weight is reduced if the luxury has been picked before val modifiedWeights = candidateLuxuries.map { val weightingUnique = it.getMatchingUniques(UniqueType.ResourceWeighting, regionConditional).firstOrNull() - if (weightingUnique == null) - 1f / (1f + amountRegionsWithLuxury[it.name]!!) - else - weightingUnique.params[0].toFloat() / (1f + amountRegionsWithLuxury[it.name]!!) - } + val relativeWeight = if (weightingUnique == null) 1f else weightingUnique.params[0].toFloat() + relativeWeight / (1f + amountRegionsWithLuxury[it.name]!!) + }.shuffled() region.luxury = candidateLuxuries.randomWeighted(modifiedWeights).name amountRegionsWithLuxury[region.luxury!!] = amountRegionsWithLuxury[region.luxury]!! + 1 } @@ -1780,4 +1778,4 @@ class Region (val tileMap: TileMap, val rect: Rectangle, val continentID: Int = /** Returns number terrains with [name] */ fun getTerrainAmount(name: String) = terrainCounts[name] ?: 0 -} \ No newline at end of file +}