// Token: 0x060005B7 RID: 1463 RVA: 0x00037A28 File Offset: 0x00035E28
        protected override Job TryGiveJob(Pawn pawn)
        {
            Comp_Facehugger _Facehugger = pawn.TryGetComp <Comp_Facehugger>();
            bool            selected    = Find.Selector.SingleSelectedThing == pawn;

            if (pawn.TryGetAttackVerb(null, false) == null)
            {
                return(null);
            }
            Pawn pawn2 = FindPawnTarget(pawn);

            //    Pawn pawn2 = BestPawnToHuntForPredator(pawn, forceScanWholeMap);
            if (pawn2 != null && !pawn2.Dead && _Facehugger.Impregnations < _Facehugger.maxImpregnations && pawn2.isPotentialHost() && pawn.CanReach(pawn2, PathEndMode.Touch, Danger.Deadly, false, TraverseMode.ByPawn))
            {
#if DEBUG
                if (pawn.jobs.debugLog)
                {
                    pawn.jobs.DebugLogEvent(string.Format("{0}@{1} hunting {2}@{3}", pawn.Label, pawn.Position, pawn2.Label, pawn2.Position));
                }
#endif
                return(this.MeleeAttackJob(pawn, pawn2));
            }
            if (pawn2 != null && pawn2.isPotentialHost())
            {
                using (PawnPath pawnPath = pawn.Map.pathFinder.FindPath(pawn.Position, pawn2.Position, TraverseParms.For(pawn, Danger.Deadly, TraverseMode.PassDoors, false), PathEndMode.OnCell))
                {
                    if (!pawnPath.Found)
                    {
                        return(null);
                    }
                    if (!pawnPath.TryFindLastCellBeforeBlockingDoor(pawn, out IntVec3 loc))
                    {
                        Log.Error(pawn + " did TryFindLastCellBeforeDoor but found none when it should have been one. Target: " + pawn2.LabelCap, false);
                        return(null);
                    }
                    IntVec3 randomCell = CellFinder.RandomRegionNear(loc.GetRegion(pawn.Map, RegionType.Set_Passable), 9, TraverseParms.For(pawn, Danger.Deadly, TraverseMode.ByPawn, false), null, null, RegionType.Set_Passable).RandomCell;
                    if (randomCell == pawn.Position)
                    {
                        return(new Job(JobDefOf.Wait, 30, false));
                    }
                    return(new Job(JobDefOf.Goto, randomCell));
                }
            }
            return(null);
        }
        // Token: 0x06000956 RID: 2390 RVA: 0x0004D678 File Offset: 0x0004BA78
        protected override bool Satisfied(Pawn pawn)
        {
            Comp_Facehugger _Facehugger = pawn.TryGetComp <Comp_Facehugger>();

            return(_Facehugger.Impregnations < _Facehugger.maxImpregnations);
        }