local UIThroughSweep = UIViewClass() local SliderSensitivityParam = FP.tonumberV1(DataSheetManager.ConstData:GetDataByID("SliderSensitivityParam").FloatValue) local FastSweepSpeed = 0 local NormalSweepSpeed = 0.6 function UIThroughSweep:OnCreated() UIUtils.SetActive(self.UICommonPopUp.btn_Close, false) self.srcDataIndex = 0 self.targetDataIndex = 0 self.totalSweepCount = 0 --id 数量 self.totalItemRewards = {} end function UIThroughSweep:OnOpened(context) UIUtils.SetLabelText(self.UICommonPopUp.txt_Title, Const_IDS.IDS_PlayEasier_Deterrence) self:InitSweepInfo() self.dragDict = {} self:StartDisplaySweepReward() end function UIThroughSweep:InitSweepInfo() if self.context.levelType == LuaConst.LevelType.NationClimbTower then local srcTowerDataCfg = DataSheetManager.NationClimbTowerLevel:GetDataByID(self.context.srcTowerLevelId) self.srcDataIndex = srcTowerDataCfg.Number local tragetTowerDataCfg = DataSheetManager.NationClimbTowerLevel:GetDataByID(self.context.targetTowerLevelId) self.targetDataIndex = tragetTowerDataCfg.Number local openType, __ = MDL.NationClimbTower.GetTowerOpenInfo() local chapterConfig = MDL.NationClimbTower.GetTowerConfigData(openType) local nationTitleStr = UIUtils.GetLocalizedTxt(Const_IDS[chapterConfig.ClimbTower]) UIUtils.SetLabel(self.lab_level1, nationTitleStr .. string.FormatByIdsId(Const_IDS["IDS_NationClimbTower_HistoryLevel"], srcTowerDataCfg.Number)) UIUtils.SetLabel(self.lab_level2, nationTitleStr .. string.FormatByIdsId(Const_IDS["IDS_NationClimbTower_HistoryLevel"], tragetTowerDataCfg.Number)) elseif self.context.levelType == LuaConst.LevelType.ClimbTower then self.srcDataIndex = CTL.ClimbTower.GetTowerDataIndexByLevelId(self.context.srcTowerLevelId) self.targetDataIndex = CTL.ClimbTower.GetTowerDataIndexByLevelId(self.context.targetTowerLevelId) local srcTowerDataCfg = CTL.ClimbTower.GetClimbTowerLevelCfgByIndex(self.srcDataIndex) local tragetTowerDataCfg = CTL.ClimbTower.GetClimbTowerLevelCfgByIndex(self.targetDataIndex) UIUtils.SetLabelText(self.lab_level1, Const_IDS[srcTowerDataCfg.LevelName]) UIUtils.SetLabelText(self.lab_level2, Const_IDS[tragetTowerDataCfg.LevelName]) end self.totalSweepCount = self.targetDataIndex-self.srcDataIndex+1 self:UpdateSlider(0) end function UIThroughSweep:UpdateSlider(curValue) self.slider_progress.value = curValue/self.totalSweepCount UIUtils.SetLabel(self.lab_num, curValue .. "/" .. self.totalSweepCount) end function UIThroughSweep:OnBackButtonPressed() self:OnButtonClicked(self.UICommonPopUp.btn_Close) end function UIThroughSweep:OnButtonClicked(comp) if comp == self.UICommonPopUp.btn_Close or comp == self.btn_Quit then self:CloseView() elseif comp == self.mask_Skip then self:QuickMove() end end function UIThroughSweep:StartDisplaySweepReward() UIUtils.SetActive(self.mask_Skip, true) UIUtils.SetActive(self.btn_Quit, false) UIUtils.SetActive(self.groupTip, true) self.showIndex = 1 if self.totalSweepCount == 1 and self.loop_OneKeySweep.Count == 0 then self:MoveShow() return end self.loop_OneKeySweep:ClearCells() self:StartRepeatFunc(self.OnUpdateFun, NormalSweepSpeed) end function UIThroughSweep:OnUpdateFun(deltaTime, timeSinceUpdate) self:MoveShow() end function UIThroughSweep:MoveShow() if self.showIndex<=self.totalSweepCount then self:UpdateSlider(self.showIndex) self.loop_OneKeySweep:AddData(self.showIndex, 0) self.showIndex = self.showIndex+1 end if self.showIndex>self.totalSweepCount then --计算所有道具的大合集 self.loop_OneKeySweep:AddData(-1, 1) self:StopRepeatFunc(self.OnUpdateFun) UIUtils.SetActive(self.mask_Skip, false) UIUtils.SetActive(self.btn_Quit, true) UIUtils.SetActive(self.groupTip, false) end if self.showIndex > 2 then self.loop_OneKeySweep:MoveEnd() end end function UIThroughSweep:SkipSweep() self:StopRepeatFunc(self.OnUpdateFun) for i = self.showIndex, self.totalSweepCount do self.loop_OneKeySweep:AddData(i, 0) self.showIndex = self.showIndex + 1 end self.loop_OneKeySweep:AddData(-1, 1) self:MoveShow() end function UIThroughSweep:QuickMove() self:StopRepeatFunc(self.OnUpdateFun) self:StartRepeatFunc(self.OnUpdateFun, FastSweepSpeed) end function UIThroughSweep:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.loop_OneKeySweep then local itemDatas = nil if data == -1 then itemDatas = {} for itemId, itemCount in pairs(self.totalItemRewards) do table.insert(itemDatas, {ItemID=itemId, ItemNum=itemCount}) end elseif self.context.levelType == LuaConst.LevelType.NationClimbTower then cellTable.txt_Times.text = string.format(UIUtils.GetLocalizedTxt(Const_IDS.IDS_Sweep_Times), index+1) local openType, __ = MDL.NationClimbTower.GetTowerOpenInfo() local chapterConfig = MDL.NationClimbTower.GetTowerConfigData(openType) local nationTitleStr = UIUtils.GetLocalizedTxt(Const_IDS[chapterConfig.ClimbTower]) local towerDataCfg = MDL.NationClimbTower.GetLevelConfigByTowerType(openType, self.srcDataIndex+index) UIUtils.SetLabel(cellTable.txt_Chapter, nationTitleStr .. string.FormatByIdsId(Const_IDS["IDS_NationClimbTower_HistoryLevel"], towerDataCfg.Number)) itemDatas = DataSheetManager.NationClimbTowerRewardRepeat:GetDataByAttrRepeatID(towerDataCfg.LevelRewardRepeatID).Item_Table elseif self.context.levelType == LuaConst.LevelType.ClimbTower then cellTable.txt_Times.text = string.format(UIUtils.GetLocalizedTxt(Const_IDS.IDS_Sweep_Times), index+1) local towerDataCfg = CTL.ClimbTower.GetClimbTowerLevelCfgByIndex(self.srcDataIndex+index) UIUtils.SetLabelText(cellTable.txt_Chapter, Const_IDS[towerDataCfg.LevelName]) itemDatas = DataSheetManager.ClimbTowerRewardRepeat:GetDataByAttrRepeatID(towerDataCfg.LevelRewardRepeatID).Item_Table end for i, itemData in ipairs(itemDatas) do if not self.totalItemRewards[itemData.ItemID] then self.totalItemRewards[itemData.ItemID] = itemData.ItemNum else self.totalItemRewards[itemData.ItemID] = self.totalItemRewards[itemData.ItemID]+itemData.ItemNum end local contentItem = cellTable.Content[i] if not contentItem then contentItem = self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.Content, self.itemTemplate_Reward.gameObject) end UTL.Item.SetItemCell(contentItem.item, itemData.ItemID, itemData.ItemNum) UIUtils.SetActive(contentItem.gameObject, true) end for i = #itemDatas + 1, #cellTable.Content do UIUtils.SetActive(cellTable.Content[i].gameObject, false) end CTL.Sound.PlayGameSound("UI_wipe_success") end end function UIThroughSweep:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.loop_OneKeySweep then local itemDatas = nil if data == -1 then itemDatas = {} for itemId, itemCount in pairs(self.totalItemRewards) do table.insert(itemDatas, {ItemID=itemId, ItemNum=itemCount}) end elseif self.context.levelType == LuaConst.LevelType.NationClimbTower then local openType, __ = MDL.NationClimbTower.GetTowerOpenInfo() local chapterConfig = MDL.NationClimbTower.GetTowerConfigData(openType) local nationTitleStr = UIUtils.GetLocalizedTxt(Const_IDS[chapterConfig.ClimbTower]) local towerDataCfg = MDL.NationClimbTower.GetLevelConfigByTowerType(openType, self.srcDataIndex+index) itemDatas = DataSheetManager.NationClimbTowerRewardRepeat:GetDataByAttrRepeatID(towerDataCfg.LevelRewardRepeatID).Item_Table elseif self.context.levelType == LuaConst.LevelType.ClimbTower then local towerDataCfg = CTL.ClimbTower.GetClimbTowerLevelCfgByIndex(self.srcDataIndex+index) itemDatas = DataSheetManager.ClimbTowerRewardRepeat:GetDataByAttrRepeatID(towerDataCfg.LevelRewardRepeatID).Item_Table end for i,v in ipairs(cellTable.Content) do if v.item.event_Click == target then UTL.ItemTips.ShowCommonTipsById(itemDatas[i].ItemID) break end end end end function UIThroughSweep:OnClosed() UIUtils.SetActive(self.UICommonPopUp.btn_Close, true) end return UIThroughSweep