From 973c1693c829ecbb0222dd7adcc43fe75d91b8fd Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Mon, 18 Feb 2019 23:02:14 +0200 Subject: [PATCH] Unified canFortify() checks --- core/src/com/unciv/logic/automation/UnitAutomation.kt | 2 +- core/src/com/unciv/logic/map/MapUnit.kt | 2 ++ core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt | 5 ++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/core/src/com/unciv/logic/automation/UnitAutomation.kt b/core/src/com/unciv/logic/automation/UnitAutomation.kt index 1a71449fae..f8410726fd 100644 --- a/core/src/com/unciv/logic/automation/UnitAutomation.kt +++ b/core/src/com/unciv/logic/automation/UnitAutomation.kt @@ -107,7 +107,7 @@ class UnitAutomation{ val bestTileForHealing = bestTilesForHealing.maxBy { it.getDefensiveBonus() }!! if(unitTile!=bestTileForHealing && rankTileForHealing(bestTileForHealing,unit)>rankTileForHealing(unitTile,unit)) unit.moveToTile(bestTileForHealing) - if(unit.currentMovement>0 && !unit.isFortified() && unit.canFortify()){ + if(unit.currentMovement>0 && unit.canFortify()){ unit.action="Fortify 0" } } diff --git a/core/src/com/unciv/logic/map/MapUnit.kt b/core/src/com/unciv/logic/map/MapUnit.kt index a0e8e8176a..25621c7c13 100644 --- a/core/src/com/unciv/logic/map/MapUnit.kt +++ b/core/src/com/unciv/logic/map/MapUnit.kt @@ -248,8 +248,10 @@ class MapUnit { fun canFortify(): Boolean { if(type.isWaterUnit()) return false + if(type.isCivilian()) return false if(isEmbarked()) return false if(hasUnique("No defensive terrain bonus")) return false + if(isFortified()) return false return true } diff --git a/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt b/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt index 0de35f758f..7e188c7eca 100644 --- a/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt +++ b/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt @@ -37,13 +37,12 @@ class UnitActions { } } - if(!unit.type.isCivilian() && !unit.isEmbarked() && !unit.type.isWaterUnit() - && !unit.hasUnique("No defensive terrain bonus") && !unit.isFortified()) { + if(unit.canFortify()) { actionList += UnitAction("Fortify", unit.currentMovement >0) { unit.action = "Fortify 0" }.sound("fortify") } - if(!unit.isFortified() && actionList.none{it.name=="Fortify"} && unit.action!="Sleep") { + if(!unit.isFortified() && !unit.canFortify() && unit.action!="Sleep") { actionList += UnitAction("Sleep",unit.currentMovement >0) { unit.action = "Sleep" } }