using System.Diagnostics.CodeAnalysis; using PkmnLib.Static.Utils; namespace PkmnLib.Static.Libraries; /// <summary> /// The library for all growth rates in the game. /// </summary> public interface IReadOnlyGrowthRateLibrary { /// <summary> /// Tries to get a growth rate from the library. Returns false if the growth rate is not found. /// </summary> bool TryGet(StringKey key, [MaybeNullWhen(false)] out IGrowthRate value); /// <summary> /// Gets a random growth rate from the library. /// </summary> IGrowthRate GetRandom(IRandom random); /// <summary> /// Gets the amount of growth rates in the library. /// </summary> int Count { get; } /// <summary> /// Whether the library is empty. /// </summary> bool IsEmpty { get; } } /// <inheritdoc cref="IReadOnlyGrowthRateLibrary"/> public class GrowthRateLibrary : DataLibrary<IGrowthRate>, IReadOnlyGrowthRateLibrary;