示例#1
0
        private string ParseLineMove(string line)
        {
            const int hiddenPower = 237;
            string    moveString  = line.Substring(line[1] == ' ' ? 2 : 1).Split('/')[0].Trim();

            if (!moveString.StartsWith(Strings.Move[hiddenPower])) // Hidden Power
            {
                return(moveString);                                // regular move
            }
            if (moveString.Length <= 13)
            {
                return(Strings.Move[hiddenPower]);
            }

            // Defined Hidden Power
            string type = moveString.Substring(13);

            type = RemoveAll(type, ParenJunk);                                   // Trim out excess data
            int hpVal = StringUtil.FindIndexIgnoreCase(Strings.types, type) - 1; // Get HP Type

            HiddenPowerType = hpVal;
            if (IVs.Any(z => z != 31))
            {
                if (!HiddenPower.SetIVsForType(hpVal, IVs, Format))
                {
                    InvalidLines.Add($"Invalid IVs for Hidden Power Type: {type}");
                }
            }
            else if (hpVal >= 0)
            {
                IVs = HiddenPower.SetIVs(hpVal, IVs, Format); // Get IVs
            }
            else
            {
                InvalidLines.Add($"Invalid Hidden Power Type: {type}");
            }
            return(Strings.Move[hiddenPower]);
        }