diff --git a/core/src/com/unciv/logic/automation/city/ConstructionAutomation.kt b/core/src/com/unciv/logic/automation/city/ConstructionAutomation.kt index ee43d4602a..859e7fe7a6 100644 --- a/core/src/com/unciv/logic/automation/city/ConstructionAutomation.kt +++ b/core/src/com/unciv/logic/automation/city/ConstructionAutomation.kt @@ -38,7 +38,7 @@ class ConstructionAutomation(val cityConstructions: CityConstructions){ private val civUnits = civInfo.units.getCivUnits() private val militaryUnits = civUnits.count { it.baseUnit.isMilitary() } - private val workers = civUnits.count { it.cache.hasUniqueToBuildImprovements && it.isCivilian() }.toFloat() + private val workers = civUnits.count { it.cache.hasUniqueToBuildImprovements}.toFloat() private val cities = civInfo.cities.size private val allTechsAreResearched = civInfo.gameInfo.ruleset.technologies.values .all { civInfo.tech.isResearched(it.name) || !civInfo.tech.canBeResearched(it.name)} diff --git a/core/src/com/unciv/logic/automation/unit/UnitAutomation.kt b/core/src/com/unciv/logic/automation/unit/UnitAutomation.kt index 3d436d3bc4..f3ae04d7dd 100644 --- a/core/src/com/unciv/logic/automation/unit/UnitAutomation.kt +++ b/core/src/com/unciv/logic/automation/unit/UnitAutomation.kt @@ -152,6 +152,14 @@ object UnitAutomation { unit.promotions.addPromotion(availablePromotions.toList().random().name) } + //This allows for military units with certain civilian abilities to behave as civilians in peace and soldiers in war + if ((unit.hasUnique(UniqueType.BuildImprovements) || unit.hasUnique(UniqueType.FoundCity) || + unit.hasUnique(UniqueType.ReligiousUnit) || unit.hasUnique(UniqueType.CreateWaterImprovements)) + && !unit.civ.isAtWar()){ + automateCivilianUnit(unit) + return + } + if (unit.baseUnit.isAirUnit() && unit.canIntercept()) return SpecificUnitAutomation.automateFighter(unit)