// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.28.1
// 	protoc        v3.11.2
// source: game.proto

package gameproto

import (
	any1 "github.com/golang/protobuf/ptypes/any"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type NotifyTypeEnum int32

const (
	NotifyTypeEnum_NotifyTypePing               NotifyTypeEnum = 0
	NotifyTypeEnum_NotifyTypeJoinRoom           NotifyTypeEnum = 1
	NotifyTypeEnum_NotifyTypeLeaveRoom          NotifyTypeEnum = 2
	NotifyTypeEnum_NotifyTypeCreateRoom         NotifyTypeEnum = 3
	NotifyTypeEnum_NotifyTypeConnect            NotifyTypeEnum = 4
	NotifyTypeEnum_NotifyTypeDisconnect         NotifyTypeEnum = 5
	NotifyTypeEnum_NotifyTypeReady              NotifyTypeEnum = 6
	NotifyTypeEnum_NotifyTypeUnReady            NotifyTypeEnum = 7
	NotifyTypeEnum_NotifyTypeStart              NotifyTypeEnum = 8
	NotifyTypeEnum_NotifyTypeChooseMaster       NotifyTypeEnum = 9
	NotifyTypeEnum_NotifyTypeChooseMasterFinish NotifyTypeEnum = 10
	NotifyTypeEnum_NotifyTypeChooseMul          NotifyTypeEnum = 11
	NotifyTypeEnum_NotifyTypeChooseMulFinish    NotifyTypeEnum = 12
	NotifyTypeEnum_NotifyTypeGameInit           NotifyTypeEnum = 13
	NotifyTypeEnum_NotifyTypeOpen               NotifyTypeEnum = 14
	NotifyTypeEnum_NotifyTypeOpenFinish         NotifyTypeEnum = 15
	NotifyTypeEnum_NotifyTypeMsgResp            NotifyTypeEnum = 16 //简单的返回
	NotifyTypeEnum_NotifyTypeWaitReady          NotifyTypeEnum = 17
)

// Enum value maps for NotifyTypeEnum.
var (
	NotifyTypeEnum_name = map[int32]string{
		0:  "NotifyTypePing",
		1:  "NotifyTypeJoinRoom",
		2:  "NotifyTypeLeaveRoom",
		3:  "NotifyTypeCreateRoom",
		4:  "NotifyTypeConnect",
		5:  "NotifyTypeDisconnect",
		6:  "NotifyTypeReady",
		7:  "NotifyTypeUnReady",
		8:  "NotifyTypeStart",
		9:  "NotifyTypeChooseMaster",
		10: "NotifyTypeChooseMasterFinish",
		11: "NotifyTypeChooseMul",
		12: "NotifyTypeChooseMulFinish",
		13: "NotifyTypeGameInit",
		14: "NotifyTypeOpen",
		15: "NotifyTypeOpenFinish",
		16: "NotifyTypeMsgResp",
		17: "NotifyTypeWaitReady",
	}
	NotifyTypeEnum_value = map[string]int32{
		"NotifyTypePing":               0,
		"NotifyTypeJoinRoom":           1,
		"NotifyTypeLeaveRoom":          2,
		"NotifyTypeCreateRoom":         3,
		"NotifyTypeConnect":            4,
		"NotifyTypeDisconnect":         5,
		"NotifyTypeReady":              6,
		"NotifyTypeUnReady":            7,
		"NotifyTypeStart":              8,
		"NotifyTypeChooseMaster":       9,
		"NotifyTypeChooseMasterFinish": 10,
		"NotifyTypeChooseMul":          11,
		"NotifyTypeChooseMulFinish":    12,
		"NotifyTypeGameInit":           13,
		"NotifyTypeOpen":               14,
		"NotifyTypeOpenFinish":         15,
		"NotifyTypeMsgResp":            16,
		"NotifyTypeWaitReady":          17,
	}
)

func (x NotifyTypeEnum) Enum() *NotifyTypeEnum {
	p := new(NotifyTypeEnum)
	*p = x
	return p
}

func (x NotifyTypeEnum) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (NotifyTypeEnum) Descriptor() protoreflect.EnumDescriptor {
	return file_game_proto_enumTypes[0].Descriptor()
}

func (NotifyTypeEnum) Type() protoreflect.EnumType {
	return &file_game_proto_enumTypes[0]
}

func (x NotifyTypeEnum) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use NotifyTypeEnum.Descriptor instead.
func (NotifyTypeEnum) EnumDescriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{0}
}

type DataType int32

const (
	DataType_DataTypeNormal DataType = 0 //0x00000000
	DataType_DataTypeGZip   DataType = 2 //0x00000010
	DataType_DataTypeEnc    DataType = 4 //0x00000100
)

// Enum value maps for DataType.
var (
	DataType_name = map[int32]string{
		0: "DataTypeNormal",
		2: "DataTypeGZip",
		4: "DataTypeEnc",
	}
	DataType_value = map[string]int32{
		"DataTypeNormal": 0,
		"DataTypeGZip":   2,
		"DataTypeEnc":    4,
	}
)

func (x DataType) Enum() *DataType {
	p := new(DataType)
	*p = x
	return p
}

func (x DataType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DataType) Descriptor() protoreflect.EnumDescriptor {
	return file_game_proto_enumTypes[1].Descriptor()
}

func (DataType) Type() protoreflect.EnumType {
	return &file_game_proto_enumTypes[1]
}

func (x DataType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use DataType.Descriptor instead.
func (DataType) EnumDescriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{1}
}

type RoomType int32

const (
	RoomType_RoomTypeFree   RoomType = 0
	RoomType_RoomTypeNormal RoomType = 1
)

// Enum value maps for RoomType.
var (
	RoomType_name = map[int32]string{
		0: "RoomTypeFree",
		1: "RoomTypeNormal",
	}
	RoomType_value = map[string]int32{
		"RoomTypeFree":   0,
		"RoomTypeNormal": 1,
	}
)

func (x RoomType) Enum() *RoomType {
	p := new(RoomType)
	*p = x
	return p
}

func (x RoomType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (RoomType) Descriptor() protoreflect.EnumDescriptor {
	return file_game_proto_enumTypes[2].Descriptor()
}

func (RoomType) Type() protoreflect.EnumType {
	return &file_game_proto_enumTypes[2]
}

func (x RoomType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use RoomType.Descriptor instead.
func (RoomType) EnumDescriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{2}
}

type RespStatus int32

const (
	RespStatus_RespStatusSucc   RespStatus = 0
	RespStatus_RespStatusFailed RespStatus = 1
)

// Enum value maps for RespStatus.
var (
	RespStatus_name = map[int32]string{
		0: "RespStatusSucc",
		1: "RespStatusFailed",
	}
	RespStatus_value = map[string]int32{
		"RespStatusSucc":   0,
		"RespStatusFailed": 1,
	}
)

func (x RespStatus) Enum() *RespStatus {
	p := new(RespStatus)
	*p = x
	return p
}

func (x RespStatus) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (RespStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_game_proto_enumTypes[3].Descriptor()
}

func (RespStatus) Type() protoreflect.EnumType {
	return &file_game_proto_enumTypes[3]
}

func (x RespStatus) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use RespStatus.Descriptor instead.
func (RespStatus) EnumDescriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{3}
}

