Blame view

src/models/Hero.lua 2.7 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},
8c74292c   zhouahaihai   增加item 以及 角色突破
9
10
11
      level       = {"number", 1},        -- 等级
      breakL      = {"number", 0},        -- 突破等级
      wakeL       = {"number", 0},        -- 觉醒等级
997cbdfe   zhouahaihai   技能养成
12
      skillL      = {"string", ""},       -- 技能等级 1=1 2=1 3=1
8c74292c   zhouahaihai   增加item 以及 角色突破
13
14
      talent      = {"string", ""},       -- 0=阶段 1=1 2=1 3=1 4=1 四个天赋当前阶段的等级  阶段默认为1  等级默认为0
  	battleV     = {"number", 0},		-- 保存战斗力
6947e382   zhouahaihai   好感度, 皮肤
15
16
17
      loveExp     = {"number", 0},        --好感度经验
      loveL     = {"number", 0},          --好感度等级
      skin     = {"number", 0},          --皮肤 0 、 1、 2、 3 
0a07bdd9   zhouahaihai   角色升级 。gm
18
19
  }
  
0a07bdd9   zhouahaihai   角色升级 。gm
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
  function Hero:ctor( properties )
  	Hero.super.ctor(self, properties)
  end
  
  function Hero:notifyUpdateProperty(field, newValue, oldValue)
      local updateData = {
          id = self:getProperty("id"),
          datas = {
          	{
          		key = field,
          		newValue = newValue,
          		oldValue = oldValue or "",
          	},
      	}
      }
  
      SendPacket(actionCodes.Hero_updateProperty, MsgPack.pack(updateData))
  end
  
  function Hero:notifyUpdateProperties(params)
      local updateData = {
          id = self:getProperty("id"),
          datas = params
      }
  
      SendPacket(actionCodes.Hero_updateProperty, MsgPack.pack(updateData))
  end
  
  function Hero:updateProperty(params)
      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)})
  
6947e382   zhouahaihai   好感度, 皮肤
60
      local check = {level = true, breakL = true, wakeL = true, talent = true, loveL = true, skin = true}
8c74292c   zhouahaihai   增加item 以及 角色突破
61
62
63
64
65
66
67
      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
68
  
8c74292c   zhouahaihai   增加item 以及 角色突破
69
      self:notifyUpdateProperties(datas)
0a07bdd9   zhouahaihai   角色升级 。gm
70
71
72
73
74
75
  end
  
  function Hero:data()
  	return {
  		id = self:getProperty("id"),
  		type = self:getProperty("type"),
8c74292c   zhouahaihai   增加item 以及 角色突破
76
77
78
79
80
          level = self:getProperty("level"),
          breakL = self:getProperty("breakL"),
          wakeL = self:getProperty("wakeL"),
          skillL = self:getProperty("skillL"),
          talent  = self:getProperty("talent"),
6947e382   zhouahaihai   好感度, 皮肤
81
82
83
84
          battleV = self:getProperty("battleV"),
          loveExp = self:getProperty("loveExp"),
          loveL = self:getProperty("loveL"),
  		skin = self:getProperty("skin"),
0a07bdd9   zhouahaihai   角色升级 。gm
85
86
87
88
  	}
  end
  
  return Hero