Ejemplo n.º 1
0
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }
            if (this.GetType() != obj.GetType())
            {
                return(false);
            }
            if (ReferenceEquals(this, obj))
            {
                return(true);
            }
            if (this.GetHashCode() != obj.GetHashCode())
            {
                return(false);
            }
            Persoana persoana = obj as Persoana;

            return(Nume.Equals(persoana.Nume) && Prenume.Equals(persoana.Prenume) &&
                   Email.Equals(persoana.Email) && Cetatenie.Equals(persoana.Cetatenie) &&
                   DataNastere.Equals(persoana.DataNastere) && NumarPasaport.Equals(persoana.NumarPasaport) &&
                   Telefon.Equals(persoana.Telefon) && CNP.Equals(persoana.CNP) &&
                   Sex.Equals(persoana.Sex));
        }
Ejemplo n.º 2
0
 public override void AddAge(int age)
 {
     base.AddAge(age);
     if (Age >= 10)
     {
         Sex = Sex.Equals(Sex.Male) ? Sex.Female : Sex.Male;
     }
 }
Ejemplo n.º 3
0
 public Bar(string name, Sex sex, int age)
     : base(name, sex, age)
 {
     if (Age >= 10)
     {
         Sex = Sex.Equals(Sex.Male) ? Sex.Female : Sex.Male;
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Determines whether the specified object is equal to the current object.
        /// </summary>
        /// <param name="obj"> The object to compare with the current object.</param>
        /// <returns></returns>
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }

            Student stud = obj as Student;

            if (stud == null)
            {
                return(false);
            }

            return(FirstName.Equals(stud.FirstName) && LastName.Equals(stud.LastName) &&
                   MiddleName.Equals(stud.MiddleName) && GroupID.Equals(stud.GroupID) &&
                   Sex.Equals(stud.Sex) && BirthDate.Equals(stud.BirthDate));
        }
Ejemplo n.º 5
0
        public async Task OnPostEdit([Bind("Id, Value")] Sex sex)
        {
            var oldSex = _context.Sexes.AsNoTracking().SingleOrDefault(s => s.Id == sex.Id);

            if (ModelState.IsValid)
            {
                if (!sex.Equals(oldSex) && !_context.Sexes.Any(s => s.Value == sex.Value && s.Id != sex.Id))
                {
                    oldSex = sex;
                    _context.Sexes.Update(oldSex);
                    await _context.SaveChangesAsync();
                }
                else
                {
                    ModelState.AddModelError("Value", "Дана стать не є унікальною");
                    ModelState["Value"].ValidationState = ModelValidationState.Invalid;
                }
            }
            Sexes = await _context.Sexes.ToListAsync();
        }
Ejemplo n.º 6
0
 public void ChangeSex()
 {
     Sex = Sex.Equals(Sex.Male) ? Sex.Female : Sex.Male;
 }
Ejemplo n.º 7
0
 public void CalculatePulsation()
 {
     Pulsation = (Sex.Equals("F") || Sex.Equals("f")) ? (220 - (decimal)Age) / 10: (210 - (decimal)Age) / 10;
 }
