From c70f8421d3d8b63b0c57ce677807e2ad391372fe Mon Sep 17 00:00:00 2001 From: wangzhenxing Date: Tue, 27 Dec 2022 14:18:35 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=8110=E4=B8=87=E7=9C=9F=E5=85=85=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/Operating/GMSong10WanPanel.lua | 89 ++++++++++++------- 1 file changed, 55 insertions(+), 34 deletions(-) diff --git a/Assets/ManagedResources/~Lua/Modules/Operating/GMSong10WanPanel.lua b/Assets/ManagedResources/~Lua/Modules/Operating/GMSong10WanPanel.lua index b2d2fd7859..2cc0434102 100644 --- a/Assets/ManagedResources/~Lua/Modules/Operating/GMSong10WanPanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/Operating/GMSong10WanPanel.lua @@ -8,6 +8,9 @@ local activityData local allValue=0 local rewardTime=0 local isCanGet=false +local deleteTime=0 +local currShowRed=nil +local rewardNum=0 --初始化组件(用于子类重写) function GMSong10WanPanel:InitComponent() this.spLoader = SpriteLoader.New() @@ -28,7 +31,7 @@ function GMSong10WanPanel:InitComponent() this.scrollView.moveTween.MomentumAmount = 1 this.scrollView.moveTween.Strength = 2 this.itemList={} - + this.timer = nil end --绑定事件(用于子类重写) @@ -42,6 +45,7 @@ function GMSong10WanPanel:BindEvent() UIManager.OpenPanel(UIName.RewardItemPopup, msg, 1,function () isCanGet=false this.getRed:SetActive(false) + deleteTime=0 self:OnShow() end) end) @@ -81,6 +85,7 @@ function GMSong10WanPanel:OnShow() local lastState=-1 local dayList={} if activityData then + local maxId=0 for i = 1,#activityData.mission do local id=activityData.mission[i].missionId if zhenchongConfig[id] then @@ -89,8 +94,6 @@ function GMSong10WanPanel:OnShow() allValue=allValue+aaa.RewardValue if not dayList[aaa.day] then local day={} - --table.insert(missionData,day) - --table.insert(days,aaa.day) day.reward={} table.insert(day.reward,aaa.Reward) dayList[aaa.day]=day @@ -101,6 +104,7 @@ function GMSong10WanPanel:OnShow() dayList[aaa.day].reward.state=state local progress=activityData.mission[i].progress if lastState~=0 and progress>=0 then + maxId=id lineTime=progress if state==0 and rewardTime==0 then rewardTime=aaa.Time @@ -112,14 +116,31 @@ function GMSong10WanPanel:OnShow() lastState=state end end - LogError("#missionData==="..#dayList) - LogError("linetime=="..lineTime) - - + rewardNum=0 + this.timeTxt.text="" this.scrollView:SetData(dayList,function(index, rewardItem) - this:UpdateSingleInfo(rewardItem, dayList[index],index) + this:UpdateSingleInfo(rewardItem, dayList[index],index) end,not false,not false) + this.scrollView:SetIndex(maxId/4) + if deleteTime>0 then + this.timer = Timer.New(function () + --LogError("needTime=="..needTime) + deleteTime= deleteTime-1 + if deleteTime<=0 then + isCanGet=true + this.timeTxt.text = "有可领取奖励" + this.getRed:SetActive(true) + currShowRed:SetActive(true) + this.timer:Stop() + this.timer = nil + else + this.timeTxt.text = string.format("领取倒计时:".."%s",TimeToFelaxible(deleteTime)) + end + end,1,-1,true) + this.timer:Start() + end end + this.getRed:SetActive(isCanGet) this.noGetTxt.text=string.format("未领取:%s元",allValue-activityData.value) end @@ -131,9 +152,14 @@ function this:UpdateSingleInfo(go,data,index) if not this.itemList[go] then this.itemList[go] = {} end + if this.timer then + this.timer:Stop() + this.timer = nil + end for i = 1, #this.itemList[go] do this.itemList[go][i].go.gameObject:SetActive(false) end + for i = 1, #data.reward do if not this.itemList[go][i] then this.itemList[go][i]={} @@ -144,7 +170,6 @@ function this:UpdateSingleInfo(go,data,index) this.itemList[go][i].out=Util.GetGameObject(this.itemList[go][i].go, "guoqi") this.itemList[go][i].name=Util.GetGameObject(this.itemList[go][i].go, "name") this.itemList[go][i].itemView= SubUIManager.Open(SubUIConfig.ItemView,this.itemList[go][i].pos.transform) - end this.itemList[go][i].go.gameObject:SetActive(true) this.itemList[go][i].red:SetActive(false) @@ -160,55 +185,51 @@ function this:UpdateSingleInfo(go,data,index) --LogError("state====="..state) if state==0 then if progress~=-1 then - if this.timer then - this.timer:Stop() - this.timer = nil - end local cha= tonumber(GetTimeStamp()-ActivityGiftManager.loginTime) local needTime=config.Time- (lineTime+cha) - LogError("needTime=="..needTime) this.getRed:SetActive(false) - if needTime>=0 then + if needTime>0 and deleteTime==0 then this.timeTxt.gameObject:SetActive(true) - this.timer = Timer.New(function () - --LogError("needTime=="..needTime) - needTime=needTime-1 - if needTime<=0 then - isCanGet=true - this.timeTxt.text = "有可领取奖励" - this.getRed:SetActive(true) - this.timer:Stop() - this.timer = nil - this.itemList[go][i].red:SetActive(true) - else - this.timeTxt.text = string.format("领取倒计时:".."%s",TimeToFelaxible(needTime)) - end - - end,1,-1,true) - this.timer:Start() - else + deleteTime=needTime + currShowRed=this.itemList[go][i].red + --this.timeTxt.gameObject:SetActive(false) + end + if needTime<=0 then if rewardTime~=0 then isCanGet=true this.itemList[go][i].red:SetActive(true) end - this.timeTxt.gameObject:SetActive(false) end end elseif state==1 then this.itemList[go][i].red:SetActive(true) elseif state==2 then this.itemList[go][i].get:SetActive(true) + rewardNum=rewardNum+1 elseif state==3 then this.itemList[go][i].out:SetActive(true) end end + --LogError("deleteTime==="..deleteTime) end --界面关闭时调用(用于子类重写) function GMSong10WanPanel:OnClose() + if this.timer then + this.timer:Stop() + this.timer = nil + end allValue=0 rewardTime=0 + deleteTime=0 + rewardNum=0 + this.getRed:SetActive(false) + if currShowRed then + currShowRed:SetActive(false) + currShowRed=nil + end + CheckRedPointStatus(RedPointType.song10Wan) end --界面销毁时调用(用于子类重写) @@ -217,6 +238,6 @@ function GMSong10WanPanel:OnDestroy() if this.timer then this.timer:Stop() this.timer = nil - end + end end return GMSong10WanPanel \ No newline at end of file