예제 #1
0
        protected void IntelliTrace(Coordinate aim)
        {
            if (!IntelliCutsAnything(new Area(aim, Position), 1))
            {
                return;
            }
            Trace(aim);
            if (!IntelliCutsAnything(new Area(aim, Position), 1))
            {
                return;
            }
            var direction = Direction.Up;

            do
            {
                Trace(GetReboundingPositionToShoot(aim, direction));
                if (direction == Direction.Left)
                {
                    break;
                }
                direction = DirectionFunctionality.Next(direction);
            } while (IntelliCutsAnything(new Area(aim, Position), 1));
        }
예제 #2
0
파일: Player.cs 프로젝트: MetaColon/Tanks
 public void Move(Direction direction)
 {
     if (DirectionValid(direction) && !Engine.Animations.Any(
             animation =>
             (animation.AnimatedObject.Id == Id) &&
             (((NormalMoveAnimation)animation).Direction == direction)))
     {
         Engine.Animations =
             new ObservableCollection <Animation.Animation>(Engine.Animations.Where(
                                                                animation =>
                                                                !((animation.AnimatedObject.Id == Id) &&
                                                                  (((NormalMoveAnimation)animation).Direction ==
                                                                   DirectionFunctionality.Inverted(direction))))
                                                            .ToList())
         {
             new NormalMoveAnimation(this, direction, 3)
         }
     }
     ;
     {
         Moves.Add(direction);
     }
 }