diff --git a/core/src/com/unciv/logic/GameInfo.kt b/core/src/com/unciv/logic/GameInfo.kt index 056a15a8f0..cf25376f09 100644 --- a/core/src/com/unciv/logic/GameInfo.kt +++ b/core/src/com/unciv/logic/GameInfo.kt @@ -90,7 +90,14 @@ class GameInfo { if (viableTiles.isEmpty()) return // no place for more barbs =( tile = viableTiles.getRandom() } - tileMap.placeUnitNearTile(tile!!.position, "Warrior", getBarbarianCivilization()) + + val allResearchedTechs = civilizations.filterNot { it.isBarbarianCivilization() } + .flatMap { it.tech.researchedTechnologies }.map{ it.name } + val unitList = GameBasics.BarbarianUnitsList.keys + .filter{ allResearchedTechs.contains(GameBasics.Units[it]?.requiredTech) } + val unit = if (unitList.isEmpty()) "Warrior" else unitList.getRandom() + + tileMap.placeUnitNearTile(tile!!.position, unit, getBarbarianCivilization()) } fun setTransients() { @@ -131,4 +138,4 @@ class GameInfo { } } -} \ No newline at end of file +}