Update to latest CreatureLib, more work on battle tests.

This commit is contained in:
2020-07-31 14:19:21 +02:00
parent 283825b355
commit 00c5f51c55
113 changed files with 758 additions and 798 deletions

View File

@@ -15,57 +15,57 @@ namespace PkmnLibSharp.Library
public class EffectParameter : PointerWrapper
{
public EffectParameter(string s) : base(Creatureliblibrary.Generated.EffectParameter.FromString(s.ToPtr()))
public EffectParameter(string s) : base(Creaturelib.Generated.EffectParameter.FromString(s.ToPtr()))
{
}
public EffectParameter(bool b) : base(Creatureliblibrary.Generated.EffectParameter.FromBool(b.ToNative()))
public EffectParameter(bool b) : base(Creaturelib.Generated.EffectParameter.FromBool(b.ToNative()))
{
}
public EffectParameter(long l) : base(Creatureliblibrary.Generated.EffectParameter.FromInt(l))
public EffectParameter(long l) : base(Creaturelib.Generated.EffectParameter.FromInt(l))
{
}
public EffectParameter(float f) : base(Creatureliblibrary.Generated.EffectParameter.FromFloat(f))
public EffectParameter(float f) : base(Creaturelib.Generated.EffectParameter.FromFloat(f))
{
}
public EffectParameterType ParameterType =>
(EffectParameterType) Creatureliblibrary.Generated.EffectParameter.GetType(Ptr);
(EffectParameterType) Creaturelib.Generated.EffectParameter.GetType(Ptr);
public bool AsBool()
{
byte b = 0;
Creatureliblibrary.Generated.EffectParameter.AsBool(Ptr, ref b).Assert();
Creaturelib.Generated.EffectParameter.AsBool(Ptr, ref b).Assert();
return b == 1;
}
public long AsInt()
{
long i = 0;
Creatureliblibrary.Generated.EffectParameter.AsInt(Ptr, ref i).Assert();
Creaturelib.Generated.EffectParameter.AsInt(Ptr, ref i).Assert();
return i;
}
public float AsFloat()
{
float f = 0;
Creatureliblibrary.Generated.EffectParameter.AsFloat(Ptr, ref f).Assert();
Creaturelib.Generated.EffectParameter.AsFloat(Ptr, ref f).Assert();
return f;
}
public string AsString()
{
var p = IntPtr.Zero;
Creatureliblibrary.Generated.EffectParameter.AsString(Ptr, ref p).Assert();
Creaturelib.Generated.EffectParameter.AsString(Ptr, ref p).Assert();
return p.PtrString();
}
protected override void DeletePtr()
{
Creatureliblibrary.Generated.EffectParameter.Destruct(Ptr);
Creaturelib.Generated.EffectParameter.Destruct(Ptr);
}
}
}

View File

