mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-13 01:08:25 +07:00
Fix Great Scientist science calculation (#10763)
* Linting * Simplify adding science of last 8 turns
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user