diff options
Diffstat (limited to 'core/src/ch/asynk')
| -rw-r--r-- | core/src/ch/asynk/tankontank/game/Map.java | 42 | 
1 files changed, 22 insertions, 20 deletions
| diff --git a/core/src/ch/asynk/tankontank/game/Map.java b/core/src/ch/asynk/tankontank/game/Map.java index 6983426..e585832 100644 --- a/core/src/ch/asynk/tankontank/game/Map.java +++ b/core/src/ch/asynk/tankontank/game/Map.java @@ -317,6 +317,26 @@ public abstract class Map extends Board          }      } +    private void setFightAnimation(Unit target, boolean success) +    { +        AnimationSequence seq = AnimationSequence.get(success ? 3 : 2); +        SpriteAnimation e = (success ? explosions : explosion); +        e.init(1, target.getCenterX(), target.getCenterY()); +        seq.addAnimation(e); +        if (success) { +            seq.addAnimation(RunnableAnimation.get(target, new Runnable() { +                        @Override +                        public void run() { +                            animationDone(); +                        } +            })); +        } +        seq.addAnimation(notifyDoneAnimation(target)); +        addAnimation(seq); +        sound = engagementSound; +        sound.play(1.0f); +    } +      public boolean engageUnit(Unit unit, final Unit target)      {          boolean mayReroll = false; @@ -332,23 +352,7 @@ public abstract class Map extends Board              success = resolveFight(unit, target);          } -        TankOnTank.debug(unit + "  engagements " + target + " : " + unit.engagement.calculus); - -        AnimationSequence seq = AnimationSequence.get(2); -        if (success) { -            explosions.init(1, target.getCenterX(), target.getCenterY()); -            seq.addAnimation(explosions); -            seq.addAnimation(notifyDoneAnimation(unit)); -        } else { -            explosion.init(1, target.getCenterX(), target.getCenterY()); -            seq.addAnimation(explosion); -            seq.addAnimation(RunnableAnimation.get(unit, new Runnable() { -                @Override -                public void run() { -                    animationDone(); -                } -            })); -        } +        TankOnTank.debug(unit + "  engagements " + target + " : " + unit.engagement.calculus + " " + success);          breakUnits.clear();          for (Unit u: activatedUnits) { @@ -360,9 +364,7 @@ public abstract class Map extends Board          if ((activatedUnits.size() == 1) && unit.isA(Unit.UnitType.AT_GUN) && target.isHardTarget())              activatedUnits.clear(); -        addAnimation(seq); -        sound = engagementSound; -        sound.play(1.0f); +        setFightAnimation(target, success);          return success;      } | 
