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