public static string Generate(bool noRareStars = false) { int dieRoll; if (!noRareStars) { dieRoll = DieRoll.Roll3D6(); if (dieRoll == 3) { return(StellarClassifications.O); } if (dieRoll == 4) { return(StellarClassifications.B); } } dieRoll = DieRoll.Roll2D6(); switch (dieRoll) { case 2: return(StellarClassifications.A); case 3: return(StellarClassifications.M); case 4: return(StellarClassifications.M); case 5: return(StellarClassifications.M); case 6: return(StellarClassifications.M); case 7: return(StellarClassifications.M); case 8: return(StellarClassifications.K); case 9: return(StellarClassifications.G); case 10: return(StellarClassifications.G); case 11: return(StellarClassifications.F); case 12: return(StellarClassifications.F); } throw new Exception("Invalid type"); }
public static string Generate(string stellarClassification, string primaryLuminosity = null) { /* Check for rare values */ int dieRoll; if (primaryLuminosity == null) { dieRoll = DieRoll.Roll3D6(); if (dieRoll == 3) { return(StellarLuminosities.Ia); } if (dieRoll == 4) { return(StellarLuminosities.Ib); } } dieRoll = DieRoll.Roll2D6() + GetModifier(primaryLuminosity); switch (dieRoll) { case 2: return(StellarLuminosities.II); case 3: return(StellarLuminosities.III); case 4: if (stellarClassification == StellarClassifications.M) { return(StellarLuminosities.V); } else { return(StellarLuminosities.IV); } case 5: return(StellarLuminosities.V); case 6: return(StellarLuminosities.V); case 7: return(StellarLuminosities.V); case 8: return(StellarLuminosities.V); case 9: return(StellarLuminosities.V); case 10: return(StellarLuminosities.V); case 11: return(StellarLuminosities.V); case 12: return(StellarLuminosities.V); case 13: return(StellarLuminosities.V); default: if (DieRoll.Roll1D6() < 4) { return(StellarLuminosities.V); } else { return(StellarLuminosities.D); } } throw new Exception("Unsupported Type"); }