func bool Require(bool expression); func bool RequireEquals(int expected, int actual); func bool RequireEquals(const string &in expected, const string &in actual); func Party@ CreateParty(const array&in species); func Party@ CreateSimpleParty(const array&in species, uint8 level); func Battle@ CreateSimpleBattle(uint seed, const constString&in species1, const constString&in species2, uint8 level); func Battle@ CreateSimpleBattle(uint seed, Party@ p1, Party@ p2); func ref@ CreateMoveScript(const constString&in name); func ExecutingMove@ CreateExecutingMove(const constString&in moveName, Pokemon@ user, Pokemon@ target); func MoveTurnChoice@ CreateMoveTurnChoice(const constString&in moveName, Pokemon@ user, uint8 targetSide, uint8 target); type Pokemon { bool UseMove(const constString&in move, uint8 side, uint8 index); bool PassTurn(); bool LearnMove(const constString&in move); } type PokemonBuilder { PokemonBuilder@ WithForme(const constString&in forme); PokemonBuilder@ WithGender(Gender gender); PokemonBuilder@ IsShiny(bool value); PokemonBuilder@ WithHeldItem(const constString&in item); PokemonBuilder@ LearnMove(const constString&in move, MoveLearnMethod method); PokemonBuilder@ WithIndividualValues(uint8 hp,uint8 att,uint8 def,uint8 spa,uint8 spd,uint8 speed); PokemonBuilder@ WithEffortValues(uint8 hp,uint8 att,uint8 def,uint8 spa,uint8 spd,uint8 speed); PokemonBuilder@ WithNature(const constString&in nature); PokemonBuilder@ WithNickname(const string&in name); Pokemon@ Build(uint seed = 0); } func PokemonBuilder@ CreatePokemonBuilder(const constString&in species, uint8 level);