--[[ 冠军展示界面 ]] local UIHeroLightEffectTool = require "View/Common/UIHeroLightEffectTool" local UIHeroMatch3v3Stage6_Supremacy = UIViewClass() local ConstLightPath = ConstAssetPathConfig.LightLeft local FILTER_EFFECT_ID = 204001 --不显示该光效(法相) local ConstShowParams = { [1] = { posX = 0, posY = 0, scale = 0.7 }, [2] = { posX = 1, posY = 0, scale = 0.7 }, [3] = { posX = -1, posY = 0, scale = 0.7 }, } local DelayTime = 0.1 local EventSystem = require('Event/EventSystem') function UIHeroMatch3v3Stage6_Supremacy:OnCreated() self.heroLightEffectDatas = UIHeroLightEffectTool.CreateHeroLightEffectDatas(true) end function UIHeroMatch3v3Stage6_Supremacy:OnOpened(context) self:RegistSystemEvent(EventID.UI_HeroMatch3v3_RefreshPlayerInfo, self.SetWinnerInfo) -- 刷新选手信息 self:SetWinnerInfo() end function UIHeroMatch3v3Stage6_Supremacy:SetWinnerInfo() self.winnerInfo = MDL.HeroMatch3v3.GetMatchStageInfo(MDL.HeroMatch3v3.Stage.match_2T1) self.groupInfo = self.winnerInfo.groupInfos[1] local leftTeamInfo = self.groupInfo.teamInfos[1] local rightTeamInfo = self.groupInfo.teamInfos[2] local leftHavePlayerInfo = leftTeamInfo.teamId ~= "" local rightHavePlayerInfo = rightTeamInfo.teamId ~= "" if leftHavePlayerInfo and rightHavePlayerInfo then if leftTeamInfo.winNum > rightTeamInfo.winNum then self.winnerTeamInfo = leftTeamInfo else self.winnerTeamInfo = rightTeamInfo end elseif leftHavePlayerInfo and not rightHavePlayerInfo then self.winnerTeamInfo = leftTeamInfo elseif rightHavePlayerInfo and not leftHavePlayerInfo then self.winnerTeamInfo = rightHavePlayerInfo end self.txt_TeamName.text = self.winnerTeamInfo.teamName self.gsSum = 0 local info_1 = MDL.HeroMatch3v3.GetPlayerInfoByACID(self.winnerTeamInfo.acids[1]) self.txt_Server.text = "S." .. info_1.ShowServerId local _, serverName = CTL.CrossServer.GetServerIDAndServerNameByServerID(info_1.ShowServerId) self.txt_ServerName.text = serverName self:SetPlayerInfo(info_1, self.group_Info02) local info_2 = MDL.HeroMatch3v3.GetPlayerInfoByACID(self.winnerTeamInfo.acids[2]) self:SetPlayerInfo(info_2, self.group_Info01) local info_3 = MDL.HeroMatch3v3.GetPlayerInfoByACID(self.winnerTeamInfo.acids[3]) self:SetPlayerInfo(info_3, self.group_Info03) self.txt_BR.text = self.gsSum self:LoadTeamModel(info_1, info_2, info_3) end function UIHeroMatch3v3Stage6_Supremacy:SetPlayerInfo(info, comp) if info then UIUtils.SetActive(comp.gameObject, true) CTL.Guild.SetGuildEmblem(comp.img_GuildMark, comp.txt_GuildInitiate, info.EmblemFrame, info.EmblemContent) comp.txt_PlayerName.text = info.name self.gsSum = self.gsSum + info.gsSum else UIUtils.SetActive(comp.gameObject, false) end end function UIHeroMatch3v3Stage6_Supremacy:LoadTeamModel() if self.hasShowModel then return end EventSystem.Dispatch(EventID.UI_HeroMatch3v3_ActiveBaseBG, false) self:InitScene() self.loadModelIndex = 0 self:StartRepeatFunc(self.LoadHeroModel, DelayTime, -1) --防止重复加载 self.hasShowModel = true end function UIHeroMatch3v3Stage6_Supremacy:InitScene() self.modelComponentDataHandle = UTL.UIRender.CreateModelComponentDatas(self.obj_Model) UTL.UIRender.Create2DSceneTrans(self.modelComponentDataHandle, ConstAssetPathConfig.Common2DScenePrefab, 1600, 0, 1600, ConstAssetPathConfig.BGPath_11, false) UTL.UIRender.SetHeroParentPos(self.modelComponentDataHandle, -1, -1.2, 0) -- 设置模型位移信息 UTL.UIRender.SetHeroParentRot(self.modelComponentDataHandle, 0, 0, 0) -- 设置模型位移信息 end function UIHeroMatch3v3Stage6_Supremacy:LoadHeroModel() self.loadModelIndex = self.loadModelIndex + 1 if self.loadModelIndex > #self.winnerTeamInfo.acids then self:StopRepeatFunc(self.LoadHeroModel) return end local showInfo = MDL.HeroMatch3v3.GetPlayerInfoByACID(self.winnerTeamInfo.acids[self.loadModelIndex]) if showInfo then UTL.UIRender.DelayLoadMultiBattleModel(self.modelComponentDataHandle, showInfo, ConstShowParams[self.loadModelIndex], ConstLightPath) if showInfo.lightEffectIds then for _, lightEffectID in ipairs(showInfo.lightEffectIds) do if lightEffectID ~= FILTER_EFFECT_ID then UIHeroLightEffectTool.PlayHeroLightEffect(self.heroLightEffectDatas, self, 0, UIHeroLightEffectTool.PlayLightEffectFuncEnum.CountryOfficial, lightEffectID, {renderEntityIndex = self.loadModelIndex}) end end end end end function UIHeroMatch3v3Stage6_Supremacy:CountryOfficialPlayModelEffect(path, param) return UTL.UIRender.PlayPsEffectByRenderEntityIndex(self.modelComponentDataHandle, path, param.renderEntityIndex) end function UIHeroMatch3v3Stage6_Supremacy:OnClosed() EventSystem.Dispatch(EventID.UI_HeroMatch3v3_ActiveBaseBG, true) UIHeroLightEffectTool.StopHeroLightEffect(self.heroLightEffectDatas) self.heroLightEffectDatas = nil UTL.UIRender.DisposeModelComponentData(self.modelComponentDataHandle) end function UIHeroMatch3v3Stage6_Supremacy:OnButtonClicked(comp) if comp == self.group_Info01.btn_Info then CTL.PlayerInteract.OpenFriendInteractView(self.winnerTeamInfo.acids[2]) elseif comp == self.group_Info02.btn_Info then CTL.PlayerInteract.OpenFriendInteractView(self.winnerTeamInfo.acids[1]) elseif comp == self.group_Info03.btn_Info then CTL.PlayerInteract.OpenFriendInteractView(self.winnerTeamInfo.acids[3]) end end return UIHeroMatch3v3Stage6_Supremacy