From 8b014982279f607dd0b1c547e38b8295b394f2af Mon Sep 17 00:00:00 2001 From: WhoIsJohannes <126110113+WhoIsJohannes@users.noreply.github.com> Date: Mon, 3 Apr 2023 22:38:04 +0200 Subject: [PATCH] Get going with producing military if your ass is about to get kicked. (#9109) --- .../automation/civilization/NextTurnAutomation.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/core/src/com/unciv/logic/automation/civilization/NextTurnAutomation.kt b/core/src/com/unciv/logic/automation/civilization/NextTurnAutomation.kt index cf974fbdb5..18e3413449 100644 --- a/core/src/com/unciv/logic/automation/civilization/NextTurnAutomation.kt +++ b/core/src/com/unciv/logic/automation/civilization/NextTurnAutomation.kt @@ -962,15 +962,21 @@ object NextTurnAutomation { } private fun automateCities(civInfo: Civilization) { + val ownMilitaryStrength = civInfo.getStatForRanking(RankingType.Force) + val sumOfEnemiesMilitaryStrength = civInfo.gameInfo.civilizations.filter { it != civInfo } + .filter { civInfo.isAtWarWith(it) }.sumOf { it.getStatForRanking(RankingType.Force) } + val civHasSignificantlyWeakerMilitaryThanEnemies = + ownMilitaryStrength < sumOfEnemiesMilitaryStrength * 0.66f for (city in civInfo.cities) { if (city.isPuppet && city.population.population > 9 - && !city.isInResistance()) { + && !city.isInResistance() + ) { city.annexCity() } city.reassignAllPopulation() - if (city.health < city.getMaxHealth()) { + if (city.health < city.getMaxHealth() || civHasSignificantlyWeakerMilitaryThanEnemies) { Automation.tryTrainMilitaryUnit(city) // need defenses if city is under attack if (city.cityConstructions.constructionQueue.isNotEmpty()) continue // found a unit to build so move on