----- 试练副本奖励弹窗 ----- require("Base/BasePanel") local TrialRewardPopup = Inherit(BasePanel) local this = TrialRewardPopup local rewardConfig local itemList={} --预设容器 local sortingOrder=0 local getFunc = {} function TrialRewardPopup:InitComponent() this.panel=Util.GetGameObject(this.gameObject,"Panel") this.backBtn=Util.GetGameObject(this.panel,"BackBtn") this.scroll=Util.GetGameObject(this.panel,"Scroll") this.pre=Util.GetGameObject(this.panel,"Scroll/Pre") this.scrollView=SubUIManager.Open(SubUIConfig.ScrollCycleView,this.scroll.transform,this.pre, nil, Vector2.New(this.scroll.transform.rect.width,this.scroll.transform.rect.height),1,1,Vector2.New(0,10)) this.scrollView.gameObject:GetComponent("RectTransform").anchoredPosition= Vector2.New(0,0) this.scrollView.gameObject:GetComponent("RectTransform").anchorMin = Vector2.New(0.5, 0.5) this.scrollView.gameObject:GetComponent("RectTransform").anchorMax = Vector2.New(0.5, 0.5) this.scrollView.gameObject:GetComponent("RectTransform").pivot = Vector2.New(0.5, 0.5) this.scrollView.moveTween.MomentumAmount = 1 this.scrollView.moveTween.Strength = 2 end function TrialRewardPopup:BindEvent() Util.AddClick(this.backBtn,function() PlaySoundWithoutClick(SoundConfig.Sound_UICancel) self:ClosePanel() end) end function TrialRewardPopup:AddListener() end function TrialRewardPopup:RemoveListener() end function TrialRewardPopup:OnSortingOrderChange() sortingOrder = self.sortingOrder end function TrialRewardPopup:OnOpen(...) local arg = {...} rewardConfig = arg[1] getFunc = arg[2] end function TrialRewardPopup:OnShow() this.RefreshPanel() sortingOrder = self.sortingOrder end function TrialRewardPopup:OnClose() end function TrialRewardPopup:OnDestroy() this.scrollView=nil itemList={} end --刷新 function this.RefreshPanel() this.scrollView:SetData(rewardConfig,function(index,root) this.SetScrollPre(root,rewardConfig[index]) end) this.scrollView:SetIndex(1) end --设置每条数据 function this.SetScrollPre(root,data) local info=Util.GetGameObject(root,"Title/Info"):GetComponent("Text") local grid=Util.GetGameObject(root,"Grid") local goBtn=Util.GetGameObject(root,"GoBtn") local getBtn=Util.GetGameObject(root,"GetBtn") local mask=Util.GetGameObject(root,"mask") info.text=data.info --string.format( Language[11616],data.Count,MapTrialManager.GetKilCount(),data.Count) --ResetItemView(root,grid.transform,itemList,#data.BoxReward,0.9,sortingOrder,false,data.BoxReward) if not itemList[root] then itemList[root] = {} end for k,v in ipairs(itemList[root]) do v.gameObject:SetActive(false) end for i = 1 , #data.BoxReward do if not itemList[root][i] then itemList[root][i] = SubUIManager.Open(SubUIConfig.ItemView,grid.transform) itemList[root][i].gameObject:SetActive(false) end itemList[root][i]:OnOpen(false, data.BoxReward[i], 0.9,false,false,false,sortingOrder) itemList[root][i].gameObject:SetActive(true) end --按钮状态 --local s=MapTrialManager.GetTrialRewardState(data.Id) goBtn:GetComponent("Button").interactable=data.state~=0 if data.state==0 then -- goText.text=Language[10350] mask:SetActive(true) goBtn:SetActive(false) getBtn:SetActive(false) elseif data.state==1 then -- goText.text=Language[10022] mask:SetActive(false) goBtn:SetActive(false) getBtn:SetActive(true) elseif data.state==2 then -- goText.text=Language[10023] mask:SetActive(false) goBtn:SetActive(true) getBtn:SetActive(false) end Util.AddOnceClick(goBtn,function() this:ClosePanel() end) Util.AddOnceClick(getBtn,function() if getFunc then getFunc(data.Id,function() mask:SetActive(true) getBtn:SetActive(false) this.ChangeState(data.Id) this.RefreshPanel() CheckRedPointStatus(RedPointType.TrialReward) CheckRedPointStatus(RedPointType.Trial) end) end end) end function this.ChangeState(id) for k,v in ipairs(rewardConfig) do if v.Id == id then v.state = 0 return end end end return TrialRewardPopup