local UIHeroMatch1v1SubtitleReward = UIViewClass() function UIHeroMatch1v1SubtitleReward:OnOpened() self:RegistSystemEvent(EventID.UI_WatchWarRewardsInfo, self.RefreshInfo) self:RegistSystemEvent(EventID.UI_WatchWarTimerUpdate, self.RefreshInfo) -- 时间更新刷新 self:RegistSystemEvent(EventID.UI_HeroMatch1v1_CloseView, self.OnBackButtonPressed) -- 赛程结束关闭界面 self:RegistSystemEvent(EventID.UI_HeroMatch3v3_CloseView, self.OnBackButtonPressed) -- 赛程结束关闭界面 MDL.WatchBattle.GetWatchBattleInfoReq() -- 检测当前是否正在观战 MDL.WatchBattle.CheckStopTimerNotWatch() end function UIHeroMatch1v1SubtitleReward:RefreshInfo() local timeDurationFormatStr = MDL.WatchBattle.GetWatchTime() <= 0 and 0 or UTL.Time.FormatTimeBySecondsToHour(MDL.WatchBattle.GetWatchTime() + MDL.WatchBattle.GetWatchWarRequestOffset()) UIUtils.SetLabel( self.txt_Time, string.FormatByIdsId(Const_IDS["IDS_HeroMatch1v1_AlreadyWatchTime"], timeDurationFormatStr) ) for ID, col in ipairs(self.Rewards) do local rewardState, rewardDes, rewardTable = MDL.WatchBattle.GetRewardsInfoByID(ID) -- 奖励标题 UIUtils.SetLabel(col.txt_Task, rewardDes) -- 按钮 UIUtils.SetActive(col.img_Collected, rewardState == MDL.WatchBattle.WatchWarRewardState.Received) UIUtils.SetActive(col.btn_Attend, rewardState ~= MDL.WatchBattle.WatchWarRewardState.Received) col.btn_Attend:SetGray(rewardState == MDL.WatchBattle.WatchWarRewardState.NotAvailable, true) -- 奖励 for index, v in ipairs(rewardTable) do UTL.Item.SetItemCell(col.itemArr[index], v.ItemID, v.ItemNum) end for i = #col.itemArr, #rewardTable + 1, -1 do UIUtils.SetActive(col.itemArr[i].gameObject, false) end end end function UIHeroMatch1v1SubtitleReward:OnBackButtonPressed() self:OnButtonClicked(self.btn_Close) end function UIHeroMatch1v1SubtitleReward:OnButtonClicked(comp) if comp == self.btn_Close then self:CloseView() else -- 领取点击 for ID, v in ipairs(self.Rewards) do if comp == v.btn_Attend then local state = MDL.WatchBattle.GetRewardStateByID(ID) if state == MDL.WatchBattle.WatchWarRewardState.NotAvailable then CTL.Tips.AddTipsMsg(Const_IDS["IDS_HeroMatch1v1_NotFit"]) return end -- 领取奖励 MDL.WatchBattle.GetWatchBattleRewardReq(ID) return end end -- 物品点击 local cfg, subCfg = MDL.WatchBattle.GetWatchRewardCfg() for ID, col in ipairs(self.Rewards) do for i, v in ipairs(col.itemArr) do if comp == v.event_Click then local rewardData = DataSheetManager[cfg]:GetDataByID(ID) local rewardsTable = DataSheetManager[subCfg]:GetDataByAttrRepeatID(rewardData.RankRewardID).Item_Table UTL.ItemTips.ShowCommonTipsById(rewardsTable[i].ItemID) return end end end end end return UIHeroMatch1v1SubtitleReward