--[[ 冠军展示界面 ]] local UIHeroLightEffectTool = require "View/Common/UIHeroLightEffectTool" local UIHeroMatch1v1Stage6_Supremacy = UIViewClass() local Common2DScenePrefab = ConstAssetPathConfig.Common2DScenePrefab local bgTexturePath = ConstAssetPathConfig.BGPath_11 function UIHeroMatch1v1Stage6_Supremacy:OnOpened(context) self:RegistSystemEvent(EventID.UI_HeroMatch1v1_RefreshPlayerInfo, self.SetWinnerInfo) --创建Handle self.modelComponentDataHandle = UTL.UIRender.CreateModelComponentDatas(self.obj_Model) -- 加载背景 UTL.UIRender.Create2DSceneTrans(self.modelComponentDataHandle, Common2DScenePrefab, 1600, 0, 1600, bgTexturePath, false) end function UIHeroMatch1v1Stage6_Supremacy:OnCreated() self.heroLightEffectDatas = UIHeroLightEffectTool.CreateHeroLightEffectDatas(true) end function UIHeroMatch1v1Stage6_Supremacy:OnButtonClicked(comp) if comp == self.group_Player.UIHeroHead.img_PlayerAvatarBg then if self.winnerHeadInfo.acid ~= BattleDataGetter.GetAcID() then MDL.PlayerInteract.GetPlayerInteractiveInfoReq(self.winnerHeadInfo.acid) end end end function UIHeroMatch1v1Stage6_Supremacy:SetPlayerGroupInfo(groupIndex) self:SetWinnerInfo() end function UIHeroMatch1v1Stage6_Supremacy:SetWinnerInfo() self.winnerInfo = MDL.HeroMatch1v1.GetMatchStageInfo(MDL.HeroMatch1v1.Stage.match_2T1) self.groupInfo = self.winnerInfo.groupInfos[1] local leftPlayerInfo = self.groupInfo.playerInfos[1] local rightPlayerInfo = self.groupInfo.playerInfos[2] local leftHavePlayerInfo = leftPlayerInfo.acid ~= "" local rightHavePlayerInfo = rightPlayerInfo.acid ~= "" if leftHavePlayerInfo and rightHavePlayerInfo then if leftPlayerInfo.winNum > rightPlayerInfo.winNum then self.winnerHeadInfo = MDL.HeroMatch1v1.GetPlayerInfoByACID(leftPlayerInfo.acid) else self.winnerHeadInfo = MDL.HeroMatch1v1.GetPlayerInfoByACID(rightPlayerInfo.acid) end elseif leftHavePlayerInfo and not rightHavePlayerInfo then self.winnerHeadInfo = MDL.HeroMatch1v1.GetPlayerInfoByACID(leftPlayerInfo.acid) elseif rightHavePlayerInfo and not leftHavePlayerInfo then self.winnerHeadInfo = MDL.HeroMatch1v1.GetPlayerInfoByACID(rightPlayerInfo.acid) end CTL.HeroMatch1v1.SetHeroMatch1v1PlayerInfo(self.group_Player, self.winnerHeadInfo) self:SetWinnerModel() end function UIHeroMatch1v1Stage6_Supremacy:SetWinnerModel() -- 加载人物 local resolutionRatio = UIUtils.GetScreenResolutionRatio() local heroLightEffects = self.winnerHeadInfo.lightEffectIds self:StopHeroLightEffect() local horseData = {} if self.winnerHeadInfo.horseAppearanceId > 0 then horseData = MDL.WarHorse.GetAppearanceInfoByID(self.winnerHeadInfo.horseAppearanceId) self:SetHorseModel(horseData, resolutionRatio, heroLightEffects) elseif self.winnerHeadInfo.HorseID > 0 then -- 加载战骑 horseData = DataSheetManager.HorseData:GetDataByHorseID(self.winnerHeadInfo.HorseID) self:SetHorseModel(horseData, resolutionRatio, heroLightEffects) else UTL.UIRender.DisposeHorseOther(self.modelComponentDataHandle) UTL.UIRender.DisposePlayerModel(self.modelComponentDataHandle) UTL.UIRender.Create2DSceneTrans(self.modelComponentDataHandle, Common2DScenePrefab, 1600, 0, 1600, bgTexturePath, false) UTL.UIRender.CreatePlayerModel(self.modelComponentDataHandle, self.winnerHeadInfo.HeroID, nil, nil, true) if resolutionRatio == LuaConst.ScreenResolutionRatio.RatioPad4_3 or resolutionRatio == LuaConst.ScreenResolutionRatio.RatioPadOther then UTL.UIRender.SetHeroParentPos(self.modelComponentDataHandle, -0.8, -1.6, -1) UTL.UIRender.SetHeroParentRot(self.modelComponentDataHandle, 0, 16, 0) else UTL.UIRender.SetHeroParentPos(self.modelComponentDataHandle, -0.9, -1.3, 0.6) UTL.UIRender.SetHeroParentRot(self.modelComponentDataHandle, 0, 16, 0) end --播放光效 self:BeginHeroLightEffect(UIHeroLightEffectTool.PlayLightEffectFuncEnum.LuaView, heroLightEffects) end -- 加载神兵铸魂天命 local weaponSoul = CTL.DivineWeaponForgeSoul.GetWeaponSoulSkillByProtoMap(self.winnerHeadInfo.HeroID, self.winnerHeadInfo.weaponSoul) if weaponSoul then UTL.UIRender.LoadPlayerWeaponSoul(self.modelComponentDataHandle, weaponSoul) end end function UIHeroMatch1v1Stage6_Supremacy:SetHorseModel(horseData, resolutionRatio, heroLightEffects) UTL.UIRender.CreateHorse3DModel(self.modelComponentDataHandle, self.winnerHeadInfo.HorseID, self.winnerHeadInfo.horseAppearanceId, UTL.UIRender.LayerActiveType.HorseShow) UTL.UIRender.Create2DSceneTrans(self.modelComponentDataHandle, Common2DScenePrefab, 1600, 0, 1600, bgTexturePath, false) UTL.UIRender.StartRideHorse(self.modelComponentDataHandle, self.winnerHeadInfo.HorseID, self.winnerHeadInfo.HeroID, self.winnerHeadInfo) local isStandOnHorse, driverAnim = UTL.UIRender.GetOnHorseAnim(horseData) if not isStandOnHorse then UTL.UIRender.DriverEntityPlayAnim(self.modelComponentDataHandle, "ride_idle_loop") else UTL.UIRender.DriverEntityPlayAnim(self.modelComponentDataHandle, LuaConst.Animation_idle_loop) end local modelRot = horseData.RankModelRot and horseData.RankModelRot or horseData.SettingModelRot if resolutionRatio == LuaConst.ScreenResolutionRatio.RatioPad4_3 or resolutionRatio == LuaConst.ScreenResolutionRatio.RatioPadOther then UTL.UIRender.SetHeroParentPos(self.modelComponentDataHandle, -0.82, -1.2, 0.6) UTL.UIRender.SetHeroParentRot(self.modelComponentDataHandle, 0, modelRot, 0) else UTL.UIRender.SetHeroParentPos(self.modelComponentDataHandle, -0.82, -1.2, 1.2) UTL.UIRender.SetHeroParentRot(self.modelComponentDataHandle, 0, modelRot, 0) end UTL.UIRender.SetModelRootLocalScale(self.modelComponentDataHandle, 0.75, 0.75, 0.75) --播放光效 self:BeginHeroLightEffect(UIHeroLightEffectTool.PlayLightEffectFuncEnum.UI3DDriver, heroLightEffects) end function UIHeroMatch1v1Stage6_Supremacy:StopHeroLightEffect(isDispose) UIHeroLightEffectTool.StopHeroLightEffect(self.heroLightEffectDatas) if isDispose then self.heroLightEffectDatas = nil end end function UIHeroMatch1v1Stage6_Supremacy:BeginHeroLightEffect(playLightEffectFuncEnum,heroLightEffects) if heroLightEffects then for _, lightEffectID in ipairs(heroLightEffects) do UIHeroLightEffectTool.PlayHeroLightEffect(self.heroLightEffectDatas, self, 0, playLightEffectFuncEnum,lightEffectID, nil) end end end function UIHeroMatch1v1Stage6_Supremacy:PlayDriverModelEffect(effectPath) return UTL.UIRender.PlayDriverPsEffect(self.modelComponentDataHandle, effectPath) end function UIHeroMatch1v1Stage6_Supremacy:AuxUtilPlayPsEffect(effectPath) return UTL.UIRender.PlayPsEffect(self.modelComponentDataHandle, effectPath) end function UIHeroMatch1v1Stage6_Supremacy:PlayCharacterModelEffect(effectPath) return UTL.UIRender.PlayPsEffect(self.modelComponentDataHandle, effectPath) end function UIHeroMatch1v1Stage6_Supremacy:OnClosed() self:StopHeroLightEffect(true) UTL.UIRender.DisposeModelComponentData(self.modelComponentDataHandle) end return UIHeroMatch1v1Stage6_Supremacy