diff options
Diffstat (limited to 'core')
| -rw-r--r-- | core/src/ch/asynk/rustanddust/game/states/StateMove.java | 19 | 
1 files changed, 14 insertions, 5 deletions
| diff --git a/core/src/ch/asynk/rustanddust/game/states/StateMove.java b/core/src/ch/asynk/rustanddust/game/states/StateMove.java index 1a088ac..f7597ff 100644 --- a/core/src/ch/asynk/rustanddust/game/states/StateMove.java +++ b/core/src/ch/asynk/rustanddust/game/states/StateMove.java @@ -32,7 +32,7 @@ public class StateMove extends StateCommon                  // quick move -> replay touchUp                  touch(to);              } else -                checkExit(activeUnit, activeUnit.getHex()); +                checkExit(activeUnit);          } else {              // back from rotation -> chose next Pawn              if (selectedUnit.canMove()) { @@ -142,7 +142,7 @@ public class StateMove extends StateCommon          map.movesShow();          map.hexSelect(hex);          ctrl.hud.notify(activeUnit.toString(), Position.TOP_CENTER); -        checkExit(activeUnit, hex); +        checkExit(activeUnit);      }      private int collectPaths(Hex hex) @@ -172,14 +172,23 @@ public class StateMove extends StateCommon          return s;      } -    private boolean checkExit(Unit unit, Hex hex) +    private boolean checkExit(Unit unit)      { -        if ((hex == unit.getHex()) && (unit.justEntered())) +        if (unit.justEntered()) +            return false; +        Zone exitZone = ctrl.battle.getExitZone(unit); +        if ((exitZone == null) || !exitZone.contains(unit.getHex()))              return false; +        ctrl.setState(StateType.WITHDRAW); +        return true; +    } + +    private boolean checkExit(Unit unit, Hex hex) +    {          Zone exitZone = ctrl.battle.getExitZone(unit);          if ((exitZone == null) || !exitZone.contains(hex))              return false; -        if ((unit.getHex() != hex) && !map.pathsCanExit(exitZone.orientation)) +        if (!map.pathsCanExit(exitZone.orientation))              return false;          ctrl.setState(StateType.WITHDRAW);          return true; | 
