private string ParseLineMove(string line) { string moveString = line.Substring(line[1] == ' ' ? 2 : 1); if (!moveString.Contains("Hidden Power")) { return(moveString); } // Defined Hidden Power if (moveString.Length > 13) { string type = moveString.Remove(0, 13); ReplaceAll(ref type, "", "[", "]", "(", ")"); // Trim out excess data int hpVal = Array.IndexOf(hptypes, type); // Get HP Type if (hpVal >= 0) { IVs = PKX.SetHPIVs(hpVal, IVs); // Get IVs } else { InvalidLines.Add($"Invalid Hidden Power Type: {type}"); } } moveString = "Hidden Power"; return(moveString); }
private string ParseLineMove(string line) { string moveString = line.Substring(line[1] == ' ' ? 2 : 1); if (!moveString.Contains(moves[237])) // Hidden Power { return(moveString); } // Defined Hidden Power if (moveString.Length > 13) { string type = moveString.Remove(0, 13); type = ReplaceAll(type, string.Empty, "[", "]", "(", ")"); // Trim out excess data int hpVal = Array.IndexOf(hptypes, type); // Get HP Type if (IVs.Any(z => z != 31)) { if (!HiddenPower.SetIVsForType(hpVal, IVs)) { InvalidLines.Add($"Invalid IVs for Hidden Power Type: {type}"); } } else if (hpVal >= 0) { IVs = PKX.SetHPIVs(hpVal, IVs); // Get IVs } else { InvalidLines.Add($"Invalid Hidden Power Type: {type}"); } } return(moves[237]); }
public static bool SetIVsForType(int hpVal, int[] IVs) { if (IVs.All(z => z == 31)) { PKX.SetHPIVs(hpVal, IVs); // Get IVs return(true); } int current = GetType(IVs); if (current == hpVal) { return(true); // no mods necessary } // Required HP type doesn't match IVs. Make currently-flawless IVs flawed. int[] best = GetSuggestedHiddenPowerIVs(hpVal, IVs); if (best == null) { return(false); // can't force hidden power? } // set IVs back to array for (int i = 0; i < IVs.Length; i++) { IVs[i] = best[i]; } return(true); }
private string ParseLineMove(string line) { const int hiddenPower = 237; string moveString = line.Substring(line[1] == ' ' ? 2 : 1).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 = Array.IndexOf(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 = PKX.SetHPIVs(hpVal, IVs, Format); // Get IVs } else { InvalidLines.Add($"Invalid Hidden Power Type: {type}"); } return(Strings.Move[hiddenPower]); }