Ejemplo n.º 1
0
        public static SentientSpecies Generate(Dice die)
        {
            SentientSpecies sentient = new SentientSpecies();

            sentient.TechLevel = GenerateCivilizationTechLevel(die);

            #region Generate Species Physiology
            int maxNumberOfAnimalClassifications = GenerateMaxNumberOfAnimalClassifications(die);
            while (true)
            {
                if (sentient.Classifications.Count >= maxNumberOfAnimalClassifications)
                {
                    break;
                }
                AnimalClassification classification = GenerateAnimalClassification(die);

                bool acceptableClassification = true;
                foreach (var c in sentient.Classifications)
                {
                    if (classification == c)
                    {
                        acceptableClassification = false; break;
                    }
                }

                if (acceptableClassification)
                {
                    sentient.Classifications.Add(classification);
                    if (die.Roll(1, 20) < 10)
                    {
                        break;
                    }
                }
            }
            #endregion

            #region Generate Civilization Traits
            while (true)
            {
                if (sentient.Traits.Count >= 3)
                {
                    break;
                }
                CivilizationTraits trait = GenerateCivilizationTrait(die);

                bool acceptableTrait = true;
                if (sentient.Traits.Count == 0)
                {
                }
                else
                {
                    foreach (var t in sentient.Traits)
                    {
                        if (trait == t)
                        {
                            acceptableTrait = false; break;
                        }
                        else if ((trait == CivilizationTraits.Imperialist && t == CivilizationTraits.PeaceKeepers) ||
                                 (trait == CivilizationTraits.PeaceKeepers && t == CivilizationTraits.Imperialist))
                        {
                            acceptableTrait = false; break;
                        }

                        else if ((trait == CivilizationTraits.Communist && t == CivilizationTraits.Capitalist) ||
                                 (trait == CivilizationTraits.Capitalist && t == CivilizationTraits.Communist))
                        {
                            acceptableTrait = false; break;
                        }
                    }
                }

                if (acceptableTrait)
                {
                    sentient.Traits.Add(trait);
                }
            }
            #endregion

            return(sentient);
        }
Ejemplo n.º 2
0
 public AnimalClass GetAnimalClass(AnimalClassification animalClass)
 {
     return(_context.AnimalClasses.FirstOrDefault(v => v.AnimalClassification == animalClass));
 }