/// <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}");
     }
 }
Example #2
0
        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);
 }