//Ping
type Ping struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Ping) Reset() {
	*x = Ping{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Ping) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Ping) ProtoMessage() {}

func (x *Ping) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Ping.ProtoReflect.Descriptor instead.
func (*Ping) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{0}
}

type MsgResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Once   string     `protobuf:"bytes,1,opt,name=once,proto3" json:"once,omitempty"`
	Status RespStatus `protobuf:"varint,2,opt,name=status,proto3,enum=gameproto.RespStatus" json:"status,omitempty"`
	Msg    string     `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"`
	Data   *any1.Any  `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"`
}

func (x *MsgResp) Reset() {
	*x = MsgResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MsgResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MsgResp) ProtoMessage() {}

func (x *MsgResp) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MsgResp.ProtoReflect.Descriptor instead.
func (*MsgResp) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{1}
}

func (x *MsgResp) GetOnce() string {
	if x != nil {
		return x.Once
	}
	return ""
}

func (x *MsgResp) GetStatus() RespStatus {
	if x != nil {
		return x.Status
	}
	return RespStatus_RespStatusSucc
}

func (x *MsgResp) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *MsgResp) GetData() *any1.Any {
	if x != nil {
		return x.Data
	}
	return nil
}

type Room struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ID           uint32   `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	Name         string   `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"`
	NeedPwd      bool     `protobuf:"varint,10,opt,name=needPwd,proto3" json:"needPwd,omitempty"`
	RoomType     RoomType `protobuf:"varint,3,opt,name=RoomType,proto3,enum=gameproto.RoomType" json:"RoomType,omitempty"`
	BaseAmount   float64  `protobuf:"fixed64,4,opt,name=BaseAmount,proto3" json:"BaseAmount,omitempty"`
	ChairUserID1 uint32   `protobuf:"varint,5,opt,name=ChairUserID1,proto3" json:"ChairUserID1,omitempty"`
	ChairUserID2 uint32   `protobuf:"varint,6,opt,name=ChairUserID2,proto3" json:"ChairUserID2,omitempty"`
	ChairUserID3 uint32   `protobuf:"varint,7,opt,name=ChairUserID3,proto3" json:"ChairUserID3,omitempty"`
	ChairUserID4 uint32   `protobuf:"varint,8,opt,name=ChairUserID4,proto3" json:"ChairUserID4,omitempty"`
	ChairUserID5 uint32   `protobuf:"varint,9,opt,name=ChairUserID5,proto3" json:"ChairUserID5,omitempty"`
	Status       uint32   `protobuf:"varint,11,opt,name=Status,proto3" json:"Status,omitempty"`
}

func (x *Room) Reset() {
	*x = Room{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Room) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Room) ProtoMessage() {}

func (x *Room) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Room.ProtoReflect.Descriptor instead.
func (*Room) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{2}
}

func (x *Room) GetID() uint32 {
	if x != nil {
		return x.ID
	}
	return 0
}

func (x *Room) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Room) GetNeedPwd() bool {
	if x != nil {
		return x.NeedPwd
	}
	return false
}

func (x *Room) GetRoomType() RoomType {
	if x != nil {
		return x.RoomType
	}
	return RoomType_RoomTypeFree
}

func (x *Room) GetBaseAmount() float64 {
	if x != nil {
		return x.BaseAmount
	}
	return 0
}

func (x *Room) GetChairUserID1() uint32 {
	if x != nil {
		return x.ChairUserID1
	}
	return 0
}

func (x *Room) GetChairUserID2() uint32 {
	if x != nil {
		return x.ChairUserID2
	}
	return 0
}

func (x *Room) GetChairUserID3() uint32 {
	if x != nil {
		return x.ChairUserID3
	}
	return 0
}

func (x *Room) GetChairUserID4() uint32 {
	if x != nil {
		return x.ChairUserID4
	}
	return 0
}

func (x *Room) GetChairUserID5() uint32 {
	if x != nil {
		return x.ChairUserID5
	}
	return 0
}

func (x *Room) GetStatus() uint32 {
	if x != nil {
		return x.Status
	}
	return 0
}

type RoomDetail struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ID              uint32      `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	Name            string      `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"`
	NeedPwd         bool        `protobuf:"varint,10,opt,name=needPwd,proto3" json:"needPwd,omitempty"`
	RoomType        RoomType    `protobuf:"varint,3,opt,name=RoomType,proto3,enum=gameproto.RoomType" json:"RoomType,omitempty"`
	BaseAmount      float64     `protobuf:"fixed64,4,opt,name=BaseAmount,proto3" json:"BaseAmount,omitempty"`
	ChairUserID1    uint32      `protobuf:"varint,5,opt,name=ChairUserID1,proto3" json:"ChairUserID1,omitempty"`
	ChairUserID2    uint32      `protobuf:"varint,6,opt,name=ChairUserID2,proto3" json:"ChairUserID2,omitempty"`
	ChairUserID3    uint32      `protobuf:"varint,7,opt,name=ChairUserID3,proto3" json:"ChairUserID3,omitempty"`
	ChairUserID4    uint32      `protobuf:"varint,8,opt,name=ChairUserID4,proto3" json:"ChairUserID4,omitempty"`
	ChairUserID5    uint32      `protobuf:"varint,9,opt,name=ChairUserID5,proto3" json:"ChairUserID5,omitempty"`
	Status          uint32      `protobuf:"varint,11,opt,name=Status,proto3" json:"Status,omitempty"`
	StatusStartTime int64       `protobuf:"varint,13,opt,name=StatusStartTime,proto3" json:"StatusStartTime,omitempty"`
	RoomUserList    []*RoomUser `protobuf:"bytes,12,rep,name=RoomUserList,proto3" json:"RoomUserList,omitempty"`
}

func (x *RoomDetail) Reset() {
	*x = RoomDetail{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RoomDetail) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RoomDetail) ProtoMessage() {}

func (x *RoomDetail) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RoomDetail.ProtoReflect.Descriptor instead.
func (*RoomDetail) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{3}
}

func (x *RoomDetail) GetID() uint32 {
	if x != nil {
		return x.ID
	}
	return 0
}

func (x *RoomDetail) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *RoomDetail) GetNeedPwd() bool {
	if x != nil {
		return x.NeedPwd
	}
	return false
}

