include "Math/Vec3f.fbs";

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

table BattleConfig (fs_serializer) {
    FcamZoomToprigRadius:float;
    FcamZoomToprigHeight:float;
    FcamZoomMidrigRadius:float;
    FcamZoomMidrigHeight:float;
    FcamZoomLowrigRadius:float;
    FcamZoomLowrigHeight:float;
    FcamZoomToprigRadius2:float;
    FcamZoomToprigHeight2:float;
    FcamZoomMidrigRadius2:float;
    FcamZoomMidrigHeight2:float;
    FcamZoomLowrigRadius2:float;
    FcamZoomLowrigHeight2:float;
    FcamCentToprigRadius:float;
    FcamCentToprigHeight:float;
    FcamCentMidrigRadius:float;
    FcamCentMidrigHeight:float;
    FcamCentLowrigRadius:float;
    FcamCentLowrigHeight:float;
    FcamOffsetCenter:Vec3f (required);
    FcamOffsetPoke0:Vec3f (required);
    FcamOffsetPoke1:Vec3f (required);
    FcamOffsetPoke2:Vec3f (required);
    FcamOffsetPoke3:Vec3f (required);
    FcamOffsetTr0:Vec3f (required);
    FcamOffsetTr1:Vec3f (required);
    FcamOffsetTr2:Vec3f (required);
    FcamOffsetTr3:Vec3f (required);
    FcamZoomStartAngle:float;
    FcamZoomMinAngle:float;
    FcamZoomMaxAngle:float;
    FcamZoomStartHeight:float;
    FcamZoomStartAngle2:float;
    FcamZoomMinAngle2:float;
    FcamZoomMaxAngle2:float;
    FcamZoomStartHeight2:float;
    FcamCentStartHeightS:float;
    FcamCentStartHeightM:float;
    FcamCentStartHeightL:float;
    FcamCentStartHeightLL:float;
    FcamPokeLocator:string (required);
    FcamTrainerLocator:string (required);
    FcamRotSpeedX:float;
    FcamRotSpeedY:float;
    FcamStartStickLength:float;
    FieldgemDropupRate:byte;
    WazamsgIsPreMsgTime:bool;
    WazamsgPreMsgTime:float;
    WazamsgIsPostMsgTime:bool;
    WazamsgPostMsgTime:float;
    WazamsgIsSubMsgTime:bool;
    WazamsgSubMsgTime:float;
    WazamsgIsSubMsgCloseTime:bool;
    WazamsgSubMsgCloseTime:float;
    WildTrposCheckSize:float;
    RandomCameraStartFrames:int;
    TrainerWaitIntervalFix:int;
    TrainerWaitIntervalRandom:int;
    PokeRoarIntervalFix:int;
    PokeRoarIntervalRandom:int;
    BossCarIdlingIntervalFix:int;
    BossCarIdlingIntervalRandom:int;
    BossCarWaitRate:int;
    BossCarRoarRate:int;
    BattleAreaSize:float;
    BattleHecklerAreaSize:float;
    RaidPowerchargeMessageTime:float;
    PokeMoveConditionDistance:float;
}

root_type BattleConfig;
