public static float GetLovinMtbHours(Pawn pawn, Pawn partner)
        {
            float result;

            if (pawn.Dead || partner.Dead)
            {
                result = -1f;
            }
            else if (DebugSettings.alwaysDoLovin)
            {
                result = 0.1f;
            }
            else if (pawn.needs.food.Starving || partner.needs.food.Starving)
            {
                result = -1f;
            }
            else if (pawn.health.hediffSet.BleedRateTotal > 0f || partner.health.hediffSet.BleedRateTotal > 0f)
            {
                result = -1f;
            }
            else
            {
                float num = LovePartnerRelationUtility.LovinMtbSinglePawnFactor(pawn);
                if (num <= 0f)
                {
                    result = -1f;
                }
                else
                {
                    float num2 = LovePartnerRelationUtility.LovinMtbSinglePawnFactor(partner);
                    if (num2 <= 0f)
                    {
                        result = -1f;
                    }
                    else
                    {
                        float num3 = 12f;
                        num3  *= num;
                        num3  *= num2;
                        num3  /= Mathf.Max(pawn.relations.SecondaryLovinChanceFactor(partner), 0.1f);
                        num3  /= Mathf.Max(partner.relations.SecondaryLovinChanceFactor(pawn), 0.1f);
                        num3  *= GenMath.LerpDouble(-100f, 100f, 1.3f, 0.7f, (float)pawn.relations.OpinionOf(partner));
                        num3  *= GenMath.LerpDouble(-100f, 100f, 1.3f, 0.7f, (float)partner.relations.OpinionOf(pawn));
                        result = num3;
                    }
                }
            }
            return(result);
        }