Blame view

src/models/Hero.lua 3.1 KB
0a07bdd9   zhouahaihai   角色升级 。gm
1
2
  local Hero = class("Hero", require("shared.ModelBase"))
  
8c74292c   zhouahaihai   增加item 以及 角色突破
3
4
5
  local HeroPlugin = import(".HeroPlugin")
  HeroPlugin.bind(Hero)
  
0a07bdd9   zhouahaihai   角色升级 。gm
6
  Hero.schema = {
0a07bdd9   zhouahaihai   角色升级 。gm
7
8
  	id 			= {"number"},
  	type 		= {"number", 0},
87cc3a35   zhengshouren   餐厅建筑升级逻辑
9
10
  	level		= {"number", 1},		-- 等级
  	breakL		= {"number", 0},		-- 突破等级
b96f8839   gaofengduan   觉醒初始等级为 1
11
  	wakeL		= {"number", 1},		-- 觉醒等级
87cc3a35   zhengshouren   餐厅建筑升级逻辑
12
13
  	talent		= {"string", ""},		-- 0=阶段 1=1 2=1 3=1 4=1 四个天赋当前阶段的等级  阶段默认为1  等级默认为0
  	battleV		= {"number", 0},		-- 保存战斗力
14f1591b   zhouhaihai   删除好感度相关
14
15
  	-- loveExp		= {"number", 0},		--好感度经验
  	-- loveL		= {"number", 0},		--好感度等级
4ea1b5ac   zhouhaihai   穿戴零件
16
17
  	equip       = {"string",""},        --装备 type=level
  	rune       = {"string",""},        --零件 type=id
0a07bdd9   zhouahaihai   角色升级 。gm
18
19
  }
  
0a07bdd9   zhouahaihai   角色升级 。gm
20
21
  function Hero:ctor( properties )
  	Hero.super.ctor(self, properties)
0a07bdd9   zhouahaihai   角色升级 。gm
22
23
24
  end
  
  function Hero:notifyUpdateProperty(field, newValue, oldValue)
87cc3a35   zhengshouren   餐厅建筑升级逻辑
25
  	local datas = {
ee999bde   zhouhaihai   零件优化
26
27
28
29
30
31
32
33
  		id = self:getProperty("id"),
  		datas = {
  			{
  				key = field,
  				newValue = newValue,
  				oldValue = oldValue,
  			}
  		}
a43410e1   zhengshouren   整理格式,使用tab替代空格
34
  	}
87cc3a35   zhengshouren   餐厅建筑升级逻辑
35
  	self:notifyUpdateProperties(datas)
0a07bdd9   zhouahaihai   角色升级 。gm
36
37
38
  end
  
  function Hero:notifyUpdateProperties(params)
a43410e1   zhengshouren   整理格式,使用tab替代空格
39
40
41
42
  	local updateData = {
  		id = self:getProperty("id"),
  		datas = params
  	}
a43410e1   zhengshouren   整理格式,使用tab替代空格
43
  	SendPacket(actionCodes.Hero_updateProperty, MsgPack.pack(updateData))
0a07bdd9   zhouahaihai   角色升级 。gm
44
45
  end
  
c7ecb87f   zhouhaihai   添加 测试账号 方法
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
  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
68
  function Hero:updateProperty(params)
a43410e1   zhengshouren   整理格式,使用tab替代空格
69
70
71
72
73
74
75
76
77
78
  	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
79
  
f2fa488d   wangyujie   删除skin相关
80
  	local check = {level = true, breakL = true, wakeL = true, talent = true, loveL = true, equip = true, rune = true}
a43410e1   zhengshouren   整理格式,使用tab替代空格
81
82
83
84
85
86
87
  	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
88
  
a43410e1   zhengshouren   整理格式,使用tab替代空格
89
  	self:notifyUpdateProperties(datas)
0a07bdd9   zhouahaihai   角色升级 。gm
90
91
92
93
94
95
  end
  
  function Hero:data()
  	return {
  		id = self:getProperty("id"),
  		type = self:getProperty("type"),
a43410e1   zhengshouren   整理格式,使用tab替代空格
96
97
98
  		level = self:getProperty("level"),
  		breakL = self:getProperty("breakL"),
  		wakeL = self:getProperty("wakeL"),
a43410e1   zhengshouren   整理格式,使用tab替代空格
99
100
  		talent  = self:getProperty("talent"),
  		battleV = self:getProperty("battleV"),
14f1591b   zhouhaihai   删除好感度相关
101
102
  		-- loveExp = self:getProperty("loveExp"),
  		-- loveL = self:getProperty("loveL"),
24d77701   gaofengduan   fix equip
103
104
  		equip = self:getProperty("equip"),
  		rune = self:getProperty("rune"),
0a07bdd9   zhouahaihai   角色升级 。gm
105
106
107
  	}
  end
  
15cba0bf   zhouhaihai   修改天赋升级消耗
108
  function Hero:getCamp()
e3c3a4f5   zhouhaihai   bug
109
      return csvdb["unitCsv"][self:getProperty("type")].camp
1c35c4cf   gaofengduan   fix hero awake
110
111
  end
  
0a07bdd9   zhouahaihai   角色升级 。gm
112
  return Hero