52 lines
1.4 KiB
Lua
52 lines
1.4 KiB
Lua
HeroSkinManager = {}
|
|
local this = HeroSkinManager
|
|
this.skinDatas = {}
|
|
function this.Initialize()
|
|
|
|
end
|
|
function this.InitialSkin(msg,index)
|
|
if not index or index == 0 then
|
|
this.skinDatas = {}
|
|
for i = 1, #msg.skinInfo do
|
|
this.skinDatas[msg.skinInfo[i].skinId] = {}
|
|
this.skinDatas[msg.skinInfo[i].skinId].id = msg.skinInfo[i].skinId
|
|
this.skinDatas[msg.skinInfo[i].skinId].overTime = msg.skinInfo[i].overTime
|
|
end
|
|
else
|
|
this.skinDatas[msg.skinInfo.skinId] = {}
|
|
this.skinDatas[msg.skinInfo.skinId].id = msg.skinInfo.skinId
|
|
this.skinDatas[msg.skinInfo.skinId].overTime = msg.skinInfo.overTime
|
|
end
|
|
this.UpdateSkinDatasOverTime()
|
|
end
|
|
|
|
function this.UpdateSkinDatasOverTime()
|
|
if this.timer then
|
|
this.timer:Stop()
|
|
this.timer = nil
|
|
end
|
|
this.timer = Timer.New(function()
|
|
for k,v in pairs(this.skinDatas) do
|
|
if v and v.overTime > 0 then
|
|
v.overTime = v.overTime - 1
|
|
if v.overTime == 0 then
|
|
this.RemoveSkin(v.id)
|
|
end
|
|
end
|
|
end
|
|
end, 1, -1, true)
|
|
this.timer:Start()
|
|
end
|
|
|
|
function this.RemoveSkin(id)
|
|
this.skinDatas[id] = nil
|
|
end
|
|
|
|
function this.IsExist(id)
|
|
if this.skinDatas[id] then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end
|
|
return this |