123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- ---@class KLLevelRewardPanel:UIKmlLuaPanelBase
- ---@field view KLLevelRewardPanelView
- local KLLevelRewardPanel = class(UIKmlLuaPanelBase)
- local this =KLLevelRewardPanel
- --等级奖励面板
- ---创建时调用一次
- function this:Init()
- --上方等级奖励列表
- GUI:DataListInitData(self.view.RewardDatalist, function()
- return self:RewardListCountFunc()
- end, function(realIndex)
- return self:RewardListGetFunc(realIndex)
- end, function(realIndex, kmlcontrol)
- return self:RewardListInitFunc(realIndex, kmlcontrol)
- end, function(realIndex, kmlcontrol)
- return self:RewardListUpdateFunc(realIndex, kmlcontrol)
- end)
- self.Reward_List_all_item = {}
- end
- --region 上方等级奖励列表
- function this:RewardListCountFunc()
- return #self.allLevelData
- end
- function this:RewardListGetFunc(realIndex)
- local cfgData = self.allLevelData[realIndex + 1]
- local item = GUI:UIPanel_Open("dev/outui/LevelReward/Item/KLLevelReward/KLLevelRewardItem",self.view.RewardDatalist,self,cfgData,true)
- self.Reward_List_all_item[realIndex + 1] = item
- return item.view.root
- end
- function this:RewardListInitFunc(realIndex, kmlcontrol)
- end
- function this:RewardListUpdateFunc(realIndex, kmlcontrol)
- local cfgData = self.allLevelData[realIndex + 1]
- self.Reward_List_all_item[realIndex + 1]:RefreshItem(cfgData)
- end
- --endregion 上方等级奖励列表
- ---注册UI事件和服务器消息
- function this:RegistEvents()
- SL:RegisterLUAEvent(LUA_EVENT_OPENSERVICE_LEVEL_REWARD_CHANGE, self.LUA_EVENT_OPENSERVICE_LEVEL_REWARD_CHANGE, self)
- end
- function this:LUA_EVENT_OPENSERVICE_LEVEL_REWARD_CHANGE()
- for index,item in pairs(self.Reward_List_all_item) do
- local id = item.args.id
- if InfoManager.openServiceLevelRewardInfo.ShowTypeInfo[id] then
- item:RefreshShowType(InfoManager.openServiceLevelRewardInfo.ShowTypeInfo[id])
- else
- item:RefreshShowType(OpenServiceLevelReward_ShowType.LevelNotEnough)
- end
- end
- local lastId = self.bottomRewardData.id
- if InfoManager.openServiceLevelRewardInfo.ShowTypeInfo[lastId] then
- self.bottom_Reward_item:RefreshShowType(InfoManager.openServiceLevelRewardInfo.ShowTypeInfo[lastId])
- else
- self.bottom_Reward_item:RefreshShowType(OpenServiceLevelReward_ShowType.LevelNotEnough)
- end
- end
- ---界面显示时调用一次
- function this:Show()
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_PERSONAL_LEVEL_REWARD_INFO)
- self:RefreshTimeText()
- end
- ---创建或者刷新界面数据时调用
- function this:Refresh()
- if not self.allLevelData then
- self.allLevelData = {}
- local cfgs = SL:GetConfigTable("cfg_activity_levelUp")
- for k,v in ipairs(cfgs) do
- if k < #cfgs then
- table.insert(self.allLevelData,v)
- else
- self.bottomRewardData = v
- end
- end
- GUI:DataListUpdateData(self.view.RewardDatalist,_,function()
- self:LUA_EVENT_OPENSERVICE_LEVEL_REWARD_CHANGE()
- end)
- self.bottom_Reward_item = GUI:UIPanel_Open("dev/outui/LevelReward/Item/KLLevelReward/KLLevelRewardItem",self.view.LastRewardItem,self,self.bottomRewardData,true)
- GUI:Image_loadTexture(self.bottom_Reward_item.view.bg,"bg_openreward","Atlas/QJ5_LevelRewardPanel.spriteatlas")
- else
- GUI:DataListUpdateData(self.view.RewardDatalist,_,function()
- self:LUA_EVENT_OPENSERVICE_LEVEL_REWARD_CHANGE()
- end)
- self.bottom_Reward_item:RefreshItem(self.bottomRewardData)
- end
-
- end
- function this:RefreshTimeText()
- if not self.timerTime then
- local isbeforerefresh, differenceTime = self:GetServerOpendifferenceTime()
- local tabRankingConfig = SL:GetConfig("sub_mainActivity", 7)
- local serverTime = Time.GetServerTime()
- local outTimeTbl = ConditionManager.GetConditionParams(tabRankingConfig.showCondition)
- local enterRoleRes = SL:GetEnterRoleRes()
- local endTime = (tonumber(outTimeTbl[2])) * 86400000 + enterRoleRes.openServerTime
- local diff = endTime - serverTime - differenceTime * 1000
- if isbeforerefresh then
- diff = endTime - serverTime + differenceTime * 1000
- end
- self.timerTime = diff / 1000
- if self.timerTime <= 0 then
- GUI:setVisible(self.view.timeTitle,false)
- else
- GUI:setVisible(self.view.timeTitle,true)
- GUI:SetControl_time(self.view.timerText, self.timerTime)
- end
- end
- end
- function this:GetServerOpendifferenceTime()
- if SL:GetEnterRoleRes() == nil then
- return -1
- end
- local openTime = Time.FormatTimeYMDHMS(SL:GetEnterRoleRes().openServerTime / 1000)
- local hour = tonumber(string.sub(openTime, 12, 13))
- local minute = tonumber(string.sub(openTime, 15, 16))
- local second = tonumber(string.sub(openTime, 18, 19))
- local differenceTime = 0 --刷新差值
- local refreshTime = 5 --刷新时间5点改为0点
- local isbeforerefresh = hour < refreshTime
- differenceTime = hour * 3600 + minute * 60 + second
- return isbeforerefresh, differenceTime
- end
- function this:Close()
- SL:UnRegisterLUAEvent(LUA_EVENT_OPENSERVICE_LEVEL_REWARD_CHANGE, self.LUA_EVENT_OPENSERVICE_LEVEL_REWARD_CHANGE, self)
- end
- return this
|