Blame view

src/models/Hero.lua 3.52 KB
a12bfcce   liuzujun   添加英雄表
1
  local Hero = class("Hero", require("shared.ModelBaseMysql"))
0a07bdd9   zhouahaihai   角色升级 。gm
2
  
8c74292c   zhouahaihai   增加item 以及 角色突破
3
4
5
  local HeroPlugin = import(".HeroPlugin")
  HeroPlugin.bind(Hero)
  
0a07bdd9   zhouahaihai   角色升级 。gm
6
  Hero.schema = {
a12bfcce   liuzujun   添加英雄表
7
8
  	id 			= {"number", 0, "pri"},
  	roleid 		= {"number", 0, "index"},
0a07bdd9   zhouahaihai   角色升级 。gm
9
  	type 		= {"number", 0},
87cc3a35   zhengshouren   餐厅建筑升级逻辑
10
11
  	level		= {"number", 1},		-- 等级
  	breakL		= {"number", 0},		-- 突破等级
b96f8839   gaofengduan   觉醒初始等级为 1
12
  	wakeL		= {"number", 1},		-- 觉醒等级
87cc3a35   zhengshouren   餐厅建筑升级逻辑
13
14
  	talent		= {"string", ""},		-- 0=阶段 1=1 2=1 3=1 4=1 四个天赋当前阶段的等级  阶段默认为1  等级默认为0
  	battleV		= {"number", 0},		-- 保存战斗力
14f1591b   zhouhaihai   删除好感度相关
15
16
  	-- loveExp		= {"number", 0},		--好感度经验
  	-- loveL		= {"number", 0},		--好感度等级
4ea1b5ac   zhouhaihai   穿戴零件
17
18
  	equip       = {"string",""},        --装备 type=level
  	rune       = {"string",""},        --零件 type=id
96d591f7   liuzujun   天赋升级修改,增加英雄信赖
19
  	faith	   = {"number", 0},			-- 信赖
0a07bdd9   zhouahaihai   角色升级 。gm
20
21
  }
  
0a07bdd9   zhouahaihai   角色升级 。gm
22
23
  function Hero:ctor( properties )
  	Hero.super.ctor(self, properties)
0a07bdd9   zhouahaihai   角色升级 。gm
24
25
26
  end
  
  function Hero:notifyUpdateProperty(field, newValue, oldValue)
87cc3a35   zhengshouren   餐厅建筑升级逻辑
27
  	local datas = {
ee999bde   zhouhaihai   零件优化
28
29
30
31
32
33
34
35
  		id = self:getProperty("id"),
  		datas = {
  			{
  				key = field,
  				newValue = newValue,
  				oldValue = oldValue,
  			}
  		}
a43410e1   zhengshouren   整理格式,使用tab替代空格
36
  	}
87cc3a35   zhengshouren   餐厅建筑升级逻辑
37
  	self:notifyUpdateProperties(datas)
0a07bdd9   zhouahaihai   角色升级 。gm
38
39
  end
  
a12bfcce   liuzujun   添加英雄表
40
41
42
43
  function Hero:getSimpleHeroId()
  	return self:getProperty("id") % (self:getProperty("roleid") * MAX_HERO_NUM)
  end
  
0a07bdd9   zhouahaihai   角色升级 。gm
44
  function Hero:notifyUpdateProperties(params)
a43410e1   zhengshouren   整理格式,使用tab替代空格
45
  	local updateData = {
a12bfcce   liuzujun   添加英雄表
46
  		id = self:getSimpleHeroId(),
a43410e1   zhengshouren   整理格式,使用tab替代空格
47
48
  		datas = params
  	}
a43410e1   zhengshouren   整理格式,使用tab替代空格
49
  	SendPacket(actionCodes.Hero_updateProperty, MsgPack.pack(updateData))
0a07bdd9   zhouahaihai   角色升级 。gm
50
51
  end
  
