summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/src/ch/asynk/tankontank/game/states/GameStateMove.java4
-rw-r--r--core/src/ch/asynk/tankontank/game/states/GameStateSelect.java14
2 files changed, 17 insertions, 1 deletions
diff --git a/core/src/ch/asynk/tankontank/game/states/GameStateMove.java b/core/src/ch/asynk/tankontank/game/states/GameStateMove.java
index 0c12ef1..8c76484 100644
--- a/core/src/ch/asynk/tankontank/game/states/GameStateMove.java
+++ b/core/src/ch/asynk/tankontank/game/states/GameStateMove.java
@@ -13,6 +13,10 @@ public class GameStateMove extends GameStateCommon
from.set(hex);
activePawn = pawn;
map.buildAndShowMovesAndAssits(activePawn, from);
+ if (to.x != -1) {
+ upHex.set(to);
+ touchUp();
+ }
} else {
if ((activePawn == pawn) || !pawn.canMove()) {
upHex.set(map.getFirstMoveAssist());
diff --git a/core/src/ch/asynk/tankontank/game/states/GameStateSelect.java b/core/src/ch/asynk/tankontank/game/states/GameStateSelect.java
index b4c10f0..b4df8c0 100644
--- a/core/src/ch/asynk/tankontank/game/states/GameStateSelect.java
+++ b/core/src/ch/asynk/tankontank/game/states/GameStateSelect.java
@@ -5,6 +5,8 @@ import ch.asynk.tankontank.game.GameCtrl;
public class GameStateSelect extends GameStateCommon
{
+ private boolean jumpToMove;
+
public GameStateSelect(GameCtrl ctrl, Map map)
{
super(ctrl, map);
@@ -14,6 +16,7 @@ public class GameStateSelect extends GameStateCommon
public void enter(boolean flag)
{
ctrl.hud.hide();
+ jumpToMove = false;
}
@Override
@@ -25,12 +28,21 @@ public class GameStateSelect extends GameStateCommon
@Override
public void touchDown()
{
- reselectHex();
+ if (map.isInPossibleMoves(downHex))
+ jumpToMove = true;
+ else
+ reselectHex();
}
@Override
public void touchUp()
{
+ if (jumpToMove) {
+ to.set(downHex);
+ ctrl.setState(State.MOVE);
+ return;
+ }
+
hidePossibleTargetsMovesAssists();
if (hasPawn()) {
int moves = map.buildPossibleMoves(pawn, hex);