private Rectangle GetSystemViewStarType(Types.StarType type) { Rectangle sourceRect; switch (type) { case Types.StarType.ClassO: case Types.StarType.ClassB: case Types.StarType.ClassA: sourceRect = galaxyIcons.getIconRectangle(1, 3); //MAGIC NUMBERS break; case Types.StarType.ClassF: case Types.StarType.ClassG: sourceRect = galaxyIcons.getIconRectangle(0, 3); break; case Types.StarType.ClassK: case Types.StarType.ClassM: sourceRect = galaxyIcons.getIconRectangle(2, 3); break; default: sourceRect = galaxyIcons.getIconRectangle(0, 3); break; } return(sourceRect); }
public StarSystem(string color, float mass, float size, float lum, int numPlanets, string name, Types.StarType type, int x, int y) { //Used for randomly generated stars starColor = color; solarMass = mass; solarSize = size; solarLum = lum; numberOfPlanets = numPlanets; starName = name; starType = type; galacticX = x; galacticY = y; selected = false; }
public static StarSystem GenerateSystem(int width, int height) { //Get type of star int maxNum = Enum.GetNames(typeof(Types.StarType)).Length; int starTypeNum = Randomizer.GetRandomNumber(0, maxNum - 1); Types.StarType starType = (Types.StarType)starTypeNum; string starColor = "yellow"; float solarMass = 1.0F; float solarSize = 1.0F; float solarLum = 1.0F; int numPlanets = 0; string starName = "G"; //Create randomized characteristics based on star type switch (starType) { case Types.StarType.ClassO: starName = "O"; starColor = "blue"; solarMass = (float)Randomizer.GetRandomNumber(16, 50); solarSize = ((float)Randomizer.GetRandomNumber(66, 100)) / 10; solarLum = (float)Randomizer.GetRandomNumber(30000, 50000); break; case Types.StarType.ClassB: starName = "B"; starColor = "blue-white"; solarMass = ((float)Randomizer.GetRandomNumber(21, 160)) / 10; solarSize = ((float)Randomizer.GetRandomNumber(18, 66)) / 10; solarLum = (float)Randomizer.GetRandomNumber(25, 30000); break; case Types.StarType.ClassA: starName = "A"; starColor = "white"; solarMass = ((float)Randomizer.GetRandomNumber(140, 210)) / 100; solarSize = ((float)Randomizer.GetRandomNumber(140, 180)) / 100; solarLum = ((float)Randomizer.GetRandomNumber(50, 250)) / 10; break; case Types.StarType.ClassF: starName = "F"; starColor = "yellow-white"; solarMass = ((float)Randomizer.GetRandomNumber(104, 140)) / 100; solarSize = ((float)Randomizer.GetRandomNumber(115, 140)) / 100; solarLum = ((float)Randomizer.GetRandomNumber(150, 500)) / 100; break; case Types.StarType.ClassG: starName = "G"; starColor = "yellow"; solarMass = ((float)Randomizer.GetRandomNumber(80, 104)) / 100; solarSize = ((float)Randomizer.GetRandomNumber(96, 115)) / 100; solarLum = ((float)Randomizer.GetRandomNumber(60, 150)) / 100; break; case Types.StarType.ClassK: starName = "K"; starColor = "orange"; solarMass = ((float)Randomizer.GetRandomNumber(45, 80)) / 100; solarSize = ((float)Randomizer.GetRandomNumber(70, 96)) / 100; solarLum = ((float)Randomizer.GetRandomNumber(8, 60)) / 100; break; case Types.StarType.ClassM: starName = "M"; starColor = "red"; solarMass = ((float)Randomizer.GetRandomNumber(8, 45)) / 100; solarSize = ((float)Randomizer.GetRandomNumber(1, 70)) / 100; solarLum = ((float)Randomizer.GetRandomNumber(1, 8)) / 100; break; } //Create randomized name int classNumber = Randomizer.GetRandomNumber(0, 9); int randomNumber = Randomizer.GetRandomNumber(1, 99); int greekLetter = Randomizer.GetRandomNumber(0, Types.GreekLetters.Length); starName = Types.GreekLetters[greekLetter] + " " + randomNumber.ToString() + "-" + starName + classNumber.ToString(); //Create planets numPlanets = Randomizer.GetRandomNumber(0, 7); //Set coordinates int x = Randomizer.GetRandomNumber(0, width); int y = Randomizer.GetRandomNumber(0, height); StarSystem newSystem = new StarSystem(starColor, solarMass, solarSize, solarLum, numPlanets, starName, starType, x, y); List <Planet> listOfPlanets = GeneratePlanets(newSystem, numPlanets); newSystem.PopulatePlanets(listOfPlanets); newSystem.PrimaryRingPlanet = ChoosePrimaryRingPlanet(listOfPlanets); newSystem.Searched = false; int discovered = Randomizer.GetRandomNumber(0, 2); if (discovered == 0) { newSystem.Discovered = false; } else { newSystem.Discovered = true; } return(newSystem); }