This commit is contained in:
wh_zcy 2023-03-13 19:26:31 +08:00
commit 82ccec5660
32 changed files with 2779 additions and 4721 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,206 +0,0 @@
[
{
"id": 1,
"star": 1,
"starshow": {
"key": "smithy_name_1001",
"text": "木质"
},
"before": -1,
"starupneed": [
{
"a": "item",
"t": "120001",
"n": 1
}
],
"probability": 100,
"floors": 1,
"time": 300,
"desk": "",
"color": 1
},
{
"id": 2,
"star": 2,
"starshow": {
"key": "smithy_name_1002",
"text": "石质"
},
"before": 1,
"starupneed": [
{
"a": "item",
"t": "120001",
"n": 2
}
],
"probability": 100,
"floors": 1,
"time": 290,
"desk": "",
"color": 1
},
{
"id": 3,
"star": 3,
"starshow": {
"key": "smithy_name_1003",
"text": "铁质"
},
"before": 2,
"starupneed": [
{
"a": "item",
"t": "120001",
"n": 3
}
],
"probability": 100,
"floors": 1,
"time": 280,
"desk": "",
"color": 2
},
{
"id": 4,
"star": 4,
"starshow": {
"key": "smithy_name_1004",
"text": "钢质"
},
"before": 3,
"starupneed": [
{
"a": "item",
"t": "120001",
"n": 4
}
],
"probability": 100,
"floors": 2,
"time": 270,
"desk": "",
"color": 2
},
{
"id": 5,
"star": 5,
"starshow": {
"key": "smithy_name_1005",
"text": "铂金质"
},
"before": 4,
"starupneed": [
{
"a": "item",
"t": "120001",
"n": 5
}
],
"probability": 100,
"floors": 3,
"time": 260,
"desk": "",
"color": 3
},
{
"id": 6,
"star": 6,
"starshow": {
"key": "smithy_name_1006",
"text": "钻石质"
},
"before": 5,
"starupneed": [
{
"a": "item",
"t": "120001",
"n": 6
}
],
"probability": 100,
"floors": 4,
"time": 250,
"desk": "",
"color": 3
},
{
"id": 7,
"star": 7,
"starshow": {
"key": "smithy_name_1007",
"text": "星耀石质"
},
"before": 6,
"starupneed": [
{
"a": "item",
"t": "120001",
"n": 7
}
],
"probability": 100,
"floors": 5,
"time": 240,
"desk": "",
"color": 4
},
{
"id": 8,
"star": 8,
"starshow": {
"key": "smithy_name_1008",
"text": "星陨石质"
},
"before": 7,
"starupneed": [
{
"a": "item",
"t": "120001",
"n": 8
}
],
"probability": 100,
"floors": 5,
"time": 230,
"desk": "",
"color": 4
},
{
"id": 9,
"star": 9,
"starshow": {
"key": "smithy_name_1009",
"text": "星核质"
},
"before": 8,
"starupneed": [
{
"a": "item",
"t": "120001",
"n": 9
}
],
"probability": 100,
"floors": 5,
"time": 220,
"desk": "",
"color": 5
},
{
"id": 10,
"star": 10,
"starshow": {
"key": "smithy_name_1010",
"text": "宇宙粒子质"
},
"before": 9,
"starupneed": [],
"probability": 100,
"floors": -1,
"time": 1,
"desk": "",
"color": 6
}
]

View File

@ -1,66 +0,0 @@
[
{
"id": 101,
"type": 1,
"txt": {
"key": "smithy_txt_1001",
"text": "快给我升级"
}
},
{
"id": 102,
"type": 1,
"txt": {
"key": "smithy_txt_1002",
"text": "红伞伞啊白杆杆"
}
},
{
"id": 201,
"type": 2,
"txt": {
"key": "smithy_txt_1003",
"text": "找我下单"
}
},
{
"id": 202,
"type": 2,
"txt": {
"key": "smithy_txt_1004",
"text": "欢迎下次再来啊"
}
},
{
"id": 301,
"type": 3,
"txt": {
"key": "smithy_txt_1005",
"text": "哼哧哼哧"
}
},
{
"id": 302,
"type": 3,
"txt": {
"key": "smithy_txt_1006",
"text": "点我领装备咯"
}
},
{
"id": 401,
"type": 4,
"txt": {
"key": "smithy_txt_1007",
"text": "我倒是有办法制造更高级的装备,可你得先升级铸造台,否则我肯定锤坏它"
}
},
{
"id": 402,
"type": 4,
"txt": {
"key": "smithy_txt_1008",
"text": "我可是维京人中技术最高超的铁匠,童叟无欺"
}
}
]

View File