c7ecb87f   zhouhaihai   添加 测试账号 方法
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
  function Hero:updateProperties(params, notNotify)
  	self:setProperties(params)
  
  	local check = {level = true, breakL = true, wakeL = true, talent = true, loveL = true, equip = true, rune = true}
  	local datas = {}
  	local updateBV = false
  	for k , v in pairs(params) do
  		if check[k] then updateBV = true end
  		table.insert(datas, {key = k, newValue = self:getProperty(k)})
  	end
  	if updateBV then
  		local orginValue = self:getProperty("battleV")
  		local curValue = self:saveBattleValue()
  		if orginValue ~= curValue then
  			table.insert(datas, { key = "battleV", newValue = curValue })
  		end
  	end
  	if not notNotify then
  		self:notifyUpdateProperties(datas)
  	end
  end
  
0a07bdd9   zhouahaihai   角色升级 。gm
74
  function Hero:updateProperty(params)
a43410e1   zhengshouren   整理格式,使用tab替代空格
75
76
77
78
79
80
81
82
83
84
  	if not params.field or (not params.delta and not params.value) then
  		return
  	end
  	if params.delta then
  		self:incrProperty(params.field, params.delta)
  	elseif params.value then
  		self:setProperty(params.field, params.value)
  	end
  	local datas = {}
  	table.insert(datas, {key = params.field, newValue = self:getProperty(params.field)})
0a07bdd9   zhouahaihai   角色升级 。gm
85
  
f2fa488d   wangyujie   删除skin相关
86
  	local check = {level = true, breakL = true, wakeL = true, talent = true, loveL = true, equip = true, rune = true}
a43410e1   zhengshouren   整理格式,使用tab替代空格
87
88
89
90
91
92
93
  	if check[params.field] then
  		local orginValue = self:getProperty("battleV")
  		local curValue = self:saveBattleValue()
  		if orginValue ~= curValue then
  			table.insert(datas, { key = "battleV", newValue = curValue })
  		end
  	end
0a07bdd9   zhouahaihai   角色升级 。gm
94
  
a43410e1   zhengshouren   整理格式,使用tab替代空格
95
  	self:notifyUpdateProperties(datas)
0a07bdd9   zhouahaihai   角色升级 。gm
96
97
98
99
100
101
  end
  
  function Hero:data()
  	return {
  		id = self:getProperty("id"),
  		type = self:getProperty("type"),
a43410e1   zhengshouren   整理格式,使用tab替代空格
102
103
104
  		level = self:getProperty("level"),
  		breakL = self:getProperty("breakL"),
  		wakeL = self:getProperty("wakeL"),
a43410e1   zhengshouren   整理格式,使用tab替代空格
105
106
  		talent  = self:getProperty("talent"),
  		battleV = self:getProperty("battleV"),
14f1591b   zhouhaihai   删除好感度相关
107
108
  		-- loveExp = self:getProperty("loveExp"),
  		-- loveL = self:getProperty("loveL"),
24d77701   gaofengduan   fix equip
109
110
  		equip = self:getProperty("equip"),
  		rune = self:getProperty("rune"),
96d591f7   liuzujun   天赋升级修改,增加英雄信赖
111
  		faith = self:getProperty("faith")
0a07bdd9   zhouahaihai   角色升级 。gm
112
113
114
  	}
  end
  
15cba0bf   zhouhaihai   修改天赋升级消耗
115
  function Hero:getCamp()
e3c3a4f5   zhouhaihai   bug
116
      return csvdb["unitCsv"][self:getProperty("type")].camp
1c35c4cf   gaofengduan   fix hero awake
117
118
  end
  
00bf6029   liuzujun   限时礼包,抽卡ssr广播
119
120
121
122
  function Hero:getRare()
      return csvdb["unitCsv"][self:getProperty("type")].rare
  end
  
16634605   liuzujun   多队挂机,天赋道具合成
123
124
125
126
  function Hero:getPosition()
      return csvdb["unitCsv"][self:getProperty("type")].position
  end
  
0a07bdd9   zhouahaihai   角色升级 。gm
127
  return Hero