----- 命格选择命石 ----- local SelectGem = {} --传入父脚本模块 local parent --传入特效层级 local sortingOrder=0 local args=nil local itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig) local gemConfig=ConfigManager.GetConfig(ConfigName.GemConfig) local PropertyConfig = ConfigManager.GetConfig(ConfigName.PropertyConfig) function SelectGem:InitComponent(gameObject) self.spLoader = SpriteLoader.New() self.itemPre=Util.GetGameObject(gameObject,"ItemPre") self.itemPre:SetActive(false) --滚动条根节点 self.root = Util.GetGameObject(gameObject, "Scroll") self.preList={} self.itemList={} local rootHight = self.root.transform.rect.height local width = self.root.transform.rect.width self.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.root.transform, self.itemPre,nil, Vector2.New(width, rootHight), 1, 1,Vector2.New(0,10)) self.ScrollView.moveTween.MomentumAmount = 1 self.ScrollView.moveTween.Strength = 2 self.ScrollView.elastic = false end function SelectGem:BindEvent() end function SelectGem:AddListener() end function SelectGem:RemoveListener() end function SelectGem:OnShow(_parent,_args) args = _args parent=_parent sortingOrder =_parent.sortingOrder SelectGem:Refresh(args[1]) end function SelectGem:Refresh(Id) local dataList = GemManager.GetGemsFromBagByType(Id) self.ScrollView:SetData(dataList, function(index, go) self:SingleDataShow(go,dataList[index],index) go:SetActive(true) end) end function SelectGem:SingleDataShow(go,data,index) local icon = Util.GetGameObject(go,"Icon") local desc = Util.GetGameObject(go,"Desc"):GetComponent("Text") local name = Util.GetGameObject(go,"Name"):GetComponent("Text") local btn = Util.GetGameObject(go,"Btn") local btnText = Util.GetGameObject(go,"Btn/Text"):GetComponent("Text") btnText.text = "穿 戴" if GemManager.myGemList[args[1]] and GemManager.myGemList[args[1]][args[2]] and GemManager.myGemList[args[1]][args[2]] > 0 then btnText.text = "替 换" end if not self.itemList[go] then local view = SubUIManager.Open(SubUIConfig.ItemView,icon.transform) self.itemList[go] = view end self.itemList[go]:OnOpen(false, {data.id,0}, 1.1, true,false,false,sortingOrder + 1) self.itemList[go].gameObject:SetActive(true) name.text = GetStringByEquipQua(itemConfig[data.id].Quantity1,data.name) local property = gemConfig[data.id].Property local textDesc = "" for i = 1, #property do textDesc = textDesc..string.format( "全体神将%s+%s",PropertyConfig[property[i][1]].Info,property[i][2]/100).."%" if property[i+1] then textDesc = textDesc.."\n" end end desc.text = textDesc Util.AddOnceClick(btn,function () NetManager.LifeGridChangeRequest(1,args[1],args[2],data.id,function () if args[3] then args[3]() end Game.GlobalEvent:DispatchEvent(GameEvent.Gem.RefreshPanel) parent:ClosePanel() end) end) end function SelectGem:OnClose() args=nil end function SelectGem:OnDestroy() self.spLoader:Destroy() self.preList={} self.itemList={} end return SelectGem