You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
130 lines
3.8 KiB
Lua
130 lines
3.8 KiB
Lua
local skynet = require "skynet"
|
|
local cjson = require "cjson"
|
|
local equipmentlogic = require "equipmentlogic"
|
|
local mqhelper = require "mqhelper"
|
|
local settings = require "settings"
|
|
require "functions"
|
|
local equipmentmodel = class(equipmentmodel)
|
|
|
|
|
|
local KYES = {weapon=1, cloth=2, head=3, horse=4}
|
|
|
|
function equipmentmodel:ctor(heromodel, heroid, tp, data)
|
|
self.heromodel = heromodel
|
|
self.heroid = heroid
|
|
self.tp = tp
|
|
self.type = KYES[tp]
|
|
data = data or {}
|
|
self.lv = data.lv or 1
|
|
self.incr_val = data.incr_val or 0--属性额外增加数值
|
|
self.pos1 = {open_status=0, lock_status=0, attr_id=0, prize_ratio=0, attr_ratio=0}
|
|
self.pos2 = {open_status=0, lock_status=0, attr_id=0, prize_ratio=0, attr_ratio=0}
|
|
self.pos3 = {open_status=0, lock_status=0, attr_id=0, prize_ratio=0, attr_ratio=0}
|
|
self.pos4 = {open_status=0, lock_status=0, attr_id=0, prize_ratio=0, attr_ratio=0}
|
|
self.pos5 = {open_status=0, lock_status=0, attr_id=0, prize_ratio=0, attr_ratio=0}
|
|
end
|
|
|
|
|
|
function equipmentmodel:getid()
|
|
return self.id
|
|
end
|
|
|
|
function equipmentmodel:getlv()
|
|
return self.lv
|
|
end
|
|
|
|
function equipmentmodel:calsetnum(t)
|
|
table.sort(t)
|
|
local t1 ={}
|
|
for _,v in pairs(t) do
|
|
if t1[v] == nil then
|
|
t1[v] = 1
|
|
else
|
|
t1[v] = t1[v] + 1
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
function equipmentmodel:calsetattr(stage)
|
|
local eqps = self.heromodel:getequipment(self.heroid)
|
|
local n = 0
|
|
for k,v in pairs(eqps) do
|
|
if v:getcolor() == stage then
|
|
n = n + 1
|
|
end
|
|
end
|
|
return equipmentlogic.getsetattr(stage, n)
|
|
end
|
|
|
|
function equipmentmodel:serialize()
|
|
local info = {}
|
|
local color = equipmentlogic.getcolor(self.lv)
|
|
info.id = equipmentlogic.getid(color, self.type)
|
|
info.lv = self.lv
|
|
info.type = self.type
|
|
info.atk = self:getatk()
|
|
info.hp = self:gethp()
|
|
info.def = self:getdef()
|
|
info.color = color
|
|
info.setattr = self:calsetattr(info.color) -- 套装属性
|
|
return info
|
|
end
|
|
|
|
--保存数据
|
|
function equipmentmodel:save2serialize()
|
|
local info = {}
|
|
info.lv = self.lv
|
|
info.incr_val = self.incr_val or 0--属性额外增加数值
|
|
-- info.pos1 = {open_status=0, lock_status=0, attr_id=0, prize_ratio=0, attr_ratio=0}
|
|
-- info.pos2 = {open_status=0, lock_status=0, attr_id=0, prize_ratio=0, attr_ratio=0}
|
|
-- info.pos3 = {open_status=0, lock_status=0, attr_id=0, prize_ratio=0, attr_ratio=0}
|
|
-- info.pos4 = {open_status=0, lock_status=0, attr_id=0, prize_ratio=0, attr_ratio=0}
|
|
-- info.pos5 = {open_status=0, lock_status=0, attr_id=0, prize_ratio=0, attr_ratio=0}
|
|
return info
|
|
end
|
|
|
|
function equipmentmodel:getcolor()
|
|
return equipmentlogic.getcolor(self.lv)
|
|
end
|
|
|
|
function equipmentmodel:getatk()
|
|
return equipmentlogic.getatk(self.tp, self.lv)
|
|
end
|
|
|
|
function equipmentmodel:getdef()
|
|
return equipmentlogic.getdef(self.tp, self.lv)
|
|
end
|
|
|
|
|
|
function equipmentmodel:gethp()
|
|
return equipmentlogic.gethp(self.tp, self.lv)
|
|
end
|
|
|
|
|
|
function equipmentmodel:getspeed()
|
|
return equipmentlogic.getspeed(self.tp, self.lv)
|
|
end
|
|
|
|
|
|
function equipmentmodel:lvup(lv)
|
|
self.lv = self.lv + lv
|
|
self.heromodel:save(self.heroid)
|
|
end
|
|
|
|
function equipmentmodel:setlv(lv)
|
|
self.lv = lv
|
|
self.heromodel:save(self.heroid)
|
|
end
|
|
|
|
function equipmentmodel:reborn()
|
|
self.lv = 1
|
|
self.heromodel:save(self.heroid)
|
|
end
|
|
|
|
function equipmentmodel:calcurlvusejingtie()
|
|
return equipmentlogic.calcurlvusejingtie(self.lv)
|
|
end
|
|
|
|
return equipmentmodel
|