public static Simulant Conceive(Simulant simulant, Simulant partner, Population population)
        {
            float chance = 0.82f;

            if (simulant.Gender == partner.Gender)
            {
                return(null);
            }

            if (simulant.LifeStage < LifeStages.Teen ||
                partner.LifeStage < LifeStages.Teen)
            {
                return(null);
            }

            if (simulant.LifeStage > LifeStages.OldAdult ||
                partner.LifeStage > LifeStages.OldAdult)
            {
                return(null);
            }

            if (simulant.ParentFemale == partner.ParentFemale ||
                simulant.ParentMale == partner.ParentMale)
            {
                chance = 0.13f;
            }

            if (simulant.ParentFemale == partner.ParentFemale &&
                simulant.ParentMale == partner.ParentMale)
            {
                chance = 0.02f;
            }

            return(Generators.Random.NextDouble() < chance ?
                   (simulant.Gender == Genders.Female       ?
                    new Simulant(simulant, partner, population)      :
                    new Simulant(partner, simulant, population))     :
                   null);
        }
 public static void     AfterKill(Simulant simulant)
 {
     simulant.AlertnessLevel = 0;
     simulant.AwakenessLevel = 0;
 }
 public static void     Kill(Simulant simulant)
 {
     simulant.TimeOfDeath = Simulator.Time;
     AfterKill(simulant);
 }