123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- ---@class KLLevelRewardItem:UIKmlLuaPanelBase
- ---@field view KLLevelRewardItemView
- local KLLevelRewardItem = class(UIKmlLuaPanelBase)
- local this =KLLevelRewardItem
- --等级奖励的一条
- ---创建时调用一次
- function this:Init()
- --道具奖励列表
- GUI:DataListInitData(self.view.RewardItemDatalist, function()
- return self:RewardItemCountFunc()
- end, function(realIndex)
- return self:RewardItemGetFunc(realIndex)
- end, function(realIndex, kmlcontrol)
- return self:RewardItemInitFunc(realIndex, kmlcontrol)
- end, function(realIndex, kmlcontrol)
- return self:RewardItemUpdateFunc(realIndex, kmlcontrol)
- end)
- self.Reward_Item_all_item = {}
- end
- --region 道具奖励列表
- function this:RewardItemCountFunc()
- return #self.allItemData
- end
- function this:RewardItemGetFunc(realIndex)
- local itemData = self.allItemData[realIndex + 1]
- local item = GUI:UIPanel_Open("dev/outui/LevelReward/Item/KLLevelRewardItem/KLLevelRewardItemItem",self.view.RewardItemDatalist,self,itemData,true)
- self.Reward_Item_all_item[realIndex + 1] = item
- return item.view.root
- end
- function this:RewardItemInitFunc(realIndex, kmlcontrol)
- end
- function this:RewardItemUpdateFunc(realIndex, kmlcontrol)
- local itemData = self.allItemData[realIndex + 1]
- self.Reward_Item_all_item[realIndex + 1]:RefreshItem(itemData)
- end
- function this:RefreshItemList()
- if self.args then
- self.allItemData = {}
- for _,item in ipairs(self.args.basicItem) do
- local data = {}
- data.id = item[1]
- data.count = item[2]
- data.specialTips = nil
- table.insert(self.allItemData,data)
- end
- local specialData = {}
- specialData.id = self.args.specialItem[1]
- specialData.count = self.args.specialItem[2]
- specialData.specialTips = self.args.specialTips
- table.insert(self.allItemData,specialData)
- GUI:DataListUpdateData(self.view.RewardItemDatalist,_,function()
- self:RefreshShowType(self.showType)
- end)
- end
- end
- --endregion 道具奖励列表
- ---注册UI事件和服务器消息
- function this:RegistEvents()
- GUI:AddOnClickEvent(self.view.GetBtn, self, self.GetBtn)
- end
- function this:GetBtn()
- if self.showType == OpenServiceLevelReward_ShowType.GetNormal or self.showType == OpenServiceLevelReward_ShowType.GetSpecial or self.showType == OpenServiceLevelReward_ShowType.GetSpecialOnly then
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_RECEIVE_LEVEL_REWARD,{id=self.args.id})
- elseif self.showType == OpenServiceLevelReward_ShowType.SpecialGoto then
- GUI:UIPanel_Close("dev/outui/MainActivity/Panel/KLMainActivity/KLMainActivityPanel")
- GUI:UIPanel_Open("dev/outui/VIP/Panel/KLNewVIPMain/KLNewVIPMainPanel")
- SL.HideMainPanel()
- else
- SL:TipMessage( "不满足领取条件",1, NoticeType.NoticeMid)
- end
- end
- ---界面显示时调用一次
- function this:Show()
- end
- ---创建或者刷新界面数据时调用
- function this:Refresh()
- --- @param self.args cfg_activity_levelUp_column
- if self.args then
- local playerLevel = SL:GetMetaValue(EMetaVarGetKey.LEVEL)
- if playerLevel < self.args.level then
- GUI:Text_setString(self.view.levelText,string.format("等级达到<color=#FF5047>%d级</color>",self.args.level))
- GUI:setVisible(self.view.needLevelText,true)
- GUI:Text_setString(self.view.needLevelText,string.format("还差<color=#FF5047>%d</color>级可领取",self.args.level-playerLevel))
- else
- GUI:Text_setString(self.view.levelText,string.format("等级达到<color=#5DE367>%d级</color>",self.args.level))
- GUI:setVisible(self.view.needLevelText,false)
- end
- self:RefreshItemList()
- end
- end
- function this:RefreshItem(args)
- self.args = args
- self:Refresh()
- end
- function this:RefreshShowType(showType)
- self.showType = showType
- if showType == OpenServiceLevelReward_ShowType.GetNormal then
- GUI:setVisible(self.view.TipsTex,false)
- GUI:setVisible(self.view.GetBtn,true)
- GUI:setVisible(self.view.haveGet,false)
- GUI:setVisible(self.view.RedDot,true)
- GUI:Button_setTitleText(self.view.GetBtn,"领取奖励")
- if not string.isNullOrEmpty(self.args.Places) then
- GUI:setVisible(self.view.TipsTex,true)
- self:ShowTipsCount()
- GUI:setPositionX(self.view.TipsTex,194)
- end
- elseif showType == OpenServiceLevelReward_ShowType.GetSpecial then
- GUI:setVisible(self.view.TipsTex,false)
- GUI:setVisible(self.view.GetBtn,true)
- GUI:setVisible(self.view.haveGet,false)
- GUI:setVisible(self.view.RedDot,true)
- GUI:Button_setTitleText(self.view.GetBtn,"领取奖励")
- if not string.isNullOrEmpty(self.args.Places) then
- GUI:setVisible(self.view.TipsTex,true)
- self:ShowTipsCount()
- GUI:setPositionX(self.view.TipsTex,194)
- end
- elseif showType == OpenServiceLevelReward_ShowType.GetSpecialOnly then
- GUI:setVisible(self.view.TipsTex,false)
- GUI:setVisible(self.view.GetBtn,true)
- GUI:setVisible(self.view.haveGet,false)
- GUI:setVisible(self.view.RedDot,true)
- GUI:Button_setTitleText(self.view.GetBtn,"领取奖励")
- if not string.isNullOrEmpty(self.args.Places) then
- GUI:setVisible(self.view.TipsTex,true)
- self:ShowTipsCount()
- GUI:setPositionX(self.view.TipsTex,194)
- end
- elseif showType == OpenServiceLevelReward_ShowType.SpecialGoto then
- GUI:setVisible(self.view.TipsTex,false)
- GUI:setVisible(self.view.GetBtn,true)
- GUI:setVisible(self.view.haveGet,false)
- GUI:setVisible(self.view.RedDot,false)
- GUI:Button_setTitleText(self.view.GetBtn,self.args.specialButton)
- if not string.isNullOrEmpty(self.args.Places) then
- GUI:setVisible(self.view.TipsTex,true)
- self:ShowTipsCount()
- GUI:setPositionX(self.view.TipsTex,194)
- end
- elseif showType == OpenServiceLevelReward_ShowType.HaveGotten then
- GUI:setVisible(self.view.TipsTex,false)
- GUI:Text_setString(self.view.TipsTex,"已领取")
- GUI:setVisible(self.view.GetBtn,false)
- GUI:setVisible(self.view.haveGet,true)
- --GUI:setPositionX(self.view.TipsTex,316)
- elseif showType == OpenServiceLevelReward_ShowType.ServerCount then
- GUI:setVisible(self.view.TipsTex,true)
- GUI:setVisible(self.view.GetBtn,false)
- GUI:setVisible(self.view.haveGet,false)
- self:ShowTipsCount()
- GUI:setPositionX(self.view.TipsTex,316)
- elseif showType == OpenServiceLevelReward_ShowType.LevelNotEnough then
- GUI:setVisible(self.view.TipsTex,false)
- GUI:setVisible(self.view.GetBtn,false)
- GUI:setVisible(self.view.haveGet,false)
- end
- --刷新道具显示
- for _,item in ipairs(self.Reward_Item_all_item) do
- item:RefreshShowType(showType)
- end
- end
- function this:ShowTipsCount()
- local totalNum = tonumber(self.args.Places)
- local haveNum = 0
- if InfoManager.openServiceLevelRewardInfo.serverInfo[self.args.id] then
- haveNum = InfoManager.openServiceLevelRewardInfo.serverInfo[self.args.id]
- end
- local leftNum = totalNum - haveNum
- if leftNum < totalNum / 2 then
- GUI:Text_setString(self.view.TipsTex,string.format("全服限量:<color=#ff2323>%d</color>/%d",leftNum,totalNum))
- else
- GUI:Text_setString(self.view.TipsTex,string.format("全服限量:%d/%d",leftNum,totalNum))
- end
- end
- function this:Close()
- end
- return this
|