func (x *RoomDetail) GetRoomType() RoomType {
	if x != nil {
		return x.RoomType
	}
	return RoomType_RoomTypeFree
}

func (x *RoomDetail) GetBaseAmount() float64 {
	if x != nil {
		return x.BaseAmount
	}
	return 0
}

func (x *RoomDetail) GetChairUserID1() uint32 {
	if x != nil {
		return x.ChairUserID1
	}
	return 0
}

func (x *RoomDetail) GetChairUserID2() uint32 {
	if x != nil {
		return x.ChairUserID2
	}
	return 0
}

func (x *RoomDetail) GetChairUserID3() uint32 {
	if x != nil {
		return x.ChairUserID3
	}
	return 0
}

func (x *RoomDetail) GetChairUserID4() uint32 {
	if x != nil {
		return x.ChairUserID4
	}
	return 0
}

func (x *RoomDetail) GetChairUserID5() uint32 {
	if x != nil {
		return x.ChairUserID5
	}
	return 0
}

func (x *RoomDetail) GetStatus() uint32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *RoomDetail) GetStatusStartTime() int64 {
	if x != nil {
		return x.StatusStartTime
	}
	return 0
}

func (x *RoomDetail) GetRoomUserList() []*RoomUser {
	if x != nil {
		return x.RoomUserList
	}
	return nil
}

type RoomUser struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UserID    uint32   `protobuf:"varint,1,opt,name=UserID,proto3" json:"UserID,omitempty"`
	CardList  []uint32 `protobuf:"varint,2,rep,packed,name=CardList,proto3" json:"CardList,omitempty"`
	WinAmount float32  `protobuf:"fixed32,3,opt,name=WinAmount,proto3" json:"WinAmount,omitempty"`
	IsMaster  bool     `protobuf:"varint,4,opt,name=IsMaster,proto3" json:"IsMaster,omitempty"`
	MasterMul uint32   `protobuf:"varint,5,opt,name=MasterMul,proto3" json:"MasterMul,omitempty"`
	Mul       uint32   `protobuf:"varint,6,opt,name=Mul,proto3" json:"Mul,omitempty"`
	Status    uint32   `protobuf:"varint,7,opt,name=Status,proto3" json:"Status,omitempty"`
	Balance   float64  `protobuf:"fixed64,8,opt,name=Balance,proto3" json:"Balance,omitempty"`
}

func (x *RoomUser) Reset() {
	*x = RoomUser{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RoomUser) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RoomUser) ProtoMessage() {}

func (x *RoomUser) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RoomUser.ProtoReflect.Descriptor instead.
func (*RoomUser) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{4}
}

func (x *RoomUser) GetUserID() uint32 {
	if x != nil {
		return x.UserID
	}
	return 0
}

func (x *RoomUser) GetCardList() []uint32 {
	if x != nil {
		return x.CardList
	}
	return nil
}

func (x *RoomUser) GetWinAmount() float32 {
	if x != nil {
		return x.WinAmount
	}
	return 0
}

func (x *RoomUser) GetIsMaster() bool {
	if x != nil {
		return x.IsMaster
	}
	return false
}

func (x *RoomUser) GetMasterMul() uint32 {
	if x != nil {
		return x.MasterMul
	}
	return 0
}

func (x *RoomUser) GetMul() uint32 {
	if x != nil {
		return x.Mul
	}
	return 0
}

func (x *RoomUser) GetStatus() uint32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *RoomUser) GetBalance() float64 {
	if x != nil {
		return x.Balance
	}
	return 0
}

type Game struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Room         *Room       `protobuf:"bytes,1,opt,name=Room,proto3" json:"Room,omitempty"` //房间信息
	RoomUserList []*RoomUser `protobuf:"bytes,2,rep,name=RoomUserList,proto3" json:"RoomUserList,omitempty"`
}

func (x *Game) Reset() {
	*x = Game{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Game) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Game) ProtoMessage() {}

func (x *Game) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Game.ProtoReflect.Descriptor instead.
func (*Game) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{5}
}

func (x *Game) GetRoom() *Room {
	if x != nil {
		return x.Room
	}
	return nil
}

func (x *Game) GetRoomUserList() []*RoomUser {
	if x != nil {
		return x.RoomUserList
	}
	return nil
}

type User struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UserID uint32 `protobuf:"varint,1,opt,name=UserID,proto3" json:"UserID,omitempty"`
	Name   string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"`
	Img    string `protobuf:"bytes,3,opt,name=Img,proto3" json:"Img,omitempty"`
}

func (x *User) Reset() {
	*x = User{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *User) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*User) ProtoMessage() {}

func (x *User) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use User.ProtoReflect.Descriptor instead.
func (*User) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{6}
}

func (x *User) GetUserID() uint32 {
	if x != nil {
		return x.UserID
	}
	return 0
}

func (x *User) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *User) GetImg() string {
	if x != nil {
		return x.Img
	}
	return ""
}

type Connect struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UserID     uint32      `protobuf:"varint,1,opt,name=UserID,proto3" json:"UserID,omitempty"`
	LogID      int64       `protobuf:"varint,2,opt,name=LogID,proto3" json:"LogID,omitempty"`
	Name       string      `protobuf:"bytes,3,opt,name=Name,proto3" json:"Name,omitempty"`
	Img        string      `protobuf:"bytes,4,opt,name=Img,proto3" json:"Img,omitempty"`
	Balance    float64     `protobuf:"fixed64,5,opt,name=Balance,proto3" json:"Balance,omitempty"`
	Game       *Game       `protobuf:"bytes,6,opt,name=Game,proto3" json:"Game,omitempty"`
	RoomList   []*Room     `protobuf:"bytes,7,rep,name=RoomList,proto3" json:"RoomList,omitempty"`
	UserList   []*User     `protobuf:"bytes,8,rep,name=UserList,proto3" json:"UserList,omitempty"`
	RoomDetail *RoomDetail `protobuf:"bytes,9,opt,name=RoomDetail,proto3" json:"RoomDetail,omitempty"` //用户当前房间的详情
}

func (x *Connect) Reset() {
	*x = Connect{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Connect) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Connect) ProtoMessage() {}

func (x *Connect) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Connect.ProtoReflect.Descriptor instead.
func (*Connect) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{7}
}

func (x *Connect) GetUserID() uint32 {
	if x != nil {
		return x.UserID
	}
	return 0
}

func (x *Connect) GetLogID() int64 {
	if x != nil {
		return x.LogID
	}
	return 0
}

func (x *Connect) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Connect) GetImg() string {
	if x != nil {
		return x.Img
	}
	return ""
}

func (x *Connect) GetBalance() float64 {
	if x != nil {
		return x.Balance
	}
	return 0
}

func (x *Connect) GetGame() *Game {
	if x != nil {
		return x.Game
	}
	return nil
}

