/// <summary> /// Sets the Technical Record flags for the <see cref="pk"/> based on the current moves. /// </summary> /// <param name="pk">Pokémon to modify.</param> /// <param name="moves">Moves to set flags for. If a move is not a Technical Record, it is skipped.</param> public static void SetRecordFlags(this ITechRecord8 pk, IEnumerable <int> moves) { if (pk is PA8) { return; } var permit = pk.TechRecordPermitFlags; var moveIDs = pk.TechRecordPermitIndexes; if (permit.Length != moveIDs.Length) { return; } foreach (var m in moves) { var index = moveIDs.IndexOf(m); if (index == -1) { continue; } if (permit[index]) { pk.SetMoveRecordFlag(index, true); } } }
/// <summary> /// Sets the Technical Record flags for the <see cref="pk"/>. /// </summary> /// <param name="pk">Pokémon to modify.</param> /// <param name="value">Value to set for the record.</param> /// <param name="max">Max record to set.</param> public static void SetRecordFlags(this ITechRecord8 pk, bool value, int max = 100) { for (int i = 0; i < max; i++) { pk.SetMoveRecordFlag(i, value); } }
public TechRecordEditor(ITechRecord8 techRecord8, PKM pk) { Entity = techRecord8; pkm = pk; InitializeComponent(); WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); PopulateRecords(); LoadRecords(); }
/// <summary> /// Sets all the Technical Record flags for the <see cref="pk"/> if they are permitted to be learned in-game. /// </summary> /// <param name="pk">Pokémon to modify.</param> public static void SetRecordFlags(this ITechRecord8 pk) { var permit = pk.TechRecordPermitFlags; for (int i = 0; i < permit.Length; i++) { if (permit[i]) { pk.SetMoveRecordFlag(i, true); } } }
/// <summary> /// Clears the Technical Record flags for the <see cref="pk"/>. /// </summary> /// <param name="pk">Pokémon to modify.</param> public static void ClearRecordFlags(this ITechRecord8 pk) => pk.SetRecordFlags(false, 112);