From 7ff38b268708849b4d92c2e977d9978a6171716d Mon Sep 17 00:00:00 2001 From: SeventhM <127357473+SeventhM@users.noreply.github.com> Date: Sun, 17 Dec 2023 12:02:33 -0800 Subject: [PATCH] Fix Great Scientist science calculation (#10763) * Linting * Simplify adding science of last 8 turns --- .../logic/civilization/managers/TechManager.kt | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/core/src/com/unciv/logic/civilization/managers/TechManager.kt b/core/src/com/unciv/logic/civilization/managers/TechManager.kt index fe57b18bd7..d6b114a774 100644 --- a/core/src/com/unciv/logic/civilization/managers/TechManager.kt +++ b/core/src/com/unciv/logic/civilization/managers/TechManager.kt @@ -198,16 +198,8 @@ class TechManager : IsPartOfGameInfoSerialization { return (scienceOfLast8Turns.sum() * civInfo.gameInfo.speed.scienceCostModifier).toInt() } - private fun addCurrentScienceToScienceOfLast8Turns() { - // The Science the Great Scientist generates does not include Science from Policies, Trade routes and City-States. - var allCitiesScience = 0f - civInfo.cities.forEach { - val totalBaseScience = it.cityStats.baseStatTree.totalStats.science - val totalBonusPercents = it.cityStats.statPercentBonusTree.children.asSequence() - .filter { it2 -> it2.key != "Policies" }.map { it2 -> it2.value.totalStats.science }.sum() - allCitiesScience += totalBaseScience * totalBonusPercents.toPercent() - } - scienceOfLast8Turns[civInfo.gameInfo.turns % 8] = allCitiesScience.toInt() + private fun addCurrentScienceToScienceOfLast8Turns(science: Int) { + scienceOfLast8Turns[civInfo.gameInfo.turns % 8] = science } private fun limitOverflowScience(overflowScience: Int): Int { @@ -228,7 +220,7 @@ class TechManager : IsPartOfGameInfoSerialization { } fun endTurn(scienceForNewTurn: Int) { - addCurrentScienceToScienceOfLast8Turns() + addCurrentScienceToScienceOfLast8Turns(scienceForNewTurn) if (currentTechnologyName() == null) return var finalScienceToAdd = scienceForNewTurn