Exemple #1
0
        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");
        }