func (x *Connect) GetRoomList() []*Room {
	if x != nil {
		return x.RoomList
	}
	return nil
}

func (x *Connect) GetUserList() []*User {
	if x != nil {
		return x.UserList
	}
	return nil
}

func (x *Connect) GetRoomDetail() *RoomDetail {
	if x != nil {
		return x.RoomDetail
	}
	return nil
}

type Disconnect struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UserID uint32 `protobuf:"varint,1,opt,name=UserID,proto3" json:"UserID,omitempty"`
}

func (x *Disconnect) Reset() {
	*x = Disconnect{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Disconnect) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Disconnect) ProtoMessage() {}

func (x *Disconnect) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Disconnect.ProtoReflect.Descriptor instead.
func (*Disconnect) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{8}
}

func (x *Disconnect) GetUserID() uint32 {
	if x != nil {
		return x.UserID
	}
	return 0
}

type JoinRoom struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RoomID     uint32      `protobuf:"varint,1,opt,name=RoomID,proto3" json:"RoomID,omitempty"`
	ChairID    uint32      `protobuf:"varint,2,opt,name=ChairID,proto3" json:"ChairID,omitempty"`
	UserID     uint32      `protobuf:"varint,3,opt,name=UserID,proto3" json:"UserID,omitempty"`
	GameStatus uint32      `protobuf:"varint,4,opt,name=GameStatus,proto3" json:"GameStatus,omitempty"`
	User       *User       `protobuf:"bytes,5,opt,name=User,proto3" json:"User,omitempty"`
	RoomDetail *RoomDetail `protobuf:"bytes,6,opt,name=RoomDetail,proto3" json:"RoomDetail,omitempty"`
}

func (x *JoinRoom) Reset() {
	*x = JoinRoom{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *JoinRoom) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*JoinRoom) ProtoMessage() {}

func (x *JoinRoom) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use JoinRoom.ProtoReflect.Descriptor instead.
func (*JoinRoom) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{9}
}

func (x *JoinRoom) GetRoomID() uint32 {
	if x != nil {
		return x.RoomID
	}
	return 0
}

func (x *JoinRoom) GetChairID() uint32 {
	if x != nil {
		return x.ChairID
	}
	return 0
}

func (x *JoinRoom) GetUserID() uint32 {
	if x != nil {
		return x.UserID
	}
	return 0
}

func (x *JoinRoom) GetGameStatus() uint32 {
	if x != nil {
		return x.GameStatus
	}
	return 0
}

func (x *JoinRoom) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

func (x *JoinRoom) GetRoomDetail() *RoomDetail {
	if x != nil {
		return x.RoomDetail
	}
	return nil
}

type LeaveRoom struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RoomID  uint32 `protobuf:"varint,1,opt,name=RoomID,proto3" json:"RoomID,omitempty"`
	ChairID uint32 `protobuf:"varint,2,opt,name=ChairID,proto3" json:"ChairID,omitempty"`
	UserID  uint32 `protobuf:"varint,3,opt,name=UserID,proto3" json:"UserID,omitempty"`
	User    *User  `protobuf:"bytes,5,opt,name=User,proto3" json:"User,omitempty"`
}

func (x *LeaveRoom) Reset() {
	*x = LeaveRoom{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *LeaveRoom) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LeaveRoom) ProtoMessage() {}

func (x *LeaveRoom) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LeaveRoom.ProtoReflect.Descriptor instead.
func (*LeaveRoom) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{10}
}

func (x *LeaveRoom) GetRoomID() uint32 {
	if x != nil {
		return x.RoomID
	}
	return 0
}

func (x *LeaveRoom) GetChairID() uint32 {
	if x != nil {
		return x.ChairID
	}
	return 0
}

func (x *LeaveRoom) GetUserID() uint32 {
	if x != nil {
		return x.UserID
	}
	return 0
}

func (x *LeaveRoom) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

type CreateRoom struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ID           uint32   `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	CreatorID    uint32   `protobuf:"varint,11,opt,name=CreatorID,proto3" json:"CreatorID,omitempty"`
	Name         string   `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"`
	NeedPwd      bool     `protobuf:"varint,10,opt,name=needPwd,proto3" json:"needPwd,omitempty"`
	RoomType     RoomType `protobuf:"varint,3,opt,name=RoomType,proto3,enum=gameproto.RoomType" json:"RoomType,omitempty"`
	BaseAmount   float64  `protobuf:"fixed64,4,opt,name=BaseAmount,proto3" json:"BaseAmount,omitempty"`
	ChairUserID1 uint32   `protobuf:"varint,5,opt,name=ChairUserID1,proto3" json:"ChairUserID1,omitempty"`
	ChairUserID2 uint32   `protobuf:"varint,6,opt,name=ChairUserID2,proto3" json:"ChairUserID2,omitempty"`
	ChairUserID3 uint32   `protobuf:"varint,7,opt,name=ChairUserID3,proto3" json:"ChairUserID3,omitempty"`
	ChairUserID4 uint32   `protobuf:"varint,8,opt,name=ChairUserID4,proto3" json:"ChairUserID4,omitempty"`
	ChairUserID5 uint32   `protobuf:"varint,9,opt,name=ChairUserID5,proto3" json:"ChairUserID5,omitempty"`
}

func (x *CreateRoom) Reset() {
	*x = CreateRoom{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateRoom) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateRoom) ProtoMessage() {}

func (x *CreateRoom) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateRoom.ProtoReflect.Descriptor instead.
func (*CreateRoom) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{11}
}

func (x *CreateRoom) GetID() uint32 {
	if x != nil {
		return x.ID
	}
	return 0
}

func (x *CreateRoom) GetCreatorID() uint32 {
	if x != nil {
		return x.CreatorID
	}
	return 0
}

func (x *CreateRoom) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *CreateRoom) GetNeedPwd() bool {
	if x != nil {
		return x.NeedPwd
	}
	return false
}

func (x *CreateRoom) GetRoomType() RoomType {
	if x != nil {
		return x.RoomType
	}
	return RoomType_RoomTypeFree
}

func (x *CreateRoom) GetBaseAmount() float64 {
	if x != nil {
		return x.BaseAmount
	}
	return 0
}

func (x *CreateRoom) GetChairUserID1() uint32 {
	if x != nil {
		return x.ChairUserID1
	}
	return 0
}

func (x *CreateRoom) GetChairUserID2() uint32 {
	if x != nil {
		return x.ChairUserID2
	}
	return 0
}

func (x *CreateRoom) GetChairUserID3() uint32 {
	if x != nil {
		return x.ChairUserID3
	}
	return 0
}

func (x *CreateRoom) GetChairUserID4() uint32 {
	if x != nil {
		return x.ChairUserID4
	}
	return 0
}

