From 5cc77dad3edf2ed0617cd7e0e527dc94b53a0d32 Mon Sep 17 00:00:00 2001 From: MindaugasRumsa51 <107413099+MindaugasRumsa51@users.noreply.github.com> Date: Thu, 4 Aug 2022 18:29:20 +0300 Subject: [PATCH] Update ReligionAutomation.kt (#7581) --- .../civilization/ReligionAutomation.kt | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/core/src/com/unciv/logic/automation/civilization/ReligionAutomation.kt b/core/src/com/unciv/logic/automation/civilization/ReligionAutomation.kt index 76ae8b8778..c3f026358b 100644 --- a/core/src/com/unciv/logic/automation/civilization/ReligionAutomation.kt +++ b/core/src/com/unciv/logic/automation/civilization/ReligionAutomation.kt @@ -162,14 +162,19 @@ object ReligionAutomation { var inquisitors = civInfo.gameInfo.ruleSet.units.values.filter { it.getMapUnit(civInfo).canDoReligiousAction(Constants.removeHeresy) || it.hasUnique(UniqueType.PreventSpreadingReligion) - }.map { it.name } - inquisitors = inquisitors.map { civInfo.getEquivalentUnit(it).name } - val inquisitorConstruction = inquisitors - .map { civInfo.cities.first().cityConstructions.getConstruction(it) as INonPerpetualConstruction } - .filter { unit -> civInfo.cities.any { unit.isPurchasable(it.cityConstructions) } } - .minByOrNull { it.getStatBuyCost(civInfo.getCapital()!!, Stat.Faith)!! } - ?: return + } + + inquisitors = inquisitors.map { civInfo.getEquivalentUnit(it) } + val inquisitorConstruction = inquisitors + // Get list of cities it can be built in + .associateBy({unit -> unit}) { unit -> civInfo.cities.filter { unit.isPurchasable(it.cityConstructions) && unit.canBePurchasedWithStat(it, Stat.Faith) } } + .filter { it.value.isNotEmpty() } + // And from that list determine the cheapest price + .minByOrNull { it.value.minOf { city -> it.key.getStatBuyCost(city, Stat.Faith)!! }}?.key + ?: return + + val hasUniqueToTakeCivReligion = civInfo.gameInfo.ruleSet.units[inquisitorConstruction.name]!!.hasUnique(UniqueType.TakeReligionOverBirthCity) val validCitiesToBuy = civInfo.cities.filter {