public static void AddHair(this RacePubertySetting pubertySettings, Pawn pawn) { IEnumerable <PubertySetting> settings = pubertySettings.list.Where(x => x.IsSecondaryAssigned() && (x.IsSecondaryAll() || x.GetSecondaryGender() == pawn.gender) && x.Where() != BodyPartDefOf.Chest); //HediffDef bodyHair = PubertyHelper.First(hediffDefs); foreach (PubertySetting bodyHair in settings) { BodyPartRecord whereHair = pawn.Where(bodyHair.Where()); var which = bodyHair.Which(); #if DEBUG Log.Message("Adding hair to " + pawn?.Name + " of " + pawn?.Faction?.Name + " AT " + whereHair + " of type " + which); #endif var hediff = PawnHelper.GetHediff(pawn, which, whereHair, false); if (hediff == null) { hediff = pawn.health.AddHediff(which, whereHair); hediff.Severity = 0.05f; } else { hediff.Severity = Math.Min(hediff.Severity + 0.05f, 1f); } } }
private static void MoreChest(Pawn pawn, HediffDef chestThing) { if (pawn.health.hediffSet.HasHediff(chestThing)) { return; } pawn.health.AddHediff(chestThing, BodyCache.Chest(pawn)); var hediff = PawnHelper.GetHediff(pawn, chestThing, BodyCache.Chest(pawn), false); if (hediff == null) { hediff = pawn.health.AddHediff(chestThing, BodyCache.Chest(pawn)); hediff.Severity = 0.05f; } else { hediff.Severity = Math.Min(hediff.Severity + 0.1f * Rand.Value, 1f); } IEnumerable <Hediff> enumerable = pawn.health.hediffSet.hediffs.Where(x => x.def == HediffDefOf.LifeStages_NormalChest).ToList(); foreach (var removeMe in enumerable) { pawn.health.RemoveHediff(removeMe); } }