public override IEnumerable <BodyPartRecord> GetPartsToApplyOn(Pawn p, RecipeDef r) { var gen_blo = Genital_Helper.breasts_blocked(p); foreach (BodyPartRecord part in base.GetPartsToApplyOn(p, r)) { if ((!gen_blo) || (part != xxx.breasts)) { yield return(part); } } }
public override IEnumerable <BodyPartRecord> GetPartsToApplyOn(Pawn p, RecipeDef r) { if (p.gender == Gender.Female) { foreach (var part in p.health.hediffSet.GetNotMissingParts()) { if (r.appliedOnFixedBodyParts.Contains(part.def) && ((part != xxx.breasts) || (!Genital_Helper.breasts_blocked(p)))) { yield return(part); } } } }
public override IEnumerable <BodyPartRecord> GetPartsToApplyOn(Pawn pawn, RecipeDef recipeDef) { var chest = Genital_Helper.get_breasts(pawn); if (Genital_Helper.breasts_blocked(pawn)) { yield break; } if (BreastSize_Helper.TryGetBreastSize(pawn, out var size) && size > BreastSize_Helper.GetSize(Genital_Helper.flat_breasts)) { yield return(chest); } }
public override IEnumerable <BodyPartRecord> GetPartsToApplyOn(Pawn p, RecipeDef r) { if (Genital_Helper.has_breasts(p)) { bool blocked = Genital_Helper.breasts_blocked(p) || xxx.is_slime(p); //|| xxx.is_demon(p) foreach (BodyPartRecord part in p.health.hediffSet.GetNotMissingParts()) { if (r.appliedOnFixedBodyParts.Contains(part.def) && (!blocked)) { yield return(part); } } } }
public override IEnumerable <BodyPartRecord> GetPartsToApplyOn(Pawn p, RecipeDef r) { //dont add artifical - peg, hydraulics, bionics, archo, ovi if (r.addsHediff.addedPartProps?.solid ?? false) { yield break; } //dont add if artifical parts present if (p.health.hediffSet.hediffs.Any((Hediff hed) => (hed.Part != null) && r.appliedOnFixedBodyParts.Contains(hed.Part.def) && (hed.def.addedPartProps?.solid ?? false))) { yield break; } var partBPR = Genital_Helper.get_genitalsBPR(p); var parts = Genital_Helper.get_PartsHediffList(p, partBPR); //dont add if no ovi //if (Genital_Helper.has_ovipositorF(p, parts) || Genital_Helper.has_ovipositorM(p, parts)) // yield break; //dont add if same part type not present yet if (!Genital_Helper.has_vagina(p, parts) && r.defName.ToLower().Contains("v****a")) { yield break; } if (!Genital_Helper.has_penis_fertile(p, parts) && r.defName.ToLower().Contains("penis")) { yield break; } //cant install parts when part blocked, on slimes, on demons bool blocked = (xxx.is_slime(p) || //|| xxx.is_demon(p) (Genital_Helper.genitals_blocked(p) && r.appliedOnFixedBodyParts.Contains(xxx.genitalsDef)) || (Genital_Helper.anus_blocked(p) && r.appliedOnFixedBodyParts.Contains(xxx.anusDef)) || (Genital_Helper.breasts_blocked(p) && r.appliedOnFixedBodyParts.Contains(xxx.breastsDef))); foreach (BodyPartRecord part in base.GetPartsToApplyOn(p, r)) { if (r.appliedOnFixedBodyParts.Contains(part.def) && !blocked) { yield return(part); } } }
public override IEnumerable <BodyPartRecord> GetPartsToApplyOn(Pawn pawn, RecipeDef recipeDef) { var chest = Genital_Helper.get_breasts(pawn); if (pawn.health.hediffSet.PartIsMissing(chest) || Genital_Helper.breasts_blocked(pawn)) { yield break; } var old = recipeDef.removesHediff; if (old == null ? BreastSize_Helper.HasNipplesOnly(pawn, chest) : pawn.health.hediffSet.HasHediff(old, chest)) { yield return(chest); } }
public override bool blocked(Pawn p) { return(Genital_Helper.breasts_blocked(p) || xxx.is_slime(p)); //|| xxx.is_demon(p) }