Updates CreatureLib, implements support for ItemUseScript.

This commit is contained in:
2021-03-07 19:36:09 +01:00
parent cbe5747d04
commit 3a7edb2fc3
26 changed files with 234 additions and 63 deletions

View File

@@ -7,7 +7,18 @@ namespace PkmnLibSharp.Library.Items
public class Item : PointerWrapper
{
private string? _name;
public Item(string name, ItemCategory category, BattleItemCategory battleCategory, int price, string effectName,
EffectParameter[] parameters, string[] flags, byte flingPower)
{
var convertedFlags = flags.Select(x => x.ToPtr()).ToArray().ArrayPtr();
var pars = parameters.Select(x => x.Ptr).ToArray().ArrayPtr();
var p = Pkmnlib.Generated.Item.Construct(name.ToPtr(), (Pkmnlib.ItemCategory) category,
(Pkmnlib.BattleItemCategory) battleCategory, price, effectName.ToPtr(), pars, (ulong) parameters.Length,
convertedFlags, (ulong) flags.Length, flingPower);
Initialize(p);
}
public string Name => _name ??= Creaturelib.Generated.Item.GetName(Ptr).PtrString()!;
public ItemCategory Category => (ItemCategory) Creaturelib.Generated.Item.GetCategory(Ptr);
@@ -22,16 +33,6 @@ namespace PkmnLibSharp.Library.Items
return Creaturelib.Generated.Item.HasFlag(Ptr, s.ToPtr()) == MarshalHelper.True;
}
public Item (string name, ItemCategory category, BattleItemCategory battleCategory,
int price,
string[] flags, byte flingPower)
{
var convertedFlags = flags.Select(x => x.ToPtr()).ToArray().ArrayPtr();
var p = Pkmnlib.Generated.Item.Construct(name.ToPtr(), (Pkmnlib.ItemCategory) category,
(Pkmnlib.BattleItemCategory) battleCategory, price, convertedFlags, (ulong) flags.Length, flingPower);
Initialize(p);
}
public override string ToString()
{
return base.ToString() + $": {Name}";