Further work on static side

This commit is contained in:
2024-07-20 16:12:39 +02:00
parent 3845f91601
commit 1b501dee7e
29 changed files with 670 additions and 155 deletions

View File

@@ -0,0 +1,34 @@
using System.Diagnostics.CodeAnalysis;
using PkmnLib.Static.Species;
using PkmnLib.Static.Utils;
namespace PkmnLib.Static.Libraries;
/// <summary>
/// The library for all abilities in the game.
/// </summary>
public interface IReadOnlyAbilityLibrary
{
/// <summary>
/// Tries to get an ability from the library. Returns false if the ability is not found.
/// </summary>
bool TryGet(StringKey key, [MaybeNullWhen(false)] out IAbility value);
/// <summary>
/// Gets a random ability from the library.
/// </summary>
IAbility GetRandom(IRandom random);
/// <summary>
/// The amount of abilities in the library.
/// </summary>
int Count { get; }
/// <summary>
/// Whether the library is empty.
/// </summary>
bool IsEmpty { get; }
}
/// <inheritdoc cref="IReadOnlyAbilityLibrary"/>
public class AbilityLibrary : DataLibrary<IAbility>, IReadOnlyAbilityLibrary;