Beispiel #1
0
        private static float MinPossibleAgeGapAtMinAgeToGenerateAsLovers(Pawn p1, Pawn p2)
        {
            float num = (float)(p1.ageTracker.AgeChronologicalYearsFloat - 14.0);

            if (num < 0.0)
            {
                Log.Warning("at < 0");
                return(0f);
            }
            float num2 = PawnRelationUtility.MaxPossibleBioAgeAt(p2.ageTracker.AgeBiologicalYearsFloat, p2.ageTracker.AgeChronologicalYearsFloat, num);
            float num3 = PawnRelationUtility.MinPossibleBioAgeAt(p2.ageTracker.AgeBiologicalYearsFloat, num);

            if (num2 < 0.0)
            {
                return(-1f);
            }
            if (num2 < 14.0)
            {
                return(-1f);
            }
            if (num3 <= 14.0)
            {
                return(0f);
            }
            return((float)(num3 - 14.0));
        }
        private static float GetParentAgeFactor(Pawn parent, Pawn child, float minAgeToHaveChildren, float usualAgeToHaveChildren, float maxAgeToHaveChildren)
        {
            float num  = PawnRelationUtility.MaxPossibleBioAgeAt(parent.ageTracker.AgeBiologicalYearsFloat, parent.ageTracker.AgeChronologicalYearsFloat, child.ageTracker.AgeChronologicalYearsFloat);
            float num2 = PawnRelationUtility.MinPossibleBioAgeAt(parent.ageTracker.AgeBiologicalYearsFloat, child.ageTracker.AgeChronologicalYearsFloat);

            if (num <= 0f)
            {
                return(0f);
            }
            if (num2 > num)
            {
                if (num2 > num + 0.1f)
                {
                    Log.Warning(string.Concat(new object[]
                    {
                        "Min possible bio age (",
                        num2,
                        ") is greater than max possible bio age (",
                        num,
                        ")."
                    }), false);
                }
                return(0f);
            }
            if (num2 <= usualAgeToHaveChildren && num >= usualAgeToHaveChildren)
            {
                return(1f);
            }
            float ageFactor  = ChildRelationUtility.GetAgeFactor(num2, minAgeToHaveChildren, maxAgeToHaveChildren, usualAgeToHaveChildren);
            float ageFactor2 = ChildRelationUtility.GetAgeFactor(num, minAgeToHaveChildren, maxAgeToHaveChildren, usualAgeToHaveChildren);

            return(Mathf.Max(ageFactor, ageFactor2));
        }
        private static float MinPossibleAgeGapAtMinAgeToGenerateAsLovers(Pawn p1, Pawn p2)
        {
            float num = p1.ageTracker.AgeChronologicalYearsFloat - 14f;
            float result;

            if (num < 0f)
            {
                Log.Warning("at < 0", false);
                result = 0f;
            }
            else
            {
                float num2 = PawnRelationUtility.MaxPossibleBioAgeAt(p2.ageTracker.AgeBiologicalYearsFloat, p2.ageTracker.AgeChronologicalYearsFloat, num);
                float num3 = PawnRelationUtility.MinPossibleBioAgeAt(p2.ageTracker.AgeBiologicalYearsFloat, num);
                if (num2 < 0f)
                {
                    result = -1f;
                }
                else if (num2 < 14f)
                {
                    result = -1f;
                }
                else if (num3 <= 14f)
                {
                    result = 0f;
                }
                else
                {
                    result = num3 - 14f;
                }
            }
            return(result);
        }