using System; using System.Collections.Generic; using rjw; using Verse; namespace RJW_PlasticSurgeries { public abstract class Recipe_Surgery_Penoplasty : Recipe_Plastic_Surgery { protected override BodyPartRecord GetPartCandidate(Pawn pawn) { return Genital_Helper.get_genitalsBPR(pawn); } protected override bool HasPart(Pawn pawn, List hediffs) { return Genital_Helper.has_penis_fertile(pawn, hediffs) || Genital_Helper.has_penis_infertile(pawn, hediffs); } protected override List GetHediffs(Pawn pawn) { return pawn.GetGenitalsList().FindAll(Genital_Helper.is_penis); } } public class Recipe_Surgery_Penoplasty_Micro : Recipe_Surgery_Penoplasty { protected override void SurgeryResult(Pawn pawn) { SurgeryX(pawn, 0.1f, true); } } public class Recipe_Surgery_Penoplasty_Small : Recipe_Surgery_Penoplasty { protected override void SurgeryResult(Pawn pawn) { SurgeryX(pawn, 0.3f, true); } } public class Recipe_Surgery_Penoplasty_Average : Recipe_Surgery_Penoplasty { protected override void SurgeryResult(Pawn pawn) { SurgeryX(pawn, 0.5f, true); } } public class Recipe_Surgery_Penoplasty_Large : Recipe_Surgery_Penoplasty { protected override void SurgeryResult(Pawn pawn) { SurgeryX(pawn, 0.7f, true); } } public class Recipe_Surgery_Penoplasty_Huge : Recipe_Surgery_Penoplasty { protected override void SurgeryResult(Pawn pawn) { SurgeryX(pawn, 0.9f, true); } } }