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); }
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); }
/// <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); }
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); }