装备叠卡修改

This commit is contained in:
zhaocy 2022-07-19 19:04:59 +08:00
parent 0099f3d01c
commit 2333b055bb
2 changed files with 54 additions and 23 deletions

View File

@ -241,15 +241,58 @@ func (this *ModelHero) getHeroList(uid string) []*pb.DBHero {
return heroes return heroes
} }
//更新装备 // 设置装备属性
func (this *ModelHero) setEquipment(uid, heroId string, equipIds []string) error { func (this *ModelHero) setEquipProperty(hero *pb.DBHero, equip []*pb.DB_Equipment) {
if len(equipIds) == 0 { property := make(map[string]int32) //主属性
addProperty := make(map[string]int32) //副属性
for i, v := range equip {
if v == nil {
continue
}
hero.EquipID[i] = v.Id
//主属性
property[v.MainEntry.AttrName] = v.MainEntry.Value
//附加属性
for _, v := range v.AdverbEntry {
addProperty[v.AttrName] = v.Value
}
}
this.mergeMainProperty(hero.Uid, hero.Uid, property)
this.mergeAddProperty(hero.Uid, hero.Uid, addProperty)
}
//设置装备
func (this *ModelHero) setEquipment(hero *pb.DBHero) (err error) {
if len(hero.EquipID) == 0 {
return nil return nil
} }
update := map[string]interface{}{
"equipID": equipIds, update := make(map[string]interface{})
if hero.IsOverlying {
if hero.SameCount-1 > 0 {
update["sameCount"] = hero.SameCount - 1
}
update["isOverlying"] = false
if err = this.modifyHeroData(hero.Uid, hero.Id, update); err != nil {
this.moduleHero.Errorf("%v", err)
return
}
//创建新卡
newHero, err := this.createOneHero(hero.Uid, hero.HeroID)
if err != nil {
this.moduleHero.Errorf("%v", err)
return err
}
newHero.EquipID = hero.EquipID
hero = newHero
return this.modifyHeroData(newHero.Uid, newHero.Id, update)
} else {
update["equipID"] = hero.EquipID
} }
return this.moduleHero.modelHero.modifyHeroData(uid, heroId, update)
return this.modifyHeroData(hero.Uid, hero.Id, update)
} }
//合并属性即属性值累加 //合并属性即属性值累加

View File

@ -59,28 +59,16 @@ func (this *Hero) GetHero(uid, heroId string) (*pb.DBHero, pb.ErrorCode) {
//佩戴装备 //佩戴装备
func (this *Hero) UpdateEquipment(hero *pb.DBHero, equip []*pb.DB_Equipment) (code pb.ErrorCode) { func (this *Hero) UpdateEquipment(hero *pb.DBHero, equip []*pb.DB_Equipment) (code pb.ErrorCode) {
equipIds := make([]string, 6) if hero == nil {
property := make(map[string]int32) //主属性 code = pb.ErrorCode_HeroNoExist
addProperty := make(map[string]int32) //副属性 return
for i, v := range equip {
if v == nil {
continue
}
equipIds[i] = v.Id
//主属性
property[v.MainEntry.AttrName] = v.MainEntry.Value
//附加属性
for _, v := range v.AdverbEntry {
addProperty[v.AttrName] = v.Value
}
} }
this.modelHero.mergeMainProperty(hero.Uid, hero.Id, property) if err := this.modelHero.setEquipment(hero); err != nil {
this.modelHero.mergeAddProperty(hero.Uid, hero.Id, addProperty)
if err := this.modelHero.setEquipment(hero.Uid, hero.Id, equipIds); err != nil {
code = pb.ErrorCode_HeroEquipUpdate code = pb.ErrorCode_HeroEquipUpdate
return return
} }
this.modelHero.setEquipProperty(hero, equip)
return return
} }