local UIExpelMonsterPreReward = UIViewClass() local expelMonsterRewardIDS = { [1] = Const_IDS.IDS_ActivityBossFight_Hint_7, --势力驱役奖励 [2] = Const_IDS.IDS_ActivityBossFight_Hint_8, --驱役战斗奖励 [3] = Const_IDS.IDS_ActivityBossFight_Hint_9, --个人排行奖励 } function UIExpelMonsterPreReward:OnOpened(context) UIUtils.SetLabelText(self.UICommonPopUpTab.txt_Title, Const_IDS.IDS_BossChallenge_Reward_Title) UIUtils.SetActive(self.RewardItem.gameObject,false) for _, v in ipairs(expelMonsterRewardIDS) do self.UICommonPopUpTab.loop_Tab:AddData(v, 0) end self.guildRewardGroup = CTL.ExpelMonster.GetGuildRewardGroup() for k,v in DataSheetManager.ActivityBossFightGuildReward:GetEnumerator() do if v.GuildRewardGroup == self.guildRewardGroup then self.loop_GuildRankReward:AddData(v,0) end end for k,v in DataSheetManager.ActivityBossFightBox:GetEnumerator() do self.loop_BattleRankReward:AddData(v,0) end self.rankRewardGroup = CTL.ExpelMonster.GetRankRewardGroup() for k,v in DataSheetManager.ActivityBossFightRank:GetEnumerator() do if v.RankRewardGroup == self.rankRewardGroup then self.loop_SingleRankReward:AddData(v,0) end end self.UICommonPopUpTab.loop_Tab:SelectIndex(0) end function UIExpelMonsterPreReward:OnButtonClicked(comp) if comp == self.UICommonPopUpTab.btn_Close then self:CloseView() end end function UIExpelMonsterPreReward:OnBackButtonPressed() self:OnButtonClicked(self.UICommonPopUpTab.btn_Close) end function UIExpelMonsterPreReward:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.UICommonPopUpTab.loop_Tab then UIUtils.SetLabelText(cellTable.txt_Name_Nomal, data) UIUtils.SetLabelText(cellTable.txt_Name_Selected, data) UIUtils.SetActive(cellTable.img_Arrow, false) UIUtils.SetActive(cellTable.img_ArrowS, false) elseif scrollRect == self.loop_GuildRankReward then local cfg = DataSheetManager.ActivityBossFightGuildReward:GetDataByGuildRewardGroup_ID(self.guildRewardGroup, index+1) UIUtils.SetLabel(cellTable.txt_Stage, string.FormatByIdsKey("IDS_ActivityBossFight_Hint_18", cfg.ID)) UIUtils.SetLabel(cellTable.txt_Info, string.FormatByIdsKey("IDS_ActivityBossFight_Hint_19", cfg.IntegrationNumber)) local rewardData = cfg.Reward_Table self:SetNormalCellRewards(cellTable,rewardData) elseif scrollRect == self.loop_BattleRankReward then UIUtils.SetLabelText(cellTable.txt_Box, Const_IDS[data.BoxIDS]) UIUtils.SetImageByAssetBundle(cellTable.img_Box, data.BoxIcon) local cfg = DataSheetManager.ActivityBossFightBox:GetDataByBoxReward(index+1) local rewardData = {} for _, value in ipairs(cfg.FixedReward_Table) do if value.FixedItem then table.insert(rewardData, value) end end local fixedRewardNum = #rewardData for _, value in ipairs(cfg.RandomReward_Table) do if value.RandomItem then table.insert(rewardData,value) end end self:SetCellBoxRewards(cellTable, rewardData, fixedRewardNum) elseif scrollRect == self.loop_SingleRankReward then local cfg = DataSheetManager.ActivityBossFightRank:GetDataByRankRewardGroup_RankID(self.rankRewardGroup, index+1) local rewardData = cfg.Reward_Table self:SetNormalCellRewards(cellTable, rewardData) if index <= 2 then if cfg.Rank2 > cfg.Rank1 then UIUtils.SetLabel(cellTable.txt_Rank, cfg.Rank1.."-"..cfg.Rank2) else UIUtils.SetLabel(cellTable.txt_Rank, "") cellTable.state_RankIcon:SetState(index) end UIUtils.SetActive(cellTable.img_Rank, true) else UIUtils.SetActive(cellTable.img_Rank, false) if cfg.Rank2 == cfg.Rank1 then UIUtils.SetLabel(cellTable.txt_Rank, cfg.Rank1) else UIUtils.SetLabel(cellTable.txt_Rank, cfg.Rank1.."-"..cfg.Rank2) end end end end function UIExpelMonsterPreReward:SetCellBoxRewards(cellTable, rewardData, fixedRewardNum) for i, reward in ipairs(rewardData) do local item = cellTable.ItemContent[i] if not item then item = self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.ItemContent, self.RewardItem.gameObject) end if i > fixedRewardNum then UIUtils.SetActive(item.img_Random,true) --随机标签 UTL.Item.SetItemCell(item.Item, reward.RandomItem, reward.RandomItemNum) else UIUtils.SetActive(item.img_Random,false) UTL.Item.SetItemCell(item.Item, reward.FixedItem, reward.FixedItemNum) end UIUtils.SetActive(item.gameObject, true) end for i = #rewardData + 1, #cellTable.ItemContent do UIUtils.SetActive(cellTable.ItemContent[i].gameObject, false) end end function UIExpelMonsterPreReward:SetNormalCellRewards(cellTable, rewardData, fixedRewardNum) for i, reward in ipairs(rewardData) do local item = cellTable.ItemContent[i] if not item then item = self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.ItemContent, self.RewardItem.gameObject) end UTL.Item.SetItemCell(item.Item, reward.Item, reward.ItemNum) UIUtils.SetActive(item.gameObject, true) end for i = #rewardData + 1, #cellTable.ItemContent do UIUtils.SetActive(cellTable.ItemContent[i].gameObject, false) end end function UIExpelMonsterPreReward:OnCellSelect(scrollRect, index, cellTable, data) if scrollRect == self.UICommonPopUpTab.loop_Tab then self.state_RankTitle:SetState(index) if index == 1 then UIUtils.SetActive(self.group_Notice, false) self.loop_BattleRankReward:MoveIndex(0) return end UIUtils.SetActive(self.group_Notice, true) if index == 0 then self.loop_GuildRankReward:MoveIndex(0) UIUtils.SetLabel(self.txt_Notice, string.FormatByIdsKey("IDS_ActivityBossFight_Hint_10", UTL.Time.GetDiffLocalStrById(1))) elseif index == 2 then self.loop_SingleRankReward:MoveIndex(0) local time = DataSheetManager.ConstData:GetDataByID("ActivityBossFightDailyRankEndTime").IntValue UIUtils.SetLabel(self.txt_Notice, string.FormatByIdsKey("IDS_ActivityBossFight_Hint_11", UTL.Time.GetDiffLocalStrById(time))) end end end function UIExpelMonsterPreReward:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.loop_GuildRankReward then for i = 1, #cellTable.ItemContent do if cellTable.ItemContent[i].Item.event_Click == target then local rewardData = DataSheetManager.ActivityBossFightGuildReward:GetDataByGuildRewardGroup_ID(self.guildRewardGroup, index+1).Reward_Table UTL.ItemTips.ShowCommonTipsById(rewardData[i].Item) end end elseif scrollRect == self.loop_BattleRankReward then for i = 1, #cellTable.ItemContent do if cellTable.ItemContent[i].Item.event_Click == target then local cfg = DataSheetManager.ActivityBossFightBox:GetDataByBoxReward(index+1) local rewardData = {} for _, value in ipairs(cfg.FixedReward_Table) do if value.FixedItem then table.insert(rewardData, value) end end local fixedRewardNum = #rewardData for _, value in ipairs(cfg.RandomReward_Table) do if value.RandomItem then table.insert(rewardData,value) end end if i > fixedRewardNum then UTL.ItemTips.ShowCommonTipsById(rewardData[i].RandomItem) else UTL.ItemTips.ShowCommonTipsById(rewardData[i].FixedItem) end end end elseif scrollRect == self.loop_SingleRankReward then for i = 1, #cellTable.ItemContent do if cellTable.ItemContent[i].Item.event_Click == target then local rewardData = DataSheetManager.ActivityBossFightRank:GetDataByRankRewardGroup_RankID(self.rankRewardGroup, index+1).Reward_Table UTL.ItemTips.ShowCommonTipsById(rewardData[i].Item) end end end end return UIExpelMonsterPreReward