include "../../Shared/AbilityType.fbs";
include "../../Shared/NatureType.fbs";
include "../../Shared/ShinyType.fbs";

namespace pkNX.Structures.FlatBuffers.Arceus;
attribute "fs_serializer";

table EventEncountPoke {
    Species:int;
    Form:int;
    Gender:int;
    ShinyLock:ShinyType = Random;
    Level:int;
    Ability:AbilityType = Any12;
    Nature:NatureType;
    Height:int;
    Weight:int;
    Field_09:bool;
    Field_10:bool;
    Field_11:bool;
    Field_12:int;
    Field_13:string (required);
    Field_14:string (required);
    Field_15:string (required);
    ExperiencePoints:int;
    IsOybn:bool;
    Move1:int;
    Mastered1:bool;
    Move2:int;
    Mastered2:bool;
    Move3:int;
    Mastered3:bool;
    Move4:int;
    Mastered4:bool;
    IV_HP:int;
    IV_ATK:int;
    IV_DEF:int;
    IV_SPA:int;
    IV_SPD:int;
    IV_SPE:int;
    NumPerfectIvs:int;
    GV_HP:int;
    GV_ATK:int;
    GV_DEF:int;
    GV_SPA:int;
    GV_SPD:int;
    GV_SPE:int;
}

table EventEncount {
    EncounterName:string (required);
    Field_01:string (required);
    Field_02:int; // All Entries have empty
    Table:[EventEncountPoke] (required);
}

table EventEncountArchive (fs_serializer) {
    Table:[EventEncount] (required);
}

root_type EventEncountArchive;
