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

package types

import (
	reflect "reflect"
	sync "sync"

	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)

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 Game struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//默认是由创建这局游戏的txHash作为gameId
	GameId string `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
	// create 1 -> Match 2 -> Cancel 3 -> Close 4
	Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`
	//创建时间
	CreateTime int64 `protobuf:"varint,3,opt,name=createTime,proto3" json:"createTime,omitempty"`
	//匹配时间(何时参与对赌）
	MatchTime int64 `protobuf:"varint,4,opt,name=matchTime,proto3" json:"matchTime,omitempty"`
	//状态close的时间（包括cancel）
	Closetime int64 `protobuf:"varint,5,opt,name=closetime,proto3" json:"closetime,omitempty"`
	//赌注
	Value int64 `protobuf:"varint,6,opt,name=value,proto3" json:"value,omitempty"`
	//发起者账号地址
	CreateAddress string `protobuf:"bytes,7,opt,name=createAddress,proto3" json:"createAddress,omitempty"`
	//对赌者账号地址
	MatchAddress string `protobuf:"bytes,8,opt,name=matchAddress,proto3" json:"matchAddress,omitempty"`
	// hash 类型，预留字段
	HashType string `protobuf:"bytes,9,opt,name=hashType,proto3" json:"hashType,omitempty"`
	//庄家创建游戏时，庄家自己出拳结果加密后的hash值
	HashValue []byte `protobuf:"bytes,10,opt,name=hashValue,proto3" json:"hashValue,omitempty"`
	//用来公布庄家出拳结果的私钥
	Secret string `protobuf:"bytes,11,opt,name=secret,proto3" json:"secret,omitempty"`
	// 1 平局，2 庄家获胜，3 matcher获胜，4
	// 庄家开奖超时，matcher获胜，并获得本局所有赌资
	Result int32 `protobuf:"varint,12,opt,name=result,proto3" json:"result,omitempty"`
	// matcher 出拳结果
	MatcherGuess int32 `protobuf:"varint,13,opt,name=matcherGuess,proto3" json:"matcherGuess,omitempty"`
	// create txHash
	CreateTxHash string `protobuf:"bytes,14,opt,name=createTxHash,proto3" json:"createTxHash,omitempty"`
	// matche交易hash
	MatchTxHash string `protobuf:"bytes,15,opt,name=matchTxHash,proto3" json:"matchTxHash,omitempty"`
	// close txhash
	CloseTxHash string `protobuf:"bytes,16,opt,name=closeTxHash,proto3" json:"closeTxHash,omitempty"`
	// cancel txhash
	CancelTxHash string `protobuf:"bytes,17,opt,name=cancelTxHash,proto3" json:"cancelTxHash,omitempty"`
	Index        int64  `protobuf:"varint,18,opt,name=index,proto3" json:"index,omitempty"`
	PrevIndex    int64  `protobuf:"varint,19,opt,name=prevIndex,proto3" json:"prevIndex,omitempty"`
	CreatorGuess int32  `protobuf:"varint,20,opt,name=creatorGuess,proto3" json:"creatorGuess,omitempty"`
}

