mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-30 23:41:03 -04:00
Fixes to unit moving through occupied tiles
This commit is contained in:
parent
15f1648ca4
commit
2604ff6ab6
@ -395,6 +395,16 @@ class MapUnit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun moveThroughTile(tile: TileInfo){
|
||||||
|
if(tile.improvement==Constants.ancientRuins && civInfo.isMajorCiv())
|
||||||
|
getAncientRuinBonus()
|
||||||
|
if(tile.improvement==Constants.barbarianEncampment && !civInfo.isBarbarianCivilization())
|
||||||
|
clearEncampment(tile)
|
||||||
|
|
||||||
|
currentTile = tile
|
||||||
|
updateViewableTiles()
|
||||||
|
}
|
||||||
|
|
||||||
fun putInTile(tile:TileInfo){
|
fun putInTile(tile:TileInfo){
|
||||||
when {
|
when {
|
||||||
!movement.canMoveTo(tile) -> throw Exception("I can't go there!")
|
!movement.canMoveTo(tile) -> throw Exception("I can't go there!")
|
||||||
@ -402,13 +412,7 @@ class MapUnit {
|
|||||||
type.isCivilian() -> tile.civilianUnit=this
|
type.isCivilian() -> tile.civilianUnit=this
|
||||||
else -> tile.militaryUnit=this
|
else -> tile.militaryUnit=this
|
||||||
}
|
}
|
||||||
currentTile = tile
|
moveThroughTile(tile)
|
||||||
if(tile.improvement==Constants.ancientRuins && civInfo.isMajorCiv())
|
|
||||||
getAncientRuinBonus()
|
|
||||||
if(tile.improvement==Constants.barbarianEncampment && !civInfo.isBarbarianCivilization())
|
|
||||||
clearEncampment(tile)
|
|
||||||
|
|
||||||
updateViewableTiles()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun clearEncampment(tile: TileInfo) {
|
private fun clearEncampment(tile: TileInfo) {
|
||||||
|
@ -236,11 +236,15 @@ class UnitMovementAlgorithms(val unit:MapUnit) {
|
|||||||
if(unit.isFortified() || unit.action=="Set Up" || unit.action=="Sleep")
|
if(unit.isFortified() || unit.action=="Set Up" || unit.action=="Sleep")
|
||||||
unit.action=null // unfortify/setup after moving
|
unit.action=null // unfortify/setup after moving
|
||||||
|
|
||||||
|
// Move through all intermediate tiles to get ancient ruins, barb encampments
|
||||||
|
// and to view tiles along the way
|
||||||
val pathToFinalTile = distanceToTiles.getPathToTile(destination)
|
val pathToFinalTile = distanceToTiles.getPathToTile(destination)
|
||||||
|
|
||||||
|
unit.removeFromTile()
|
||||||
for(tile in pathToFinalTile){
|
for(tile in pathToFinalTile){
|
||||||
unit.removeFromTile()
|
unit.moveThroughTile(tile)
|
||||||
unit.putInTile(tile)
|
|
||||||
}
|
}
|
||||||
|
unit.putInTile(destination)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user