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