local UICharacterTeamPanel = UIViewClass() local EventSystem = require('Event/EventSystem') function UICharacterTeamPanel:OnOpened() self:SetLineUpComponent() self:RegistSystemEvent(EventID.UI_UpdateRoleInfo, self.UpdateRoleInfo) self:RegistSystemEvent(EventID.UI_ChangeName, self.RefreshPlayerInfo) self:RegistSystemEvent(EventID.CharacterTeamGsChange, self.OnCharacterTeamGsChange) self:RegistSystemEvent(EventID.ChangeTeamShowModel, self.RefreshPlayerInfo) self:RegistSystemEvent(EventID.UI_ChangeName, self.RefreshPlayerInfo) self:RegistSystemEvent(CTL.RedPoint.RedPointKey.TownHead_Team_Head, self.RefreshTeamHeadRp) self:RegistSystemEvent(CTL.RedPoint.RedPointKey.TownHead_HonorSignet, self.RefreshHonorSignetRp) self:RegistSystemEvent(EventID.UI_PlayerHeadPortraitAndBox_RefreshCur, self.RefreshPlayerInfo) self:RegistSystemEvent(EventID.UI_HonorSignet_InfoRefresh, self.RefreshHonorSignet) self:RefreshPlayerInfo() self:UpdateRoleInfo() self:RefreshTeamHeadRp(CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.TownHead_Team_Head)) self:RefreshHonorSignetRp(CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.TownHead_HonorSignet)) UIUtils.SetActive(self.group_HonorSignet, MDL.Unlock.IsUnlock(MDL.Unlock.FunctionType.HonorSignet)) end function UICharacterTeamPanel:OnClosed() UIUtils.SetActive(self.UIHeroHead190.img_Redpoint, false) end function UICharacterTeamPanel:RefreshPlayerInfo() self.lab_Name.text = BattleDataGetter.GetPlayerName() self.txt_IDVal.text = MDL.Player.GetRoleId() self.txt_PowerVal.text = MDL.Player.GetLineUpGs() CTL.Player.OperateGenderImage(self.image_Gender, MDL.Player.GetSelfGender()) CTL.Character.SetSelfPortraitAndFrame(self.UIHeroHead190) self:RefreshLineUpHeroes() self:RefreshHonorSignet() local isUnlock = MDL.Unlock.IsUnlock(MDL.Unlock.FunctionType.ChangeName) UIUtils.SetActive(self.btn_NameChange, MDL.Player.GetPublicSentimentUnLock() and isUnlock) end function UICharacterTeamPanel:OnCharacterTeamGsChange() self.txt_PowerVal.text = MDL.Player.GetLineUpGs() end function UICharacterTeamPanel:SetLineUpComponent() self.lineup = {} for i = 1, 6 do self.lineup[i] = {} self.lineup[i].sprite = self["img_Avatar0"..i] self.lineup[i].noneImg = self["img_None0"..i] end end function UICharacterTeamPanel:RefreshLineUpHeroes() local lineUpHeroIdList = MDL.Player.GetHeroLinUpIds() for i = 1, 6 do local heroId = lineUpHeroIdList[i] if heroId then if heroId > 0 then UTL.Item.SetHeroIconByHeroId(self.lineup[i].sprite, heroId, MDL.HeroAwaken.GetIsHeroAwaken(heroId)) UIUtils.SetActive(self.lineup[i].sprite, true) UIUtils.SetActive(self.lineup[i].noneImg, false) else UIUtils.SetActive(self.lineup[i].noneImg, true) UIUtils.SetActive(self.lineup[i].sprite, false) end end end end function UICharacterTeamPanel:RefreshHonorSignet() local equipList = MDL.HonorSignet.GetEquipList() 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 end function UICharacterTeamPanel:UpdateRoleInfo() local teamLevel,teamLevelExp,teamRankID = MDL.Player.GetRoleInfo() local tlData = DataSheetManager.TeamLevelData:GetDataByTeamLevel(teamLevel) if tlData ~= nil then local trData = DataSheetManager.Nobility:GetDataByRankID(teamRankID) local _levelStr = UTL.Item.GetNobilityByTeamLevel(tlData.TeamLevel) -- 爵位转换 local teamLevelName = string.FormatByIdsId(Const_IDS[tlData.TeamLevelName], _levelStr) --等级 UIUtils.SetLabel(self.txt_Level, teamLevelName) --经验 self.slider_XP.value = teamLevelExp / tlData.LevelExp UIUtils.SetLabel(self.txt_XP,string.format("%s/%s",teamLevelExp,tlData.LevelExp)) end end function UICharacterTeamPanel:OnButtonClicked(comp) if comp == self.btn_AvatarChange then UIManager.OpenAndPushAll(Const_UI_Lua.UIEnum.UICharacterTeamChangeImage) EventSystem.Dispatch(EventID.BI_ViewClick, BIManager.ViewBIEvent.UICharacterTeamPanel_btn_AvatarChange) elseif comp == self.btn_ServerLevel then UIManager.OpenView(Const_UI_Lua.UIEnum.UIServerLevel) elseif comp == self.btn_NameChange then if string.isNilOrEmpty(PlayerInfoManager.PlayerName) then CTL.Tips.AddTipsMsg(Const_IDS.IDS_PlayName_ChangeName_NeedName) return end UIManager.OpenView(Const_UI_Lua.UIEnum.UIRenamePanel) elseif comp == self.UIHeroHead190.img_PlayerAvatarBg then UIManager.OpenView(Const_UI_Lua.UIEnum.UIChangePlayerAvatarPopUp) elseif comp == self.btn_ChangeSignet then UIManager.OpenView(Const_UI_Lua.UIEnum.UIHonorSignetMain) else for i, v in ipairs(self.group_EquipSignet) do if comp == v.btn_Signet then local equipList = MDL.HonorSignet.GetEquipList() UIManager.OpenView(Const_UI_Lua.UIEnum.UIHonorSignetMain, {selectId = equipList[i]}) return end end end end function UICharacterTeamPanel:RefreshTeamHeadRp(active) if active == nil then UIUtils.SetActive(self.UIHeroHead190.img_Redpoint, false) else UIUtils.SetActive(self.UIHeroHead190.img_Redpoint, active) end end function UICharacterTeamPanel:RefreshHonorSignetRp(active) self.btn_ChangeSignet:SetRedPoint(active) end return UICharacterTeamPanel