53 lines
1.3 KiB
C#
53 lines
1.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using PkmnLibSharp.Utils;
|
|
using Interface = PkmnLibSharp.FFI.StaticData.GrowthRate;
|
|
|
|
namespace PkmnLibSharp.StaticData
|
|
{
|
|
public abstract class GrowthRate : ExternPointer<object>
|
|
{
|
|
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();
|
|
}
|
|
|
|
~LookupGrowthRate()
|
|
{
|
|
Dispose();
|
|
}
|
|
}
|
|
} |