diff options
| -rw-r--r-- | core/src/ch/asynk/tankontank/engine/Board.java | 28 | 
1 files changed, 15 insertions, 13 deletions
| diff --git a/core/src/ch/asynk/tankontank/engine/Board.java b/core/src/ch/asynk/tankontank/engine/Board.java index 28e94ea..0a8541d 100644 --- a/core/src/ch/asynk/tankontank/engine/Board.java +++ b/core/src/ch/asynk/tankontank/engine/Board.java @@ -362,20 +362,25 @@ public abstract class Board implements Disposable          return pawn;      } +    private RunnableAnimation getSetPawnOntoAnimation(final Pawn pawn, final Tile dest ) +    { +        return RunnableAnimation.get(pawn, new Runnable() { +            @Override +            public void run() { +                setPawnOnto(pawn, dest, pawn.getRotation()); +            } +        }); +    } +      protected void movePawn(final Pawn pawn, PossiblePaths possiblePaths, RunnableAnimation whenDone)      {          removePawn(pawn); -        final Tile destination = possiblePaths.to;          AnimationSequence seq = pawn.getMoveAnimation(possiblePaths.iterator(), possiblePaths.pathSteps(0) + 2); -        seq.addAnimation(RunnableAnimation.get(pawn, new Runnable() { -            @Override -            public void run() { -                setPawnOnto(pawn, destination, pawn.getRotation()); -            } -        })); +        seq.addAnimation(getSetPawnOntoAnimation(pawn, possiblePaths.to));          seq.addAnimation(whenDone);          addAnimation(seq); +          pawn.move(possiblePaths.pathCost(0));      } @@ -384,14 +389,10 @@ public abstract class Board implements Disposable          removePawn(pawn);          AnimationSequence seq = pawn.getRotateAnimation(o.r(), 2); -        seq.addAnimation(RunnableAnimation.get(pawn, new Runnable() { -            @Override -            public void run() { -                setPawnOnto(pawn, pawn.getTile(), pawn.getRotation()); -            } -        })); +        seq.addAnimation(getSetPawnOntoAnimation(pawn, pawn.getTile()));          seq.addAnimation(whenDone);          addAnimation(seq); +          pawn.rotate(o);      } @@ -408,6 +409,7 @@ public abstract class Board implements Disposable          }));          seq.addAnimation(whenDone);          addAnimation(seq); +          pawn.revertLastMove();      } | 