@@ -1,8 +1,8 @@
using System;
using System.Collections.Immutable;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using Creatureliblibrary.Generated;
using Creaturelib.Generated;
using PkmnLibSharp.Utilities;
using Random = PkmnLibSharp.Utilities.Random;
@@ -10,11 +10,11 @@ namespace PkmnLibSharp.Library
{
public class Forme : PointerWrapper
{
private ImmutableArray<string> _abilities;
private ImmutableArray<string> _hiddenAbilities;
private ReadOnlyArray<string> _abilities;
private ReadOnlyArray<string> _hiddenAbilities;
private LearnableMoves _moves;
private string _name;
private ImmutableArray<byte> _types;
private ReadOnlyArray<byte> _types;
internal Forme(IntPtr parent) : base(parent)
{
@@ -25,7 +25,7 @@ namespace PkmnLibSharp.Library
public float Weight => SpeciesVariant.GetWeight(Ptr);
public float BaseExperience => SpeciesVariant.GetBaseExperience(Ptr);
public ImmutableArray<byte> Types
public ReadOnlyArray<byte> Types
{
get
{
@@ -36,24 +36,24 @@ namespace PkmnLibSharp.Library
var types = new byte[typesCount];
for (ulong i = 0; i < typesCount; i++) types[i] = SpeciesVariant.GetType(Ptr, i);
_types = types.ToImmutableArray();
_types = types.ToReadOnly();
return _types;
}
}
public uint BaseHealth => SpeciesVariant.GetStatistic(Ptr, (byte) Statistic.Health);
public uint BaseAttack => SpeciesVariant.GetStatistic(Ptr, (Creatureliblibrary.Statistic) Statistic.Attack);
public uint BaseDefense => SpeciesVariant.GetStatistic(Ptr, (Creatureliblibrary.Statistic) Statistic.Defense);
public uint BaseAttack => SpeciesVariant.GetStatistic(Ptr, (Creaturelib.Statistic) Statistic.Attack);
public uint BaseDefense => SpeciesVariant.GetStatistic(Ptr, (Creaturelib.Statistic) Statistic.Defense);
public uint BaseSpecialAttack =>
SpeciesVariant.GetStatistic(Ptr, (Creatureliblibrary.Statistic) Statistic.SpecialAttack);
SpeciesVariant.GetStatistic(Ptr, (Creaturelib.Statistic) Statistic.SpecialAttack);
public uint BaseSpecialDefense =>
SpeciesVariant.GetStatistic(Ptr, (Creatureliblibrary.Statistic) Statistic.SpecialDefense);
SpeciesVariant.GetStatistic(Ptr, (Creaturelib.Statistic) Statistic.SpecialDefense);
public uint BaseSpeed => SpeciesVariant.GetStatistic(Ptr, (Creatureliblibrary.Statistic) Statistic.Speed);
public uint BaseSpeed => SpeciesVariant.GetStatistic(Ptr, (Creaturelib.Statistic) Statistic.Speed);
public ImmutableArray<string> Abilities
public ReadOnlyArray<string> Abilities
{
get
{
@@ -69,12 +69,12 @@ namespace PkmnLibSharp.Library
abilities[i] = s.PtrString();
}
_abilities = abilities.ToImmutableArray();
_abilities = abilities.ToReadOnly();
return _abilities;
}
}
public ImmutableArray<string> HiddenAbilities
public ReadOnlyArray<string> HiddenAbilities
{
get
{
@@ -90,7 +90,7 @@ namespace PkmnLibSharp.Library
abilities[i] = s.PtrString();
}
_hiddenAbilities = abilities.ToImmutableArray();
_hiddenAbilities = abilities.ToReadOnly();
return _hiddenAbilities;
}
}
@@ -123,7 +123,7 @@ namespace PkmnLibSharp.Library
var hab = hiddenAbilitiesConverted.ArrayPtr();
var ptr = SpeciesVariant.Construct(name.ToPtr(), height, weight, baseExperience, types.ArrayPtr(),
(ulong) types.Length, baseHealth, baseAttack, baseDefense, baseSpecialAttack,
baseSpecialDefense, baseSpeed, (IntPtr) ab, (ulong) abilities.Length, hab,
baseSpecialDefense, baseSpeed, ab, (ulong) abilities.Length, hab,
(ulong) hiddenAbilities.Length, moves.Ptr);
var f = new Forme(ptr);
foreach (var intPtr in abilitiesConverted)

View File

@@ -17,7 +17,7 @@ namespace PkmnLibSharp.Library.GrowthRates
CalculateExperienceDelegate experienceFunc)
{
var ptr = IntPtr.Zero;
Creatureliblibrary.Generated.ExternGrowthRate.Construct(ref ptr,
Creaturelib.Generated.ExternGrowthRate.Construct(ref ptr,
Marshal.GetFunctionPointerForDelegate(levelFunc),
Marshal.GetFunctionPointerForDelegate(experienceFunc)
);
@@ -26,7 +26,7 @@ namespace PkmnLibSharp.Library.GrowthRates
protected override void DeletePtr()
{
Creatureliblibrary.Generated.ExternGrowthRate.Destruct(Ptr);
Creaturelib.Generated.ExternGrowthRate.Destruct(Ptr);
}
}
}

View File

@@ -12,14 +12,14 @@ namespace PkmnLibSharp.Library.GrowthRates
public byte CalculateLevel(uint experience)
{
byte b = 0;
Creatureliblibrary.Generated.GrowthRate.CalculateLevel(ref b, Ptr, experience).Assert();
Creaturelib.Generated.GrowthRate.CalculateLevel(ref b, Ptr, experience).Assert();
return b;
}
public uint CalculateExperience(byte level)
{
uint i = 0;
Creatureliblibrary.Generated.GrowthRate.CalculateExperience(ref i, Ptr, level).Assert();
Creaturelib.Generated.GrowthRate.CalculateExperience(ref i, Ptr, level).Assert();
return i;
}
}

View File

