少年修仙传客户端代码仓库
client_linchunjie
2019-01-08 c392a9f745ecec070c9b55e451d0a8a73a6d9ad5
5729 【前端】【1.5】时装功能开发
2 文件已复制
2 文件已重命名
2个文件已添加
6个文件已修改
530 ■■■■■ 已修改文件
Core/GameEngine/Model/Config/FashionDressCabinetConfig.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/FashionDressCabinetConfig.cs.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/FashionDressConfig.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/FashionDressConfig.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/ConfigManager.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FashionDress/FashionDressCell.cs 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FashionDress/FashionDressCell.cs.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FashionDress/FashionDressModel.cs 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FashionDress/FashionDressQualityBehaviour.cs 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FashionDress/FashionDressQualityBehaviour.cs.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FashionDress/FashionDressWin.cs 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Role/RolePanel.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/FashionDressCabinetConfig.cs
File was renamed from Core/GameEngine/Model/Config/FashionDressLevelUpConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Monday, January 07, 2019
//    [  Date ]:           Tuesday, January 08, 2019
//--------------------------------------------------------
using UnityEngine;
@@ -9,11 +9,11 @@
namespace TableConfig {
    
    public partial class FashionDressLevelUpConfig : ConfigBase {
    public partial class FashionDressCabinetConfig : ConfigBase {
        public int LV { get ; private set ; }
        public int NeedExp { get ; private set ; }
        public int[] AttrType;
        public string Attr { get ; private set; }
        public override string getKey()
        {
@@ -27,12 +27,7 @@
            
                NeedExp=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0; 
            
                string[] AttrTypeStringArray = rawContents[2].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                AttrType = new int[AttrTypeStringArray.Length];
                for (int i=0;i<AttrTypeStringArray.Length;i++)
                {
                     int.TryParse(AttrTypeStringArray[i],out AttrType[i]);
                }
                Attr = rawContents[2].Trim();
            }
            catch (Exception ex)
            {
Core/GameEngine/Model/Config/FashionDressCabinetConfig.cs.meta
copy from Core/GameEngine/Model/Config/FashionDressLevelUpConfig.cs.meta copy to Core/GameEngine/Model/Config/FashionDressCabinetConfig.cs.meta
File was copied from Core/GameEngine/Model/Config/FashionDressLevelUpConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 780afd3c2aae26346a489721491894e5
timeCreated: 1546853266
guid: 28e71cfd492229640aecaf39e2a40093
timeCreated: 1546913213
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Core/GameEngine/Model/Config/FashionDressConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Monday, January 07, 2019
//    [  Date ]:           Tuesday, January 08, 2019
//--------------------------------------------------------
using UnityEngine;
@@ -12,7 +12,9 @@
    public partial class FashionDressConfig : ConfigBase {
        public int CoatID { get ; private set ; }
        public string name { get ; private set; }
        public int type { get ; private set ; }
        public int quality { get ; private set ; }
        public int[] EquipItemID;
        public int UnlockItemID { get ; private set ; }
        public int MaxLV { get ; private set ; }
@@ -29,27 +31,31 @@
            {
                CoatID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; 
            
                type=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0;
                name = rawContents[1].Trim();
            
                string[] EquipItemIDStringArray = rawContents[2].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                type=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0;
                quality=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0;
                string[] EquipItemIDStringArray = rawContents[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                EquipItemID = new int[EquipItemIDStringArray.Length];
                for (int i=0;i<EquipItemIDStringArray.Length;i++)
                {
                     int.TryParse(EquipItemIDStringArray[i],out EquipItemID[i]);
                }
            
                UnlockItemID=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0;
                UnlockItemID=IsNumeric(rawContents[5]) ? int.Parse(rawContents[5]):0;
            
                MaxLV=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0;
                MaxLV=IsNumeric(rawContents[6]) ? int.Parse(rawContents[6]):0;
            
                string[] CostItemCntStringArray = rawContents[5].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] CostItemCntStringArray = rawContents[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                CostItemCnt = new int[CostItemCntStringArray.Length];
                for (int i=0;i<CostItemCntStringArray.Length;i++)
                {
                     int.TryParse(CostItemCntStringArray[i],out CostItemCnt[i]);
                }
            
                StarAttr = rawContents[6].Trim();
                StarAttr = rawContents[8].Trim();
            }
            catch (Exception ex)
            {
Core/GameEngine/Model/Config/FashionDressConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 5ac2a701b6eaba844b1082c87758125e
timeCreated: 1546865215
timeCreated: 1546928945
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Core/GameEngine/Model/ConfigManager.cs
@@ -219,8 +219,8 @@
        AddAsyncTask<GatherSoulComposeConfig>();
        AddAsyncTask<KingTreasureConfig>();
        AddAsyncTask<KingTreasureItemConfig>();
        AddAsyncTask<FashionDressLevelUpConfig>();
        AddAsyncTask<FashionDressConfig>();
        AddAsyncTask<FashionDressCabinetConfig>();
        while (!AllCompleted())
        {
System/FashionDress/FashionDressCell.cs
New file
@@ -0,0 +1,115 @@
using System;
using System.Collections;
using System.Collections.Generic;
using TableConfig;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class FashionDressCell : CellView
    {
        [SerializeField] ItemBehaviour m_Item;
        [SerializeField] Text m_ItemName;
        [SerializeField] Text m_ItemCount;
        [SerializeField] Text m_GetPath;
        [SerializeField] RectTransform m_ContainerStars;
        [SerializeField] Transform[] m_Stars;
        [SerializeField] Transform[] m_StarEquips;
        [SerializeField] Button m_LevelUp;
        [SerializeField] Transform m_ContainerDarkMask;
        [SerializeField] Transform m_Lock;
        [SerializeField] Button m_Unlock;
        [SerializeField] Transform m_ContainerSelect;
        [SerializeField] Transform m_Equiped;
        [SerializeField] Transform m_Preview;
        [SerializeField] Button m_Select;
        int fashionDressId = 0;
        FashionDressModel model
        {
            get { return ModelCenter.Instance.GetModel<FashionDressModel>(); }
        }
        PlayerPackModel packModel
        {
            get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); }
        }
        public void Display(int id)
        {
            fashionDressId = id;
            FashionDress fashionDress;
            m_LevelUp.RemoveAllListeners();
            m_Unlock.RemoveAllListeners();
            var fashionDressLevel = model.GetFashionDressLevel(fashionDressId);
            m_ContainerDarkMask.gameObject.SetActive(fashionDressLevel == 0);
            m_ContainerStars.gameObject.SetActive(fashionDressLevel > 0);
            if (model.TryGetFashionDress(fashionDressId, out fashionDress))
            {
                var equipItemId = fashionDress.GetEquipItemId();
                var equipedFashionDressId = model.GetFashionDressEquipId(fashionDress.fashionDressType);
                m_Equiped.gameObject.SetActive(equipedFashionDressId == fashionDressId);
                var previewFashionId = 0;
                model.TryGetSelect(fashionDress.fashionDressType, out previewFashionId);
                m_Preview.gameObject.SetActive(equipedFashionDressId != fashionDressId
                    && previewFashionId == fashionDressId);
                bool isMax = fashionDressLevel >= fashionDress.maxLevel;
                var count = packModel.GetItemCountByID(PackType.rptItem, equipItemId);
                m_Item.SetItem(equipItemId, 0);
                var levelUpRequireCount = fashionDress.GetLevelUpRequireCount(fashionDressLevel);
                var requireCountDisplay = UIHelper.AppendStringColor(count >= levelUpRequireCount ?
                    TextColType.DarkGreen : TextColType.Red, count.ToString());
                m_ItemCount.text = isMax ? count.ToString() : StringUtility.Contact(requireCountDisplay, "/", levelUpRequireCount);
                var config = Config.Instance.Get<FashionDressConfig>(fashionDressId);
                m_ItemName.text = config.name;
                //--to do 时装名称 获取途径
                if (fashionDressLevel > 0)
                {
                    for (int i = 0; i < m_Stars.Length; i++)
                    {
                        m_Stars[i].gameObject.SetActive(i < fashionDress.maxLevel);
                    }
                    for (int i = 0; i < m_StarEquips.Length; i++)
                    {
                        m_StarEquips[i].gameObject.SetActive(i < fashionDressLevel);
                    }
                }
                m_Lock.gameObject.SetActive(count < levelUpRequireCount);
                m_Unlock.gameObject.SetActive(count >= levelUpRequireCount);
                m_LevelUp.AddListener(LevelUp);
                m_Unlock.AddListener(Unlock);
                m_Select.AddListener(Select);
            }
        }
        private void Select()
        {
            FashionDress fashionDress;
            if (model.TryGetFashionDress(fashionDressId, out fashionDress))
            {
                model.SetPreviewFashionDress(fashionDress.fashionDressType, fashionDressId);
            }
        }
        private void Unlock()
        {
        }
        private void LevelUp()
        {
        }
    }
}
System/FashionDress/FashionDressCell.cs.meta
File was renamed from Core/GameEngine/Model/Config/FashionDressLevelUpConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 780afd3c2aae26346a489721491894e5
timeCreated: 1546853266
guid: 6f69d8fa7c986cd4babb27d708adba91
timeCreated: 1546918315
licenseType: Pro
MonoImporter:
  serializedVersion: 2
System/FashionDress/FashionDressModel.cs
@@ -9,8 +9,17 @@
    {
        Dictionary<int, FashionDress> fashionDressDict = new Dictionary<int, FashionDress>();
        Dictionary<int, int> fashionDressLevelDict = new Dictionary<int, int>();
        Dictionary<int, Dictionary<int, int>> cabinetPropertyDict = new Dictionary<int, Dictionary<int, int>>();
        Dictionary<int, int> fashionTypeMapPlaceDict = new Dictionary<int, int>();
        Dictionary<int, List<int>> fashionDressTypeDict = new Dictionary<int, List<int>>();
        Dictionary<int, Dictionary<int, List<int>>> fashionDressQualityDict = new Dictionary<int, Dictionary<int, List<int>>>();
        public int cabinetLevel { get; private set; }
        public int cabinetExp { get; private set; }
        public int cabinetMaxLevel { get; private set; }
        int m_SelectType = 0;
        public Dictionary<int, int> fashionDressSelectDict { get; private set; }
        int m_SelectType = 1;
        public int selectType
        {
            get { return m_SelectType; }
@@ -27,16 +36,44 @@
            }
        }
        int m_SelectQuality = 0;
        public int selectQuality
        {
            get { return m_SelectQuality; }
            set
            {
                if (m_SelectQuality != value)
                {
                    m_SelectQuality = value;
                    if (selectQualityRefresh != null)
                    {
                        selectQualityRefresh();
                    }
                }
            }
        }
        public event Action selectTypeRefresh;
        public event Action cabinetRefresh;
        public event Action selectQualityRefresh;
        public event Action<int> previewRefresh;
        PlayerPackModel packModel
        {
            get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); }
        }
        public override void Init()
        {
            ParseConfig();
            fashionDressSelectDict = new Dictionary<int, int>();
        }
        public void OnBeforePlayerDataInitialize()
        {
            fashionDressLevelDict.Clear();
            cabinetLevel = 0;
            cabinetExp = 0;
        }
        public void OnPlayerLoginOk()
@@ -49,16 +86,59 @@
        void ParseConfig()
        {
            var configs = Config.Instance.GetAllValues<FashionDressConfig>();
            foreach (var config in configs)
            {
                fashionDressDict[config.CoatID] = new FashionDress(config);
            }
        }
                var configs = Config.Instance.GetAllValues<FashionDressConfig>();
                foreach (var config in configs)
                {
                    fashionDressDict[config.CoatID] = new FashionDress(config);
                    {
                        List<int> list;
                        if (!fashionDressTypeDict.TryGetValue(config.type, out list))
                        {
                            list = new List<int>();
                            fashionDressTypeDict.Add(config.type, list);
                        }
                        list.Add(config.CoatID);
                    }
        public bool TryGetFashionDress(int id, out FashionDress fashionDress)
        {
            return fashionDressDict.TryGetValue(id, out fashionDress);
                    {
                        Dictionary<int, List<int>> dict;
                        if (!fashionDressQualityDict.TryGetValue(config.type, out dict))
                        {
                            dict = new Dictionary<int, List<int>>();
                            fashionDressQualityDict.Add(config.type, dict);
                        }
                        List<int> list;
                        if (!dict.TryGetValue(config.quality, out list))
                        {
                            list = new List<int>();
                            dict.Add(config.quality, list);
                        }
                        list.Add(config.CoatID);
                    }
                }
            }
            {
                var configs = Config.Instance.GetAllValues<FashionDressCabinetConfig>();
                foreach (var config in configs)
                {
                    cabinetPropertyDict.Add(config.LV, ConfigParse.GetDic<int, int>(config.Attr));
                    if (config.LV > cabinetMaxLevel)
                    {
                        cabinetMaxLevel = config.LV;
                    }
                }
            }
            {
                var config = Config.Instance.Get<FuncConfigConfig>("FashionDressType");
                if (config != null)
                {
                    fashionTypeMapPlaceDict = ConfigParse.GetDic<int, int>(config.Numerical1);
                }
            }
        }
        public int GetFashionDressLevel(int id)
@@ -70,14 +150,77 @@
            return 0;
        }
        public bool TryGetFashionDressProperty(int id, int star, out Dictionary<int, int> dict)
        public int GetFashionDressEquipId(int type)
        {
            if (fashionTypeMapPlaceDict.ContainsKey(type)
                && fashionDressTypeDict.ContainsKey(type))
            {
                var equipPlace = fashionTypeMapPlaceDict[type];
                var itemModel = packModel.GetItemModelByIndex(PackType.rptEquip, (int)equipPlace);
                var list = fashionDressTypeDict[type];
                if (itemModel != null)
                {
                    var index = list.FindIndex((id) =>
                    {
                        FashionDress fashionDress;
                        if (TryGetFashionDress(id, out fashionDress))
                        {
                            return fashionDress.GetEquipItemId() == itemModel.itemId;
                        }
                        return false;
                    });
                    if (index != -1)
                    {
                        return list[index];
                    }
                }
            }
            return 0;
        }
        public bool TryGetFashionDress(int id, out FashionDress fashionDress)
        {
            return fashionDressDict.TryGetValue(id, out fashionDress);
        }
        public bool TryGetFashionDresses(int type, int quality, out List<int> list)
        {
            list = null;
            if (fashionDressQualityDict.ContainsKey(type))
            {
                return fashionDressQualityDict[type].TryGetValue(quality, out list);
            }
            return false;
        }
        public bool TryGetFashionDressProperty(int id, int level, out Dictionary<int, int> dict)
        {
            dict = null;
            if (fashionDressDict.ContainsKey(id))
            {
                return fashionDressDict[id].TryGetProperty(star, out dict);
                return fashionDressDict[id].TryGetProperty(level, out dict);
            }
            return false;
        }
        public bool TryGetSelect(int type, out int id)
        {
            id = 0;
            if (fashionDressSelectDict.ContainsKey(type))
            {
                id = fashionDressSelectDict[type];
                return true;
            }
            return false;
        }
        public void SetPreviewFashionDress(int type, int id)
        {
            fashionDressSelectDict[type] = id;
            if (previewRefresh != null)
            {
                previewRefresh(type);
            }
        }
        #region 时装详情
@@ -139,9 +282,19 @@
            return 0;
        }
        public bool TryGetProperty(int star, out Dictionary<int, int> dict)
        public bool TryGetProperty(int level, out Dictionary<int, int> dict)
        {
            return propertys.TryGetValue(star, out dict);
            return propertys.TryGetValue(level, out dict);
        }
        public int GetLevelUpRequireCount(int level)
        {
            var index = level;
            if (index < requireLevelUpCounts.Count)
            {
                return requireLevelUpCounts[index];
            }
            return 0;
        }
    }
}
System/FashionDress/FashionDressQualityBehaviour.cs
New file
@@ -0,0 +1,58 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    [XLua.Hotfix]
    public class FashionDressQualityBehaviour : MonoBehaviour
    {
        [SerializeField] int m_Quality = 0;
        [SerializeField] Transform m_ContainerSelect;
        [SerializeField] Transform m_ContainerNormal;
        [SerializeField] Shadow m_QualityShadow;
        [SerializeField] Button m_Select;
        FashionDressModel model
        {
            get { return ModelCenter.Instance.GetModel<FashionDressModel>(); }
        }
        private void Awake()
        {
            m_Select.AddListener(OnSelect);
        }
        public void Display()
        {
            model.selectQualityRefresh += SelectQualityRefresh;
            DisplaySelect();
        }
        void DisplaySelect()
        {
            bool selected = model.selectQuality == m_Quality;
            m_ContainerSelect.gameObject.SetActive(selected);
            m_ContainerNormal.gameObject.SetActive(!selected);
            m_QualityShadow.enabled = selected;
        }
        public void Dispose()
        {
            model.selectQualityRefresh -= SelectQualityRefresh;
        }
        private void SelectQualityRefresh()
        {
            DisplaySelect();
        }
        private void OnSelect()
        {
            model.selectQuality = m_Quality;
        }
    }
}
System/FashionDress/FashionDressQualityBehaviour.cs.meta
copy from Core/GameEngine/Model/Config/FashionDressLevelUpConfig.cs.meta copy to System/FashionDress/FashionDressQualityBehaviour.cs.meta
File was copied from Core/GameEngine/Model/Config/FashionDressLevelUpConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 780afd3c2aae26346a489721491894e5
timeCreated: 1546853266
guid: a006ff57d928a7248b12f7688c91811e
timeCreated: 1546914298
licenseType: Pro
MonoImporter:
  serializedVersion: 2
