diff --git a/bin/json/game_shop.json b/bin/json/game_shop.json index 601514313..b6b4e8119 100644 --- a/bin/json/game_shop.json +++ b/bin/json/game_shop.json @@ -92,7 +92,7 @@ "needshow": [ { "a": "attr", - "t": "friend", + "t": "friendPoint", "n": 1 }, { diff --git a/bin/json/game_shopitem.json b/bin/json/game_shopitem.json index 73904e717..e614f26d0 100644 --- a/bin/json/game_shopitem.json +++ b/bin/json/game_shopitem.json @@ -6305,7 +6305,7 @@ "iteminfo": [ { "a": "attr", - "t": "friend", + "t": "friendPoint", "n": 10000 } ], @@ -6422,7 +6422,7 @@ "need": [ { "a": "attr", - "t": "friend", + "t": "friendPoint", "n": 100 } ], @@ -6458,7 +6458,7 @@ "need": [ { "a": "attr", - "t": "friend", + "t": "friendPoint", "n": 100 } ], @@ -6494,7 +6494,7 @@ "need": [ { "a": "attr", - "t": "friend", + "t": "friendPoint", "n": 50 } ], diff --git a/cmd/v2/ui/views/bingoview.go b/cmd/v2/ui/views/bingoview.go index 61849ddd3..f381b2eab 100644 --- a/cmd/v2/ui/views/bingoview.go +++ b/cmd/v2/ui/views/bingoview.go @@ -37,7 +37,7 @@ func (this *BingoView) CreateView(t *model.TestCase) fyne.CanvasObject { nEntry.PlaceHolder = "数量" attrSel := &widget.Select{} - attrSel.Options = []string{"选择", "gold", "diamond", "exp", "friendPoint", "ps", "guildcoin"} + attrSel.Options = []string{"选择", "gold", "diamond", "exp", "friendPoint", "ps", "guildcoin", "arenacoin"} attrSel.SetSelected("选择") attrSel.OnChanged = func(s string) { ttxt = s diff --git a/cmd/v2/ui/views/sociaty_boss.go b/cmd/v2/ui/views/sociaty_boss.go index 9cb400189..ab71403d8 100644 --- a/cmd/v2/ui/views/sociaty_boss.go +++ b/cmd/v2/ui/views/sociaty_boss.go @@ -16,6 +16,7 @@ import ( "fyne.io/fyne/v2/dialog" "fyne.io/fyne/v2/widget" "github.com/sirupsen/logrus" + "github.com/spf13/cast" ) type SociatyBossView struct { @@ -118,21 +119,31 @@ func (s *SociatyBossView) challengefinish() { // 购买挑战券 func (s *SociatyBossView) buy() { - layout := widget.NewForm(widget.NewFormItem("数量", widget.NewEntry())) - dconf := dialog.NewCustom("购买挑战券", "关闭", layout, s.w) - dconf.Resize(fyne.NewSize(800, 500)) - dconf.Show() - + ticketEntry := widget.NewEntry() + layout := widget.NewForm(widget.NewFormItem("数量", ticketEntry)) layout.OnSubmit = func() { + if ticketEntry.Text == "" || ticketEntry.Text == "0" { + common.ShowTip("数量不正确") + return + } if err := service.GetPttService().SendToClient( string(comm.ModuleSociaty), sociaty.SociatySubTypeBuy, - &pb.SociatyBuyReq{}, + &pb.SociatyBuyReq{ + Atn: &pb.UserAssets{ + A: comm.AttrType, + T: comm.ResDiamond, + N: cast.ToInt32(ticketEntry.Text), + }, + }, ); err != nil { logrus.Error(err) return } } + dconf := dialog.NewCustom("购买挑战券", "关闭", layout, s.w) + dconf.Resize(fyne.NewSize(800, 500)) + dconf.Show() } //布阵 diff --git a/cmd/v2/ui/views/sociaty_mine.go b/cmd/v2/ui/views/sociaty_mine.go index 857a8809d..4045a4342 100644 --- a/cmd/v2/ui/views/sociaty_mine.go +++ b/cmd/v2/ui/views/sociaty_mine.go @@ -35,6 +35,7 @@ type SociatyMineView struct { sociaty *pb.DBSociaty // 公会 master *pb.SociatyMemberInfo //公会会长 job pb.SociatyJob // 职位 + ticket int32 //挑战券 uid string flag_memeber bool flag_log bool @@ -186,6 +187,8 @@ func (this *SociatyMineView) CreateView(t *model.TestCase) fyne.CanvasObject { pAvatr.Text = this.master.Avatar pLv := widget.NewEntry() pLv.Text = cast.ToString(this.master.Lv) + ticket := widget.NewEntry() + ticket.Text = cast.ToString(this.ticket) pOfftime := widget.NewEntry() if this.master.OfflineTime != 0 { t := time.Unix(this.master.OfflineTime, 0) @@ -198,6 +201,7 @@ func (this *SociatyMineView) CreateView(t *model.TestCase) fyne.CanvasObject { widget.NewFormItem("会长", pName), widget.NewFormItem("头像", pAvatr), widget.NewFormItem("等级", pLv), + widget.NewFormItem("挑战券", ticket), widget.NewFormItem("离线", pOfftime), ) card.SetContent(form) @@ -300,6 +304,7 @@ func (this *SociatyMineView) dataListener(item *entryItem) { this.sociaty = rsp.Sociaty this.master = rsp.Master + this.ticket = rsp.Ticket //设置成员职位 for _, m := range rsp.Sociaty.Members { diff --git a/modules/sociaty/api_cross_applycancel.go b/modules/sociaty/api_cross_applycancel.go deleted file mode 100644 index 10dfac468..000000000 --- a/modules/sociaty/api_cross_applycancel.go +++ /dev/null @@ -1,52 +0,0 @@ -package sociaty - -import ( - "go_dreamfactory/comm" - "go_dreamfactory/lego/sys/log" - "go_dreamfactory/pb" - - "google.golang.org/protobuf/proto" -) - -// 取消公会申请 - -func (this *apiComp) ApplyCancelCheck(session comm.IUserSession, req *pb.SociatyApplyCancelReq) (code pb.ErrorCode) { - if req.SociatyId == "" { - code = pb.ErrorCode_ReqParameterError - this.module.Error("公会申请取消参数错误", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "params", Value: req.String()}) - } - return -} - -func (this *apiComp) ApplyCancel(session comm.IUserSession, req *pb.SociatyApplyCancelReq) (code pb.ErrorCode, data proto.Message) { - if code = this.ApplyCancelCheck(session, req); code != pb.ErrorCode_Success { - return - } - uid := session.GetUserId() - - sociaty := this.module.modelSociaty.getSociaty(req.SociatyId) - if sociaty != nil && sociaty.Id == "" { - code = pb.ErrorCode_SociatyNoFound - this.module.Error("公会未找到", log.Field{Key: "uid", Value: uid}, log.Field{Key: "sociatyId", Value: req.SociatyId}) - return - } - - if err := this.module.modelSociaty.applyCancel(uid, sociaty); err != nil { - code = pb.ErrorCode_DBError - this.module.Error("申请撤销", - log.Field{Key: "uid", Value: uid}, - log.Field{Key: "sociatyId", Value: req.SociatyId}, - log.Field{Key: "err", Value: err.Error()}, - ) - return - } - - rsp := &pb.SociatyApplyResp{ - Uid: uid, - ScoiatyId: req.SociatyId, - } - if err := session.SendMsg(string(this.module.GetType()), SociatySubTypeApplyCanel, rsp); err != nil { - code = pb.ErrorCode_SystemError - } - return -} diff --git a/modules/sociaty/api_cross_buy.go b/modules/sociaty/api_cross_buy.go index eb79646d5..29a0a2664 100644 --- a/modules/sociaty/api_cross_buy.go +++ b/modules/sociaty/api_cross_buy.go @@ -35,7 +35,7 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.SociatyBuyReq) (code } //校验钻石 - imodule, err := this.service.GetModule(comm.ModuleUser) + imodule, err := this.module.service.GetModule(comm.ModuleUser) if err != nil { code = pb.ErrorCode_SystemError return @@ -63,12 +63,12 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.SociatyBuyReq) (code } //挑战券数量计算 - ex.SociatyTicket += req.Atn.N + ex.SociatyTicket += req.BuyNum //更新购买次数 updateEx := map[string]interface{}{ - "sociatyTicket": ex.SociatyTicket, - "sociatyTicketBuyNum": ex.SociatyTicketBuyNum + 1, + "sociatyTicket": ex.SociatyTicket, //挑战券数量 + "sociatyTicketBuyNum": ex.SociatyTicketBuyNum + 1, //购买次数 } if err := iuser.ChangeUserExpand(uid, updateEx); err != nil { this.module.Error("更新userexpand错误", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err}) diff --git a/modules/sociaty/api_cross_mine.go b/modules/sociaty/api_cross_mine.go index 61a38fbcd..646aa4b45 100644 --- a/modules/sociaty/api_cross_mine.go +++ b/modules/sociaty/api_cross_mine.go @@ -30,7 +30,9 @@ func (this *apiComp) Mine(session comm.IUserSession, req *pb.SociatyMineReq) (co return } - rsp := &pb.SociatyMineResp{} + rsp := &pb.SociatyMineResp{ + Ticket: userEx.SociatyTicket, + } // 未加入公会 if userEx.SociatyId == "" { diff --git a/modules/user/api_create.go b/modules/user/api_create.go index d75a98849..53ce17861 100644 --- a/modules/user/api_create.go +++ b/modules/user/api_create.go @@ -83,7 +83,8 @@ func (this *apiComp) Create(session comm.IUserSession, req *pb.UserCreateReq) (c //初始化用户扩展 initUpdate := map[string]interface{}{ - "modifynameCount": 1, //修改名称1次 + "modifynameCount": 1, //修改名称1次 + "sociatyTicket": globalConf.GuildBossInitialNum, //公会BOSS挑战券 } if err := this.module.modelExpand.ChangeUserExpand(session.GetUserId(), initUpdate); err != nil { code = pb.ErrorCode_DBError diff --git a/modules/user/module.go b/modules/user/module.go index 616eeed3e..66530d99e 100644 --- a/modules/user/module.go +++ b/modules/user/module.go @@ -292,8 +292,8 @@ func (this *User) change(session comm.IUserSession, attr string, add int32) (cha Diamond: user.Diamond, Friend: userEx.FriendPoint, Starcoin: user.Starcoin, - Guildcoin: userEx.GuildCoin, - ArenaCoin: userEx.ArenaCoin, + Guildcoin: userEx.Guildcoin, + Arenacoin: userEx.Arenacoin, Ps: user.Ps, } @@ -348,7 +348,7 @@ func (this *User) change(session comm.IUserSession, attr string, add int32) (cha change.Starcoin += int64(add) case comm.SociatyCoin: if add < 0 { - if userEx.GuildCoin+add < 0 { + if userEx.Guildcoin+add < 0 { code = pb.ErrorCode_UserSociatyCoinNoEnough return } @@ -356,12 +356,12 @@ func (this *User) change(session comm.IUserSession, attr string, add int32) (cha change.Guildcoin += add case comm.ArenaCoin: if add < 0 { - if userEx.ArenaCoin+add < 0 { + if userEx.Arenacoin+add < 0 { code = pb.ErrorCode_UserArenaCoinNoEnough return } } - change.ArenaCoin += add + change.Arenacoin += add case comm.ResPs: if add < 0 { if user.Ps+add < 0 { @@ -397,7 +397,7 @@ func (this *User) change(session comm.IUserSession, attr string, add int32) (cha updateEx := map[string]interface{}{ comm.ResFriend: change.Friend, comm.SociatyCoin: change.Guildcoin, - comm.ArenaCoin: change.ArenaCoin, + comm.ArenaCoin: change.Arenacoin, } if err := this.modelUser.updateUserAttr(uid, update); err != nil { diff --git a/pb/sociaty_msg.pb.go b/pb/sociaty_msg.pb.go index 9f85e7a92..a2b4f97fc 100644 --- a/pb/sociaty_msg.pb.go +++ b/pb/sociaty_msg.pb.go @@ -3460,7 +3460,8 @@ type SociatyBuyReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Atn *UserAssets `protobuf:"bytes,1,opt,name=atn,proto3" json:"atn"` //挑战券消耗资源及价格 + Atn *UserAssets `protobuf:"bytes,1,opt,name=atn,proto3" json:"atn"` //挑战券消耗资源及价格 + BuyNum int32 `protobuf:"varint,2,opt,name=buyNum,proto3" json:"buyNum"` //购买数量 } func (x *SociatyBuyReq) Reset() { @@ -3502,6 +3503,13 @@ func (x *SociatyBuyReq) GetAtn() *UserAssets { return nil } +func (x *SociatyBuyReq) GetBuyNum() int32 { + if x != nil { + return x.BuyNum + } + return 0 +} + type SociatyBuyResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3836,17 +3844,18 @@ var file_sociaty_sociaty_msg_proto_rawDesc = []byte{ 0x42, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x22, - 0x2e, 0x0a, 0x0d, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x42, 0x75, 0x79, 0x52, 0x65, 0x71, + 0x46, 0x0a, 0x0d, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x42, 0x75, 0x79, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x03, 0x61, 0x74, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x03, 0x61, 0x74, 0x6e, 0x22, - 0x22, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x42, 0x75, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x75, 0x69, 0x64, 0x2a, 0x42, 0x0a, 0x11, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4c, 0x69, - 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, - 0x4e, 0x4f, 0x41, 0x50, 0x50, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, - 0x4c, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x03, 0x61, 0x74, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x62, 0x75, 0x79, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x62, 0x75, 0x79, 0x4e, 0x75, 0x6d, 0x22, 0x22, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, + 0x74, 0x79, 0x42, 0x75, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x2a, 0x42, 0x0a, 0x11, 0x53, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4f, 0x4e, + 0x44, 0x49, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x4f, 0x41, 0x50, 0x50, 0x4c, 0x59, 0x10, + 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x4c, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x42, + 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/user_msg.pb.go b/pb/user_msg.pb.go index 514efeb1e..7ef020739 100644 --- a/pb/user_msg.pb.go +++ b/pb/user_msg.pb.go @@ -592,7 +592,7 @@ type UserResChangedPush struct { Friend int32 `protobuf:"varint,5,opt,name=friend,proto3" json:"friend" bson:"frined"` //友情点 Starcoin int64 `protobuf:"varint,6,opt,name=starcoin,proto3" json:"starcoin" bson:"starcoin"` //星座币 Guildcoin int32 `protobuf:"varint,7,opt,name=guildcoin,proto3" json:"guildcoin" bson:"guildcoin"` //公会币 - ArenaCoin int32 `protobuf:"varint,8,opt,name=arenaCoin,proto3" json:"arenaCoin" bson:"arenaCoin"` //竞技场币 + Arenacoin int32 `protobuf:"varint,8,opt,name=arenacoin,proto3" json:"arenacoin" bson:"arenacoin"` //竞技场币 Ps int32 `protobuf:"varint,9,opt,name=ps,proto3" json:"ps" bson:"ps"` //体力 } @@ -677,9 +677,9 @@ func (x *UserResChangedPush) GetGuildcoin() int32 { return 0 } -func (x *UserResChangedPush) GetArenaCoin() int32 { +func (x *UserResChangedPush) GetArenacoin() int32 { if x != nil { - return x.ArenaCoin + return x.Arenacoin } return 0 } @@ -2524,8 +2524,8 @@ var file_user_user_msg_proto_rawDesc = []byte{ 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x74, 0x61, 0x72, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x1c, - 0x0a, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, + 0x0a, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x70, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x70, 0x73, 0x22, 0x2a, 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, diff --git a/pb/userexpand.pb.go b/pb/userexpand.pb.go index 47c05d6b7..aa6c73daf 100644 --- a/pb/userexpand.pb.go +++ b/pb/userexpand.pb.go @@ -46,8 +46,8 @@ type DBUserExpand struct { TeamHeroIds []string `protobuf:"bytes,22,rep,name=teamHeroIds,proto3" json:"teamHeroIds" bson:"teamHeroIds"` //阵容英雄IDs SociatyId string `protobuf:"bytes,23,opt,name=sociatyId,proto3" json:"sociatyId" bson:"sociatyId"` //公会ID SociatyCd int64 `protobuf:"varint,24,opt,name=sociatyCd,proto3" json:"sociatyCd" bson:"sociatyCd"` //主动退出CD - GuildCoin int32 `protobuf:"varint,25,opt,name=guildCoin,proto3" json:"guildCoin" bson:"guildcoin"` //公会币 - ArenaCoin int32 `protobuf:"varint,26,opt,name=arenaCoin,proto3" json:"arenaCoin" bson:"arenaCoin"` //竞技场币 + Guildcoin int32 `protobuf:"varint,25,opt,name=guildcoin,proto3" json:"guildcoin" bson:"guildcoin"` //公会币 + Arenacoin int32 `protobuf:"varint,26,opt,name=arenacoin,proto3" json:"arenacoin" bson:"arenacoin"` //竞技场币 Physicalbuynum int32 `protobuf:"varint,27,opt,name=physicalbuynum,proto3" json:"physicalbuynum"` //@go_tags(`bson:"physicalbuynum"`)体力购买次数 PhysicalbuyLasttime int64 `protobuf:"varint,28,opt,name=physicalbuyLasttime,proto3" json:"physicalbuyLasttime"` //@go_tags(`bson:"physicalbuyLasttime"`)最后购买体力事件 Buyunifiedticket int32 `protobuf:"varint,29,opt,name=buyunifiedticket,proto3" json:"buyunifiedticket"` //@go_tags(`bson:"buyunifiedticket"`)购买统一入场门票次数 @@ -229,16 +229,16 @@ func (x *DBUserExpand) GetSociatyCd() int64 { return 0 } -func (x *DBUserExpand) GetGuildCoin() int32 { +func (x *DBUserExpand) GetGuildcoin() int32 { if x != nil { - return x.GuildCoin + return x.Guildcoin } return 0 } -func (x *DBUserExpand) GetArenaCoin() int32 { +func (x *DBUserExpand) GetArenacoin() int32 { if x != nil { - return x.ArenaCoin + return x.Arenacoin } return 0 } @@ -340,10 +340,10 @@ var file_userexpand_proto_rawDesc = []byte{ 0x79, 0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x43, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, - 0x43, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x69, 0x6e, 0x18, - 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x69, 0x6e, - 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x1a, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x26, + 0x43, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x63, 0x6f, 0x69, 0x6e, 0x18, + 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x63, 0x6f, 0x69, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x1a, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x62, 0x75, 0x79, 0x6e, 0x75, 0x6d, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x62, 0x75, 0x79, 0x6e, 0x75, 0x6d, 0x12, 0x30, 0x0a, 0x13, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63,