Cleanup for EventData.

This commit is contained in:
Deukhoofd committed 2020-08-14 16:15:19 +02:00
1 parent 504bee3bda
commit 00cfd3c469
36 files changed
+281 -112

No files matched your search

@@ -20,14 +20,30 @@ namespace PkmnLibSharp.Battling.Events
{
_del = del;
_innerDel = OnEventPtr;
FunctionPtr = Marshal.GetFunctionPointerForDelegate<BattleEventPtrDelegate>(_innerDel);
FunctionPtr = Marshal.GetFunctionPointerForDelegate(_innerDel);
}
public void EnsureFinishedListening()
{
try
{
_currentTask?.Wait();
}
catch (AggregateException e)
{
LogHandler.Log(LogHandler.LogLevel.Error, e.GetBaseException().Message);
}
catch (Exception e)
{
LogHandler.Log(LogHandler.LogLevel.Error, e.Message);
}
}
private void OnEventPtr(IntPtr ptr)
{
// If we're still registering another event, wait until that's done. This ensures events always arrive in
// the correct order.
_currentTask?.Wait();
EnsureFinishedListening();
// We do however want to run the event handler async, so that the battle code can keep running up till its
// next event.
_currentTask = Task.Run(() => InternalRunner(ptr));
@@ -60,10 +76,21 @@ namespace PkmnLibSharp.Battling.Events
return new ExperienceGainEvent(evtType, ptr);
case EventDataKind.DisplayText:
break;
case EventDataKind.Miss:
break;
case EventDataKind.ChangeSpecies:
break;
case EventDataKind.ChangeVariant:
break;
case EventDataKind.AttackUse:
break;
case EventDataKind.WeatherChange:
break;
case EventDataKind.StatusChange:
break;
default:
throw new ArgumentOutOfRangeException();
throw new ArgumentOutOfRangeException($"Unknown event kind: " + evtType);
}
Creaturelib.Generated.EventData.Destruct(ptr);
throw new NotImplementedException($"Unhandled battle event: '{evtType}'");
}
}
@@ -0,0 +1,29 @@
using System;
using PkmnLibSharp.Utilities;
namespace PkmnLibSharp.Battling.Events
{
public class DisplayTextEvent : EventData
{
internal DisplayTextEvent(EventDataKind kind, IntPtr ptr) : base(kind, ptr)
{
}
public string Text
{
get
{
if (_text != null) return _text;
_text = Creaturelib.Generated.DisplayTextEvent.GetText(Ptr).PtrString();
return _text!;
}
}
private string? _text;
protected override void DeletePtr()
{
Creaturelib.Generated.DisplayTextEvent.Destruct(Ptr);
}
}
}
@@ -9,6 +9,13 @@ namespace PkmnLibSharp.Battling.Events
TurnStart = 4,
TurnEnd = 5,
ExperienceGain = 6,
DisplayText = 7,
Miss = 7,
DisplayText = 8,
ChangeSpecies = 9,
ChangeVariant = 10,
AttackUse = 11,
WeatherChange = 128,
StatusChange = 129,
}
}
+30
View File
@@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
namespace PkmnLibSharp.Battling
{
public static class LogHandler
{
private static readonly List<Action<LogLevel, string>> Listeners = new List<Action<LogLevel, string>>();
public enum LogLevel
{
Information,
Warning,
Error
}
public static void RegisterListener(Action<LogLevel, string> listener)
{
Listeners.Add(listener);
}
internal static void Log(LogLevel level, string message)
{
foreach (var listener in Listeners)
{
listener(level, message);
}
}
}
}
+1
View File
@@ -4,5 +4,6 @@ namespace PkmnLibSharp.Battling
{
Unknown = 0,
Level = 1,
Tutor = 2,
}
}
+20
View File
@@ -402,6 +402,26 @@ namespace PkmnLibSharp.Battling
Pkmnlib.Generated.Pokemon.ChangeFriendship(Ptr, amount);
}
public byte FirstAvailableMoveSlot()
{
return Creaturelib.Generated.Creature.GetAvailableAttackSlot(Ptr);
}
public void AddMove(LearnedMove move)
{
Creaturelib.Generated.Creature.AddAttack(Ptr, move.Ptr).Assert();
}
public void ReplaceMove(byte index, LearnedMove move)
{
Creaturelib.Generated.Creature.ReplaceAttack(Ptr, index, move.Ptr).Assert();
}
public void SwapMoves(byte a, byte b)
{
Creaturelib.Generated.Creature.SwapAttack(Ptr, a, b).Assert();
}
private Species? _displaySpecies;
private Forme? _displayForme;
private Species? _species;
@@ -8,8 +8,6 @@ namespace Creaturelib
{
Adjacent = 0,
AdjacentAlly = 1,
RandomOpponent = 10,
Self = 11,
AdjacentAllySelf = 2,
AdjacentOpponent = 3,
All = 4,
@@ -18,5 +16,7 @@ namespace Creaturelib
AllAlly = 7,
AllOpponent = 8,
Any = 9,
RandomOpponent = 10,
Self = 11,
}
}
@@ -46,6 +46,13 @@ namespace Creaturelib.Generated
[DllImport("CreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_GetVariant")]
internal static extern IntPtr GetVariant(IntPtr p);
/// <param name="p">Creature *</param>
/// <param name="species">const CreatureSpecies *</param>
/// <param name="variant">const SpeciesVariant *</param>
/// <returns>unsigned char</returns>
[DllImport("CreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_ChangeSpecies")]
internal static extern byte ChangeSpecies(IntPtr p, IntPtr species, IntPtr variant);
/// <param name="p">Creature *</param>
/// <param name="variant">const SpeciesVariant *</param>
/// <returns>unsigned char</returns>
@@ -295,5 +302,30 @@ namespace Creaturelib.Generated
[DllImport("CreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_GetStatBoost")]
internal static extern sbyte GetStatBoost(IntPtr p, Statistic stat);
/// <param name="p">const Creature *</param>
/// <returns>unsigned char</returns>
[DllImport("CreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_GetAvailableAttackSlot")]
internal static extern byte GetAvailableAttackSlot(IntPtr p);
/// <param name="p">Creature *</param>
/// <param name="attack">LearnedAttack *</param>
/// <returns>unsigned char</returns>
[DllImport("CreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_AddAttack")]
internal static extern byte AddAttack(IntPtr p, IntPtr attack);
/// <param name="p">Creature *</param>
/// <param name="index">long unsigned int</param>
/// <param name="attack">LearnedAttack *</param>
/// <returns>unsigned char</returns>
[DllImport("CreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_ReplaceAttack")]
internal static extern byte ReplaceAttack(IntPtr p, ulong index, IntPtr attack);
/// <param name="p">Creature *</param>
/// <param name="a">long unsigned int</param>
/// <param name="b">long unsigned int</param>
/// <returns>unsigned char</returns>
[DllImport("CreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_SwapAttack")]
internal static extern byte SwapAttack(IntPtr p, ulong a, ulong b);
}
}
@@ -13,6 +13,10 @@ namespace Creaturelib
TurnStart = 4,
TurnEnd = 5,
ExperienceGain = 6,
DisplayText = 7,
Miss = 7,
DisplayText = 8,
ChangeSpecies = 9,
ChangeVariant = 10,
AttackUse = 11,
}
}
@@ -24,8 +24,8 @@ namespace Creaturelib.Generated
/// <param name="p">const LibrarySettings *</param>
/// <returns>unsigned char</returns>
[DllImport("CreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_LibrarySettings_GetMaximalMoves")]
internal static extern byte GetMaximalMoves(IntPtr p);
[DllImport("CreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_LibrarySettings_GetMaximalAttacks")]
internal static extern byte GetMaximalAttacks(IntPtr p);
}
}
@@ -8,8 +8,6 @@ namespace Pkmnlib
{
Adjacent = 0,
AdjacentAlly = 1,
RandomOpponent = 10,
Self = 11,
AdjacentAllySelf = 2,
AdjacentOpponent = 3,
All = 4,
@@ -18,5 +16,7 @@ namespace Pkmnlib
AllAlly = 7,
AllOpponent = 8,
Any = 9,
RandomOpponent = 10,
Self = 11,
}
}
@@ -13,6 +13,10 @@ namespace Pkmnlib
TurnStart = 4,
TurnEnd = 5,
ExperienceGain = 6,
DisplayText = 7,
Miss = 7,
DisplayText = 8,
ChangeSpecies = 9,
ChangeVariant = 10,
AttackUse = 11,
}
}
@@ -8,9 +8,6 @@ namespace Pkmnlib
{
Level = 0,
HighFriendship = 1,
TradeWithHeldItem = 10,
TradeWithSpecificPokemon = 11,
Custom = 12,
KnownMove = 2,
LocationBased = 3,
TimeBased = 4,
@@ -19,5 +16,8 @@ namespace Pkmnlib
EvolutionItemUse = 7,
EvolutionItemUseWithGender = 8,
Trade = 9,
TradeWithHeldItem = 10,
TradeWithSpecificPokemon = 11,
Custom = 12,
}
}
@@ -8,11 +8,6 @@ namespace Pkmnlib
{
asBEHAVE_CONSTRUCT = 0,
asBEHAVE_LIST_CONSTRUCT = 1,
asBEHAVE_SETGCFLAG = 10,
asBEHAVE_GETGCFLAG = 11,
asBEHAVE_ENUMREFS = 12,
asBEHAVE_RELEASEREFS = 13,
asBEHAVE_MAX = 14,
asBEHAVE_DESTRUCT = 2,
asBEHAVE_FACTORY = 3,
asBEHAVE_LIST_FACTORY = 4,
@@ -21,5 +16,10 @@ namespace Pkmnlib
asBEHAVE_GET_WEAKREF_FLAG = 7,
asBEHAVE_TEMPLATE_CALLBACK = 8,
asBEHAVE_FIRST_GC = 9,
asBEHAVE_SETGCFLAG = 10,
asBEHAVE_GETGCFLAG = 11,
asBEHAVE_ENUMREFS = 12,
asBEHAVE_RELEASEREFS = 13,
asBEHAVE_MAX = 14,
}
}
@@ -7,6 +7,14 @@ namespace Pkmnlib
internal enum asEEngineProp : int
{
asEP_ALLOW_UNSAFE_REFERENCES = 1,
asEP_OPTIMIZE_BYTECODE = 2,
asEP_COPY_SCRIPT_SECTIONS = 3,
asEP_MAX_STACK_SIZE = 4,
asEP_USE_CHARACTER_LITERALS = 5,
asEP_ALLOW_MULTILINE_STRINGS = 6,
asEP_ALLOW_IMPLICIT_HANDLE_TYPES = 7,
asEP_BUILD_WITHOUT_LINE_CUES = 8,
asEP_INIT_GLOBAL_VARS_AFTER_BUILD = 9,
asEP_REQUIRE_ENUM_SCOPE = 10,
asEP_SCRIPT_SCANNER = 11,
asEP_INCLUDE_JIT_INSTRUCTIONS = 12,
@@ -17,7 +25,6 @@ namespace Pkmnlib
asEP_DISALLOW_GLOBAL_VARS = 17,
asEP_ALWAYS_IMPL_DEFAULT_CONSTRUCT = 18,
asEP_COMPILER_WARNINGS = 19,
asEP_OPTIMIZE_BYTECODE = 2,
asEP_DISALLOW_VALUE_ASSIGN_FOR_REF_TYPE = 20,
asEP_ALTER_SYNTAX_NAMED_ARGS = 21,
asEP_DISABLE_INTEGER_DIVISION = 22,
@@ -28,15 +35,8 @@ namespace Pkmnlib
asEP_MAX_NESTED_CALLS = 27,
asEP_GENERIC_CALL_MODE = 28,
asEP_INIT_STACK_SIZE = 29,
asEP_COPY_SCRIPT_SECTIONS = 3,
asEP_INIT_CALL_STACK_SIZE = 30,
asEP_MAX_CALL_STACK_SIZE = 31,
asEP_LAST_PROPERTY = 32,
asEP_MAX_STACK_SIZE = 4,
asEP_USE_CHARACTER_LITERALS = 5,
asEP_ALLOW_MULTILINE_STRINGS = 6,
asEP_ALLOW_IMPLICIT_HANDLE_TYPES = 7,
asEP_BUILD_WITHOUT_LINE_CUES = 8,
asEP_INIT_GLOBAL_VARS_AFTER_BUILD = 9,
}
}
@@ -7,51 +7,51 @@ namespace Pkmnlib
internal enum asEObjTypeFlags : int
{
asOBJ_REF = 1,
asOBJ_APP_CLASS_DESTRUCTOR = 1024,
asOBJ_IMPLICIT_HANDLE = 1048576,
asOBJ_APP_ALIGN16 = 1073741824,
asOBJ_ASHANDLE = 128,
asOBJ_APP_CLASS_D = 1280,
asOBJ_APP_CLASS_ALLFLOATS = 131072,
asOBJ_TEMPLATE_SUBTYPE = 134217728,
asOBJ_NOHANDLE = 16,
asOBJ_APP_FLOAT = 16384,
asOBJ_FUNCDEF = 16777216,
asOBJ_APP_CLASS_CD = 1792,
asOBJ_VALUE = 2,
asOBJ_APP_CLASS_ASSIGNMENT = 2048,
asOBJ_MASK_VALID_FLAGS = 2097151,
asOBJ_SCRIPT_OBJECT = 2097152,
asOBJ_APP_CLASS_A = 2304,
asOBJ_APP_CLASS = 256,
asOBJ_NOCOUNT = 262144,
asOBJ_TYPEDEF = 268435456,
asOBJ_APP_CLASS_CA = 2816,
asOBJ_SCOPED = 32,
asOBJ_APP_ARRAY = 32768,
asOBJ_APP_CLASS_DA = 3328,
asOBJ_LIST_PATTERN = 33554432,
asOBJ_APP_CLASS_CDA = 3840,
asOBJ_GC = 4,
asOBJ_POD = 8,
asOBJ_NOHANDLE = 16,
asOBJ_SCOPED = 32,
asOBJ_TEMPLATE = 64,
asOBJ_ASHANDLE = 128,
asOBJ_APP_CLASS = 256,
asOBJ_APP_CLASS_CONSTRUCTOR = 512,
asOBJ_APP_CLASS_C = 768,
asOBJ_APP_CLASS_DESTRUCTOR = 1024,
asOBJ_APP_CLASS_D = 1280,
asOBJ_APP_CLASS_CD = 1792,
asOBJ_APP_CLASS_ASSIGNMENT = 2048,
asOBJ_APP_CLASS_A = 2304,
asOBJ_APP_CLASS_CA = 2816,
asOBJ_APP_CLASS_DA = 3328,
asOBJ_APP_CLASS_CDA = 3840,
asOBJ_APP_CLASS_COPY_CONSTRUCTOR = 4096,
asOBJ_SHARED = 4194304,
asOBJ_APP_CLASS_K = 4352,
asOBJ_APP_CLASS_CK = 4864,
asOBJ_APP_CLASS_CONSTRUCTOR = 512,
asOBJ_APP_CLASS_ALIGN8 = 524288,
asOBJ_ABSTRACT = 536870912,
asOBJ_APP_CLASS_DK = 5376,
asOBJ_APP_CLASS_CDK = 5888,
asOBJ_TEMPLATE = 64,
asOBJ_APP_CLASS_AK = 6400,
asOBJ_APP_CLASS_ALLINTS = 65536,
asOBJ_ENUM = 67108864,
asOBJ_APP_CLASS_CAK = 6912,
asOBJ_APP_CLASS_DAK = 7424,
asOBJ_APP_CLASS_C = 768,
asOBJ_APP_CLASS_CDAK = 7936,
asOBJ_POD = 8,
asOBJ_APP_PRIMITIVE = 8192,
asOBJ_APP_FLOAT = 16384,
asOBJ_APP_ARRAY = 32768,
asOBJ_APP_CLASS_ALLINTS = 65536,
asOBJ_APP_CLASS_ALLFLOATS = 131072,
asOBJ_NOCOUNT = 262144,
asOBJ_APP_CLASS_ALIGN8 = 524288,
asOBJ_IMPLICIT_HANDLE = 1048576,
asOBJ_MASK_VALID_FLAGS = 2097151,
asOBJ_SCRIPT_OBJECT = 2097152,
asOBJ_SHARED = 4194304,
asOBJ_NOINHERIT = 8388608,
asOBJ_FUNCDEF = 16777216,
asOBJ_LIST_PATTERN = 33554432,
asOBJ_ENUM = 67108864,
asOBJ_TEMPLATE_SUBTYPE = 134217728,
asOBJ_TYPEDEF = 268435456,
asOBJ_ABSTRACT = 536870912,
asOBJ_APP_ALIGN16 = 1073741824,
}
}
+26 -26
View File
@@ -6,34 +6,34 @@ namespace Pkmnlib
[SuppressMessage("ReSharper", "InconsistentNaming")]
internal enum asERetCodes : int
{
asERROR = -1,
asINVALID_DECLARATION = -10,
asINVALID_OBJECT = -11,
asINVALID_TYPE = -12,
asALREADY_REGISTERED = -13,
asMULTIPLE_FUNCTIONS = -14,
asNO_MODULE = -15,
asNO_GLOBAL_VAR = -16,
asINVALID_CONFIGURATION = -17,
asINVALID_INTERFACE = -18,
asCANT_BIND_ALL_FUNCTIONS = -19,
asCONTEXT_ACTIVE = -2,
asLOWER_ARRAY_DIMENSION_NOT_REGISTERED = -20,
asWRONG_CONFIG_GROUP = -21,
asCONFIG_GROUP_IS_IN_USE = -22,
asILLEGAL_BEHAVIOUR_FOR_TYPE = -23,
asWRONG_CALLING_CONV = -24,
asBUILD_IN_PROGRESS = -25,
asINIT_GLOBAL_VARS_FAILED = -26,
asOUT_OF_MEMORY = -27,
asMODULE_IS_IN_USE = -28,
asCONTEXT_NOT_FINISHED = -3,
asCONTEXT_NOT_PREPARED = -4,
asINVALID_ARG = -5,
asNO_FUNCTION = -6,
asNOT_SUPPORTED = -7,
asINVALID_NAME = -8,
asOUT_OF_MEMORY = -27,
asINIT_GLOBAL_VARS_FAILED = -26,
asBUILD_IN_PROGRESS = -25,
asWRONG_CALLING_CONV = -24,
asILLEGAL_BEHAVIOUR_FOR_TYPE = -23,
asCONFIG_GROUP_IS_IN_USE = -22,
asWRONG_CONFIG_GROUP = -21,
asLOWER_ARRAY_DIMENSION_NOT_REGISTERED = -20,
asCANT_BIND_ALL_FUNCTIONS = -19,
asINVALID_INTERFACE = -18,
asINVALID_CONFIGURATION = -17,
asNO_GLOBAL_VAR = -16,
asNO_MODULE = -15,
asMULTIPLE_FUNCTIONS = -14,
asALREADY_REGISTERED = -13,
asINVALID_TYPE = -12,
asINVALID_OBJECT = -11,
asINVALID_DECLARATION = -10,
asNAME_TAKEN = -9,
asINVALID_NAME = -8,
asNOT_SUPPORTED = -7,
asNO_FUNCTION = -6,
asINVALID_ARG = -5,
asCONTEXT_NOT_PREPARED = -4,
asCONTEXT_NOT_FINISHED = -3,
asCONTEXT_ACTIVE = -2,
asERROR = -1,
asSUCCESS = 0,
}
}
@@ -8,22 +8,22 @@ namespace Pkmnlib
{
asTYPEID_VOID = 0,
asTYPEID_BOOL = 1,
asTYPEID_FLOAT = 10,
asTYPEID_OBJHANDLE = 1073741824,
asTYPEID_DOUBLE = 11,
asTYPEID_SCRIPTOBJECT = 134217728,
asTYPEID_INT8 = 2,
asTYPEID_TEMPLATE = 268435456,
asTYPEID_INT16 = 3,
asTYPEID_INT32 = 4,
asTYPEID_MASK_OBJECT = 469762048,
asTYPEID_INT64 = 5,
asTYPEID_HANDLETOCONST = 536870912,
asTYPEID_UINT8 = 6,
asTYPEID_MASK_SEQNBR = 67108863,
asTYPEID_APPOBJECT = 67108864,
asTYPEID_UINT16 = 7,
asTYPEID_UINT32 = 8,
asTYPEID_UINT64 = 9,
asTYPEID_FLOAT = 10,
asTYPEID_DOUBLE = 11,
asTYPEID_MASK_SEQNBR = 67108863,
asTYPEID_APPOBJECT = 67108864,
asTYPEID_SCRIPTOBJECT = 134217728,
asTYPEID_TEMPLATE = 268435456,
asTYPEID_MASK_OBJECT = 469762048,
asTYPEID_HANDLETOCONST = 536870912,
asTYPEID_OBJHANDLE = 1073741824,
}
}
+3 -3
View File
@@ -8,9 +8,6 @@ namespace Pkmnlib
{
_S_error_collate = 0,
_S_error_ctype = 1,
_S_error_badrepeat = 10,
_S_error_complexity = 11,
_S_error_stack = 12,
_S_error_escape = 2,
_S_error_backref = 3,
_S_error_brack = 4,
@@ -19,5 +16,8 @@ namespace Pkmnlib
_S_error_badbrace = 7,
_S_error_range = 8,
_S_error_space = 9,
_S_error_badrepeat = 10,
_S_error_complexity = 11,
_S_error_stack = 12,
}
}
+1 -1
View File
@@ -6,7 +6,7 @@ namespace PkmnLibSharp.Library
public class LibrarySettings : PointerWrapper
{
public byte MaximalLevel => Creaturelib.Generated.LibrarySettings.GetMaximalLevel(Ptr);
public byte MaximalMoves => Creaturelib.Generated.LibrarySettings.GetMaximalMoves(Ptr);
public byte MaximalMoves => Creaturelib.Generated.LibrarySettings.GetMaximalAttacks(Ptr);
public ushort ShinyRate => Pkmnlib.Generated.LibrarySettings.GetShinyRate(Ptr);
internal LibrarySettings(IntPtr ptr) : base(ptr)
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,6 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=battling_005Cbattle/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=battling_005Cchoiceturn/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=battling_005Cevents_005Ceventdata/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=battling_005Clibrary/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=library_005Cspecies/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
+1 -2
View File
@@ -13,8 +13,7 @@ namespace PkmnLibSharp.Utilities
internal static string? PtrString(this IntPtr i)
{
if (i == IntPtr.Zero) return null;
return Marshal.PtrToStringAnsi(i);
return i == IntPtr.Zero ? null : Marshal.PtrToStringAnsi(i);
}
internal static IntPtr ArrayPtr(this Array a)
+1 -1
View File
@@ -1 +1 @@
{"enums":[{"byteSize":1,"filename":"CreatureLib","name":"ScriptCategory","values":{"0":"Attack","1":"Talent","2":"Status","3":"Creature","4":"Battle","5":"Side"}},{"byteSize":1,"filename":"CreatureLib","name":"Statistic","values":{"0":"Health","1":"PhysicalAttack","2":"PhysicalDefense","3":"MagicalAttack","4":"MagicalDefense","5":"Speed"}},{"byteSize":1,"filename":"CreatureLib","name":"Gender","values":{"0":"Male","1":"Female","2":"Genderless"}},{"byteSize":1,"filename":"CreatureLib","name":"ItemCategory","values":{"0":"MiscItem","1":"CaptureDevice","2":"Medicine","3":"Berry","4":"MoveLearner","5":"VariantChanger","6":"KeyItem","7":"Mail"}},{"byteSize":1,"filename":"CreatureLib","name":"BattleItemCategory","values":{"0":"None","1":"Healing","2":"StatusHealing","3":"CaptureDevice","4":"MiscBattleItem"}},{"byteSize":1,"filename":"CreatureLib","name":"DamageSource","values":{"0":"AttackDamage"}},{"byteSize":1,"filename":"CreatureLib","name":"EventDataKind","values":{"0":"Damage","1":"Heal","2":"Faint","3":"Switch","4":"TurnStart","5":"TurnEnd","6":"ExperienceGain","7":"DisplayText"}},{"byteSize":4,"filename":"CreatureLib","name":"AttackLearnMethod","values":{"0":"Unknown","1":"Level"}},{"byteSize":1,"filename":"CreatureLib","name":"TurnChoiceKind","values":{"0":"Pass","1":"Attack","2":"Item","3":"Switch","4":"Flee"}},{"byteSize":1,"filename":"CreatureLib","name":"EffectParameterType","values":{"0":"None","1":"Bool","2":"Int","3":"Float","4":"String"}},{"byteSize":1,"filename":"CreatureLib","name":"AttackCategory","values":{"0":"Physical","1":"Magical","2":"Status"}},{"byteSize":1,"filename":"CreatureLib","name":"AttackTarget","values":{"0":"Adjacent","1":"AdjacentAlly","10":"RandomOpponent","11":"Self","2":"AdjacentAllySelf","3":"AdjacentOpponent","4":"All","5":"AllAdjacent","6":"AllAdjacentOpponent","7":"AllAlly","8":"AllOpponent","9":"Any"}}],"functions":[{"filename":"CreatureLib","name":"CreatureLib_Battle_Construct","parameters":[{"name":"out","type":"Battle * &"},{"name":"library","type":"const BattleLibrary *"},{"name":"partyArr","type":"BattleParty * *"},{"name":"numberOfParties","type":"long unsigned int"},{"name":"canFlee","type":"bool"},{"name":"numberOfSides","type":"unsigned char"},{"name":"creaturesPerSide","type":"unsigned char"},{"name":"randomSeed","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLib","name":"CreatureLib_Battle_Destruct","parameters":[{"name":"p","type":"const Battle *"}],"returns":"void"},{"filename":"CreatureLib","name":"CreatureLib_Battle_GetLibrary","parameters":[{"name":"p","type":"const Battle *"}],"returns":"const BattleLibrary *"},{"filename":"CreatureLib","name":"CreatureLib_Battle_CanUse","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"Battle *"},{"name":"turnChoice","type":"BaseTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLib","name":"CreatureLib_Battle_TrySetChoice","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"Battle *"},{"name":"turnChoice","type":"BaseTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLib","name":"CreatureLib_Battle_CanFlee","parameters":[{"name":"p","type":"const Battle *"}],"returns":"bool"},{"filename":"CreatureLib","name":"CreatureLib_Battle_CheckChoicesSetAndRun","parameters":[{"name":"p","type":"Battle *"}],"returns":"unsigned char"},{"filename":"CreatureLib","name":"CreatureLib_Battle_GetCurrentTurn","parameters":[{"name":"p","type":"Battle *"}],"returns":"unsigned int"},{"filename":"CreatureLib","name":"CreatureLib_Battle_GetCreaturesPerSide","parameters":[{"name":"p","type":"Battle *"}],"returns":"unsigned int"},{"filename":"CreatureLib","name":"CreatureLib_Battle_GetCurrentTurnQueue","parameters":[{"name":"p","type":"const Battle *"}],"returns":"ChoiceQueue *"},{"filename":"CreatureLib","name":"CreatureLib_Battle_GetRandom","parameters":[{"name":"p","type":"Battle *"}],"returns":"BattleRandom *"},{"filename":"CreatureLib","name":"CreatureLib_Battle_CreatureInField","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"const Battle *"},{"name":"c","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLib","name":"CreatureLib_Battle_GetCreature","parameters":[{"name":"out","type":"Creature * &"},{"name":"p","type":"const Battle *"},{"name":"side","type":"unsigned char"},{"name":"target","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLib","name":"CreatureLib_Battle_ForceRecall","parameters":[{"name":"p","type":"Battle *"},{"name":"side","type":"unsigned char"},{"name":"target","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLib","name":"CreatureLib_Battle_SwitchCreature","parameters":[{"name":"p","type":"Battle *"},{"name":"side","type":"unsigned char"},{"name":"target","type":"unsigned char"},{"name":"c","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLib","name":"CreatureLib_Battle_CanSlotBeFilled","parameters":[{"name":"out","type":"bool &"},{Line truncated
{"enums":[{"byteSize":1,"filename":"CreatureLib","name":"ScriptCategory","values":{"0":"Attack","1":"Talent","2":"Status","3":"Creature","4":"Battle","5":"Side"}},{"byteSize":1,"filename":"CreatureLib","name":"Statistic","values":{"0":"Health","1":"PhysicalAttack","2":"PhysicalDefense","3":"MagicalAttack","4":"MagicalDefense","5":"Speed"}},{"byteSize":1,"filename":"CreatureLib","name":"Gender","values":{"0":"Male","1":"Female","2":"Genderless"}},{"byteSize":1,"filename":"CreatureLib","name":"ItemCategory","values":{"0":"MiscItem","1":"CaptureDevice","2":"Medicine","3":"Berry","4":"MoveLearner","5":"VariantChanger","6":"KeyItem","7":"Mail"}},{"byteSize":1,"filename":"CreatureLib","name":"BattleItemCategory","values":{"0":"None","1":"Healing","2":"StatusHealing","3":"CaptureDevice","4":"MiscBattleItem"}},{"byteSize":1,"filename":"CreatureLib","name":"DamageSource","values":{"0":"AttackDamage"}},{"byteSize":1,"filename":"CreatureLib","name":"EventDataKind","values":{"0":"Damage","1":"Heal","10":"ChangeVariant","11":"AttackUse","2":"Faint","3":"Switch","4":"TurnStart","5":"TurnEnd","6":"ExperienceGain","7":"Miss","8":"DisplayText","9":"ChangeSpecies"}},{"byteSize":4,"filename":"CreatureLib","name":"AttackLearnMethod","values":{"0":"Unknown","1":"Level"}},{"byteSize":1,"filename":"CreatureLib","name":"TurnChoiceKind","values":{"0":"Pass","1":"Attack","2":"Item","3":"Switch","4":"Flee"}},{"byteSize":1,"filename":"CreatureLib","name":"EffectParameterType","values":{"0":"None","1":"Bool","2":"Int","3":"Float","4":"String"}},{"byteSize":1,"filename":"CreatureLib","name":"AttackCategory","values":{"0":"Physical","1":"Magical","2":"Status"}},{"byteSize":1,"filename":"CreatureLib","name":"AttackTarget","values":{"0":"Adjacent","1":"AdjacentAlly","10":"RandomOpponent","11":"Self","2":"AdjacentAllySelf","3":"AdjacentOpponent","4":"All","5":"AllAdjacent","6":"AllAdjacentOpponent","7":"AllAlly","8":"AllOpponent","9":"Any"}},{"byteSize":1,"filename":"CreatureLib","name":"HistoryElementKind","values":{"0":"AttackUse"}}],"functions":[{"filename":"CreatureLib","name":"CreatureLib_Battle_Construct","parameters":[{"name":"out","type":"Battle * &"},{"name":"library","type":"const BattleLibrary *"},{"name":"partyArr","type":"BattleParty * *"},{"name":"numberOfParties","type":"long unsigned int"},{"name":"canFlee","type":"bool"},{"name":"numberOfSides","type":"unsigned char"},{"name":"creaturesPerSide","type":"unsigned char"},{"name":"randomSeed","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLib","name":"CreatureLib_Battle_Destruct","parameters":[{"name":"p","type":"const Battle *"}],"returns":"void"},{"filename":"CreatureLib","name":"CreatureLib_Battle_GetLibrary","parameters":[{"name":"p","type":"const Battle *"}],"returns":"const BattleLibrary *"},{"filename":"CreatureLib","name":"CreatureLib_Battle_CanUse","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"Battle *"},{"name":"turnChoice","type":"BaseTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLib","name":"CreatureLib_Battle_TrySetChoice","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"Battle *"},{"name":"turnChoice","type":"BaseTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLib","name":"CreatureLib_Battle_CanFlee","parameters":[{"name":"p","type":"const Battle *"}],"returns":"bool"},{"filename":"CreatureLib","name":"CreatureLib_Battle_CheckChoicesSetAndRun","parameters":[{"name":"p","type":"Battle *"}],"returns":"unsigned char"},{"filename":"CreatureLib","name":"CreatureLib_Battle_GetCurrentTurn","parameters":[{"name":"p","type":"Battle *"}],"returns":"unsigned int"},{"filename":"CreatureLib","name":"CreatureLib_Battle_GetCreaturesPerSide","parameters":[{"name":"p","type":"Battle *"}],"returns":"unsigned int"},{"filename":"CreatureLib","name":"CreatureLib_Battle_GetCurrentTurnQueue","parameters":[{"name":"p","type":"const Battle *"}],"returns":"ChoiceQueue *"},{"filename":"CreatureLib","name":"CreatureLib_Battle_GetRandom","parameters":[{"name":"p","type":"Battle *"}],"returns":"BattleRandom *"},{"filename":"CreatureLib","name":"CreatureLib_Battle_CreatureInField","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"const Battle *"},{"name":"c","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLib","name":"CreatureLib_Battle_GetCreature","parameters":[{"name":"out","type":"Creature * &"},{"name":"p","type":"const Battle *"},{"name":"side","type":"unsigned char"},{"name":"target","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLib","name":"CreatureLib_Battle_ForceRecall","parameters":[{"name":"p","type":"Battle *"},{"name":"side","type":"unsigned char"},{"name":"target","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLib","name":"CreatureLib_Battle_SwitchCreature","parameters":[{"name":"p","type":"Battle *"},{"name":"side","type":"unsigned char"},{"name":"target","type":"unsigned char"},{"name":"c","Line truncated
+5 -1
View File
@@ -18,7 +18,11 @@ def write_enum(enum, enumNames):
f.write("namespace {}\n{{\n".format(namespace))
f.write(" [SuppressMessage(\"ReSharper\", \"InconsistentNaming\")]\n")
f.write(" internal enum {} : {}\n {{\n".format(enum["name"], resolve_enum_size(enum["byteSize"]) ))
for k, v in enum["values"].items():
vals = enum["values"].items();
dict = {}
for k, v in vals:
dict[int(k)] = v;
for k, v in sorted(dict.items(), key=lambda item: item[0]):
f.write(" {} = {},\n".format(v, k))
f.write(" }\n")
f.write("}\n")
+1 -1
View File
@@ -1 +1 @@
{"enums":[{"byteSize":1,"filename":"pkmnLib","name":"ScriptCategory","values":{"0":"Attack","1":"Talent","2":"Status","3":"Creature","4":"Battle","5":"Side"}},{"byteSize":4,"filename":"pkmnLib","name":"asEObjTypeFlags","values":{"1":"asOBJ_REF","1024":"asOBJ_APP_CLASS_DESTRUCTOR","1048576":"asOBJ_IMPLICIT_HANDLE","1073741824":"asOBJ_APP_ALIGN16","128":"asOBJ_ASHANDLE","1280":"asOBJ_APP_CLASS_D","131072":"asOBJ_APP_CLASS_ALLFLOATS","134217728":"asOBJ_TEMPLATE_SUBTYPE","16":"asOBJ_NOHANDLE","16384":"asOBJ_APP_FLOAT","16777216":"asOBJ_FUNCDEF","1792":"asOBJ_APP_CLASS_CD","2":"asOBJ_VALUE","2048":"asOBJ_APP_CLASS_ASSIGNMENT","2097151":"asOBJ_MASK_VALID_FLAGS","2097152":"asOBJ_SCRIPT_OBJECT","2304":"asOBJ_APP_CLASS_A","256":"asOBJ_APP_CLASS","262144":"asOBJ_NOCOUNT","268435456":"asOBJ_TYPEDEF","2816":"asOBJ_APP_CLASS_CA","32":"asOBJ_SCOPED","32768":"asOBJ_APP_ARRAY","3328":"asOBJ_APP_CLASS_DA","33554432":"asOBJ_LIST_PATTERN","3840":"asOBJ_APP_CLASS_CDA","4":"asOBJ_GC","4096":"asOBJ_APP_CLASS_COPY_CONSTRUCTOR","4194304":"asOBJ_SHARED","4352":"asOBJ_APP_CLASS_K","4864":"asOBJ_APP_CLASS_CK","512":"asOBJ_APP_CLASS_CONSTRUCTOR","524288":"asOBJ_APP_CLASS_ALIGN8","536870912":"asOBJ_ABSTRACT","5376":"asOBJ_APP_CLASS_DK","5888":"asOBJ_APP_CLASS_CDK","64":"asOBJ_TEMPLATE","6400":"asOBJ_APP_CLASS_AK","65536":"asOBJ_APP_CLASS_ALLINTS","67108864":"asOBJ_ENUM","6912":"asOBJ_APP_CLASS_CAK","7424":"asOBJ_APP_CLASS_DAK","768":"asOBJ_APP_CLASS_C","7936":"asOBJ_APP_CLASS_CDAK","8":"asOBJ_POD","8192":"asOBJ_APP_PRIMITIVE","8388608":"asOBJ_NOINHERIT"}},{"byteSize":4,"filename":"pkmnLib","name":"asECallConvTypes","values":{"0":"asCALL_CDECL","1":"asCALL_STDCALL","2":"asCALL_THISCALL_ASGLOBAL","3":"asCALL_THISCALL","4":"asCALL_CDECL_OBJLAST","5":"asCALL_CDECL_OBJFIRST","6":"asCALL_GENERIC","7":"asCALL_THISCALL_OBJLAST","8":"asCALL_THISCALL_OBJFIRST"}},{"byteSize":1,"filename":"pkmnLib","name":"Statistic","values":{"0":"Health","1":"PhysicalAttack","2":"PhysicalDefense","3":"MagicalAttack","4":"MagicalDefense","5":"Speed"}},{"byteSize":1,"filename":"pkmnLib","name":"MoveCategory","values":{"0":"Physical","1":"Special","2":"Status"}},{"byteSize":1,"filename":"pkmnLib","name":"AttackTarget","values":{"0":"Adjacent","1":"AdjacentAlly","10":"RandomOpponent","11":"Self","2":"AdjacentAllySelf","3":"AdjacentOpponent","4":"All","5":"AllAdjacent","6":"AllAdjacentOpponent","7":"AllAlly","8":"AllOpponent","9":"Any"}},{"byteSize":1,"filename":"pkmnLib","name":"EffectParameterType","values":{"0":"None","1":"Bool","2":"Int","3":"Float","4":"String"}},{"byteSize":4,"filename":"pkmnLib","name":"AttackLearnMethod","values":{"0":"Unknown","1":"Level"}},{"byteSize":1,"filename":"pkmnLib","name":"Gender","values":{"0":"Male","1":"Female","2":"Genderless"}},{"byteSize":1,"filename":"pkmnLib","name":"ItemCategory","values":{"0":"MiscItem","1":"CaptureDevice","2":"Medicine","3":"Berry","4":"MoveLearner","5":"VariantChanger","6":"KeyItem","7":"Mail"}},{"byteSize":1,"filename":"pkmnLib","name":"BattleItemCategory","values":{"0":"None","1":"Healing","2":"StatusHealing","3":"CaptureDevice","4":"MiscBattleItem"}},{"byteSize":1,"filename":"pkmnLib","name":"EvolutionMethod","values":{"0":"Level","1":"HighFriendship","10":"TradeWithHeldItem","11":"TradeWithSpecificPokemon","12":"Custom","2":"KnownMove","3":"LocationBased","4":"TimeBased","5":"HoldsItem","6":"IsGenderAndLevel","7":"EvolutionItemUse","8":"EvolutionItemUseWithGender","9":"Trade"}},{"byteSize":1,"filename":"pkmnLib","name":"TimeOfDay","values":{"0":"Night","1":"Morning","2":"Afternoon","3":"Evening"}},{"byteSize":4,"filename":"pkmnLib","name":"asETypeIdFlags","values":{"0":"asTYPEID_VOID","1":"asTYPEID_BOOL","10":"asTYPEID_FLOAT","1073741824":"asTYPEID_OBJHANDLE","11":"asTYPEID_DOUBLE","134217728":"asTYPEID_SCRIPTOBJECT","2":"asTYPEID_INT8","268435456":"asTYPEID_TEMPLATE","3":"asTYPEID_INT16","4":"asTYPEID_INT32","469762048":"asTYPEID_MASK_OBJECT","5":"asTYPEID_INT64","536870912":"asTYPEID_HANDLETOCONST","6":"asTYPEID_UINT8","67108863":"asTYPEID_MASK_SEQNBR","67108864":"asTYPEID_APPOBJECT","7":"asTYPEID_UINT16","8":"asTYPEID_UINT32","9":"asTYPEID_UINT64"}},{"byteSize":4,"filename":"pkmnLib","name":"asEContextState","values":{"0":"asEXECUTION_FINISHED","1":"asEXECUTION_SUSPENDED","2":"asEXECUTION_ABORTED","3":"asEXECUTION_EXCEPTION","4":"asEXECUTION_PREPARED","5":"asEXECUTION_UNINITIALIZED","6":"asEXECUTION_ACTIVE","7":"asEXECUTION_ERROR"}},{"byteSize":4,"filename":"pkmnLib","name":"asERetCodes","values":{"-1":"asERROR","-10":"asINVALID_DECLARATION","-11":"asINVALID_OBJECT","-12":"asINVALID_TYPE","-13":"asALREADY_REGISTERED","-14":"asMULTIPLE_FUNCTIONS","-15":"asNO_MODULE","-16":"asNO_GLOBAL_VAR","-17":"asINVALID_CONFIGURATION","-18":"asINVALID_INTERFACE","-19":"asCANT_BIND_ALL_FUNCTIONS","-2":"asCONTEXT_ACTIVE","-20":"asLOWER_ARRAY_DIMENSION_NOT_REGISTERED","-21":"asWRONG_CONFIG_GROUP","-22":"asCONFIG_GROUP_IS_IN_USE","-23":"asILLEGAL_BEHAVIOUR_FOR_TYPE","-24":"asWRONG_CALLING_CONV","-25":"asBUILD_IN_PLine truncated
{"enums":[{"byteSize":1,"filename":"pkmnLib","name":"ScriptCategory","values":{"0":"Attack","1":"Talent","2":"Status","3":"Creature","4":"Battle","5":"Side"}},{"byteSize":4,"filename":"pkmnLib","name":"asEObjTypeFlags","values":{"1":"asOBJ_REF","1024":"asOBJ_APP_CLASS_DESTRUCTOR","1048576":"asOBJ_IMPLICIT_HANDLE","1073741824":"asOBJ_APP_ALIGN16","128":"asOBJ_ASHANDLE","1280":"asOBJ_APP_CLASS_D","131072":"asOBJ_APP_CLASS_ALLFLOATS","134217728":"asOBJ_TEMPLATE_SUBTYPE","16":"asOBJ_NOHANDLE","16384":"asOBJ_APP_FLOAT","16777216":"asOBJ_FUNCDEF","1792":"asOBJ_APP_CLASS_CD","2":"asOBJ_VALUE","2048":"asOBJ_APP_CLASS_ASSIGNMENT","2097151":"asOBJ_MASK_VALID_FLAGS","2097152":"asOBJ_SCRIPT_OBJECT","2304":"asOBJ_APP_CLASS_A","256":"asOBJ_APP_CLASS","262144":"asOBJ_NOCOUNT","268435456":"asOBJ_TYPEDEF","2816":"asOBJ_APP_CLASS_CA","32":"asOBJ_SCOPED","32768":"asOBJ_APP_ARRAY","3328":"asOBJ_APP_CLASS_DA","33554432":"asOBJ_LIST_PATTERN","3840":"asOBJ_APP_CLASS_CDA","4":"asOBJ_GC","4096":"asOBJ_APP_CLASS_COPY_CONSTRUCTOR","4194304":"asOBJ_SHARED","4352":"asOBJ_APP_CLASS_K","4864":"asOBJ_APP_CLASS_CK","512":"asOBJ_APP_CLASS_CONSTRUCTOR","524288":"asOBJ_APP_CLASS_ALIGN8","536870912":"asOBJ_ABSTRACT","5376":"asOBJ_APP_CLASS_DK","5888":"asOBJ_APP_CLASS_CDK","64":"asOBJ_TEMPLATE","6400":"asOBJ_APP_CLASS_AK","65536":"asOBJ_APP_CLASS_ALLINTS","67108864":"asOBJ_ENUM","6912":"asOBJ_APP_CLASS_CAK","7424":"asOBJ_APP_CLASS_DAK","768":"asOBJ_APP_CLASS_C","7936":"asOBJ_APP_CLASS_CDAK","8":"asOBJ_POD","8192":"asOBJ_APP_PRIMITIVE","8388608":"asOBJ_NOINHERIT"}},{"byteSize":4,"filename":"pkmnLib","name":"asECallConvTypes","values":{"0":"asCALL_CDECL","1":"asCALL_STDCALL","2":"asCALL_THISCALL_ASGLOBAL","3":"asCALL_THISCALL","4":"asCALL_CDECL_OBJLAST","5":"asCALL_CDECL_OBJFIRST","6":"asCALL_GENERIC","7":"asCALL_THISCALL_OBJLAST","8":"asCALL_THISCALL_OBJFIRST"}},{"byteSize":1,"filename":"pkmnLib","name":"Statistic","values":{"0":"Health","1":"PhysicalAttack","2":"PhysicalDefense","3":"MagicalAttack","4":"MagicalDefense","5":"Speed"}},{"byteSize":1,"filename":"pkmnLib","name":"MoveCategory","values":{"0":"Physical","1":"Special","2":"Status"}},{"byteSize":1,"filename":"pkmnLib","name":"AttackTarget","values":{"0":"Adjacent","1":"AdjacentAlly","10":"RandomOpponent","11":"Self","2":"AdjacentAllySelf","3":"AdjacentOpponent","4":"All","5":"AllAdjacent","6":"AllAdjacentOpponent","7":"AllAlly","8":"AllOpponent","9":"Any"}},{"byteSize":1,"filename":"pkmnLib","name":"EffectParameterType","values":{"0":"None","1":"Bool","2":"Int","3":"Float","4":"String"}},{"byteSize":4,"filename":"pkmnLib","name":"AttackLearnMethod","values":{"0":"Unknown","1":"Level"}},{"byteSize":1,"filename":"pkmnLib","name":"Gender","values":{"0":"Male","1":"Female","2":"Genderless"}},{"byteSize":1,"filename":"pkmnLib","name":"ItemCategory","values":{"0":"MiscItem","1":"CaptureDevice","2":"Medicine","3":"Berry","4":"MoveLearner","5":"VariantChanger","6":"KeyItem","7":"Mail"}},{"byteSize":1,"filename":"pkmnLib","name":"BattleItemCategory","values":{"0":"None","1":"Healing","2":"StatusHealing","3":"CaptureDevice","4":"MiscBattleItem"}},{"byteSize":1,"filename":"pkmnLib","name":"EvolutionMethod","values":{"0":"Level","1":"HighFriendship","10":"TradeWithHeldItem","11":"TradeWithSpecificPokemon","12":"Custom","2":"KnownMove","3":"LocationBased","4":"TimeBased","5":"HoldsItem","6":"IsGenderAndLevel","7":"EvolutionItemUse","8":"EvolutionItemUseWithGender","9":"Trade"}},{"byteSize":1,"filename":"pkmnLib","name":"TimeOfDay","values":{"0":"Night","1":"Morning","2":"Afternoon","3":"Evening"}},{"byteSize":4,"filename":"pkmnLib","name":"asETypeIdFlags","values":{"0":"asTYPEID_VOID","1":"asTYPEID_BOOL","10":"asTYPEID_FLOAT","1073741824":"asTYPEID_OBJHANDLE","11":"asTYPEID_DOUBLE","134217728":"asTYPEID_SCRIPTOBJECT","2":"asTYPEID_INT8","268435456":"asTYPEID_TEMPLATE","3":"asTYPEID_INT16","4":"asTYPEID_INT32","469762048":"asTYPEID_MASK_OBJECT","5":"asTYPEID_INT64","536870912":"asTYPEID_HANDLETOCONST","6":"asTYPEID_UINT8","67108863":"asTYPEID_MASK_SEQNBR","67108864":"asTYPEID_APPOBJECT","7":"asTYPEID_UINT16","8":"asTYPEID_UINT32","9":"asTYPEID_UINT64"}},{"byteSize":4,"filename":"pkmnLib","name":"asEContextState","values":{"0":"asEXECUTION_FINISHED","1":"asEXECUTION_SUSPENDED","2":"asEXECUTION_ABORTED","3":"asEXECUTION_EXCEPTION","4":"asEXECUTION_PREPARED","5":"asEXECUTION_UNINITIALIZED","6":"asEXECUTION_ACTIVE","7":"asEXECUTION_ERROR"}},{"byteSize":4,"filename":"pkmnLib","name":"asERetCodes","values":{"-1":"asERROR","-10":"asINVALID_DECLARATION","-11":"asINVALID_OBJECT","-12":"asINVALID_TYPE","-13":"asALREADY_REGISTERED","-14":"asMULTIPLE_FUNCTIONS","-15":"asNO_MODULE","-16":"asNO_GLOBAL_VAR","-17":"asINVALID_CONFIGURATION","-18":"asINVALID_INTERFACE","-19":"asCANT_BIND_ALL_FUNCTIONS","-2":"asCONTEXT_ACTIVE","-20":"asLOWER_ARRAY_DIMENSION_NOT_REGISTERED","-21":"asWRONG_CONFIG_GROUP","-22":"asCONFIG_GROUP_IS_IN_USE","-23":"asILLEGAL_BEHAVIOUR_FOR_TYPE","-24":"asWRONG_CALLING_CONV","-25":"asBUILD_IN_PLine truncated
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using NUnit.Framework;
using PkmnLibSharp.Battling;
@@ -92,11 +93,12 @@ namespace PkmnLibSharpTests.Battling.BattleTests
.Build();
var evts = new List<EventData>();
battle.RegisterEventListener(new BattleEventListener(evt =>
var eventListener = new BattleEventListener(evt =>
{
evts.Add(evt);
return Task.CompletedTask;
}));
});
battle.RegisterEventListener(eventListener);
battle.SwitchPokemon(0, 0, p1.GetAtIndex(0));
battle.SwitchPokemon(1, 0, p2.GetAtIndex(0));
@@ -109,6 +111,8 @@ namespace PkmnLibSharpTests.Battling.BattleTests
Assert.That(battle.TrySetChoice(moveTurn2));
Assert.AreEqual(1, battle.CurrentTurn);
eventListener.EnsureFinishedListening();
var damageEvents = evts.Where(x => x.Kind == EventDataKind.Damage).Cast<DamageEvent>().ToArray();
Assert.AreEqual(2, damageEvents.Length);
Assert.AreEqual(damageEvents[0].Pokemon, p2.GetAtIndex(0));
+7
View File
@@ -1,6 +1,8 @@
using System;
using System.Reflection;
using System.Runtime.InteropServices;
using NUnit.Framework;
using PkmnLibSharp.Battling;
namespace PkmnLibSharpTests
{
@@ -13,6 +15,11 @@ namespace PkmnLibSharpTests
NativeLibrary.Load("Arbutils", Assembly.GetCallingAssembly(), DllImportSearchPath.AssemblyDirectory);
NativeLibrary.Load("CreatureLib", Assembly.GetCallingAssembly(), DllImportSearchPath.AssemblyDirectory);
NativeLibrary.Load("pkmnLib", Assembly.GetCallingAssembly(), DllImportSearchPath.AssemblyDirectory);
LogHandler.RegisterListener((level, s) =>
{
Console.WriteLine($"[{level.ToString().ToUpperInvariant()}] {s}");
});
}
}
}