diff options
Diffstat (limited to 'core/src/ch')
| -rw-r--r-- | core/src/ch/asynk/tankontank/game/Ctrl.java | 31 | 
1 files changed, 22 insertions, 9 deletions
| diff --git a/core/src/ch/asynk/tankontank/game/Ctrl.java b/core/src/ch/asynk/tankontank/game/Ctrl.java index f2d7283..6dc1c44 100644 --- a/core/src/ch/asynk/tankontank/game/Ctrl.java +++ b/core/src/ch/asynk/tankontank/game/Ctrl.java @@ -154,11 +154,6 @@ public class Ctrl implements Disposable      {          StateType nextState = this.state.done(); -        if (stateType == StateType.DEPLOYMENT) { -            switchPlayer(); -            return nextState; -        } -          if (nextState == StateType.DONE) {              if (map.activatedPawns.size() > 0) {                  TankOnTank.debug("burn down 1AP"); @@ -175,12 +170,31 @@ public class Ctrl implements Disposable          return nextState;      } +    private StateType deploymentDone() +    { +        StateType nextState = this.state.done(); + +        if (player.isDeploymentDone() && opponent.isDeploymentDone()) { +            endPlayerTurn(); +            player = battle.getPlayer(true, true); +            opponent = battle.getPlayer(false, true); +            startPlayerTurn(); +        } else +            switchPlayer(); + +        return nextState; +    } +      public void setState(StateType nextState)      {          if (nextState == StateType.ABORT)              nextState = actionAborted(); -        else if (nextState == StateType.DONE) -            nextState = actionDone(); +        else if (nextState == StateType.DONE) { +            if (stateType == StateType.DEPLOYMENT) +                nextState = deploymentDone(); +            else +                nextState = actionDone(); +        }          this.state.leave(nextState); @@ -271,8 +285,7 @@ public class Ctrl implements Disposable      public void endDeployment()      { -        state.done(); -        switchPlayer(); +        deploymentDone();      }      public void endGame() | 
