123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- ---@class KLArcWeapActivityPanel:UIKmlLuaPanelBase
- ---@field view KLArcWeapActivityPanelView
- local KLArcWeapActivityPanel = class(UIKmlLuaPanelBase)
- local this =KLArcWeapActivityPanel
- function this:AsyncLoadUI()
- end
- ---创建时调用一次
- function this:Init()
- self.showSmallList = {}
- GUI:DataListInitData(self.view.showInfoList, function()
- return self:GetAllShowGoods()
- end,function()
- end,function()
- end, function(realIndex)
- self:ItemUpdateFun(realIndex)
- end)
- end
- function this:GetAllShowGoods()
- return table.count(self.showSmallList)
- end
- function this:ItemUpdateFun(realIndex)
- local data = self.showSmallList[realIndex + 1]
- local item1 = GUI:GetChildControl(self.view.showInfoList, realIndex, 'item1')
- local txt_count1 = GUI:GetChildControl(self.view.showInfoList, realIndex, 'txt_count1')
- local img_jia1 = GUI:GetChildControl(self.view.showInfoList, realIndex, 'img_jia1')
- local item2 = GUI:GetChildControl(self.view.showInfoList, realIndex, 'item2')
- local txt_count2 = GUI:GetChildControl(self.view.showInfoList, realIndex, 'txt_count2')
- local img_jia2 = GUI:GetChildControl(self.view.showInfoList, realIndex, 'img_jia2')
- local item3 = GUI:GetChildControl(self.view.showInfoList, realIndex, 'item3')
- local txt_count3 = GUI:GetChildControl(self.view.showInfoList, realIndex, 'txt_count3')
- local item4 = GUI:GetChildControl(self.view.showInfoList, realIndex, 'item4')
- local txt_count4 = GUI:GetChildControl(self.view.showInfoList, realIndex, 'txt_count4')
- local btn_GoOrGet = GUI:GetChildControl(self.view.showInfoList, realIndex, 'btn_GoOrGet')
- local txt_alreadyGet = GUI:GetChildControl(self.view.showInfoList, realIndex, 'txt_alreadyGet')
- --获取所有消耗道具
- local reward = data.weapCdgData.angelWeaponTask
- local tmpReward = data.itemList
- local showReward = {}
- for _, v1 in pairs(reward) do
- local cfg = {}
- cfg.itemId = v1[1]
- cfg.needCount = v1[2]
- cfg.ownerCount = 0
- for k, v2 in pairs(tmpReward) do
- if v1[1] == tonumber(k) then
- cfg.ownerCount = v2
- end
- end
- table.insert(showReward,cfg)
- end
- item1.kmlControl:HideAllChilds()
- local itemData1 = showReward[1]
- local data1 = {width = "70",height = "70",itemid = itemData1.itemId,mfixsize = "70,70",itemcount = nil,bgtype = "0",raycast="1",}
- self.item1 = GUI:Item_Create(item1, data1)
- GUI:AddOnClickEvent(self.item1, self, function()
- SL:OpenTips(nil, itemData1.itemId)
- end)
- item4.kmlControl:HideAllChilds()
- local itemData4 = data.weapCdgData.angelWeaponReward[1] --奖励展示
- local data4 = {width = "70",height = "70",itemid = itemData4[1],mfixsize = "70,70",itemcount = nil,bgtype = "0",raycast="1",}
- self.item4 = GUI:Item_Create(item4, data4)
- GUI:AddOnClickEvent(self.item4, self, function()
- SL:OpenTips(nil, itemData4[1])
- end)
- local color1 = itemData1.ownerCount >= itemData1.needCount and EColor[EGradColor.green] or EColor[EGradColor.red]
- local str1 = string.format("<color=%s>%s</color>/%s", color1, itemData1.ownerCount, itemData1.needCount)
- GUI:Text_setString(txt_count1, str1)
- GUI:Text_setString(txt_count4, tostring(itemData4[2]))
- GUI:SetActive(img_jia1,false)
- GUI:SetActive(item2,false)
- GUI:SetActive(txt_count2,false)
- if table.count(showReward) >= 2 then
- GUI:SetActive(img_jia1,true)
- GUI:SetActive(item2,true)
- GUI:SetActive(txt_count2,true)
- item2.kmlControl:HideAllChilds()
- local itemData2 = showReward[2]
- local data2 = {width = "70",height = "70",itemid = itemData2.itemId,mfixsize = "70,70",itemcount = nil,bgtype = "0",raycast="1",}
- self.item2 = GUI:Item_Create(item2, data2)
- GUI:AddOnClickEvent(self.item2, self, function()
- SL:OpenTips(nil, itemData2.itemId)
- end)
- local color2 = itemData2.ownerCount >= itemData2.needCount and EColor[EGradColor.green] or EColor[EGradColor.red]
- local str2 = string.format("<color=%s>%s</color>/%s", color2, itemData2.ownerCount, itemData2.needCount)
- GUI:Text_setString(txt_count2, str2)
- end
- GUI:SetActive(img_jia2,false)
- GUI:SetActive(item3,false)
- GUI:SetActive(txt_count3,false)
- if table.count(showReward) >= 3 then
- GUI:SetActive(img_jia2,true)
- GUI:SetActive(item3,true)
- GUI:SetActive(txt_count3,true)
- item3.kmlControl:HideAllChilds()
- local itemData3 = showReward[3]
- local data3 = {width = "70",height = "70",itemid = itemData3.itemId,mfixsize = "70,70",itemcount = nil,bgtype = "0",raycast="1",}
- self.item3 = GUI:Item_Create(item3, data3)
- GUI:AddOnClickEvent(self.item3, self, function()
- SL:OpenTips(nil, itemData3.itemId)
- end)
- local color3 = itemData3.ownerCount >= itemData3.needCount and EColor[EGradColor.green] or EColor[EGradColor.red]
- local str3 = string.format("<color=%s>%s</color>/%s", color3, itemData3.ownerCount, itemData3.needCount)
- GUI:Text_setString(txt_count3, str3)
- end
- GUI:SetActive(btn_GoOrGet,false)
- GUI:SetActive(txt_alreadyGet,false)
- if data.giftState == E_RechargeState.CanGet then
- GUI:Button_setBright(btn_GoOrGet,true)
- GUI:SetActive(btn_GoOrGet,true)
- GUI:Button_setGrey(btn_GoOrGet,false)
- GUI:Button_setTitleText(btn_GoOrGet, "领取")
- elseif data.giftState == E_RechargeState.NotComplete then
- GUI:Button_setBright(btn_GoOrGet,false)
- GUI:SetActive(btn_GoOrGet,true)
- GUI:Button_setGrey(btn_GoOrGet,true)
- GUI:Button_setTitleText(btn_GoOrGet, "未达成")
- elseif data.giftState == E_RechargeState.AlreadyGet then
- GUI:SetActive(txt_alreadyGet,true)
- end
- GUI:AddOnClickEvent(btn_GoOrGet,self,self.GoOrGetOnClick,{giftState = data.giftState,cfgId = data.weapCdgData.id})
- end
- function this:GoOrGetOnClick(_,eventData)
- if eventData.giftState == E_RechargeState.CanGet then
- --请求领奖
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_RECEIVE_ANGEL_WEAPON_REWARD, {taskId = eventData.cfgId})
- end
- end
- ---注册UI事件和服务器消息
- function this:RegistEvents()
- SL:RegisterLUAEvent(LUA_ARCWEAPON_ACTIVITY_CHANGE, self.RefreshPanelData, self)
- GUI:AddOnClickEvent(self.view.btn_getBigReward,self,self.OnClickGetBigReward)
- end
- function this:OnClickGetBigReward()
- local bigData = InfoManager.arcWeapActivityInfo.arcWeapBigGiftDataTbl[1]
- if bigData.giftState == E_RechargeState.CanGet then
- --请求领奖
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_RECEIVE_ANGEL_WEAPON_REWARD, {taskId = bigData.id})
- end
- end
- function this:RefreshBigTask()
- self:ShowDJSFunc()
- local bigData = InfoManager.arcWeapActivityInfo.arcWeapBigGiftDataTbl[1]
- local itemId = bigData.weapCdgData.angelWeaponReward[1][1]
- local count = bigData.weapCdgData.angelWeaponReward[1][2]
- local data = { width = "70",height = "70",itemid = itemId,mfixsize = "70,70",itemcount = count,bgtype = "0",raycast="1",}
- if self.item then
- GUI:Item_UpdataData(self.item, data)
- else
- self.item = GUI:Item_Create(self.view.model, data)
- end
- GUI:AddOnClickEvent(self.item, self, function()
- SL:OpenTips(nil, itemId)
- end)
- local giftState = bigData.giftState
- if giftState == E_RechargeState.CanGet then
- GUI:Button_setBright(self.view.btn_getBigReward,true)
- GUI:Button_setGrey(self.view.btn_getBigReward,false)
- GUI:Button_setTitleText(self.view.btn_getBigReward, "领取")
- elseif giftState == E_RechargeState.NotComplete then
- GUI:Button_setBright(self.view.btn_getBigReward,false)
- GUI:Button_setGrey(self.view.btn_getBigReward,true)
- GUI:Button_setTitleText(self.view.btn_getBigReward, "未达成")
- elseif giftState == E_RechargeState.AlreadyGet then
- GUI:Button_setBright(self.view.btn_getBigReward,true)
- GUI:Button_setGrey(self.view.btn_getBigReward,true)
- GUI:Button_setTitleText(self.view.btn_getBigReward, "已领取")
- end
- end
- function this:ClearDJSFunc()
- if self.sectimer then
- SL:UnSchedule(self.sectimer)
- self.sectimer = nil
- end
- end
- function this:ShowDJSFunc()
- self:ClearDJSFunc()
- local taskGroup = InfoManager.arcWeapActivityInfo.arcWeapGroup
- local timeTbl = SL:GetConfigMultiKeys("cfg_activity_angelWeaponTime",taskGroup,"taskGroup")
- local endDay = string.split(timeTbl.condition,"&")
- endDay = string.split(endDay[2],"#")
- endDay = tonumber(endDay[2])
- local countdown = InfoManager.mainActivityInfo:ShowActivityDJSFunc(endDay,0)
- self.sectimer = SL:Schedule(self.sectimer, 0, 1, countdown, function()
- countdown = countdown - 1
- if countdown > 0 then
- GUI:SetActive(self.view.txt_showTime,true)
- GUI:Text_setString(self.view.txt_showTime, GUIUtil.FormatTimeDHM(countdown))
- else
- GUI:SetActive(self.view.txt_showTime,false)
- self:ClearDJSFunc()
- GUI:UIPanel_Close("dev/outui/MainActivity/Panel/KLMainActivity/KLMainActivityPanel")
- end
- end)
- end
- function this:RefreshPanelData()
- --刷新大奖任务
- self:RefreshBigTask()
- --刷新穿戴任务
- self.showSmallList = {}
- self.showSmallList = InfoManager.arcWeapActivityInfo.arcWeapSmallGiftDataTbl
- table.sort(self.showSmallList,function(a,b)
- if a.giftState == b.giftState then
- return a.weapCdgData.sortId < b.weapCdgData.sortId
- else
- return a.giftState < b.giftState
- end
- end)
- GUI:DataListUpdateData(self.view.showInfoList)
- end
- ---界面显示时调用一次
- function this:Show()
- end
- ---创建或者刷新界面数据时调用
- function this:Refresh()
- self:RefreshPanelData()
- end
- function this:Close()
- self:ClearDJSFunc()
- end
- return this
|