上传魔药接口

This commit is contained in:
liwei1dao 2023-03-29 10:16:02 +08:00
parent c559bcf069
commit e7f5b858d6
7 changed files with 1046 additions and 109 deletions

434
bin/json/game_material.json Normal file
View File

@ -0,0 +1,434 @@
[
{
"id": 1001,
"describe": {
"key": "hechengmoyao1001",
"text": "材料A+材料B"
},
"type": 1,
"material": [
{
"a": "item",
"t": "10001",
"n": 1
}
],
"standard_yield": [
{
"a": "item",
"t": "100001",
"n": 3
}
],
"low_yield": [
{
"a": "item",
"t": "100001",
"n": 1
}
],
"high_yield": [
{
"a": "item",
"t": "100001",
"n": 7
}
]
},
{
"id": 1002,
"describe": {
"key": "hechengmoyao1002",
"text": "材料A+材料B"
},
"type": 2,
"material": [
{
"a": "item",
"t": "10002",
"n": 1
}
],
"standard_yield": [
{
"a": "item",
"t": "100002",
"n": 3
}
],
"low_yield": [
{
"a": "item",
"t": "100002",
"n": 1
}
],
"high_yield": [
{
"a": "item",
"t": "100002",
"n": 7
}
]
},
{
"id": 1003,
"describe": {
"key": "hechengmoyao1003",
"text": "材料A+材料B"
},
"type": 3,
"material": [
{
"a": "item",
"t": "10003",
"n": 1
}
],
"standard_yield": [
{
"a": "item",
"t": "100003",
"n": 3
}
],
"low_yield": [
{
"a": "item",
"t": "100003",
"n": 1
}
],
"high_yield": [
{
"a": "item",
"t": "100003",
"n": 7
}
]
},
{
"id": 1004,
"describe": {
"key": "hechengmoyao1004",
"text": "材料A+材料B"
},
"type": 4,
"material": [
{
"a": "item",
"t": "10004",
"n": 1
}
],
"standard_yield": [
{
"a": "item",
"t": "100004",
"n": 3
}
],
"low_yield": [
{
"a": "item",
"t": "100004",
"n": 1
}
],
"high_yield": [
{
"a": "item",
"t": "100004",
"n": 7
}
]
},
{
"id": 1005,
"describe": {
"key": "hechengmoyao1005",
"text": "材料A+材料B"
},
"type": 1,
"material": [
{
"a": "item",
"t": "10005",
"n": 1
}
],
"standard_yield": [
{
"a": "item",
"t": "100005",
"n": 3
}
],
"low_yield": [
{
"a": "item",
"t": "100005",
"n": 1
}
],
"high_yield": [
{
"a": "item",
"t": "100005",
"n": 7
}
]
},
{
"id": 1006,
"describe": {
"key": "hechengmoyao1006",
"text": "材料A+材料B"
},
"type": 2,
"material": [
{
"a": "item",
"t": "10006",
"n": 1
}
],
"standard_yield": [
{
"a": "item",
"t": "100006",
"n": 3
}
],
"low_yield": [
{
"a": "item",
"t": "100006",
"n": 1
}
],
"high_yield": [
{
"a": "item",
"t": "100006",
"n": 7
}
]
},
{
"id": 1007,
"describe": {
"key": "hechengmoyao1007",
"text": "材料A+材料B"
},
"type": 3,
"material": [
{
"a": "item",
"t": "10007",
"n": 1
}
],
"standard_yield": [
{
"a": "item",
"t": "100007",
"n": 3
}
],
"low_yield": [
{
"a": "item",
"t": "100007",
"n": 1
}
],
"high_yield": [
{
"a": "item",
"t": "100007",
"n": 7
}
]
},
{
"id": 1008,
"describe": {
"key": "hechengmoyao1008",
"text": "材料A+材料B"
},
"type": 4,
"material": [
{
"a": "item",
"t": "10008",
"n": 1
}
],
"standard_yield": [
{
"a": "item",
"t": "100008",
"n": 3
}
],
"low_yield": [
{
"a": "item",
"t": "100008",
"n": 1
}
],
"high_yield": [
{
"a": "item",
"t": "100008",
"n": 7
}
]
},
{
"id": 1009,
"describe": {
"key": "hechengmoyao1009",
"text": "材料A+材料B"
},
"type": 1,
"material": [
{
"a": "item",
"t": "10009",
"n": 1
}
],
"standard_yield": [
{
"a": "item",
"t": "100009",
"n": 3
}
],
"low_yield": [
{
"a": "item",
"t": "100009",
"n": 1
}
],
"high_yield": [
{
"a": "item",
"t": "100009",
"n": 7
}
]
},
{
"id": 1010,
"describe": {
"key": "hechengmoyao1010",
"text": "材料A+材料B"
},
"type": 2,
"material": [
{
"a": "item",
"t": "10010",
"n": 1
}
],
"standard_yield": [
{
"a": "item",
"t": "100010",
"n": 3
}
],
"low_yield": [
{
"a": "item",
"t": "100010",
"n": 1
}
],
"high_yield": [
{
"a": "item",
"t": "100010",
"n": 7
}
]
},
{
"id": 1011,
"describe": {
"key": "hechengmoyao1011",
"text": "材料A+材料B"
},
"type": 3,
"material": [
{
"a": "item",
"t": "10011",
"n": 1
}
],
"standard_yield": [
{
"a": "item",
"t": "100011",
"n": 3
}
],
"low_yield": [
{
"a": "item",
"t": "100011",
"n": 1
}
],
"high_yield": [
{
"a": "item",
"t": "100011",
"n": 7
}
]
},
{
"id": 1012,
"describe": {
"key": "hechengmoyao1012",
"text": "材料A+材料B"
},
"type": 4,
"material": [
{
"a": "item",
"t": "10012",
"n": 1
}
],
"standard_yield": [
{
"a": "item",
"t": "100012",
"n": 3
}
],
"low_yield": [
{
"a": "item",
"t": "100012",
"n": 1
}
],
"high_yield": [
{
"a": "item",
"t": "100012",
"n": 7
}
]
}
]

