Example #1
0
        /// <summary>
        /// Default constructor that requires a path to be passed in
        /// </summary>
        /// <param name="path"></param>
        public Creation(string path)
        {
            _universePath = path;
            ShipData      = LoadData <ShipData>(@"Data/shipData.json");
            _worldInfo    = LoadData <WorldInfo>(@"Data/worldTags.json");
            _starData     = LoadData <StarData>(@"Data/starData.json");
            _charData     = LoadData <CharData>(@"Data/characterData.json");
            PoiData       = LoadData <PoiData>(@"Data/pointsOfInterest.json");
            ProblemData   = LoadData <ProblemData>(@"Data/problemData.json");
            // SocietyData = LoadData<SocietyData>(@"Data/societyData.json");
            SocietyData = null;
            AlienData   = LoadData <AlienData>(@"Data/alienData.json");

            MaleFirstNameGeneration = new NameGeneration();
            MaleFirstNameGeneration.GenerateChain(_charData.MaleName);

            FemaleFirstNameGeneration = new NameGeneration();
            FemaleFirstNameGeneration.GenerateChain(_charData.FemaleName);

            StarNameGeneration = new NameGeneration();
            StarNameGeneration.GenerateChain(_starData.Stars);

            PlanetNameGeneration = new NameGeneration();
            PlanetNameGeneration.GenerateChain(_starData.Planets);

            // LastNameGeneration = new NameGeneration();
            // LastNameGeneration.GenerateChain(CharData.LastName);

            CharacterNameGenerations.Add(MaleFirstNameGeneration);
            CharacterNameGenerations.Add(FemaleFirstNameGeneration);
            // CharacterNameGenerations.Add(LastNameGeneration);
        }
Example #2
0
        public async Task OnGetAsync(int?id, int?teamID)
        {
            AlienD        = new AlienData();
            AlienD.Aliens = await _context.Alien.Include(b => b.Planet)
                            .Include(b => b.AlienTeams)
                            .ThenInclude(b => b.Team)
                            .AsNoTracking()
                            .ToListAsync();

            if (id != null)
            {
                AlienID = id.Value;
                Alien alien = AlienD.Aliens
                              .Where(i => i.ID == id.Value).Single();
                AlienD.Teams = alien.AlienTeams.Select(s => s.Team);
            }
        }
Example #3
0
        public Universe AddAliens(Universe universe, AlienDefaultSettings alienDefaultSettings, AlienData alienData)
        {
            // If no Characters have been created on the Universe then give it an empty list of them.
            universe.Aliens ??= new List <Alien>();

            var count = alienDefaultSettings.Count < 0
                ? Rand.Next(0, universe.Planets.Count)
                : alienDefaultSettings.Count;

            var bCount = alienDefaultSettings.BodyTraitCount < 0
                ? -1
                : alienDefaultSettings.BodyTraitCount;

            //Generate an Alien
            var aCount = 0;

            while (aCount < count)
            {
                var alien = new Alien();

                IdGen.GenerateId(alien);

                if (universe.Aliens.Exists(a => a.Id == alien.Id))
                {
                    continue;
                }

                alien.BodyTraits = new List <string>();

                // Alien Body Traits
                if (bCount > 0)
                {
                    var bCounter = 0;

                    while (bCounter < bCount)
                    {
                        var trait = alienData.BodyTraits[Rand.Next(0, alienData.BodyTraits.Count)];
                        if (!alien.BodyTraits.Contains(trait))
                        {
                            alien.BodyTraits.Add(trait);
                        }
                        else
                        {
                            continue;
                        }

                        bCounter++;
                    }
                }
                else // If there were no traits passed in, pick random
                {
                    while (true)
                    {
                        var trait = alienData.BodyTraits[Rand.Next(0, alienData.BodyTraits.Count)];
                        if (!alien.BodyTraits.Contains(trait))
                        {
                            alien.BodyTraits.Add(trait);
                        }
                        else
                        {
                            continue;
                        }

                        if (Rand.Next(0, 6) == 0)
                        {
                            continue;
                        }
                        break;
                    }
                }

                alien.Lenses = new List <string>();
                // Alien Lenses
                if (alienDefaultSettings.Lenses == null || alienDefaultSettings.Lenses.Count == 0)
                {
                    var lCount   = Rand.Next(0, 2) + 1;
                    var lCounter = 0;

                    while (lCounter < lCount)
                    {
                        var lens = alienData.Lenses[Rand.Next(0, alienData.Lenses.Count)].Type;
                        if (!alien.Lenses.Contains(lens))
                        {
                            alien.Lenses.Add(lens);
                        }
                        else
                        {
                            continue;
                        }

                        lCounter++;
                    }
                }
                else
                {
                    alien.Lenses = alienDefaultSettings.Lenses;
                }

                alien.SocialStructures = new List <string>();
                // Alien Social Structure
                if (Rand.Next(0, 2) == 0)
                {
                    alien.SocialStructures.Add(alienData
                                               .SocialStructures[Rand.Next(0, alienData.SocialStructures.Count)].Type);
                }
                else
                {
                    var sCounter = 0;
                    var sCount   = Rand.Next(0, 3) + 1;
                    alien.MultiPolarType = Rand.Next(0, 2) == 0 ? "Cooperative" : "Competitive";
                    while (sCounter < sCount)
                    {
                        var type = alienData.SocialStructures[Rand.Next(0, alienData.SocialStructures.Count)].Type;
                        if (!alien.SocialStructures.Contains(type))
                        {
                            alien.SocialStructures.Add(type);
                        }
                        else
                        {
                            continue;
                        }

                        sCounter++;
                    }
                }

                universe.Aliens.Add(alien);

                aCount++;
            }

            universe.Aliens = universe.Aliens.OrderBy(a => a.Id).ToList();

            return(universe);
        }