From 01877fee7cd70bdaaad4b110696936c9fa181558 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Thu, 11 Mar 2021 22:17:59 +0200 Subject: [PATCH] Fixed Great Barrier Reef spawn rules --- android/assets/jsons/Civ V - Vanilla/Terrains.json | 2 +- core/src/com/unciv/logic/map/mapgenerator/MapGenerator.kt | 2 +- .../com/unciv/logic/map/mapgenerator/NaturalWonderGenerator.kt | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/android/assets/jsons/Civ V - Vanilla/Terrains.json b/android/assets/jsons/Civ V - Vanilla/Terrains.json index 1b179fc039..7271a167c5 100644 --- a/android/assets/jsons/Civ V - Vanilla/Terrains.json +++ b/android/assets/jsons/Civ V - Vanilla/Terrains.json @@ -173,7 +173,7 @@ "production": 1, "gold": 1, "science": 2, - "occursOn": ["Coast"], + "occursOn": ["Ocean"], "turnsInto": "Coast", "impassable": true, "unbuildable": true, diff --git a/core/src/com/unciv/logic/map/mapgenerator/MapGenerator.kt b/core/src/com/unciv/logic/map/mapgenerator/MapGenerator.kt index 86b23903bc..01c827e931 100644 --- a/core/src/com/unciv/logic/map/mapgenerator/MapGenerator.kt +++ b/core/src/com/unciv/logic/map/mapgenerator/MapGenerator.kt @@ -255,7 +255,7 @@ class MapGenerator(val ruleset: Ruleset) { private fun spawnVegetation(tileMap: TileMap) { val vegetationSeed = randomness.RNG.nextInt().toDouble() val candidateTerrains = Constants.vegetation.flatMap{ ruleset.terrains[it]!!.occursOn } - for (tile in tileMap.values.asSequence().filter { it.baseTerrain in candidateTerrains && it.terrainFeature == null + for (tile in tileMap.values.asSequence().filter { it.baseTerrain in candidateTerrains && it.terrainFeatures.isEmpty() && (!it.isHill() || Constants.hill in candidateTerrains) }) { val vegetation = (randomness.getPerlinNoise(tile, vegetationSeed, scale = 3.0, nOctaves = 1) + 1.0) / 2.0 diff --git a/core/src/com/unciv/logic/map/mapgenerator/NaturalWonderGenerator.kt b/core/src/com/unciv/logic/map/mapgenerator/NaturalWonderGenerator.kt index d95041c734..102962ba92 100644 --- a/core/src/com/unciv/logic/map/mapgenerator/NaturalWonderGenerator.kt +++ b/core/src/com/unciv/logic/map/mapgenerator/NaturalWonderGenerator.kt @@ -127,7 +127,7 @@ class NaturalWonderGenerator(val ruleset: Ruleset) { /* Great Barrier Reef: Specifics currently unknown; - Assumption: at least 1 neighbour not water; no tundra; at least 1 neighbour coast; becomes coast + Assumption: at least 1 neighbour coast; no tundra; at least 1 neighbour coast; becomes coast */ private fun spawnGreatBarrierReef(tileMap: TileMap) { val wonder = ruleset.terrains[Constants.greatBarrierReef]!! @@ -136,6 +136,7 @@ class NaturalWonderGenerator(val ruleset: Ruleset) { && wonder.occursOn.contains(it.getLastTerrain().name) && abs(it.latitude) > tileMap.maxLatitude * 0.1 && abs(it.latitude) < tileMap.maxLatitude * 0.7 + && it.neighbors.any { it.baseTerrain == Constants.coast } && it.neighbors.all { neighbor -> neighbor.isWater } && it.neighbors.any { neighbor -> neighbor.resource == null && neighbor.improvement == null