diff --git a/modules/battle/fight/component/fightroledata.go b/modules/battle/fight/component/fightroledata.go
new file mode 100644
index 000000000..3dc526e93
--- /dev/null
+++ b/modules/battle/fight/component/fightroledata.go
@@ -0,0 +1,40 @@
+package component
+
+type FightRoleData struct {
+ ///
+ /// 角色名
+ ///
+ Name string
+ ///
+ /// 阵营 1=我 2=敌
+ ///
+ Side byte
+ ///
+ /// 种族 1灼热, 2涌动, 3呼啸, 4闪耀
+ ///
+ Race byte
+ ///
+ /// 站位 1~5
+ ///
+ Pos byte
+ ///
+ /// 唯一标记,同时也是List FightBase.Roles的索引
+ ///
+ Rid byte
+ ///
+ /// 是否活着
+ ///
+ ALive bool
+ ///
+ /// 是否队长
+ ///
+ Captain bool
+ ///
+ /// 队长技 id
+ ///
+ CaptainSkillId int
+ ///
+ /// 英雄ID
+ ///
+ HeroID string
+}
diff --git a/modules/battle/fight/fightbase.go b/modules/battle/fight/fightbase.go
new file mode 100644
index 000000000..609b9cae2
--- /dev/null
+++ b/modules/battle/fight/fightbase.go
@@ -0,0 +1,15 @@
+package fight
+
+///
+/// 每场战斗需要new一个类,因为客户端有同时进行多场战斗的需求,所以这里不能是单例
+///
+type FightBase struct {
+ ///
+ /// 战斗类型
+ ///
+ fightType FightType
+ ///
+ /// 战斗是否进行中
+ ///
+ fightIng bool
+}
diff --git a/modules/battle/fight/fightenum.go b/modules/battle/fight/fightenum.go
new file mode 100644
index 000000000..36077afd8
--- /dev/null
+++ b/modules/battle/fight/fightenum.go
@@ -0,0 +1,319 @@
+package fight
+
+import "fmt"
+
+///
+/// 战斗类型枚举
+///
+type FightType int8
+
+const (
+ FightType_PVE FightType = 1
+ FightType_PVP FightType = 2
+ FightType_PVBOSS FightType = 3
+)
+
+///
+/// 类型枚举
+///
+type FightGroupType int8
+
+const (
+ FightGroupType_Friend FightGroupType = 1
+ FightGroupType_Enemy FightGroupType = 2
+)
+
+///
+/// 技能类型枚举
+///
+///
+///主动技 = 玩家可以点击、会出现在UI里
+///被动技 = 玩家不可以点击,会出现在UI里
+///队长技 = 玩家不可以点击,不会出现在UI里
+///其他系统提供的被动技 = 玩家不可以点击,不会出现在UI里
+///
+type SkillType int8
+
+const (
+ /// 正常的主动技能
+ SkillType_Normal SkillType = 1
+ /// 被动技能
+ SkillType_Passive SkillType = 2
+ /// 队长技
+ SkillType_Captain SkillType = 3
+)
+
+///
+/// 主技能选敌逻辑枚举
+///
+type SkillTargetType int8
+
+const (
+ /// 敌方存活单体
+ SkillTargetType_SingleLiveEnemy SkillTargetType = 1
+ /// 敌方存活群体
+ SkillTargetType_AllLiveEnemy SkillTargetType = 2
+ /// 己方存活单体
+ SkillTargetType_SingleLiveFriend SkillTargetType = 3
+ /// 乙方所有存活目标
+ SkillTargetType_AllLiveFriend SkillTargetType = 4
+ /// 己方任意状态单体(含已死亡)
+ SkillTargetType_SingleAnyFriend SkillTargetType = 5
+ /// 己方已死亡了的单体
+ SkillTargetType_SingleDeadFriend SkillTargetType = 6
+)
+
+type AferSkillFromType int8
+
+const (
+ ///
+ /// 所有角色
+ ///
+ AferSkillFromType_All AferSkillFromType = 0
+ ///
+ /// 友方所有
+ ///
+ AferSkillFromType_Friend AferSkillFromType = 1
+ ///
+ /// 敌方所有
+ ///
+ AferSkillFromType_Enemy AferSkillFromType = 2
+ ///
+ /// 技能发起者自己
+ ///
+ AferSkillFromType_Self AferSkillFromType = 3
+ ///
+ /// 玩家选择的目标
+ ///
+ AferSkillFromType_PlayerChoose AferSkillFromType = 4
+ ///
+ /// 除自己外的友方
+ ///
+ AferSkillFromType_FriendExceptSelf AferSkillFromType = 5
+ ///
+ /// 除选定目标外的其他敌方
+ ///
+ AferSkillFromType_EnemyExceptChoose AferSkillFromType = 6
+ ///
+ /// 除选定目标外的其他友方
+ ///
+ AferSkillFromType_FriendExceptChoose AferSkillFromType = 7
+)
+
+type EventType int8
+
+const (
+ ///
+ /// 空
+ ///
+ EventType_None EventType = -1
+ ///
+ /// 开始战斗时
+ ///
+ EventType_OnFightStart EventType = iota
+ ///
+ /// 回合行动前
+ ///
+ EventType_OnRoundStart
+ ///
+ /// 回合结束后
+ ///
+ EventType_OnRoundEnd
+ ///
+ /// 行动结束前
+ ///
+ EventType_OnPreActionEnd
+ ///
+ /// 行动结束后
+ ///
+ EventType_OnPostActionEnd
+ ///
+ /// 效果执行前
+ ///
+ EventType_OnPreEffect
+ ///
+ /// 受到效果前
+ ///
+ EventType_OnPreReceiveEffect
+ ///
+ /// 受到伤害计算后
+ ///
+ EventType_OnCalcDmgEffect
+ ///
+ /// 受到效果时
+ ///
+ EventType_OnPostReceiveEffect
+ ///
+ /// 施加效果时
+ ///
+ EventType_OnPostGiveEffect
+ ///
+ /// 暴击时
+ ///
+ EventType_OnPostGiveCriCal
+ ///
+ /// 被暴击
+ ///
+ EventType_OnPostReceiveCriCal
+ ///
+ /// 回合行动后
+ ///
+ EventType_OnStopAction
+)
+
+type EOrderType int8
+
+const (
+ Asc EOrderType = iota
+ Desc
+)
+
+type ComModifyOperate struct {
+ From byte
+ Nv float32
+}
+
+func (this *ComModifyOperate) Recycle() {
+ this.From = 0
+ this.Nv = 0
+}
+
+func (this *ComModifyOperate) ToString() string {
+ str := fmt.Sprintf("修改行动值 rid={%d},nv={%f}", this.From, this.Nv)
+ return str
+}
+
+type ComSetSkillCD struct {
+ From byte
+ Skillid int
+ Nv byte
+}
+
+func (this *ComSetSkillCD) Recycle() {
+ this.From = 0
+ this.Nv = 0
+ this.Skillid = 0
+}
+
+func (this *ComSetSkillCD) ToString() string {
+ str := fmt.Sprintf("修改行动值 rid={%d},skillid={%d},nv={%d}", this.From, this.Skillid, this.Nv)
+ return str
+}
+
+type ComStartFight struct{}
+
+func (this *ComStartFight) Recycle() {}
+func (this *ComStartFight) ToString() string {
+ str := "战斗开始"
+ return str
+}
+
+type ComEndFight struct{}
+
+func (this *ComEndFight) Recycle() {}
+func (this *ComEndFight) ToString() string {
+ var str = "战斗结束"
+ return str
+}
+
+type ComStartAction struct {
+ From byte
+}
+
+func (this *ComStartAction) Recycle() {
+ this.From = 0
+}
+func (this *ComStartAction) ToString() string {
+ var str = "回合开始 rid={from}"
+ return str
+}
+
+type ComStopAction struct {
+ From byte
+}
+
+func (this *ComStopAction) Recycle() {
+ this.From = 0
+}
+func (this *ComStopAction) ToString() string {
+ var str = fmt.Sprintf("回合结束 rid={%d}", this.From)
+ return str
+}
+
+///
+/// 主技能命令集合
+///
+type ComSkillAtk struct {
+ AniName string
+ Skillid int
+ From byte
+ comList []*ComSkillAfterAtk
+}
+
+///
+/// 回收到对象池时重设数据
+///
+func (this *ComSkillAtk) Recycle() {
+ this.AniName = ""
+ this.Skillid = 0
+ this.From = 0
+}
+
+///
+/// 子技能命令集合
+///
+type ComSkillAfterAtk struct {
+ //public int skillid;
+ ComList []*ComEffectSkill
+}
+
+type ComEffectSkill struct {
+ To byte
+}
+
+type ComMondifyBuff struct {
+ ComEffectSkill
+ BuffId int
+ Append bool
+}
+
+///
+/// 回收到对象池时重设数据
+///
+func (this *ComMondifyBuff) Recycle() {
+ this.BuffId = 0
+ this.Append = false
+ this.To = 0
+}
+func (this *ComMondifyBuff) ToString() string {
+ var str = fmt.Sprintf("Buff变化 to={%d} buffId={%d} append={%t}", this.To, this.BuffId, this.Append)
+ return str
+}
+
+///
+/// 生命值修改命令
+///
+type ComModifyHealth struct {
+ ComEffectSkill
+ Baoji bool
+ Miss bool
+ Num float32
+ Nhp int
+ Mhp int
+}
+
+///
+/// 回收到对象池时重设数据
+///
+func (this *ComModifyHealth) Recycle() {
+ this.Baoji = false
+ this.Miss = false
+ this.Num = 0
+ this.Nhp = 0
+ this.Mhp = 0
+ this.To = 0
+}
+func (this *ComModifyHealth) ToString() string {
+ var str = fmt.Sprintf("血量修改 to={%d} num={%f} nhp={%d} mhp={%d}", this.To, this.Num, this.Nhp, this.Mhp)
+ return str
+}
diff --git a/modules/battle/fight/fightrole.go b/modules/battle/fight/fightrole.go
new file mode 100644
index 000000000..5791dc25f
--- /dev/null
+++ b/modules/battle/fight/fightrole.go
@@ -0,0 +1,4 @@
+package fight
+
+type FightRole struct {
+}
diff --git a/modules/battle/modelBattle.go b/modules/battle/modelBattle.go
index 2a121010b..9f9ce696f 100644
--- a/modules/battle/modelBattle.go
+++ b/modules/battle/modelBattle.go
@@ -55,7 +55,7 @@ func (this *modelBattleComp) createpve(session comm.IUserSession, conn *db.DBCon
}
record.Redflist[0] = &pb.DBBattleFormt{
Leadpos: req.Leadpos,
- Team: make([]*pb.DBHero, len(req.Teamids)),
+ Team: make([]*pb.BattleRole, len(req.Teamids)),
}
model := db.NewDBModel(comm.TableHero, time.Hour, conn)
for i, v := range req.Teamids {
@@ -64,7 +64,35 @@ func (this *modelBattleComp) createpve(session comm.IUserSession, conn *db.DBCon
if err := model.GetListObj(session.GetUserId(), v, hero); err != nil {
return
}
- record.Redflist[0].Team[i] = hero
+ tid := 100 + i
+ record.Redflist[0].Team[i] = &pb.BattleRole{
+ Tid: int32(tid),
+ Oid: hero.Id,
+ HeroID: hero.HeroID,
+ Pos: int32(i),
+ Star: hero.Star,
+ Lv: hero.Lv,
+ CaptainSkill: hero.CaptainSkill,
+ NormalSkill: hero.NormalSkill,
+ Property: make(map[string]int32),
+ }
+ for k, v := range hero.Property {
+ record.Redflist[0].Team[i].Property[k] += v
+ }
+ for k, v := range hero.AddProperty {
+ record.Redflist[0].Team[i].Property[k] += v
+ }
+ for k, v := range hero.Energy {
+ record.Redflist[0].Team[i].Property[k] += v
+ }
+ for k, v := range hero.EnergyProperty {
+ record.Redflist[0].Team[i].Property[k] += v
+ }
+ for k, v := range hero.JuexProperty {
+ record.Redflist[0].Team[i].Property[k] += v
+ }
+ } else {
+ record.Redflist[0].Team[i] = nil
}
}
@@ -75,7 +103,7 @@ func (this *modelBattleComp) createpve(session comm.IUserSession, conn *db.DBCon
} else {
record.Buleflist[i] = &pb.DBBattleFormt{
Leadpos: mf.CaptainId,
- Team: make([]*pb.DBHero, len(req.Teamids)),
+ Team: make([]*pb.BattleRole, len(req.Teamids)),
}
for i1, v1 := range mf.MonsterList {
if v1 == -1 {
@@ -84,11 +112,23 @@ func (this *modelBattleComp) createpve(session comm.IUserSession, conn *db.DBCon
if monst, err := this.module.configure.GetMonster(v1); err != nil {
code = pb.ErrorCode_ConfigNoFound
} else {
- if record.Buleflist[i].Team[i1] = this.module.ModuleHero.CreateMonster(monst.HeroId, monst.Star, mf.Lv); record.Buleflist[i].Team[i1] == nil {
+ hero := &pb.DBHero{}
+ if hero = this.module.ModuleHero.CreateMonster(monst.HeroId, monst.Star, mf.Lv); hero == nil {
log.Error("on found battle req data", log.Field{Key: "HeroId", Value: monst.HeroId})
code = pb.ErrorCode_ReqParameterError
return
} else {
+ record.Buleflist[i].Team[i1] = &pb.BattleRole{
+ Tid: int32(200 + i*10 + i1),
+ Oid: hero.Id,
+ HeroID: hero.HeroID,
+ Pos: int32(i),
+ Star: hero.Star,
+ Lv: hero.Lv,
+ CaptainSkill: hero.CaptainSkill,
+ NormalSkill: hero.NormalSkill,
+ Property: hero.Property,
+ }
record.Buleflist[i].Team[i1].Property[comm.Hp] = int32(float32(record.Buleflist[i].Team[i1].Property[comm.Hp]) * mf.Hppro)
record.Buleflist[i].Team[i1].Property[comm.Atk] = int32(float32(record.Buleflist[i].Team[i1].Property[comm.Atk]) * mf.Atkpro)
record.Buleflist[i].Team[i1].Property[comm.Def] = int32(float32(record.Buleflist[i].Team[i1].Property[comm.Def]) * mf.Defpro)
diff --git a/pb/battle_db.pb.go b/pb/battle_db.pb.go
index 48b940e8a..5ba4ffdbf 100644
--- a/pb/battle_db.pb.go
+++ b/pb/battle_db.pb.go
@@ -219,20 +219,131 @@ func (DBBattleComp) EnumDescriptor() ([]byte, []int) {
return file_battle_battle_db_proto_rawDescGZIP(), []int{3}
}
+type BattleRole struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Tid int32 `protobuf:"varint,1,opt,name=tid,proto3" json:"tid"` // 临时id
+ Oid string `protobuf:"bytes,2,opt,name=oid,proto3" json:"oid"` // 玩家英雄数据库id
+ Pos int32 `protobuf:"varint,3,opt,name=pos,proto3" json:"pos"` // 站位坐标
+ HeroID string `protobuf:"bytes,4,opt,name=heroID,proto3" json:"heroID"` // 英雄的配置表ID
+ Star int32 `protobuf:"varint,5,opt,name=star,proto3" json:"star"` // 英雄星级
+ Lv int32 `protobuf:"varint,6,opt,name=lv,proto3" json:"lv"` // 英雄等级
+ CaptainSkill int32 `protobuf:"varint,7,opt,name=captainSkill,proto3" json:"captainSkill" bson:"captainSkill"` //队长技能
+ NormalSkill []*SkillData `protobuf:"bytes,8,rep,name=normalSkill,proto3" json:"normalSkill" bson:"normalSkill"` //普通技能
+ Property map[string]int32 `protobuf:"bytes,9,rep,name=property,proto3" json:"property" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 属性相关
+}
+
+func (x *BattleRole) Reset() {
+ *x = BattleRole{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_battle_battle_db_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *BattleRole) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*BattleRole) ProtoMessage() {}
+
+func (x *BattleRole) ProtoReflect() protoreflect.Message {
+ mi := &file_battle_battle_db_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use BattleRole.ProtoReflect.Descriptor instead.
+func (*BattleRole) Descriptor() ([]byte, []int) {
+ return file_battle_battle_db_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *BattleRole) GetTid() int32 {
+ if x != nil {
+ return x.Tid
+ }
+ return 0
+}
+
+func (x *BattleRole) GetOid() string {
+ if x != nil {
+ return x.Oid
+ }
+ return ""
+}
+
+func (x *BattleRole) GetPos() int32 {
+ if x != nil {
+ return x.Pos
+ }
+ return 0
+}
+
+func (x *BattleRole) GetHeroID() string {
+ if x != nil {
+ return x.HeroID
+ }
+ return ""
+}
+
+func (x *BattleRole) GetStar() int32 {
+ if x != nil {
+ return x.Star
+ }
+ return 0
+}
+
+func (x *BattleRole) GetLv() int32 {
+ if x != nil {
+ return x.Lv
+ }
+ return 0
+}
+
+func (x *BattleRole) GetCaptainSkill() int32 {
+ if x != nil {
+ return x.CaptainSkill
+ }
+ return 0
+}
+
+func (x *BattleRole) GetNormalSkill() []*SkillData {
+ if x != nil {
+ return x.NormalSkill
+ }
+ return nil
+}
+
+func (x *BattleRole) GetProperty() map[string]int32 {
+ if x != nil {
+ return x.Property
+ }
+ return nil
+}
+
//战斗阵型信息
type DBBattleFormt struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- Leadpos int32 `protobuf:"varint,1,opt,name=leadpos,proto3" json:"leadpos"` //队长位置
- Team []*DBHero `protobuf:"bytes,2,rep,name=team,proto3" json:"team"`
+ Leadpos int32 `protobuf:"varint,1,opt,name=leadpos,proto3" json:"leadpos"` //队长位置
+ Team []*BattleRole `protobuf:"bytes,2,rep,name=team,proto3" json:"team"`
}
func (x *DBBattleFormt) Reset() {
*x = DBBattleFormt{}
if protoimpl.UnsafeEnabled {
- mi := &file_battle_battle_db_proto_msgTypes[0]
+ mi := &file_battle_battle_db_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -245,7 +356,7 @@ func (x *DBBattleFormt) String() string {
func (*DBBattleFormt) ProtoMessage() {}
func (x *DBBattleFormt) ProtoReflect() protoreflect.Message {
- mi := &file_battle_battle_db_proto_msgTypes[0]
+ mi := &file_battle_battle_db_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -258,7 +369,7 @@ func (x *DBBattleFormt) ProtoReflect() protoreflect.Message {
// Deprecated: Use DBBattleFormt.ProtoReflect.Descriptor instead.
func (*DBBattleFormt) Descriptor() ([]byte, []int) {
- return file_battle_battle_db_proto_rawDescGZIP(), []int{0}
+ return file_battle_battle_db_proto_rawDescGZIP(), []int{1}
}
func (x *DBBattleFormt) GetLeadpos() int32 {
@@ -268,7 +379,7 @@ func (x *DBBattleFormt) GetLeadpos() int32 {
return 0
}
-func (x *DBBattleFormt) GetTeam() []*DBHero {
+func (x *DBBattleFormt) GetTeam() []*BattleRole {
if x != nil {
return x.Team
}
@@ -297,7 +408,7 @@ type DBBattleRecord struct {
func (x *DBBattleRecord) Reset() {
*x = DBBattleRecord{}
if protoimpl.UnsafeEnabled {
- mi := &file_battle_battle_db_proto_msgTypes[1]
+ mi := &file_battle_battle_db_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -310,7 +421,7 @@ func (x *DBBattleRecord) String() string {
func (*DBBattleRecord) ProtoMessage() {}
func (x *DBBattleRecord) ProtoReflect() protoreflect.Message {
- mi := &file_battle_battle_db_proto_msgTypes[1]
+ mi := &file_battle_battle_db_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -323,7 +434,7 @@ func (x *DBBattleRecord) ProtoReflect() protoreflect.Message {
// Deprecated: Use DBBattleRecord.ProtoReflect.Descriptor instead.
func (*DBBattleRecord) Descriptor() ([]byte, []int) {
- return file_battle_battle_db_proto_rawDescGZIP(), []int{1}
+ return file_battle_battle_db_proto_rawDescGZIP(), []int{2}
}
func (x *DBBattleRecord) GetId() string {
@@ -408,49 +519,70 @@ var File_battle_battle_db_proto protoreflect.FileDescriptor
var file_battle_battle_db_proto_rawDesc = []byte{
0x0a, 0x16, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x2f, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f,
0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x12, 0x68, 0x65, 0x72, 0x6f, 0x2f, 0x68,
- 0x65, 0x72, 0x6f, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x46, 0x0a, 0x0d,
- 0x44, 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x74, 0x12, 0x18, 0x0a,
- 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07,
- 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x12, 0x1b, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18,
- 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04,
- 0x74, 0x65, 0x61, 0x6d, 0x22, 0x91, 0x03, 0x0a, 0x0e, 0x44, 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c,
- 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x05, 0x62, 0x74, 0x79, 0x70, 0x65,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x54,
- 0x79, 0x70, 0x65, 0x52, 0x05, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x05, 0x70, 0x74,
- 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x50, 0x6c, 0x61, 0x79,
- 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x70, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70,
- 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x65,
- 0x76, 0x65, 0x6c, 0x12, 0x23, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01,
- 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74,
- 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x64, 0x43,
- 0x6f, 0x6d, 0x70, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x64,
- 0x43, 0x6f, 0x6d, 0x70, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x08, 0x72, 0x65, 0x64, 0x66, 0x6c, 0x69,
- 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x42, 0x61, 0x74,
- 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x74, 0x52, 0x08, 0x72, 0x65, 0x64, 0x66, 0x6c, 0x69,
- 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x49, 0x64,
- 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6d, 0x70,
- 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x09, 0x62, 0x75, 0x6c, 0x65, 0x66, 0x6c, 0x69, 0x73, 0x74, 0x18,
- 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65,
- 0x46, 0x6f, 0x72, 0x6d, 0x74, 0x52, 0x09, 0x62, 0x75, 0x6c, 0x65, 0x66, 0x6c, 0x69, 0x73, 0x74,
- 0x12, 0x2f, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18,
- 0x0a, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65,
- 0x43, 0x6f, 0x6d, 0x70, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x65, 0x73, 0x75, 0x6c,
- 0x74, 0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28,
- 0x0e, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x70,
- 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2a, 0x30, 0x0a, 0x0a, 0x42, 0x61, 0x74, 0x74,
- 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x6e, 0x69, 0x6c, 0x10, 0x00, 0x12,
- 0x07, 0x0a, 0x03, 0x70, 0x76, 0x65, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x76, 0x70, 0x10,
- 0x02, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x76, 0x62, 0x10, 0x03, 0x2a, 0x35, 0x0a, 0x08, 0x50, 0x6c,
- 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x6d, 0x61, 0x69, 0x6e, 0x6c, 0x69,
- 0x6e, 0x65, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x10, 0x01,
- 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x10,
- 0x02, 0x2a, 0x1f, 0x0a, 0x0c, 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74,
- 0x65, 0x12, 0x06, 0x0a, 0x02, 0x69, 0x6e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x6e, 0x64,
- 0x10, 0x02, 0x2a, 0x2b, 0x0a, 0x0c, 0x44, 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f,
- 0x6d, 0x70, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x72, 0x61, 0x77, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03,
- 0x72, 0x65, 0x64, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x62, 0x75, 0x6c, 0x65, 0x10, 0x02, 0x42,
- 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x65, 0x72, 0x6f, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc4, 0x02, 0x0a,
+ 0x0a, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74,
+ 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x74, 0x69, 0x64, 0x12, 0x10, 0x0a,
+ 0x03, 0x6f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12,
+ 0x10, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x70, 0x6f,
+ 0x73, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61,
+ 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x0e, 0x0a,
+ 0x02, 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x22, 0x0a,
+ 0x0c, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x07, 0x20,
+ 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c,
+ 0x6c, 0x12, 0x2c, 0x0a, 0x0b, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x53, 0x6b, 0x69, 0x6c, 0x6c,
+ 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61,
+ 0x74, 0x61, 0x52, 0x0b, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12,
+ 0x35, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x09, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x19, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x2e, 0x50,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 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, 0x4a, 0x0a, 0x0d, 0x44, 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46,
+ 0x6f, 0x72, 0x6d, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x12, 0x1f,
+ 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42,
+ 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22,
+ 0x91, 0x03, 0x0a, 0x0e, 0x44, 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f,
+ 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
+ 0x69, 0x64, 0x12, 0x21, 0x0a, 0x05, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0e, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05,
+ 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x05, 0x70, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52,
+ 0x05, 0x70, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x65, 0x76, 0x65, 0x6c,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x23,
+ 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e,
+ 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
+ 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x49, 0x64,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x49,
+ 0x64, 0x12, 0x2a, 0x0a, 0x08, 0x72, 0x65, 0x64, 0x66, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x07, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f,
+ 0x72, 0x6d, 0x74, 0x52, 0x08, 0x72, 0x65, 0x64, 0x66, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a,
+ 0x0a, 0x62, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x49, 0x64, 0x12, 0x2c, 0x0a,
+ 0x09, 0x62, 0x75, 0x6c, 0x65, 0x66, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x74,
+ 0x52, 0x09, 0x62, 0x75, 0x6c, 0x65, 0x66, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x0b, 0x72,
+ 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0e,
+ 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x52,
+ 0x0b, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x25, 0x0a, 0x06,
+ 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x44,
+ 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x52, 0x06, 0x72, 0x65, 0x73,
+ 0x75, 0x6c, 0x74, 0x2a, 0x30, 0x0a, 0x0a, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x54, 0x79, 0x70,
+ 0x65, 0x12, 0x07, 0x0a, 0x03, 0x6e, 0x69, 0x6c, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x76,
+ 0x65, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x76, 0x70, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03,
+ 0x70, 0x76, 0x62, 0x10, 0x03, 0x2a, 0x35, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x54, 0x79, 0x70,
+ 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x6d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x10, 0x00, 0x12,
+ 0x0a, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6d,
+ 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x10, 0x02, 0x2a, 0x1f, 0x0a, 0x0c,
+ 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x06, 0x0a, 0x02,
+ 0x69, 0x6e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x10, 0x02, 0x2a, 0x2b, 0x0a,
+ 0x0c, 0x44, 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x12, 0x08, 0x0a,
+ 0x04, 0x64, 0x72, 0x61, 0x77, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x72, 0x65, 0x64, 0x10, 0x01,
+ 0x12, 0x08, 0x0a, 0x04, 0x62, 0x75, 0x6c, 0x65, 0x10, 0x02, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
+ 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -466,30 +598,34 @@ func file_battle_battle_db_proto_rawDescGZIP() []byte {
}
var file_battle_battle_db_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
-var file_battle_battle_db_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_battle_battle_db_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_battle_battle_db_proto_goTypes = []interface{}{
(BattleType)(0), // 0: BattleType
(PlayType)(0), // 1: PlayType
(BBattleState)(0), // 2: BBattleState
(DBBattleComp)(0), // 3: DBBattleComp
- (*DBBattleFormt)(nil), // 4: DBBattleFormt
- (*DBBattleRecord)(nil), // 5: DBBattleRecord
- (*DBHero)(nil), // 6: DBHero
+ (*BattleRole)(nil), // 4: BattleRole
+ (*DBBattleFormt)(nil), // 5: DBBattleFormt
+ (*DBBattleRecord)(nil), // 6: DBBattleRecord
+ nil, // 7: BattleRole.PropertyEntry
+ (*SkillData)(nil), // 8: SkillData
}
var file_battle_battle_db_proto_depIdxs = []int32{
- 6, // 0: DBBattleFormt.team:type_name -> DBHero
- 0, // 1: DBBattleRecord.btype:type_name -> BattleType
- 1, // 2: DBBattleRecord.ptype:type_name -> PlayType
- 2, // 3: DBBattleRecord.state:type_name -> BBattleState
- 4, // 4: DBBattleRecord.redflist:type_name -> DBBattleFormt
- 4, // 5: DBBattleRecord.buleflist:type_name -> DBBattleFormt
- 3, // 6: DBBattleRecord.roundresult:type_name -> DBBattleComp
- 3, // 7: DBBattleRecord.result:type_name -> DBBattleComp
- 8, // [8:8] is the sub-list for method output_type
- 8, // [8:8] is the sub-list for method input_type
- 8, // [8:8] is the sub-list for extension type_name
- 8, // [8:8] is the sub-list for extension extendee
- 0, // [0:8] is the sub-list for field type_name
+ 8, // 0: BattleRole.normalSkill:type_name -> SkillData
+ 7, // 1: BattleRole.property:type_name -> BattleRole.PropertyEntry
+ 4, // 2: DBBattleFormt.team:type_name -> BattleRole
+ 0, // 3: DBBattleRecord.btype:type_name -> BattleType
+ 1, // 4: DBBattleRecord.ptype:type_name -> PlayType
+ 2, // 5: DBBattleRecord.state:type_name -> BBattleState
+ 5, // 6: DBBattleRecord.redflist:type_name -> DBBattleFormt
+ 5, // 7: DBBattleRecord.buleflist:type_name -> DBBattleFormt
+ 3, // 8: DBBattleRecord.roundresult:type_name -> DBBattleComp
+ 3, // 9: DBBattleRecord.result:type_name -> DBBattleComp
+ 10, // [10:10] is the sub-list for method output_type
+ 10, // [10:10] is the sub-list for method input_type
+ 10, // [10:10] is the sub-list for extension type_name
+ 10, // [10:10] is the sub-list for extension extendee
+ 0, // [0:10] is the sub-list for field type_name
}
func init() { file_battle_battle_db_proto_init() }
@@ -500,7 +636,7 @@ func file_battle_battle_db_proto_init() {
file_hero_hero_db_proto_init()
if !protoimpl.UnsafeEnabled {
file_battle_battle_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DBBattleFormt); i {
+ switch v := v.(*BattleRole); i {
case 0:
return &v.state
case 1:
@@ -512,6 +648,18 @@ func file_battle_battle_db_proto_init() {
}
}
file_battle_battle_db_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DBBattleFormt); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_battle_battle_db_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DBBattleRecord); i {
case 0:
return &v.state
@@ -530,7 +678,7 @@ func file_battle_battle_db_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_battle_battle_db_proto_rawDesc,
NumEnums: 4,
- NumMessages: 2,
+ NumMessages: 4,
NumExtensions: 0,
NumServices: 0,
},