/// <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); }
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); } }
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); }