コード例 #1
0
        public virtual bool TestIsEarthLike(Temperature surfaceTemperature,
                                            Ratio waterCoverFraction,
                                            Ratio cloudCoverFraction,
                                            Ratio iceCoverFraction,
                                            Pressure surfacePressure,
                                            Acceleration surfaceGravityG,
                                            Breathability breathability,
                                            BodyType planetType)
        {
            double relTemp = surfaceTemperature.Kelvins - GlobalConstants.FREEZING_POINT_OF_WATER -
                             GlobalConstants.EARTH_AVERAGE_CELSIUS;
            double seas     = waterCoverFraction.Value * 100.0;
            double clouds   = cloudCoverFraction.Value * 100.0;
            double pressure = surfacePressure.Millibars / GlobalConstants.EARTH_SURF_PRES_IN_MILLIBARS;
            double ice      = iceCoverFraction.Value * 100.0;

            return
                (surfaceGravityG.StandardGravity >= .8 &&
                 surfaceGravityG.StandardGravity <= 1.2 &&
                 relTemp >= -2.0 &&
                 relTemp <= 3.0 &&
                 ice <= 10.0 &&
                 pressure >= 0.5 &&
                 pressure <= 2.0 &&
                 clouds >= 40.0 &&
                 clouds <= 80.0 &&
                 seas >= 50.0 &&
                 seas <= 80.0 &&
                 planetType != BodyType.Water &&
                 breathability == Breathability.Breathable);
        }
コード例 #2
0
 public virtual bool TestIsHabitable(Duration dayLength,
                                     Duration orbitalPeriod,
                                     Breathability breathability,
                                     bool hasResonantPeriod,
                                     bool isTidallyLocked)
 {
     return(breathability == Breathability.Breathable &&
            !hasResonantPeriod &&
            !isTidallyLocked);
 }