local UIGuildEscortRewardPreview = UIViewClass() local TabType = { TransportReward = 1, CutOutReward = 2, GuildReward = 3, } local TabTypeIds = { [TabType.TransportReward] = Const_IDS.IDS_Escort_EscortReward, [TabType.CutOutReward] = Const_IDS.IDS_Escort_RobAward, [TabType.GuildReward] = Const_IDS.IDS_Escort_GuildReward, } local ActivityScoreItemID = 132 -- 活动积分道具Id -------------------- function UIGuildEscortRewardPreview:OnOpened(context) self.highRobRewardTime = DataSheetManager.ConstData:GetDataByID("EscortRobNum1").IntValue self.curTabType = TabType.TransportReward self:InitPanel() end function UIGuildEscortRewardPreview:OnBackButtonPressed() self:OnButtonClicked(self.UICommonPopUpTab.btn_Close) end function UIGuildEscortRewardPreview:OnButtonClicked(comp) if self.UICommonPopUpTab.btn_Close == comp then self:CloseView() end end function UIGuildEscortRewardPreview:OnValueChanged(comp, value) if self.group_Toggle == comp then if self.curTabType == TabType.TransportReward then self:RefreshTransportShow(MDL.GuildEscort.PerfectEscort - value) -- 初始化时时倒叙 elseif self.curTabType == TabType.CutOutReward then self:RefreshCutOutShow(MDL.GuildEscort.PerfectEscort - value) -- 初始化时时倒叙 end end end function UIGuildEscortRewardPreview:OnCellInit(scrollRect, index, cellTable, data) if self.UICommonPopUpTab.loop_Tab == scrollRect then UIUtils.SetActive(cellTable.img_Arrow, false) UIUtils.SetActive(cellTable.img_ArrowS, false) UIUtils.SetLabelText(cellTable.txt_Name_Nomal, TabTypeIds[data]) UIUtils.SetLabelText(cellTable.txt_Name_Selected, TabTypeIds[data]) elseif self.loop_Results == scrollRect then -- 按照单双号设置背景 if index % 2 == 1 then cellTable.State:SetState(1) else cellTable.State:SetState(0) end -- 设置提示信息 if self.curTabType == TabType.TransportReward then if data.BeRobbed == 0 then UIUtils.SetLabelText(cellTable.txt_Result, Const_IDS.IDS_Escort_NoRobed) else UIUtils.SetLabel(cellTable.txt_Result, string.FormatByIdsId(Const_IDS.IDS_Escort_RobedTime, data.BeRobbed)) end else UIUtils.SetLabelText(cellTable.txt_Result, data.RewardHint) end -- 设置奖励显示 local content = cellTable.content UIUtils.SetLocalPosition(content.gameObject, 0, 0, 0) for i, v in ipairs(data.RewardList) do self:CreateCellItemObj(cellTable.cell.gameObject, content, i, v.ItemID, math.floor((v.ItemNum * data.RewardCoefficient) + 0.5), false) end for i = #data.RewardList + 1, #content do UIUtils.SetActive(content[i].gameObject, false) end elseif self.loop_Results2 == scrollRect then -- 按照单双号设置背景 if index % 2 == 1 then cellTable.State:SetState(1) else cellTable.State:SetState(0) end -- 设置排行名次显示 self:SetRankIcon(cellTable, data.GuildEscortRank) -- 设置拍卖奖励显示 if #data.RewardList > 0 then cellTable.rankReward_State:SetState(0) local content = cellTable.content UIUtils.SetLocalPosition(content.gameObject, 0, 0, 0) for i, v in ipairs(data.RewardList) do self:CreateCellItemObj(cellTable.cell.gameObject, content, i, v.ItemID, v.ItemNum, v.isAuction) end for i = #data.RewardList + 1, #content do UIUtils.SetActive(content[i].gameObject, false) end else cellTable.rankReward_State:SetState(1) end end end function UIGuildEscortRewardPreview:OnCellClicked(scrollRect, index, cellTable, target, data) if self.loop_Results == scrollRect then local content = cellTable.content for i = 1, #content do local item = content[i] if item.event_Click == target then UTL.ItemTips.ShowCommonTipsById(data.RewardList[i].ItemID) end end elseif self.loop_Results2 == scrollRect then local content = cellTable.content for i = 1, #content do local item = content[i] if item.event_Click == target then UTL.ItemTips.ShowCommonTipsById(data.RewardList[i].ItemID) end end end end function UIGuildEscortRewardPreview:OnCellSelect(scrollRect, index, cellTable, data) if scrollRect == self.UICommonPopUpTab.loop_Tab then self.curTabType = data if data == TabType.TransportReward then self.State:SetState(0) self:InitToggleTop() elseif data == TabType.CutOutReward then self.State:SetState(0) self:InitToggleTop() elseif data == TabType.GuildReward then self.State:SetState(1) self:RefreshGuildShow() end end end -------------------- function UIGuildEscortRewardPreview:InitPanel() -- 设置标题 UIUtils.SetLabelText(self.UICommonPopUpTab.txt_Title, Const_IDS.IDS_GuildWar_RewardPreviewBtn) -- 设置左侧列表 for tabType, _ in ipairs(TabTypeIds) do self.UICommonPopUpTab.loop_Tab:AddData(tabType, 0) end -- 默认选中第一个 self.UICommonPopUpTab.loop_Tab:SelectIndex(0) end function UIGuildEscortRewardPreview:InitToggleTop() -- 劫镖、运镖页签相同只初始化一次(减少计算开销) if self.group_Toggle.Count > 0 then self.group_Toggle:SelectIndex(0) return end local index = 1 local toggleIdsList = {} for i = MDL.GuildEscort.PerfectEscort, 1, -1 do local escortData = DataSheetManager.GuildEscortData:GetDataByID(i) toggleIdsList[index] = Const_IDS[escortData.NameDes] index = index + 1 end for i = index, #toggleIdsList do table.remove(toggleIdsList) end UTL.Toggle.InitToggleGroupByIDS(self.group_Toggle, "txtName", toggleIdsList) self.group_Toggle:SelectIndex(0) end function UIGuildEscortRewardPreview:RefreshTransportShow(curLevelEscort) UIUtils.SetLabelText(self.txt_Tip, Const_IDS.IDS_Escort_RewardTip1) local rewardList = {} local escortData = DataSheetManager.GuildEscortData:GetDataByID(curLevelEscort) table.insert(rewardList, {ItemID = ActivityScoreItemID, ItemNum = escortData.EscortGuildCredit}) -- 第一个道具一定是活动积分 local escortGuildReward = DataSheetManager.EscortGuildReward:GetDataByID(escortData.EscortGuildRewardID) for _, v in ipairs(escortGuildReward.Item_Table) do table.insert(rewardList, v) end local escortPersonReward = DataSheetManager.EscortPersonReward:GetDataByID(escortData.EscortPersonRewardID) for _, v in ipairs(escortPersonReward.Item_Table) do table.insert(rewardList, v) end self.loop_Results:ClearCells() self.loop_Results:AddData({BeRobbed = 0, RewardCoefficient = 1, RewardList = rewardList}, 0) -- 设置未被劫镖状态 for i, v in DataSheetManager.GuildEscortBeRobbed:GetEnumerator() do self.loop_Results:AddData({BeRobbed = v.ID, RewardCoefficient = v.RewardCoefficient, RewardList = rewardList}, 0) end end function UIGuildEscortRewardPreview:RefreshCutOutShow(curLevelEscort) UIUtils.SetLabel(self.txt_Tip, string.FormatByIdsId(Const_IDS.IDS_Escort_RewardTip, self.highRobRewardTime, self.highRobRewardTime)) local rewardCoefficient for i, v in DataSheetManager.GuildEscortRob:GetEnumerator() do rewardCoefficient = v.RewardCoefficient break end self.loop_Results:ClearCells() self.loop_Results:AddData({RewardHint = Const_IDS.IDS_Escort_HighReward, RewardCoefficient = 1, RewardList = self:GetCutOutReward(curLevelEscort, true)}, 0) -- 设置未被劫镖状态 self.loop_Results:AddData({RewardHint = Const_IDS.IDS_Escort_NomalReward, RewardCoefficient = 1, RewardList = self:GetCutOutReward(curLevelEscort, false)}, 0) -- 设置未被劫镖状态 end function UIGuildEscortRewardPreview:RefreshGuildShow() UIUtils.SetLabelText(self.txt_Tip, Const_IDS.IDS_Auction_LootDesc) local isWarZoneOpen = CTL.WarZone.IsWarZoneOpen() local isUpdate = self.loop_Results2.Count > 0 self.loop_Results2:ClearCells() for i, v in DataSheetManager.GuildEscortRank:GetEnumerator() do local rewardPoolID if isWarZoneOpen then rewardPoolID = v.CrossSeverRewardPoolID else rewardPoolID = v.RewardPoolID end local rewardList = {} for _, reward in ipairs(MDL.GuildAuction.GetAuctionRewardsShowList(rewardPoolID, LuaConst.ActivityType.GuildEscort)) do table.insert(rewardList, reward) end self.loop_Results2:AddData({GuildEscortRank = v, RewardList = rewardList}, 0) end end function UIGuildEscortRewardPreview:SetRankIcon(cell, data) if data.Rank > 0 and data.Rank <= 2 then cell.rank_State:SetState(data.Rank - 1) else cell.rank_State:SetState(2) local preRankConfig = DataSheetManager.GuildEscortRank:GetDataByID(data.ID - 1) if data.Rank == 0 then UIUtils.SetLabel(cell.txt_Rank, string.FormatByIdsId(Const_IDS.IDS_GuildBoss_RangeRankLabel3, preRankConfig.Rank)) else UIUtils.SetLabel(cell.txt_Rank, string.FormatByIdsId(Const_IDS.IDS_GuildBoss_RangeRankLabel2, preRankConfig.Rank + 1, data.Rank)) end end end function UIGuildEscortRewardPreview:GetCutOutReward(curLevelEscort, isUseful) local rewardList = {} local escortData = DataSheetManager.GuildEscortData:GetDataByID(curLevelEscort) if isUseful then table.insert(rewardList, {ItemID = ActivityScoreItemID, ItemNum = escortData.EscortRobCredit1}) -- 第一个道具一定是活动积分 else table.insert(rewardList, {ItemID = ActivityScoreItemID, ItemNum = escortData.EscortRobCredit2}) -- 第一个道具一定是活动积分 end local robPersonReward if isUseful then robPersonReward = DataSheetManager.RobPersonReward:GetDataByID(escortData.RobPersonRewardID1) else robPersonReward = DataSheetManager.RobPersonReward:GetDataByID(escortData.RobPersonRewardID2) end for _, v in ipairs(robPersonReward.Item_Table) do table.insert(rewardList, v) end local robGuildReward if isUseful then robGuildReward = DataSheetManager.RobGuildReward:GetDataByID(escortData.RobGuildRewardID1) else robGuildReward = DataSheetManager.RobGuildReward:GetDataByID(escortData.RobGuildRewardID2) end for _, v in ipairs(robGuildReward.Item_Table) do table.insert(rewardList, v) end return rewardList end function UIGuildEscortRewardPreview:CreateCellItemObj(cellOjb, content, index, id, num, isAuction) local item = content[index] if not item then item = self:InstantiateCellCollection(cellOjb, content, self.Item_template.gameObject) end UIUtils.SetActive(item.gameObject, true) UTL.Item.SetItemCell(item, id, num) UIUtils.SetActive(item.img_Auction, isAuction) end return UIGuildEscortRewardPreview