func (x *Game) Reset() {
	*x = Game{}
	if protoimpl.UnsafeEnabled {
		mi := &file_game_proto_msgTypes[0]
		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[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 Game.ProtoReflect.Descriptor instead.
func (*Game) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{0}
}

func (x *Game) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

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

func (x *Game) GetCreateTime() int64 {
	if x != nil {
		return x.CreateTime
	}
	return 0
}

func (x *Game) GetMatchTime() int64 {
	if x != nil {
		return x.MatchTime
	}
	return 0
}

func (x *Game) GetClosetime() int64 {
	if x != nil {
		return x.Closetime
	}
	return 0
}

func (x *Game) GetValue() int64 {
	if x != nil {
		return x.Value
	}
	return 0
}

func (x *Game) GetCreateAddress() string {
	if x != nil {
		return x.CreateAddress
	}
	return ""
}

func (x *Game) GetMatchAddress() string {
	if x != nil {
		return x.MatchAddress
	}
	return ""
}

func (x *Game) GetHashType() string {
	if x != nil {
		return x.HashType
	}
	return ""
}

func (x *Game) GetHashValue() []byte {
	if x != nil {
		return x.HashValue
	}
	return nil
}

func (x *Game) GetSecret() string {
	if x != nil {
		return x.Secret
	}
	return ""
}

func (x *Game) GetResult() int32 {
	if x != nil {
		return x.Result
	}
	return 0
}

func (x *Game) GetMatcherGuess() int32 {
	if x != nil {
		return x.MatcherGuess
	}
	return 0
}

func (x *Game) GetCreateTxHash() string {
	if x != nil {
		return x.CreateTxHash
	}
	return ""
}

func (x *Game) GetMatchTxHash() string {
	if x != nil {
		return x.MatchTxHash
	}
	return ""
}

func (x *Game) GetCloseTxHash() string {
	if x != nil {
		return x.CloseTxHash
	}
	return ""
}

func (x *Game) GetCancelTxHash() string {
	if x != nil {
		return x.CancelTxHash
	}
	return ""
}

func (x *Game) GetIndex() int64 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *Game) GetPrevIndex() int64 {
	if x != nil {
		return x.PrevIndex
	}
	return 0
}

func (x *Game) GetCreatorGuess() int32 {
	if x != nil {
		return x.CreatorGuess
	}
	return 0
}

// message for execs.game
type GameAction struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Value:
	//	*GameAction_Create
	//	*GameAction_Cancel
	//	*GameAction_Close
	//	*GameAction_Match
	Value isGameAction_Value `protobuf_oneof:"value"`
	Ty    int32              `protobuf:"varint,10,opt,name=ty,proto3" json:"ty,omitempty"`
}

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

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

func (*GameAction) ProtoMessage() {}

func (x *GameAction) 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 GameAction.ProtoReflect.Descriptor instead.
func (*GameAction) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{1}
}

func (m *GameAction) GetValue() isGameAction_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (x *GameAction) GetCreate() *GameCreate {
	if x, ok := x.GetValue().(*GameAction_Create); ok {
		return x.Create
	}
	return nil
}

func (x *GameAction) GetCancel() *GameCancel {
	if x, ok := x.GetValue().(*GameAction_Cancel); ok {
		return x.Cancel
	}
	return nil
}

func (x *GameAction) GetClose() *GameClose {
	if x, ok := x.GetValue().(*GameAction_Close); ok {
		return x.Close
	}
	return nil
}

func (x *GameAction) GetMatch() *GameMatch {
	if x, ok := x.GetValue().(*GameAction_Match); ok {
		return x.Match
	}
	return nil
}

func (x *GameAction) GetTy() int32 {
	if x != nil {
		return x.Ty
	}
	return 0
}

type isGameAction_Value interface {
	isGameAction_Value()
}

type GameAction_Create struct {
	Create *GameCreate `protobuf:"bytes,1,opt,name=create,proto3,oneof"`
}

type GameAction_Cancel struct {
	Cancel *GameCancel `protobuf:"bytes,2,opt,name=cancel,proto3,oneof"`
}

type GameAction_Close struct {
	Close *GameClose `protobuf:"bytes,3,opt,name=close,proto3,oneof"`
}

type GameAction_Match struct {
	Match *GameMatch `protobuf:"bytes,4,opt,name=match,proto3,oneof"`
}

func (*GameAction_Create) isGameAction_Value() {}

func (*GameAction_Cancel) isGameAction_Value() {}

func (*GameAction_Close) isGameAction_Value() {}

func (*GameAction_Match) isGameAction_Value() {}

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

	GameId string `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
	Guess  int32  `protobuf:"varint,2,opt,name=guess,proto3" json:"guess,omitempty"`
}

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

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

func (*GameMatch) ProtoMessage() {}

func (x *GameMatch) 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 GameMatch.ProtoReflect.Descriptor instead.
func (*GameMatch) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{2}
}

func (x *GameMatch) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

func (x *GameMatch) GetGuess() int32 {
	if x != nil {
		return x.Guess
	}
	return 0
}

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

	GameId string `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
}

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

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

func (*GameCancel) ProtoMessage() {}

func (x *GameCancel) 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 GameCancel.ProtoReflect.Descriptor instead.
func (*GameCancel) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{3}
}

