mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-29 14:20:17 +07:00
Movement has changed - It is now done via clicking on the tile, and a "move to" button will appear on that tile
This commit is contained in:
@ -5,6 +5,7 @@ import com.badlogic.gdx.math.Vector2
|
|||||||
import com.badlogic.gdx.scenes.scene2d.Actor
|
import com.badlogic.gdx.scenes.scene2d.Actor
|
||||||
import com.badlogic.gdx.scenes.scene2d.Group
|
import com.badlogic.gdx.scenes.scene2d.Group
|
||||||
import com.badlogic.gdx.scenes.scene2d.InputEvent
|
import com.badlogic.gdx.scenes.scene2d.InputEvent
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.ui.Label
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane
|
import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane
|
||||||
import com.badlogic.gdx.scenes.scene2d.utils.ActorGestureListener
|
import com.badlogic.gdx.scenes.scene2d.utils.ActorGestureListener
|
||||||
import com.unciv.UnCivGame
|
import com.unciv.UnCivGame
|
||||||
@ -15,9 +16,7 @@ import com.unciv.logic.map.TileInfo
|
|||||||
import com.unciv.logic.map.TileMap
|
import com.unciv.logic.map.TileMap
|
||||||
import com.unciv.models.gamebasics.unit.UnitType
|
import com.unciv.models.gamebasics.unit.UnitType
|
||||||
import com.unciv.ui.tilegroups.WorldTileGroup
|
import com.unciv.ui.tilegroups.WorldTileGroup
|
||||||
import com.unciv.ui.utils.onClick
|
import com.unciv.ui.utils.*
|
||||||
import com.unciv.ui.utils.center
|
|
||||||
import com.unciv.ui.utils.colorFromRGB
|
|
||||||
|
|
||||||
class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap: TileMap) : ScrollPane(null) {
|
class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap: TileMap) : ScrollPane(null) {
|
||||||
internal var selectedTile: TileInfo? = null
|
internal var selectedTile: TileInfo? = null
|
||||||
@ -42,18 +41,31 @@ class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap:
|
|||||||
if(overlayActor!=null) overlayActor!!.remove()
|
if(overlayActor!=null) overlayActor!!.remove()
|
||||||
selectedTile = tileInfo
|
selectedTile = tileInfo
|
||||||
|
|
||||||
// val selectedUnit = worldScreen.bottomBar.unitTable.selectedUnit
|
val selectedUnit = worldScreen.bottomBar.unitTable.selectedUnit
|
||||||
// if(selectedUnit!=null && selectedUnit.getTile()!=tileInfo
|
if(selectedUnit!=null && selectedUnit.getTile()!=tileInfo
|
||||||
// && selectedUnit.canMoveTo(tileInfo) && selectedUnit.movementAlgs().canReach(tileInfo)) {
|
&& selectedUnit.canMoveTo(tileInfo) && selectedUnit.movementAlgs().canReach(tileInfo)) {
|
||||||
// val size = 40f
|
val size = 40f
|
||||||
// val moveHereGroup = Group().apply { width = size;height = size; }
|
val moveHereGroup = Group().apply { width = size;height = size; }
|
||||||
// moveHereGroup.addActor(ImageGetter.getImage("OtherIcons/Circle").apply { width = size; height = size })
|
moveHereGroup.addActor(ImageGetter.getImage("OtherIcons/Circle").apply { width = size; height = size })
|
||||||
// moveHereGroup.addActor(ImageGetter.getStatIcon("Movement").apply { width = size / 2; height = size / 2; center(moveHereGroup) })
|
moveHereGroup.addActor(ImageGetter.getStatIcon("Movement").apply { width = size / 2; height = size / 2; center(moveHereGroup) })
|
||||||
// if(selectedUnit.currentMovement>0)
|
val turnsToGetThere = selectedUnit.movementAlgs().getShortestPath(tileInfo).size
|
||||||
// moveHereGroup.onClick { selectedUnit.movementAlgs().headTowards(tileInfo);worldScreen.update() }
|
val numberCircle = ImageGetter.getImage("OtherIcons/Circle").apply { width = size/2; height = size/2;color= Color.BLUE }
|
||||||
// else moveHereGroup.color.a=0.5f
|
moveHereGroup.addActor(numberCircle)
|
||||||
// addAboveGroup(group, moveHereGroup).apply { width = size; height = size }
|
moveHereGroup.addActor(Label(turnsToGetThere.toString(),CameraStageBaseScreen.skin).apply { center(numberCircle) })
|
||||||
// }
|
|
||||||
|
if(selectedUnit.currentMovement>0)
|
||||||
|
moveHereGroup.onClick {
|
||||||
|
selectedUnit.movementAlgs().headTowards(tileInfo)
|
||||||
|
if(selectedUnit.currentTile != tileInfo)
|
||||||
|
selectedUnit.action = "moveTo " + tileInfo.position.x.toInt() + "," + tileInfo.position.y.toInt()
|
||||||
|
|
||||||
|
worldScreen.update()
|
||||||
|
overlayActor!!.remove()
|
||||||
|
overlayActor=null
|
||||||
|
}
|
||||||
|
else moveHereGroup.color.a=0.5f
|
||||||
|
addAboveGroup(group, moveHereGroup).apply { width = size; height = size }
|
||||||
|
}
|
||||||
|
|
||||||
worldScreen.bottomBar.unitTable.tileSelected(tileInfo)
|
worldScreen.bottomBar.unitTable.tileSelected(tileInfo)
|
||||||
worldScreen.update()
|
worldScreen.update()
|
||||||
|
@ -33,14 +33,14 @@ class UnitActions {
|
|||||||
val unitTable = worldScreen.bottomBar.unitTable
|
val unitTable = worldScreen.bottomBar.unitTable
|
||||||
val actionList = ArrayList<UnitAction>()
|
val actionList = ArrayList<UnitAction>()
|
||||||
|
|
||||||
if (unitTable.currentlyExecutingAction != "moveTo"
|
// if (unitTable.currentlyExecutingAction != "moveTo"
|
||||||
&& (unit.action==null || !unit.action!!.startsWith("moveTo") )){
|
// && (unit.action==null || !unit.action!!.startsWith("moveTo") )){
|
||||||
actionList += UnitAction("Move unit", {
|
// actionList += UnitAction("Move unit", {
|
||||||
unitTable.currentlyExecutingAction = "moveTo"
|
// unitTable.currentlyExecutingAction = "moveTo"
|
||||||
}, unit.currentMovement != 0f )
|
// }, unit.currentMovement != 0f )
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
else {
|
if(unit.action!=null && unit.action!!.startsWith("moveTo")){
|
||||||
actionList +=
|
actionList +=
|
||||||
UnitAction("Stop movement", {
|
UnitAction("Stop movement", {
|
||||||
unitTable.currentlyExecutingAction = null
|
unitTable.currentlyExecutingAction = null
|
||||||
|
Reference in New Issue
Block a user