From 9dab9cd556f4416459994d75a3ad5bdd3d34fc61 Mon Sep 17 00:00:00 2001 From: Duan Tao Date: Mon, 17 Dec 2018 16:24:14 +0800 Subject: [PATCH 1/2] AI uses work boats. --- core/src/com/unciv/logic/automation/Automation.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/src/com/unciv/logic/automation/Automation.kt b/core/src/com/unciv/logic/automation/Automation.kt index d4eebca7f9..654d08923e 100644 --- a/core/src/com/unciv/logic/automation/Automation.kt +++ b/core/src/com/unciv/logic/automation/Automation.kt @@ -73,6 +73,10 @@ class Automation { val militaryUnits = civUnits.filter { !it.type.isCivilian()}.size val workers = civUnits.filter { it.name == CityConstructions.Worker }.size val cities = cityInfo.civInfo.cities.size + val canBuildWorkboat = cityInfo.cityConstructions.getConstructableUnits().map { it.name }.contains("Work Boats") + && !cityInfo.getTiles().any { val civUnit = it.civilianUnit; civUnit != null && civUnit!!.name == "Work Boats" } + val needWorkboat = canBuildWorkboat + && cityInfo.getTiles().any { it.isWater() && it.hasViewableResource(cityInfo.civInfo) && it.improvement == null } val goldBuildings = buildableNotWonders.filter { it.gold>0 } val wartimeBuildings = buildableNotWonders.filter { it.xpForNewUnits>0 || it.cityStrength>0 }.sortedBy { it.maintenance } @@ -94,6 +98,7 @@ class Automation { zeroMaintenanceBuildings.isNotEmpty() -> currentConstruction = zeroMaintenanceBuildings.getRandom().name isAtWar && militaryUnits trainCombatUnit(cityInfo) isAtWar && wartimeBuildings.isNotEmpty() -> currentConstruction = wartimeBuildings.getRandom().name + needWorkboat -> currentConstruction = "Work Boats" workers currentConstruction = CityConstructions.Worker militaryUnits trainCombatUnit(cityInfo) buildableNotWonders.isNotEmpty() -> currentConstruction = buildableNotWonders.minBy { it.maintenance }!!.name From b95192006e78c016286afa7985865abbb8e8b9f3 Mon Sep 17 00:00:00 2001 From: Duan Tao Date: Mon, 17 Dec 2018 17:22:54 +0800 Subject: [PATCH 2/2] Fix safe call. --- core/src/com/unciv/logic/automation/Automation.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/com/unciv/logic/automation/Automation.kt b/core/src/com/unciv/logic/automation/Automation.kt index 654d08923e..8445f316de 100644 --- a/core/src/com/unciv/logic/automation/Automation.kt +++ b/core/src/com/unciv/logic/automation/Automation.kt @@ -74,7 +74,7 @@ class Automation { val workers = civUnits.filter { it.name == CityConstructions.Worker }.size val cities = cityInfo.civInfo.cities.size val canBuildWorkboat = cityInfo.cityConstructions.getConstructableUnits().map { it.name }.contains("Work Boats") - && !cityInfo.getTiles().any { val civUnit = it.civilianUnit; civUnit != null && civUnit!!.name == "Work Boats" } + && !cityInfo.getTiles().any { it.civilianUnit?.name == "Work Boats" } val needWorkboat = canBuildWorkboat && cityInfo.getTiles().any { it.isWater() && it.hasViewableResource(cityInfo.civInfo) && it.improvement == null }