Пример #1
0
        public static NewGameData GenerateNewGameData(IPersonService personService, ICompanyService companyService, int minNumberOfCompanies)
        {
            var skills = new Dictionary<byte, decimal>();

            var mandatorySkillDefinitions = new List<SkillDefinition>();

            var optionalSkillDefinitions = new List<SkillDefinition>();

            try
            {
                SkillDefinition sd = null;

                byte skillDefinitionIndex = 1;

                while ((sd = personService.GetSkillDefinition(skillDefinitionIndex++)) != null)
                {
                    if (sd.IsMandatory)
                    {
                        mandatorySkillDefinitions.Add(sd);
                    }
                    else
                    {
                        optionalSkillDefinitions.Add(sd);
                    }
                }

            }
            #pragma warning disable
            catch
            #pragma warning restore
            {
            }

            foreach (var mandatorySkillDefinition in mandatorySkillDefinitions)
            {
                skills.Add(mandatorySkillDefinition.Id, Utilities.GetRanged(mandatorySkillDefinition.Value));
            }

            var count = Utilities.GetRandomInt(1, optionalSkillDefinitions.Count());

            IEnumerable<SkillDefinition> remainingDefinitions = optionalSkillDefinitions;

            for (var index = 0; index < count; index++)
            {
                var definition = remainingDefinitions.Random();

                remainingDefinitions = remainingDefinitions.Where(rd => rd != definition);

                skills.Add(definition.Id, Utilities.GetRanged(definition.Value));
            }

            return new NewGameData
            {
                CompanyName = Utilities.GetRandomString(),
                Founder = new CreatePersonData(skills)
                {
                    FirstName = Utilities.GetRandomString(),
                    LastName = Utilities.GetRandomString(),
                    Birthday = Utilities.GetRandomDate(),
                    Gender = Utilities.GetRandomValue<Gender>(),
                    PersonalityId = 1
                },
                GameName = Utilities.GetRandomString(32),
                IndustryId = companyService.Industries.Random().Id,
                InitialFunds = Utilities.GetRandomDecimal(1500, 2000),
                NumberOfCompanies = Utilities.GetRandomInt(minNumberOfCompanies, minNumberOfCompanies + 5),
                StartDate = DateTime.Today,
                TurnStep = Utilities.GetRandomValue<TurnStepType>()
            };
        }