local UIAwakenActivityRank = UIViewClass() function UIAwakenActivityRank:OnOpened(context) self:RegistSystemEvent(EventID.UI_RefreshRankInfo, self.InitRank) self.heroId = context.heroId MDL.Rank.GetRankInfoReq(MDL.Rank.RankType.AwakenActivity, {bossId = self.heroId}, CTL.Rank.SortType.MyServer) end function UIAwakenActivityRank:InitRank() local rankInfo = MDL.Rank.GetRankInfoDataByType(MDL.Rank.RankType.AwakenActivity) UIUtils.SetActive(self.obj_Rank, #rankInfo == 0) self.loop_Rank:ReloadAll(rankInfo) local myRankInfo = MDL.Rank.GetMyRankInfo() if myRankInfo.index == 0 then self.state_MyRankBg:SetState(3) UIUtils.SetLabelText(self.txt_MyRank, Const_IDS["IDS_FightThrone_None"]) else UIUtils.SetLabel(self.txt_MyRank, myRankInfo.index) self.state_MyRankBg:SetState(myRankInfo.index <= 3 and myRankInfo.index - 1 or 3) end local hasReward = false if myRankInfo.index > 0 then for i, v in DataSheetManager.HeroAwakenRankReward:GetDataByHeroID_Rank(self.heroId) do if myRankInfo.index <= v.Rank then local cfg = DataSheetManager.HeroAwakenRankRewardRepeat:GetDataByID(v.RankRewardID) self.loop_MyRankReward:ReloadAll(cfg.Item_Table) hasReward = true break end end end UIUtils.SetLabelText(self.txt_NoReward, Const_IDS["IDS_FightThrone_None"]) UIUtils.SetActive(self.txt_NoReward.gameObject, not hasReward) end function UIAwakenActivityRank:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.loop_Rank then UIUtils.SetLabel(cellTable.txt_Others, data.index) cellTable.state_Rank:SetState(data.index <= 3 and data.index - 1 or 3) UIUtils.SetLabel(cellTable.txt_PlayerName, data.name) UIUtils.SetLabel(cellTable.txt_Score, data.param1) elseif scrollRect == self.loop_MyRankReward then UTL.Item.SetItemCell(cellTable.item, data.ItemID, data.ItemNum) end end function UIAwakenActivityRank:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.loop_MyRankReward then UTL.ItemTips.ShowCommonTipsById(data.ItemID) end end return UIAwakenActivityRank