Reworks PokemonBuilder.
This commit is contained in:
14 files changed
+112
-76
No files matched your search
@@ -1,5 +1,3 @@
|
||||
using System;
|
||||
|
||||
namespace PkmnLibSharp.Battling.ChoiceTurn
|
||||
{
|
||||
public class FleeTurnChoice : BaseTurnChoice
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
using System;
|
||||
|
||||
namespace PkmnLibSharp.Battling.ChoiceTurn
|
||||
{
|
||||
public class SwitchTurnChoice : BaseTurnChoice
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using PkmnLibSharp.Library;
|
||||
using PkmnLibSharp.Utilities;
|
||||
|
||||
@@ -6,9 +6,9 @@ using Random = PkmnLibSharp.Utilities.Random;
|
||||
|
||||
namespace PkmnLibSharp.Battling
|
||||
{
|
||||
public class PokemonBuilder
|
||||
public abstract class BasePokemonBuilder<T> where T : Pokemon
|
||||
{
|
||||
private BattleLibrary _library;
|
||||
protected readonly BattleLibrary Library;
|
||||
public string Species { get; }
|
||||
public string Forme { get; private set; } = "default";
|
||||
public string Nickname { get; private set; } = "";
|
||||
@@ -27,46 +27,46 @@ namespace PkmnLibSharp.Battling
|
||||
public List<(string moveName, MoveLearnMethod learnMethod)> LearnedMoves { get; } =
|
||||
new List<(string moveName, MoveLearnMethod learnMethod)>();
|
||||
|
||||
public PokemonBuilder(BattleLibrary library, string species, byte level)
|
||||
public BasePokemonBuilder(BattleLibrary library, string species, byte level)
|
||||
{
|
||||
_library = library;
|
||||
Library = library;
|
||||
Species = species;
|
||||
Level = level;
|
||||
}
|
||||
|
||||
public PokemonBuilder WithForme(string forme)
|
||||
public BasePokemonBuilder<T> WithForme(string forme)
|
||||
{
|
||||
Forme = forme;
|
||||
return this;
|
||||
}
|
||||
|
||||
public PokemonBuilder WithGender(Gender gender)
|
||||
public BasePokemonBuilder<T> WithGender(Gender gender)
|
||||
{
|
||||
Gender = gender;
|
||||
return this;
|
||||
}
|
||||
|
||||
public PokemonBuilder ForceShiny(bool value)
|
||||
public BasePokemonBuilder<T> ForceShiny(bool value)
|
||||
{
|
||||
IsForceShiny = value;
|
||||
return this;
|
||||
}
|
||||
|
||||
public PokemonBuilder WithHeldItem(string heldItem)
|
||||
public BasePokemonBuilder<T> WithHeldItem(string heldItem)
|
||||
{
|
||||
HeldItem = heldItem;
|
||||
return this;
|
||||
}
|
||||
|
||||
public PokemonBuilder WithNickname(string nickname)
|
||||
public BasePokemonBuilder<T> WithNickname(string nickname)
|
||||
{
|
||||
Nickname = nickname;
|
||||
return this;
|
||||
}
|
||||
|
||||
public PokemonBuilder LearnMove(string moveName, MoveLearnMethod moveLearnMethod)
|
||||
public BasePokemonBuilder<T> LearnMove(string moveName, MoveLearnMethod moveLearnMethod)
|
||||
{
|
||||
if (LearnedMoves.Count > _library.StaticLibrary.Settings.MaximalMoves)
|
||||
if (LearnedMoves.Count > Library.StaticLibrary.Settings.MaximalMoves)
|
||||
{
|
||||
throw new Exception("Too many moves for Pokemon.");
|
||||
}
|
||||
@@ -74,9 +74,60 @@ namespace PkmnLibSharp.Battling
|
||||
return this;
|
||||
}
|
||||
|
||||
public Pokemon Build()
|
||||
protected byte Coloring;
|
||||
protected uint Experience;
|
||||
protected uint Uid;
|
||||
protected int AbilityIndex;
|
||||
protected bool HiddenAbility;
|
||||
|
||||
protected virtual void PopulateUninitialized(Species species, Forme forme, Random random)
|
||||
{
|
||||
if (!_library.StaticLibrary.SpeciesLibrary.TryGet(Species, out var species))
|
||||
Experience = Library.StaticLibrary.GrowthRateLibrary.CalculateExperience(species.GrowthRate, Level);
|
||||
Uid = random.GetUnsigned(0, uint.MaxValue);
|
||||
|
||||
if (Gender == (Gender) (-1))
|
||||
{
|
||||
Gender = species.GetRandomGender(random);
|
||||
}
|
||||
Coloring = 0;
|
||||
if (IsForceShiny.HasValue)
|
||||
{
|
||||
Coloring = (byte) (IsForceShiny.Value ? 1 : 0);
|
||||
}
|
||||
else if (random.Get(Library.StaticLibrary.Settings.ShinyRate) == 0)
|
||||
{
|
||||
Coloring = 1;
|
||||
}
|
||||
|
||||
AbilityIndex = 0;
|
||||
HiddenAbility = false;
|
||||
if (string.IsNullOrEmpty(Ability))
|
||||
{
|
||||
AbilityIndex = forme!.GetRandomAbility(random);
|
||||
}
|
||||
else
|
||||
{
|
||||
AbilityIndex = forme!.Abilities.IndexOf(Ability);
|
||||
if (AbilityIndex == -1)
|
||||
{
|
||||
AbilityIndex = forme.HiddenAbilities.IndexOf(Ability);
|
||||
if (AbilityIndex == -1)
|
||||
{
|
||||
throw new Exception(
|
||||
$"Invalid ability '{Ability}' for Pokemon '{species.Name}' and forme '{forme.Name}'.");
|
||||
}
|
||||
|
||||
HiddenAbility = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract T Finalize(Species species, Forme forme, Item? heldItem,
|
||||
IReadOnlyCollection<LearnedMove> moves, Nature nature);
|
||||
|
||||
public T Build()
|
||||
{
|
||||
if (!Library.StaticLibrary.SpeciesLibrary.TryGet(Species, out var species))
|
||||
{
|
||||
throw new Exception($"Species '{Species}' was not found.");
|
||||
}
|
||||
@@ -86,59 +137,21 @@ namespace PkmnLibSharp.Battling
|
||||
throw new Exception($"Forme '{Forme}' was not found on species '{Species}'");
|
||||
}
|
||||
|
||||
var experience = _library.StaticLibrary.GrowthRateLibrary.CalculateExperience(species.GrowthRate, Level);
|
||||
var random = new Random();
|
||||
var uid = random.GetUnsigned(0, uint.MaxValue);
|
||||
if (Gender == (Gender) (-1))
|
||||
{
|
||||
Gender = species.GetRandomGender(random);
|
||||
}
|
||||
|
||||
byte coloring = 0;
|
||||
if (IsForceShiny.HasValue)
|
||||
{
|
||||
coloring = (byte) (IsForceShiny.Value ? 1 : 0);
|
||||
}
|
||||
else if (random.Get(_library.StaticLibrary.Settings.ShinyRate) == 0)
|
||||
{
|
||||
coloring = 1;
|
||||
}
|
||||
|
||||
Item? heldItem = null;
|
||||
if (HeldItem != null)
|
||||
{
|
||||
if (!_library.StaticLibrary.ItemLibrary.TryGet(HeldItem, out heldItem))
|
||||
if (!Library.StaticLibrary.ItemLibrary.TryGet(HeldItem, out heldItem))
|
||||
{
|
||||
throw new Exception($"Item '{HeldItem}' was not found.");
|
||||
}
|
||||
}
|
||||
|
||||
var abilityIndex = 0;
|
||||
var isHiddenAbility = false;
|
||||
if (string.IsNullOrEmpty(Ability))
|
||||
{
|
||||
abilityIndex = forme!.GetRandomAbility(random);
|
||||
}
|
||||
else
|
||||
{
|
||||
abilityIndex = forme!.Abilities.IndexOf(Ability);
|
||||
if (abilityIndex == -1)
|
||||
{
|
||||
abilityIndex = forme.HiddenAbilities.IndexOf(Ability);
|
||||
if (abilityIndex == -1)
|
||||
{
|
||||
throw new Exception(
|
||||
$"Invalid ability '{Ability}' for Pokemon '{species.Name}' and forme '{forme.Name}'.");
|
||||
}
|
||||
|
||||
isHiddenAbility = true;
|
||||
}
|
||||
}
|
||||
|
||||
var moves = new LearnedMove[_library.StaticLibrary.Settings.MaximalMoves];
|
||||
|
||||
var moves = new LearnedMove[Library.StaticLibrary.Settings.MaximalMoves];
|
||||
for (var i = 0; i < LearnedMoves.Count; i++)
|
||||
{
|
||||
if (!_library.StaticLibrary.MoveLibrary.TryGet(LearnedMoves[i].moveName, out var move))
|
||||
if (!Library.StaticLibrary.MoveLibrary.TryGet(LearnedMoves[i].moveName, out var move))
|
||||
{
|
||||
throw new Exception($"Move '{LearnedMoves[i].moveName}' was not found.");
|
||||
}
|
||||
@@ -148,13 +161,11 @@ namespace PkmnLibSharp.Battling
|
||||
|
||||
if (string.IsNullOrEmpty(Nature))
|
||||
{
|
||||
Nature = _library.StaticLibrary.NatureLibrary.GetRandomNatureName(random);
|
||||
Nature = Library.StaticLibrary.NatureLibrary.GetRandomNatureName(random);
|
||||
}
|
||||
|
||||
var nature = _library.StaticLibrary.NatureLibrary.GetNature(Nature);
|
||||
|
||||
return new Pokemon(_library, species, forme, Level, experience, uid, Gender, coloring, heldItem, Nickname,
|
||||
isHiddenAbility, (byte) abilityIndex, moves, IVs, EVs, nature);
|
||||
var nature = Library.StaticLibrary.NatureLibrary.GetNature(Nature);
|
||||
return Finalize(species, forme!, heldItem, moves, nature);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -80,5 +80,22 @@ namespace Pkmnlib.Generated
|
||||
[DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_Pokemon_GetStatusName")]
|
||||
internal static extern IntPtr GetStatusName(IntPtr p);
|
||||
|
||||
/// <param name="p">const Pokemon *</param>
|
||||
/// <returns>unsigned char</returns>
|
||||
[DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_Pokemon_GetFriendship")]
|
||||
internal static extern byte GetFriendship(IntPtr p);
|
||||
|
||||
/// <param name="p">Pokemon *</param>
|
||||
/// <param name="value">unsigned char</param>
|
||||
/// <returns>void</returns>
|
||||
[DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_Pokemon_SetFriendship")]
|
||||
internal static extern void SetFriendship(IntPtr p, byte value);
|
||||
|
||||
/// <param name="p">Pokemon *</param>
|
||||
/// <param name="amount">signed char</param>
|
||||
/// <returns>void</returns>
|
||||
[DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_Pokemon_ChangeFriendship")]
|
||||
internal static extern void ChangeFriendship(IntPtr p, sbyte amount);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using Pkmnlib;
|
||||
using PkmnLibSharp.Utilities;
|
||||
|
||||
namespace PkmnLibSharp.Library
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
using System;
|
||||
using PkmnLibSharp.Utilities;
|
||||
|
||||
namespace PkmnLibSharp.Library.GrowthRates
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Creaturelib.Generated;
|
||||
using Pkmnlib;
|
||||
using Pkmnlib.Generated;
|
||||
using PkmnLibSharp.Utilities;
|
||||
using EvolutionData = PkmnLibSharp.Library.Evolution.EvolutionData;
|
||||
using Gender = PkmnLibSharp.Library.Gender;
|
||||
using Random = PkmnLibSharp.Utilities.Random;
|
||||
|
||||
namespace PkmnLibSharp.Library
|
||||
|
||||
Binary file not shown.
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace PkmnLibSharp.Utilities
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
using System;
|
||||
|
||||
namespace PkmnLibSharp.Utilities
|
||||
{
|
||||
public class Random : PointerWrapper
|
||||
|
||||
@@ -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,4 @@
|
||||
using System.Linq;
|
||||
using NUnit.Framework;
|
||||
using PkmnLibSharp.Battling;
|
||||
using PkmnLibSharp.Library;
|
||||
using PkmnLibSharp.Library.GrowthRates;
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
using System.Collections.Generic;
|
||||
using PkmnLibSharp.Battling;
|
||||
using PkmnLibSharp.Library;
|
||||
using PkmnLibSharp.Library.Items;
|
||||
|
||||
namespace PkmnLibSharpTests.Battling
|
||||
{
|
||||
public class PokemonBuilder : BasePokemonBuilder<Pokemon>
|
||||
{
|
||||
public PokemonBuilder(BattleLibrary library, string species, byte level) : base(library, species, level)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
protected override Pokemon Finalize(Species species, Forme forme, Item? heldItem, IReadOnlyCollection<LearnedMove> moves, Nature nature)
|
||||
{
|
||||
return new Pokemon(Library, species, forme!, Level, Experience, Uid, Gender, Coloring,
|
||||
heldItem, Nickname, HiddenAbility, (byte) AbilityIndex, moves, IVs, EVs, nature);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user