public List<SpaceUnit> ProduceShellsFrom(Spaceship spaceship)
        {
            List<SpaceUnit> producedShells = new List<SpaceUnit>();
            Coordinate shootingPoint = spaceship.GetShootingPoint();
            Coordinate shellSpeed = new Coordinate();
            string shellCollisionGroup = spaceship.CollisionGroupString == "player" ? "player" : "enemy";
            int shellsCount = 1;

            switch (spaceship.Type)
            {
                case SpaceUnitType.Banshee:
                    shellSpeed.Col = 5;
                    break;
                case SpaceUnitType.Battlecruiser:
                case SpaceUnitType.Carrier:
                case SpaceUnitType.Scout:
                case SpaceUnitType.Walkir:
                    shellSpeed.Row = 0;
                    shellSpeed.Col = spaceship.Speed.Col * 2;
                    break;
                case SpaceUnitType.Stealth:
                    shellSpeed.Row -= spaceship.Speed.Col * 2;
                    shellSpeed.Col = 0;
                    break;
                case SpaceUnitType.Dragoon:
                    shellSpeed.Row += spaceship.Speed.Col * 2;
                    shellSpeed.Col = -1;
                    shellsCount = 3;
                    break;
            }

            for (int shell = 0; shell < shellsCount; shell++)
            {
                producedShells.Add(this.ProduceSpaceUnit(SpaceUnitType.Shell, shootingPoint, shellSpeed, shellCollisionGroup));

                shellSpeed.Col++;
            }

            return producedShells;
        }