Growth Rate Library wrapper and tests
This commit is contained in:
parent
32d07be361
commit
cc66729529
|
@ -0,0 +1,37 @@
|
||||||
|
using PkmnLibSharp.Utilities;
|
||||||
|
|
||||||
|
namespace PkmnLibSharp.Library.GrowthRates
|
||||||
|
{
|
||||||
|
public class GrowthRateLibrary : PointerWrapper
|
||||||
|
{
|
||||||
|
public GrowthRateLibrary(ulong initialCapacity) : base(
|
||||||
|
Creatureliblibrary.Generated.GrowthRateLibrary.Construct(initialCapacity))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public byte CalculateLevel(string growthRateName, uint experience)
|
||||||
|
{
|
||||||
|
byte b = 0;
|
||||||
|
Creatureliblibrary.Generated.GrowthRateLibrary.CalculateLevel(ref b, Ptr, growthRateName.ToPtr(),
|
||||||
|
experience).Assert();
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
public uint CalculateExperience(string growthRateName, byte level)
|
||||||
|
{
|
||||||
|
uint i = 0;
|
||||||
|
Creatureliblibrary.Generated.GrowthRateLibrary.CalculateExperience(ref i, Ptr, growthRateName.ToPtr(),
|
||||||
|
level).Assert();
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddGrowthRate(string name, GrowthRate gr)
|
||||||
|
{
|
||||||
|
Creatureliblibrary.Generated.GrowthRateLibrary.AddGrowthRate(Ptr, name.ToPtr(), gr.Ptr).Assert();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DeletePtr()
|
||||||
|
{
|
||||||
|
Creatureliblibrary.Generated.GrowthRateLibrary.Destruct(Ptr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -30,7 +30,7 @@ namespace PkmnLibSharp.Utilities
|
||||||
Cached.TryAdd(ptr, weakRef);
|
Cached.TryAdd(ptr, weakRef);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static bool TryResolvePointer<T>(IntPtr p, out T result) where T : PointerWrapper
|
public static bool TryResolvePointer<T>(IntPtr p, out T result) where T : PointerWrapper
|
||||||
{
|
{
|
||||||
if (Cached.TryGetValue(p, out var val))
|
if (Cached.TryGetValue(p, out var val))
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
using NUnit.Framework;
|
||||||
|
using PkmnLibSharp.Library.GrowthRates;
|
||||||
|
|
||||||
|
namespace PkmnLibSharpTests.Library
|
||||||
|
{
|
||||||
|
public class GrowthRateLibraryTests
|
||||||
|
{
|
||||||
|
[Test]
|
||||||
|
public void ConstructDestruct()
|
||||||
|
{
|
||||||
|
var gr = new GrowthRateLibrary(0);
|
||||||
|
gr.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void AddGrowthRate()
|
||||||
|
{
|
||||||
|
var gr = new GrowthRateLibrary(1);
|
||||||
|
gr.AddGrowthRate("foobar", new LookupGrowthRate(new uint[]{0,10,20,30,40,50}));
|
||||||
|
gr.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void CalculateLevel()
|
||||||
|
{
|
||||||
|
var gr = new GrowthRateLibrary(1);
|
||||||
|
gr.AddGrowthRate("foobar", new LookupGrowthRate(new uint[]{0,10,20,30,40,50}));
|
||||||
|
Assert.AreEqual(5, gr.CalculateLevel("foobar", 40));
|
||||||
|
gr.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void CalculateExperience()
|
||||||
|
{
|
||||||
|
var gr = new GrowthRateLibrary(1);
|
||||||
|
gr.AddGrowthRate("foobar", new LookupGrowthRate(new uint[]{0,10,20,30,40,50}));
|
||||||
|
Assert.AreEqual(40, gr.CalculateExperience("foobar", 5));
|
||||||
|
gr.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue