include "Shared/ItemID.fbs";

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

struct SubEventParam (fs_valueStruct) {
    ItemID:ItemID = ITEMID_NONE;
    ItemNum:int;
}

struct PushBallPower (fs_valueStruct) {
    Forward:float;
    Upper:float;
    RideForward:float;
    RideUpper:float;
}

struct FreeMoveParam (fs_valueStruct) {
    FadeOutTime:float;
    FadeInTime:float;
    GoalBallVelocity:float;
    GoalTimeOut:float;
}

struct EventCommonParam (fs_valueStruct) {
    GoalBallVelocity:float;
    PlayerWaitTime:float;
}

struct BoundOutsideFence (fs_valueStruct) {
    Add:float;
    Magnification:float;
}

table GymMushiData (fs_serializer) {
    Ball:PushBallPower;
    Fence:BoundOutsideFence;
    BallStartHeightOffset:float;
    FreeMove:FreeMoveParam;
    CommonEvent:EventCommonParam;
    SubEvent:SubEventParam;
}

root_type GymMushiData;