func (x *CreateRoom) GetChairUserID5() uint32 {
	if x != nil {
		return x.ChairUserID5
	}
	return 0
}

type Ready struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RoomID uint32 `protobuf:"varint,1,opt,name=RoomID,proto3" json:"RoomID,omitempty"`
	UserID uint32 `protobuf:"varint,3,opt,name=UserID,proto3" json:"UserID,omitempty"`
}

func (x *Ready) Reset() {
	*x = Ready{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Ready) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Ready) ProtoMessage() {}

func (x *Ready) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Ready.ProtoReflect.Descriptor instead.
func (*Ready) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{12}
}

func (x *Ready) GetRoomID() uint32 {
	if x != nil {
		return x.RoomID
	}
	return 0
}

func (x *Ready) GetUserID() uint32 {
	if x != nil {
		return x.UserID
	}
	return 0
}

type UnReady struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RoomID uint32 `protobuf:"varint,1,opt,name=RoomID,proto3" json:"RoomID,omitempty"`
	UserID uint32 `protobuf:"varint,3,opt,name=UserID,proto3" json:"UserID,omitempty"`
}

func (x *UnReady) Reset() {
	*x = UnReady{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UnReady) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UnReady) ProtoMessage() {}

func (x *UnReady) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UnReady.ProtoReflect.Descriptor instead.
func (*UnReady) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{13}
}

func (x *UnReady) GetRoomID() uint32 {
	if x != nil {
		return x.RoomID
	}
	return 0
}

func (x *UnReady) GetUserID() uint32 {
	if x != nil {
		return x.UserID
	}
	return 0
}

//开始等待其他人准备
type WaitReady struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RoomID uint32 `protobuf:"varint,1,opt,name=RoomID,proto3" json:"RoomID,omitempty"`
}

func (x *WaitReady) Reset() {
	*x = WaitReady{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WaitReady) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WaitReady) ProtoMessage() {}

func (x *WaitReady) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WaitReady.ProtoReflect.Descriptor instead.
func (*WaitReady) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{14}
}

func (x *WaitReady) GetRoomID() uint32 {
	if x != nil {
		return x.RoomID
	}
	return 0
}

//准备人数够，开始游戏
type Start struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RoomID              uint32   `protobuf:"varint,1,opt,name=RoomID,proto3" json:"RoomID,omitempty"`
	ChooseMasterMulList []uint32 `protobuf:"varint,2,rep,packed,name=ChooseMasterMulList,proto3" json:"ChooseMasterMulList,omitempty"` //抢庄倍数列表
	Issue               string   `protobuf:"bytes,3,opt,name=issue,proto3" json:"issue,omitempty"`
	CardList            []uint32 `protobuf:"varint,4,rep,packed,name=CardList,proto3" json:"CardList,omitempty"` //牌型列表
}

func (x *Start) Reset() {
	*x = Start{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Start) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Start) ProtoMessage() {}

func (x *Start) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Start.ProtoReflect.Descriptor instead.
func (*Start) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{15}
}

func (x *Start) GetRoomID() uint32 {
	if x != nil {
		return x.RoomID
	}
	return 0
}

func (x *Start) GetChooseMasterMulList() []uint32 {
	if x != nil {
		return x.ChooseMasterMulList
	}
	return nil
}

func (x *Start) GetIssue() string {
	if x != nil {
		return x.Issue
	}
	return ""
}

func (x *Start) GetCardList() []uint32 {
	if x != nil {
		return x.CardList
	}
	return nil
}

//选庄
type ChooseMaster struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UserID uint32 `protobuf:"varint,1,opt,name=UserID,proto3" json:"UserID,omitempty"`
	Mul    uint32 `protobuf:"varint,2,opt,name=Mul,proto3" json:"Mul,omitempty"` //0,1,2,3 - 0表示不抢
	RoomID uint32 `protobuf:"varint,3,opt,name=RoomID,proto3" json:"RoomID,omitempty"`
}

func (x *ChooseMaster) Reset() {
	*x = ChooseMaster{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ChooseMaster) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ChooseMaster) ProtoMessage() {}

func (x *ChooseMaster) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ChooseMaster.ProtoReflect.Descriptor instead.
func (*ChooseMaster) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{16}
}

func (x *ChooseMaster) GetUserID() uint32 {
	if x != nil {
		return x.UserID
	}
	return 0
}

func (x *ChooseMaster) GetMul() uint32 {
	if x != nil {
		return x.Mul
	}
	return 0
}

func (x *ChooseMaster) GetRoomID() uint32 {
	if x != nil {
		return x.RoomID
	}
	return 0
}

//选倍数
type ChooseMul struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UserID   uint32   `protobuf:"varint,1,opt,name=UserID,proto3" json:"UserID,omitempty"`
	Mul      uint32   `protobuf:"varint,2,opt,name=Mul,proto3" json:"Mul,omitempty"` //1,2,3 - 倍数
	RoomID   uint32   `protobuf:"varint,3,opt,name=RoomID,proto3" json:"RoomID,omitempty"`
	CardList []uint32 `protobuf:"varint,4,rep,packed,name=CardList,proto3" json:"CardList,omitempty"` //牌型列表
}

func (x *ChooseMul) Reset() {
	*x = ChooseMul{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ChooseMul) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ChooseMul) ProtoMessage() {}

func (x *ChooseMul) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ChooseMul.ProtoReflect.Descriptor instead.
func (*ChooseMul) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{17}
}

func (x *ChooseMul) GetUserID() uint32 {
	if x != nil {
		return x.UserID
	}
	return 0
}

func (x *ChooseMul) GetMul() uint32 {
	if x != nil {
		return x.Mul
	}
	return 0
}

func (x *ChooseMul) GetRoomID() uint32 {
	if x != nil {
		return x.RoomID
	}
	return 0
}

func (x *ChooseMul) GetCardList() []uint32 {
	if x != nil {
		return x.CardList
	}
	return nil
}

//选庄完成
type ChooseMasterFinish struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MasterUserID uint32   `protobuf:"varint,1,opt,name=MasterUserID,proto3" json:"MasterUserID,omitempty"` //庄家的ID
	MulList      []uint32 `protobuf:"varint,2,rep,packed,name=MulList,proto3" json:"MulList,omitempty"`    //倍数列表
	RoomID       uint32   `protobuf:"varint,3,opt,name=RoomID,proto3" json:"RoomID,omitempty"`
}

func (x *ChooseMasterFinish) Reset() {
	*x = ChooseMasterFinish{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ChooseMasterFinish) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ChooseMasterFinish) ProtoMessage() {}

func (x *ChooseMasterFinish) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[18]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ChooseMasterFinish.ProtoReflect.Descriptor instead.
func (*ChooseMasterFinish) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{18}
}

func (x *ChooseMasterFinish) GetMasterUserID() uint32 {
	if x != nil {
		return x.MasterUserID
	}
	return 0
}

