----- 云游商人选择装备 ----- local this = {} --传入父脚本模块 local parent --传入特效层级 local sortingOrder=0 local func local data function this:InitComponent(gameObject) self.titleText=Util.GetGameObject(gameObject,"TitleText"):GetComponent("Text") self.tip=Util.GetGameObject(gameObject,"tip"):GetComponent("Text") self.scroll = Util.GetGameObject(gameObject, "Scroll") self.confirm = Util.GetGameObject(gameObject, "ConfirmBtn") self.cancel = Util.GetGameObject(gameObject, "CancelBtn") self.itemPre = Util.GetGameObject(gameObject, "itemPre") self.mask = Util.GetGameObject(gameObject, "itemPre/item") -- 设置循环滚动,万一内容不停地加 local rootHight = self.scroll.transform.rect.height local width = self.scroll.transform.rect.width self.scrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.scroll.transform, self.itemPre, nil, Vector2.New(width, rootHight), 1, 5, Vector2.New(0, 35)) self.scrollView.moveTween.MomentumAmount = 1 self.scrollView.moveTween.Strength = 2 self.equipList={} self.itemList = {} self.maskList = {} self.maskImageList = {} end function this:BindEvent() Util.AddClick(this.confirm,function() data.otherData.selectId = self.selectId parent:ClosePanel() if func then func() end end) Util.AddClick(this.cancel,function() parent:ClosePanel() end) end function this:AddListener() end function this:RemoveListener() end function this:OnShow(_parent,...) parent=_parent sortingOrder = _parent.sortingOrder --不定参中包含的不定参 _args[1]为面板类型 _args[2]之后(包括)为打开面板后传入的不定参 local _args = {...} data = _args[1] func = _args[2] self.selectId = data.otherData.selectId local list = BagManager.GetBagItemDataByItemType(ItemBaseType.Equip) local EquipedEquipList = HeroManager.GetEquipedEquipList() for i = 1, #data.otherData.needItems do for j = 1, #list do if data.otherData.needItems[i] == tonumber(list[j].itemConfig.Id) then local sdata = {} sdata.Id = tonumber(list[j].itemConfig.Id) sdata.Num = list[j].num sdata.Equiped = false table.insert(self.equipList,sdata) end end end for i = 1, #data.otherData.needItems do for j = 1, #EquipedEquipList do if data.otherData.needItems[i] == tonumber(EquipedEquipList[j]) then local sdata = {} sdata.Id = tonumber(EquipedEquipList[j]) sdata.Num = 1 sdata.Equiped = true table.insert(self.equipList,sdata) end end end if #self.equipList == 0 then PopupTipPanel.ShowTip("暂无可升级的装备!") parent:ClosePanel() end this:Refresh(true,true) end function this:Refresh(isTop,isAni) this.titleText.text = Language[12310] if not self.itemList then self.itemList = {} end for i = 1, #self.itemList do self.itemList[i].gameObject:SetActive(false) end self.scrollView:SetData(self.equipList, function (index, item) this:ShowSingleData(item, self.equipList[index],index) end,not isTop,not isAni) if #self.equipList ~= 0 then this.tip.text = Language[12311] self.tip.gameObject:GetComponent("RectTransform").localPosition = Vector3.New(0,232,0) else self.tip.text = Language[12312] self.tip.gameObject:GetComponent("RectTransform").localPosition = Vector3.zero end end function this:ShowSingleData(item,sdata,index) local itemtrans = Util.GetGameObject(item,"item") local itemmask = Util.GetGameObject(item,"mask") local maskImage = Util.GetGameObject(item,"mask/Image") local equiped = Util.GetGameObject(item,"equiped") maskImage:SetActive(false) equiped:SetActive(sdata.Equiped) if not self.itemList[index] then self.itemList[index] = SubUIManager.Open(SubUIConfig.ItemView,itemtrans.transform) self.itemList[index].gameObject:SetActive(false) end LogGreen("index:"..tostring(index)) self.itemList[index]:OnOpen(false, {sdata.Id,sdata.Num}, 1,true,false,false,sortingOrder) self.itemList[index].gameObject:SetActive(true) self.maskList[index] = itemmask self.maskImageList[index] = maskImage self.maskImageList[index]:SetActive(self.selectId == sdata.Id) Util.AddOnceClick(self.maskList[index],function () for i = 1, #self.maskImageList do self.maskImageList[i]:SetActive(false) end if self.selectId == sdata.Id then self.maskImageList[index]:SetActive(false) self.selectId = 0 else self.maskImageList[index]:SetActive(true) self.selectId = sdata.Id end end) Util.AddOnceClick(equiped,function () PopupTipPanel.ShowTip(Language[12313]) end) end function this:OnClose() self.selectId = nil self.equipList={} self.maskList = {} self.maskImageList = {} end function this:OnDestroy() self.itemList = {} end return this