View File

@ -0,0 +1,71 @@
package items
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) PotionSynthesisCheck(session comm.IUserSession, req *pb.ItemsPotionSynthesisReq) (code pb.ErrorCode) {
return
}
//魔药合成
func (this *apiComp) PotionSynthesis(session comm.IUserSession, req *pb.ItemsPotionSynthesisReq) (code pb.ErrorCode, data proto.Message) {
var (
configure *cfg.GamePotionsData
need []*cfg.Gameatn
give []*cfg.Gameatn
err error
)
if configure, err = this.module.configure.GetMaterialConfigure(req.Id); err != nil {
code = pb.ErrorCode_ConfigNoFound
return
}
need = make([]*cfg.Gameatn, len(configure.Material))
for i, v := range configure.Material {
need[i] = &cfg.Gameatn{
A: v.A,
T: v.T,
N: v.N * req.Num,
}
}
if code = this.module.ConsumeRes(session, configure.Material, true); code != pb.ErrorCode_Success {
return
}
give = make([]*cfg.Gameatn, 0)
if req.Succnum <= 30 {
for _, v := range configure.LowYield {
give = append(give, &cfg.Gameatn{
A: v.A,
T: v.T,
N: v.N * req.Num,
})
}
} else if req.Succnum <= 60 {
for _, v := range configure.StandardYield {
give = append(give, &cfg.Gameatn{
A: v.A,
T: v.T,
N: v.N * req.Num,
})
}
} else {
for _, v := range configure.HighYield {
give = append(give, &cfg.Gameatn{
A: v.A,
T: v.T,
N: v.N * req.Num,
})
}
}
if code = this.module.DispenseRes(session, give, true); code != pb.ErrorCode_Success {
return
}
session.SendMsg(string(this.module.GetType()), "potionsynthesis", &pb.ItemsPotionSynthesisResp{Succ: true, Id: req.Id, Num: req.Num})
return
}

View File

