local UIHeroLightEffectTool = require "View/Common/UIHeroLightEffectTool" local UICharacterInfoPopUp = UIViewClass() local HERO_RENDER_ID = 1000001 local BattleLight = ConstAssetPathConfig.LightLeft function UICharacterInfoPopUp:OnOpened(context) UIUtils.SetLabelText(self.UICommonPopUp.txt_Title, Const_IDS.IDS_PowerContrast_PlayerInformation) self:UpdateInfo(context) end function UICharacterInfoPopUp:OnCreated() self.heroLightEffectDatas = UIHeroLightEffectTool.CreateHeroLightEffectDatas(true) self.modelComponentDataHandle = UTL.UIRender.CreateModelComponentDatas(self.HeroCurtain) end function UICharacterInfoPopUp:UpdateInfo(info) self.acid = info.ShowInfo.acid --上阵武将 local lineUpHeroIdList = info.Lineups local isAwaken = info.LineupAwakens for i, v in ipairs(self.group_Hero) do v.effect_HeroQuality:StopUIEffect() local heroId = lineUpHeroIdList[i] if heroId and heroId > 0 then UTL.Item.ItemSquareItemIconByHeroId(heroId, v.img_Hero, v.img_Qua, nil, isAwaken[i]) UIUtils.SetActive(v.group_Empty, false) --品质特效 CTL.HeroSelect.PlayHeroQualityEffect(v.effect_HeroQuality, heroId, UTL.Color.EffectType.Item) else UIUtils.SetActive(v.group_Empty, true) end end local headInfo = info.ShowInfo CTL.Character.SetPortraitAndFrame(self.UIHeroHead150, headInfo.PortraitId, headInfo.FrameId, headInfo.level) CTL.Player.OperateGenderImage(self.image_Gender, headInfo.sex) self.txt_Num.text = headInfo.gsSum self.txt_Name.text = headInfo.name self.txt_GuildName.text = headInfo.guildName UTL.UIRender.CreateHeroRenderTexture(self.modelComponentDataHandle, headInfo.HeroID, headInfo.HeroAppearanceID, HERO_RENDER_ID, BattleLight, true, headInfo.dyeCurPartList) UTL.UIRender.HeroEquipMagicWeapon(self.modelComponentDataHandle, headInfo.HeroID, headInfo.WeaponAppearanceID, headInfo.HeroBreakNums, headInfo.IsActiveMagicWeapon, false) local weaponSoul = CTL.DivineWeaponForgeSoul.GetWeaponSoulSkillByProtoMap(headInfo.HeroID, headInfo.weaponSoul) if weaponSoul then UTL.UIRender.LoadPlayerWeaponSoul(self.modelComponentDataHandle, weaponSoul) end self:RefreshHonorSignet(info) self:StopHeroLightEffect() self:BeginHeroLightEffect(headInfo.lightEffectIds) end function UICharacterInfoPopUp:RefreshHonorSignet(info) if MDL.Unlock.IsUnlock(MDL.Unlock.FunctionType.HonorSignet) then UIUtils.SetActive(self.group_HonorSignet, true) local equipList = info.ShowInfo.WearSignetId for i, v in ipairs(self.group_EquipSignet) do local equipId = equipList[i] if equipId then local data = DataSheetManager.AchievementHonorSignet:GetDataByID(equipId) UIUtils.SetImageByAssetBundle(v.img_SignetIcon, data.HonorSignetIcon) v.state_Signet:SetState(0) else v.state_Signet:SetState(1) end end else UIUtils.SetActive(self.group_HonorSignet, false) end end function UICharacterInfoPopUp:OnBackButtonPressed() self:OnButtonClicked(self.UICommonPopUp.btn_Close) end function UICharacterInfoPopUp:OnButtonClicked(comp) if comp == self.btn_Info then --进入武将阵容 MDL.PlayerInteract.PowerContrastGetOtherLineupInfoReq(self.acid) elseif comp == self.btn_Contrast then --战力对比,需要将模型数据传过去 MDL.PlayerInteract.PowerContrastGsPkReq(self.acid, self.context.ShowInfo) elseif comp == self.btn_SignetAttr then UIManager.OpenView(Const_UI_Lua.UIEnum.UIHonorSignetAttrTips, {comp = self.btn_SignetAttr.transform, isSelf = false, list = self.context.ShowInfo.ActivatedSignetId}) elseif comp == self.UICommonPopUp.btn_Close then self:CloseView(true) else for i, v in ipairs(self.group_Hero) do if comp == v.rect_Click then local heroId = self.context.Lineups[i] if heroId and heroId > 0 then MDL.PlayerInteract.PowerContrastGetOtherLineupInfoReq(self.acid, heroId) else MDL.PlayerInteract.PowerContrastGetOtherLineupInfoReq(self.acid) end return end end for i, v in ipairs(self.group_EquipSignet) do if comp == v.btn_Signet then if self.context.ShowInfo.WearSignetId[i] then CTL.HonorSignet.OpenEquipSignetDetail(i, self.context.ShowInfo.WearSignetId, self.context.ShowInfo.SignetTimestamp) else CTL.Tips.AddTipsMsg(Const_IDS.IDS_HonorSignet_Hint_9) end return end end end end function UICharacterInfoPopUp:OnClosed() self:StopHeroLightEffect(true) UTL.UIRender.DisposeModelComponentData(self.modelComponentDataHandle) end function UICharacterInfoPopUp:StopHeroLightEffect(isDispose) UIHeroLightEffectTool.StopHeroLightEffect(self.heroLightEffectDatas) if isDispose then self.heroLightEffectDatas = nil end end function UICharacterInfoPopUp:BeginHeroLightEffect(heroLightEffects) if heroLightEffects then local datas = self.heroLightEffectDatas for _, lightEffectID in ipairs(heroLightEffects) do UIHeroLightEffectTool.PlayHeroLightEffect(datas, self, 0, UIHeroLightEffectTool.PlayLightEffectFuncEnum.PlayerModel,lightEffectID) end end end function UICharacterInfoPopUp:PlayModelEffect(index, effectPath) return UTL.UIRender.PlayPsEffect(self.modelComponentDataHandle, effectPath) end return UICharacterInfoPopUp