diff options
Diffstat (limited to 'core/src/ch/asynk/tankontank')
9 files changed, 27 insertions, 23 deletions
diff --git a/core/src/ch/asynk/tankontank/engine/Board.java b/core/src/ch/asynk/tankontank/engine/Board.java index b307ee7..e7e3105 100644 --- a/core/src/ch/asynk/tankontank/engine/Board.java +++ b/core/src/ch/asynk/tankontank/engine/Board.java @@ -218,9 +218,20 @@ public abstract class Board implements Disposable, Animation protected void addAnimation(Animation a) { + animationCount += 1; nextAnimations.add(a); } + protected void animationDone() + { + animationCount -= 1; + } + + public int animationCount() + { + return animationCount; + } + private void stats() { boolean print = false; @@ -230,10 +241,11 @@ public abstract class Board implements Disposable, Animation print = true; } - if (animationCount != animations.size()) { - animationCount = animations.size(); - print = true; - } + // FIXME this will never be false + // if (animationCount != animations.size()) { + // animationCount = animations.size(); + // print = true; + // } if (print) Gdx.app.debug("Board", " tiles:" + tileCount + " pawns:" + pawnCount + " animations:" + animationCount); diff --git a/core/src/ch/asynk/tankontank/game/Ctrl.java b/core/src/ch/asynk/tankontank/game/Ctrl.java index fb9495e..d4bd002 100644 --- a/core/src/ch/asynk/tankontank/game/Ctrl.java +++ b/core/src/ch/asynk/tankontank/game/Ctrl.java @@ -105,16 +105,8 @@ public class Ctrl implements Disposable return (state != selectState); } - public void setAnimationCount(int count) + public void animationsOver() { - animationCount = count; - } - - public void animationDone() - { - animationCount -= 1; - if (animationCount > 0) - return; if (hud.dialogActive()) return; leaveAnimationState(); diff --git a/core/src/ch/asynk/tankontank/game/Map.java b/core/src/ch/asynk/tankontank/game/Map.java index b86b366..2faa217 100644 --- a/core/src/ch/asynk/tankontank/game/Map.java +++ b/core/src/ch/asynk/tankontank/game/Map.java @@ -463,12 +463,15 @@ public abstract class Map extends Board implements MoveToAnimationCb, ObjectiveS }); } - private void animationDone() + @Override + protected void animationDone() { + soundId = -1; + super.animationDone(); + if (animationCount() == 0) + ctrl.animationsOver(); if (soundId >= 0) addAnimation( SoundAnimation.get(SoundAnimation.Action.FADE_OUT, sound, soundId, ctrl.cfg.fxVolume, 0.5f)); - soundId = -1; - ctrl.animationDone(); } private void addEngagementAnimation(Unit target) @@ -577,7 +580,10 @@ public abstract class Map extends Board implements MoveToAnimationCb, ObjectiveS unclaim(e.defender.getHex()); removePawn(e.defender); destroy.set(2f, e.defender); - addAnimation(destroy); + AnimationSequence seq = AnimationSequence.get(2); + seq.addAnimation(destroy); + seq.addAnimation(notifyDoneAnimation(e.defender)); + addAnimation(seq); } if ((activatedUnits.size() == 1) && e.attacker.isA(Unit.UnitType.AT_GUN) && e.defender.isHardTarget()) diff --git a/core/src/ch/asynk/tankontank/game/states/StateBreak.java b/core/src/ch/asynk/tankontank/game/states/StateBreak.java index 31b6315..9b87c23 100644 --- a/core/src/ch/asynk/tankontank/game/states/StateBreak.java +++ b/core/src/ch/asynk/tankontank/game/states/StateBreak.java @@ -83,7 +83,6 @@ public class StateBreak extends StateCommon if (map.pathBuilder.build(to) == 1) { map.pathBuilder.orientation = o; map.moveUnit(activeUnit); - ctrl.setAnimationCount(1); ctrl.setAfterAnimationState(StateType.DONE); } else TankOnTank.debug("That's very wrong there should be only one path"); diff --git a/core/src/ch/asynk/tankontank/game/states/StateEngage.java b/core/src/ch/asynk/tankontank/game/states/StateEngage.java index 048dbef..865907e 100644 --- a/core/src/ch/asynk/tankontank/game/states/StateEngage.java +++ b/core/src/ch/asynk/tankontank/game/states/StateEngage.java @@ -64,7 +64,6 @@ public class StateEngage extends StateCommon } activeUnit.showTarget(); - ctrl.setAnimationCount(map.activatedUnits.size()); ctrl.setAfterAnimationState(nextState); return StateType.ANIMATION; } diff --git a/core/src/ch/asynk/tankontank/game/states/StateMove.java b/core/src/ch/asynk/tankontank/game/states/StateMove.java index cce19a6..9a8195d 100644 --- a/core/src/ch/asynk/tankontank/game/states/StateMove.java +++ b/core/src/ch/asynk/tankontank/game/states/StateMove.java @@ -76,7 +76,6 @@ public class StateMove extends StateCommon int n = map.activatedUnits.size(); if (n == 0) return StateType.ABORT; - ctrl.setAnimationCount(n); map.revertMoves(); return StateType.ANIMATION; } diff --git a/core/src/ch/asynk/tankontank/game/states/StatePromote.java b/core/src/ch/asynk/tankontank/game/states/StatePromote.java index 81d6d7e..9f327e7 100644 --- a/core/src/ch/asynk/tankontank/game/states/StatePromote.java +++ b/core/src/ch/asynk/tankontank/game/states/StatePromote.java @@ -7,7 +7,6 @@ public class StatePromote extends StateCommon @Override public void enter(StateType prevState) { - ctrl.setAnimationCount(1); ctrl.setAfterAnimationState(StateType.DONE); ctrl.setState(StateType.ANIMATION); map.promoteUnit(selectedUnit); diff --git a/core/src/ch/asynk/tankontank/game/states/StateRotate.java b/core/src/ch/asynk/tankontank/game/states/StateRotate.java index 6b60dfb..d297840 100644 --- a/core/src/ch/asynk/tankontank/game/states/StateRotate.java +++ b/core/src/ch/asynk/tankontank/game/states/StateRotate.java @@ -73,7 +73,6 @@ public class StateRotate extends StateCommon if (map.moveUnit(activeUnit) > 0) whenDone = StateType.MOVE; - ctrl.setAnimationCount(1); ctrl.setAfterAnimationState(whenDone); return StateType.ANIMATION; } diff --git a/core/src/ch/asynk/tankontank/game/states/StateWithdraw.java b/core/src/ch/asynk/tankontank/game/states/StateWithdraw.java index 43c38cc..87c33b8 100644 --- a/core/src/ch/asynk/tankontank/game/states/StateWithdraw.java +++ b/core/src/ch/asynk/tankontank/game/states/StateWithdraw.java @@ -29,7 +29,6 @@ public class StateWithdraw extends StateCommon if (activeUnit == null) activeUnit = selectedUnit; - ctrl.setAnimationCount(1); ctrl.setAfterAnimationState(withdraw(activeUnit)); return StateType.ANIMATION; } |