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

enum GemModeLimit : int {
    USABLE = 0,
    PROHIBITION = 1,
}

enum LevelRateRule : int {
    NONE = 0,
    OR_MORE = 1,
    OR_LESS = 2,
    OR_MORE_REVISE = 3,
    ALL_REVISE = 4,
    OR_LESS_REVISE = 5,
}

enum PokeShowType : int {
    NOT_SHOW = 0,
    SHOW = 1,
}

enum TimeLimitType : int {
    TOTAL = 0,
    WAIT = 1,
    TOTALWAIT = 2,
}

enum UseCheck : int {
    USABLE = 0,
    NOT_USE = 1,
}

table NetBattleRuleData {
    BattleRuleId:int;
    BattleteamPokeMin:int;
    BattleteamPokeMax:int;
    SelectPokeMin:int;
    SelectPokeMax:int;
    JoinLevel:int;
    LevelRateRule:LevelRateRule;
    SamePokeCheck:UseCheck = USABLE;
    SameItemCheck:UseCheck = USABLE;
    TimelimitType:TimeLimitType = TOTAL;
    LimitTime:int;
    WaitTime:int;
    DecideTime:int;
    PokeShowType:PokeShowType = NOT_SHOW;
    PokeShowTime:int;
    GemModeFlag:GemModeLimit = USABLE;
}

table NetBattleRuleDataArray (fs_serializer) {
    Table:[NetBattleRuleData] (required);
}

root_type NetBattleRuleDataArray;