func (x *GameCancel) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

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

	GameId string `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
	Secret string `protobuf:"bytes,2,opt,name=secret,proto3" json:"secret,omitempty"`
}

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

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

func (*GameClose) ProtoMessage() {}

func (x *GameClose) 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 GameClose.ProtoReflect.Descriptor instead.
func (*GameClose) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{4}
}

func (x *GameClose) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

func (x *GameClose) GetSecret() string {
	if x != nil {
		return x.Secret
	}
	return ""
}

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

	Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
	//加密用的算法
	HashType string `protobuf:"bytes,2,opt,name=hashType,proto3" json:"hashType,omitempty"`
	//加密后的值
	HashValue []byte `protobuf:"bytes,3,opt,name=hashValue,proto3" json:"hashValue,omitempty"`
}

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

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

func (*GameCreate) ProtoMessage() {}

func (x *GameCreate) 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 GameCreate.ProtoReflect.Descriptor instead.
func (*GameCreate) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{5}
}

func (x *GameCreate) GetValue() int64 {
	if x != nil {
		return x.Value
	}
	return 0
}

func (x *GameCreate) GetHashType() string {
	if x != nil {
		return x.HashType
	}
	return ""
}

func (x *GameCreate) GetHashValue() []byte {
	if x != nil {
		return x.HashValue
	}
	return nil
}

// queryByAddr 和 queryByStatus共用同一个结构体
type QueryGameListByStatusAndAddr struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//优先根据status查询,status不可为空
	Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`
	//二级搜索，如果要查询一个地址下的所有game信息，可以根据status，分多次查询，这样规避存储数据时的臃余情况
	Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	// 索引值
	Index int64 `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"`
	//单页返回多少条记录，默认返回20条，单次最多返回100条
	Count int32 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"`
	// 0降序，1升序，默认降序
	Direction int32 `protobuf:"varint,5,opt,name=direction,proto3" json:"direction,omitempty"`
}

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

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

func (*QueryGameListByStatusAndAddr) ProtoMessage() {}

func (x *QueryGameListByStatusAndAddr) 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 QueryGameListByStatusAndAddr.ProtoReflect.Descriptor instead.
func (*QueryGameListByStatusAndAddr) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{6}
}

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

func (x *QueryGameListByStatusAndAddr) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *QueryGameListByStatusAndAddr) GetIndex() int64 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *QueryGameListByStatusAndAddr) GetCount() int32 {
	if x != nil {
		return x.Count
	}
	return 0
}

func (x *QueryGameListByStatusAndAddr) GetDirection() int32 {
	if x != nil {
		return x.Direction
	}
	return 0
}

// 统计数量
type QueryGameListCount struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//优先根据status查询,status不可为空
	Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`
	//二级搜索，如果要查询一个地址下的所有game信息，可以根据status，分多次查询，这样规避存储数据时的臃余情况
	Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
}

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

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

func (*QueryGameListCount) ProtoMessage() {}

func (x *QueryGameListCount) 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 QueryGameListCount.ProtoReflect.Descriptor instead.
func (*QueryGameListCount) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{7}
}

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

func (x *QueryGameListCount) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

// 索引value值
type GameRecord struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameId string `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
	Index  int64  `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
}

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

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

func (*GameRecord) ProtoMessage() {}

func (x *GameRecord) 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 GameRecord.ProtoReflect.Descriptor instead.
func (*GameRecord) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{8}
}

func (x *GameRecord) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

func (x *GameRecord) GetIndex() int64 {
	if x != nil {
		return x.Index
	}
	return 0
}

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

	GameId string `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
}

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

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

func (*QueryGameInfo) ProtoMessage() {}

func (x *QueryGameInfo) 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 QueryGameInfo.ProtoReflect.Descriptor instead.
func (*QueryGameInfo) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{9}
}

func (x *QueryGameInfo) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

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

	GameIds []string `protobuf:"bytes,1,rep,name=gameIds,proto3" json:"gameIds,omitempty"`
}

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

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

func (*QueryGameInfos) ProtoMessage() {}

func (x *QueryGameInfos) 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 QueryGameInfos.ProtoReflect.Descriptor instead.
func (*QueryGameInfos) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{10}
}

func (x *QueryGameInfos) GetGameIds() []string {
	if x != nil {
		return x.GameIds
	}
	return nil
}

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

	Games []*Game `protobuf:"bytes,1,rep,name=games,proto3" json:"games,omitempty"`
}

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

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

func (*ReplyGameList) ProtoMessage() {}

