diff options
| author | Jérémy Zurcher <jeremy@asynk.ch> | 2015-02-20 00:58:27 +0100 | 
|---|---|---|
| committer | Jérémy Zurcher <jeremy@asynk.ch> | 2015-02-20 00:58:27 +0100 | 
| commit | 69dee7fd17f76397daa6e74eb6d78110aaa35201 (patch) | |
| tree | 90820cb1ecd233f2d49d98308b1857768520a71d | |
| parent | bd29a669b211112f2aba4acc8971df4d18f51032 (diff) | |
| download | RustAndDust-69dee7fd17f76397daa6e74eb6d78110aaa35201.zip RustAndDust-69dee7fd17f76397daa6e74eb6d78110aaa35201.tar.gz | |
Board,Map,Ctrl: move annimation count to Board
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;      } | 