@ -295,7 +295,7 @@ type (
ModifyHeroFetterData(uid string, obj string, data map[string]interface{}) (code pb.ErrorCode) // 修改羁绊信息
QueryHeroFetter(uid string) (data []*pb.DBHeroFetter) // 查询所有的羁绊信息
AddHeroFetterData(uid string, heroConfId string) (code pb.ErrorCode) // 创建一条羁绊信息
SendRpcAddHero(session IUserSession, heroConfId string) (err error)
SendRpcAddHero(uid string, heroConfId string, serverTag string) (err error)
}
//月子秘境
IMoonFantasy interface {

View File

@ -269,7 +269,7 @@ func (this *Battle) CreateRolesByHeros(heros []*pb.DBHero) (roles []*pb.BattleRo
roles = make([]*pb.BattleRole, len(heros))
for i, v := range heros {
if v != nil {
if roles[i], code = this.modelBattle.createBattleRole(v, 100+i, i); code != pb.ErrorCode_Success {
if roles[i], code = this.modelBattle.createBattleRole(v, 200+i, i); code != pb.ErrorCode_Success {
return
}
}

View File

@ -151,7 +151,7 @@ func (this *configureComp) SetHeroDrawConfig() {
this.drawCardCfg[v.CardPoolType][v.Star] = append(this.drawCardCfg[v.CardPoolType][v.Star], v)
}
this.hlock.Unlock()
this.module.Debug("update cfg.Game_drawCard over")
// this.module.Debug("update cfg.Game_drawCard over")
return
}
}

View File

@ -83,13 +83,13 @@ func (this *Hero) createRepeatHero(session comm.IUserSession, heroCfgId string,
)
hero, bFirst, atno, err = this.modelHero.createHero(session, heroCfgId, num)
if err == nil && bFirst {
//go func(uid string, heroCfgId string) { // 携程处理 图鉴数据
if db.IsCross() {
this.moduleFetter.SendRpcAddHero(session, heroCfgId)
} else {
this.moduleFetter.AddHeroFetterData(session.GetUserId(), heroCfgId)
}
//}(session.GetUserId(), heroCfgId)
go func() { // 携程处理 图鉴数据
if db.IsCross() {
this.moduleFetter.SendRpcAddHero(session.GetUserId(), heroCfgId, session.GetServiecTag())
} else {
this.moduleFetter.AddHeroFetterData(session.GetUserId(), heroCfgId)
}
}()
// 统计任务
// 查品质

View File

@ -3,7 +3,6 @@ package library
import (
"context"
"errors"
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/lego/base"
"go_dreamfactory/lego/core"
@ -155,14 +154,15 @@ func (this *Library) QueryOneHeroFetter(uid string, cid string) *pb.DBHeroFetter
}
// 发送prc消息到区服处理
func (this *Library) SendRpcAddHero(session comm.IUserSession, heroConfId string) (err error) {
func (this *Library) SendRpcAddHero(uid string, heroConfId string, serverTag string) (err error) {
if this.IsCross() {
if _, err = this.service.AcrossClusterRpcGo( // 给区服发送rpc消息
context.Background(),
session.GetServiecTag(),
serverTag,
comm.Service_Worker,
string(comm.Rpc_ModuleFetter),
pb.RPCGeneralReqA2{Param1: session.GetUserId(), Param2: heroConfId},
pb.RPCGeneralReqA2{Param1: uid, Param2: heroConfId},
nil); err != nil {
this.Errorln(err)
}
@ -253,15 +253,14 @@ func (this *Library) Rpc_ModuleFetter(ctx context.Context, args *pb.RPCGeneralRe
session comm.IUserSession
ok bool
)
defer func() {
this.PutUserSession(session)
}()
if session, ok = this.GetUserSession(args.Param1); !ok {
err = fmt.Errorf("目标用户:%s 不在线", args.Param1)
} else {
if session, ok = this.GetUserSession(args.Param1); ok {
this.AddHeroFetterData(session.GetUserId(), args.Param2)
session.Push()
} else {
this.Debugf("Rpc_ModuleFetter 目标用户:%s 不在线", args.Param1)
}
this.PutUserSession(session)
return
}

View File

@ -31,6 +31,6 @@ func (this *apiComp) GymInfo(session comm.IUserSession, req *pb.PracticeGymInfoR
"gymrefresh": room.Gymrefresh,
})
}
session.SendMsg(string(this.module.GetType()), "confirm", &pb.PracticeGymInfoResp{Lastaction: room.Gymaction, Refreshnum: room.Gymrefresh})
session.SendMsg(string(this.module.GetType()), "gymInfo", &pb.PracticeGymInfoResp{Lastaction: room.Gymaction, Refreshnum: room.Gymrefresh})
return
}

View File

@ -57,6 +57,6 @@ func (this *apiComp) GymRefresh(session comm.IUserSession, req *pb.PracticeGymRe
"gymrefresh": room.Gymrefresh,
"lastrefresh": room.Lastrefresh,
})
session.SendMsg(string(this.module.GetType()), "confirm", &pb.PracticeGymRefreshResp{Lastaction: room.Gymaction, Refreshnum: room.Gymrefresh})
session.SendMsg(string(this.module.GetType()), "gymrefresh", &pb.PracticeGymRefreshResp{Lastaction: room.Gymaction, Refreshnum: room.Gymrefresh})
return
}

View File

@ -33,7 +33,7 @@ func (this *apiComp) NPCBattkle(session comm.IUserSession, req *pb.PracticeNPCBa
}); code != pb.ErrorCode_Success {
return
}
session.SendMsg(string(this.module.GetType()), "npcbattkle", &pb.MoonfantasyBattleResp{
session.SendMsg(string(this.module.GetType()), "npcbattkle", &pb.PracticeNPCBattkleResp{
Info: &pb.BattleInfo{
Id: record.Id,
Title: record.Title,

View File

@ -18,25 +18,24 @@ func (this *apiComp) NPCBattkleFinishCheck(session comm.IUserSession, req *pb.Pr
///npc 战斗结果请求
func (this *apiComp) NPCBattkleFinish(session comm.IUserSession, req *pb.PracticeNPCBattkleFinishReq) (code pb.ErrorCode, data proto.Message) {
var (
err error
room *pb.DBPracticeRoom
conf *cfg.GameDispatch_BattleData
iswin bool
err error
room *pb.DBPracticeRoom
conf *cfg.GameDispatch_BattleData
)
if room, err = this.module.modelPandata.queryUserMartialhall(session.GetUserId()); err != nil {
code = pb.ErrorCode_DBError
return
}
if room.Npcstate != 2 {
if room.Npcstate == 2 || room.Npcstate == 3 {
code = pb.ErrorCode_ReqParameterError
return
}
if code, iswin = this.module.battle.CheckBattleReport(session, req.Report); code != pb.ErrorCode_Success {
if code, _ = this.module.battle.CheckBattleReport(session, req.Report); code != pb.ErrorCode_Success {
return
}
if iswin {
if req.Report.WinSide == 1 {
room.Npcstate = 2
if conf, err = this.module.configure.getDispatchBattleData(room.Currnpc); err != nil {
code = pb.ErrorCode_ConfigNoFound

View File

@ -1,116 +0,0 @@
package smithy
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
cfg "go_dreamfactory/sys/configure/structs"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) CreateOrderCheck(session comm.IUserSession, req *pb.SmithyCreateOrderReq) (code pb.ErrorCode) {
if len(req.Order) == 0 {
code = pb.ErrorCode_ReqParameterError
return
}
return
}
func (this *apiComp) CreateOrder(session comm.IUserSession, req *pb.SmithyCreateOrderReq) (code pb.ErrorCode, data proto.Message) {
var (
res []*cfg.Gameatn
costTime int32
)
code = this.CreateOrderCheck(session, req)
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
_smithy, err := this.module.modelSmithy.getSmithyList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
_skillCfg := this.module.configure.GetSmithyStoveConfigData(_smithy.StoveLv)
needTime := _skillCfg.Time // 订单需要的时间
for _, order := range req.Order {
if order.Count == 0 {
continue
}
costTime += needTime * order.Count
}
if _smithy.Ctime == 0 {
_smithy.Ctime = configure.Now().Unix()
}
// if !utils.IsToday(_smithy.Ctime) {
// _smithy.Ctime = configure.Now().Unix()
// _smithy.OrderCostTime = 0
// }
_smithy.Orders = append(_smithy.Orders, req.Order...) // 直接追加订单数据
if _smithy.Clang == nil || (_smithy.Clang != nil && _smithy.Clang.ETime == 0) {
for _, v := range _smithy.Orders {
if v.Count > 0 {
v.Count--
// 获取生产时间
_smithy.Clang = &pb.Clang{
DeskType: v.DeskType,
ETime: configure.Now().Unix() + int64(needTime),
STime: configure.Now().Unix(),
}
break
}
}
}
// 計算耗時
for _, v := range _smithy.Orders {
if v.Count > 0 {
v.NeedTime = needTime * v.Count
}
if skillLv, ok := _smithy.Skill[v.DeskType]; ok {
conf := this.module.configure.GetSmithyConfigData(v.DeskType, skillLv)
res = append(res, conf.Orderneed...) // 订单消耗
}
}
if _smithy.Clang != nil && _smithy.Clang.ETime == 0 {
_smithy.Clang = nil
}
// 获取总的下单时长
cfgCom := this.module.configure.GetGlobalConf()
if cfgCom == nil {
return
}
_smithy.OrderCostTime += costTime
if cfgCom.SmithyMaxtime < _smithy.OrderCostTime { // 大于总时长是不允许的
code = pb.ErrorCode_GourmetMoreOrderTime
return
}
if code = this.module.ConsumeRes(session, res, true); code != pb.ErrorCode_Success { // 消耗校验
return
}
// 校验通过 写数据
mapData := make(map[string]interface{}, 0)
sz := make([]*pb.OrderClang, 0)
for _, v := range _smithy.Orders {
if v.Count != 0 {
sz = append(sz, v)
}
}
_smithy.Orders = sz
mapData["orders"] = _smithy.Orders
mapData["orderCostTime"] = _smithy.OrderCostTime
mapData["clang"] = _smithy.Clang // 正在做的
mapData["ctime"] = _smithy.Ctime
code = this.module.ModifySmithyData(session.GetUserId(), mapData)
iTotal := 0
for _, v := range req.Order {
iTotal += int(v.Count)
}
this.module.ModuleRtask.SendToRtask(session, comm.Rtype148, int32(iTotal))
session.SendMsg(string(this.module.GetType()), SmithyCreateOrderResp, &pb.SmithyCreateOrderResp{Data: _smithy})
return
}

View File

@ -1,85 +0,0 @@
package smithy
import (
"crypto/rand"
"go_dreamfactory/comm"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"math/big"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) DeskSkillLvCheck(session comm.IUserSession, req *pb.SmithyDeskSkillLvReq) (code pb.ErrorCode) {
if req.DeskType == 0 {
code = pb.ErrorCode_ReqParameterError
}
return
}
func (this *apiComp) DeskSkillLv(session comm.IUserSession, req *pb.SmithyDeskSkillLvReq) (code pb.ErrorCode, dat proto.Message) {
var (
bFindSkill bool
curSkillCfg *cfg.GameSmithyData
)
code = this.DeskSkillLvCheck(session, req)
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
_smithy, err := this.module.modelSmithy.getSmithyList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
for k, v := range _smithy.Skill {
if k == req.DeskType {
bFindSkill = true
// 查询配置文件
curSkillCfg = this.module.configure.GetSmithyConfigData(k, v)
if curSkillCfg != nil && curSkillCfg.Starupneed != nil {
//获取下一级
NextSkillCfg := this.module.configure.GetSmithyConfigData(k, v+1)
if NextSkillCfg == nil {
code = pb.ErrorCode_GourmetSkillMaxLv
return
}
// 升级
code = this.module.ConsumeRes(session, curSkillCfg.Starupneed, true) // 消耗检测
if code != pb.ErrorCode_Success {
return
}
// 概率升级
n, _ := rand.Int(rand.Reader, big.NewInt(100))
if n.Int64() < int64(curSkillCfg.Probability) { // 可以升级
// 技能升级成功
_smithy.Skill[req.DeskType] += 1
_smithy.DeskFloor[req.DeskType] = 0
this.module.modelSmithy.CalculationDeskSkillLv(session.GetUserId(), _smithy)
} else {
_smithy.DeskFloor[req.DeskType] += 1
if _smithy.DeskFloor[req.DeskType] >= curSkillCfg.Floors { // 触发保底
_smithy.Skill[req.DeskType] += 1
_smithy.DeskFloor[req.DeskType] = 0
this.module.modelSmithy.CalculationDeskSkillLv(session.GetUserId(), _smithy)
}
}
} else {
code = pb.ErrorCode_GourmetSkillMaxLv
return
}
break
}
}
if !bFindSkill {
code = pb.ErrorCode_ReqParameterError
return
}
session.SendMsg(string(this.module.GetType()), SmithyDeskSkillLvResp, &pb.SmithyDeskSkillLvResp{Data: _smithy})
return
}

View File

@ -1,49 +0,0 @@
package smithy
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) GetRewardCheck(session comm.IUserSession, req *pb.SmithyGetRewardReq) (code pb.ErrorCode) {
return
}
///美食城领取奖励
func (this *apiComp) GetReward(session comm.IUserSession, req *pb.SmithyGetRewardReq) (code pb.ErrorCode, data proto.Message) {
code = this.GetRewardCheck(session, req)
_gourmet, err := this.module.modelSmithy.getSmithyList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
if len(_gourmet.Items) > 0 {
res := make([]*cfg.Gameatn, 0)
for _, v := range _gourmet.Items {
res = append(res, &cfg.Gameatn{
A: v.A,
T: v.T,
N: v.N,
})
}
code = this.module.DispenseRes(session, res, true)
if code != pb.ErrorCode_Success {
return
}
// 随机任务
this.module.SendRdTask(session, _gourmet.Items)
_gourmet.Items = nil
mapData := make(map[string]interface{}, 0)
mapData["items"] = nil
code = this.module.ModifySmithyData(session.GetUserId(), mapData)
}
session.SendMsg(string(this.module.GetType()), SmithyGetRewardResp, &pb.SmithyGetRewardResp{Data: _gourmet})
return
}

View File

@ -1,34 +0,0 @@
package smithy
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) GetListCheck(session comm.IUserSession, req *pb.SmithyGetListReq) (code pb.ErrorCode) {
return
}
///获取美食城基本信息
func (this *apiComp) GetList(session comm.IUserSession, req *pb.SmithyGetListReq) (code pb.ErrorCode, data proto.Message) {
code = this.GetListCheck(session, req)
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
_smithy, err := this.module.modelSmithy.getSmithyList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
// 计算订单信息
this.module.modelSmithy.CalculationSmithy(session.GetUserId(), _smithy)
session.SendMsg(string(this.module.GetType()), SmithyGetListResp, &pb.SmithyGetListResp{Data: _smithy})
this.module.ModuleRtask.SendToRtask(session, comm.Rtype137, _smithy.TotalTime)
return
}

View File

@ -1,96 +0,0 @@
package smithy
import (
"context"
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/pb"
"go_dreamfactory/sys/db"
"go_dreamfactory/utils"
"time"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo/options"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) GetRandUserCheck(session comm.IUserSession, req *pb.SmithyGetRandUserReq) (code pb.ErrorCode) {
if req.People <= 0 {
code = pb.ErrorCode_ReqParameterError
return
}
return
}
/// 获取一些玩家数据
func (this *apiComp) GetRandUser(session comm.IUserSession, req *pb.SmithyGetRandUserReq) (code pb.ErrorCode, data proto.Message) {
var (
szDbUser []*pb.DBUser
mapUser map[string]struct{}
)
mapUser = make(map[string]struct{}, 0)
code = this.GetRandUserCheck(session, req)
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
// 获取在线玩家信息
onlineList, err := this.module.ModuleUser.UserOnlineList()
if err != nil {
code = pb.ErrorCode_DBError
return
}
var szUid []string
for _, v := range onlineList {
if v.Uid == session.GetUserId() || v.Uid == "" { // 过滤自己信息
continue
}
szUid = append(szUid, v.Uid)
}
// 随机在线玩家信息
if len(szUid) > int(req.People) {
randArr := utils.RandomNumbers(0, len(szUid), int(req.People))
for _, v := range randArr {
if szUid[v] != "" {
mapUser[szUid[v]] = struct{}{}
}
}
} else { // 数量不足 则有多少给多少
for _, v := range szUid {
mapUser[v] = struct{}{}
}
left := int(req.People) - len(mapUser)
if left > 0 { // 一个人也没有 那就从db 中随机取
tag, _, b := utils.UIdSplit(session.GetUserId())
if b {
if conn, err := db.ServerDBConn(tag); err == nil {
dbModel := db.NewDBModel(comm.TableHero, time.Hour, conn)
if _data, err1 := dbModel.DB.Find(core.SqlTable(comm.TableUser), bson.M{}, options.Find().SetSort(bson.M{"lv": -1}).SetLimit(int64(req.People))); err1 == nil {
for _data.Next(context.TODO()) {
temp := &pb.DBUser{}
if err = _data.Decode(temp); err == nil {
if len(mapUser)+len(szDbUser) >= int(req.People) {
break
}
if _, ok := mapUser[temp.Uid]; !ok {
szDbUser = append(szDbUser, temp)
}
}
}
}
}
}
}
}
for k := range mapUser {
if user := this.module.ModuleUser.GetUser(k); user != nil {
szDbUser = append(szDbUser, user) // 转成user对象
} else {
this.module.Errorf("%v", err)
}
}
session.SendMsg(string(this.module.GetType()), SmithyGetRandUserResp, &pb.SmithyGetRandUserResp{User: szDbUser})
return
}

View File

@ -1,63 +0,0 @@
package smithy
import (
"crypto/rand"
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"math/big"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) StoveSkillLvCheck(session comm.IUserSession, req *pb.SmithyStoveSkillLvReq) (code pb.ErrorCode) {
return
}
func (this *apiComp) StoveSkillLv(session comm.IUserSession, req *pb.SmithyStoveSkillLvReq) (code pb.ErrorCode, dat proto.Message) {
var bLevelUp bool
code = this.StoveSkillLvCheck(session, req)
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
_smithy, err := this.module.modelSmithy.getSmithyList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
curLvData := this.module.configure.GetSmithyStoveConfigData(_smithy.StoveLv)
if curLvData == nil {
code = pb.ErrorCode_GourmetSkillMaxLv
return
}
nextLvData := this.module.configure.GetSmithyStoveConfigData(_smithy.StoveLv + 1)
if nextLvData == nil {
code = pb.ErrorCode_GourmetSkillMaxLv
return
}
// 升级
code = this.module.ConsumeRes(session, curLvData.Starupneed, true) // 消耗检测
if code != pb.ErrorCode_Success {
return
}
// 概率升级
n, _ := rand.Int(rand.Reader, big.NewInt(100))
if n.Int64() < int64(curLvData.Probability) { // 可以升级
bLevelUp = true
} else { // 升级失败了 记录
_smithy.StoveFloor += 1
if curLvData.Floors >= _smithy.StoveFloor { // 触发保底
bLevelUp = true
}
}
if bLevelUp {
_smithy.StoveFloor = 0 // 清理保底数据
_smithy.StoveLv += 1
this.module.modelSmithy.CalculationStoveSkillLv(session.GetUserId(), _smithy, _smithy.StoveLv)
}
session.SendMsg(string(this.module.GetType()), SmithyStoveSkillLvResp, &pb.SmithyStoveSkillLvResp{Data: _smithy})
return
}

View File

@ -10,8 +10,8 @@ import (
)
const (
game_smithy = "game_smithy.json"
game_smithystoveold = "game_smithystove.json"
//game_smithy = "game_smithy.json"
//game_smithystoveold = "game_smithystove.json"
game_smithyreel = "game_newsmithy.json" // 新版铁匠铺卷轴
game_smproficiency = "game_smithyproficiency.json" // 铁匠铺熟练度
@ -28,9 +28,9 @@ const (
// /配置管理基础组件
type configureComp struct {
modules.MCompConfigure
module *Smithy
hlock sync.RWMutex
_smithyMap map[int64]*cfg.GameSmithyData
module *Smithy
hlock sync.RWMutex
//_smithyMap map[int64]*cfg.GameSmithyData
_mapProficile map[int64]*cfg.GameSmithyProficiencyData // 熟练度 key 卷轴ID+ 等级
_mapskill map[int64]*cfg.GameSmithyToolData // 熟练度 key 技能类型+ 技能等级等级
@ -42,21 +42,6 @@ type configureComp struct {
func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompConfigure.Init(service, module, comp, options)
this.module = module.(*Smithy)
this._smithyMap = make(map[int64]*cfg.GameSmithyData, 0)
configure.RegisterConfigure(game_smithy, cfg.NewGameSmithy, func() {
if v, err := this.GetConfigure(game_smithy); err == nil {
if configure, ok := v.(*cfg.GameSmithy); ok {
this.hlock.Lock()
defer this.hlock.Unlock()
for _, value := range configure.GetDataList() {
this._smithyMap[int64(value.Type<<16)+int64(value.Star)] = value
}
return
}
}
log.Errorf("get game_pagoda conf err:%v", err)
return
})
this._mapProficile = make(map[int64]*cfg.GameSmithyProficiencyData, 0)
configure.RegisterConfigure(game_smproficiency, cfg.NewGameSmithyProficiency, this.LoadProficileData)
@ -67,44 +52,11 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
err = this.LoadConfigure(game_smithyreel, cfg.NewGameNewSmithy)
err = this.LoadConfigure(game_smithystove, cfg.NewGameSmithyStoveV1)
err = this.LoadConfigure(game_smithytools, cfg.NewGameSmithyTool)
err = this.LoadConfigure(game_smithystoveold, cfg.NewGameSmithyStove)
err = this.LoadConfigure(game_smithycustomer, cfg.NewGameSmithyCustomer)
err = this.LoadConfigure(game_smithyatlas, cfg.NewGameSmithyAtlas)
err = this.LoadConfigure(game_smithyatlaslv, cfg.NewGameSmithyAtlasLv)
err = this.LoadConfigure(game_smithytask, cfg.NewGameSmithyTask)
// this._dropMap = make(map[int32][]*cfg.GameSmithyDropData, 0)
// configure.RegisterConfigure(game_smithyDrop, cfg.NewGameSmithyDrop, this.LoadSmithyDropData)
return
}
func (this *configureComp) GetSmithyConfigData(smithyType int32, level int32) (data *cfg.GameSmithyData) {
return this._smithyMap[int64(smithyType<<16)+int64(level)]
}
func (this *configureComp) GetSmithyTypeConfigData() (mapType map[int32]struct{}) {
mapType = make(map[int32]struct{}, 0)
if v, err := this.GetConfigure(game_smithy); err == nil {
if configure, ok := v.(*cfg.GameSmithy); ok {
for _, v1 := range configure.GetDataList() {
if _, ok := mapType[v1.Type]; !ok {
mapType[v1.Type] = struct{}{}
}
}
return
}
}
return
}
// 获取炉子配置数据
func (this *configureComp) GetSmithyStoveConfigData(level int32) (data *cfg.GameSmithyStoveData) {
if v, err := this.GetConfigure(game_smithystoveold); err == nil {
if configure, ok := v.(*cfg.GameSmithyStove); ok {
data = configure.Get(int32(level))
return
}
}
return
}

View File

@ -1,188 +0,0 @@
package smithy
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/redis"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
"go_dreamfactory/utils"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/x/bsonx"
)
type modelSmithy struct {
modules.MCompModel
module *Smithy
}
func (this *modelSmithy) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
this.TableName = string(comm.TableSmithy)
err = this.MCompModel.Init(service, module, comp, options)
this.module = module.(*Smithy)
// uid 创建索引
this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{
Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}},
})
return
}
// 获取铁匠铺信息
func (this *modelSmithy) getSmithyList(uid string) (result *pb.DBSmithy, err error) {
result = &pb.DBSmithy{}
if err = this.Get(uid, result); err != nil {
if redis.RedisNil != err { // 没有数据直接创建新的数据
result.Id = primitive.NewObjectID().Hex()
result.Uid = uid
result.Skill = make(map[int32]int32, 0)
result.StoveLv = 1 // storv 等级默认1级
result.DeskFloor = make(map[int32]int32, 0)
mapType := this.module.configure.GetSmithyTypeConfigData() // 找类型
for key := range mapType {
result.Skill[key] = 1
result.DeskFloor[key] = 0
}
if err = this.Add(uid, result); err != nil {
this.module.Errorf("err:%v", err)
err = nil
return
}
}
return
}
err = nil
return result, err
}
func (this *modelSmithy) modifySmithyDataByUid(uid string, data map[string]interface{}) error {
return this.Change(uid, data)
}
func (this *modelSmithy) CalculationSmithy(uid string, smithy *pb.DBSmithy) {
var (
szTime map[int32]int32
zeroTime int64 // 当前时间对应的0点时间戳,用来判断是否跨天了
)
mapData := make(map[string]interface{}, 0)
szTime = make(map[int32]int32, 0)
// 记录每个食材耗时
for k, v := range smithy.Skill {
// 计算出需要的时间
_skillCfg := this.module.configure.GetSmithyStoveConfigData(v)
szTime[k] += _skillCfg.Time
}
// 有订单在做
zeroTime = utils.GetTodayZeroTime(configure.Now().Unix())
if (smithy.Clang != nil && smithy.Clang.ETime >= configure.Now().Unix()) || smithy.Clang == nil {
for _, order := range smithy.Orders {
_gourmetcfg := this.module.configure.GetSmithyConfigData(order.DeskType, smithy.Skill[order.DeskType]) // 美食家配置表
if order.Count > 0 {
if smithy.Clang != nil && smithy.Clang.ETime > configure.Now().Unix() {
break
}
order.Count--
if order.Count == 0 {
order.NeedTime = 0
}
order.NeedTime = order.Count * szTime[order.DeskType]
if smithy.Clang == nil {
smithy.Clang = &pb.Clang{}
smithy.Clang.STime = configure.Now().Unix()
smithy.Clang.ETime = configure.Now().Unix() + int64(szTime[order.DeskType])
if smithy.Clang.STime < zeroTime && zeroTime <= smithy.Clang.ETime { // 跨天清空订单耗时
smithy.OrderCostTime = 0
for _, order := range smithy.Orders { // 重新计算订单时常
smithy.OrderCostTime += order.Count * szTime[order.DeskType]
}
}
} else {
smithy.Clang.STime += int64(szTime[order.DeskType])
oldTime := smithy.Clang.ETime
smithy.Clang.ETime += int64(szTime[order.DeskType])
// 如果此时跨天了 清除订单时常
if oldTime < zeroTime && zeroTime <= smithy.Clang.ETime { // 跨天清空订单耗时
smithy.OrderCostTime = 0
for _, order := range smithy.Orders { // 重新计算订单时常
smithy.OrderCostTime += order.Count * szTime[order.DeskType]
}
}
}
smithy.Clang.DeskType = order.DeskType
// 设置掉落组
smithy.Items = this.module.configure.GetMultipleDropReward(_gourmetcfg.Using, _gourmetcfg.Drop, smithy.Items) // 获取掉落奖励
// 记录下订单时间
smithy.Ctime = smithy.Clang.ETime
smithy.TotalTime += szTime[order.DeskType]
}
}
if smithy.Clang != nil && smithy.Clang.ETime <= configure.Now().Unix() {
_gourmetcfg := this.module.configure.GetSmithyConfigData(smithy.Clang.DeskType, smithy.Skill[smithy.Clang.DeskType])
smithy.Items = this.module.configure.GetMultipleDropReward(_gourmetcfg.Using, _gourmetcfg.Drop, smithy.Items)
smithy.Clang = nil
}
}
// 清除数量为0 的订单
pos := 0
for _, order := range smithy.Orders {
if order.Count == 0 {
pos++
}
}
smithy.Orders = append(smithy.Orders[:0], smithy.Orders[pos:]...)
// 保存信息
mapData["items"] = smithy.Items
mapData["orders"] = smithy.Orders
mapData["orderCostTime"] = smithy.OrderCostTime
mapData["clang"] = smithy.Clang // 正在做的
mapData["ctime"] = smithy.Ctime
mapData["totalTime"] = smithy.TotalTime
this.module.ModifySmithyData(uid, mapData) // 同步数据
}
func (this *modelSmithy) CalculationDeskSkillLv(uid string, Smithy *pb.DBSmithy) {
mapData := make(map[string]interface{}, 0)
mapData["skill"] = Smithy.Skill
mapData["deskFloor"] = Smithy.DeskFloor
this.module.ModifySmithyData(uid, mapData)
}
func (this *modelSmithy) CalculationStoveSkillLv(uid string, Smithy *pb.DBSmithy, stoveSkillLv int32) {
mapData := make(map[string]interface{}, 0)
var totalTime int32
for _, v := range Smithy.Orders {
if v.Count > 0 {
preScaleTime := 0
preSkillConf := this.module.configure.GetSmithyStoveConfigData(stoveSkillLv - 1)
if preSkillConf != nil {
preScaleTime += int(preSkillConf.Time)
}
_skillCfg := this.module.configure.GetSmithyStoveConfigData(stoveSkillLv)
if _skillCfg != nil {
scaleTime := (_skillCfg.Time - int32(preScaleTime)) * v.Count
v.NeedTime += scaleTime
totalTime += scaleTime
if v.NeedTime < 0 { // 担心配置错误 为负数情况 所以这里做下判断
v.NeedTime = 0
}
}
}
}
mapData["orders"] = Smithy.Orders
mapData["stoveLv"] = Smithy.StoveLv
mapData["deskFloor"] = Smithy.DeskFloor
Smithy.OrderCostTime += totalTime
mapData["orderCostTime"] = Smithy.OrderCostTime
this.module.ModifySmithyData(uid, mapData)
}

View File

@ -15,13 +15,12 @@ import (
type Smithy struct {
modules.ModuleBase
modelSmithy *modelSmithy
modelTrade *modelTrade
api *apiComp
configure *configureComp
modelStove *modelStove
modelAtlas *modelAtlas
modelTask *modelTask
modelTrade *modelTrade
api *apiComp
configure *configureComp
modelStove *modelStove
modelAtlas *modelAtlas
modelTask *modelTask
}
func NewModule() core.IModule {
@ -41,7 +40,6 @@ func (this *Smithy) Init(service core.IService, module core.IModule, options cor
func (this *Smithy) OnInstallComp() {
this.ModuleBase.OnInstallComp()
this.api = this.RegisterComp(new(apiComp)).(*apiComp)
this.modelSmithy = this.RegisterComp(new(modelSmithy)).(*modelSmithy)
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
this.modelTrade = this.RegisterComp(new(modelTrade)).(*modelTrade)
this.modelStove = this.RegisterComp(new(modelStove)).(*modelStove)
@ -49,15 +47,6 @@ func (this *Smithy) OnInstallComp() {
this.modelTask = this.RegisterComp(new(modelTask)).(*modelTask)
}
// 接口信息
func (this *Smithy) ModifySmithyData(uid string, data map[string]interface{}) (code pb.ErrorCode) {
err := this.modelSmithy.modifySmithyDataByUid(uid, data)
if err != nil {
code = pb.ErrorCode_DBError
}
return
}
func (this *Smithy) SendRdTask(session comm.IUserSession, Items []*pb.UserAssets) {
var equip map[int32]int32 // key xingji value 数量
equip = make(map[int32]int32, 0)

View File

@ -733,415 +733,109 @@ func (x *TujianTask) GetReceived() int32 {
return 0
}
////////
type Clang struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DeskType int32 `protobuf:"varint,1,opt,name=deskType,proto3" json:"deskType"` // 台子类型
ETime int64 `protobuf:"varint,2,opt,name=eTime,proto3" json:"eTime"`
STime int64 `protobuf:"varint,3,opt,name=sTime,proto3" json:"sTime"` // 订单开始时间
}
func (x *Clang) Reset() {
*x = Clang{}
if protoimpl.UnsafeEnabled {
mi := &file_smithy_smithy_db_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Clang) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Clang) ProtoMessage() {}
func (x *Clang) ProtoReflect() protoreflect.Message {
mi := &file_smithy_smithy_db_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 Clang.ProtoReflect.Descriptor instead.
func (*Clang) Descriptor() ([]byte, []int) {
return file_smithy_smithy_db_proto_rawDescGZIP(), []int{10}
}
func (x *Clang) GetDeskType() int32 {
if x != nil {
return x.DeskType
}
return 0
}
func (x *Clang) GetETime() int64 {
if x != nil {
return x.ETime
}
return 0
}
func (x *Clang) GetSTime() int64 {
if x != nil {
return x.STime
}
return 0
}
type OrderClang struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DeskType int32 `protobuf:"varint,1,opt,name=deskType,proto3" json:"deskType"` // 台子类型
Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count"` // 料理数量
NeedTime int32 `protobuf:"varint,3,opt,name=needTime,proto3" json:"needTime"` // 需要的时间
}
func (x *OrderClang) Reset() {
*x = OrderClang{}
if protoimpl.UnsafeEnabled {
mi := &file_smithy_smithy_db_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *OrderClang) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*OrderClang) ProtoMessage() {}
func (x *OrderClang) ProtoReflect() protoreflect.Message {
mi := &file_smithy_smithy_db_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 OrderClang.ProtoReflect.Descriptor instead.
func (*OrderClang) Descriptor() ([]byte, []int) {
return file_smithy_smithy_db_proto_rawDescGZIP(), []int{11}
}
func (x *OrderClang) GetDeskType() int32 {
if x != nil {
return x.DeskType
}
return 0
}
func (x *OrderClang) GetCount() int32 {
if x != nil {
return x.Count
}
return 0
}
func (x *OrderClang) GetNeedTime() int32 {
if x != nil {
return x.NeedTime
}
return 0
}
type DBSmithy struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID
Clang *Clang `protobuf:"bytes,3,opt,name=clang,proto3" json:"clang"` // 正在制作中的数据
Orders []*OrderClang `protobuf:"bytes,4,rep,name=orders,proto3" json:"orders" bson:"orders"` //订单数据
Items []*UserAssets `protobuf:"bytes,5,rep,name=items,proto3" json:"items" bson:"items"` //已经做好装备
Skill map[int32]int32 `protobuf:"bytes,6,rep,name=skill,proto3" json:"skill" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"skill"` //锻造台等级
StoveLv int32 `protobuf:"varint,7,opt,name=stoveLv,proto3" json:"stoveLv" bson:"stoveLv"` //炉子等级
OrderCostTime int32 `protobuf:"varint,8,opt,name=orderCostTime,proto3" json:"orderCostTime" bson:"orderCostTime"` //订单消耗的时常
Ctime int64 `protobuf:"varint,9,opt,name=ctime,proto3" json:"ctime"` // 订单创建时间
DeskFloor map[int32]int32 `protobuf:"bytes,10,rep,name=deskFloor,proto3" json:"deskFloor" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //@go_tags(`bson:"deskFloor"`)台子保底
StoveFloor int32 `protobuf:"varint,11,opt,name=stoveFloor,proto3" json:"stoveFloor" bson:"stoveFloor"` //炉子保底
TotalTime int32 `protobuf:"varint,12,opt,name=totalTime,proto3" json:"totalTime" bson:"totalTime"`
}
func (x *DBSmithy) Reset() {
*x = DBSmithy{}
if protoimpl.UnsafeEnabled {
mi := &file_smithy_smithy_db_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DBSmithy) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DBSmithy) ProtoMessage() {}
func (x *DBSmithy) ProtoReflect() protoreflect.Message {
mi := &file_smithy_smithy_db_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 DBSmithy.ProtoReflect.Descriptor instead.
func (*DBSmithy) Descriptor() ([]byte, []int) {
return file_smithy_smithy_db_proto_rawDescGZIP(), []int{12}
}
func (x *DBSmithy) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DBSmithy) GetUid() string {
if x != nil {
return x.Uid
}
return ""
}
func (x *DBSmithy) GetClang() *Clang {
if x != nil {
return x.Clang
}
return nil
}
func (x *DBSmithy) GetOrders() []*OrderClang {
if x != nil {
return x.Orders
}
return nil
}
func (x *DBSmithy) GetItems() []*UserAssets {
if x != nil {
return x.Items
}
return nil
}
func (x *DBSmithy) GetSkill() map[int32]int32 {
if x != nil {
return x.Skill
}
return nil
}
func (x *DBSmithy) GetStoveLv() int32 {
if x != nil {
return x.StoveLv
}
return 0
}
func (x *DBSmithy) GetOrderCostTime() int32 {
if x != nil {
return x.OrderCostTime
}
return 0
}
func (x *DBSmithy) GetCtime() int64 {
if x != nil {
return x.Ctime
}
return 0
}
func (x *DBSmithy) GetDeskFloor() map[int32]int32 {
if x != nil {
return x.DeskFloor
}
return nil
}
func (x *DBSmithy) GetStoveFloor() int32 {
if x != nil {
return x.StoveFloor
}
return 0
}
func (x *DBSmithy) GetTotalTime() int32 {
if x != nil {
return x.TotalTime
}
return 0
}
var File_smithy_smithy_db_proto protoreflect.FileDescriptor
var file_smithy_smithy_db_proto_rawDesc = []byte{
0x0a, 0x16, 0x73, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x2f, 0x73, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x5f,
0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 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, 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, 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, 0x28, 0x09, 0x52, 0x03,
0x75, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
0x02, 0x6c, 0x76, 0x12, 0x26, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x12, 0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x05, 0x73,
0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x44, 0x42, 0x53,
0x74, 0x6f, 0x76, 0x65, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x29, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x67, 0x65, 0x18,
0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x2e,
0x46, 0x6f, 0x72, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x67,
0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 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, 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, 0x6e, 0x74, 0x72, 0x79,
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b,
0x65, 0x79, 0x12, 0x1e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45,
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,
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,
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,
0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x03, 0x20,
0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x26, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18,
0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x2e,
0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12,
0x29, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13,
0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e,
0x74, 0x72, 0x79, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x29, 0x0a, 0x05, 0x66, 0x6f,
0x72, 0x67, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x44, 0x42, 0x53, 0x74,
0x6f, 0x76, 0x65, 0x2e, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05,
0x66, 0x6f, 0x72, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61,
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, 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,
0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
0x1a, 0x38, 0x0a, 0x0a, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79,
0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x66, 0x0a, 0x0c, 0x43, 0x75,
0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75,
0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75,
0x69, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x69, 0x74,
0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74,
0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x43, 0x6f, 0x75,
0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65,
0x72, 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, 0x28, 0x09, 0x52, 0x03,
0x75, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x73,
0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65,
0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x73,
0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65,
0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52,
0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65,
0x22, 0xc3, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x41, 0x74, 0x6c, 0x61, 0x73, 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, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x29,
0x0a, 0x05, 0x61, 0x74, 0x6c, 0x61, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e,
0x44, 0x42, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x2e, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x52, 0x05, 0x61, 0x74, 0x6c, 0x61, 0x73, 0x12, 0x2f, 0x0a, 0x07, 0x63, 0x6f, 0x6c,
0x6c, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x41,
0x74, 0x6c, 0x61, 0x73, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72,
0x79, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63,
0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65,
0x12, 0x14, 0x0a, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52,
0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x44, 0x0a, 0x0a, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x4c, 0x69, 0x73,
0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x48, 0x0a, 0x0c,
0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x22,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e,
0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x63, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74,
0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12,
0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
0x08, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x6b, 0x0a, 0x09, 0x46,
0x6f, 0x72, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x05, 0x64, 0x61, 0x74, 0x61,
0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x44,
0x61, 0x74, 0x61, 0x52, 0x05, 0x64, 0x61, 0x74, 0x61, 0x31, 0x12, 0x20, 0x0a, 0x05, 0x64, 0x61,
0x74, 0x61, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 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, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x7f, 0x0a, 0x09, 0x46, 0x6f, 0x72, 0x67,
0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x6f, 0x72, 0x67, 0x65, 0x43, 0x6f,
0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x6f, 0x72, 0x67, 0x65,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28,
0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79,
0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12,
0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20,
0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x43, 0x0a, 0x0c, 0x44, 0x42, 0x54,
0x75, 0x6a, 0x69, 0x61, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x05, 0x74,
0x61, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x54, 0x75, 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,
0x22, 0x4f, 0x0a, 0x05, 0x43, 0x6c, 0x61, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x73,
0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x65, 0x73,
0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73,
0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x54, 0x69, 0x6d,
0x65, 0x22, 0x5a, 0x0a, 0x0a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x6e, 0x67, 0x12,
0x1a, 0x0a, 0x08, 0x64, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x08, 0x64, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x65, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x65, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x82, 0x04,
0x0a, 0x08, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 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, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x05,
0x63, 0x6c, 0x61, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x43, 0x6c,
0x61, 0x6e, 0x67, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x06, 0x6f, 0x72,
0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x4f, 0x72, 0x64,
0x65, 0x72, 0x43, 0x6c, 0x61, 0x6e, 0x67, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12,
0x21, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b,
0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65,
0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x2e, 0x53, 0x6b, 0x69,
0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x18,
0x0a, 0x07, 0x73, 0x74, 0x6f, 0x76, 0x65, 0x4c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52,
0x07, 0x73, 0x74, 0x6f, 0x76, 0x65, 0x4c, 0x76, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65,
0x72, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14,
0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63,
0x74, 0x69, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x6b, 0x46, 0x6c, 0x6f, 0x6f,
0x72, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74,
0x68, 0x79, 0x2e, 0x44, 0x65, 0x73, 0x6b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72,
0x79, 0x52, 0x09, 0x64, 0x65, 0x73, 0x6b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a,
0x73, 0x74, 0x6f, 0x76, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0a, 0x73, 0x74, 0x6f, 0x76, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09,
0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52,
0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b,
0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x79, 0x52,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b,
0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x44, 0x65, 0x73, 0x6b, 0x46, 0x6c, 0x6f, 0x6f,
0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x66,
0x0a, 0x0c, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e,
0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16,
0x0a, 0x06, 0x73, 0x75, 0x69, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
0x73, 0x75, 0x69, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x43,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x71, 0x75, 0x69,
0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x43, 0x75, 0x73,
0x74, 0x6f, 0x6d, 0x65, 0x72, 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,
0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f,
0x6d, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x43, 0x75, 0x73,
0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f,
0x6d, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61,
0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20,
0x01, 0x28, 0x03, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68,
0x54, 0x69, 0x6d, 0x65, 0x22, 0xc3, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x41, 0x74, 0x6c, 0x61, 0x73,
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, 0x28, 0x09, 0x52, 0x03, 0x75,
0x69, 0x64, 0x12, 0x29, 0x0a, 0x05, 0x61, 0x74, 0x6c, 0x61, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x13, 0x2e, 0x44, 0x42, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x2e, 0x41, 0x74, 0x6c, 0x61,
0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x61, 0x74, 0x6c, 0x61, 0x73, 0x12, 0x2f, 0x0a,
0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15,
0x2e, 0x44, 0x42, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x14,
0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73,
0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x44, 0x0a, 0x0a, 0x41, 0x74,
0x6c, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x46, 0x6f, 0x72, 0x67,
0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
0x1a, 0x48, 0x0a, 0x0c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
0x65, 0x79, 0x12, 0x22, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x0c, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x63, 0x0a, 0x0b, 0x43, 0x6f,
0x6c, 0x6c, 0x65, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f,
0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12,
0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74,
0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18,
0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22,
0x6b, 0x0a, 0x09, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x05,
0x64, 0x61, 0x74, 0x61, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x46, 0x6f,
0x72, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x64, 0x61, 0x74, 0x61, 0x31, 0x12, 0x20,
0x0a, 0x05, 0x64, 0x61, 0x74, 0x61, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e,
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, 0x03, 0x20, 0x01,
0x28, 0x08, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x7f, 0x0a, 0x09,
0x46, 0x6f, 0x72, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x6f, 0x72,
0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66,
0x6f, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61,
0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c,
0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01,
0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d,
0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x43, 0x0a,
0x0c, 0x44, 0x42, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x10, 0x0a,
0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12,
0x21, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b,
0x2e, 0x54, 0x75, 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 (
@ -1156,7 +850,7 @@ func file_smithy_smithy_db_proto_rawDescGZIP() []byte {
return file_smithy_smithy_db_proto_rawDescData
}
var file_smithy_smithy_db_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
var file_smithy_smithy_db_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
var file_smithy_smithy_db_proto_goTypes = []interface{}{
(*Mastery)(nil), // 0: Mastery
(*DBStove)(nil), // 1: DBStove
@ -1168,41 +862,30 @@ var file_smithy_smithy_db_proto_goTypes = []interface{}{
(*ForgeData)(nil), // 7: ForgeData
(*DBTujianTask)(nil), // 8: DBTujianTask
(*TujianTask)(nil), // 9: TujianTask
(*Clang)(nil), // 10: Clang
(*OrderClang)(nil), // 11: OrderClang
(*DBSmithy)(nil), // 12: DBSmithy
nil, // 13: DBStove.DataEntry
nil, // 14: DBStove.SkillEntry
nil, // 15: DBStove.ForgeEntry
nil, // 16: DBAtlas.AtlasEntry
nil, // 17: DBAtlas.CollectEntry
nil, // 18: DBSmithy.SkillEntry
nil, // 19: DBSmithy.DeskFloorEntry
(*UserAssets)(nil), // 20: UserAssets
nil, // 10: DBStove.DataEntry
nil, // 11: DBStove.SkillEntry
nil, // 12: DBStove.ForgeEntry
nil, // 13: DBAtlas.AtlasEntry
nil, // 14: DBAtlas.CollectEntry
}
var file_smithy_smithy_db_proto_depIdxs = []int32{
13, // 0: DBStove.data:type_name -> DBStove.DataEntry
14, // 1: DBStove.skill:type_name -> DBStove.SkillEntry
15, // 2: DBStove.forge:type_name -> DBStove.ForgeEntry
10, // 0: DBStove.data:type_name -> DBStove.DataEntry
11, // 1: DBStove.skill:type_name -> DBStove.SkillEntry
12, // 2: DBStove.forge:type_name -> DBStove.ForgeEntry
2, // 3: DBCustomer.customers:type_name -> CustomerInfo
16, // 4: DBAtlas.atlas:type_name -> DBAtlas.AtlasEntry
17, // 5: DBAtlas.collect:type_name -> DBAtlas.CollectEntry
13, // 4: DBAtlas.atlas:type_name -> DBAtlas.AtlasEntry
14, // 5: DBAtlas.collect:type_name -> DBAtlas.CollectEntry
7, // 6: ForgeList.data1:type_name -> ForgeData
7, // 7: ForgeList.data2:type_name -> ForgeData
9, // 8: DBTujianTask.tasks:type_name -> TujianTask
10, // 9: DBSmithy.clang:type_name -> Clang
11, // 10: DBSmithy.orders:type_name -> OrderClang
20, // 11: DBSmithy.items:type_name -> UserAssets
18, // 12: DBSmithy.skill:type_name -> DBSmithy.SkillEntry
19, // 13: DBSmithy.deskFloor:type_name -> DBSmithy.DeskFloorEntry
0, // 14: DBStove.DataEntry.value:type_name -> Mastery
6, // 15: DBAtlas.AtlasEntry.value:type_name -> ForgeList
5, // 16: DBAtlas.CollectEntry.value:type_name -> CollectData
17, // [17:17] is the sub-list for method output_type
17, // [17:17] is the sub-list for method input_type
17, // [17:17] is the sub-list for extension type_name
17, // [17:17] is the sub-list for extension extendee
0, // [0:17] is the sub-list for field type_name
0, // 9: DBStove.DataEntry.value:type_name -> Mastery
6, // 10: DBAtlas.AtlasEntry.value:type_name -> ForgeList
5, // 11: DBAtlas.CollectEntry.value:type_name -> CollectData
12, // [12:12] is the sub-list for method output_type
12, // [12:12] is the sub-list for method input_type
12, // [12:12] is the sub-list for extension type_name
12, // [12:12] is the sub-list for extension extendee
0, // [0:12] is the sub-list for field type_name
}
func init() { file_smithy_smithy_db_proto_init() }
@ -1210,7 +893,6 @@ func file_smithy_smithy_db_proto_init() {
if File_smithy_smithy_db_proto != nil {
return
}
file_comm_proto_init()
if !protoimpl.UnsafeEnabled {
file_smithy_smithy_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Mastery); i {
@ -1332,42 +1014,6 @@ func file_smithy_smithy_db_proto_init() {
return nil
}
}
file_smithy_smithy_db_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Clang); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_smithy_smithy_db_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*OrderClang); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_smithy_smithy_db_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DBSmithy); 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{
@ -1375,7 +1021,7 @@ func file_smithy_smithy_db_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_smithy_smithy_db_proto_rawDesc,
NumEnums: 0,
NumMessages: 20,
NumMessages: 15,
NumExtensions: 0,
NumServices: 0,
},

File diff suppressed because it is too large Load Diff

View File

@ -25,9 +25,9 @@ type DBWorldtask struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid" bson:"uid"` //玩家ID
LastTaskIds map[int32]*Worldtask `protobuf:"bytes,2,rep,name=lastTaskIds,proto3" json:"lastTaskIds" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3" bson:"lastTaskId"` //上一次完成的任务 key:groupId val:任务ID
TaskList []*Worldtask `protobuf:"bytes,3,rep,name=taskList,proto3" json:"taskList" bson:"taskList"` // 任务列表
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid" bson:"uid"` //玩家ID
LastTaskIds map[int32]*Worldtask `protobuf:"bytes,2,rep,name=lastTaskIds,proto3" json:"lastTaskIds" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3" bson:"lastTaskIds"` //上一次完成的任务 key:groupId val:任务ID
TaskList []*Worldtask `protobuf:"bytes,3,rep,name=taskList,proto3" json:"taskList" bson:"taskList"` // 任务列表
}
func (x *DBWorldtask) Reset() {

View File

@ -1,34 +0,0 @@
//------------------------------------------------------------------------------
// <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 GameSmithy struct {
_dataList []*GameSmithyData
}
func NewGameSmithy(_buf []map[string]interface{}) (*GameSmithy, error) {
_dataList := make([]*GameSmithyData, 0, len(_buf))
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameSmithyData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
}
}
return &GameSmithy{_dataList:_dataList}, nil
}
func (table *GameSmithy) GetDataList() []*GameSmithyData {
return table._dataList
}
func (table *GameSmithy) Get(index int) *GameSmithyData {
return table._dataList[index]
}

View File

@ -1,106 +0,0 @@
//------------------------------------------------------------------------------
// <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 GameSmithyData struct {
Id int32
Type int32
Star int32
Starshow string
Before int32
Starupneed []*Gameatn
Probability int32
Floors int32
Dropshow []*Gameatn
Using int32
Drop int32
Orderneed []*Gameatn
Desk string
Shelves string
Name string
Ico string
Color int32
}
const TypeId_GameSmithyData = 2042540316
func (*GameSmithyData) GetTypeId() int32 {
return 2042540316
}
func (_v *GameSmithyData)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 _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["star"].(float64); !_ok_ { err = errors.New("star error"); return }; _v.Star = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["starshow"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Starshow error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Starshow, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["before"].(float64); !_ok_ { err = errors.New("before error"); return }; _v.Before = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["starupneed"].([]interface{}); !_ok_ { err = errors.New("starupneed error"); return }
_v.Starupneed = 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.Starupneed = append(_v.Starupneed, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["probability"].(float64); !_ok_ { err = errors.New("probability error"); return }; _v.Probability = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["floors"].(float64); !_ok_ { err = errors.New("floors error"); return }; _v.Floors = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["dropshow"].([]interface{}); !_ok_ { err = errors.New("dropshow error"); return }
_v.Dropshow = 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.Dropshow = append(_v.Dropshow, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["using"].(float64); !_ok_ { err = errors.New("using error"); return }; _v.Using = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["drop"].(float64); !_ok_ { err = errors.New("drop error"); return }; _v.Drop = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["orderneed"].([]interface{}); !_ok_ { err = errors.New("orderneed error"); return }
_v.Orderneed = 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.Orderneed = append(_v.Orderneed, _list_v_)
}
}
{ var _ok_ bool; if _v.Desk, _ok_ = _buf["desk"].(string); !_ok_ { err = errors.New("desk error"); return } }
{ var _ok_ bool; if _v.Shelves, _ok_ = _buf["shelves"].(string); !_ok_ { err = errors.New("shelves error"); return } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Name error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Name, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; if _v.Ico, _ok_ = _buf["ico"].(string); !_ok_ { err = errors.New("ico error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["color"].(float64); !_ok_ { err = errors.New("color error"); return }; _v.Color = int32(_tempNum_) }
return
}
func DeserializeGameSmithyData(_buf map[string]interface{}) (*GameSmithyData, error) {
v := &GameSmithyData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -1,42 +0,0 @@
//------------------------------------------------------------------------------
// <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 GameSmithyStove struct {
_dataMap map[int32]*GameSmithyStoveData
_dataList []*GameSmithyStoveData
}
func NewGameSmithyStove(_buf []map[string]interface{}) (*GameSmithyStove, error) {
_dataList := make([]*GameSmithyStoveData, 0, len(_buf))
dataMap := make(map[int32]*GameSmithyStoveData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameSmithyStoveData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameSmithyStove{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameSmithyStove) GetDataMap() map[int32]*GameSmithyStoveData {
return table._dataMap
}
func (table *GameSmithyStove) GetDataList() []*GameSmithyStoveData {
return table._dataList
}
func (table *GameSmithyStove) Get(key int32) *GameSmithyStoveData {
return table._dataMap[key]
}

View File

@ -1,66 +0,0 @@
//------------------------------------------------------------------------------
// <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 GameSmithyStoveData struct {
Id int32
Star int32
Starshow string
Before int32
Starupneed []*Gameatn
Probability int32
Floors int32
Time int32
Desk string
Color int32
}
const TypeId_GameSmithyStoveData = -1387348875
func (*GameSmithyStoveData) GetTypeId() int32 {
return -1387348875
}
func (_v *GameSmithyStoveData)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 _tempNum_ float64; if _tempNum_, _ok_ = _buf["star"].(float64); !_ok_ { err = errors.New("star error"); return }; _v.Star = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["starshow"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Starshow error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Starshow, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["before"].(float64); !_ok_ { err = errors.New("before error"); return }; _v.Before = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["starupneed"].([]interface{}); !_ok_ { err = errors.New("starupneed error"); return }
_v.Starupneed = 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.Starupneed = append(_v.Starupneed, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["probability"].(float64); !_ok_ { err = errors.New("probability error"); return }; _v.Probability = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["floors"].(float64); !_ok_ { err = errors.New("floors error"); return }; _v.Floors = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["time"].(float64); !_ok_ { err = errors.New("time error"); return }; _v.Time = int32(_tempNum_) }
{ var _ok_ bool; if _v.Desk, _ok_ = _buf["desk"].(string); !_ok_ { err = errors.New("desk error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["color"].(float64); !_ok_ { err = errors.New("color error"); return }; _v.Color = int32(_tempNum_) }
return
}
func DeserializeGameSmithyStoveData(_buf map[string]interface{}) (*GameSmithyStoveData, error) {
v := &GameSmithyStoveData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -1,42 +0,0 @@
//------------------------------------------------------------------------------
// <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 GameSmithyText struct {
_dataMap map[int32]*GameSmithyTextData
_dataList []*GameSmithyTextData
}
func NewGameSmithyText(_buf []map[string]interface{}) (*GameSmithyText, error) {
_dataList := make([]*GameSmithyTextData, 0, len(_buf))
dataMap := make(map[int32]*GameSmithyTextData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameSmithyTextData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameSmithyText{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameSmithyText) GetDataMap() map[int32]*GameSmithyTextData {
return table._dataMap
}
func (table *GameSmithyText) GetDataList() []*GameSmithyTextData {
return table._dataList
}
func (table *GameSmithyText) Get(key int32) *GameSmithyTextData {
return table._dataMap[key]
}

View File

@ -1,39 +0,0 @@
//------------------------------------------------------------------------------
// <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 GameSmithyTextData struct {
Id int32
Type int32
Txt string
}
const TypeId_GameSmithyTextData = -2076966167
func (*GameSmithyTextData) GetTypeId() int32 {
return -2076966167
}
func (_v *GameSmithyTextData)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 _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["txt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Txt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Txt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
return
}
func DeserializeGameSmithyTextData(_buf map[string]interface{}) (*GameSmithyTextData, error) {
v := &GameSmithyTextData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -69,9 +69,6 @@ type Tables struct {
KungfuMasterworker *GameKungfuMasterworker
Gourmet *GameGourmet
Drop *GameDrop
Smithy *GameSmithy
SmithyStove *GameSmithyStove
SmithyText *GameSmithyText
VikingBoss *GameVikingBoss
VikingChallenge *GameVikingChallenge
VikingLineup *GameVikingLineup
@ -539,24 +536,6 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.Drop, err = NewGameDrop(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_smithy") ; err != nil {
return nil, err
}
if tables.Smithy, err = NewGameSmithy(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_smithystove") ; err != nil {
return nil, err
}
if tables.SmithyStove, err = NewGameSmithyStove(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_smithytext") ; err != nil {
return nil, err
}
if tables.SmithyText, err = NewGameSmithyText(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_vikingboss") ; err != nil {
return nil, err
}