local UIFairSoloTournamentReward = UIViewClass() local TypeTab = { ChampionReward = 1, --冠军奖励 FinalsReward = 2, --决赛奖励(冠军 亚军 4强) AdvanceReward_1 = 3, --晋级赛第二天奖励(8强 16强) AdvanceReward_2 = 4, --晋级赛第一天奖励(32强 64强 128强) GroupReward = 5, --小组赛奖励 GuessReward = 6, --竞猜奖励 } local CONST_GROUP_REWARD = DataSheetManager.ConstData:GetDataByID("FairTournamentJoinReward").IntValue function UIFairSoloTournamentReward:OnCreated() self.lightEffectId1 = nil -- 冠军奖励 self.lightEffectId2 = nil -- 亚军奖励 end function UIFairSoloTournamentReward:OnOpened(context) --最好成绩是小组赛,需要先请求小组赛赛程数据,用来计算小组赛名次 local bestStage = MDL.FairSoloTournament.GetMyHighestStage() if bestStage == MDL.FairSoloTournament.ConfigStage.Group_2 and MDL.FairSoloTournament.GetStageInfo(MDL.FairSoloTournament.ConfigStage.Group_2) == nil then MDL.FairSoloTournament.FairTournamentGetStageInfoReq(MDL.FairSoloTournament.ConfigStage.Group_2) end self.itemSourceObj = self.itemParent.gameObject self:ShowHideTips(false) self.rewardDataList = {} self:RegistSystemEvent(EventID.UI_FairSoloTournament_OnSeasonEnd, self.OnBackButtonPressed) self:RegistSystemEvent(EventID.UI_FairSoloTournament_RefreshStageInfo, self.SetMyRank) for i = TypeTab.ChampionReward, TypeTab.GuessReward do self.loop_LeftRewardTab:AddData(i, 0) end self.loop_LeftRewardTab:SelectIndex(0) self:SetMyRank() end function UIFairSoloTournamentReward:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.loop_LeftRewardTab then if data == TypeTab.ChampionReward then UIUtils.SetLabelText(cellTable.txt_UnselectedTabName, Const_IDS["IDS_FairTournament_ReWardPreTitle1"]) UIUtils.SetLabelText(cellTable.txt_SelectedTabName, Const_IDS["IDS_FairTournament_ReWardPreTitle1"]) elseif data == TypeTab.FinalsReward then UIUtils.SetLabelText(cellTable.txt_UnselectedTabName, Const_IDS["IDS_FairTournament_ReWardPreTitle2"]) UIUtils.SetLabelText(cellTable.txt_SelectedTabName, Const_IDS["IDS_FairTournament_ReWardPreTitle2"]) elseif data == TypeTab.GroupReward then UIUtils.SetLabelText(cellTable.txt_UnselectedTabName, Const_IDS["IDS_FairTournament_ReWardPreTitle4"]) UIUtils.SetLabelText(cellTable.txt_SelectedTabName, Const_IDS["IDS_FairTournament_ReWardPreTitle4"]) elseif data == TypeTab.GuessReward then UIUtils.SetLabelText(cellTable.txt_UnselectedTabName, Const_IDS["IDS_FairTournament_ReWardPreTitle5"]) UIUtils.SetLabelText(cellTable.txt_SelectedTabName, Const_IDS["IDS_FairTournament_ReWardPreTitle5"]) elseif data == TypeTab.AdvanceReward_1 then cellTable.txt_UnselectedTabName.text = string.FormatByIdsId(Const_IDS.IDS_FairTournament_Race2Day, 2) cellTable.txt_SelectedTabName.text = string.FormatByIdsId(Const_IDS.IDS_FairTournament_Race2Day, 2) elseif data == TypeTab.AdvanceReward_2 then cellTable.txt_UnselectedTabName.text = string.FormatByIdsId(Const_IDS.IDS_FairTournament_Race2Day, 1) cellTable.txt_SelectedTabName.text = string.FormatByIdsId(Const_IDS.IDS_FairTournament_Race2Day, 1) end elseif scrollRect == self.loop_FTReward then if self.rewardType == TypeTab.GroupReward then cellTable.UIState_Rank:SetState(2) if index == 0 then UIUtils.SetLabelText(cellTable.txt_Rank, Const_IDS.IDS_FairTournament_JoinReward) else cellTable.txt_Rank.text = string.FormatByIdsId(Const_IDS.IDS_FairTournament_RaceOneRank1, index) end local myRank = MDL.FairSoloTournament.GetMyGroupRank() if myRank and myRank == index then cellTable.UIState_Type:SetState(0) else cellTable.UIState_Type:SetState(1) end elseif self.rewardType == TypeTab.AdvanceReward_1 then cellTable.UIState_Rank:SetState(2) if index == 0 then UIUtils.SetLabel(cellTable.txt_Rank, string.FormatByIdsId(Const_IDS["IDS_FairTournament_FinalRank"], 8)) elseif index == 1 then UIUtils.SetLabel(cellTable.txt_Rank, string.FormatByIdsId(Const_IDS["IDS_FairTournament_FinalRank"], 16)) end local bestStage = MDL.FairSoloTournament.GetMyHighestStage() if (index == 0 and bestStage == MDL.FairSoloTournament.ConfigStage.Finals_8T4) or (index == 1 and bestStage == MDL.FairSoloTournament.ConfigStage.Finals_16T8) then cellTable.UIState_Type:SetState(0) else cellTable.UIState_Type:SetState(1) end elseif self.rewardType == TypeTab.AdvanceReward_2 then cellTable.UIState_Rank:SetState(2) if index == 0 then UIUtils.SetLabel(cellTable.txt_Rank, string.FormatByIdsId(Const_IDS["IDS_FairTournament_FinalRank"], 32)) elseif index == 1 then UIUtils.SetLabel(cellTable.txt_Rank, string.FormatByIdsId(Const_IDS["IDS_FairTournament_FinalRank"], 64)) elseif index == 2 then UIUtils.SetLabel(cellTable.txt_Rank, string.FormatByIdsId(Const_IDS["IDS_FairTournament_FinalRank"], 128)) end local bestStage = MDL.FairSoloTournament.GetMyHighestStage() if (index == 0 and bestStage == MDL.FairSoloTournament.ConfigStage.Finals_32T16) or (index == 1 and bestStage == MDL.FairSoloTournament.ConfigStage.Finals_64T32) or (index == 2 and bestStage == MDL.FairSoloTournament.ConfigStage.Finals_128T64) then cellTable.UIState_Type:SetState(0) else cellTable.UIState_Type:SetState(1) end elseif self.rewardType == TypeTab.FinalsReward then if index == 0 then cellTable.UIState_Rank:SetState(0) UIUtils.SetLabelText(cellTable.txt_Rank01, Const_IDS["IDS_FairTournament_FinalFirst"]) elseif index == 1 then UIUtils.SetLabelText(cellTable.txt_Rank02, Const_IDS["IDS_FairTournament_FinalSecond"]) cellTable.UIState_Rank:SetState(1) else cellTable.UIState_Rank:SetState(2) UIUtils.SetLabel(cellTable.txt_Rank, string.FormatByIdsId(Const_IDS["IDS_FairTournament_FinalRank"], 4)) end local bestStage = MDL.FairSoloTournament.GetMyHighestStage() if (index == 2 and bestStage == MDL.FairSoloTournament.ConfigStage.Finals_4T2) then cellTable.UIState_Type:SetState(0) else cellTable.UIState_Type:SetState(1) end end --奖励 local rewards = DataSheetManager.FairTournamentRewardRepeat:GetDataByAttrRepeatID(data).Item_Table self:SetRewardItems(cellTable, rewards) end end function UIFairSoloTournamentReward:SetRewardItems(cellTable, rewards) cellTable.content.gameObject.transform:SetAnchoredPosition(0) for i, rewardData in ipairs(rewards) do local contentItem = cellTable.content[i] if contentItem == nil then contentItem = self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.content, self.itemSourceObj) end contentItem.ItemID = rewardData.ItemID UIUtils.SetActive(contentItem.gameObject, true) UTL.Item.SetItemCell(contentItem.item, rewardData.ItemID, rewardData.ItemNum, false) end for i = #rewards + 1, #cellTable.content do UIUtils.SetActive(cellTable.content[i].gameObject, false) end end function UIFairSoloTournamentReward:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.loop_LeftRewardTab then self:OnSwitchTab(data) elseif scrollRect == self.loop_FTReward then for _, v in ipairs(cellTable.content) do if target == v.item.event_Click then UTL.ItemTips.ShowCommonTipsById(v.ItemID) break end end end end function UIFairSoloTournamentReward:OnSwitchTab(tabType) if tabType == TypeTab.ChampionReward then UIUtils.SetActive(self.group_Reward01, true) UIUtils.SetActive(self.group_Reward02, false) UIUtils.SetActive(self.group_Reward03, false) if not self.lightEffectId1 then local rewardList = DataSheetManager.FairMatchStageRankReward:GetDataByID(MDL.FairSoloTournament.ConfigStage.Finals_2T1).RankRewardShowID local rewardArray = DataSheetManager.FairTournamentRewardRepeat:GetDataByAttrRepeatID(rewardList[1]).Item_Table for __, reawadItem in ipairs(rewardArray) do local itemCfgData = DataSheetManager.ItemData:GetDataByID(reawadItem.ItemID) if itemCfgData.SecondType == LuaConst.ItemType.HeroEffect then if not self.lightEffectId1 then self.lightEffectId1 = reawadItem.ItemID UTL.Item.ItemIconByName(self.group_High.img_Show, itemCfgData.Icon) UIUtils.SetLabelText(self.group_High.lab_High, Const_IDS[itemCfgData.Name]) else self.lightEffectId2 = reawadItem.ItemID UTL.Item.ItemIconByName(self.group_Low.img_Show, itemCfgData.Icon) UIUtils.SetLabelText(self.group_Low.lab_Low, Const_IDS[itemCfgData.Name]) end end end end elseif tabType == TypeTab.FinalsReward then UIUtils.SetActive(self.group_Reward01, false) UIUtils.SetActive(self.group_Reward02, true) UIUtils.SetActive(self.group_Reward03, false) self:LoadReward(tabType) elseif tabType == TypeTab.AdvanceReward_1 or tabType == TypeTab.AdvanceReward_2 then UIUtils.SetActive(self.group_Reward01, false) UIUtils.SetActive(self.group_Reward02, true) UIUtils.SetActive(self.group_Reward03, false) self:LoadReward(tabType) elseif tabType == TypeTab.GroupReward then UIUtils.SetActive(self.group_Reward01, false) UIUtils.SetActive(self.group_Reward02, true) UIUtils.SetActive(self.group_Reward03, false) self:LoadReward(tabType) elseif tabType == TypeTab.GuessReward then UIUtils.SetActive(self.group_Reward01, false) UIUtils.SetActive(self.group_Reward02, false) UIUtils.SetActive(self.group_Reward03, true) end end function UIFairSoloTournamentReward:LoadReward(tabType) self.rewardType = tabType table.clearArray(self.rewardDataList) if tabType == TypeTab.FinalsReward then --冠军 亚军4强 table.insert(self.rewardDataList, DataSheetManager.FairMatchStageRankReward:GetDataByID(MDL.FairSoloTournament.ConfigStage.Finals_2T1).RankRewardShowID[1]) table.insert(self.rewardDataList, DataSheetManager.FairMatchStageRankReward:GetDataByID(MDL.FairSoloTournament.ConfigStage.Finals_2T1).RankRewardShowID[2]) table.insert(self.rewardDataList, DataSheetManager.FairMatchStageRankReward:GetDataByID(MDL.FairSoloTournament.ConfigStage.Finals_4T2).RankRewardShowID[1]) elseif tabType == TypeTab.AdvanceReward_1 then --8强 16强 table.insert(self.rewardDataList, DataSheetManager.FairMatchStageRankReward:GetDataByID(MDL.FairSoloTournament.ConfigStage.Finals_8T4).RankRewardShowID[1]) table.insert(self.rewardDataList, DataSheetManager.FairMatchStageRankReward:GetDataByID(MDL.FairSoloTournament.ConfigStage.Finals_16T8).RankRewardShowID[1]) elseif tabType == TypeTab.AdvanceReward_2 then --32强 64强 128强) table.insert(self.rewardDataList, DataSheetManager.FairMatchStageRankReward:GetDataByID(MDL.FairSoloTournament.ConfigStage.Finals_32T16).RankRewardShowID[1]) table.insert(self.rewardDataList, DataSheetManager.FairMatchStageRankReward:GetDataByID(MDL.FairSoloTournament.ConfigStage.Finals_64T32).RankRewardShowID[1]) table.insert(self.rewardDataList, DataSheetManager.FairMatchStageRankReward:GetDataByID(MDL.FairSoloTournament.ConfigStage.Finals_128T64).RankRewardShowID[1]) elseif tabType == TypeTab.GroupReward then --小组赛插入参与奖励 self.rewardDataList[1] = CONST_GROUP_REWARD local stageReward = DataSheetManager.FairMatchStageRankReward:GetDataByID(MDL.FairSoloTournament.ConfigStage.Group_2) for i, v in ipairs(stageReward.RankRewardShowID) do table.insert(self.rewardDataList, v) end end self.loop_FTReward:ReloadAll(self.rewardDataList) self.loop_FTReward:MoveIndex(0) end function UIFairSoloTournamentReward:OnButtonClicked(comp) if comp == self.btn_Close then self:CloseView() elseif comp == self.btn_PointReward then UIManager.OpenView(Const_UI_Lua.UIEnum.UIFairSoloTournamentStore) elseif comp == self.btn_TipClose then self:ShowHideTips(false) elseif comp == self.btn_Info then self:ShowHideTips(true) elseif comp == self.group_High.btn_Info_Appearance1 then CTL.ItemSources.ExecuteSourceFunctionById(MDL.ItemSources.SourceType.HeroLightEffect, self.lightEffectId1) elseif comp == self.group_Low.btn_Info_Appearance2 then CTL.ItemSources.ExecuteSourceFunctionById(MDL.ItemSources.SourceType.HeroLightEffect, self.lightEffectId2) end end function UIFairSoloTournamentReward:SetMyRank() -- 设置我的排名 local myRankDesc = CTL.FairSoloTournament.GetMyRankDesc() if myRankDesc then if MDL.FairSoloTournament.CheckIfInCompetition() then self.txt_Rank.text = UIUtils.GetLocalizedTxt(Const_IDS.IDS_FairTournament_NowRank) .. myRankDesc else self.txt_Rank.text = UIUtils.GetLocalizedTxt(Const_IDS.IDS_Chat_BestRank) .. myRankDesc end else self.txt_Rank.text = UIUtils.GetLocalizedTxt(Const_IDS.IDS_Chat_BestRank) .. UIUtils.GetLocalizedTxt(Const_IDS.IDS_FairTournament_NoRaceRank) end end function UIFairSoloTournamentReward:OnBackButtonPressed() self:OnButtonClicked(self.btn_Close) end function UIFairSoloTournamentReward:ShowHideTips(isShow) UIUtils.SetActive(self.group_RewardInfo, isShow) UIUtils.SetActive(self.btn_TipClose, isShow) end return UIFairSoloTournamentReward