Blame view

models/hero.go 1.12 KB
eb417b0b   zhangqijia   reactor mongo
1
2
3
  package models
  
  import (
17fe96be   zhangqijia   feat: 增加装备相关数据和协议
4
  	"pro2d/common"
8d983031   zhangqijia   loginReq uid -> t...
5
  	"pro2d/common/components"
92256e32   zhangqijia   fix: 结束战斗的协议加上队伍id
6
  	"pro2d/csvdata"
7f269318   zhangqijia   add pb.go; 添加关闭连接...
7
  	"pro2d/pb"
eb417b0b   zhangqijia   reactor mongo
8
9
10
  )
  
  type HeroModel struct {
8d983031   zhangqijia   loginReq uid -> t...
11
  	components.ISchema
23822e2f   zhangqijia   fix: update proto...
12
  	Data       *pb.Hero
02d11cb7   zhangqijia   fix: update 装备脱/戴
13
  	Equipments common.IMapStringNum
eb417b0b   zhangqijia   reactor mongo
14
  }
17fe96be   zhangqijia   feat: 增加装备相关数据和协议
15
  
8d983031   zhangqijia   loginReq uid -> t...
16
  func NewHero(hero *pb.Hero) *HeroModel {
eb417b0b   zhangqijia   reactor mongo
17
  	m := &HeroModel{
17fe96be   zhangqijia   feat: 增加装备相关数据和协议
18
  		ISchema:    NewSchema(hero.Id, hero),
23822e2f   zhangqijia   fix: update proto...
19
  		Data:       hero,
02d11cb7   zhangqijia   fix: update 装备脱/戴
20
  		Equipments: common.StringToMapNum(hero.Equipments),
eb417b0b   zhangqijia   reactor mongo
21
  	}
eb417b0b   zhangqijia   reactor mongo
22
23
  	return m
  }
17fe96be   zhangqijia   feat: 增加装备相关数据和协议
24
  
3cd84ccc   zhangqijia   fix: 裝備位置修改
25
26
27
28
  func (m *HeroModel) DelEquipment(key string) {
  	delete(m.Equipments, key)
  	m.SetProperty("equipments", common.MapNumToString(m.Equipments))
  }
17fe96be   zhangqijia   feat: 增加装备相关数据和协议
29
  
3cd84ccc   zhangqijia   fix: 裝備位置修改
30
31
  func (m *HeroModel) AddEquipment(key string, pos int32) {
  	m.Equipments[key] = pos
02d11cb7   zhangqijia   fix: update 装备脱/戴
32
  	m.SetProperty("equipments", common.MapNumToString(m.Equipments))
17fe96be   zhangqijia   feat: 增加装备相关数据和协议
33
  }
92256e32   zhangqijia   fix: 结束战斗的协议加上队伍id
34
  func (m *HeroModel) UpLevel(exp int32) (int32, int32) {
23822e2f   zhangqijia   fix: update proto...
35
36
  	exp = exp + m.Data.Exp
  	level := m.Data.Level
92256e32   zhangqijia   fix: 结束战斗的协议加上队伍id
37
38
  	oldLevelExp := csvdata.Get().TbHeroLevelExp.Get(level)
  	if oldLevelExp == nil {
b0e5082c   zhangqijia   fix: 英雄升级函数优化
39
  		return level, exp
92256e32   zhangqijia   fix: 结束战斗的协议加上队伍id
40
  	}
b0e5082c   zhangqijia   fix: 英雄升级函数优化
41
42
43
44
45
46
47
  
  	for exp > 0 {
  		if exp >= oldLevelExp.NeedExp {
  			exp = exp - oldLevelExp.NeedExp
  			level++
  		} else {
  			break
92256e32   zhangqijia   fix: 结束战斗的协议加上队伍id
48
49
  		}
  
b0e5082c   zhangqijia   fix: 英雄升级函数优化
50
51
52
53
  		oldLevelExp = csvdata.Get().TbHeroLevelExp.Get(level)
  		if oldLevelExp == nil {
  			return level, exp
  		}
92256e32   zhangqijia   fix: 结束战斗的协议加上队伍id
54
  	}
b0e5082c   zhangqijia   fix: 英雄升级函数优化
55
  
92256e32   zhangqijia   fix: 结束战斗的协议加上队伍id
56
57
  	return level, exp
  }