local UITreasureMainPanel = UIViewClass() local RedEffectPath = ConstAssetPathConfig.RedEffectPath local YelEffectPath = ConstAssetPathConfig.YelEffectPath function UITreasureMainPanel:OnOpened(context) self:RegistSystemEvent(EventID.BagItem_Update, self.RefreshTreasureLoop) self:RegistSystemEvent(EventID.UI_UpdateTreasureInfo, self.RefreshTreasureLoop) self:RegistSystemEvent(EventID.TreasureSoulCrystal_UpdateBag, self.RefreshTreasureLoop) -- 界面标题 UIUtils.SetLabelText(self.UITemplateTitlePanel.lab_Title, Const_IDS["IDS_ACHIEVEMENTTYPE_TypeName_10000_600"]) self:RefreshTreasureLoop() self:SetPushStyle(LuaConst.PushStyleEnum.HIDE) end function UITreasureMainPanel:OnBackButtonPressed() self:OnButtonClicked(self.UITemplateTitlePanel.btn_close) end function UITreasureMainPanel:OnButtonClicked(comp) if comp == self.UITemplateTitlePanel.btn_close then self:CloseView(true) elseif comp == self.UITemplateTitlePanel.btn_Home then CTL.HomeMain.CloseViewBackHomeMain() elseif comp == self.UITemplateTitlePanel.btn_Info then UIManager.OpenView(Const_UI_Lua.UIEnum.UICommonNoteView, {id = LuaConst.NoteID.Treasure}) end end function UITreasureMainPanel:RefreshTreasureLoop() local sortedTreasureList = MDL.Treasure.GetSortedTreasureList() if self.loop_Treasure.Count == 0 then for i = 1, #sortedTreasureList do self.loop_Treasure:AddData(sortedTreasureList[i], 0) end else for i = 1, #sortedTreasureList do self.loop_Treasure:UpdateIndex(i - 1, sortedTreasureList[i]) end end end function UITreasureMainPanel:OnCellInit(scrollRect, index, cellTable, data) -- 品质底图 UTL.Color.SetQualityImageByType(cellTable.img_TreasureQualityBg, data.TreasureQuality, UTL.Color.QualityType.TreasureBase) -- 品质底图框 UTL.Color.SetQualityImageByType(cellTable.img_TreasureBg, data.TreasureQuality, UTL.Color.QualityType.TreasureBaseFrame) UIUtils.SetImageByAssetBundle(cellTable.img_TreasureIcon, data.TreasurePicture) cellTable.img_TreasureIcon:SetNativeSize() --cellTable.img_Frame:SetNativeSize() UIUtils.SetLabelText(cellTable.lab_TreasureName, Const_IDS[data.TreasureName]) local activeInfo = MDL.Treasure.GetTreasureInfo(data.TreasureID) cellTable.effect_TreasureQuality:StopUIEffect() cellTable.UIEffect_Activated:StopUIEffect() cellTable.effect_RedPoint:StopUIEffect() if activeInfo then UIUtils.SetActive(cellTable.img_TreasurePieceBg, false) UIUtils.SetActive(cellTable.img_Mask, false) if activeInfo.EquipHeroId then UIUtils.SetActive(cellTable.img_Equipment, true) else UIUtils.SetActive(cellTable.img_Equipment, false) end --红点 local starLevel = activeInfo.TreasureInfo.starLevel if starLevel > 0 then cellTable.lab_TreasureName.text = UTL.Color.FormatQualityText(UIUtils.GetLocalizedTxt(Const_IDS[data.TreasureName]) .. "+" .. starLevel, data.TreasureQuality) else cellTable.lab_TreasureName.text = UTL.Color.FormatQualityText(UIUtils.GetLocalizedTxt(Const_IDS[data.TreasureName]), data.TreasureQuality) end if CTL.Treasure.IfTreasureCanBreak(data.TreasureID) or CTL.Treasure.IfTreasureCanSoulPanel(data.TreasureID) then cellTable.effect_RedPoint:PlayUIEffect(RedEffectPath, -1) elseif CTL.Treasure.IfTreasureCanSoulRefined(data.TreasureID) then cellTable.effect_RedPoint:PlayUIEffect(YelEffectPath, -1) else cellTable.effect_RedPoint:StopUIEffect() end --品质特效 UTL.Color.PlayQualityEffect(cellTable.effect_TreasureQuality, data.TreasureQualityEffect, UTL.Color.EffectType.Main) else UIUtils.SetActive(cellTable.img_TreasurePieceBg, true) UIUtils.SetActive(cellTable.img_Equipment, false) cellTable.lab_TreasureName.text = UTL.Color.FormatQualityText(UIUtils.GetLocalizedTxt(Const_IDS[data.TreasureName]), data.TreasureQuality) local costNum = data.Item_Table[1].ItemNum local curNum = MDL.Bag.GetItemCount(data.Item_Table[1].ItemID) local isEnough = curNum >= costNum if isEnough then UIUtils.SetActive(cellTable.img_Mask, false) cellTable.lab_Amount.text = UTL.Color.FormatGreenColor(curNum) .. "/" .. costNum cellTable.UIEffect_Activated:PlayUIEffect() cellTable.effect_RedPoint:PlayUIEffect(RedEffectPath, -1) else UIUtils.SetActive(cellTable.img_Mask, true) cellTable.lab_Amount.text = UTL.Color.FormatRedColor(curNum) .. "/" .. costNum cellTable.UIEffect_Activated:StopUIEffect() cellTable.effect_RedPoint:StopUIEffect() end end end function UITreasureMainPanel:OnCellClicked(scrollRect, index, cellTable, target, data) CTL.Sound.PlayGameSound("UI_calendar") UIManager.OpenAndPushAll(Const_UI_Lua.UIEnum.UITreasureBasePanel, {treasureId = data.TreasureID}) end return UITreasureMainPanel