@@ -10,33 +10,33 @@ namespace PkmnLibSharp.Library.GrowthRates
}
public GrowthRateLibrary(ulong initialCapacity) : base(
Creatureliblibrary.Generated.GrowthRateLibrary.Construct(initialCapacity))
Creaturelib.Generated.GrowthRateLibrary.Construct(initialCapacity))
{
}
public byte CalculateLevel(string growthRateName, uint experience)
{
byte b = 0;
Creatureliblibrary.Generated.GrowthRateLibrary.CalculateLevel(ref b, Ptr, growthRateName.ToPtr(),
Creaturelib.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(),
Creaturelib.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();
Creaturelib.Generated.GrowthRateLibrary.AddGrowthRate(Ptr, name.ToPtr(), gr.Ptr).Assert();
}
protected override void DeletePtr()
{
Creatureliblibrary.Generated.GrowthRateLibrary.Destruct(Ptr);
Creaturelib.Generated.GrowthRateLibrary.Destruct(Ptr);
}
}
}

View File

@@ -6,14 +6,14 @@ namespace PkmnLibSharp.Library.GrowthRates
public class LookupGrowthRate : GrowthRate
{
public LookupGrowthRate(uint[] experiencePerLevel) : base(
Creatureliblibrary.Generated.LookupGrowthRate.Construct(experiencePerLevel.ArrayPtr(),
Creaturelib.Generated.LookupGrowthRate.Construct(experiencePerLevel.ArrayPtr(),
(ulong) experiencePerLevel.Length))
{
}
protected override void DeletePtr()
{
Creatureliblibrary.Generated.LookupGrowthRate.Destruct(Ptr);
Creaturelib.Generated.LookupGrowthRate.Destruct(Ptr);
}
}
}

View File

@@ -12,18 +12,18 @@ namespace PkmnLibSharp.Library.Items
{
}
public string Name => _name ??= Creatureliblibrary.Generated.Item.GetName(Ptr).PtrString();
public ItemCategory Category => (ItemCategory) Creatureliblibrary.Generated.Item.GetCategory(Ptr);
public string Name => _name ??= Creaturelib.Generated.Item.GetName(Ptr).PtrString();
public ItemCategory Category => (ItemCategory) Creaturelib.Generated.Item.GetCategory(Ptr);
public BattleItemCategory BattleCategory =>
(BattleItemCategory) Creatureliblibrary.Generated.Item.GetBattleCategory(Ptr);
(BattleItemCategory) Creaturelib.Generated.Item.GetBattleCategory(Ptr);
public int Price => Creatureliblibrary.Generated.Item.GetPrice(Ptr);
public int Price => Creaturelib.Generated.Item.GetPrice(Ptr);
public byte FlingPower => Pkmnlib.Generated.Item.GetFlingPower(Ptr);
public bool HasFlag(string s)
{
return Creatureliblibrary.Generated.Item.HasFlag(Ptr, s.ToPtr()) == MarshalHelper.True;
return Creaturelib.Generated.Item.HasFlag(Ptr, s.ToPtr()) == MarshalHelper.True;
}
public static Item Create(string name, ItemCategory category, BattleItemCategory battleCategory,

View File

@@ -14,21 +14,21 @@ namespace PkmnLibSharp.Library.Items
}
public ItemLibrary(ulong initialCapacity) : base(
Creatureliblibrary.Generated.ItemLibrary.Construct(initialCapacity))
Creaturelib.Generated.ItemLibrary.Construct(initialCapacity))
{
}
public ulong Count => Creatureliblibrary.Generated.ItemLibrary.GetCount(Ptr);
public ulong Count => Creaturelib.Generated.ItemLibrary.GetCount(Ptr);
public void Insert(string key, Item item)
{
Creatureliblibrary.Generated.ItemLibrary.Insert(Ptr, key.ToPtr(), item.Ptr).Assert();
Creaturelib.Generated.ItemLibrary.Insert(Ptr, key.ToPtr(), item.Ptr).Assert();
_cache.Add(key, item);
}
public void Delete(string key)
{
Creatureliblibrary.Generated.ItemLibrary.Delete(Ptr, key.ToPtr()).Assert();
Creaturelib.Generated.ItemLibrary.Delete(Ptr, key.ToPtr()).Assert();
_cache.Remove(key);
}
@@ -37,7 +37,7 @@ namespace PkmnLibSharp.Library.Items
if (_cache.TryGetValue(key, out item))
return true;
var ptr = IntPtr.Zero;
if (Creatureliblibrary.Generated.ItemLibrary.TryGet(Ptr, key.ToPtr(), ref ptr) != MarshalHelper.True)
if (Creaturelib.Generated.ItemLibrary.TryGet(Ptr, key.ToPtr(), ref ptr) != MarshalHelper.True)
return false;
if (TryResolvePointer(ptr, out item))
{
@@ -55,7 +55,7 @@ namespace PkmnLibSharp.Library.Items
if (_cache.TryGetValue(key, out var item))
return item;
var ptr = IntPtr.Zero;
Creatureliblibrary.Generated.ItemLibrary.Get(Ptr, key.ToPtr(), ref ptr).Assert();
Creaturelib.Generated.ItemLibrary.Get(Ptr, key.ToPtr(), ref ptr).Assert();
if (TryResolvePointer(ptr, out item))
{
_cache.Add(key, item);
@@ -75,7 +75,7 @@ namespace PkmnLibSharp.Library.Items
protected override void DeletePtr()
{
Creatureliblibrary.Generated.ItemLibrary.Destruct(Ptr);
Creaturelib.Generated.ItemLibrary.Destruct(Ptr);
}
}
}

