PkmnLibSharp/PkmnLibSharp/Library/Species/Evolution/EvolutionData.cs

49 lines
1.5 KiB
C#

using System;
using PkmnLibSharp.Utilities;
namespace PkmnLibSharp.Library.Evolution
{
public class EvolutionData : PointerWrapper
{
private EvolutionData(IntPtr ptr) : base(ptr)
{
}
public static EvolutionData CreateLevelEvolution(byte level, Species into)
{
return new EvolutionData(Pkmnlib.Generated.EvolutionData.CreateLevelEvolution(level, into.Ptr));
}
public EvolutionMethod Method => (EvolutionMethod) Pkmnlib.Generated.EvolutionData.GetMethod(Ptr);
public Species NewSpecies
{
get
{
if (_species != null) return _species;
var ptr = Pkmnlib.Generated.EvolutionData.GetNewSpecies(Ptr);
if (TryResolvePointer(ptr, out _species))
return _species!;
_species = new Species(ptr);
return _species;
}
}
public ulong DataLength => Pkmnlib.Generated.EvolutionData.GetDataCount(Ptr);
public EffectParameter GetData(ulong index)
{
var ptr = IntPtr.Zero;
Pkmnlib.Generated.EvolutionData.GetData(Ptr, index, ref ptr).Assert();
if (TryResolvePointer(ptr, out EffectParameter? parameter))
return parameter!;
return new EffectParameter(ptr);
}
private Species? _species;
protected override void DeletePtr()
{
throw new NotImplementedException();
}
}
}