// Move direction.
        // Change the starting position on a direction.
        public override R2CircularDirection translate(int coordinateSystemDirection, float amount)
        {
            R2CircularDirection initialDirection = new R2CircularDirection(new R2Point(StartingPoint), Direction, SharedDirection.DirectionLength, SharedDirection.Divisor, canShootList, Duration);

            float finalX = initialDirection.StartingPoint.GetAxisAt(0);
            float finalY = initialDirection.StartingPoint.GetAxisAt(1);


            R2Direction <R2CircularDirection, CircularLinkedList <R2Point>, CircularDirection <R2CircularDirection, R2Point> > .Translate(coordinateSystemDirection, amount, finalX, finalY);

            return(new R2CircularDirection(new R2Point(finalX, finalY, initialDirection.StartingPoint.CanShoot),
                                           Direction, SharedDirection.DirectionLength, SharedDirection.Divisor, CanShoot, Duration));
        }
 // Move a direction along one of the eight possible directions.
 public R2CDirection Translate(int coordinateSystemDirection, float amaunt)
 {
     return(new R2CDirection(directionHelper.Translate(coordinateSystemDirection, amaunt)));
 }