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); }