@ -11,7 +11,9 @@ import (
) )
const ( const (
game_item = "game_item.json" game_item = "game_item.json"
game_material = "game_material.json"
// game_propsgroup = "game_propsgroup.json" // game_propsgroup = "game_propsgroup.json"
// game_propsgrouplist = "game_propsgrouplist.json" // game_propsgrouplist = "game_propsgrouplist.json"
) )
@ -30,6 +32,7 @@ func (this *ConfigureComp) Init(service core.IService, module core.IModule, comp
this.module = module.(*Items) this.module = module.(*Items)
// this.propsgroup = make(map[int32][]*cfg.GamePropsgroupData) // this.propsgroup = make(map[int32][]*cfg.GamePropsgroupData)
err = this.LoadConfigure(game_item, cfg.NewGameItem) err = this.LoadConfigure(game_item, cfg.NewGameItem)
err = this.LoadConfigure(game_material, cfg.NewGamePotions)
// err = configure.RegisterConfigure(game_propsgroup, cfg.NewGamePropsgroup, func() { // err = configure.RegisterConfigure(game_propsgroup, cfg.NewGamePropsgroup, func() {
// if v, err := this.GetConfigure(game_propsgroup); err == nil { // if v, err := this.GetConfigure(game_propsgroup); err == nil {
// if configure, ok := v.(*cfg.GamePropsgroup); ok { // if configure, ok := v.(*cfg.GamePropsgroup); ok {
@ -160,3 +163,22 @@ func (this *ConfigureComp) GetchallengeData(buy int) (result *cfg.Gameatn) {
// } // }
// return // return
// } // }
//读取物品配置
func (this *ConfigureComp) GetMaterialConfigure(id int32) (configure *cfg.GamePotionsData, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(game_item); err != nil {
this.module.Errorf("err:%v", err)
return
} else {
if configure, ok = v.(*cfg.GamePotions).GetDataMap()[id]; !ok {
err = fmt.Errorf("no found Material:%d configure", id)
this.module.Errorf("err:%v", err)
return
}
}
return
}

View File

@ -969,6 +969,134 @@ func (*ItemsRefreshUnifiedTicketResp) Descriptor() ([]byte, []int) {
return file_items_items_msg_proto_rawDescGZIP(), []int{16} return file_items_items_msg_proto_rawDescGZIP(), []int{16}
} }
//魔药合成请求
type ItemsPotionSynthesisReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` //配方id
Succnum int32 `protobuf:"varint,2,opt,name=succnum,proto3" json:"succnum"` //成功数量
Num int32 `protobuf:"varint,3,opt,name=num,proto3" json:"num"` //炼制数量
}
func (x *ItemsPotionSynthesisReq) Reset() {
*x = ItemsPotionSynthesisReq{}
if protoimpl.UnsafeEnabled {
mi := &file_items_items_msg_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ItemsPotionSynthesisReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ItemsPotionSynthesisReq) ProtoMessage() {}
func (x *ItemsPotionSynthesisReq) ProtoReflect() protoreflect.Message {
mi := &file_items_items_msg_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 ItemsPotionSynthesisReq.ProtoReflect.Descriptor instead.
func (*ItemsPotionSynthesisReq) Descriptor() ([]byte, []int) {
return file_items_items_msg_proto_rawDescGZIP(), []int{17}
}
func (x *ItemsPotionSynthesisReq) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *ItemsPotionSynthesisReq) GetSuccnum() int32 {
if x != nil {
return x.Succnum
}
return 0
}
func (x *ItemsPotionSynthesisReq) GetNum() int32 {
if x != nil {
return x.Num
}
return 0
}
//魔药合成请求 回应
type ItemsPotionSynthesisResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Succ bool `protobuf:"varint,1,opt,name=succ,proto3" json:"succ"`
Id int32 `protobuf:"varint,2,opt,name=id,proto3" json:"id"` //配方id
Num int32 `protobuf:"varint,3,opt,name=num,proto3" json:"num"` //炼制数量
}
func (x *ItemsPotionSynthesisResp) Reset() {
*x = ItemsPotionSynthesisResp{}
if protoimpl.UnsafeEnabled {
mi := &file_items_items_msg_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ItemsPotionSynthesisResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ItemsPotionSynthesisResp) ProtoMessage() {}
func (x *ItemsPotionSynthesisResp) ProtoReflect() protoreflect.Message {
mi := &file_items_items_msg_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 ItemsPotionSynthesisResp.ProtoReflect.Descriptor instead.
func (*ItemsPotionSynthesisResp) Descriptor() ([]byte, []int) {
return file_items_items_msg_proto_rawDescGZIP(), []int{18}
}
func (x *ItemsPotionSynthesisResp) GetSucc() bool {
if x != nil {
return x.Succ
}
return false
}
func (x *ItemsPotionSynthesisResp) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *ItemsPotionSynthesisResp) GetNum() int32 {
if x != nil {
return x.Num
}
return 0
}
var File_items_items_msg_proto protoreflect.FileDescriptor var File_items_items_msg_proto protoreflect.FileDescriptor
var file_items_items_msg_proto_rawDesc = []byte{ var file_items_items_msg_proto_rawDesc = []byte{
@ -1058,8 +1186,18 @@ var file_items_items_msg_proto_rawDesc = []byte{
0x68, 0x55, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x68, 0x55, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65,
0x71, 0x22, 0x1f, 0x0a, 0x1d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x71, 0x22, 0x1f, 0x0a, 0x1d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73,
0x68, 0x55, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x68, 0x55, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65,
0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x73, 0x70, 0x22, 0x55, 0x0a, 0x17, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x50, 0x6f, 0x74, 0x69, 0x6f,
0x6f, 0x33, 0x6e, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a,
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a,
0x07, 0x73, 0x75, 0x63, 0x63, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07,
0x73, 0x75, 0x63, 0x63, 0x6e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x03,
0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x50, 0x0a, 0x18, 0x49, 0x74, 0x65,
0x6d, 0x73, 0x50, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x73, 0x69,
0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20,
0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x75, 0x63, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d,
0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x42, 0x06, 0x5a, 0x04, 0x2e,
0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -1074,7 +1212,7 @@ func file_items_items_msg_proto_rawDescGZIP() []byte {
return file_items_items_msg_proto_rawDescData return file_items_items_msg_proto_rawDescData
} }
var file_items_items_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_items_items_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 19)
var file_items_items_msg_proto_goTypes = []interface{}{ var file_items_items_msg_proto_goTypes = []interface{}{
(*ItemsGetlistReq)(nil), // 0: ItemsGetlistReq (*ItemsGetlistReq)(nil), // 0: ItemsGetlistReq
(*ItemsGetlistResp)(nil), // 1: ItemsGetlistResp (*ItemsGetlistResp)(nil), // 1: ItemsGetlistResp
@ -1093,13 +1231,15 @@ var file_items_items_msg_proto_goTypes = []interface{}{
(*ItemsBuyUnifiedTicketResp)(nil), // 14: ItemsBuyUnifiedTicketResp (*ItemsBuyUnifiedTicketResp)(nil), // 14: ItemsBuyUnifiedTicketResp
(*ItemsRefreshUnifiedTicketReq)(nil), // 15: ItemsRefreshUnifiedTicketReq (*ItemsRefreshUnifiedTicketReq)(nil), // 15: ItemsRefreshUnifiedTicketReq
(*ItemsRefreshUnifiedTicketResp)(nil), // 16: ItemsRefreshUnifiedTicketResp (*ItemsRefreshUnifiedTicketResp)(nil), // 16: ItemsRefreshUnifiedTicketResp
(*DB_UserItemData)(nil), // 17: DB_UserItemData (*ItemsPotionSynthesisReq)(nil), // 17: ItemsPotionSynthesisReq
(*UserAssets)(nil), // 18: UserAssets (*ItemsPotionSynthesisResp)(nil), // 18: ItemsPotionSynthesisResp
(*DB_UserItemData)(nil), // 19: DB_UserItemData
(*UserAssets)(nil), // 20: UserAssets
} }
var file_items_items_msg_proto_depIdxs = []int32{ var file_items_items_msg_proto_depIdxs = []int32{
17, // 0: ItemsGetlistResp.Grids:type_name -> DB_UserItemData 19, // 0: ItemsGetlistResp.Grids:type_name -> DB_UserItemData
17, // 1: ItemsChangePush.Grids:type_name -> DB_UserItemData 19, // 1: ItemsChangePush.Grids:type_name -> DB_UserItemData
18, // 2: ItemsBuyPhysicalResp.asets:type_name -> UserAssets 20, // 2: ItemsBuyPhysicalResp.asets:type_name -> UserAssets
3, // [3:3] is the sub-list for method output_type 3, // [3:3] is the sub-list for method output_type
3, // [3:3] is the sub-list for method input_type 3, // [3:3] is the sub-list for method input_type
3, // [3:3] is the sub-list for extension type_name 3, // [3:3] is the sub-list for extension type_name
@ -1319,6 +1459,30 @@ func file_items_items_msg_proto_init() {
return nil return nil
} }
} }
file_items_items_msg_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ItemsPotionSynthesisReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_items_items_msg_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ItemsPotionSynthesisResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
} }
type x struct{} type x struct{}
out := protoimpl.TypeBuilder{ out := protoimpl.TypeBuilder{
@ -1326,7 +1490,7 @@ func file_items_items_msg_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_items_items_msg_proto_rawDesc, RawDescriptor: file_items_items_msg_proto_rawDesc,
NumEnums: 0, NumEnums: 0,
NumMessages: 17, NumMessages: 19,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@ -89,6 +89,7 @@ type DBStove struct {
Forge map[int32]int32 `protobuf:"bytes,6,rep,name=forge,proto3" json:"forge" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key 套装类型 value 打造次数 Forge map[int32]int32 `protobuf:"bytes,6,rep,name=forge,proto3" json:"forge" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key 套装类型 value 打造次数
Temperature int32 `protobuf:"varint,7,opt,name=temperature,proto3" json:"temperature"` // 炉子温度 Temperature int32 `protobuf:"varint,7,opt,name=temperature,proto3" json:"temperature"` // 炉子温度
RecoveTime int64 `protobuf:"varint,8,opt,name=recoveTime,proto3" json:"recoveTime"` // 恢复满时间 RecoveTime int64 `protobuf:"varint,8,opt,name=recoveTime,proto3" json:"recoveTime"` // 恢复满时间
Hit map[int32]int32 `protobuf:"bytes,9,rep,name=hit,proto3" json:"hit" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
} }
func (x *DBStove) Reset() { func (x *DBStove) Reset() {
@ -179,6 +180,13 @@ func (x *DBStove) GetRecoveTime() int64 {
return 0 return 0
} }
func (x *DBStove) GetHit() map[int32]int32 {
if x != nil {
return x.Hit
}
return nil
}
type CustomerInfo struct { type CustomerInfo struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
@ -740,7 +748,7 @@ var file_smithy_smithy_db_proto_rawDesc = []byte{
0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2f, 0x0a, 0x07, 0x4d, 0x61, 0x73, 0x74, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2f, 0x0a, 0x07, 0x4d, 0x61, 0x73, 0x74,
0x65, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x65, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x02, 0x6c, 0x76, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x02, 0x6c, 0x76, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb2, 0x03, 0x0a, 0x07, 0x44, 0x42, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8f, 0x04, 0x0a, 0x07, 0x44, 0x42,
0x53, 0x74, 0x6f, 0x76, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x03, 0x20,
@ -756,86 +764,92 @@ var file_smithy_smithy_db_proto_rawDesc = []byte{
0x74, 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70,
0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x76,
0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x63,
0x6f, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x41, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6f, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x03, 0x68, 0x69, 0x74, 0x18, 0x09,
0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x2e, 0x48,
0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x69, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x68, 0x69, 0x74, 0x1a, 0x41, 0x0a, 0x09,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x79, 0x52, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x05, 0x76,
0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x61, 0x73,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x74, 0x65, 0x72, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x46, 0x6f, 0x72,
0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x66, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x0a, 0x0c, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
0x28, 0x05, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x02, 0x38, 0x01, 0x1a, 0x36, 0x0a, 0x08, 0x48, 0x69, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
0x0a, 0x06, 0x73, 0x75, 0x69, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65,
0x73, 0x75, 0x69, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x43, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x66, 0x0a, 0x0c, 0x43,
0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x43, 0x75, 0x73, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63,
0x74, 0x6f, 0x6d, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73,
0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x75, 0x69, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x69,
0x6d, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x43, 0x6f,
0x6d, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d,
0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x01, 0x28, 0x03, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72,
0x54, 0x69, 0x6d, 0x65, 0x22, 0xc3, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d,
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72,
0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
0x69, 0x64, 0x12, 0x29, 0x0a, 0x05, 0x61, 0x74, 0x6c, 0x61, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52,
0x0b, 0x32, 0x13, 0x2e, 0x44, 0x42, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x2e, 0x41, 0x74, 0x6c, 0x61, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x61, 0x74, 0x6c, 0x61, 0x73, 0x12, 0x2f, 0x0a, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d,
0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x65, 0x22, 0xc3, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x12, 0x0e, 0x0a,
0x2e, 0x44, 0x42, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x14, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12,
0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x29, 0x0a, 0x05, 0x61, 0x74, 0x6c, 0x61, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13,
0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x2e, 0x44, 0x42, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x2e, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x45, 0x6e,
0x01, 0x28, 0x05, 0x52, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x44, 0x0a, 0x0a, 0x41, 0x74, 0x74, 0x72, 0x79, 0x52, 0x05, 0x61, 0x74, 0x6c, 0x61, 0x73, 0x12, 0x2f, 0x0a, 0x07, 0x63, 0x6f,
0x6c, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x05, 0x76, 0x61, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x6e, 0x74,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x46, 0x6f, 0x72, 0x67, 0x72, 0x79, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73,
0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72,
0x1a, 0x48, 0x0a, 0x0c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05,
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x52, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x44, 0x0a, 0x0a, 0x41, 0x74, 0x6c, 0x61, 0x73,
0x65, 0x79, 0x12, 0x22, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
0x0b, 0x32, 0x0c, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x63, 0x0a, 0x0b, 0x43, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x4c, 0x69,
0x6c, 0x6c, 0x65, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x48, 0x0a,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x0c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x22, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c,
0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61,
0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x63, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x6c, 0x65,
0x6b, 0x0a, 0x09, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x05, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x64, 0x61, 0x74, 0x61, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x46, 0x6f, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18,
0x72, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x64, 0x61, 0x74, 0x61, 0x31, 0x12, 0x20, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04,
0x0a, 0x05, 0x64, 0x61, 0x74, 0x61, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65,
0x46, 0x6f, 0x72, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x64, 0x61, 0x74, 0x61, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01,
0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x6b, 0x0a, 0x09,
0x28, 0x08, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x7f, 0x0a, 0x09, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x05, 0x64, 0x61, 0x74,
0x46, 0x6f, 0x72, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x6f, 0x72, 0x61, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x46, 0x6f, 0x72, 0x67, 0x65,
0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x64, 0x61, 0x74, 0x61, 0x31, 0x12, 0x20, 0x0a, 0x05, 0x64,
0x6f, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x61, 0x74, 0x61, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x46, 0x6f, 0x72,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x64, 0x61, 0x74, 0x61, 0x32, 0x12, 0x1a, 0x0a,
0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x7f, 0x0a, 0x09, 0x46, 0x6f, 0x72,
0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x6f, 0x72, 0x67, 0x65, 0x43,
0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x43, 0x0a, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x6f, 0x72, 0x67,
0x0c, 0x44, 0x42, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x10, 0x0a, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01,
0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74,
0x21, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79,
0x2e, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x74, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
0x6b, 0x73, 0x22, 0x40, 0x0a, 0x0a, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05,
0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x43, 0x0a, 0x0c, 0x44, 0x42,
0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69,
0x69, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x05,
0x69, 0x76, 0x65, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x54, 0x75,
0x6f, 0x74, 0x6f, 0x33, 0x6a, 0x69, 0x61, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22,
0x40, 0x0a, 0x0a, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a,
0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74,
0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
} }
var ( var (
@ -850,7 +864,7 @@ func file_smithy_smithy_db_proto_rawDescGZIP() []byte {
return file_smithy_smithy_db_proto_rawDescData return file_smithy_smithy_db_proto_rawDescData
} }
var file_smithy_smithy_db_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_smithy_smithy_db_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
var file_smithy_smithy_db_proto_goTypes = []interface{}{ var file_smithy_smithy_db_proto_goTypes = []interface{}{
(*Mastery)(nil), // 0: Mastery (*Mastery)(nil), // 0: Mastery
(*DBStove)(nil), // 1: DBStove (*DBStove)(nil), // 1: DBStove
@ -865,27 +879,29 @@ var file_smithy_smithy_db_proto_goTypes = []interface{}{
nil, // 10: DBStove.DataEntry nil, // 10: DBStove.DataEntry
nil, // 11: DBStove.SkillEntry nil, // 11: DBStove.SkillEntry
nil, // 12: DBStove.ForgeEntry nil, // 12: DBStove.ForgeEntry
nil, // 13: DBAtlas.AtlasEntry nil, // 13: DBStove.HitEntry
nil, // 14: DBAtlas.CollectEntry nil, // 14: DBAtlas.AtlasEntry
nil, // 15: DBAtlas.CollectEntry
} }
var file_smithy_smithy_db_proto_depIdxs = []int32{ var file_smithy_smithy_db_proto_depIdxs = []int32{
10, // 0: DBStove.data:type_name -> DBStove.DataEntry 10, // 0: DBStove.data:type_name -> DBStove.DataEntry
11, // 1: DBStove.skill:type_name -> DBStove.SkillEntry 11, // 1: DBStove.skill:type_name -> DBStove.SkillEntry
12, // 2: DBStove.forge:type_name -> DBStove.ForgeEntry 12, // 2: DBStove.forge:type_name -> DBStove.ForgeEntry
2, // 3: DBCustomer.customers:type_name -> CustomerInfo 13, // 3: DBStove.hit:type_name -> DBStove.HitEntry
13, // 4: DBAtlas.atlas:type_name -> DBAtlas.AtlasEntry 2, // 4: DBCustomer.customers:type_name -> CustomerInfo
14, // 5: DBAtlas.collect:type_name -> DBAtlas.CollectEntry 14, // 5: DBAtlas.atlas:type_name -> DBAtlas.AtlasEntry
7, // 6: ForgeList.data1:type_name -> ForgeData 15, // 6: DBAtlas.collect:type_name -> DBAtlas.CollectEntry
7, // 7: ForgeList.data2:type_name -> ForgeData 7, // 7: ForgeList.data1:type_name -> ForgeData
9, // 8: DBTujianTask.tasks:type_name -> TujianTask 7, // 8: ForgeList.data2:type_name -> ForgeData
0, // 9: DBStove.DataEntry.value:type_name -> Mastery 9, // 9: DBTujianTask.tasks:type_name -> TujianTask
6, // 10: DBAtlas.AtlasEntry.value:type_name -> ForgeList 0, // 10: DBStove.DataEntry.value:type_name -> Mastery
5, // 11: DBAtlas.CollectEntry.value:type_name -> CollectData 6, // 11: DBAtlas.AtlasEntry.value:type_name -> ForgeList
12, // [12:12] is the sub-list for method output_type 5, // 12: DBAtlas.CollectEntry.value:type_name -> CollectData
12, // [12:12] is the sub-list for method input_type 13, // [13:13] is the sub-list for method output_type
12, // [12:12] is the sub-list for extension type_name 13, // [13:13] is the sub-list for method input_type
12, // [12:12] is the sub-list for extension extendee 13, // [13:13] is the sub-list for extension type_name
0, // [0:12] is the sub-list for field type_name 13, // [13:13] is the sub-list for extension extendee
0, // [0:13] is the sub-list for field type_name
} }
func init() { file_smithy_smithy_db_proto_init() } func init() { file_smithy_smithy_db_proto_init() }
@ -1021,7 +1037,7 @@ func file_smithy_smithy_db_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_smithy_smithy_db_proto_rawDesc, RawDescriptor: file_smithy_smithy_db_proto_rawDesc,
NumEnums: 0, NumEnums: 0,
NumMessages: 15, NumMessages: 16,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type GamePotions struct {
_dataMap map[int32]*GamePotionsData
_dataList []*GamePotionsData
}
func NewGamePotions(_buf []map[string]interface{}) (*GamePotions, error) {
_dataList := make([]*GamePotionsData, 0, len(_buf))
dataMap := make(map[int32]*GamePotionsData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGamePotionsData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GamePotions{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GamePotions) GetDataMap() map[int32]*GamePotionsData {
return table._dataMap
}
func (table *GamePotions) GetDataList() []*GamePotionsData {
return table._dataList
}
func (table *GamePotions) Get(key int32) *GamePotionsData {
return table._dataMap[key]
}

View File

@ -0,0 +1,188 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type GamePotionsData struct {
Id int32
Describe string
Type int32
Material []*Gameatn
StandardYield []*Gameatn
LowYield []*Gameatn
HighYield []*Gameatn
}
const TypeId_GamePotionsData = 844054798
func (*GamePotionsData) GetTypeId() int32 {
return 844054798
}
func (_v *GamePotionsData) Deserialize(_buf map[string]interface{}) (err error) {
{
var _ok_ bool
var _tempNum_ float64
if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ {
err = errors.New("id error")
return
}
_v.Id = int32(_tempNum_)
}
{
var _ok_ bool
var __json_text__ map[string]interface{}
if __json_text__, _ok_ = _buf["describe"].(map[string]interface{}); !_ok_ {
err = errors.New("_v.Describe error")
return
}
{
var _ok_ bool
if _, _ok_ = __json_text__["key"].(string); !_ok_ {
err = errors.New("key error")
return
}
}
{
var _ok_ bool
if _v.Describe, _ok_ = __json_text__["text"].(string); !_ok_ {
err = errors.New("text error")
return
}
}
}
{
var _ok_ bool
var _tempNum_ float64
if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ {
err = errors.New("type error")
return
}
_v.Type = int32(_tempNum_)
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["material"].([]interface{}); !_ok_ {
err = errors.New("material error")
return
}
_v.Material = make([]*Gameatn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Gameatn
{
var _ok_ bool
var _x_ map[string]interface{}
if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ {
err = errors.New("_list_v_ error")
return
}
if _list_v_, err = DeserializeGameatn(_x_); err != nil {
return
}
}
_v.Material = append(_v.Material, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["standard_yield"].([]interface{}); !_ok_ {
err = errors.New("standard_yield error")
return
}
_v.StandardYield = make([]*Gameatn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Gameatn
{
var _ok_ bool
var _x_ map[string]interface{}
if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ {
err = errors.New("_list_v_ error")
return
}
if _list_v_, err = DeserializeGameatn(_x_); err != nil {
return
}
}
_v.StandardYield = append(_v.StandardYield, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["low_yield"].([]interface{}); !_ok_ {
err = errors.New("low_yield error")
return
}
_v.LowYield = make([]*Gameatn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Gameatn
{
var _ok_ bool
var _x_ map[string]interface{}
if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ {
err = errors.New("_list_v_ error")
return
}
if _list_v_, err = DeserializeGameatn(_x_); err != nil {
return
}
}
_v.LowYield = append(_v.LowYield, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["high_yield"].([]interface{}); !_ok_ {
err = errors.New("high_yield error")
return
}
_v.HighYield = make([]*Gameatn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Gameatn
{
var _ok_ bool
var _x_ map[string]interface{}
if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ {
err = errors.New("_list_v_ error")
return
}
if _list_v_, err = DeserializeGameatn(_x_); err != nil {
return
}
}
_v.HighYield = append(_v.HighYield, _list_v_)
}
}
return
}
func DeserializeGamePotionsData(_buf map[string]interface{}) (*GamePotionsData, error) {
v := &GamePotionsData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}