예제 #1
0
        public override Job JobOnThing(Pawn pawn, Thing t, bool forced = false)
        {
            Job result;

            if (!base.ShouldTakeCareOfPrisoner(pawn, t))
            {
                result = null;
            }
            else
            {
                Pawn pawn2 = (Pawn)t;
                if (pawn2.guest.interactionMode == PrisonerInteractionModeDefOf.Release && !pawn2.Downed && pawn2.Awake())
                {
                    IntVec3 c;
                    if (!RCellFinder.TryFindPrisonerReleaseCell(pawn2, pawn, out c))
                    {
                        result = null;
                    }
                    else
                    {
                        result = new Job(JobDefOf.ReleasePrisoner, pawn2, c)
                        {
                            count = 1
                        };
                    }
                }
                else
                {
                    result = null;
                }
            }
            return(result);
        }
예제 #2
0
        public override Job JobOnThing(Pawn pawn, Thing t, bool forced = false)
        {
            if (!ShouldTakeCareOfPrisoner(pawn, t))
            {
                return(null);
            }
            Pawn pawn2 = (Pawn)t;

            if (pawn2.guest.interactionMode == PrisonerInteractionModeDefOf.Release && !pawn2.Downed && pawn2.Awake())
            {
                if (!RCellFinder.TryFindPrisonerReleaseCell(pawn2, pawn, out IntVec3 result))
                {
                    return(null);
                }
                Job job = new Job(JobDefOf.ReleasePrisoner, pawn2, result);
                job.count = 1;
                return(job);
            }
            return(null);
        }
예제 #3
0
        public override Job JobOnThing(Pawn pawn, Thing t, bool forced = false)
        {
            if (!base.ShouldTakeCareOfPrisoner(pawn, t))
            {
                return(null);
            }
            Pawn pawn2 = (Pawn)t;

            if (pawn2.guest.interactionMode != PrisonerInteractionModeDefOf.Release || pawn2.Downed || !pawn2.Awake())
            {
                return(null);
            }
            IntVec3 c;

            if (!RCellFinder.TryFindPrisonerReleaseCell(pawn2, pawn, out c))
            {
                return(null);
            }
            return(new Job(JobDefOf.ReleasePrisoner, pawn2, c)
            {
                count = 1
            });
        }