Ejemplo n.º 1
0
        public static void GenerateStars(GlobalConstants.GalaxySize GalaxySize, GlobalConstants.GalaxyType GalaxyType)
        {
            SizeEnum       = GalaxySize;
            GalaxyTypeEnum = GalaxyType;

            SetGalaxyRadiusAndStarCountByGalazySize(SizeEnum);

            Engine.Instance.WriteToConsole("Generating galaxy!");
            Engine.Instance.WriteToConsole("Galaxy size: " + SizeEnum + "; Galaxy type: " + GalaxyTypeEnum);
            Engine.Instance.WriteToConsole("Star count: " + StarCount.ToString());
            Engine.Instance.WriteToConsole("");

            List <Star>       arrStars      = new List <Star>();
            ContinuousUniform StarRadiusGen = new ContinuousUniform(2, 16.3);

            for (int i = 0; i < StarCount; i++)
            {
                float fltStarRad = (float)StarRadiusGen.Sample();

                bool     blnShouldCreateStar = true;
                Vector2f StarPosition        = new Vector2f(0, 0);

                if (GalaxyTypeEnum == GlobalConstants.GalaxyType.DISK)
                {
                    StarPosition = GetStarCoordinatesForElipticalGalaxy(ref arrStars, out blnShouldCreateStar);
                }
                else if (GalaxyTypeEnum == GlobalConstants.GalaxyType.RING)
                {
                    StarPosition = GetStarCoordinatesForRingGalaxy(ref arrStars, out blnShouldCreateStar);
                }
                else
                {
                    StarPosition = GetStarCoordinatesForElipticalGalaxy(ref arrStars, out blnShouldCreateStar);
                }

                if (blnShouldCreateStar && StarPosition.X != 0 && StarPosition.Y != 0)
                {
                    Star objStar = new Star(fltStarRad, StarPosition, 1);
                    arrStars.Add(objStar);
                }

                Engine.Instance.WriteToConsole("Stars generated: " + i.ToString(), true, false, false);
            }

            Stars         = arrStars.ToArray();
            HomeStarIndex = random.Next(0, Stars.Length - 1);

            while (Stars[HomeStarIndex].HasPanets == false)
            {
                if (Stars[HomeStarIndex].HasPanets == true)
                {
                    Stars[HomeStarIndex].Home      = true;
                    Stars[HomeStarIndex].HasPlayer = true;
                }
                else
                {
                    HomeStarIndex = random.Next(0, Stars.Length - 1);
                }
            }
        }
Ejemplo n.º 2
0
 public void UpdateUI()
 {
     StarText.text = StarCount.ToString();
     CoinText.text = CoinCount.ToString();
 }