local UIGoldenHeroFameReward = UIViewClass() local SliderSensitivityParam = FP.tonumberV1(DataSheetManager.ConstData:GetDataByID("SliderSensitivityParam").FloatValue) function UIGoldenHeroFameReward:OnOpened(context) self.activityId = context.activityId self.heroType = context.heroType self:RegistSystemEvent(EventID.UI_OperationActivity_CloseView, self.OnCloseActivitySelf) local heroTypeData = DataSheetManager.GoldHeroActivityModeData:GetDataByHeroType(self.heroType) UIUtils.SetLabelText(self.UICommonPopUp.txt_Title, Const_IDS[heroTypeData.TaskName]) -- 弹窗名 self.dragDict = {} self.rewardCfgList = {} self:RefreshFameRewardView() end function UIGoldenHeroFameReward:OnCloseActivitySelf(viewClassPath, activityId) if viewClassPath == self.__viewClassPath then if self.activityId and activityId == self.activityId then self:CloseView() end end end function UIGoldenHeroFameReward:OnBackButtonPressed() self:OnButtonClicked(self.UICommonPopUp.btn_Close) end function UIGoldenHeroFameReward:OnButtonClicked(comp) if comp == self.UICommonPopUp.btn_Close then self:CloseView() end end function UIGoldenHeroFameReward:OnCellInit(scrollRect, index, cellTable, data) UIUtils.SetLabelText(cellTable.txt_Name, Const_IDS[data.LevelName]) -- 声明等级名称 UIUtils.SetActive(cellTable.img_Current, self.curTaskLevel == data.LevelID) --通关奖励 local rewardDatas = data.Item_Table for i, rewardData in ipairs(rewardDatas) do local contentItem = cellTable.Content[i] if not contentItem then contentItem = self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.Content, cellTable.item.gameObject) end UTL.Item.SetItemCell(contentItem, rewardData.ItemID, rewardData.ItemNum) UIUtils.SetActive(contentItem.gameObject, true) end for i = #rewardDatas + 1, #cellTable.Content do UIUtils.SetActive(cellTable.Content[i].gameObject, false) end UIUtils.ResetScrollRect(cellTable.ScrollView) -- 位置重置 self.loop_AchievementLevel:RegistTriggerEvent(cellTable.drag_Obj, UIEventTriggerType.BeginDrag,index) self.loop_AchievementLevel:RegistTriggerEvent(cellTable.drag_Obj, UIEventTriggerType.Drag,index) self.loop_AchievementLevel:RegistTriggerEvent(cellTable.drag_Obj, UIEventTriggerType.EndDrag,index) self.dragDict[cellTable.drag_Obj.gameObject] = cellTable.ScrollView.gameObject end function UIGoldenHeroFameReward:OnCellClicked(scrollRect, index, cellTable, target, data) -- 打开物品详情弹窗 local levelRewardTable = data.Item_Table for i,v in ipairs(cellTable.Content) do if v.event_Click == target then UTL.ItemTips.ShowCommonTipsById(levelRewardTable[i].ItemID) break end end end --region *****关卡奖励预览横向滑动***** function UIGoldenHeroFameReward:Cell_OnBeginDrag(scrollRect, index, comp, eventData) if math.abs(eventData.delta.x) > SliderSensitivityParam then self.curDragObj = self.dragDict[comp.gameObject] else self.curDragObj = self.loop_AchievementLevel.gameObject end UIUtils.ExecuteBeginDrag(self.curDragObj, eventData) end function UIGoldenHeroFameReward:Cell_OnDrag(scrollRect, index, comp, eventData) UIUtils.ExecuteDrag(self.curDragObj, eventData) end function UIGoldenHeroFameReward:Cell_OnEndDrag(scrollRect, index, comp, eventData) UIUtils.ExecuteEndDrag(self.curDragObj, eventData) end --endregion *****关卡奖励预览横向滑动***** function UIGoldenHeroFameReward:RefreshFameRewardView() self.curTaskLevel = MDL.GoldenHeroFame.GetCurrentFameLevelIDAndExp(self.activityId, self.heroType) for k,v in DataSheetManager.GoldHeroActivityTaskLevel[self.heroType]:GetEnumerator() do -- 第一档声明等级没有奖励,不显示。从第二档等级开始显示 if k > 1 then self.loop_AchievementLevel:AddData(v,0) table.insert(self.rewardCfgList, v) end end self.loop_AchievementLevel:SelectIndex(self.curTaskLevel - 2) self.loop_AchievementLevel:MoveIndex(self.curTaskLevel - 2) end return UIGoldenHeroFameReward