Пример #1
0
        protected override void BuildPawnList()
        {
            Pawns.Clear();
            IEnumerable <Pawn> sorted;

            switch (OrderBy)
            {
            case Order.Work:
                sorted = from p in Find.ListerPawns.FreeColonists
                         orderby(p.story == null || p.story.WorkTypeIsDisabled(_workOrder)),
                p.skills.AverageOfRelevantSkillsFor(_workOrder) descending
                select p;

                break;

            case Order.Name:
                sorted = from p in Find.ListerPawns.FreeColonists
                         orderby p.LabelCap ascending
                         select p;
                break;

            default:
                sorted = Find.ListerPawns.FreeColonists;
                break;
            }

            Pawns = sorted.ToList();
            if (_asc && Pawns.Count > 1)
            {
                Pawns.Reverse();
            }
        }
        protected override void BuildPawnList()
        {
            IEnumerable <Pawn> sorted;

            switch (Order)
            {
            case Orders.Default:
                sorted = from p in Find.ListerPawns.PawnsInFaction(Faction.OfColony)
                         where p.RaceProps.Animal
                         orderby p.RaceProps.petness descending, p.RaceProps.baseBodySize, p.def.label
                select p;
                break;

            case Orders.Name:
                sorted = from p in Find.ListerPawns.PawnsInFaction(Faction.OfColony)
                         where p.RaceProps.Animal
                         orderby p.Name.Numerical, p.Name.ToStringFull, p.def.label
                select p;
                break;

            case Orders.Gender:
                sorted = from p in Find.ListerPawns.PawnsInFaction(Faction.OfColony)
                         where p.RaceProps.Animal
                         orderby p.KindLabel, p.gender
                select p;
                break;

            case Orders.LifeStage:
                sorted = from p in Find.ListerPawns.PawnsInFaction(Faction.OfColony)
                         where p.RaceProps.Animal
                         orderby p.ageTracker.CurLifeStageRace.minAge descending, p.ageTracker.AgeBiologicalTicks descending
                select p;
                break;

            case Orders.Slaughter:
                sorted = from p in Find.ListerPawns.PawnsInFaction(Faction.OfColony)
                         where p.RaceProps.Animal
                         orderby Find.DesignationManager.DesignationOn(p, DesignationDefOf.Slaughter) != null descending, p.BodySize descending
                select p;

                break;

            case Orders.Training:
                bool dump;
                sorted = from p in Find.ListerPawns.PawnsInFaction(Faction.OfColony)
                         where p.RaceProps.Animal
                         orderby p.training.IsCompleted(TrainingOrder) descending, p.training.GetWanted(TrainingOrder) descending, p.training.CanAssignToTrain(TrainingOrder, out dump).Accepted descending
                select p;

                break;

            default:
                sorted = from p in Find.ListerPawns.PawnsInFaction(Faction.OfColony)
                         where p.RaceProps.Animal
                         orderby p.RaceProps.petness descending, p.RaceProps.baseBodySize, p.def.label
                select p;
                break;
            }

            Pawns = sorted.ToList();

            if (Widgets_Filter.Filter)
            {
                Pawns = Widgets_Filter.FilterAnimals(Pawns);
            }

            if (Asc && Pawns.Count > 1)
            {
                Pawns.Reverse();
            }

            IsDirty = false;
        }