using ET; using FairyGUI; using UI.CommonGame; using UI.RoleInfo; using UnityEngine; namespace GFGGame { public class OtherRoleInfoView : BaseWindow { private UI_RoleInfoUI _ui; private OtherRoleInfoData _roleInfo; private OtherRoleInfoDetailData _roleDetailInfo; public override void Dispose() { if (_ui != null) { _ui.Dispose(); } _ui = null; base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_RoleInfoUI.PACKAGE_NAME; _ui = UI_RoleInfoUI.Create(); this.viewCom = _ui.target; isfullScreen = true; isReturnView = true; _ui.m_btnBack.onClick.Add(OnBtnBackClick); _ui.m_photoList.itemRenderer = RenderListItem; _ui.m_badgeList.itemRenderer = OnRenderBadgeListItem; _ui.m_type.SetSelectedIndex(1); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateView); } protected override async void OnShown() { base.OnShown(); _roleInfo = (this.viewData as object[])[0] as OtherRoleInfoData; _roleDetailInfo = (this.viewData as object[])[1] as OtherRoleInfoDetailData; _roleDetailInfo = await RoleInfoSProxy.ReqOtherRoleDetailInfo(_roleInfo.roleId); _roleInfo = _roleDetailInfo.roleInfo; if (_roleDetailInfo != null) { Timers.inst.StartCoroutine(PictureStorageHelper.Download(_roleDetailInfo.showPhotoList)); } _ui.m_txtRoleName.text = _roleInfo.roleName; _ui.m_txtLvl.text = _roleInfo.roleLv.ToString(); RoleInfoManager.Instance.UpdateHead(_ui.m_comHead, _roleInfo.headId, _roleInfo.headBorderId); UpdateInfo(); UpdateView(); UpdateCollectProgress(); } protected override void OnHide() { base.OnHide(); } private void OnBtnBackClick() { ViewManager.GoBackFrom(typeof(OtherRoleInfoView).FullName); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateView); } private void UpdateView() { RoleLevelCfg roleLevelCfg = RoleLevelCfgArray.Instance.GetCfg(_roleInfo.roleLv); if (roleLevelCfg.exp > 0) { _ui.m_txtExp.text = string.Format("{0}/{1}", _roleInfo.roleExp, roleLevelCfg.exp); } else { _ui.m_txtExp.text = "已满级"; } if (_roleDetailInfo.slogan.Length > 0) { _ui.m_txtSloganLabel.text = _roleDetailInfo.slogan; } else { _ui.m_txtSloganLabel.text = "暂未设置个人简介"; } _ui.m_photoList.numItems = _roleDetailInfo.showPhotoList.Count; } private void RenderListItem(int index, GObject obj) { PoemPhotoData poemPhotoData = _roleDetailInfo.showPhotoList[index]; UI_ListPhotoItem item = UI_ListPhotoItem.Proxy(obj); item.target.data = index; if (poemPhotoData != null && poemPhotoData.Ntexture != null) { item.m_type.SetSelectedIndex(1); item.m_comPhoto.m_loaPhoto.texture = poemPhotoData == null ? null : poemPhotoData.Ntexture; } // 隐藏 else { item.m_type.SetSelectedIndex(3); } UI_ListPhotoItem.ProxyEnd(); } private void UpdateInfo() { if (_roleInfo.leagueName == null) { _ui.m_leagueName.text = "暂未加入雅集"; } else { _ui.m_leagueName.text = _roleInfo.leagueName; } _ui.m_txtRoleID.text = _roleInfo.roleId.ToString(); _ui.m_badgeList.numItems = _ui.m_badgeList.numItems; } private void UpdateCollectProgress() { UI_ButtonCollectProgress button2 = UI_ButtonCollectProgress.Proxy(_ui.m_btnSuitGuide.target); // 套装 float progress = _roleInfo.suitCollect; button2.m_rate.text = progress.ToString(); button2.m_progressBar.fillAmount = progress / 100; // 词牌 button2 = UI_ButtonCollectProgress.Proxy(_ui.m_btnCardGuide.target); progress = _roleInfo.cardCollect; button2.m_rate.text = progress.ToString(); button2.m_progressBar.fillAmount = progress / 100; // 成就 button2 = UI_ButtonCollectProgress.Proxy(_ui.m_btnTaskArchieveGuide.target); progress = _roleInfo.achievementTaskCollect; button2.m_rate.text = progress.ToString(); button2.m_progressBar.fillAmount = progress / 100; UI_ButtonCollectProgress.ProxyEnd(); } private void OnRenderBadgeListItem(int index, GObject gObject) { gObject.data = -1; UI_ButtonBadge buttonBadge = UI_ButtonBadge.Proxy(gObject); if (index < _roleInfo.itemList.Count) { int badgeID = _roleInfo.itemList[index]; gObject.data = badgeID; buttonBadge.m_type.SetSelectedIndex(1); // 加载徽章图片 buttonBadge.m_iconImg.url = ResPathUtil.GetIconPath(ItemCfgArray.Instance.GetCfg(badgeID)); } else { buttonBadge.m_type.SetSelectedIndex(0); } UI_ButtonBadge.ProxyEnd(); } } }