Exemplo n.º 1
0
        /// <summary>
        /// Fetches <see cref="PKM.RelearnMoves"/> based on the provided <see cref="LegalityAnalysis"/>.
        /// </summary>
        /// <param name="legal"><see cref="LegalityAnalysis"/> which contains parsed information pertaining to legality.</param>
        /// <returns><see cref="PKM.RelearnMoves"/> best suited for the current <see cref="PKM"/> data.</returns>
        public static IReadOnlyList <int> GetSuggestedRelearnMoves(this LegalityAnalysis legal)
        {
            var m = legal.GetSuggestedRelearn();

            if (m.Any(z => z != 0))
            {
                return(m);
            }

            var enc = legal.EncounterMatch;

            if (enc is MysteryGift || enc is EncounterEgg)
            {
                return(m);
            }

            var encounter = EncounterSuggestion.GetSuggestedMetInfo(legal.pkm);

            if (encounter is IRelearn r && r.Relearn.Count > 0)
            {
                m = r.Relearn;
            }

            return(m);
        }