public static void Postfix(Pawn pawn)
        {
            if (!PawnHelper.is_human(pawn))
            {
                return;
            }

            if (BodyPartDefOf.Maturity == null)
            {
                throw new Exception("BodyPartDefOf.Maturity missing!");
            }

            var maturityPart = PawnHelper.MaturityPart(pawn);

            if (maturityPart == null)
            {
                return;
            }

            if (pawn.health.hediffSet.HasHediff(HediffDefOf.LifeStages_Adult))
            {
                return;
            }

            var pubertySettings = pawn.RacePubertySetting();

            ChestManager.intialChest(pawn);

            if (pubertySettings.instantPubertySetting)
            {
                DoPuberty(pawn, maturityPart);
                return;
            }

            var yearsOld = pawn.ageTracker.AgeBiologicalYearsFloat;

            if (yearsOld < SettingHelper.latest.PubertyOnset)
            {
                var dif = pawn.health.AddHediff(HediffDefOf.LifeStages_Youth, maturityPart, null);
                dif.Severity = 1f / (1 + yearsOld);
            }
            else if (yearsOld < SettingHelper.latest.PubertyOnset + 1)
            {
                pawn.health.AddHediff(HediffDefOf.LifeStages_Puberty, maturityPart, null);
            }
            else
            {
                DoPuberty(pawn, maturityPart);
            }
        }
 public override void PostRemoved()
 {
     base.PostRemoved();
     pawn.health.AddHediff(HediffDefOf.LifeStages_Adult, PawnHelper.MaturityPart(pawn));
 }