public static MissileController CopyAndFlip(MissileController missileController, CoordinateFlipper flipper,
            Dictionary<int, Entity> flippedEntities)
        {
            if (flippedEntities.ContainsKey(missileController.Id))
                return (MissileController) flippedEntities[missileController.Id];

            var copy = new MissileController(missileController)
            {
                PlayerNumber = missileController.PlayerNumber == 1 ? 2 : 1,
                X = flipper.CalculateFlippedX(missileController.X + (missileController.Width - 1)),
                Y = flipper.CalculateFlippedY(missileController.Y)
            };

            flippedEntities.Add(copy.Id, copy);
            return copy;
        }
        public static MissileController CopyAndFlip(MissileController missileController, CoordinateFlipper flipper,
                                                    Dictionary <int, Entity> flippedEntities)
        {
            if (flippedEntities.ContainsKey(missileController.Id))
            {
                return((MissileController)flippedEntities[missileController.Id]);
            }

            var copy = new MissileController(missileController)
            {
                PlayerNumber = missileController.PlayerNumber == 1 ? 2 : 1,
                X            = flipper.CalculateFlippedX(missileController.X + (missileController.Width - 1)),
                Y            = flipper.CalculateFlippedY(missileController.Y)
            };

            flippedEntities.Add(copy.Id, copy);
            return(copy);
        }
 private MissileController(MissileController missileController) : base(missileController)
 {
     OnAddedEvent     += OnAdded;
     OnDestroyedEvent += OnDestroy;
 }
 private MissileController(MissileController missileController)
     : base(missileController)
 {
     OnAddedEvent += OnAdded;
     OnDestroyedEvent += OnDestroy;
 }