Пример #1
0
        public static bool NewGRFormula(ref float __result, Pawn pawn)
        {
            float num = 1f;

            num /= 1f - pawn.health.hediffSet.PainTotal;
            float level = pawn.health.capacities.GetLevel(PawnCapacityDefOf.Consciousness);

            if (level < 0.5f)
            {
                num /= level * 2f;
            }
            float sexDriveFactor;

            if (PsycheHelper.PsychologyEnabled(pawn))
            {
                sexDriveFactor = PsycheHelper.Comp(pawn).Sexuality.AdjustedSexDrive;
            }
            else
            {
                sexDriveFactor = GenMath.FlatHill(0f, 0.75f, 1f, 2f, 3f, 0.2f, AgeCalculationUtility.GetMaturity(pawn));
            }

            __result = num / sexDriveFactor;

            return(false);
        }
Пример #2
0
        public static bool GRNextLovinFormula(Pawn pawn, ref int __result)
        {
            if (DebugSettings.alwaysDoLovin)
            {
                __result = 100;
            }
            else
            {
                float num = AgeCalculationUtility.recoveryTimeByMaturity.Evaluate(AgeCalculationUtility.GetMaturity(pawn));
                num = Rand.Gaussian(num, 0.3f);
                if (num < 0.5f)
                {
                    num = 0.5f;
                }
                __result = (int)(num * 2500f);
            }

            return(false);
        }