using System; namespace PKHeX.Core; /// /// Exposes info about the Technical Machine / Technical Record (TR) compatibility and history of use. /// public interface ITechRecord { /// /// Rules for permitting the given record. /// public IPermitRecord Permit { get; } /// /// Indicates if the TR has been previously used on this entity to learn the move. /// /// TR index /// True if learned bool GetMoveRecordFlag(int index); /// /// Sets the flag indicating that the TR has been learned. /// /// TR index /// True if learned void SetMoveRecordFlag(int index, bool value = true); /// /// Indicates if any move has been learned via TR. /// bool GetMoveRecordFlagAny(); } public interface IPermitRecord { /// /// Individual accessed indexes indicate if they can be learned. /// bool IsRecordPermitted(int index); /// /// Individual accessed move IDs that a given record remembers. /// ReadOnlySpan RecordPermitIndexes { get; } /// /// Maximum count of record flags that are available. /// int RecordCountTotal { get; } /// /// Maximum count of record flags that are used. /// int RecordCountUsed { get; } }