From c18cc2476f8a14bb45bdcfe8a2b9d15716b884ef Mon Sep 17 00:00:00 2001 From: Duan Tao Date: Fri, 25 Jan 2019 19:31:19 +0800 Subject: [PATCH] Generate different type of barbarians. --- core/src/com/unciv/logic/GameInfo.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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 +}