// Proto has been converted from Sorapointa to Grasscutter format
// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
// Copyright (C) 2022  Sorapointa Team
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.

syntax = "proto3";

import "BreakoutSyncAction.proto";
import "BreakoutSyncCreateConnect.proto";
import "BreakoutSyncFinishGame.proto";
import "BreakoutSyncPing.proto";
import "BreakoutSyncSnapShot.proto";

option java_package = "emu.grasscutter.net.proto";

message AbilityMixinBreakout {
  enum SyncType {
    SYNC_TYPE_NONE = 0;
    SYNC_TYPE_CREATE_CONNECT = 1;
    SYNC_TYPE_START_GAME = 2;
    SYNC_TYPE_PING = 3;
    SYNC_TYPE_FINISH_GAME = 4;
    SYNC_TYPE_SNAP_SHOT = 5;
    SYNC_TYPE_ACTION = 6;
  }

  int32 retcode = 8;
  SyncType sync_type = 4;
  oneof sync {
    BreakoutSyncCreateConnect sync_create_connect = 2;
    BreakoutSyncPing sync_ping = 1;
    BreakoutSyncFinishGame sync_finish_game = 5;
    BreakoutSyncSnapShot sync_snap_shot = 14;
    BreakoutSyncAction sync_action = 3;
  }
}
