Unified canFortify() checks

This commit is contained in:
Yair Morgenstern 2019-02-18 23:02:14 +02:00
parent 2313f72cac
commit 973c1693c8
3 changed files with 5 additions and 4 deletions

View File

@ -107,7 +107,7 @@ class UnitAutomation{
val bestTileForHealing = bestTilesForHealing.maxBy { it.getDefensiveBonus() }!! val bestTileForHealing = bestTilesForHealing.maxBy { it.getDefensiveBonus() }!!
if(unitTile!=bestTileForHealing && rankTileForHealing(bestTileForHealing,unit)>rankTileForHealing(unitTile,unit)) if(unitTile!=bestTileForHealing && rankTileForHealing(bestTileForHealing,unit)>rankTileForHealing(unitTile,unit))
unit.moveToTile(bestTileForHealing) unit.moveToTile(bestTileForHealing)
if(unit.currentMovement>0 && !unit.isFortified() && unit.canFortify()){ if(unit.currentMovement>0 && unit.canFortify()){
unit.action="Fortify 0" unit.action="Fortify 0"
} }
} }

View File

@ -248,8 +248,10 @@ class MapUnit {
fun canFortify(): Boolean { fun canFortify(): Boolean {
if(type.isWaterUnit()) return false if(type.isWaterUnit()) return false
if(type.isCivilian()) return false
if(isEmbarked()) return false if(isEmbarked()) return false
if(hasUnique("No defensive terrain bonus")) return false if(hasUnique("No defensive terrain bonus")) return false
if(isFortified()) return false
return true return true
} }

View File

@ -37,13 +37,12 @@ class UnitActions {
} }
} }
if(!unit.type.isCivilian() && !unit.isEmbarked() && !unit.type.isWaterUnit() if(unit.canFortify()) {
&& !unit.hasUnique("No defensive terrain bonus") && !unit.isFortified()) {
actionList += UnitAction("Fortify", unit.currentMovement >0) actionList += UnitAction("Fortify", unit.currentMovement >0)
{ unit.action = "Fortify 0" }.sound("fortify") { 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" } actionList += UnitAction("Sleep",unit.currentMovement >0) { unit.action = "Sleep" }
} }