View File

@@ -1,5 +1,5 @@
using System;
using Creatureliblibrary.Generated;
using Creaturelib.Generated;
using PkmnLibSharp.Library.Moves;
using PkmnLibSharp.Utilities;

View File

@@ -5,8 +5,8 @@ namespace PkmnLibSharp.Library
{
public class LibrarySettings : PointerWrapper
{
public byte MaximalLevel => Creatureliblibrary.Generated.LibrarySettings.GetMaximalLevel(Ptr);
public byte MaximalMoves => Creatureliblibrary.Generated.LibrarySettings.GetMaximalMoves(Ptr);
public byte MaximalLevel => Creaturelib.Generated.LibrarySettings.GetMaximalLevel(Ptr);
public byte MaximalMoves => Creaturelib.Generated.LibrarySettings.GetMaximalMoves(Ptr);
public ushort ShinyRate => Pkmnlib.Generated.LibrarySettings.GetShinyRate(Ptr);
internal LibrarySettings()

View File

@@ -1,7 +1,7 @@
using System;
using System.Linq;
using Creatureliblibrary;
using Creatureliblibrary.Generated;
using Creaturelib;
using Creaturelib.Generated;
using PkmnLibSharp.Utilities;
namespace PkmnLibSharp.Library.Moves

View File

@@ -1,6 +1,6 @@
using System;
using System.Collections.Generic;
using Creatureliblibrary.Generated;
using Creaturelib.Generated;
using PkmnLibSharp.Utilities;
namespace PkmnLibSharp.Library.Moves

View File

@@ -1,5 +1,5 @@
using System;
using Creatureliblibrary.Generated;
using Creaturelib.Generated;
using PkmnLibSharp.Library.Moves;
using PkmnLibSharp.Utilities;
using GrowthRateLibrary = PkmnLibSharp.Library.GrowthRates.GrowthRateLibrary;

View File

@@ -1,6 +1,6 @@
using System;
using System.Collections.Generic;
using Creatureliblibrary.Generated;
using Creaturelib.Generated;
using Pkmnlib;
using Pkmnlib.Generated;
using PkmnLibSharp.Utilities;

View File

@@ -7,17 +7,17 @@ namespace PkmnLibSharp.Library
public class SpeciesLibrary : PointerWrapper
{
private readonly Dictionary<string, Species> _cache = new Dictionary<string, Species>(StringComparer.InvariantCultureIgnoreCase);
public ulong Count => Creatureliblibrary.Generated.SpeciesLibrary.GetCount(Ptr);
public ulong Count => Creaturelib.Generated.SpeciesLibrary.GetCount(Ptr);
public void Insert(string key, Species species)
{
Creatureliblibrary.Generated.SpeciesLibrary.Insert(Ptr, key.ToPtr(), species.Ptr).Assert();
Creaturelib.Generated.SpeciesLibrary.Insert(Ptr, key.ToPtr(), species.Ptr).Assert();
_cache.Add(key, species);
}
public void Delete(string key)
{
Creatureliblibrary.Generated.SpeciesLibrary.Delete(Ptr, key.ToPtr()).Assert();
Creaturelib.Generated.SpeciesLibrary.Delete(Ptr, key.ToPtr()).Assert();
_cache.Remove(key);
}
@@ -26,7 +26,7 @@ namespace PkmnLibSharp.Library
if (_cache.TryGetValue(key, out species))
return true;
var ptr = IntPtr.Zero;
if (Creatureliblibrary.Generated.SpeciesLibrary.TryGet(Ptr, key.ToPtr(), ref ptr) != MarshalHelper.True)
if (Creaturelib.Generated.SpeciesLibrary.TryGet(Ptr, key.ToPtr(), ref ptr) != MarshalHelper.True)
return false;
if (TryResolvePointer(ptr, out species))
{
@@ -43,7 +43,7 @@ namespace PkmnLibSharp.Library
if (_cache.TryGetValue(key, out var species))
return species;
var ptr = IntPtr.Zero;
Creatureliblibrary.Generated.SpeciesLibrary.Get(Ptr, key.ToPtr(), ref ptr).Assert();
Creaturelib.Generated.SpeciesLibrary.Get(Ptr, key.ToPtr(), ref ptr).Assert();
if (TryResolvePointer(ptr, out species))
{
_cache.Add(key, species);
@@ -59,13 +59,13 @@ namespace PkmnLibSharp.Library
}
public SpeciesLibrary(ulong initialCapacity) : base(
Creatureliblibrary.Generated.SpeciesLibrary.Construct(initialCapacity))
Creaturelib.Generated.SpeciesLibrary.Construct(initialCapacity))
{
}
protected override void DeletePtr()
{
Creatureliblibrary.Generated.SpeciesLibrary.Destruct(Ptr);
Creaturelib.Generated.SpeciesLibrary.Destruct(Ptr);
}
protected internal override void MarkAsDeleted()

View File

@@ -14,7 +14,7 @@ namespace PkmnLibSharp.Library
}
public TypeLibrary(ulong initialCapacity) : base(
Creatureliblibrary.Generated.TypeLibrary.Construct(initialCapacity))
Creaturelib.Generated.TypeLibrary.Construct(initialCapacity))
{
}
@@ -22,7 +22,7 @@ namespace PkmnLibSharp.Library
{
if (_cache.TryGetValue(typeName, out var b))
return b;
Creatureliblibrary.Generated.TypeLibrary.GetTypeId(ref b, Ptr, typeName.ToPtr()).Assert();
Creaturelib.Generated.TypeLibrary.GetTypeId(ref b, Ptr, typeName.ToPtr()).Assert();
_cache.Add(typeName, b);
return b;
}
@@ -30,20 +30,20 @@ namespace PkmnLibSharp.Library
public byte RegisterType(string typeName)
{
byte b = 0;
Creatureliblibrary.Generated.TypeLibrary.RegisterType(ref b, Ptr, typeName.ToPtr()).Assert();
Creaturelib.Generated.TypeLibrary.RegisterType(ref b, Ptr, typeName.ToPtr()).Assert();
_cache.Add(typeName, b);
return b;
}
public void SetEffectiveness(byte attackingId, byte defensiveId, float effectiveness)
{
Creatureliblibrary.Generated.TypeLibrary.SetEffectiveness(Ptr, attackingId, defensiveId, effectiveness);
Creaturelib.Generated.TypeLibrary.SetEffectiveness(Ptr, attackingId, defensiveId, effectiveness);
}
public float GetSingleEffectiveness(byte attackingId, byte defensiveId)
{
float f = 0;
Creatureliblibrary.Generated.TypeLibrary.GetSingleEffectiveness(ref f, Ptr, attackingId, defensiveId)
Creaturelib.Generated.TypeLibrary.GetSingleEffectiveness(ref f, Ptr, attackingId, defensiveId)
.Assert();
return f;
}
@@ -51,14 +51,14 @@ namespace PkmnLibSharp.Library
public float GetEffectiveness(byte attackingId, byte[] defensiveIds)
{
float f = 0;
Creatureliblibrary.Generated.TypeLibrary.GetEffectiveness(ref f, Ptr, attackingId, defensiveIds.ArrayPtr(),
Creaturelib.Generated.TypeLibrary.GetEffectiveness(ref f, Ptr, attackingId, defensiveIds.ArrayPtr(),
(ulong) defensiveIds.Length).Assert();
return f;
}
protected override void DeletePtr()
{
Creatureliblibrary.Generated.TypeLibrary.Destruct(Ptr);
Creaturelib.Generated.TypeLibrary.Destruct(Ptr);
}
}
}