protected override Job TryGiveJob(Pawn pawn)
        {
            CompExplodingEggLayer compEggLayer = pawn.TryGetComp <CompExplodingEggLayer>();

            if (compEggLayer == null || !compEggLayer.CanLayNow)
            {
                return(null);
            }
            IntVec3 c = RCellFinder.RandomWanderDestFor(pawn, pawn.Position, 5f, null, Danger.Some);

            return(JobMaker.MakeJob(DefDatabase <JobDef> .GetNamed("VEF_LayExplodingEgg"), c));
        }
            public static bool Prefix(Pawn male, Pawn female)
            {
                if (!female.ageTracker.CurLifeStage.reproductive)
                {
                    return(false);
                }
                CompExplodingEggLayer compEggLayer = female.TryGetComp <CompExplodingEggLayer>();

                if (compEggLayer != null)
                {
                    compEggLayer.Fertilize(male);
                    return(false);
                }
                return(true);
            }