Ejemplo n.º 8
0
        private void GenerateClassic()
        {
            var dice = new Dice(6);

            if (Sex.Equals(Properties.Resources.Sex_Random))
            {
                Sex = CharacterGeneration.Species.ResolveRandom(CharacterSpecies);
            }

            switch (Culture)
            {
            case Constants.CultureType.Imperial:
                switch (CharacterSpecies)
                {
                case Species.Human_Imperial:
                    // use the standard UPP
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2);
                    Profile.Dex.Value = dice.roll(2);
                    Profile.End.Value = dice.roll(2);
                    Profile.Int.Value = dice.roll(2);
                    Profile.Edu.Value = dice.roll(2);
                    Profile.Soc.Value = dice.roll(2);
                    break;

                case Species.Bwap:
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2) - 4;
                    Profile.Dex.Value = dice.roll(2);
                    Profile.End.Value = dice.roll(2) - 4;
                    Profile.Int.Value = dice.roll(2);
                    Profile.Edu.Value = dice.roll(2);
                    Profile.Soc.Value = dice.roll(2);
                    break;

                case Species.Aslan:
                    Profile           = new AslanUPP();
                    Profile.Str.Value = dice.roll(2) + 1;
                    Profile.Dex.Value = dice.roll(2) - 1;
                    Profile.End.Value = dice.roll(2) + 1;
                    Profile.Int.Value = dice.roll(2);
                    Profile.Edu.Value = dice.roll(2);
                    Profile.Soc.Value = dice.roll(2);
                    // Imperial Aslan get some automatic skills
                    AddSkill(SkillLibrary.Tolerance);
                    if (Sex.Equals(Properties.Resources.Sex_Male))
                    {
                        AddSkill(SkillLibrary.Independance);
                    }
                    break;

                case Species.Vargr:
                    Profile              = new VargrUPP();
                    Profile.Str.Value    = dice.roll(2) - 1;
                    Profile.Dex.Value    = dice.roll(2) + 1;
                    Profile.End.Value    = dice.roll(2) - 1;
                    Profile.Int.Value    = dice.roll(2);
                    Profile.Edu.Value    = dice.roll(2);
                    Profile.Soc.Value    = dice.roll(2);
                    Profile["CHR"].Value = dice.roll();
                    break;

                case Species.AelYael:
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2) - 1;
                    Profile.Dex.Value = dice.roll(2);
                    Profile.End.Value = dice.roll(2);
                    Profile.Int.Value = dice.roll(2);
                    Profile.Edu.Value = dice.roll(2);
                    Profile.Soc.Value = dice.roll(2);
                    break;

                case Species.Virushi:
                    Profile           = new VirushiUPP();
                    Profile.Str.Value = dice.roll(2) + 10;
                    Profile.Dex.Value = dice.roll(2) + 2;
                    Profile.End.Value = dice.roll(2) + 10;
                    Profile.Int.Value = dice.roll(2);
                    Profile.Edu.Value = dice.roll(2);
                    Profile.Soc.Value = dice.roll(2) - 2;
                    break;

                case Species.Vegan:
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2);
                    Profile.Dex.Value = dice.roll(2) + 1;
                    Profile.End.Value = dice.roll(2);
                    Profile.Int.Value = dice.roll(2);
                    Profile.Edu.Value = dice.roll(2);
                    Profile.Soc.Value = dice.roll(2);
                    break;

                case Species.Dolphin:
                    Profile                = new DolphinUPP();
                    Profile.Int.Value      = dice.roll(2) - 2;
                    Profile["HitsU"].Value = dice.roll(6);
                    Profile["HitsD"].Value = dice.roll(3);
                    break;
                }
                break;

            case Constants.CultureType.Darrian:
                switch (CharacterSpecies)
                {
                case Species.Aslan:
                    Profile           = new AslanUPP();
                    Profile.Str.Value = dice.roll(2) + 1;
                    Profile.Dex.Value = dice.roll(2) - 1;
                    Profile.End.Value = dice.roll(2) + 1;
                    break;

                case Species.Human_Solomani:
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2);
                    Profile.Dex.Value = dice.roll(2);
                    Profile.End.Value = dice.roll(2);
                    break;

                case Species.Human_Darrian:
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll() + 3;
                    Profile.Dex.Value = dice.roll(2);
                    Profile.End.Value = dice.roll() + 3;
                    break;
                }
                Profile.Int.Value = dice.roll(2);
                Profile.Edu.Value = dice.roll(2);
                Profile.Soc.Value = dice.roll(2);
                break;

            case Constants.CultureType.Vargr:
                // Assume all are vargr
                Profile              = new VargrUPP();
                Profile.Str.Value    = dice.roll(2) - 1;
                Profile.Dex.Value    = dice.roll(2) + 1;
                Profile.End.Value    = dice.roll(2) - 1;
                Profile.Int.Value    = dice.roll(2);
                Profile.Edu.Value    = dice.roll(2);
                Profile["CHR"].Value = dice.roll();
                break;

            case Constants.CultureType.SwordWorlds:
                // Assume all are standard humans
                Profile           = new UPP();
                Profile.Str.Value = dice.roll(2);
                Profile.Dex.Value = dice.roll(2);
                Profile.End.Value = dice.roll(2);
                Profile.Int.Value = dice.roll(2);
                Profile.Edu.Value = dice.roll(2);
                Profile.Soc.Value = dice.roll(2);
                break;

            case Constants.CultureType.Dynchia:
                Profile = new UPP();
                switch (CharacterSpecies)
                {
                case Species.Human_Dynchia:
                    Profile.Str.Value = dice.roll() + 3;
                    Profile.Dex.Value = dice.roll(2) + 1;
                    Profile.End.Value = dice.roll(2) + 1;
                    break;

                case Species.Human_Solomani:
                    Profile.Str.Value = dice.roll(2);
                    Profile.Dex.Value = dice.roll(2);
                    Profile.End.Value = dice.roll(2);
                    break;
                }
                Profile.Int.Value = dice.roll(2);
                Profile.Edu.Value = dice.roll(2);
                Profile.Soc.Value = dice.roll(2);
                break;

            case Constants.CultureType.Zhodani:
                Profile              = new ZhodaniUPP();
                Profile.Str.Value    = dice.roll(2);
                Profile.Dex.Value    = dice.roll(2);
                Profile.End.Value    = dice.roll(2);
                Profile.Int.Value    = dice.roll(2);
                Profile.Edu.Value    = dice.roll(2);
                Profile.Soc.Value    = dice.roll(2);
                Profile["PSI"].Value = dice.roll(2);
                if (Profile["PSI"].Value >= 10 && Profile.Soc.Value < 10)
                {
                    Profile.Soc.Value = 10;
                }
                if (Profile.Edu.Value > Profile.Soc.Value)
                {
                    Profile.Edu.Value = Profile.Soc.Value;
                }
                if (Profile.Soc.Value >= 10 && Profile.Edu.Value < 8)
                {
                    Profile.Edu.Value = 8;
                }
                // TODO: Check this logic
                if (Profile.Str.Value + Profile.Dex.Value + Profile.End.Value + Profile.Int.Value < Profile["PSI"].Value)
                {
                    Profile["PSI"].Value = Profile.Str.Value + Profile.Dex.Value + Profile.End.Value + Profile.Int.Value;
                }
                break;

            case Constants.CultureType.Aslan:
                switch (CharacterSpecies)
                {
                case Species.Aslan:
                    Profile           = new AslanUPP();
                    Profile.Str.Value = dice.roll(2) + 1;
                    Profile.Dex.Value = dice.roll(2) - 1;
                    Profile.End.Value = dice.roll(2) + 1;
                    break;

                case Species.Human_Solomani:
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2);
                    Profile.Dex.Value = dice.roll(2);
                    Profile.End.Value = dice.roll(2);
                    break;
                }
                Profile.Int.Value = dice.roll(2);
                Profile.Edu.Value = dice.roll(2);
                Profile.Soc.Value = dice.roll(2);
                break;
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Returns true if SummaryAthlete instances are equal
        /// </summary>
        /// <param name="other">Instance of SummaryAthlete to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(SummaryAthlete other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     ResourceState == other.ResourceState ||
                     ResourceState != null &&
                     ResourceState.Equals(other.ResourceState)
                     ) &&
                 (
                     Firstname == other.Firstname ||
                     Firstname != null &&
                     Firstname.Equals(other.Firstname)
                 ) &&
                 (
                     Lastname == other.Lastname ||
                     Lastname != null &&
                     Lastname.Equals(other.Lastname)
                 ) &&
                 (
                     ProfileMedium == other.ProfileMedium ||
                     ProfileMedium != null &&
                     ProfileMedium.Equals(other.ProfileMedium)
                 ) &&
                 (
                     Profile == other.Profile ||
                     Profile != null &&
                     Profile.Equals(other.Profile)
                 ) &&
                 (
                     City == other.City ||
                     City != null &&
                     City.Equals(other.City)
                 ) &&
                 (
                     State == other.State ||
                     State != null &&
                     State.Equals(other.State)
                 ) &&
                 (
                     Country == other.Country ||
                     Country != null &&
                     Country.Equals(other.Country)
                 ) &&
                 (
                     Sex == other.Sex ||
                     Sex != null &&
                     Sex.Equals(other.Sex)
                 ) &&
                 (
                     Premium == other.Premium ||
                     Premium != null &&
                     Premium.Equals(other.Premium)
                 ) &&
                 (
                     Summit == other.Summit ||
                     Summit != null &&
                     Summit.Equals(other.Summit)
                 ) &&
                 (
                     CreatedAt == other.CreatedAt ||
                     CreatedAt != null &&
                     CreatedAt.Equals(other.CreatedAt)
                 ) &&
                 (
                     UpdatedAt == other.UpdatedAt ||
                     UpdatedAt != null &&
                     UpdatedAt.Equals(other.UpdatedAt)
                 ));
        }
