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

table Waza (fs_serializer) {
    MoveID: int;
    CanUseMove: bool;
    Type: ubyte;
    Quality: ubyte;
    Category: ubyte;
    Power: ubyte;
    Accuracy: ubyte;
    PP: ubyte;
    Priority: byte;
    HitMax: ubyte;
    HitMin: ubyte;
    Inflict: short;
    InflictPercent: ubyte;
    RawInflictCount: ubyte;
    TurnMin: ubyte;
    TurnMax: ubyte;
    CritStage: ubyte;
    Flinch: ubyte;
    EffectSequence: ushort;
    Recoil: ubyte;
    RawHealing: ubyte;
    RawTarget: ubyte;
    Stat1: ubyte;
    Stat2: ubyte;
    Stat3: ubyte;
    Stat1Stage: byte;
    Stat2Stage: byte;
    Stat3Stage: byte;
    Stat1Percent: ubyte;
    Stat2Percent: ubyte;
    Stat3Percent: ubyte;
    Stat1Duration: ubyte;
    Stat2Duration: ubyte;
    Stat3Duration: ubyte;
    GigantamaxPower: ubyte;
    Flag_MakesContact: bool;
    Flag_Charge: bool;
    Flag_Recharge: bool;
    Flag_Protect: bool;
    Flag_Reflectable: bool;
    Flag_Snatch: bool;
    Flag_Mirror: bool;
    Flag_Punch: bool;
    Flag_Sound: bool;
    Flag_Gravity: bool;
    Flag_Defrost: bool;
    Flag_DistanceTriple: bool;
    Flag_Heal: bool;
    Flag_IgnoreSubstitute: bool;
    Flag_FailSkyBattle: bool;
    Flag_AnimateAlly: bool;
    Flag_Dance: bool;
    Flag_Metronome: bool;
    
    // New additions!
    SplinterModifier: ubyte;
    Status_Fixated: ubyte;
    Status_Obscured: ubyte;
    Status_ObscuredDuration: ubyte;
    Status_Primed: ubyte;
    Status_PrimedDuration: ubyte;
    Status_PrimedPercent: ubyte;
    Status_StanceSwap: ubyte;
    Status_StanceSwapDuration: ubyte;
    Status_FutureCrit: ubyte;
    Status_FutureCritDuration: ubyte;
    Status_FutureCritStage: ubyte;
    Flag_CureDrowsy: bool;
    Flag_CureFrostbite: bool;
    DamagePercentStatused: int;
    CanStyle: ubyte;
    ActSpeedModUser: int;
    ActSpeedModUserAgile: int;
    ActSpeedModUserStrong: int;
    ActSpeedModTarget: int;
    ActSpeedModTargetAgile: int;
    AgilePower: ubyte;
    AgileRawHealing: ubyte;
    AgileTurnMax: ubyte;
    AgileEffectDuration: ubyte;
    AgileStatChangeDuration: ubyte;
    StrongPower: ubyte;
    StrongAccuracy: ubyte;
    StrongCritStage: ubyte;
    StrongInflictPercent: ubyte;
    StrongStat1Percent: ubyte;
    StrongTurnMax: ubyte;
    StrongEffectDuration: ubyte;
    StrongStatChangeDuration: ubyte;
    StrongRecoil: int;
    StrongRawHealing: ubyte;
    StrongSplinterModifier: ubyte;
}

root_type Waza;
