| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 | using System.Collections;using UnityEngine;using UI.ClothingSynthetic;using FairyGUI;using System.Collections.Generic;namespace GFGGame{    public class SuitSyntheticView : BaseWindow    {        private UI_ClothingSyntheticListUI _ui;        private List<int> _suitListIds;        public override void Dispose()        {            base.Dispose();        }        protected override void OnInit()        {            base.OnInit();            packageName = UI_ClothingSyntheticListUI.PACKAGE_NAME;            _ui = UI_ClothingSyntheticListUI.Create();            this.viewCom = _ui.target;            isfullScreen = true;            _ui.m_listSuit.itemRenderer = ListSuitItemRenderer;            _ui.m_btnBack.onClick.Add(OnClickBtnBack);            _ui.m_listMenu.onClickItem.Add(OnClickListMenuItem);        }        protected override void OnShown()        {            base.OnShown();            _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("hc_bj_1");            _ui.m_listMenu.selectedIndex = 0;            UpdateSuitList();            EventAgent.AddEventListener(ConstMessage.SUIT_BOX_STATUS_CHANGED, UpdateSuitBoxStatus);        }        protected override void OnHide()        {            base.OnHide();            EventAgent.RemoveEventListener(ConstMessage.SUIT_BOX_STATUS_CHANGED, UpdateSuitBoxStatus);        }        private void OnClickBtnBack()        {            ViewManager.GoBackFrom(ViewName.SUIT_SYNTHETIC_LIST_VIEW);        }        private void OnClickListMenuItem()        {            UpdateSuitList();        }        private void UpdateSuitList()        {            if (_suitListIds == null)            {                _suitListIds = new List<int>();            }            else            {                _suitListIds.Clear();            }            int index = _ui.m_listMenu.selectedIndex;            var suitCfgs = SuitCfgArray.Instance.GetCfgs(index + 1);            foreach (var suitCfg in suitCfgs)            {                _suitListIds.Add(suitCfg.id);            }            _ui.m_listSuit.numItems = _suitListIds.Count;        }        private void ListSuitItemRenderer(int index, GObject item)        {            UI_SuitListItem listItem = UI_SuitListItem.Proxy(item);            int suitId = _suitListIds[index];            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitId);            listItem.m_txtName.text = suitCfg.name;            listItem.m_loaderPic.url = ResPathUtil.GetFieldGuideIconPath(suitCfg.res);            int count = 0;            int totalCount = 0;            DressUpMenuSuitDataManager.GetSuitProgressBySuitId(suitId, out count, out totalCount);            listItem.m_progBar.max = totalCount;            listItem.m_progBar.value = count;            RarityIconController.UpdateRarityIcon(listItem.m_rarity, suitId, false, true);            bool haveSuit = DressUpMenuSuitDataManager.CheckHaveSuit(suitId);            bool isLock = false;            SuitCfg suitSyntheticCfg = SuitCfgArray.Instance.GetCfg(suitId);            if (suitSyntheticCfg.syntheticStoryLevelId > 0)            {                //int chapter = 0;                //int level = 0;                //CalculateHelper.GetStoryChapterLevel(suitSyntheticCfg.storyLevelId, out var chapter, out var level);                bool isLevelPass = InstanceZonesDataManager.CheckLevelPass(suitSyntheticCfg.syntheticStoryLevelId);                if (!isLevelPass)                {                    isLock = true;                    var levelCfg = StoryLevelCfgArray.Instance.GetCfg(suitSyntheticCfg.syntheticStoryLevelId);                    var chapterCfg = StoryChapterCfgArray.Instance.GetCfg(levelCfg.chapterId);                    listItem.m_txtLockDesc.text = string.Format("通关第{0}章第{1}关", chapterCfg.order, levelCfg.order);                }            }            if (suitSyntheticCfg.syntheticPreSuitId > 0)            {                bool hasPreSuit = DressUpMenuSuitDataManager.CheckHaveSuit(suitSyntheticCfg.syntheticPreSuitId);                if (!hasPreSuit)                {                    isLock = true;                    string preSuitName = SuitUtil.GetSuitName(suitSyntheticCfg.syntheticPreSuitId);                    listItem.m_txtLockDesc.text = string.Format("集齐{0}套装", preSuitName);                }            }            listItem.m_groupLock.visible = isLock;            listItem.target.data = suitId;            UpdateSuitBoxStatusView(listItem);            listItem.m_loaderBonusBox.onClick.Clear();            listItem.m_loaderBonusBox.onClick.Add(() =>            {                SuitUtil.ShowSuitSyntheticBonus(suitId);            });            listItem.m_bg.onClick.Clear();            listItem.m_bg.onClick.Add(() =>            {                if (!isLock)                {                    ViewManager.Show(ViewName.CLOTHING_SYNTHETIC_VIEW, new object[] { suitId }, new object[] { ViewName.SUIT_SYNTHETIC_LIST_VIEW, this.viewData });                }            });        }        private void UpdateSuitBoxStatus(EventContext eventContext)        {            int suitId = (int)eventContext.data;            int num = _ui.m_listSuit.numChildren;            for (int i = 0; i < num; i++)            {                UI_SuitListItem listItem = UI_SuitListItem.Proxy(_ui.m_listSuit.GetChildAt(i));                int tempSuitId = (int)listItem.target.data;                if (tempSuitId == suitId)                {                    UpdateSuitBoxStatusView(listItem);                }            }        }        private void UpdateSuitBoxStatusView(UI_SuitListItem listItem)        {            listItem.m_iconGot.visible = false;            int suitId = (int)listItem.target.data;            int status = DressUpMenuSuitDataManager.GetSuitSyntheticBonusStatus(suitId);            if (status == ConstBonusStatus.CAN_GET)            {                listItem.m_loaderBonusBox.grayed = false;            }            else            {                listItem.m_loaderBonusBox.grayed = true;                if (status == ConstBonusStatus.GOT)                {                    listItem.m_iconGot.visible = true;                }            }        }        protected override void UpdateToCheckGuide(object param)        {            if (!ViewManager.CheckIsTopView(this.viewCom)) return;            int suitId = 200017;            int suitIndex = 0;            for (int i = 0; i < _suitListIds.Count; i++)            {                if (_suitListIds[i] == suitId)                {                    suitIndex = i;                    break;                }            }            GuideController.TryGuide(_ui.m_listSuit, ConstGuideId.CLOTHING_SYNTHETIC, 3, "查看已解锁的图谱", suitIndex);        }    }}
 |