/// <summary> /// called before the mental state is started /// </summary> public override void PreStart() { _prey = FormerHumanUtilities.FindRandomPreyFor(pawn); if (_prey == null) { Log.Error($"could not find prey for {pawn.Name}"); } }
void TryStartRandomHunt(Pawn pawn) { if (!pawn.RaceProps.predator) { return; } var prey = FormerHumanUtilities.FindRandomPreyFor(pawn); if (prey == null) { return; } var job = new Job(JobDefOf.PredatorHunt, prey) { killIncappedTarget = true }; pawn.jobs?.StartJob(job, JobCondition.InterruptForced); }
/// <summary> /// States the can occur. /// </summary> /// <param name="pawn">The pawn.</param> /// <returns></returns> public override bool StateCanOccur(Pawn pawn) { return(def.IsValidFor(pawn) && FormerHumanUtilities.FindRandomPreyFor(pawn) != null); }