From f70c725b85f9405d189e95b3553eea3d7be23ef7 Mon Sep 17 00:00:00 2001 From: Duan Tao Date: Fri, 28 Dec 2018 09:53:30 +0800 Subject: [PATCH] Code improvement, part 1. --- core/src/com/unciv/logic/automation/UnitAutomation.kt | 9 +++++---- core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/core/src/com/unciv/logic/automation/UnitAutomation.kt b/core/src/com/unciv/logic/automation/UnitAutomation.kt index 7ef32735b7..ab6ad524ae 100644 --- a/core/src/com/unciv/logic/automation/UnitAutomation.kt +++ b/core/src/com/unciv/logic/automation/UnitAutomation.kt @@ -33,9 +33,9 @@ class UnitAutomation{ return SpecificUnitAutomation().automateWorkBoats(unit) } - if (unit.name == "Great General") { + if (unit.name == "Great General") return SpecificUnitAutomation().automateGeneral(unit) - } else if(unit.name.startsWith("Great") + if(unit.name.startsWith("Great") && unit.name in GreatPersonManager().statToGreatPersonMapping.values){ // So "Great War Infantry" isn't caught here return SpecificUnitAutomation().automateGreatPerson(unit)// I don't know what to do with you yet. } @@ -403,8 +403,9 @@ class SpecificUnitAutomation{ //try to follow nearby units. Do not garrison in city if possible val militantToCompany = unit.civInfo.getCivUnits() .firstOrNull { val tile = it.currentTile - it.type.isLandUnit() && it.getMaxMovement() <= 2.0f && tile.civilianUnit==null - && unit.canMoveTo(tile) && unit.movementAlgs().canReach(tile) && !tile.isCityCenter() } + it.type.isLandUnit() && it.getMaxMovement() <= 2.0f + && (tile.civilianUnit == null || tile.civilianUnit == unit) + && unit.canMoveTo(tile) && !tile.isCityCenter() && unit.movementAlgs().canReach(tile) } if(militantToCompany!=null) { unit.movementAlgs().headTowards(militantToCompany.currentTile) diff --git a/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt b/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt index 270910e39d..c8c548b111 100644 --- a/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt +++ b/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt @@ -162,7 +162,7 @@ class UnitActions { }.sound("chimes") } - if ((unit.name == "Great Artist" || unit.name == "Great General") && !unit.isEmbarked()) { + if (unit.hasUnique("Can start an 8-turn golden age") && !unit.isEmbarked()) { actionList += UnitAction( "Start Golden Age",unit.currentMovement != 0f ) { unit.civInfo.goldenAges.enterGoldenAge()