local UIRebornSmelt = UIViewClass() local ChooseSmeltEquipMaxNum = DataSheetManager.ConstData:GetDataByID("OneKeyChooseMaxNum").IntValue function UIRebornSmelt:OnOpened(context) self:RegistSystemEvent(EventID.UI_Reborn_Smelt_EquipSmeltSuccess, self.InitSmeltEquipment) self:InitSmeltEquipment(context) self:SetSubEquipTipView(false) CTL.Currency.OpenCurrencyPanel(self.__viewClassPath, self.currency_Info) end function UIRebornSmelt:OnButtonClicked(comp) if comp == self.btn_Setting then self:SetSubEquipTipView(false) UIManager.OpenView(Const_UI_Lua.UIEnum.UIRebornFilter) elseif comp == self.btn_SelectInOnce then self:SetSubEquipTipView(false) if self.isMax then CTL.Tips.AddTipsMsg(Const_IDS.IDS_EquipMelting_Melting_OneKeyChoose_Hint_4, ChooseSmeltEquipMaxNum) else if CTL.Reborn.SelectEquipsBySmeltFilter(self.sortedList, self.selectIdDict) then self.loop_SmeltEquip:RefreshCells() self:RefreshSmeltRewardList() self.isMax = table.getDictCount(self.selectIdDict) >= ChooseSmeltEquipMaxNum else CTL.Tips.AddTipsMsg(Const_IDS.IDS_EquipMelting_Melting_OneKeyChoose_Hint_5) end end elseif comp == self.btn_Smelt then self:SetSubEquipTipView(false) local rareEquipIdList = CTL.Reborn.IfHasRareEquipment(self.selectIdDict) if rareEquipIdList then UIManager.OpenView(Const_UI_Lua.UIEnum.UIRebornHint, {rareEquipIdList = rareEquipIdList, ConfirmIdDict = self.selectIdDict}) else MDL.Reborn.SmeltReq(self.selectIdDict, MDL.Reborn.SmeltType.Equip) end elseif comp == self.btn_TipBg then self:SetSubEquipTipView(false) end end function UIRebornSmelt:SetSubEquipTipView(isOpen, data) if isOpen then self.tipView = self.equipTipView:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UIBaseEquipTips), {equipInfo = data, isChildTips = true}) UIUtils.SetActive(self.btn_TipBg, true) else self.tipView = nil self.equipTipView:CloseAll() UIUtils.SetActive(self.btn_TipBg, false) end end function UIRebornSmelt:InitSmeltEquipment(context) self.selectIdDict = {} local firstSelectId = nil if context and context.equipId then firstSelectId = context.equipId self.selectIdDict[firstSelectId] = 1 end self.isMax = table.getDictCount(self.selectIdDict) >= ChooseSmeltEquipMaxNum self.sortedList = {} CTL.Equipment.UpdateSpecificTypeEquipListForSmelt(self.sortedList) local moveIndex for i, v in ipairs(self.sortedList) do if firstSelectId and v.ID == firstSelectId then moveIndex = i - 1 end end self.loop_SmeltEquip:ReloadAll(self.sortedList) UIUtils.SetActive(self.img_Empty, #self.sortedList == 0) if moveIndex then self.loop_SmeltEquip:MoveIndex(moveIndex) end self:RefreshSmeltRewardList() end function UIRebornSmelt:RefreshSmeltRewardList() if self.loop_SmeltReward.Count > 0 then self.loop_SmeltReward:ClearCells() end if next(self.selectIdDict) then self.effect_MeltLight:PlayUIEffect() UIUtils.SetActive(self.group_SmeltReward, true) else self.effect_MeltLight:StopUIEffect() UIUtils.SetActive(self.group_SmeltReward, false) end local rewardList = MDL.Reborn.GetSmeltRewardByList(self.selectIdDict) for i, v in ipairs(rewardList) do self.loop_SmeltReward:AddData(v, 0) end end function UIRebornSmelt:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.loop_SmeltEquip then UTL.Item.ItemSquareIcon(cellTable.item.img_Item, cellTable.item.sprite_Rank, data.ItemData.ID) UIUtils.SetActive(cellTable.img_Selected, self.selectIdDict[data.ID] and true or false) UIUtils.SetActive(cellTable.group_Warning, true) local EquipActionFlag = CTL.Equipment.EquipActionFlag if data.SmeltFlag == EquipActionFlag.Replace then cellTable.group_Warning:SetState(1) elseif data.SmeltFlag == EquipActionFlag.Refine then cellTable.group_Warning:SetState(0) elseif data.SmeltFlag == EquipActionFlag.Equip then cellTable.group_Warning:SetState(2) else UIUtils.SetActive(cellTable.group_Warning, false) end UIUtils.SetActive(cellTable.img_Locked, data.SmeltFlag == EquipActionFlag.CannotEquip) elseif scrollRect == self.loop_SmeltReward then UTL.Item.SetItemCell(cellTable.item, data.ItemID, data.ItemNum) end end function UIRebornSmelt:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.loop_SmeltEquip then if target == cellTable.item.event_Click then if self.selectIdDict[data.ID] then self.selectIdDict[data.ID] = nil self:SetSubEquipTipView(false) else local dictLength = table.getDictCount(self.selectIdDict) if dictLength >= ChooseSmeltEquipMaxNum then CTL.Tips.AddTipsMsg(Const_IDS.IDS_EquipMelting_Melting_OneKeyChoose_Hint_4, ChooseSmeltEquipMaxNum) else self.selectIdDict[data.ID] = 1 --存个标志位 dictLength = dictLength + 1 self:SetSubEquipTipView(true, data) end self.isMax = dictLength >= ChooseSmeltEquipMaxNum end UIUtils.SetActive(cellTable.img_Selected, self.selectIdDict[data.ID] and true or false) self:RefreshSmeltRewardList() end elseif scrollRect == self.loop_SmeltReward then if target == cellTable.item.event_Click then UTL.ItemTips.ShowCommonTipsById(data.ItemID) end end end return UIRebornSmelt