local Hero = class("Hero", require("shared.ModelBase")) local HeroPlugin = import(".HeroPlugin") HeroPlugin.bind(Hero) Hero.schema = { key = { "string" }, id = {"number"}, type = {"number", 0}, level = {"number", 1}, -- 等级 breakL = {"number", 0}, -- 突破等级 wakeL = {"number", 0}, -- 觉醒等级 skillL = {"string", ""}, -- 技能等级 1=0 2=0 3=0 talent = {"string", ""}, -- 0=阶段 1=1 2=1 3=1 4=1 四个天赋当前阶段的等级 阶段默认为1 等级默认为0 battleV = {"number", 0}, -- 保存战斗力 } Hero.fields = { id = true, type = true, level = true, breakL = true, wakeL = true, skillL = true, talent = true, battleV = true, } 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)}) local check = {level = true, breakL = true, wakeL = true, talent = true} 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 self:notifyUpdateProperties(datas) end function Hero:data() return { id = self:getProperty("id"), type = self:getProperty("type"), level = self:getProperty("level"), breakL = self:getProperty("breakL"), wakeL = self:getProperty("wakeL"), skillL = self:getProperty("skillL"), talent = self:getProperty("talent"), battleV = self:getProperty("battleV"), } end return Hero