コード例 #1
0
 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());
 }
コード例 #2
0
        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);
        }