local Hero = class("Hero", require("shared.ModelBase")) local HeroPlugin = import(".HeroPlugin") HeroPlugin.bind(Hero) Hero.schema = { id = {"number"}, type = {"number", 0}, level = {"number", 1}, -- 等级 breakL = {"number", 0}, -- 突破等级 wakeL = {"number", 1}, -- 觉醒等级 skillL = {"string", ""}, -- 技能等级 1=1 2=1 3=1 talent = {"string", ""}, -- 0=阶段 1=1 2=1 3=1 4=1 四个天赋当前阶段的等级 阶段默认为1 等级默认为0 battleV = {"number", 0}, -- 保存战斗力 loveExp = {"number", 0}, --好感度经验 loveL = {"number", 0}, --好感度等级 equip = {"string",""}, --装备 type=level rune = {"string",""}, --零件 type=id } function Hero:ctor( properties ) Hero.super.ctor(self, properties) end function Hero:notifyUpdateProperty(field, newValue, oldValue) local datas = { id = self:getProperty("id"), datas = { { key = field, newValue = newValue, oldValue = oldValue, } } } self:notifyUpdateProperties(datas) 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, loveL = true, equip = true, rune = 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"), loveExp = self:getProperty("loveExp"), loveL = self:getProperty("loveL"), equip = self:getProperty("equip"), rune = self:getProperty("rune"), } end function Hero:getCamp() return csvdb["unitCsv"][self:getProperty("type")].camp end return Hero