Example #1
0
        /// <summary>
        /// Генерирует галактику нерегулярного типа
        /// </summary>
        /// <param name="offset">Временной сдвиг</param>
        /// <param name="galaxysize">Размер галактики</param>
        /// <param name="starscount">Количество звезд</param>
        void generate_irregular_galaxy(double offset, int galaxysize, int starscount)
        {
            Double r;           //radius
            Double t;           //rotate angle
            Random rand = new Random();

            r = 0;
            t = offset;
            for (int i = 0; i < starscount / 2; i++)
            {
                StarSystem s = new StarSystem();

                r += rand.NextDouble() * galaxysize * 10;
                t += 0.2 - Math.PI * 2;

                s.timeOffset = t;
                s.R          = r;

                s.y         = -5.0 + rand.NextDouble() * 10.0;
                s.increment = rand.Next(-starscount * 100, starscount * 100);

                s.type = rand.Next(7);             //type impact on size and color
                s.name = GenerateRandomStarName(); //s.name = (i + 1).ToString();

                switch (s.type)
                {
                //O - Blue, t =30 000 — 60 000 K
                case 0:
                    s.color = PlanetBrushes.BlueBrush;
                    break;

                //B - Light blue, t = 10 500 — 30 000 K
                case 1:
                    s.color = PlanetBrushes.LightBlueBrush;
                    break;

                //A - White, t = 7500—10 000 K
                case 2:
                    s.color = PlanetBrushes.WhiteBrush;
                    break;

                //F - Light Yellow, t = 6000—7200 K
                case 3:
                    s.color = PlanetBrushes.LightYellowBrush;
                    break;

                //G - Yellow, t = 5500 — 6000 K
                case 4:
                    s.color = PlanetBrushes.YellowBrush;
                    break;

                //K - Orange, t = 4000 — 5250 K
                case 5:
                    s.color = PlanetBrushes.OrangeBrush;
                    break;

                //M - Red, t = 2600 — 3850 K
                case 6:
                    s.color = PlanetBrushes.RedBrush;
                    break;
                }

                Planet.generatePlanets(s, Time);

                stars.Add(s);
            }
        }
Example #2
0
        /// <summary>
        /// Генерирует элиптическую галактику
        /// </summary>
        /// <param name="galaxysize">Размер галактики</param>
        /// <param name="starscount">Количество звезд</param>
        void generate_elliptical_galaxy(int galaxysize, int starscount)
        {
            Random rand = new Random((int)DateTime.Now.Ticks);

            double inc = Math.PI * 48 / starscount;
            double t = 0, r = 100 * (galaxysize + 1);

            for (int i = 0; i < starscount; i++)
            {
                StarSystem s = new StarSystem();

                t += inc + rand.NextDouble() * galaxysize;

                s.timeOffset = t;

                s.R = r + rand.Next(starscount) * 10;

                s.type = rand.Next(7);  //type impact on size and color
                s.name = GenerateRandomStarName();

                switch (s.type)
                {
                //O - Blue, t =30 000 — 60 000 K
                case 0:
                    s.color = PlanetBrushes.BlueBrush;
                    break;

                //B - Light blue, t = 10 500 — 30 000 K
                case 1:
                    s.color = PlanetBrushes.LightBlueBrush;
                    break;

                //A - White, t = 7500—10 000 K
                case 2:
                    s.color = PlanetBrushes.WhiteBrush;
                    break;

                //F - Light Yellow, t = 6000—7200 K
                case 3:
                    s.color = PlanetBrushes.LightYellowBrush;
                    break;

                //G - Yellow, t = 5500 — 6000 K
                case 4:
                    s.color = PlanetBrushes.YellowBrush;
                    break;

                //K - Orange, t = 4000 — 5250 K
                case 5:
                    s.color = PlanetBrushes.OrangeBrush;
                    break;

                //M - Red, t = 2600 — 3850 K
                case 6:
                    s.color = PlanetBrushes.RedBrush;
                    break;
                }

                Planet.generatePlanets(s, Time);
                stars.Add(s);
            }
        }
