using System.Diagnostics.CodeAnalysis;
using PkmnLib.Static.Moves;
using PkmnLib.Static.Utils;
namespace PkmnLib.Static.Libraries;
///
/// The library for all moves in the game.
///
public interface IReadOnlyMoveLibrary : IEnumerable
{
///
/// Tries to get a move from the library. Returns false if the move is not found.
///
bool TryGet(StringKey key, [MaybeNullWhen(false)] out IMoveData value);
///
/// Gets a random move from the library.
///
IMoveData GetRandom(IRandom random);
///
/// The amount of moves in the library.
///
int Count { get; }
///
/// Whether the library is empty.
///
bool IsEmpty { get; }
}
///
public class MoveLibrary : DataLibrary, IReadOnlyMoveLibrary;