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); }