| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 | using System.Collections;using UnityEngine;using UI.RoleInfo;using FairyGUI;using System.Collections.Generic;using System.Threading.Tasks;namespace GFGGame{    public class BadgeChooseView : BaseWindow    {        private UI_BadgeChooseUI _ui;        private List<ItemCfg> _badgeList;        private int selectedID;        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_BadgeChooseUI.Create();            this.viewCom = _ui.target;            isfullScreen = true;            isReturnView = true;            _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("bg_hzzs");            _ui.m_btnback.onClick.Add(Hide);            _ui.m_list.itemRenderer = OnRenderItem;            _badgeList = ItemCfgArray.Instance.GetCfgsByitemType(ConstItemType.BADGE);        }        protected override void OnShown()        {            base.OnShown();            selectedID = (viewData == null ? -1 : (int)viewData);            _ui.m_list.numItems = _badgeList.Count;            _ui.m_list.scrollPane.ScrollTop();        }        protected override void OnHide()        {            base.OnHide();        }        protected override void AddEventListener()        {            base.AddEventListener();        }        protected override void RemoveEventListener()        {            base.RemoveEventListener();        }        private void OnRenderItem(int index, GObject gObject)        {            gObject.data = _badgeList[index].id;            UI_BadgeItem badgeItem = UI_BadgeItem.Proxy(gObject);            badgeItem.m_name.text = _badgeList[index].name;            badgeItem.m_iconImg.url = ResPathUtil.GetIconPath(_badgeList[index]);            //badgeItem.m_iconImg.url = "ui://RoleInfo/linshj1_l";            if (RoleDataManager.HaveBadge(_badgeList[index].id))            {                // 显示 卸下                if (_badgeList[index].id == selectedID)                {                    badgeItem.m_type.SetSelectedIndex(0);                    gObject.onClick.Set(RemoveBadge);                }                // 显示 已选中                else if(RoleDataManager.badgeDatas.Contains(_badgeList[index].id))                {                    badgeItem.m_type.SetSelectedIndex(1);                    gObject.onClick.Set(()=>                    {                        PromptController.Instance.ShowFloatTextPrompt("该徽章已在展示中");                    });                }                else                {                    badgeItem.m_type.SetSelectedIndex(2);                    gObject.onClick.Set(SetBadge);                }            }            else            {                badgeItem.m_type.SetSelectedIndex(3);                gObject.onClick.Set(OnClickUnHaveItem);            }            UI_BadgeItem.ProxyEnd();        }        private void RemoveBadge()        {            RoleDataManager.badgeDatas.Remove(selectedID);            UpdateBadgeList();        }        private void SetBadge(EventContext eventContext)        {            int id = (int)(eventContext.sender as GObject).data;            // 点击空位进来的            if(selectedID == -1)            {                RoleDataManager.badgeDatas.Add(id);            }            else            {                int index = RoleDataManager.badgeDatas.FindIndex(x => x.Equals(selectedID));                RoleDataManager.badgeDatas[index] = id;            }            UpdateBadgeList();        }        private async Task UpdateBadgeList()        {            await RoleInfoSProxy.ReqSaveBadgeList(RoleDataManager.badgeDatas);            Hide();        }        private void OnClickUnHaveItem(EventContext eventContext)        {            int id = (int)(eventContext.sender as GObject).data;            object[] goBackDatas = ViewManager.GetGoBackDatas(typeof(BadgeChooseView).Name);            object[] sourceDatas = new object[] { id, goBackDatas, 1 };            GoodsItemTipsController.ShowItemTips(id, sourceDatas, false);        }    }}
 |