using RimWorld; using rjw; using System.Collections.Generic; using Verse; namespace RJW_Menstruation { public class Recipe_BreastSurgery : Recipe_Surgery { public override IEnumerable GetPartsToApplyOn(Pawn pawn, RecipeDef recipe) { BodyPartRecord part = Genital_Helper.get_breastsBPR(pawn) ?? Genital_Helper.get_uddersBPR(pawn); if (part != null) { if (pawn.GetBreastComp() != null) yield return part; } } public override void ApplyOnPawn(Pawn pawn, BodyPartRecord part, Pawn billDoer, List ingredients, Bill bill) { HediffComp_Breast breast = pawn.GetBreastComp(); if (billDoer != null && breast != null) { TaleRecorder.RecordTale(TaleDefOf.DidSurgery, new object[] { billDoer, pawn }); SurgeryResult(breast); } } protected virtual void SurgeryResult(HediffComp_Breast breast) { } } public class Recipe_ExpandAreola : Recipe_BreastSurgery { protected override void SurgeryResult(HediffComp_Breast breast) { breast.AdjustAreolaSizeImmediately(0.2f); } } public class Recipe_ContractAreola : Recipe_BreastSurgery { protected override void SurgeryResult(HediffComp_Breast breast) { breast.AdjustAreolaSizeImmediately(-0.2f); } } public class Recipe_ExpandNipple : Recipe_BreastSurgery { protected override void SurgeryResult(HediffComp_Breast breast) { breast.AdjustNippleSizeImmediately(0.2f); } } public class Recipe_ContractNipple : Recipe_BreastSurgery { protected override void SurgeryResult(HediffComp_Breast breast) { breast.AdjustNippleSizeImmediately(-0.2f); } } public class Recipe_DarkenNipple : Recipe_BreastSurgery { protected override void SurgeryResult(HediffComp_Breast breast) { breast.AdjustNippleColorImmediately(0.2f); } } public class Recipe_LightenNipple : Recipe_BreastSurgery { protected override void SurgeryResult(HediffComp_Breast breast) { breast.AdjustNippleColorImmediately(-0.2f); } } }