private static void roleOrganMaturity(this RacePubertySetting that, Pawn pawn, float severity) { //delay puberty onset if (Rand.Value < SettingHelper.latest.EarlyPubertyChance || severity < (1f - SettingHelper.latest.PubertyDelay)) { if (Rand.Value < SettingHelper.latest.IntersexInfertileChance) { pawn.health.AddHediff(HediffDefOf.LifeStages_Infertile_BirthDefect, null); } bool intersex = Rand.Value < SettingHelper.latest.IntersexChance; bool cis = Rand.Value > SettingHelper.latest.TransgenderChance; if (!cis) { pawn.health.AddHediff(HediffDefOf.LifeStages_Transgendered, null); } that.AddAllParts(pawn); if (intersex) { that.AddParts(pawn); } else { switch (pawn.gender) { case Gender.Male: that.AddMaleParts(pawn); break; case Gender.Female: that.AddFemaleParts(pawn); break; default: that.AddOtherParts(pawn); break; } } } }
private static void AddParts(this RacePubertySetting that, Pawn pawn) { that.AddOtherParts(pawn); that.AddMaleParts(pawn); that.AddFemaleParts(pawn); }