---- 魂印图鉴 ---- require("Base/BasePanel") FaXiangHandBook = Inherit(BasePanel) local this = FaXiangHandBook local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) local orginLayer = 0 --层级 local allSoulPrintData = {} --所有魂印数据 local curIndex = 0 --当前选择索引 local tabs = {} local list = {} function this:InitComponent() this.spLoader = SpriteLoader.New() this.backBtn = Util.GetGameObject(this.gameObject, "BackBtn") this.Title = Util.GetGameObject(this.gameObject, "Title"):GetComponent("Text") this.Title.text = Language[12672] this.mask = Util.GetGameObject(this.gameObject, "mask") for i = 1, 5 do tabs[i] = Util.GetGameObject(this.gameObject, "Tabs/Btn" .. i) end this.selectBtn = Util.GetGameObject(this.gameObject, "Tabs/selectBtn") this.selectBtnText = Util.GetGameObject(this.selectBtn.transform, "Text"):GetComponent("Text") this.scrollRoot = Util.GetGameObject(this.gameObject, "ScrollRoot") this.pre = Util.GetGameObject(this.scrollRoot, "Pre") this.scrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, this.scrollRoot.transform, this.pre, nil, -- Vector2.New(this.scrollRoot.transform.rect.width, this.scrollRoot.transform.rect.height), 1, 4, Vector2.New(50, 80)) 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 this:BindEvent() --tab按钮点击 for i = 1, 3 do Util.AddClick(tabs[i], function() if (curIndex == i) then return end curIndex = i this.OnRefresh(curIndex) this:SetSelect() end) end --关闭页面 Util.AddClick(this.backBtn, function() PlaySoundWithoutClick(SoundConfig.Sound_UICancel) self:ClosePanel() end) --关闭页面 Util.AddClick(this.mask, function() PlaySoundWithoutClick(SoundConfig.Sound_UICancel) self:ClosePanel() end) end function this:AddListener() end function this:RemoveListener() end function this:OnSortingOrderChange() --特效层级重设 for _, v in pairs(list) do Util.SetParticleSortLayer(v, this.sortingOrder + 1) end orginLayer = self.sortingOrder end function this:OnOpen() end function this:OnShow() this.GetAllData() curIndex = 1 this.OnRefresh(curIndex) this.SetBottomBarIsActive() this:SetSelect() end function this:SetSelect() this.selectBtn:SetActive(true) this.selectBtn.transform.localPosition = tabs[curIndex].transform.localPosition this.selectBtnText.text = Util.GetGameObject(tabs[curIndex].transform, "Text"):GetComponent("Text").text end function this.GetAllData() allSoulPrintData = {} local faXiangConfigData = ConfigManager.GetConfig(ConfigName.FaxiangConfig) for i, configInfo in ConfigPairs(faXiangConfigData) do table.insert(allSoulPrintData, itemConfig[i]) end end --特殊的开启条件 function this.SetBottomBarIsActive() for i = 1, #tabs do end end function this:OnClose() this.selectBtn:SetActive(false) end function this:OnDestroy() this.spLoader:Destroy() list = {} this.scrollView = nil end local orginLayer2 = 0 --打开页面时,页面数据刷新 function this.OnRefresh(index) local tempData = {} if index == 0 then tempData = allSoulPrintData else for i, v in ipairs(allSoulPrintData) do if v.Quantity == (index + 4) then table.insert(tempData, v) end end end --预设容器 this.scrollView:SetData(tempData, function(index, root) this.SetScrollPre(root, tempData[index]) list[root] = root end) this.scrollView:SetIndex(1) orginLayer2 = this.sortingOrder orginLayer = this.sortingOrder end --设置预设 function this.SetScrollPre(root, data) Util.SetParticleSortLayer(root, this.sortingOrder + 1) SetSoulEffect(data.Quantity, root) local frame = Util.GetGameObject(root, "Frame"):GetComponent("Image") local icon = Util.GetGameObject(root, "circleFrameBg/Icon"):GetComponent("Image") local name = Util.GetGameObject(root, "Name"):GetComponent("Text") Util.AddOnceClick(root, function() -- UIManager.OpenPanel(UIName.GodPrintPopUp,0,nil,data.Id,nil) local equipData = {} equipData.id = data.Id local faxiangConfig = ConfigManager.GetConfigData(ConfigName.FaxiangConfig, data.Id) equipData.levelPool = faxiangConfig.LevelUpPool equipData.lv = faxiangConfig.LevelMax equipData.maxLv = faxiangConfig.LevelMax equipData.refinePool = faxiangConfig.Star equipData.refineLv = faxiangConfig.StarMax UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup2, this, equipData, 0, false, nil, nil, 7) end) frame.sprite = this.spLoader:LoadSprite(GetQuantityImageByquality(data.Quantity)) icon.sprite = this.spLoader:LoadSprite(GetResourcePath(data.ResourceID)) Util.GetGameObject(root, "circleFrameBg"):GetComponent("Image").sprite = this.spLoader:LoadSprite( SoulPrintSpriteByQuantity[data.Quantity].circleBg2) Util.GetGameObject(root, "circleFrameBg/circleFrame"):GetComponent("Image").sprite = this.spLoader:LoadSprite( SoulPrintSpriteByQuantity[data.Quantity].circle) local str = GetLanguageStrById(data.Name) if GetCurLanguage() == -1 and LengthString(data.Name) >= 5 then str = SubString(data.Name, 4) .. "..." end name.text = str --SubString2(GetLanguageStrById(data.Name),10) end return this