/// <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); } }
/// <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); } }
/// <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); } } }
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; }