From 47852fa8e4194ab363f535e73d84a12f4e5f33e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Fri, 10 Oct 2014 09:00:01 +0200 Subject: Board: add revertLastPawnMove(), call pawn .move(int) .rotate(Orientation) .revertLastMove() --- core/src/ch/asynk/tankontank/engine/Board.java | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/core/src/ch/asynk/tankontank/engine/Board.java b/core/src/ch/asynk/tankontank/engine/Board.java index 8423fc4..f6d28bb 100644 --- a/core/src/ch/asynk/tankontank/engine/Board.java +++ b/core/src/ch/asynk/tankontank/engine/Board.java @@ -503,7 +503,7 @@ public abstract class Board implements Disposable pushPawnAt(pawn, coords); } - protected void movePawn(final Pawn pawn, ArrayList path, RunnableAnimation whenDone) + protected void movePawn(final Pawn pawn, int cost, ArrayList path, RunnableAnimation whenDone) { removePawnFrom(pawn, getHexAt(pawn.getCenter())); @@ -516,6 +516,23 @@ public abstract class Board implements Disposable })); seq.addAnimation(whenDone); addPawnAnimation(pawn, seq); + pawn.move(cost); + } + + protected void revertLastPawnMove(final Pawn pawn, RunnableAnimation whenDone) + { + removePawnFrom(pawn, getHexAt(pawn.getCenter())); + + AnimationSequence seq = pawn.getRevertLastMoveAnimation(); + seq.addAnimation(RunnableAnimation.get(pawn, new Runnable() { + @Override + public void run() { + pushPawnAt(pawn, getHexAt(pawn.getCenter())); + } + })); + seq.addAnimation(whenDone); + addPawnAnimation(pawn, seq); + pawn.revertLastMove(); } protected void rotatePawn(final Pawn pawn, Orientation o, RunnableAnimation whenDone) @@ -527,6 +544,7 @@ public abstract class Board implements Disposable seq.addAnimation(whenDone); addPawnAnimation(pawn, seq); vector3Pool.free(v); + pawn.rotate(o); } public GridPoint2 getHexAt(Vector2 v) -- cgit v1.1-2-g2b99