--- 公平竞技-3v3(三军争霸) 主界面 local UISyncTeamPVPMainPanel = UIViewClass() local SyncTeamPVPImgPath = ConstAssetPathConfig.SyncTeamPVPImgPath local Common2DScenePrefab = ConstAssetPathConfig.Common2DScenePrefab local ConstShowParams = { [1] = { posX = 0.37, posY = -1, posZ = 0.36 ,scale = 0.7}, [2] = { posX = 1.5, posY = -1, posZ = 0.23 ,scale = 0.7}, [3] = { posX = -0.66, posY = -1, posZ = 0.23 ,scale = 0.7}, } local ConstLightPath = ConstAssetPathConfig.LightLeft function UISyncTeamPVPMainPanel:OnOpened() if not CTL.Unlock.CheckIfFuncUnlock(MDL.Unlock.FunctionType.Battle3V3, self, true) then return end self:RegistSystemEvent(EventID.FunctionUnlockUpdate, self.CheckIfFuncUnlock) self:RegistSystemEvent(EventID.UI_FairPlay_RefreshPVPRankInfo, self.RefreshRankInfoByResp) self:RegistSystemEvent(EventID.UI_FairPlay_RefreshPVPRankInfo, self.RefreshRedPoint) self:RegistSystemEvent(EventID.UI_TeamMatch_MatchTime, self.OnMatchExpression) self:RegistSystemEvent(EventID.UI_FairPlay_TVTSeasonInfoUpdate, self.InitTVTPanel) self:RegistSystemEvent(EventID.UI_FairPlay_TVTSeasonInfoUpdate, self.RefreshRedPoint) self:RegistSystemEvent(CTL.RedPoint.RedPointKey.FairPlay_SyncTeamPVP_Reward, self.RefreshRedPoint) self:RegistSystemEvent(EventID.UI_OperationActivity_DataChanged, self.RefreshSeasonFreeHero) self:RegistSystemEvent(CTL.RedPoint.RedPointKey.FairPlay_KingChallenge, self.RefreshKingChallengeEntry) self:RegistSystemEvent(EventID.UI_TeamFairChampionship_UpdateThumbsUpParam, self.UpdateThumbsUpParam) if MDL.RedPoint.GetOneTimeRedPointInfoByType(MDL.RedPoint.RedPointType.PVP) == 0 then if CTL.Unlock.JudgeIfSatisfiedUnlockTable(DataSheetManager.FuctionUnlock:GetDataByFucID(MDL.Unlock.FunctionType.Battle3V3).Unlock_Table) then CTL.RedPoint.RemoveRedPoint(CTL.RedPoint.RedPointKey.PVP) MDL.RedPoint.OneTimeRedPointRequest(MDL.RedPoint.RedPointType.PVP, 1) end end CTL.SyncTeamPVP.OpenHelpPanel() UIManager.ActiveUIModle(false, "UISyncTeamPVPMainPanel") -- 界面标题 UIUtils.SetLabelText(self.UITemplateTitlePanel.lab_Title, Const_IDS.IDS_UI_Word4) self:RefreshOpenTime() self.modelComponentDataHandle = UTL.UIRender.CreateModelComponentDatas(self.freeHeroShow) local bgTexturePath = ConstAssetPathConfig.bgTexturePath4 UTL.UIRender.Create2DSceneTrans(self.modelComponentDataHandle, Common2DScenePrefab, 1600, 0, 1600, bgTexturePath, true) self:InitTVTPanel() -- 测试武将到期倒计时 local testHeroTimer = MDL.SyncTeamPVP.GetTestHeroTimer() if testHeroTimer > 0 then self:StartRepeatFunc(self.TestHeroUpdateRepeatFunc, testHeroTimer) end self:RefreshKingChallengeEntry() UIUtils.SetActive(self.btn_SkillPlan, MDL.HeroAwaken.GetIsAnyHeroAwaken()) self:UpdateThumbsUpParam(30000, 1) end function UISyncTeamPVPMainPanel:LoadHeroModel() self.loadModelIndex = self.loadModelIndex + 1 if self.loadModelIndex > 3 then self:StopRepeatFunc(self.LoadHeroModel) return end local showInfo = MDL.SyncTeamPVP.GetTeamFairInfoByIndex(self.loadModelIndex) if showInfo then UTL.UIRender.DelayLoadMultiBattleModel(self.modelComponentDataHandle, showInfo, ConstShowParams[self.loadModelIndex], ConstLightPath) end end function UISyncTeamPVPMainPanel:CountryOfficialPlayModelEffect(path, param) return UTL.UIRender.PlayPsEffectByRenderEntityIndex(self.modelComponentDataHandle, path, param.renderEntityIndex) end function UISyncTeamPVPMainPanel:CheckIfFuncUnlock(funcId, isUnlock) if funcId then if funcId == MDL.Unlock.FunctionType.Battle3V3 then CTL.Unlock.CheckIfFuncUnlock(funcId, self, true) elseif funcId == MDL.Unlock.FunctionType.AwakenActivity then UIUtils.SetActive(self.btn_SkillPlan, MDL.HeroAwaken.GetIsAnyHeroAwaken()) elseif funcId == MDL.Unlock.FunctionType.KingChallenge then UIUtils.SetActive(self.btn_KingChallenge, CTL.KingChallenge.IsShowKingChallengeEntry()) end end end function UISyncTeamPVPMainPanel:RefreshRedPoint() self.event_Reward:SetRedPoint(CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.FairPlay_SyncTeamPVP_Reward)) end function UISyncTeamPVPMainPanel:InitTVTPanel() self:ShowRewardState() self:RefreshSeasonInfo() self:UpdateTimer(CTL.TeamMatch.IsActivityMatchingById(LuaConst.ActivityType.TVT)) UIUtils.SetLabelText(self.txt_Rank, Const_IDS["IDS_Rank"]) if CTL.SyncTeamPVP.IsWarZoneStyle() then UIUtils.SetLabelText(self.txt_Rank, Const_IDS["IDS_WarZone_Rank"]) end if MDL.SyncTeamPVP.GetTVTState() == MDL.FairPlay.SeasonState.SeasonOpening then self.btn_Match:SetGray(false, true) self.btn_Match:SetText(CTL.TeamMatch.IsActivityMatchingById(LuaConst.ActivityType.TVT) and UIUtils.GetLocalizedTxt(Const_IDS.IDS_UI_Word20) or UIUtils.GetLocalizedTxt(Const_IDS.IDS_Team_3v3_StartMatch)) else self.btn_Match:SetGray(true, true) self.btn_Match:SetText(UIUtils.GetLocalizedTxt(Const_IDS.IDS_RankOptimization_SeasonOff)) end UIUtils.SetLabel(self.txt_Number,MDL.SyncTeamPVP.GetSeasonId()) MDL.SyncTeamPVP.FairPlayTvTOpenReq() local protectCardIdNum = UTL.Item.GetItemStockCount(CTL.FairPlayCard.protectCard3v3Id) if protectCardIdNum > 0 then UIUtils.SetActive(self.group_Scorecard, true) UIUtils.SetLabel(self.txt_card, "x"..protectCardIdNum) self.cardToggleIsOn = MDL.FairPlayCard.GetIs3V3UseProtectCard() self.toggle_UseCard.isOn = MDL.FairPlayCard.GetIs3V3UseProtectCard() else UIUtils.SetActive(self.group_Scorecard, false) end UIUtils.SetActive(self.btn_Bg, false) UIUtils.SetActive(self.tips_scorcard.gameObject, false) UIUtils.SetActive(self.buff_btn, CTL.KingChallenge.IsHasSeasonBuff()) end function UISyncTeamPVPMainPanel:RefreshRankInfoByResp() local oldLevelRank = MDL.SyncTeamPVP.GetLastDan() local levelRank = MDL.SyncTeamPVP.GetCurDan() local rankData = DataSheetManager.ThreeBattleLevelData:GetDataByLevelID(levelRank) local curStar = rankData.Star local maxStar = rankData.MaxStar --上赛季段位,只推送一次,推完就归0 local lastSeasonDan = MDL.SyncTeamPVP.GetLastSeasonDan() if lastSeasonDan ~= 0 then oldLevelRank = lastSeasonDan end if (levelRank > oldLevelRank and oldLevelRank ~=0) or lastSeasonDan ~= 0 then local oldRankData = DataSheetManager.ThreeBattleLevelData:GetDataByLevelID(oldLevelRank) --播放晋升特效 if oldLevelRank ~= 0 then UIManager.OpenView(Const_UI_Lua.UIEnum.UISyncTeamPVPUpGrade, { newData = rankData , oldData = oldRankData , txt = MDL.SyncTeamPVP.GetEloScore() , isSeasonChanged = lastSeasonDan ~= 0}, "SyncTeamPVP/UISyncTeamPVPUpGrade") end else if not UIManager.IsViewOpened(Const_UI_Lua.UIEnum.UISyncTeamPVPIntro) then CTL.KingChallenge.TryAutoOpenBuffUI() end end UIUtils.SetActive(self.img_TitleBg, true) self.effect_Rank:PlayUIEffect(rankData.LevelResidentEffect, 0) self:PlayUIAnimation("UIAnimationRankTitle") MDL.SyncTeamPVP.SaveSyncTeamPVPLevelRank() --根据分数显示段位图 UIUtils.SetImageByAssetBundle(self.img_TitleBg, string.format(SyncTeamPVPImgPath, rankData.LevelImageFrame)) if self.loc_Title.CurState == 0 then self.loc_Title:SetImage(0, "UI_3V3/"..rankData.LevelNameImage..".png", true) else self.loc_Title:SetText(0, UIUtils.GetLocalizedTxt(Const_IDS[rankData.LevelName])) self.loc_Color:SetState(rankData.LevelColor) end self.txt_Score.text = CTL.SyncTeamPVP.GetEloDesc() self.lab_PromotionCondition.text = CTL.SyncTeamPVP.GetLevelRankDesc() for i, v in ipairs(self.group_Stars) do UIUtils.SetActive(v.gameObject, maxStar >= i) UIUtils.SetActive(v.img_Star, curStar >= i) end self:TryShowTeamFairHero() end function UISyncTeamPVPMainPanel:OnUpdateFun(deltaTime, timeSinceUpdate) local levelRank = CTL.SyncTeamPVP.GetLevelRank() local rankData = DataSheetManager.ThreeBattleLevelData:GetDataByLevelID(levelRank) self.effect_Rank:PlayUIEffect(rankData.LevelResidentEffect, 0) self:PlayUIAnimation("UIAnimationRankTitle") UIUtils.SetActive(self.img_TitleBg, true) self:StopRepeatFunc(self.OnUpdateFun) end function UISyncTeamPVPMainPanel:RefreshSeasonInfo() self:RefreshSeasonFreeHero() self:RefreshSeasonTime() end function UISyncTeamPVPMainPanel:RefreshSeasonTime() local time = MDL.SyncTeamPVP.GetCDTimer() if CTL.SyncTeamPVP.IsSeasonOpen() then UIUtils.SetLabelText(self.txt_Tip1, Const_IDS["IDS_1v1Sync_SeasonLeftTimeTip"]) UIUtils.SetLabelText(self.txt_Term, Const_IDS["IDS_RankOptimization_Season"]) else UIUtils.SetLabelText(self.txt_Tip1, Const_IDS["IDS_BossChallenge_NextSeasonOpenTimeTip"]) UIUtils.SetLabelText(self.txt_Term, Const_IDS["IDS_RankOptimization_SeasonOff"]) end self.bg_Time:ResetAndBeginCustomTimer(false, time, 0, UIUtils.GetLocalizedTxt(Const_IDS["IDS_BossChallenge_SeasonLeftTime"]), 1) self:StartRepeatFunc(self.OnUpdateFun, time) UIUtils.SetActive(self.bg_Time.gameObject, true) end function UISyncTeamPVPMainPanel:RefreshOpenTime() local activityTimeData = DataSheetManager.ActivityData:GetDataByID(LuaConst.ActivityType.TVT).Time_Table local desc, time = UTL.Time.GetDateDescAndTime(activityTimeData) local endTimeStr = CTL.FairPlay.GetSeasonLastEndTimeStr("ThreeOnThreeSeasonDayEndTime") self.txt_Time.text = string.Concat(desc, time) UIUtils.SetLabel(self.txt_TimeInfo, endTimeStr) end function UISyncTeamPVPMainPanel:TryShowTeamFairHero() if not self.isShowTeamFairHero then if MDL.SyncTeamPVP.IsTeamFairFamous(true) then self.loadModelIndex = 0 self:StartRepeatFunc(self.LoadHeroModel, 0.1, -1) UIUtils.SetActive(self.group_TeamFairChampion.gameObject, true) UIUtils.SetActive(self.group_HeroName, false) UIUtils.SetActive(self.group_Hero, false) self:InitTeamFairChampionshipInfo() else UTL.UIRender.DisposePlayerModel(self.modelComponentDataHandle) UTL.UIRender.CreatePlayerModel(self.modelComponentDataHandle, self.curShowHeroID, nil, nil, true) UTL.UIRender.SetHeroParentPos(self.modelComponentDataHandle, 0.7, -1.1, 0) UTL.UIRender.SetHeroParentRot(self.modelComponentDataHandle, 0, -10, 0) UIUtils.SetActive(self.group_TeamFairChampion.gameObject, false) UIUtils.SetActive(self.group_HeroName, true) UIUtils.SetActive(self.group_Hero, true) end end end function UISyncTeamPVPMainPanel:RefreshSeasonFreeHero() --刷新左侧限免武将列表 if self.LoopScroll_PVPFreeHero.Count > 0 then self.LoopScroll_PVPFreeHero:ClearCells() end -- 测试武将 local testHeroArray = MDL.SyncTeamPVP.GetTestHeroArray() if #testHeroArray > 0 then for i, v in ipairs(testHeroArray) do self.LoopScroll_PVPFreeHero:AddData(v, 0) end end -- 限免武将 local seasonData = MDL.SyncTeamPVP.GetTVTSeasonInfo() if seasonData.freeHeroes then for i, v in ipairs(seasonData.freeHeroes) do local isTestHeroAndOpen, isTestHero, isOpen = MDL.SyncTeamPVP.CheckIsTestHero(v) if not isTestHeroAndOpen then self.LoopScroll_PVPFreeHero:AddData(v, 0) end end end local showHeroID = 0 if #testHeroArray > 0 then showHeroID = DataSheetManager.ItemData:GetDataByID(testHeroArray[1]).ThirdType elseif seasonData then showHeroID = seasonData.heroItemId end local heroData = DataSheetManager.HeroNum:GetDataByID(showHeroID) UIUtils.SetLabelText(self.txt_HeroName, Const_IDS[heroData.NameIDS]) self.curShowHeroID = showHeroID end function UISyncTeamPVPMainPanel:InitTeamFairChampionshipInfo() self.group_TeamFairChampion.txt_TeamName.text = MDL.SyncTeamPVP.GetChampionTeamName() local playerInfo1 = MDL.SyncTeamPVP.GetTeamFairInfoByIndex(1) local playerInfo2 = MDL.SyncTeamPVP.GetTeamFairInfoByIndex(2) local playerInfo3 = MDL.SyncTeamPVP.GetTeamFairInfoByIndex(3) self:SetPlayerInfo(self.group_TeamFairChampion.group_Info01, playerInfo2) self:SetPlayerInfo(self.group_TeamFairChampion.group_Info02, playerInfo1) self:SetPlayerInfo(self.group_TeamFairChampion.group_Info03, playerInfo3) end function UISyncTeamPVPMainPanel:SetPlayerInfo(comp, info) comp.txt_Server.text = "S." .. info.ShowServerId comp.txt_PlayerName.text = CTL.OfficialPosition.GetModelNameShow(info.OfficialId) .. info.name if not string.isNilOrEmpty(info.guildId) then UIUtils.SetActive(comp.img_GuildBG, true) local framePath, emblemContent, guildDesc = CTL.Guild.GetModelNameShowParam(info.EmblemFrame, info.EmblemContent, info.guildName, info.JobTitle) UIUtils.SetImageByAssetBundle(comp.img_GuildBG, framePath) comp.txt_Guild.text = emblemContent comp.txt_GuildName.text = guildDesc else UIUtils.SetActive(comp.img_GuildBG, false) comp.txt_GuildName.text = "" end end function UISyncTeamPVPMainPanel:UpdateThumbsUpParam(totalNum, myTodayNum) local THUMB_UP_TOTAL = 3 local leftNum = THUMB_UP_TOTAL - myTodayNum if leftNum == 0 then self.group_TeamFairChampion.obj_giveLike:SetState(0) UIUtils.SetGray(self.group_TeamFairChampion.img_Nor, true) self.group_TeamFairChampion.obj_btnColor:SetState(0) else self.group_TeamFairChampion.obj_giveLike:SetState(myTodayNum > 0 and 1 or 0) UIUtils.SetGray(self.group_TeamFairChampion.img_Nor, false) self.group_TeamFairChampion.obj_btnColor:SetState(1) end UIUtils.SetLabel(self.group_TeamFairChampion.txt_ThumbsUpNum, UTL.String.GetCountStr(totalNum)) self.group_TeamFairChampion.btn_ThumbsUp:SetRedPoint(leftNum > 0) self.leftThumbUpNum = leftNum end --关闭界面 function UISyncTeamPVPMainPanel:OnClickClose() self:CloseView(true) end function UISyncTeamPVPMainPanel:OnClosed() UTL.UIRender.DisposeModelComponentData(self.modelComponentDataHandle) UIManager.ActiveUIModle(true, "UISyncTeamPVPMainPanel") end --开始匹配\取消匹配 function UISyncTeamPVPMainPanel:OnClickBeginMatch() local state = CTL.TeamMatch.GetMatchOperationStateByActivityId(LuaConst.ActivityType.TVT) if state ~= false then if state == CTL.TeamMatch.MatchOperationState.CancelMatch then CTL.TeamMatch.OnPressMatchButton(LuaConst.ActivityType.TVT, MDL.TeamMatch.PlayerMatchOperateReq) CTL.Sound.PlayGameSound("UI_invalid") return end if CTL.Activities.IsOpeningTime(LuaConst.ActivityType.TVT) then if MDL.SyncTeamPVP.GetTVTState() == MDL.FairPlay.SeasonState.SeasonOpening then CTL.TeamMatch.OnPressMatchButton(LuaConst.ActivityType.TVT, MDL.TeamMatch.PlayerMatchOperateReq) self.cardToggleIsOn = self.toggle_UseCard.isOn else CTL.Tips.AddTipsMsg(Const_IDS["IDS_FairPlay_3v3NotOpen"]) CTL.Sound.PlayGameSound("UI_invalid") end else CTL.Tips.AddTipsMsg(Const_IDS["IDS_FairPlay_3v3NotOpen"]) CTL.Sound.PlayGameSound("UI_invalid") end end end function UISyncTeamPVPMainPanel:OnBackButtonPressed() self:OnButtonClicked(self.UITemplateTitlePanel.btn_close) end function UISyncTeamPVPMainPanel:OnButtonClicked(obj) if obj == self.btn_Match then self:OnClickBeginMatch() elseif obj == self.UITemplateTitlePanel.btn_close then self:OnClickClose() elseif obj == self.UITemplateTitlePanel.btn_Home then CTL.HomeMain.CloseViewBackHomeMain() elseif obj == self.btn_Rank then CTL.Rank.OpenRankPanelByType(MDL.Rank.RankType.Fair3V3) elseif obj == self.UITemplateTitlePanel.btn_Info then UIManager.OpenView(Const_UI_Lua.UIEnum.UICommonNoteView, {id = LuaConst.NoteID.BattleGround_3V3, params = {MDL.SyncSolo.GetSoloLevelRank()}}) elseif obj == self.event_Reward then UIManager.OpenView(Const_UI_Lua.UIEnum.UISyncTeamPVPReward) elseif obj == self.btn_Team then CTL.Team.OpenTeamPanel(LuaConst.ActivityType.TVT) elseif obj == self.event_HallOfFame then -- 如果赛季为1且进行中 拦截不显示 if MDL.SyncTeamPVP.GetSeasonId() == 1 and CTL.SyncTeamPVP.IsSeasonOpen() then CTL.Tips.AddTipsMsg(Const_IDS["IDS_SeasonAndRank_AfterFirstSeason"]) return end CTL.FairPlay.Open3V3HallOfFame() elseif obj == self.btn_Daily then --每日首胜 self:OnClickOpenWinOfEveryDay() elseif obj == self.btn_Shop then --店铺 UIManager.OpenAndPushAll(Const_UI_Lua.UIEnum.UIShopMain, {TabEnum = CTL.PayMall.ShopMainTabEnum.GongPing}) elseif obj == self.btn_KingChallenge then --王者挑战 UIManager.OpenView(Const_UI_Lua.UIEnum.UIKingChallengeMainPanel) elseif obj == self.btn_card then UTL.ItemTips.ShowCommonTipsById(CTL.FairPlayCard.protectCard3v3Id) elseif obj == self.btn_Bg then UIUtils.SetActive(self.btn_Bg, false) UIUtils.SetActive(self.tips_scorcard.gameObject, false) elseif obj == self.btn_tips then UIUtils.SetActive(self.btn_Bg, true) UIUtils.SetActive(self.tips_scorcard.gameObject, true) elseif obj == self.group_TeamFairChampion.btn_ThumbsUp then if self.leftThumbUpNum and self.leftThumbUpNum > 0 then MDL.TeamFairChampionship.TeamFairThumbsUpReq() else CTL.Tips.AddTipsMsg(Const_IDS.IDS_Ranking_NoGood) end elseif obj == self.btn_SkillPlan then UIManager.OpenView(Const_UI_Lua.UIEnum.UIFairAwakenSkillPlan) elseif obj == self.buff_btn then UIManager.OpenView(Const_UI_Lua.UIEnum.UIKingChallengeSeasonBuffPopUp) end end function UISyncTeamPVPMainPanel:OnMatchExpression(state) if CTL.TeamMatch.IsActivityMatchingById(LuaConst.ActivityType.TVT) then self.btn_Match:SetText(Const_IDS.IDS_UI_Word20) self:UpdateTimer(state) else self:UpdateTimer(false) end end --打开每日首胜 function UISyncTeamPVPMainPanel:OnClickOpenWinOfEveryDay() UIManager.OpenView(Const_UI_Lua.UIEnum.UISyncTeamPVPDailyReward) end --每日首胜红点 function UISyncTeamPVPMainPanel:ShowRewardState() local state = MDL.SyncTeamPVP.GetFirstWinOfEveryDayState() if state == MDL.SyncSolo.RewardState.NotReach then --未完成 UIUtils.SetActive(self.img_Reward1, true) UIUtils.SetActive(self.img_Reward2, false) self.effect_Available:StopUIEffect() elseif state == MDL.SyncSolo.RewardState.NotGet then --未领取 UIUtils.SetActive(self.img_Reward1, false) UIUtils.SetActive(self.img_Reward2, true) self.effect_Available:PlayUIEffect() elseif state == MDL.SyncSolo.RewardState.Get then --已领取 UIUtils.SetActive(self.img_Reward1, false) UIUtils.SetActive(self.img_Reward2, true) self.effect_Available:StopUIEffect() end --红点 self.btn_Daily:SetRedPoint(CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.FairPlay_SyncTeamPVP_DailyReward)) --self.btn_weekly:SetRedPoint(CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.FairPlay_SyncSolo_WeeklyCanGet))--以后要加周任务的话在这儿加类似逻辑 end function UISyncTeamPVPMainPanel:UpdateTimer(state) if state then local maxTime = MDL.TeamDungeon.GetMaxMatchTime() local durTime = UTL.Time.GetServerTimestamp() - MDL.TeamMatch.GetStartMatchingTime() self.cdTimer:SetAndContinueTimer(true, durTime, maxTime) self.btn_Match:SetText(Const_IDS.IDS_UI_Word20) self.effect_Matching:PlayUIEffect() else self.cdTimer:EndTimer() self.btn_Match:SetText(Const_IDS.IDS_Team_3v3_StartMatch) self.effect_Matching:StopUIEffect() end end function UISyncTeamPVPMainPanel:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.LoopScroll_PVPFreeHero then --local itemData = DataSheetManager.ItemData:GetDataByID(data) --UTL.Color.SetQualityImageByType(cellTable.img_HeroBg, itemData.Color, UTL.Color.QualityType.Circle) UTL.Item.SetHeroHeadSquareIcon(cellTable.img_HeroHead, data) local isTestHeroAndOpen, isTestHero, isOpen = MDL.SyncTeamPVP.CheckIsTestHero(data) UIUtils.SetActive(cellTable.img_TestBg, isTestHeroAndOpen) end end function UISyncTeamPVPMainPanel:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.LoopScroll_PVPFreeHero then if target == cellTable.btn_Hero then UTL.ItemTips.ShowCommonTipsById(data) end end end -- 测试武将到期倒计时 function UISyncTeamPVPMainPanel:TestHeroUpdateRepeatFunc() self:RefreshSeasonFreeHero() self:StopRepeatFunc(self.TestHeroUpdateRepeatFunc) local testHeroTimer = MDL.SyncTeamPVP.GetTestHeroTimer() if testHeroTimer > 0 then self:StartRepeatFunc(self.TestHeroUpdateRepeatFunc, testHeroTimer) end end function UISyncTeamPVPMainPanel:RefreshKingChallengeEntry() UIUtils.SetActive(self.btn_KingChallenge, CTL.KingChallenge.IsShowKingChallengeEntry()) self.btn_KingChallenge:SetRedPoint(CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.FairPlay_KingChallenge)) end function UISyncTeamPVPMainPanel:OnValueChanged(comp, value) if comp == self.toggle_UseCard then if CTL.TeamMatch.IsActivityMatchingById(LuaConst.ActivityType.TVT) and self.toggle_UseCard.isOn ~= self.cardToggleIsOn then self.toggle_UseCard.isOn = self.cardToggleIsOn CTL.Tips.AddTipsMsg(Const_IDS["IDS_KingChallenge_Hint10"]) else MDL.FairPlayCard.ChangeFairPlayCardInfoReq(MDL.FairPlay.FairPlayType.TVT, value, false) end end end return UISyncTeamPVPMainPanel