require("Base/BasePanel") SelectGiftListPopup = Inherit(BasePanel) local this = SelectGiftListPopup local curSelectSoulPrint = {} local curSelectAllSoulPrintIds = {} local curUpList={} local targetSoulPrintSData = {} local curIndex = 0 local openThisPanel local equipSign = ConfigManager.GetConfig(ConfigName.EquipConfig) local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) local curSelectGO local isShowGou = false local curSelectId=0 local itemType=0 --初始化组件(用于子类重写) function SelectGiftListPopup:InitComponent() this.spLoader = SpriteLoader.New() this.BtnBack = Util.GetGameObject(self.transform, "btnBack") this.BtnSure = Util.GetGameObject(self.transform, "btnSure") this.btnSelect = Util.GetGameObject(self.transform, "btnSelect") Util.GetGameObject(self.transform, "toggleGrid"):SetActive(false) this.btnSelectImage = Util.GetGameObject(self.transform, "btnSelect/SelectImage") this.cardPre = Util.GetGameObject(self.gameObject, "equipPre") this.Scrollbar= Util.GetGameObject(self.gameObject, "Scrollbar"):GetComponent("Scrollbar") this.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView,Util.GetGameObject(self.gameObject, "scroll").transform, this.cardPre, this.Scrollbar, Vector2.New(927.5, 1010), 1, 5, Vector2.New(19.32,15)) this.ScrollView.gameObject:GetComponent("RectTransform").anchoredPosition = Vector2.New(6.78, 27) 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.moveTween.MomentumAmount = 1 this.ScrollView.moveTween.Strength = 1 end --绑定事件(用于子类重写) function SelectGiftListPopup:BindEvent() Util.AddClick(this.BtnBack, function() self:ClosePanel() end) Util.AddClick(this.BtnSure, function() self:ClosePanel() openThisPanel.ShowTitleEquipData(nil,curSelectId,curIndex) end) end --添加事件监听(用于子类重写) function SelectGiftListPopup:AddListener() end --移除事件监听(用于子类重写) function SelectGiftListPopup:RemoveListener() end --界面打开时调用(用于子类重写) function SelectGiftListPopup:OnOpen(_openThisPanel,_curUpList,_curIndex,_targetSoulPrintSData,_itemType) openThisPanel = _openThisPanel itemType=_itemType LogError("_curindex==========".._curIndex) curSelectId = _curUpList[_curIndex] curUpList = _curUpList curIndex = _curIndex targetSoulPrintSData = _targetSoulPrintSData isShowGou = false curSelectGO = nil end --界面打开或者重新打开后,界面刷新时调用(用于子类重写) function SelectGiftListPopup:OnShow() this.OnShowData() end --检测list里面含有的id数量 function this.CheckListHaveNum(_list,_id) local num=0 for i=1,#_list do if _list[i]==_id then num=num+1 end end return num end function this.OnShowData() local bagData = BagManager.GetBagItemDataByItemType(itemType) local list = {} for i=1,#bagData do --如果当前的物品已经全部上到英雄身上的就不显示 LogError("curSelectId=="..curSelectId.." bagData[i].id=="..bagData[i].id) if curSelectId~=bagData[i].id and this.CheckListHaveNum(curUpList,bagData[i].id)>=bagData[i].num then else if targetSoulPrintSData.Star>0 then if bagData[i].id == targetSoulPrintSData.Formula[1][1] then table.insert(list,bagData[i]) end else if bagData[i].quality == targetSoulPrintSData.Formula[1][1] then table.insert(list,bagData[i]) end end end end table.sort(list, function(a,b) return a.id < b.id end) this.ScrollView:SetData(list, function (index, go) this.SingleItemDataShow(go,list[index]) end) this.ShowSUreBtnState() end function this.SingleItemDataShow(_go,curBagSoulPrintData) local curequipSign = equipSign[curBagSoulPrintData.id] Util.GetGameObject(_go.transform,"frame"):GetComponent("Image").sprite=this.spLoader:LoadSprite(GetQuantityImageByquality(curequipSign.Quality)) local icon=Util.GetGameObject(_go.transform,"icon"):GetComponent("Image") icon.sprite=this.spLoader:LoadSprite(GetResourcePath(itemConfig[curBagSoulPrintData.id].ResourceID)) icon.gameObject:SetActive(true) Util.GetGameObject(_go.transform,"circleFrameBg"):SetActive(false) Util.GetGameObject(_go.transform,"name"):GetComponent("Text").text = SubString2(string.gsub(GetLanguageStrById(curequipSign.Name),Language[11520],"",1), 10) local numTxt=Util.GetGameObject(_go.transform,"num"):GetComponent("Text") numTxt.text=curBagSoulPrintData.num Util.GetGameObject(_go.transform, "Hero"):SetActive(false) local curheroData = {} local choosed =Util.GetGameObject(_go.transform, "choosed") local starPar =Util.GetGameObject(_go.transform, "star") SetHeroStars(this.spLoader,starPar,curequipSign.Star,1,nil,-15) choosed:SetActive(curSelectId == curBagSoulPrintData.id and not isShowGou) --local redPoint = Util.GetGameObject(_go.transform,"redPoint") if curSelectId == curBagSoulPrintData.id and not isShowGou then curSelectGO = _go isShowGou = true end Util.AddLongPressClick(Util.GetGameObject(_go.transform,"frame"), function() UIManager.OpenPanel(UIName.SoulPrintPopUp,0,nil,curBagSoulPrintData.id,nil,nil) end, 0.5) Util.AddOnceClick(Util.GetGameObject(_go.transform,"frame"), function() this.SoulPrintClickShow(curequipSign,choosed,_go) end) end function this.SoulPrintClickShow(curequipSign,choosed,_go) if curSelectGO then Util.GetGameObject(curSelectGO.transform, "choosed"):SetActive(false) end curSelectId = curequipSign.Id choosed:SetActive(true) curSelectGO = _go this.ShowSUreBtnState() end function this.ShowSUreBtnState() if curSelectId and curSelectId~=0 then Util.SetGray(this.BtnSure,false) this.BtnSure:GetComponent("Button").enabled = true else Util.SetGray(this.BtnSure,true) this.BtnSure:GetComponent("Button").enabled = false end end --界面关闭时调用(用于子类重写) function SelectGiftListPopup:OnClose() end --界面销毁时调用(用于子类重写) function SelectGiftListPopup:OnDestroy() this.spLoader:Destroy() end return SelectGiftListPopup