Nature Library, Nature wrapper and tests, cleanup to ensure no duplicate enums are visible outside the library.

This commit is contained in:
Deukhoofd committed 2020-05-06 14:40:29 +02:00
1 parent 8845f33d04
commit 95a2270ca3
78 files changed
+366 -109

No files matched your search

@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creaturelibbattling
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum AttackCategory : byte
internal enum AttackCategory : byte
{
Physical = 0,
Magical = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creaturelibbattling
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum AttackLearnMethod : int
internal enum AttackLearnMethod : int
{
Unknown = 0,
Level = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creaturelibbattling
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum AttackTarget : byte
internal enum AttackTarget : byte
{
Adjacent = 0,
AdjacentAlly = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creaturelibbattling
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum BattleItemCategory : byte
internal enum BattleItemCategory : byte
{
None = 0,
Healing = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creaturelibbattling
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum DamageSource : byte
internal enum DamageSource : byte
{
AttackDamage = 0,
}
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creaturelibbattling
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum EffectParameterType : byte
internal enum EffectParameterType : byte
{
None = 0,
Bool = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creaturelibbattling
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum EventDataKind : byte
internal enum EventDataKind : byte
{
Damage = 0,
Heal = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creaturelibbattling
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum Gender : byte
internal enum Gender : byte
{
Male = 0,
Female = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creaturelibbattling
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum ItemCategory : byte
internal enum ItemCategory : byte
{
MiscItem = 0,
CaptureDevice = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creaturelibbattling
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum ScriptCategory : byte
internal enum ScriptCategory : byte
{
Attack = 0,
Talent = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creaturelibbattling
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum Statistic : byte
internal enum Statistic : byte
{
Health = 0,
PhysicalAttack = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creaturelibbattling
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum TurnChoiceKind : byte
internal enum TurnChoiceKind : byte
{
Pass = 0,
Attack = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creaturelibbattling
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum memory_order : int
internal enum memory_order : int
{
memory_order_relaxed = 0,
memory_order_consume = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creatureliblibrary
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum AttackCategory : byte
internal enum AttackCategory : byte
{
Physical = 0,
Magical = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creatureliblibrary
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum AttackTarget : byte
internal enum AttackTarget : byte
{
Adjacent = 0,
AdjacentAlly = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creatureliblibrary
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum BattleItemCategory : byte
internal enum BattleItemCategory : byte
{
None = 0,
Healing = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creatureliblibrary
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum EffectParameterType : byte
internal enum EffectParameterType : byte
{
None = 0,
Bool = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creatureliblibrary
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum Gender : byte
internal enum Gender : byte
{
Male = 0,
Female = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creatureliblibrary
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum ItemCategory : byte
internal enum ItemCategory : byte
{
MiscItem = 0,
CaptureDevice = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creatureliblibrary
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum Statistic : byte
internal enum Statistic : byte
{
Health = 0,
PhysicalAttack = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Creatureliblibrary
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum memory_order : int
internal enum memory_order : int
{
memory_order_relaxed = 0,
memory_order_consume = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum AttackCategory : byte
internal enum AttackCategory : byte
{
Physical = 0,
Magical = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum AttackLearnMethod : int
internal enum AttackLearnMethod : int
{
Unknown = 0,
Level = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum AttackTarget : byte
internal enum AttackTarget : byte
{
Adjacent = 0,
AdjacentAlly = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum BattleItemCategory : byte
internal enum BattleItemCategory : byte
{
None = 0,
Healing = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum DamageSource : byte
internal enum DamageSource : byte
{
AttackDamage = 0,
}
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum EffectParameterType : byte
internal enum EffectParameterType : byte
{
None = 0,
Bool = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum EventDataKind : byte
internal enum EventDataKind : byte
{
Damage = 0,
Heal = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum EvolutionMethod : byte
internal enum EvolutionMethod : byte
{
Level = 0,
HighFriendship = 1,
+1 -1
View File
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum Gender : byte
internal enum Gender : byte
{
Male = 0,
Female = 1,
@@ -1,15 +0,0 @@
using System;
using System.Runtime.InteropServices;
namespace Pkmnlib.Generated
{
internal static class GetLastException
{
/// <summary>
///
/// </summary>
/// <returns>const char *</returns>
[DllImport("pkmnLib")]
internal static extern string PkmnLib_GetLastException();
}
}
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum ItemCategory : byte
internal enum ItemCategory : byte
{
MiscItem = 0,
CaptureDevice = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum METADATATYPE : int
internal enum METADATATYPE : int
{
MDT_TYPE = 1,
MDT_FUNC = 2,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum MoveCategory : byte
internal enum MoveCategory : byte
{
Physical = 0,
Special = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum PkmnDamageSource : byte
internal enum PkmnDamageSource : byte
{
Struggle = 1,
}
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum PkmnEventDataKind : byte
internal enum PkmnEventDataKind : byte
{
WeatherChange = 4,
}
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum PkmnScriptCategory : byte
internal enum PkmnScriptCategory : byte
{
Weather = 6,
}
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum ScriptCategory : byte
internal enum ScriptCategory : byte
{
Attack = 0,
Talent = 1,
+1 -1
View File
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum Statistic : byte
internal enum Statistic : byte
{
Health = 0,
PhysicalAttack = 1,
+1 -1
View File
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum TimeOfDay : byte
internal enum TimeOfDay : byte
{
Night = 0,
Morning = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum TurnChoiceKind : byte
internal enum TurnChoiceKind : byte
{
Pass = 0,
Attack = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum asEBehaviours : int
internal enum asEBehaviours : int
{
asBEHAVE_CONSTRUCT = 0,
asBEHAVE_LIST_CONSTRUCT = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum asECallConvTypes : int
internal enum asECallConvTypes : int
{
asCALL_CDECL = 0,
asCALL_STDCALL = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum asEContextState : int
internal enum asEContextState : int
{
asEXECUTION_FINISHED = 0,
asEXECUTION_SUSPENDED = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum asEEngineProp : int
internal enum asEEngineProp : int
{
asEP_ALLOW_UNSAFE_REFERENCES = 1,
asEP_REQUIRE_ENUM_SCOPE = 10,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum asEFuncType : int
internal enum asEFuncType : int
{
asFUNC_DUMMY = -1,
asFUNC_SYSTEM = 0,
+1 -1
View File
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum asEGMFlags : int
internal enum asEGMFlags : int
{
asGM_ONLY_IF_EXISTS = 0,
asGM_CREATE_IF_NOT_EXISTS = 1,
+1 -1
View File
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum asEMsgType : int
internal enum asEMsgType : int
{
asMSGTYPE_ERROR = 0,
asMSGTYPE_WARNING = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum asEObjTypeFlags : int
internal enum asEObjTypeFlags : int
{
asOBJ_REF = 1,
asOBJ_APP_CLASS_DESTRUCTOR = 1024,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum asERetCodes : int
internal enum asERetCodes : int
{
asERROR = -1,
asINVALID_DECLARATION = -10,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum asETokenClass : int
internal enum asETokenClass : int
{
asTC_UNKNOWN = 0,
asTC_KEYWORD = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum asETypeIdFlags : int
internal enum asETypeIdFlags : int
{
asTYPEID_VOID = 0,
asTYPEID_BOOL = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum asETypeModifiers : int
internal enum asETypeModifiers : int
{
asTM_NONE = 0,
asTM_INREF = 1,
+1 -1
View File
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum error_type : int
internal enum error_type : int
{
_S_error_collate = 0,
_S_error_ctype = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum match_flag_type : int
internal enum match_flag_type : int
{
}
}
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum memory_order : int
internal enum memory_order : int
{
memory_order_relaxed = 0,
memory_order_consume = 1,
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace Pkmnlib
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum syntax_option_type : int
internal enum syntax_option_type : int
{
}
}
+9
View File
@@ -4,6 +4,15 @@ using PkmnLibSharp.Utilities;
namespace PkmnLibSharp.Library
{
public enum EffectParameterType
{
None = 0,
Bool = 1,
Int = 2,
Float = 3,
String = 4,
}
public class EffectParameter : PointerWrapper
{
public EffectParameter(string s) : base(Creatureliblibrary.Generated.EffectParameter.FromString(s.ToPtr()))
+13 -6
View File
@@ -40,12 +40,17 @@ namespace PkmnLibSharp.Library
}
}
public uint BaseHealth => SpeciesVariant.GetStatistic(Ptr, Statistic.Health);
public uint BaseAttack => SpeciesVariant.GetStatistic(Ptr, Statistic.PhysicalAttack);
public uint BaseDefense => SpeciesVariant.GetStatistic(Ptr, Statistic.PhysicalDefense);
public uint BaseSpecialAttack => SpeciesVariant.GetStatistic(Ptr, Statistic.MagicalAttack);
public uint BaseSpecialDefense => SpeciesVariant.GetStatistic(Ptr, Statistic.MagicalDefense);
public uint BaseSpeed => SpeciesVariant.GetStatistic(Ptr, Statistic.Speed);
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 BaseSpecialAttack =>
SpeciesVariant.GetStatistic(Ptr, (Creatureliblibrary.Statistic) Statistic.SpecialAttack);
public uint BaseSpecialDefense =>
SpeciesVariant.GetStatistic(Ptr, (Creatureliblibrary.Statistic) Statistic.SpecialDefense);
public uint BaseSpeed => SpeciesVariant.GetStatistic(Ptr, (Creatureliblibrary.Statistic) Statistic.Speed);
public ImmutableArray<string> Abilities
{
@@ -67,6 +72,7 @@ namespace PkmnLibSharp.Library
return _abilities;
}
}
public ImmutableArray<string> HiddenAbilities
{
get
@@ -98,6 +104,7 @@ namespace PkmnLibSharp.Library
{
_moves = new LearnableMoves(movesPtr);
}
return _moves;
}
}
@@ -0,0 +1,11 @@
namespace PkmnLibSharp.Library.Items
{
public enum BattleItemCategory
{
None = 0,
Healing = 1,
StatusHealing = 2,
Pokeball = 3,
MiscBattleItem = 4,
}
}
@@ -1,10 +1,8 @@
using System;
using System.Linq;
using PkmnLibSharp.Utilities;
using BattleItemCategory = Pkmnlib.BattleItemCategory;
using ItemCategory = Pkmnlib.ItemCategory;
namespace PkmnLibSharp.Library
namespace PkmnLibSharp.Library.Items
{
public class Item : PointerWrapper
{
@@ -12,8 +10,10 @@ namespace PkmnLibSharp.Library
public string Name => _name ??= Creatureliblibrary.Generated.Item.GetName(Ptr).PtrString();
public ItemCategory Category => (ItemCategory) Creatureliblibrary.Generated.Item.GetCategory(Ptr);
public BattleItemCategory BattleCategory =>
(BattleItemCategory) Creatureliblibrary.Generated.Item.GetBattleCategory(Ptr);
public int Price => Creatureliblibrary.Generated.Item.GetPrice(Ptr);
public byte FlingPower => Pkmnlib.Generated.Item.GetFlingPower(Ptr);
@@ -21,7 +21,7 @@ namespace PkmnLibSharp.Library
{
return Creatureliblibrary.Generated.Item.HasFlag(Ptr, s.ToPtr()) == MarshalHelper.True;
}
internal Item(IntPtr ptr) : base(ptr)
{
}
@@ -31,8 +31,8 @@ namespace PkmnLibSharp.Library
string[] flags, byte flingPower)
{
var convertedFlags = flags.Select(x => x.ToPtr()).ToArray().ArrayPtr();
var p = Pkmnlib.Generated.Item.Construct(name.ToPtr(), category, battleCategory, price, convertedFlags,
(ulong) flags.Length, flingPower);
var p = Pkmnlib.Generated.Item.Construct(name.ToPtr(), (Pkmnlib.ItemCategory) category,
(Pkmnlib.BattleItemCategory) battleCategory, price, convertedFlags, (ulong) flags.Length, flingPower);
return new Item(p);
}
@@ -0,0 +1,14 @@
namespace PkmnLibSharp.Library
{
public enum ItemCategory
{
MiscItem = 0,
Pokeball = 1,
Medicine = 2,
Berry = 3,
TechnicalMachine = 4,
FormeChanger = 5,
KeyItem = 6,
Mail = 7,
}
}
@@ -2,7 +2,7 @@ using System;
using System.Collections.Generic;
using PkmnLibSharp.Utilities;
namespace PkmnLibSharp.Library
namespace PkmnLibSharp.Library.Items
{
public class ItemLibrary : PointerWrapper
{
+1
View File
@@ -1,5 +1,6 @@
using System;
using Creatureliblibrary.Generated;
using PkmnLibSharp.Library.Moves;
using PkmnLibSharp.Utilities;
namespace PkmnLibSharp.Library
@@ -0,0 +1,9 @@
namespace PkmnLibSharp.Library.Moves
{
public enum MoveCategory
{
Physical = 0,
Special = 1,
Status = 2,
}
}
@@ -1,12 +1,11 @@
using System;
using System.Linq;
using System.Runtime.InteropServices;
using Creatureliblibrary.Generated;
using Pkmnlib;
using PkmnLibSharp.Utilities;
using AttackCategory = Creatureliblibrary.AttackCategory;
namespace PkmnLibSharp.Library
namespace PkmnLibSharp.Library.Moves
{
public class MoveData : PointerWrapper
{
@@ -19,7 +18,7 @@ namespace PkmnLibSharp.Library
public byte BasePower => AttackData.GetBasePower(Ptr);
public byte Accuracy => AttackData.GetAccuracy(Ptr);
public byte BaseUsages => AttackData.GetBaseUsages(Ptr);
public AttackTarget Target => (AttackTarget) AttackData.GetTarget(Ptr);
public MoveTarget Target => (MoveTarget) AttackData.GetTarget(Ptr);
public sbyte Priority => AttackData.GetPriority(Ptr);
public bool HasSecondaryEffect => AttackData.HasSecondaryEffect(Ptr) == 1;
public float SecondaryEffectChance => AttackData.GetSecondaryEffectChance(Ptr);
@@ -33,7 +32,7 @@ namespace PkmnLibSharp.Library
}
public static MoveData Create(string name, byte type, MoveCategory category, byte power, byte accuracy,
byte baseUsage, AttackTarget target, sbyte priority, float effectChance, string effectName,
byte baseUsage, MoveTarget target, sbyte priority, float effectChance, string effectName,
EffectParameter[] parameters, string[] flags)
{
var ptr = IntPtr.Zero;
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using Creatureliblibrary.Generated;
using PkmnLibSharp.Utilities;
namespace PkmnLibSharp.Library
namespace PkmnLibSharp.Library.Moves
{
public class MoveLibrary : PointerWrapper
{
+18
View File
@@ -0,0 +1,18 @@
namespace PkmnLibSharp.Library.Moves
{
public enum MoveTarget
{
Adjacent = 0,
AdjacentAlly = 1,
AdjacentAllySelf = 2,
AdjacentOpponent = 3,
All = 4,
AllAdjacent = 5,
AllAdjacentOpponent = 6,
AllAlly = 7,
AllOpponent = 8,
Any = 9,
RandomOpponent = 10,
Self = 11,
}
}
+36
View File
@@ -0,0 +1,36 @@
using System;
using PkmnLibSharp.Utilities;
namespace PkmnLibSharp.Library
{
public class Nature : PointerWrapper
{
internal Nature(IntPtr ptr) : base(ptr){}
public Nature(Statistic increasedStat, Statistic decreasedStat, float increasedModifier = 1.1f,
float decreasedModifier = 0.9f) : base(Pkmnlib.Generated.Nature.Construct((Pkmnlib.Statistic) increasedStat,
(Pkmnlib.Statistic) decreasedStat,
increasedModifier, decreasedModifier))
{
}
public Nature() : this(Statistic.Health, Statistic.Health, 1f, 1f)
{
}
public float IncreasedModifier => Pkmnlib.Generated.Nature.GetIncreaseModifier(Ptr);
public float DecreasedModifier => Pkmnlib.Generated.Nature.GetDecreaseModifier(Ptr);
public Statistic IncreasedStat => (Statistic) Pkmnlib.Generated.Nature.GetIncreasedStat(Ptr);
public Statistic DecreasedStat => (Statistic) Pkmnlib.Generated.Nature.GetDecreasedStat(Ptr);
public float GetStatModifier(Statistic stat)
{
return Pkmnlib.Generated.Nature.GetStatModifier(Ptr, (Pkmnlib.Statistic) stat);
}
protected override void DeletePtr()
{
Pkmnlib.Generated.Nature.Destruct(Ptr);
}
}
}
+56
View File
@@ -0,0 +1,56 @@
using System;
using System.Collections.Generic;
using PkmnLibSharp.Utilities;
namespace PkmnLibSharp.Library
{
public class NatureLibrary : PointerWrapper
{
private readonly Dictionary<string, Nature> _cache =
new Dictionary<string, Nature>(StringComparer.InvariantCultureIgnoreCase);
private readonly Dictionary<IntPtr, string> _natureNames = new Dictionary<IntPtr, string>();
public NatureLibrary(ulong initialCapacity) : base(Pkmnlib.Generated.NatureLibrary.Construct(initialCapacity))
{
}
public void LoadNature(string name, Nature nature)
{
Pkmnlib.Generated.NatureLibrary.LoadNature(Ptr, name.ToPtr(), nature.Ptr).Assert();
_cache.Add(name, nature);
_natureNames.Add(nature.Ptr, name);
}
public Nature GetNature(string name)
{
if (_cache.TryGetValue(name, out var nature))
return nature;
var ptr = IntPtr.Zero;
Pkmnlib.Generated.NatureLibrary.GetNatureByName(Ptr, name.ToPtr(), ref ptr).Assert();
if (TryResolvePointer(ptr, out nature))
{
_cache.Add(name, nature);
_natureNames.Add(ptr, name);
return nature;
}
nature = new Nature(ptr);
_cache.Add(name, nature);
_natureNames.Add(ptr, name);
return nature;
}
public string GetNatureName(Nature nature)
{
if (_natureNames.TryGetValue(nature.Ptr, out var s))
return s;
var ptr = IntPtr.Zero;
Pkmnlib.Generated.NatureLibrary.GetNatureName(Ptr, nature.Ptr, ref ptr).Assert();
return ptr.PtrString();
}
protected override void DeletePtr()
{
Pkmnlib.Generated.NatureLibrary.Destruct(Ptr);
}
}
}
+12
View File
@@ -0,0 +1,12 @@
namespace PkmnLibSharp.Library
{
public enum Statistic : byte
{
Health = 0,
Attack = 1,
Defense = 2,
SpecialAttack = 3,
SpecialDefense = 4,
Speed = 5
}
}
+1 -1
View File
@@ -17,7 +17,7 @@ def write_enum(enum, enumNames):
f.write("using System.Diagnostics.CodeAnalysis;\n\n")
f.write("namespace {}\n{{\n".format(namespace))
f.write(" [SuppressMessage(\"ReSharper\", \"InconsistentNaming\")]\n")
f.write(" public enum {} : {}\n {{\n".format(enum["name"], resolve_enum_size(enum["byteSize"]) ))
f.write(" internal enum {} : {}\n {{\n".format(enum["name"], resolve_enum_size(enum["byteSize"]) ))
for k, v in enum["values"].items():
f.write(" {} = {},\n".format(v, k))
f.write(" }\n")