using System; using System.Collections.Generic; using PkmnLibSharp.Utils; using Interface = PkmnLibSharp.FFI.StaticData.GrowthRate; namespace PkmnLibSharp.StaticData { public abstract class GrowthRate : ExternPointer { protected internal GrowthRate() { } protected internal GrowthRate(IntPtr ptr, bool isOwner) : base(ptr, isOwner) { } public LevelInt CalculateLevel(uint experience) { return Interface.growth_rate_calculate_level(Ptr, experience); } public uint CalculateExperience(LevelInt level) { return Interface.growth_rate_calculate_experience(Ptr, level); } protected override void Destructor() { Interface.growth_rate_lookup_drop(Ptr); } } public class LookupGrowthRate : GrowthRate { public LookupGrowthRate(uint[] experienceArray) { var arrayPtr = experienceArray.ArrayPtr(); var ptr = Interface.growth_rate_lookup_new(arrayPtr, (ulong)experienceArray.Length); InitializePointer(ptr, true); } protected override object CreateCache() { return new object(); } } }