func (x *ChooseMasterFinish) GetMulList() []uint32 {
	if x != nil {
		return x.MulList
	}
	return nil
}

func (x *ChooseMasterFinish) GetRoomID() uint32 {
	if x != nil {
		return x.RoomID
	}
	return 0
}

//选倍数完成
type ChooseMulFinish struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RoomID uint32 `protobuf:"varint,3,opt,name=RoomID,proto3" json:"RoomID,omitempty"`
}

func (x *ChooseMulFinish) Reset() {
	*x = ChooseMulFinish{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ChooseMulFinish) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ChooseMulFinish) ProtoMessage() {}

func (x *ChooseMulFinish) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[19]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ChooseMulFinish.ProtoReflect.Descriptor instead.
func (*ChooseMulFinish) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{19}
}

func (x *ChooseMulFinish) GetRoomID() uint32 {
	if x != nil {
		return x.RoomID
	}
	return 0
}

type PayoutInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UserID    uint32  `protobuf:"varint,1,opt,name=UserID,proto3" json:"UserID,omitempty"`
	Balance   float64 `protobuf:"fixed64,2,opt,name=Balance,proto3" json:"Balance,omitempty"`
	WinAmount float32 `protobuf:"fixed32,3,opt,name=winAmount,proto3" json:"winAmount,omitempty"`
	IsMaster  bool    `protobuf:"varint,4,opt,name=isMaster,proto3" json:"isMaster,omitempty"`
}

func (x *PayoutInfo) Reset() {
	*x = PayoutInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PayoutInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PayoutInfo) ProtoMessage() {}

func (x *PayoutInfo) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[20]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PayoutInfo.ProtoReflect.Descriptor instead.
func (*PayoutInfo) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{20}
}

func (x *PayoutInfo) GetUserID() uint32 {
	if x != nil {
		return x.UserID
	}
	return 0
}

func (x *PayoutInfo) GetBalance() float64 {
	if x != nil {
		return x.Balance
	}
	return 0
}

func (x *PayoutInfo) GetWinAmount() float32 {
	if x != nil {
		return x.WinAmount
	}
	return 0
}

func (x *PayoutInfo) GetIsMaster() bool {
	if x != nil {
		return x.IsMaster
	}
	return false
}

//选倍数完成
type OpenFinish struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RoomID         uint32        `protobuf:"varint,1,opt,name=RoomID,proto3" json:"RoomID,omitempty"`
	PayoutInfoList []*PayoutInfo `protobuf:"bytes,2,rep,name=PayoutInfoList,proto3" json:"PayoutInfoList,omitempty"`
}

func (x *OpenFinish) Reset() {
	*x = OpenFinish{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OpenFinish) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OpenFinish) ProtoMessage() {}

func (x *OpenFinish) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[21]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OpenFinish.ProtoReflect.Descriptor instead.
func (*OpenFinish) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{21}
}

func (x *OpenFinish) GetRoomID() uint32 {
	if x != nil {
		return x.RoomID
	}
	return 0
}

func (x *OpenFinish) GetPayoutInfoList() []*PayoutInfo {
	if x != nil {
		return x.PayoutInfoList
	}
	return nil
}

//开牌
type Open struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RoomID   uint32   `protobuf:"varint,1,opt,name=RoomID,proto3" json:"RoomID,omitempty"`
	UserID   uint32   `protobuf:"varint,2,opt,name=UserID,proto3" json:"UserID,omitempty"`
	CardList []uint32 `protobuf:"varint,3,rep,packed,name=CardList,proto3" json:"CardList,omitempty"` //牌型列表
}

func (x *Open) Reset() {
	*x = Open{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Open) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Open) ProtoMessage() {}

func (x *Open) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[22]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Open.ProtoReflect.Descriptor instead.
func (*Open) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{22}
}

func (x *Open) GetRoomID() uint32 {
	if x != nil {
		return x.RoomID
	}
	return 0
}

func (x *Open) GetUserID() uint32 {
	if x != nil {
		return x.UserID
	}
	return 0
}

func (x *Open) GetCardList() []uint32 {
	if x != nil {
		return x.CardList
	}
	return nil
}

//游戏初始化
type GameInit struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RoomID uint32 `protobuf:"varint,1,opt,name=RoomID,proto3" json:"RoomID,omitempty"`
}

func (x *GameInit) Reset() {
	*x = GameInit{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GameInit) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GameInit) ProtoMessage() {}

func (x *GameInit) ProtoReflect() protoreflect.Message {
	mi := &file_game_proto_msgTypes[23]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GameInit.ProtoReflect.Descriptor instead.
func (*GameInit) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{23}
}

func (x *GameInit) GetRoomID() uint32 {
	if x != nil {
		return x.RoomID
	}
	return 0
}

var File_game_proto protoreflect.FileDescriptor

