private static List <Pawn> AllCaravanMembersCapableOfGrowing(Caravan caravan) { return(caravan.PawnsListForReading.Where(pawn => !pawn.Dead && !pawn.Downed && !pawn.InMentalState && caravan.IsOwner(pawn) && pawn.health.capacities.CanBeAwake && !StatDefOf.PlantHarvestYield.Worker.IsDisabledFor(pawn)) .ToList()); }
private List <ThingCount> TryGenerateColonistOrPrisonerDemand(Caravan caravan) { List <Pawn> list = new List <Pawn>(); int num = 0; for (int i = 0; i < caravan.pawns.Count; i++) { if (caravan.IsOwner(caravan.pawns[i])) { num++; } } if (num >= 2) { for (int j = 0; j < caravan.pawns.Count; j++) { if (caravan.IsOwner(caravan.pawns[j])) { list.Add(caravan.pawns[j]); } } } for (int k = 0; k < caravan.pawns.Count; k++) { if (caravan.pawns[k].IsPrisoner) { list.Add(caravan.pawns[k]); } } if (list.Any()) { return(new List <ThingCount> { new ThingCount(list.RandomElement(), 1) }); } return(null); }