Example #3
0
        /// <summary>
        /// Генерирует сферическую галактику
        /// </summary>
        /// <param name="galaxysize">Размер галактики</param>
        /// <param name="starscount">Количество звезд</param>
        void generate_sphere_galaxy(int galaxysize, int starscount)
        {
            Double r;
            Double t = 0;;

            Random rand = new Random();

            for (int j = 0; j < starscount / 2; j++)
            {
                r  = 0;
                t += Math.PI * starscount / 2 + rand.NextDouble() * galaxysize;
                for (int i = 0; i < 2; i++)
                {
                    r = rand.Next(starscount);
                    StarSystem s = new StarSystem();

                    s.R          = r;
                    s.increment  = 100 * (galaxysize + 1);
                    s.timeOffset = t;

                    s.type = rand.Next(7);  //type impact on size and color
                    s.name = GenerateRandomStarName();
                    switch (s.type)
                    {
                    //O - Blue, t =30 000 — 60 000 K
                    case 0:
                        s.color = PlanetBrushes.BlueBrush;
                        break;

                    //B - Light blue, t = 10 500 — 30 000 K
                    case 1:
                        s.color = PlanetBrushes.LightBlueBrush;
                        break;

                    //A - White, t = 7500—10 000 K
                    case 2:
                        s.color = PlanetBrushes.WhiteBrush;
                        break;

                    //F - Light Yellow, t = 6000—7200 K
                    case 3:
                        s.color = PlanetBrushes.LightYellowBrush;
                        break;

                    //G - Yellow, t = 5500 — 6000 K
                    case 4:
                        s.color = PlanetBrushes.YellowBrush;
                        break;

                    //K - Orange, t = 4000 — 5250 K
                    case 5:
                        s.color = PlanetBrushes.OrangeBrush;
                        break;

                    //M - Red, t = 2600 — 3850 K
                    case 6:
                        s.color = PlanetBrushes.RedBrush;
                        break;
                    }
                    Planet.generatePlanets(s, Time);
                    stars.Add(s);
                }
            }
        }
Example #4
0
        public Fleet(Player player, int size, StarSystem s1)
        {
            ships     = new List <Ship>();
            onWay     = false;
            Capturing = false;
            Owner     = player;
            path      = new StarPath();

            int playerID = 1;

            if (player == null)
            {
                playerID = 2;
                name     = "Нейтральный флот";
                Random rand = new Random((int)DateTime.Now.Ticks);
                for (int i = 0; i < size; i++)
                {
                    int    ship_type   = rand.Next(0, 2);
                    int    weapon_type = rand.Next(0, 2);
                    int    armor_type  = rand.Next(0, 3);
                    Weapon weapon      = null;
                    Ship   ship        = null;
                    Armor  armor       = null;
                    switch (weapon_type)
                    {
                    case 0:
                        weapon = new WpnGauss();
                        break;

                    case 1:
                        weapon = new wpnLightLaser();
                        break;

                    case 2:
                        weapon = new WpnPlasma();
                        break;
                    }
                    switch (armor_type)
                    {
                    case 0:
                        armor = new ArmorNone();
                        break;

                    case 1:
                        armor = new ArmorTitan();
                        break;

                    case 2:
                        armor = new ArmorMolibden();
                        break;

                    case 3:
                        armor = new ArmorNanocom();
                        break;
                    }
                    switch (ship_type)
                    {
                    case 0:
                        ship = new ShipScout(playerID, weapon, armor);
                        break;

                    case 1:
                        ship = new ShipAssaulter(playerID, weapon, armor);
                        break;

                    case 2:
                        ship = new ShipСolonizer(playerID, new WpnNone(), armor);
                        break;
                    }
                    ship.player = playerID;
                    ships.Add(ship);
                }
            }
            else
            {
                name = "Флот <" + player.name + ">";
                Ship ship = new ShipСolonizer(playerID, new WpnNone(), new ArmorNone());
                ship.player = playerID;
                ships.Add(ship);
                for (int i = 1; i < size; i++)
                {
                    ship        = new ShipScout(playerID, new WpnNone(), new ArmorNone());
                    ship.player = playerID;
                    ships.Add(ship);
                }
            }
            this.s1 = s1;
            x       = s1.x;
            y       = s1.y;
            z       = s1.z;
        }