using ET; using FairyGUI; using UI.CommonGame; using UI.RoleInfo; using UnityEngine; using UI_Button2 = UI.RoleInfo.UI_Button2; namespace GFGGame { public class RoleInfoView : BaseWindow { private UI_RoleInfoUI _ui; 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_btnHelp.visible = false; _ui.m_txtVersion.text = GameGlobal.version; _ui.m_txtSlogan.maxLength = GlobalCfgArray.globalCfg.maxSloganWordsCount; _ui.m_txtSlogan.onFocusOut.Add(OnFocuseOut); _ui.m_loaChangeName.onClick.Add(OnClickLoaChangeName); _ui.m_btnBack.onClick.Add(OnBtnBackClick); _ui.m_btnSuitGuide.target.onClick.Add(OnBtnFieldGuideClick); _ui.m_btnCardGuide.target.onClick.Add(OnBtnFieldGuideClick); _ui.m_btnTaskArchieveGuide.target.onClick.Add(OnBtnTaskArchieveClick); _ui.m_btnSkill.onClick.Add(OnBtnSkillClick); _ui.m_btnSetting.onClick.Add(OnBtnSettingClick); _ui.m_btnCopy.onClick.Add(OnBtnCopyClick); _ui.m_comHead.onClick.Add(OnComHeadClick); _ui.m_photoList.itemRenderer = RenderPhotoListItem; _ui.m_photoList.onClickItem.Add(OnPhotoListItemClick); _ui.m_badgeList.itemRenderer = OnRenderBadgeListItem; } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.CHANGE_ROLE_NAME, UpdateRoleName); EventAgent.AddEventListener(ConstMessage.CHANGE_ROLE_HEAD, UpdateHead); EventAgent.AddEventListener(ConstMessage.RED_CHANGE, UpdateRedDot); EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH, UpdatePhotoList); } protected override void OnShown() { base.OnShown(); _ui.m_txtRoleName.text = RoleDataManager.roleName; _ui.m_txtLvl.text = "" + GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl); RoleLevelCfg roleLevelCfg = RoleLevelCfgArray.Instance.GetCfg(GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl)); if (roleLevelCfg.exp > 0) { _ui.m_txtExp.text = string.Format("{0}/{1}", GameGlobal.myNumericComponent.GetAsInt(NumericType.Exp), roleLevelCfg.exp); } else { _ui.m_txtExp.text = "已满级"; } _ui.m_txtSlogan.text = RoleDataManager.slogan; UpdateHead(); UpdatePhotoList(); UpdateRedDot(); UpdateCollectProgress(); UpdateInfo(); _ui.m_badgeList.numItems = _ui.m_badgeList.numItems; } protected override void OnHide() { base.OnHide(); } private void OnBtnBackClick() { _ui.m_photoList.scrollPane.percX = 0; Hide(); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.CHANGE_ROLE_NAME, UpdateRoleName); EventAgent.RemoveEventListener(ConstMessage.CHANGE_ROLE_HEAD, UpdateHead); EventAgent.RemoveEventListener(ConstMessage.RED_CHANGE, UpdateRedDot); EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, UpdatePhotoList); } private void UpdateRoleName() { _ui.m_txtRoleName.text = RoleDataManager.roleName; } private void UpdateHead() { RoleInfoManager.Instance.UpdateHead(_ui.m_comHead, RoleDataManager.headId, RoleDataManager.headBorderId); } private void UpdatePhotoList() { _ui.m_photoList.numItems = RoleDataManager.photoDatas.Count; } private void RenderPhotoListItem(int index, GObject obj) { long pictureId = RoleDataManager.photoDatas[index]; PoemPhotoData poemPhotoData = pictureId == 0 ? null : PoemPhotoDataManager.Instance.GetPersonalPhotoDataById(pictureId); UI_ListPhotoItem item = UI_ListPhotoItem.Proxy(obj); item.target.data = index; if(poemPhotoData == null) { item.m_type.SetSelectedIndex(0); } else { item.m_type.SetSelectedIndex(1); } if (RoleInfoManager.GetPosType(index) == MonthCardType.Gold && !RoleDataManager.CheckIsMonthCardOpenByType(MonthCardType.Gold) || RoleInfoManager.GetPosType(index) == MonthCardType.BlackGold && !RoleDataManager.CheckIsMonthCardOpenByType(MonthCardType.BlackGold)) { item.m_type.SetSelectedIndex(2); item.m_txtLock.text = RoleInfoManager.GetSuitPosItems()[index]; item.m_comPhoto.m_loaPhoto.texture = null; RoleDataManager.photoDatas[index] = 0; return; } item.m_comPhoto.m_loaPhoto.texture = poemPhotoData == null ? null : poemPhotoData.Ntexture; UI_ListPhotoItem.ProxyEnd(); } private void OnPhotoListItemClick(EventContext context) { GObject obj = context.data as GObject; int index = (int)obj.data; if (RoleInfoManager.GetPosType(index) == MonthCardType.Gold && !RoleDataManager.CheckIsMonthCardOpenByType(MonthCardType.Gold)) { // PromptController.Instance.ShowFloatTextPrompt("豆包卡开启"); ViewManager.Show(new object[] { ConstStoreTabId.STORE_MONTH_CARD, ConstStoreSubId.STORE_MONTH_GOLD_CARD }); return; } if (RoleInfoManager.GetPosType(index) == MonthCardType.BlackGold && !RoleDataManager.CheckIsMonthCardOpenByType(MonthCardType.BlackGold)) { // PromptController.Instance.ShowFloatTextPrompt("阿福卡开启"); ViewManager.Show(new object[] { ConstStoreTabId.STORE_MONTH_CARD, ConstStoreSubId.STORE_MONTH_BLACK_CARD }); return; } ViewManager.Show(index); } private void OnRenderBadgeListItem(int index, GObject gObject) { gObject.data = -1; UI_ButtonBadge buttonBadge = UI_ButtonBadge.Proxy(gObject); if (index <= RoleDataManager.badgeDatas.Count) { buttonBadge.target.touchable = true; // 显示 + 号 if(index == RoleDataManager.badgeDatas.Count) { buttonBadge.m_type.SetSelectedIndex(2); } // 显示放置的徽章 else { int badgeID = RoleDataManager.badgeDatas[index]; gObject.data = badgeID; buttonBadge.m_type.SetSelectedIndex(1); // 加载徽章图片 //buttonBadge.m_iconImg.url = ResPathUtil.GetIconPath(ItemCfgArray.Instance.GetCfg(badgeID)); buttonBadge.m_iconImg.url = "ui://RoleInfo/linshj1"; } } else { buttonBadge.m_type.SetSelectedIndex(0); buttonBadge.target.touchable = false; } buttonBadge.target.onClick.Add(OnBadgeBtnClick); UI_ButtonBadge.ProxyEnd(); } private void OnBadgeBtnClick(EventContext eventContext) { int id = (int)(eventContext.sender as GObject).data; ViewManager.Show(id); } private async void OnFocuseOut() { _ui.m_txtSlogan.text = await RoleInfoSProxy.ReqModifySlogan(_ui.m_txtSlogan.text); } private void OnClickLoaChangeName() { ViewManager.Show(); } private void OnBtnFieldGuideClick() { ViewManager.Show(); } private void OnBtnTaskArchieveClick() { ViewManager.Show(); } private void OnBtnSkillClick() { ViewManager.Show(); } private void OnBtnSettingClick() { SettingView.refresh = true; ViewManager.Show(); } private void OnBtnCopyClick() { GUIUtility.systemCopyBuffer = _ui.m_txtRoleID.text; PromptController.Instance.ShowFloatTextPrompt("已复制ID"); } private void OnComHeadClick() { ViewManager.Show(); } private void UpdateRedDot() { RedDotController.Instance.SetComRedDot(_ui.m_comHead, RedDotDataManager.Instance.GetHeadRed() || RedDotDataManager.Instance.GetHeadBorderRed(), "", -30, 40); } private void UpdateCollectProgress() { UI_Button2 button2 = UI_Button2.Proxy(_ui.m_btnSuitGuide.target); // 套装 float progress = RoleInfoManager.Instance.GetSuitGuideProgress(); button2.m_rate.text = progress.ToString(); button2.m_progressBar.fillAmount = progress / 100; // 词牌 button2 = UI_Button2.Proxy(_ui.m_btnCardGuide.target); progress = RoleInfoManager.Instance.GetCardGuideProgress(); button2.m_rate.text = progress.ToString(); button2.m_progressBar.fillAmount = progress / 100; // 成就 button2 = UI_Button2.Proxy(_ui.m_btnTaskArchieveGuide.target); progress = RoleDataManager.achievementTaskCollect; button2.m_rate.text = progress.ToString(); button2.m_progressBar.fillAmount = progress / 100; UI_Button2.ProxyEnd(); } private void UpdateInfo() { _ui.m_leagueName.text = RoleInfoManager.Instance.GetLeagueName(); _ui.m_txtRoleID.text = RoleInfoManager.Instance.GetRoleID().ToString(); } } }