local UISyncTeamPVPUpGrade = UIViewClass() local SyncTeamPVPImgPath = ConstAssetPathConfig.SyncTeamPVPImgPath local EffectPath = ConstAssetPathConfig.EffectPath3 local TimeState = FP.tonumberV1(DataSheetManager.ConstData:GetDataByID("RankChangeDynamicEffectTime").FloatValue) local EventSystem = require('Event/EventSystem') --context里面装的是新的数据 function UISyncTeamPVPUpGrade:OnOpened(context) self.stopTag = 1 if context.isSeasonChanged then UIUtils.SetLabelText(self.txt_Title,Const_IDS.IDS_RankOptimization_SeasonReset) else UIUtils.SetLabelText(self.txt_Title,Const_IDS.IDS_RankOptimization_RankUp) end self.stage = 1 self.rankData = context.newData UIUtils.SetLabel(self.txt_Score, UIUtils.GetLocalizedTxt(Const_IDS.IDS_1v1Sync_Subtitle_MyScore) .. ":" .. context.txt) self.oldRankData = context.oldData self.oldStar = self.oldRankData.Star self.oldMaxStar = self.oldRankData.MaxStar self.curStar = self.rankData.Star self.maxStar = self.rankData.MaxStar self:RankUp() CTL.Sound.PlayGameSound("UI_unique") end function UISyncTeamPVPUpGrade:RankUp() self:CountStarAndStarBg(self.oldMaxStar, self.oldStar) --第一阶段,原来的特效持续 if self.oldRankData.LevelColor ~= self.rankData.LevelColor then self.effect_ForwardRank:PlayUIEffect(self.oldRankData.LevelResidentEffect, 1) else self.effect_ForwardRank:PlayUIEffect(self.oldRankData.LevelResidentEffect, 0) end UIUtils.SetImageByAssetBundle(self.img_RankNameBg, string.format(SyncTeamPVPImgPath, self.oldRankData.LevelImageFrame)) if self.loc_RankTitle.CurState == 0 then UIUtils.SetLocalizationImage(self.img_RankName, "UI_3V3/"..self.oldRankData.LevelNameImage..".png") else UIUtils.SetLabelText(self.txt_RankTitle, Const_IDS[self.oldRankData.LevelNameBrife]) self.loc_Color:SetState(self.oldRankData.LevelColor) end self.stage = self.stage + 1 self:StartRepeatFunc(self.OnUpdateFun, 1) end function UISyncTeamPVPUpGrade:OnUpdateFun(deltaTime, timeSinceUpdate) if self.stage == 2 then--第二阶段,晋升特效 if self.oldRankData.LevelColor ~= self.rankData.LevelColor then UIUtils.SetActive(self.img_RankNameBg, false) self.effect_RankUp:PlayUIEffect(self.rankData.LevelUpEffect, 2) end self.stage = self.stage + 1 elseif self.stage == 3 then--第三阶段,新的特效持续 if self.oldRankData.LevelColor ~= self.rankData.LevelColor then UIUtils.SetActive(self.img_RankNameBg, true) self.effect_NextRank:PlayUIEffect(self.rankData.LevelResidentEffect, 0) UIUtils.SetImageByAssetBundle(self.img_RankNameBg, string.format(SyncTeamPVPImgPath, self.rankData.LevelImageFrame)) if self.loc_RankTitle.CurState == 0 then UIUtils.SetLocalizationImage(self.img_RankName, "UI_3V3/"..self.rankData.LevelNameImage..".png") else UIUtils.SetLabelText(self.txt_RankTitle, Const_IDS[self.rankData.LevelNameBrife]) self.loc_Color:SetState(self.rankData.LevelColor) end end self:CountStarAndStarBg(self.maxStar, self.curStar) if self.curStar ~= 0 then self.effect_Stars[self.curStar]:PlayUIEffect(EffectPath, 0) end self.stopTag = 0 self:StopRepeatFunc(self.OnUpdateFun) end end function UISyncTeamPVPUpGrade:CountStarAndStarBg(maxStar, curStar) for i, v in ipairs(self.group_Stars) do UIUtils.SetActive(v.gameObject, maxStar >= i) UIUtils.SetActive(v.img_Star, curStar >= i) UIUtils.SetActive(self.effect_Stars[i], maxStar >= i) end end function UISyncTeamPVPUpGrade:OnButtonClicked(comp) if comp == self.btn_Close and self.stopTag == 0 then self:CloseView() end end function UISyncTeamPVPUpGrade:OnClosed() CTL.KingChallenge.TryAutoOpenBuffUI() if CTL.SyncSolo.IsPlayOpenBPBattleMatchAnim(self.oldRankData.LevelID) then EventSystem.Dispatch(EventID.UI_SyncSolo_OpenBPBattleMode) end end return UISyncTeamPVPUpGrade