Beispiel #1
0
        private IEnumerable <PKM> SearchSimple(IEnumerable <PKM> res)
        {
            if (Format > 0)
            {
                res = SearchUtil.FilterByFormat(res, Format, SearchFormat);
            }
            if (Species > -1)
            {
                res = res.Where(pk => pk.Species == Species);
            }
            if (Ability > -1)
            {
                res = res.Where(pk => pk.Ability == Ability);
            }
            if (Nature > -1)
            {
                res = res.Where(pk => pk.Nature == Nature);
            }
            if (Item > -1)
            {
                res = res.Where(pk => pk.HeldItem == Item);
            }
            if (Version > -1)
            {
                res = res.Where(pk => pk.Version == Version);
            }

            return(res);
        }
Beispiel #2
0
        private IEnumerable <PKM> SearchIntermediate(IEnumerable <PKM> res)
        {
            if (Generation > 0)
            {
                res = SearchUtil.FilterByGeneration(res, Generation);
            }
            if (Moves.Count > 0)
            {
                res = SearchUtil.FilterByMoves(res, Moves);
            }
            if (HiddenPowerType > -1)
            {
                res = res.Where(pk => pk.HPType == HiddenPowerType);
            }
            if (SearchShiny != null)
            {
                res = res.Where(pk => pk.IsShiny == SearchShiny);
            }

            if (IVType > 0)
            {
                res = SearchUtil.FilterByIVs(res, IVType);
            }
            if (EVType > 0)
            {
                res = SearchUtil.FilterByEVs(res, EVType);
            }

            return(res);
        }
Beispiel #3
0
        /// <summary>
        /// Searches the input list, filtering out entries as specified by the settings.
        /// </summary>
        /// <param name="list">List of entries to search</param>
        /// <returns>Search results that match all criteria</returns>
        public IEnumerable <PKM> Search(IEnumerable <PKM> list)
        {
            var result = SearchSimple(list);

            result = SearchIntermediate(result);
            result = SearchComplex(result);

            foreach (var filter in ExtraFilters)
            {
                result = result.Where(filter);
            }

            if (SearchClones != CloneDetectionMethod.None)
            {
                result = SearchUtil.GetClones(result, SearchClones);
            }

            return(result);
        }
Beispiel #4
0
        private IEnumerable <PKM> SearchComplex(IEnumerable <PKM> res)
        {
            if (SearchEgg != null)
            {
                res = FilterResultEgg(res);
            }

            if (Level != null)
            {
                res = SearchUtil.FilterByLVL(res, SearchLevel, (int)Level);
            }

            if (SearchLegal != null)
            {
                res = res.Where(pk => new LegalityAnalysis(pk).Valid == SearchLegal);
            }

            if (BatchInstructions != null)
            {
                res = SearchUtil.FilterByBatchInstruction(res, BatchInstructions);
            }

            return(res);
        }