From edc53171ccceb1f1db98e0c354b3e9af64ee3cef Mon Sep 17 00:00:00 2001 From: Duan Tao Date: Sun, 27 Jan 2019 21:34:40 +0800 Subject: [PATCH] Barbarian generation improvement. --- core/src/com/unciv/logic/GameInfo.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/core/src/com/unciv/logic/GameInfo.kt b/core/src/com/unciv/logic/GameInfo.kt index fb35d0dd9e..1cb346c635 100644 --- a/core/src/com/unciv/logic/GameInfo.kt +++ b/core/src/com/unciv/logic/GameInfo.kt @@ -91,10 +91,13 @@ class GameInfo { tile = viableTiles.getRandom() } - val allResearchedTechs = civilizations.filterNot { it.isBarbarianCivilization() } - .flatMap { it.tech.researchedTechnologies }.map{ it.name } + var allResearchedTechs = GameBasics.Technologies.keys + for (civ in civilizations.filter { !it.isBarbarianCivilization() && !it.isDefeated() }) { + allResearchedTechs.retainAll(civ.tech.techsResearched) + } val unitList = GameBasics.Units.values.filter { !it.unitType.isCivilian() && it.uniqueTo == null } - .filter{ allResearchedTechs.contains(it.requiredTech) } + .filter{ allResearchedTechs.contains(it.requiredTech) + && (it.obsoleteTech == null || !allResearchedTechs.contains(it.obsoleteTech!!)) } val unit = if (unitList.isEmpty()) "Warrior" else unitList.getRandom().name tileMap.placeUnitNearTile(tile!!.position, unit, getBarbarianCivilization())