Ejemplo n.º 10
0
        private void GenerateCepheus()
        {
            if (Sex.Equals(Properties.Resources.Sex_Random))
            {
                Sex = CharacterGeneration.Species.ResolveRandom(CharacterSpecies);
            }

            switch (Culture)
            {
            case Constants.CultureType.Cepheus_Generic:
                switch (CharacterSpecies)
                {
                case Species.Human:
                    // use the standard UPP
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2);
                    Profile.Dex.Value = dice.roll(2);
                    Profile.End.Value = dice.roll(2);
                    Profile.Int.Value = dice.roll(2);
                    Profile.Edu.Value = dice.roll(2);
                    Profile.Soc.Value = dice.roll(2);
                    break;

                case Species.Avian:
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(1);
                    Profile.Dex.Value = dice.roll(3);
                    Profile.End.Value = dice.roll(1);
                    Profile.Int.Value = dice.roll(2);
                    Profile.Edu.Value = dice.roll(2);
                    Profile.Soc.Value = dice.roll(2);
                    Traits.Add(Resources.Trait_Flyer);
                    Traits.Add(Resources.Trait_LowGravityAdaptation);
                    Traits.Add(Resources.Trait_NaturalPilot);
                    Traits.Add(Resources.Trait_SlowSpeed);
                    Traits.Add(Resources.Trait_Small);
                    break;

                case Species.Insectans:
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2) + 2;
                    Profile.Dex.Value = dice.roll(2);
                    Profile.End.Value = dice.roll(2);
                    Profile.Int.Value = dice.roll(2);
                    Profile.Edu.Value = dice.roll(2);
                    Profile.Soc.Value = dice.roll(2);
                    Traits.Add(Resources.Trait_Armoured);
                    Traits.Add(Resources.Trait_BadFirstImpression);
                    Traits.Add(Resources.Trait_Caste);
                    Traits.Add(Resources.Trait_ColdBlooded);
                    Traits.Add(Resources.Trait_FastSpeed);
                    Traits.Add(Resources.Trait_GreatLeaper);
                    Traits.Add(Resources.Trait_HiveMentaility);
                    break;

                case Species.Merfolk:
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2);
                    Profile.Dex.Value = dice.roll(2);
                    Profile.End.Value = dice.roll(2);
                    Profile.Int.Value = dice.roll(2);
                    Profile.Edu.Value = dice.roll(2);
                    Profile.Soc.Value = dice.roll(2);
                    Traits.Add(Resources.Trait_Amphibious);
                    Traits.Add(Resources.Trait_Aquatic);
                    Traits.Add(Resources.Trait_NaturalSwimmer);
                    Traits.Add(Resources.Trait_WaterDependant);
                    break;

                case Species.Reptilians:
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2) + 1;
                    Profile.Dex.Value = dice.roll(2) + 1;
                    Profile.End.Value = dice.roll(2) - 2;
                    Profile.Int.Value = dice.roll(2);
                    Profile.Edu.Value = dice.roll(2);
                    Profile.Soc.Value = dice.roll(2);
                    Traits.Add(Resources.Trait_AntiPsionic);
                    Traits.Add(Resources.Trait_FastSpeed);
                    Traits.Add(Resources.Trait_HeatEndurance);
                    Traits.Add(Resources.Trait_LowLightVision);
                    Traits.Add(Resources.Trait_NaturalWeapons);
                    Traits.Add(Resources.Trait_LowGravityAdaptation);
                    break;

                case Species.Dolphin:
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2) + 4;
                    Profile.Dex.Value = dice.roll(2);
                    Profile.End.Value = dice.roll(2) + 2;
                    Profile.Int.Value = dice.roll(2) - 2;
                    Profile.Edu.Value = dice.roll(2) - 2;
                    Profile.Soc.Value = dice.roll(2) - 2;
                    Traits.Add(Resources.Trait_Aquatic);
                    Traits.Add(Resources.Trait_NoFineManipulators);
                    Traits.Add(Resources.Trait_Uplifited);
                    break;

                case Species.Uplifted_Ape:
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2) + 2;
                    Profile.Dex.Value = dice.roll(2) - 2;
                    Profile.End.Value = dice.roll(2) + 2;
                    Profile.Int.Value = dice.roll(2) - 2;
                    Profile.Edu.Value = dice.roll(2) - 2;
                    Profile.Soc.Value = dice.roll(2) - 2;
                    Traits.Add(Resources.Trait_Uplifited);
                    break;
                }
                ResolveRandomBackgroundSkills();
                break;

            case Constants.CultureType.Cepheus_Hostile:
                switch (CharacterSpecies)
                {
                case Species.Human:
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2);
                    Profile.Dex.Value = dice.roll(2);
                    Profile.End.Value = dice.roll(2);
                    Profile.Int.Value = dice.roll(2);
                    Profile.Edu.Value = dice.roll(2);
                    Profile.Soc.Value = dice.roll(2);
                    ResolveRandomBackgroundSkills();
                    break;

                case Species.Android:
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(1) + 5;
                    Profile.Dex.Value = dice.roll(1) + 3;
                    Profile.End.Value = dice.roll(1) + 8;
                    Profile.Int.Value = d3.roll(1) + 5;
                    Profile.Edu.Value = d3.roll(1) + 9;
                    Profile.Soc.Value = 7;
                    break;
                }
                break;

            case Constants.CultureType.Cepheus_Bughunters:
                switch (CharacterSpecies)
                {
                case Species.Human:
                    // use the standard UPP
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2);
                    Profile.Dex.Value = dice.roll(2);
                    Profile.End.Value = dice.roll(2);
                    Profile.Int.Value = dice.roll(2);
                    Profile.Edu.Value = dice.roll(2);
                    Profile.Soc.Value = dice.roll(2);
                    break;

                case Species.Synner:
                    // use the standard UPP
                    Profile           = new UPP();
                    Profile.Str.Value = (dice.roll(2) + 1).Clamp(9, 15);
                    Profile.Dex.Value = (dice.roll(2) + 1).Clamp(9, 15);
                    Profile.End.Value = (dice.roll(2) + 1).Clamp(9, 15);
                    Profile.Int.Value = (dice.roll(2) + 1).Clamp(7, 15);
                    Profile.Edu.Value = dice.roll(2).Clamp(7, 15);
                    Profile.Soc.Value = dice.roll(2) - 2;
                    Traits.Add(Resources.Trait_IsslerImmunity);
                    Traits.Add(Resources.Trait_Engineered);
                    break;

                case Species.Tazzim:
                    // use the standard UPP
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2) - 1;
                    Profile.Dex.Value = dice.roll(2) + 1;
                    Profile.End.Value = dice.roll(2) - 1;
                    Profile.Int.Value = dice.roll(2) + 1;
                    Profile.Edu.Value = dice.roll(2);
                    Profile.Soc.Value = dice.roll(2);
                    Traits.Add(Resources.Trait_IsslerImmunity);
                    break;

                case Species.Quarm:
                    // use the standard UPP
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2) + 1;
                    Profile.Dex.Value = dice.roll(2) - 1;
                    Profile.End.Value = dice.roll(2) + 1;
                    Profile.Int.Value = dice.roll(2);
                    Profile.Edu.Value = dice.roll(2) - 2;
                    Profile.Soc.Value = dice.roll(2);
                    Traits.Add(Resources.Trait_IsslerImmunity);
                    break;

                case Species.Wraither:
                    // use the standard UPP
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2) - 1;
                    Profile.Dex.Value = dice.roll(2);
                    Profile.End.Value = dice.roll(2);
                    Profile.Int.Value = dice.roll(2) + 2;
                    Profile.Edu.Value = dice.roll(2);
                    Profile.Soc.Value = dice.roll(2);
                    Traits.Add(Resources.Trait_IsslerImmunity);
                    Traits.Add(Resources.Trait_TotalPacifist);
                    break;

                case Species.Shaper:
                    // use the Esper UPP
                    Profile              = new EsperUPP();
                    Profile.Str.Value    = dice.roll(2) - 1;
                    Profile.Dex.Value    = dice.roll(2) + 1;
                    Profile.End.Value    = dice.roll(2);
                    Profile.Int.Value    = dice.roll(2) + 1;
                    Profile.Edu.Value    = dice.roll(2);
                    Profile.Soc.Value    = dice.roll(2);
                    Profile["PSI"].Value = dice.roll(2);
                    Traits.Add(Resources.Trait_IsslerImmunity);
                    break;

                case Species.Articifer:
                    // use the standard UPP
                    Profile           = new UPP();
                    Profile.Str.Value = dice.roll(2) - 1;
                    Profile.Dex.Value = dice.roll(2) + 1;
                    Profile.End.Value = dice.roll(2) + 1;
                    Profile.Int.Value = dice.roll(2) + 1;
                    Profile.Edu.Value = dice.roll(2);
                    Profile.Soc.Value = dice.roll(2);
                    Traits.Add(Resources.Trait_IsslerImmunity);
                    break;
                }
                ResolveRandomBackgroundSkills();
                break;

            case Constants.CultureType.Cepheus_TerranCommonwealth:
            case Constants.CultureType.Cepheus_Covenant:
            case Constants.CultureType.Cepheus_Lucerne:
            case Constants.CultureType.Cepheus_Khiff:
            case Constants.CultureType.Cepheus_Shanthaa:
            case Constants.CultureType.Cepheus_Froog:
                switch (CharacterSpecies)
                {
                case Species.Commonwealth_Human:
                    Profile              = new EsperUPP();
                    Profile.Str.Value    = dice.roll(2);
                    Profile.Dex.Value    = dice.roll(2);
                    Profile.End.Value    = dice.roll(2);
                    Profile.Int.Value    = dice.roll(2);
                    Profile.Edu.Value    = dice.roll(2);
                    Profile.Soc.Value    = dice.roll(2);
                    Profile["PSI"].Value = dice.roll();
                    break;

                case Species.Shanthaa:
                    Profile              = new EsperUPP();
                    Profile.Str.Value    = (dice.roll(2) - 2).Clamp(1, 10);
                    Profile.Dex.Value    = dice.roll(2) + 2;
                    Profile.End.Value    = (dice.roll(2) - 2).Clamp(1, 10);
                    Profile.Int.Value    = dice.roll(2);
                    Profile.Edu.Value    = dice.roll(2);
                    Profile.Soc.Value    = dice.roll(2);
                    Profile["PSI"].Value = dice.roll();
                    Traits.Add(Resources.Trait_NaturalWeapons);
                    AddSkill(SkillLibrary.NaturalWeapons);
                    break;

                case Species.Khiff:
                    Profile              = new EsperUPP();
                    Profile.Str.Value    = dice.roll(2);
                    Profile.Dex.Value    = dice.roll(2);
                    Profile.End.Value    = dice.roll(2);
                    Profile.Int.Value    = dice.roll(2);
                    Profile.Edu.Value    = dice.roll();
                    Profile.Soc.Value    = dice.roll(2);
                    Profile["PSI"].Value = dice.roll();
                    Traits.Add(Resources.Trait_Feral);
                    Traits.Add(Resources.Trait_NaturalWeapons);
                    AddSkill(SkillLibrary.NaturalWeapons);
                    break;

                case Species.Froog:
                    Profile = new EsperUPP();
                    if (Sex.Equals(Commonwealth.Resources.Sex_Leader))
                    {
                        Profile.Str.Value = dice.roll(2) + 1;
                        Profile.Dex.Value = dice.roll(2) - 1;
                        Profile.End.Value = dice.roll(2) - 1;
                        Profile.Int.Value = dice.roll(2) + 1;
                        Profile.Edu.Value = dice.roll(2) + 1;
                        Profile.Soc.Value = dice.roll(2) + 1;
                    }
                    else if (Sex.Equals(Commonwealth.Resources.Sex_Warrior))
                    {
                        Profile.Str.Value = dice.roll(2) + 1;
                        Profile.Dex.Value = dice.roll(2) + 1;
                        Profile.End.Value = dice.roll(2) + 1;
                        Profile.Int.Value = dice.roll(2) - 1;
                        Profile.Edu.Value = dice.roll(2) - 1;
                        Profile.Soc.Value = dice.roll(2) - 1;
                    }
                    else         // Tech
                    {
                        Profile.Str.Value = dice.roll(2) - 1;
                        Profile.Dex.Value = dice.roll(2) + 1;
                        Profile.End.Value = dice.roll(2) - 1;
                        Profile.Int.Value = dice.roll(2) + 1;
                        Profile.Edu.Value = dice.roll(2) + 1;
                        Profile.Soc.Value = dice.roll(2) - 1;
                    }
                    Profile["PSI"].Value = dice.roll();
                    break;
                }
                ResolveRandomBackgroundSkills();
                break;
            }
        }