var file_game_proto_rawDesc = []byte{
	0x0a, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x67, 0x61,
	0x6d, 0x65, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x22, 0x06, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x22, 0x88, 0x01, 0x0a, 0x07, 0x4d,
	0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x67, 0x61, 0x6d,
	0x65, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52,
	0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe1, 0x02, 0x0a, 0x04, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x0e,
	0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12,
	0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61,
	0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x65, 0x64, 0x50, 0x77, 0x64, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x07, 0x6e, 0x65, 0x65, 0x64, 0x50, 0x77, 0x64, 0x12, 0x2f, 0x0a, 0x08,
	0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13,
	0x2e, 0x67, 0x61, 0x6d, 0x65, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x54,
	0x79, 0x70, 0x65, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a,
	0x0a, 0x42, 0x61, 0x73, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x01, 0x52, 0x0a, 0x42, 0x61, 0x73, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a,
	0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x31, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44,
	0x31, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44,
	0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73,
	0x65, 0x72, 0x49, 0x44, 0x32, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73,
	0x65, 0x72, 0x49, 0x44, 0x33, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x43, 0x68, 0x61,
	0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x33, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61,
	0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x34, 0x12, 0x22, 0x0a,
	0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x35, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44,
	0x35, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xca, 0x03, 0x0a, 0x0a, 0x52, 0x6f,
	0x6f, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07,
	0x6e, 0x65, 0x65, 0x64, 0x50, 0x77, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6e,
	0x65, 0x65, 0x64, 0x50, 0x77, 0x64, 0x12, 0x2f, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79,
	0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x52,
	0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x61, 0x73, 0x65, 0x41,
	0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x42, 0x61, 0x73,
	0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72,
	0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x43,
	0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x31, 0x12, 0x22, 0x0a, 0x0c, 0x43,
	0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x32, 0x12,
	0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x33, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72,
	0x49, 0x44, 0x33, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72,
	0x49, 0x44, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72,
	0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x34, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72,
	0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x43,
	0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x35, 0x12, 0x16, 0x0a, 0x06, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53, 0x74, 0x61,
	0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a,
	0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0c, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x52, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x55, 0x73,
	0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x55,
	0x73, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x43,
	0x61, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x43,
	0x61, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x57, 0x69, 0x6e, 0x41, 0x6d,
	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x57, 0x69, 0x6e, 0x41,
	0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x4d, 0x61, 0x73, 0x74, 0x65,
	0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x4d, 0x61, 0x73, 0x74, 0x65,
	0x72, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x12,
	0x10, 0x0a, 0x03, 0x4d, 0x75, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x4d, 0x75,
	0x6c, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c,
	0x61, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61,
	0x6e, 0x63, 0x65, 0x22, 0x64, 0x0a, 0x04, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x04, 0x52,
	0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x61, 0x6d, 0x65,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x04, 0x52, 0x6f, 0x6f, 0x6d,
	0x12, 0x37, 0x0a, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0c, 0x52, 0x6f, 0x6f,
	0x6d, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x44, 0x0a, 0x04, 0x55, 0x73, 0x65,
	0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a,
	0x03, 0x49, 0x6d, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x49, 0x6d, 0x67, 0x22,
	0xad, 0x02, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x55,
	0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a,
	0x03, 0x49, 0x6d, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x49, 0x6d, 0x67, 0x12,
	0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01,
	0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x04, 0x47, 0x61, 0x6d,
	0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x2b,
	0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x0f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x6f, 0x6f,
	0x6d, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x08, 0x55,
	0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
	0x67, 0x61, 0x6d, 0x65, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x08,
	0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x0a, 0x52, 0x6f, 0x6f, 0x6d,
	0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67,
	0x61, 0x6d, 0x65, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x74,
	0x61, 0x69, 0x6c, 0x52, 0x0a, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22,
	0x24, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x16, 0x0a,
	0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55,
	0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0xd0, 0x01, 0x0a, 0x08, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x6f,
	0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68,
	0x61, 0x69, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x43, 0x68, 0x61,
	0x69, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a,
	0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x04,
	0x55, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x61, 0x6d,
	0x65, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x55, 0x73, 0x65,
	0x72, 0x12, 0x35, 0x0a, 0x0a, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0a, 0x52, 0x6f,
	0x6f, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x7a, 0x0a, 0x09, 0x4c, 0x65, 0x61, 0x76,
	0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a,
	0x07, 0x43, 0x68, 0x61, 0x69, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07,
	0x43, 0x68, 0x61, 0x69, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49,
	0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12,
	0x23, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
	0x67, 0x61, 0x6d, 0x65, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04,
	0x55, 0x73, 0x65, 0x72, 0x22, 0xed, 0x02, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52,
	0x6f, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44,
	0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x49,
	0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x65, 0x64, 0x50, 0x77, 0x64,
	0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6e, 0x65, 0x65, 0x64, 0x50, 0x77, 0x64, 0x12,
	0x2f, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x13, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x6f,
	0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x61, 0x73, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x42, 0x61, 0x73, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x31,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x44, 0x31, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x44, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x69,
	0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x32, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x69,
	0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x33, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c,
	0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x33, 0x12, 0x22, 0x0a, 0x0c,
	0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x34, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x34,
	0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x35,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x72, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x44, 0x35, 0x22, 0x37, 0x0a, 0x05, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, 0x0a,
	0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x52,
	0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x39, 0x0a,
	0x07, 0x55, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d,
	0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44,
	0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x23, 0x0a, 0x09, 0x57, 0x61, 0x69, 0x74,
	0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x22, 0x83, 0x01,
	0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49,
	0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12,
	0x30, 0x0a, 0x13, 0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4d,
	0x75, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x13, 0x43, 0x68,
	0x6f, 0x6f, 0x73, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x4c, 0x69, 0x73,
	0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x73, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x05, 0x69, 0x73, 0x73, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x64, 0x4c,
	0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x43, 0x61, 0x72, 0x64, 0x4c,
	0x69, 0x73, 0x74, 0x22, 0x50, 0x0a, 0x0c, 0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x4d, 0x61, 0x73,
	0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x10, 0x0a, 0x03, 0x4d,
	0x75, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x4d, 0x75, 0x6c, 0x12, 0x16, 0x0a,
	0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x52,
	0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x22, 0x69, 0x0a, 0x09, 0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x4d,
	0x75, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x75,
	0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x4d, 0x75, 0x6c, 0x12, 0x16, 0x0a, 0x06,
	0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x52, 0x6f,
	0x6f, 0x6d, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74,
	0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74,
	0x22, 0x6a, 0x0a, 0x12, 0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72,
	0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72,
	0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x4d, 0x61,
	0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x75,
	0x6c, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x4d, 0x75, 0x6c,
	0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x22, 0x29, 0x0a, 0x0f,
	0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x4d, 0x75, 0x6c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x12,
	0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x22, 0x78, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x6f, 0x75,
	0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a,
	0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07,
	0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x69, 0x6e, 0x41, 0x6d,
	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x77, 0x69, 0x6e, 0x41,
	0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x4d, 0x61, 0x73, 0x74, 0x65,
	0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x4d, 0x61, 0x73, 0x74, 0x65,
	0x72, 0x22, 0x63, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x12,
	0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x0e, 0x50, 0x61, 0x79, 0x6f, 0x75,
	0x74, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x15, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x79, 0x6f,
	0x75, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x50, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x49, 0x6e,
	0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x52, 0x0a, 0x04, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x16,
	0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06,
	0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a,
	0x0a, 0x08, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d,
	0x52, 0x08, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x22, 0x0a, 0x08, 0x47, 0x61,
	0x6d, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x2a, 0xcd,
	0x03, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x75,
	0x6d, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x50,
	0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54,
	0x79, 0x70, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x10, 0x01, 0x12, 0x17, 0x0a,
	0x13, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x65, 0x61, 0x76, 0x65,
	0x52, 0x6f, 0x6f, 0x6d, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79,
	0x54, 0x79, 0x70, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x10, 0x03,
	0x12, 0x15, 0x0a, 0x11, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f,
	0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x4e, 0x6f, 0x74, 0x69, 0x66,
	0x79, 0x54, 0x79, 0x70, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10,
	0x05, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52,
	0x65, 0x61, 0x64, 0x79, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79,
	0x54, 0x79, 0x70, 0x65, 0x55, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x79, 0x10, 0x07, 0x12, 0x13, 0x0a,
	0x0f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74,
	0x10, 0x08, 0x12, 0x1a, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65,
	0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x10, 0x09, 0x12, 0x20,
	0x0a, 0x1c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x43, 0x68, 0x6f, 0x6f,
	0x73, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0x0a,
	0x12, 0x17, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x43, 0x68,
	0x6f, 0x6f, 0x73, 0x65, 0x4d, 0x75, 0x6c, 0x10, 0x0b, 0x12, 0x1d, 0x0a, 0x19, 0x4e, 0x6f, 0x74,
	0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x4d, 0x75, 0x6c,
	0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69,
	0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x10, 0x0d,
	0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x70,
	0x65, 0x6e, 0x10, 0x0e, 0x12, 0x18, 0x0a, 0x14, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79,
	0x70, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0x0f, 0x12, 0x15,
	0x0a, 0x11, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x73, 0x67, 0x52,
	0x65, 0x73, 0x70, 0x10, 0x10, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54,
	0x79, 0x70, 0x65, 0x57, 0x61, 0x69, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x10, 0x11, 0x2a, 0x41,
	0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x61,
	0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x10,
	0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x47, 0x5a, 0x69, 0x70, 0x10, 0x02,
	0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x63, 0x10,
	0x04, 0x2a, 0x30, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a,
	0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x46, 0x72, 0x65, 0x65, 0x10, 0x00, 0x12,
	0x12, 0x0a, 0x0e, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x6f, 0x72, 0x6d, 0x61,
	0x6c, 0x10, 0x01, 0x2a, 0x36, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53,
	0x75, 0x63, 0x63, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x70, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x01, 0x42, 0x0e, 0x5a, 0x0c, 0x2e,
	0x2f, 0x3b, 0x67, 0x61, 0x6d, 0x65, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x33,
}

