From 607e40a7129c425fe4296cc50cb4efd50cbd27ae Mon Sep 17 00:00:00 2001 From: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> Date: Tue, 17 Aug 2021 12:58:19 +0200 Subject: [PATCH] Fixed some bugs with spreading of religion (#4851) * Fixed some bugs with spreading of religion * Implemented requested changes --- .../logic/civilization/CivilizationInfo.kt | 18 +++++++++++++++++- .../logic/civilization/ReligionManager.kt | 1 - 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt index 718e733f36..4966a5f020 100644 --- a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt +++ b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt @@ -263,7 +263,14 @@ class CivilizationInfo { } + policies.policyUniques.getUniques(uniqueTemplate) + tech.techUniques.getUniques(uniqueTemplate) + - temporaryUniques.filter { it.first.placeholderText == uniqueTemplate }.map { it.first } + temporaryUniques + .asSequence() + .filter { it.first.placeholderText == uniqueTemplate }.map { it.first } + + if (religionManager.religion != null) + religionManager.religion!!.getFounderUniques() + .asSequence() + .filter { it.placeholderText == uniqueTemplate } + else sequenceOf() } //region Units @@ -778,6 +785,15 @@ class CivilizationInfo { if (unit.isGreatPerson()) { addNotification("A [${unit.name}] has been born in [${cityToAddTo.name}]!", placedUnit.getTile().position, unit.name) } + + if (placedUnit.hasUnique("Religious Unit")) { + placedUnit.religion = + if (city != null) city.cityConstructions.cityInfo.religion.getMajorityReligion() + else religionManager.religion?.name + if (placedUnit.hasUnique("Can spread religion [] times")) + placedUnit.abilityUsedCount["Religion Spread"] = 0 + } + return placedUnit } diff --git a/core/src/com/unciv/logic/civilization/ReligionManager.kt b/core/src/com/unciv/logic/civilization/ReligionManager.kt index 7b5506b305..6c5eb6cc0b 100644 --- a/core/src/com/unciv/logic/civilization/ReligionManager.kt +++ b/core/src/com/unciv/logic/civilization/ReligionManager.kt @@ -117,7 +117,6 @@ class ReligionManager { else civInfo.cities.firstOrNull { it.religion.religionThisIsTheHolyCityOf == religion!!.name } val prophet = civInfo.addUnit("Great Prophet", birthCity) ?: return prophet.religion = religion!!.name - prophet.abilityUsedCount["Religion Spread"] = 0 storedFaith -= faithForNextGreatProphet() greatProphetsEarned += 1 }