コード例 #1
0
ファイル: PlanetFactory.cs プロジェクト: vind113/4X
        public static HabitablePlanet GetHabitablePlanet(string name, PlanetType planetType)
        {
            string planetName = name;
            double radius     = RockyPlanetRadiusGeneration();

            return(new HabitablePlanet(planetName, radius, planetType, 0));
        }
コード例 #2
0
ファイル: Planet.cs プロジェクト: vind113/4X
        /// <summary>
        /// Инициализирует экземпляр класса планеты
        /// </summary>
        /// <param name="name">
        ///     Имя планеты
        /// </param>
        /// <param name="radius">
        ///     Радуис планеты
        /// </param>
        /// <param name="type">
        ///     Тип планеты
        /// </param>
        /// <param name="population">
        ///     Изначальное население планеты
        /// </param>
        public Planet(string name, double radius, PlanetType type) : base(name, radius)
        {
            if (radius < 2000)
            {
                throw new ArgumentOutOfRangeException(nameof(radius), "Cannot be lower than 2000");
            }

            this.Type         = type;
            this.BodyResource = new PlanetResourceGenerator().GenerateFor(this);
        }
コード例 #3
0
ファイル: PlanetFactory.cs プロジェクト: vind113/4X
        /// <summary>
        ///     Генерирует планету с заданым именем и типом
        /// </summary>
        /// <param name="name">
        ///     Имя планеты
        /// </param>
        /// <param name="planetType">
        ///     Тип планеты(пустынная, океаническая, газовый гигант и т.д)
        /// </param>
        /// <returns></returns>
        public static Planet GetPlanet(string name, PlanetType planetType)
        {
            string planetName = name;
            double radius     = 0;

            if (planetType.SubstancesClass == SubstancesClass.Jupiter)
            {
                radius = GasGiantRadiusGeneration();
            }
            else
            {
                radius = RockyPlanetRadiusGeneration();
            }

            return(new Planet(planetName, radius, planetType));
        }
コード例 #4
0
ファイル: StarSystemFactory.cs プロジェクト: vind113/4X
        /// <summary>
        /// Генерирует одну обитаемую планету
        /// </summary>
        /// <param name="systemName">
        /// Имя звездной системы, в которой находятся генерируемые планеты
        /// </param>
        private static HabitablePlanet GetHabitablePlanet(string planetName, int planetCount, LuminosityClass mainStarClass)
        {
            int probabilityIndex = HelperRandomFunctions.GetRandomInt(1, maxPercents + 1);

            PlanetType planetType;

            if (probabilityIndex >= 80)
            {
                planetType = new PlanetType(TemperatureClass.Temperate, VolatilesClass.Marine, SubstancesClass.Terra);
            }
            else if (probabilityIndex >= 60)
            {
                planetType = new PlanetType(TemperatureClass.Cool, VolatilesClass.Marine, SubstancesClass.Terra);
            }
            else
            {
                planetType = new PlanetType(TemperatureClass.Cool, VolatilesClass.Desertic, SubstancesClass.Terra);
            }

            return(PlanetFactory.GetHabitablePlanet(planetName, planetType));
        }