include "../Shared/DevID.fbs";
include "../Shared/GemType.fbs";
include "../Shared/SexType.fbs";
include "../Shared/ItemID.fbs";
include "../Shared/SeikakuType.fbs";
include "../Shared/TokuseiType.fbs";
include "../Shared/TalentType.fbs";
include "../Shared/RareType.fbs";
include "../Shared/SizeType.fbs";

include "../Entity/ParamSet.fbs";
include "../Shared/LangType.fbs";
include "../Shared/BallType.fbs";
include "../Shared/RibbonType.fbs";
include "../Shared/PokeMemoType.fbs";
include "../Shared/WazaType.fbs";
include "WazaSet.fbs";

namespace pkNX.Structures.FlatBuffers.SV;

table PokeDataFull {
    DevId:DevID = DEV_NULL;
    FormId:short;
    Item:ItemID = ITEMID_NONE;
    Level:int;
    Sex:SexType;
    Seikaku:SeikakuType;
    SeikakuHosei:SeikakuType;
    Tokusei:TokuseiType;
    RareType:RareType;
    RareTryCount:int;
    TalentType:TalentType;
    TalentValue:ParamSet;
    TalentVnum:byte;
    EffortValue:ParamSet;
    Friendship:int;
    HeightType:SizeType;
    HeightValue:short;
    WeightType:SizeType;
    WeightValue:short;
    ScaleType:SizeType;
    ScaleValue:short;
    SetPersonalRand:bool;
    PersonalRand:ulong;
    SetRandSeed:bool;
    RandSeed:ulong;
    WazaType:WazaType;
    Waza1:WazaSet;
    Waza2:WazaSet;
    Waza3:WazaSet;
    Waza4:WazaSet;
    UseNickName:bool;
    NicknameLabel:ulong;
    ParentNameLabel:ulong;
    ParentSex:SexType;
    ParentLangId:LangType;
    ParentMemoryCode:int;
    ParentMemoryData:int;
    ParentMemoryFeel:int;
    ParentMemoryLevel:int;
    LangId:LangType;
    BallId:BallType;
    SetRibbon:RibbonType;
    EventFlg:bool;
    GemType:GemType;
    WazaConfirmLevel:byte;
    PokeMemo:PokeMemoType;
    PokeMemoPlace:int;
    TrainerId:long;
}