System/FashionDress/FashionDressWin.cs
@@ -6,6 +6,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using TableConfig;
using UnityEngine;
using UnityEngine.UI;
@@ -15,6 +16,16 @@
    public class FashionDressWin : Window
    {
        [SerializeField] FashionDressTypeBehaviour[] m_FashionDressTypes;
        [SerializeField] Button m_ViewProperty;
        [SerializeField] Button m_Resolve;
        [SerializeField] IntensifySmoothSlider m_SmoothSlider;
        [SerializeField] Text m_CabinetExp;
        [SerializeField] Text m_CabinetLevel;
        [SerializeField] FashionDressQualityBehaviour[] m_FashionDressQualitys;
        [SerializeField] ScrollerController m_ScrollerControl;
        [SerializeField] Button m_ViewDetail;
        FashionDressModel model
        {
@@ -27,10 +38,27 @@
        protected override void AddListeners()
        {
            m_ViewProperty.AddListener(ViewProperty);
            m_Resolve.AddListener(Resolve);
            m_ViewDetail.AddListener(ViewDetail);
            m_ScrollerControl.OnRefreshCell += OnRefreshCell;
        }
        protected override void OnPreOpen()
        {
            model.cabinetRefresh += FashionDressCabinetRefresh;
            model.selectTypeRefresh += SelectTypeRefresh;
            model.selectQualityRefresh += SelectQualityRefresh;
            for (int i = 0; i < m_FashionDressTypes.Length; i++)
            {
                m_FashionDressTypes[i].Display();
            }
            for (int i = 0; i < m_FashionDressQualitys.Length; i++)
            {
                m_FashionDressQualitys[i].Display();
            }
            Display();
        }
        protected override void OnAfterOpen()
@@ -39,6 +67,18 @@
        protected override void OnPreClose()
        {
            model.cabinetRefresh -= FashionDressCabinetRefresh;
            model.selectTypeRefresh -= SelectTypeRefresh;
            model.selectQualityRefresh -= SelectQualityRefresh;
            for (int i = 0; i < m_FashionDressTypes.Length; i++)
            {
                m_FashionDressTypes[i].Dispose();
            }
            for (int i = 0; i < m_FashionDressQualitys.Length; i++)
            {
                m_FashionDressQualitys[i].Dispose();
            }
        }
        protected override void OnAfterClose()
@@ -46,6 +86,94 @@
        }
        #endregion
        void Display()
        {
            DisplayCabinet();
            DisplayFashionDress();
        }
        void DisplayCabinet(bool requireAnimation = false)
        {
            m_SmoothSlider.stage = model.cabinetLevel;
            if (!requireAnimation)
            {
                m_SmoothSlider.delay = 0;
                m_SmoothSlider.ResetStage();
            }
            else
            {
                m_SmoothSlider.delay = 0.2f;
            }
            bool isMax = model.cabinetLevel >= model.cabinetMaxLevel;
            var progress = 0f;
            if (isMax)
            {
                progress = 1;
                m_CabinetExp.text = model.cabinetExp.ToString();
            }
            else
            {
                var config = Config.Instance.Get<FashionDressCabinetConfig>(model.cabinetLevel + 1);
                progress = Mathf.Clamp01((float)model.cabinetExp / config.NeedExp);
                m_CabinetExp.text = StringUtility.Contact(model.cabinetExp, "/", config.NeedExp);
            }
            m_SmoothSlider.value = progress;
            m_CabinetLevel.text = Language.Get("CabinetLevel", model.cabinetLevel);
        }
        void DisplayFashionDress()
        {
            List<int> list;
            m_ScrollerControl.Refresh();
            if (model.TryGetFashionDresses(model.selectType, model.selectQuality, out list))
            {
                for (int i = 0; i < list.Count; i++)
                {
                    m_ScrollerControl.AddCell(ScrollerDataType.Header, list[i]);
                }
            }
            m_ScrollerControl.Restart();
        }
        private void FashionDressCabinetRefresh()
        {
            DisplayCabinet(true);
        }
        private void SelectTypeRefresh()
        {
            DisplayFashionDress();
        }
        private void SelectQualityRefresh()
        {
            DisplayFashionDress();
        }
        private void OnRefreshCell(ScrollerDataType type, CellView cell)
        {
            var fashionDressCell = cell as FashionDressCell;
            fashionDressCell.Display(cell.index);
        }
        private void Resolve()
        {
        }
        private void ViewProperty()
        {
        }
        private void ViewDetail()
        {
            var id = 0;
            if (model.TryGetSelect(model.selectType, out id))
            {
                model.ViewFashionDressDetails(id);
            }
        }
    }
}
System/Role/RolePanel.cs
@@ -288,6 +288,7 @@
        private void OpenFashionDress()
        {
            CloseChild();
            WindowCenter.Instance.Open<FashionDressWin>();
            functionOrder = m_FashionDress.order;
        }