protected override Job TryGiveJob(Pawn pawn) { if (pawn.Drafted) { return(null); } if (pawn.needs.rest.CurLevel > (minEnergyRechargePercentage / 100f)) { return(null); } var emptyChargeStation = PeacekeeperUtility.GetEmptyChargeStation(pawn); if (emptyChargeStation == null || emptyChargeStation.IsForbidden(pawn)) { if (pawn.needs.rest.CurLevel < (minEnergyPowercellPercentage / 100f)) { var fuel = PeacekeeperUtility.FindBestFuel(pawn); if (fuel != null) { return(JobMaker.MakeJob(RSDefOf.RSFuelRobot, pawn, fuel)); } } return(JobMaker.MakeJob(JobDefOf.Wait, 120, true)); } return(JobMaker.MakeJob(RSDefOf.RSRecharge, emptyChargeStation)); }
public static Job RefuelJob(Pawn pawn, Thing t, bool forced = false, JobDef customRefuelJob = null) { Thing t2 = PeacekeeperUtility.FindBestFuel(pawn); return(JobMaker.MakeJob(customRefuelJob ?? RSDefOf.RSFuelRobot, t, t2)); }