2025-06-04 05:12:01 +08:00

150 lines
3.8 KiB
Plaintext

autoImport("BaseCell")
SaveCell = class("SaveCell",BaseCell)
local blue = LuaColor.New(62/255, 88/255, 174/255, 1)
SaveCell.StatusChange = "SaveCell_StatusChange"
function SaveCell:Init()
self:FindObjs()
self:AddCellClickEvent()
self:AddCellDoubleClickEvt()
-- self:AddUnlcokEvt()
self.selected = false
end
function SaveCell:FindObjs()
self.bg = self.gameObject:GetComponent(UIMultiSprite)
self.name = self:FindGO("name"):GetComponent(UILabel)
self.time = self:FindGO("time"):GetComponent(UILabel)
self.date = self:FindGO("date"):GetComponent(UILabel)
self.icon = self:FindGO("icon"):GetComponent(UIMultiSprite)
self.tip = self:FindGO("tip"):GetComponent(UILabel)
self.selection = self:FindGO("selection"):GetComponent(UISprite)
self.selection.gameObject:SetActive(false)
self.rolename = self:FindGO("rolename"):GetComponent(UILabel)
end
function SaveCell:SetData(data)
self.data = data
self.id = data.id
if data.status == 1 then
if data.recordTime == 0 then
self:SetSave()
else
self:SetInfo()
end
else
if data.type == SceneUser2_pb.ESLOT_MONTH_CARD then
self:SetTip()
elseif data.type == SceneUser2_pb.ESLOT_BUY then
self:SetAdd()
end
end
if data.type == SceneUser2_pb.ESLOT_MONTH_CARD
and data.status == 1 then
self:CreateTick()
else
self:ClearTick()
end
end
function SaveCell:CreateTick()
self.timeTick = TimeTickManager.Me():CreateTick(0,1000,self._refreshTime,self)
end
function SaveCell:_refreshTime()
if(self:ObjIsNil(self.gameObject))then
self:ClearTick()
return
end
local leftTime = MultiProfessionSaveProxy.Instance:GetCardExpiration()-ServerTime.CurServerTime()/1000
leftTime = math.max(0,leftTime)
if leftTime == 0 then
self:ClearTick()
MultiProfessionSaveProxy.Instance:UpdateStatus(self.id,0)
MultiProfessionSaveProxy.Instance:SortUserSave()
self:PassEvent(SaveCell.StatusChange)
end
end
function SaveCell:ClearAll()
self.name.gameObject:SetActive(false)
self.date.gameObject:SetActive(false)
self.time.gameObject:SetActive(false)
self.icon.gameObject:SetActive(false)
self.tip.gameObject:SetActive(false)
self.rolename.gameObject:SetActive(false)
end
function SaveCell:SetSave()
self:ClearAll()
self.bg.CurrentState = 0
self.icon.gameObject:SetActive(true)
self.icon.CurrentState = 1
self.icon.color = blue
self.icon:MakePixelPerfect()
end
function SaveCell:SetInfo()
self:ClearAll()
self.bg.CurrentState = 0
local recordtime = os.date("*t", self.data.recordTime)
self.date.text = string.format(ZhString.MultiProfession_SaveDate, recordtime.year, recordtime.month, recordtime.day)
self.time.text = string.format(ZhString.MultiProfession_SaveTime, recordtime.hour, recordtime.min)
self.name.text = self.data.recordName
self.rolename.text = MultiProfessionSaveProxy.Instance:GetRoleName(self.id)
self.date.gameObject:SetActive(true)
self.time.gameObject:SetActive(true)
self.name.gameObject:SetActive(true)
self.rolename.gameObject:SetActive(true)
end
function SaveCell:SetTip()
self:ClearAll()
self.bg.CurrentState = 1
self.tip.text = ZhString.MultiProfession_MonthCardTip
self.tip.gameObject:SetActive(true)
end
function SaveCell:SetAdd()
self:ClearAll()
self.bg.CurrentState = 1
self.icon.gameObject:SetActive(true)
self.icon.CurrentState = 0
self.icon.color = LuaColor.white
self.icon:MakePixelPerfect()
end
function SaveCell:SetSelect()
self.selection.gameObject:SetActive(true)
end
function SaveCell:SetUnselected()
self.selection.gameObject:SetActive(false)
end
function SaveCell:ShowChoose(selectId)
if selectId == self.id then
self:SetSelect()
else
self:SetUnselected()
end
end
function SaveCell:OnExit( )
SaveCell.super.OnExit(self);
end
function SaveCell:ClearTick()
if(self.timeTick)then
TimeTickManager.Me():ClearTick(self)
end
end
function SaveCell:OnDestroy()
self:ClearTick()
end