func (x *ReplyGameList) 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 ReplyGameList.ProtoReflect.Descriptor instead.
func (*ReplyGameList) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{11}
}

func (x *ReplyGameList) GetGames() []*Game {
	if x != nil {
		return x.Games
	}
	return nil
}

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

	Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
}

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

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

func (*ReplyGameListCount) ProtoMessage() {}

func (x *ReplyGameListCount) 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 ReplyGameListCount.ProtoReflect.Descriptor instead.
func (*ReplyGameListCount) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{12}
}

func (x *ReplyGameListCount) GetCount() int64 {
	if x != nil {
		return x.Count
	}
	return 0
}

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

	Game *Game `protobuf:"bytes,1,opt,name=game,proto3" json:"game,omitempty"`
}

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

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

func (*ReplyGame) ProtoMessage() {}

func (x *ReplyGame) 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 ReplyGame.ProtoReflect.Descriptor instead.
func (*ReplyGame) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{13}
}

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

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

	GameId string `protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
	Status int32  `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`
	//记录上一次状态
	PrevStatus int32  `protobuf:"varint,3,opt,name=prevStatus,proto3" json:"prevStatus,omitempty"`
	Addr       string `protobuf:"bytes,4,opt,name=addr,proto3" json:"addr,omitempty"`
	CreateAddr string `protobuf:"bytes,5,opt,name=createAddr,proto3" json:"createAddr,omitempty"`
	MatchAddr  string `protobuf:"bytes,6,opt,name=matchAddr,proto3" json:"matchAddr,omitempty"`
	Index      int64  `protobuf:"varint,7,opt,name=index,proto3" json:"index,omitempty"`
	PrevIndex  int64  `protobuf:"varint,8,opt,name=prevIndex,proto3" json:"prevIndex,omitempty"`
}

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

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

func (*ReceiptGame) ProtoMessage() {}

func (x *ReceiptGame) 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 ReceiptGame.ProtoReflect.Descriptor instead.
func (*ReceiptGame) Descriptor() ([]byte, []int) {
	return file_game_proto_rawDescGZIP(), []int{14}
}

func (x *ReceiptGame) GetGameId() string {
	if x != nil {
		return x.GameId
	}
	return ""
}

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

func (x *ReceiptGame) GetPrevStatus() int32 {
	if x != nil {
		return x.PrevStatus
	}
	return 0
}

func (x *ReceiptGame) GetAddr() string {
	if x != nil {
		return x.Addr
	}
	return ""
}

func (x *ReceiptGame) GetCreateAddr() string {
	if x != nil {
		return x.CreateAddr
	}
	return ""
}

func (x *ReceiptGame) GetMatchAddr() string {
	if x != nil {
		return x.MatchAddr
	}
	return ""
}

func (x *ReceiptGame) GetIndex() int64 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *ReceiptGame) GetPrevIndex() int64 {
	if x != nil {
		return x.PrevIndex
	}
	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, 0x05, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x22, 0xe4, 0x04, 0x0a, 0x04, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06,
	0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61,
	0x6d, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09,
	0x6d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x09, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c,
	0x6f, 0x73, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63,
	0x6c, 0x6f, 0x73, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x24,
	0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64,
	0x72, 0x65, 0x73, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x64, 0x64,
	0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x74, 0x63,
	0x68, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x68,
	0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x56, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x68, 0x61, 0x73, 0x68, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65,
	0x73, 0x75, 0x6c, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x47, 0x75, 0x65,
	0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65,
	0x72, 0x47, 0x75, 0x65, 0x73, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61,
	0x74, 0x63, 0x68, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x20, 0x0a, 0x0b,
	0x63, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0b, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22,
	0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x11,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x78, 0x48, 0x61,
	0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x76,
	0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x65,
	0x76, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f,
	0x72, 0x47, 0x75, 0x65, 0x73, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x6f, 0x72, 0x47, 0x75, 0x65, 0x73, 0x73, 0x22, 0xd3, 0x01, 0x0a, 0x0a, 0x47,
	0x61, 0x6d, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x06, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x06,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47,
	0x61, 0x6d, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x06, 0x63, 0x61, 0x6e,
	0x63, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x43,
	0x6c, 0x6f, 0x73, 0x65, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x28, 0x0a,
	0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x00,
	0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x79, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x02, 0x74, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x22, 0x39, 0x0a, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a,
	0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67,
	0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x65, 0x73, 0x73, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x75, 0x65, 0x73, 0x73, 0x22, 0x24, 0x0a, 0x0a, 0x47,
	0x61, 0x6d, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d,
	0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49,
	0x64, 0x22, 0x3b, 0x0a, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x16,
	0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x5c,
	0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c,
	0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x09, 0x68, 0x61, 0x73, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9a, 0x01, 0x0a,
	0x1c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x41, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x16, 0x0a,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12,
	0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64,
	0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x46, 0x0a, 0x12, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
	0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
	0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
	0x73, 0x22, 0x3a, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12,
	0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x27, 0x0a,
	0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16,
	0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47,
	0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x6d, 0x65,
	0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x6d, 0x65, 0x49,
	0x64, 0x73, 0x22, 0x32, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x47, 0x61, 0x6d, 0x65, 0x4c,
	0x69, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x52,
	0x05, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x2a, 0x0a, 0x12, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x47,
	0x61, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x22, 0x2c, 0x0a, 0x09, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x47, 0x61, 0x6d, 0x65, 0x12,
	0x1f, 0x0a, 0x04, 0x67, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x67, 0x61, 0x6d, 0x65,
	0x22, 0xe3, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x47, 0x61, 0x6d, 0x65,
	0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x76, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x76, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x61, 0x64, 0x64, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64,
	0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x41, 0x64, 0x64, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x64, 0x64,
	0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x64,
	0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x76,
	0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x65,
	0x76, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x74, 0x79, 0x70,
	0x65, 0x73, 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_msgTypes = make([]protoimpl.MessageInfo, 15)
var file_game_proto_goTypes = []interface{}{
	(*Game)(nil),                         // 0: types.Game
	(*GameAction)(nil),                   // 1: types.GameAction
	(*GameMatch)(nil),                    // 2: types.GameMatch
	(*GameCancel)(nil),                   // 3: types.GameCancel
	(*GameClose)(nil),                    // 4: types.GameClose
	(*GameCreate)(nil),                   // 5: types.GameCreate
	(*QueryGameListByStatusAndAddr)(nil), // 6: types.QueryGameListByStatusAndAddr
	(*QueryGameListCount)(nil),           // 7: types.QueryGameListCount
	(*GameRecord)(nil),                   // 8: types.GameRecord
	(*QueryGameInfo)(nil),                // 9: types.QueryGameInfo
	(*QueryGameInfos)(nil),               // 10: types.QueryGameInfos
	(*ReplyGameList)(nil),                // 11: types.ReplyGameList
	(*ReplyGameListCount)(nil),           // 12: types.ReplyGameListCount
	(*ReplyGame)(nil),                    // 13: types.ReplyGame
	(*ReceiptGame)(nil),                  // 14: types.ReceiptGame
}
var file_game_proto_depIdxs = []int32{
	5, // 0: types.GameAction.create:type_name -> types.GameCreate
	3, // 1: types.GameAction.cancel:type_name -> types.GameCancel
	4, // 2: types.GameAction.close:type_name -> types.GameClose
	2, // 3: types.GameAction.match:type_name -> types.GameMatch
	0, // 4: types.ReplyGameList.games:type_name -> types.Game
	0, // 5: types.ReplyGame.game:type_name -> types.Game
	6, // [6:6] is the sub-list for method output_type
	6, // [6:6] is the sub-list for method input_type
	6, // [6:6] is the sub-list for extension type_name
	6, // [6:6] is the sub-list for extension extendee
	0, // [0:6] 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.(*Game); 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.(*GameAction); 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.(*GameMatch); 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.(*GameCancel); 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.(*GameClose); 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.(*GameCreate); 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.(*QueryGameListByStatusAndAddr); 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.(*QueryGameListCount); 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.(*GameRecord); 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.(*QueryGameInfo); 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.(*QueryGameInfos); 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.(*ReplyGameList); 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.(*ReplyGameListCount); 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.(*ReplyGame); 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.(*ReceiptGame); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_game_proto_msgTypes[1].OneofWrappers = []interface{}{
		(*GameAction_Create)(nil),
		(*GameAction_Cancel)(nil),
		(*GameAction_Close)(nil),
		(*GameAction_Match)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_game_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   15,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_game_proto_goTypes,
		DependencyIndexes: file_game_proto_depIdxs,
		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
}