var (
	file_game_proto_rawDescOnce sync.Once
	file_game_proto_rawDescData = file_game_proto_rawDesc
)

func file_game_proto_rawDescGZIP() []byte {
	file_game_proto_rawDescOnce.Do(func() {
		file_game_proto_rawDescData = protoimpl.X.CompressGZIP(file_game_proto_rawDescData)
	})
	return file_game_proto_rawDescData
}

var file_game_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_game_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
var file_game_proto_goTypes = []interface{}{
	(NotifyTypeEnum)(0),        // 0: gameproto.NotifyTypeEnum
	(DataType)(0),              // 1: gameproto.DataType
	(RoomType)(0),              // 2: gameproto.RoomType
	(RespStatus)(0),            // 3: gameproto.RespStatus
	(*Ping)(nil),               // 4: gameproto.Ping
	(*MsgResp)(nil),            // 5: gameproto.MsgResp
	(*Room)(nil),               // 6: gameproto.Room
	(*RoomDetail)(nil),         // 7: gameproto.RoomDetail
	(*RoomUser)(nil),           // 8: gameproto.RoomUser
	(*Game)(nil),               // 9: gameproto.Game
	(*User)(nil),               // 10: gameproto.User
	(*Connect)(nil),            // 11: gameproto.Connect
	(*Disconnect)(nil),         // 12: gameproto.Disconnect
	(*JoinRoom)(nil),           // 13: gameproto.JoinRoom
	(*LeaveRoom)(nil),          // 14: gameproto.LeaveRoom
	(*CreateRoom)(nil),         // 15: gameproto.CreateRoom
	(*Ready)(nil),              // 16: gameproto.Ready
	(*UnReady)(nil),            // 17: gameproto.UnReady
	(*WaitReady)(nil),          // 18: gameproto.WaitReady
	(*Start)(nil),              // 19: gameproto.Start
	(*ChooseMaster)(nil),       // 20: gameproto.ChooseMaster
	(*ChooseMul)(nil),          // 21: gameproto.ChooseMul
	(*ChooseMasterFinish)(nil), // 22: gameproto.ChooseMasterFinish
	(*ChooseMulFinish)(nil),    // 23: gameproto.ChooseMulFinish
	(*PayoutInfo)(nil),         // 24: gameproto.PayoutInfo
	(*OpenFinish)(nil),         // 25: gameproto.OpenFinish
	(*Open)(nil),               // 26: gameproto.Open
	(*GameInit)(nil),           // 27: gameproto.GameInit
	(*any1.Any)(nil),           // 28: google.protobuf.Any
}
var file_game_proto_depIdxs = []int32{
	3,  // 0: gameproto.MsgResp.status:type_name -> gameproto.RespStatus
	28, // 1: gameproto.MsgResp.data:type_name -> google.protobuf.Any
	2,  // 2: gameproto.Room.RoomType:type_name -> gameproto.RoomType
	2,  // 3: gameproto.RoomDetail.RoomType:type_name -> gameproto.RoomType
	8,  // 4: gameproto.RoomDetail.RoomUserList:type_name -> gameproto.RoomUser
	6,  // 5: gameproto.Game.Room:type_name -> gameproto.Room
	8,  // 6: gameproto.Game.RoomUserList:type_name -> gameproto.RoomUser
	9,  // 7: gameproto.Connect.Game:type_name -> gameproto.Game
	6,  // 8: gameproto.Connect.RoomList:type_name -> gameproto.Room
	10, // 9: gameproto.Connect.UserList:type_name -> gameproto.User
	7,  // 10: gameproto.Connect.RoomDetail:type_name -> gameproto.RoomDetail
	10, // 11: gameproto.JoinRoom.User:type_name -> gameproto.User
	7,  // 12: gameproto.JoinRoom.RoomDetail:type_name -> gameproto.RoomDetail
	10, // 13: gameproto.LeaveRoom.User:type_name -> gameproto.User
	2,  // 14: gameproto.CreateRoom.RoomType:type_name -> gameproto.RoomType
	24, // 15: gameproto.OpenFinish.PayoutInfoList:type_name -> gameproto.PayoutInfo
	16, // [16:16] is the sub-list for method output_type
	16, // [16:16] is the sub-list for method input_type
	16, // [16:16] is the sub-list for extension type_name
	16, // [16:16] is the sub-list for extension extendee
	0,  // [0:16] is the sub-list for field type_name
}

func init() { file_game_proto_init() }
func file_game_proto_init() {
	if File_game_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_game_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Ping); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MsgResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Room); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoomDetail); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoomUser); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Game); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*User); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Connect); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Disconnect); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*JoinRoom); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LeaveRoom); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateRoom); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Ready); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UnReady); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WaitReady); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Start); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ChooseMaster); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ChooseMul); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ChooseMasterFinish); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ChooseMulFinish); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PayoutInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OpenFinish); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Open); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_game_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GameInit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_game_proto_rawDesc,
			NumEnums:      4,
			NumMessages:   24,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_game_proto_goTypes,
		DependencyIndexes: file_game_proto_depIdxs,
		EnumInfos:         file_game_proto_enumTypes,
		MessageInfos:      file_game_proto_msgTypes,
	}.Build()
	File_game_proto = out.File
	file_game_proto_rawDesc = nil
	file_game_proto_goTypes = nil
	file_game_proto_depIdxs = nil
}
