少年修仙传客户端代码仓库
client_linchunjie
2019-01-08 997384a5d124558c5adf1b5604210f2dfe73973a
5729 【前端】【1.5】时装功能开发
3个文件已修改
184 ■■■■■ 已修改文件
System/FashionDress/FashionDressCell.cs 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FashionDress/FashionDressModel.cs 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FashionDress/FashionDressWin.cs 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FashionDress/FashionDressCell.cs
@@ -49,9 +49,12 @@
            m_Select.RemoveAllListeners();
            var fashionDressLevel = model.GetFashionDressLevel(fashionDressId);
            m_ContainerDarkMask.gameObject.SetActive(fashionDressLevel == 0);
            m_ContainerStars.gameObject.SetActive(fashionDressLevel > 0);
            m_GetPath.gameObject.SetActive(fashionDressLevel == 0);
            var active = fashionDressLevel > 0;
            m_ContainerDarkMask.gameObject.SetActive(!active);
            m_ContainerStars.gameObject.SetActive(active);
            m_GetPath.gameObject.SetActive(!active);
            m_UnlockRedpoint.gameObject.SetActive(model.levelUpRedpoint.state == RedPointState.Simple
                && model.fashionDressRedpointId == fashionDressId);
@@ -61,16 +64,18 @@
            if (model.TryGetFashionDress(fashionDressId, out fashionDress))
            {
                var equipItemId = fashionDress.GetEquipItemId();
                var equipedFashionDressId = model.GetFashionDressEquipId(fashionDress.fashionDressType);
                var virtualEquipFashionId = model.GetVirtualEquipFashionDress(fashionDress.fashionDressType);
                var selectFashionDress = model.GetSelectFashionDress(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);
                m_ContainerSelect.gameObject.SetActive(previewFashionId == fashionDressId);
                bool isEquiped = virtualEquipFashionId == fashionDressId;
                m_Equiped.gameObject.SetActive(isEquiped);
                m_LevelUp.gameObject.SetActive(fashionDressLevel > 0 && fashionDressLevel < fashionDress.maxLevel);
                bool isSelect = selectFashionDress == fashionDressId;
                m_Preview.gameObject.SetActive(!isEquiped && isSelect);
                m_ContainerSelect.gameObject.SetActive(isSelect);
                m_LevelUp.gameObject.SetActive(active && fashionDressLevel < fashionDress.maxLevel);
                bool isMax = fashionDressLevel >= fashionDress.maxLevel;
                var count = packModel.GetItemCountByID(PackType.rptItem, fashionDress.requireLevelUpItem);
@@ -109,15 +114,38 @@
            FashionDress fashionDress;
            if (model.TryGetFashionDress(fashionDressId, out fashionDress))
            {
                var dict = model.fashionDressSelectDict;
                if (dict.ContainsKey(fashionDress.fashionDressType)
                    && dict[fashionDress.fashionDressType] == fashionDressId)
                var selectFashionDress = model.GetSelectFashionDress(fashionDress.fashionDressType);
                var virtualEquipFashionDress = model.GetVirtualEquipFashionDress(fashionDress.fashionDressType);
                if (selectFashionDress != fashionDressId)
                {
                    model.SetPreviewFashionDress(fashionDress.fashionDressType, 0);
                    if (model.IsFashionDressUnlock(fashionDressId))
                    {
                        model.SetVirtualEquipFashionDress(fashionDress.fashionDressType, fashionDressId);
                        model.SetSelectFashionDress(fashionDress.fashionDressType, fashionDressId);
                    }
                    else
                    {
                        model.SetSelectFashionDress(fashionDress.fashionDressType, fashionDressId);
                    }
                }
                else
                {
                    model.SetPreviewFashionDress(fashionDress.fashionDressType, fashionDressId);
                    if (virtualEquipFashionDress == fashionDressId)
                    {
                        model.SetVirtualEquipFashionDress(fashionDress.fashionDressType, 0);
                        model.SetSelectFashionDress(fashionDress.fashionDressType, 0);
                    }
                    else
                    {
                        if (virtualEquipFashionDress != 0)
                        {
                            model.SetSelectFashionDress(fashionDress.fashionDressType, virtualEquipFashionDress);
                        }
                        else
                        {
                            model.SetSelectFashionDress(fashionDress.fashionDressType, 0);
                        }
                    }
                }
            }
        }
System/FashionDress/FashionDressModel.cs
@@ -33,6 +33,7 @@
        }
        public Dictionary<int, int> fashionDressSelectDict { get; private set; }
        public Dictionary<int, int> fashionDressEquipDict { get; private set; }
        public List<int> fashionDressLevelUpItems { get; private set; }
        public List<int> fashionDressTypes { get; private set; }
@@ -75,6 +76,7 @@
        public event Action cabinetRefresh;
        public event Action<int> fashionDressRefresh;
        public event Action<int> previewRefresh;
        public event Action<int> virtualEquipRefresh;
        PlayerPackModel packModel
        {
@@ -85,6 +87,7 @@
        {
            ParseConfig();
            fashionDressSelectDict = new Dictionary<int, int>();
            fashionDressEquipDict = new Dictionary<int, int>();
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
            packModel.RefreshItemCountAct += RefreshItemCountAct;
        }
@@ -224,6 +227,24 @@
            return 0;
        }
        public int GetSelectFashionDress(int type)
        {
            if (fashionDressSelectDict.ContainsKey(type))
            {
                return fashionDressSelectDict[type];
            }
            return 0;
        }
        public int GetVirtualEquipFashionDress(int type)
        {
            if (fashionDressEquipDict.ContainsKey(type))
            {
                return fashionDressEquipDict[type];
            }
            return 0;
        }
        public bool IsFashionDressUnlock(int id)
        {
            var level = GetFashionDressLevel(id);
@@ -302,16 +323,6 @@
            return list.Count > 0;
        }
        public bool TryGetSelect(int type, out int id)
        {
            id = 0;
            if (fashionDressSelectDict.ContainsKey(type))
            {
                id = fashionDressSelectDict[type];
                return true;
            }
            return false;
        }
        public bool TryLevelUp(int id, out int error)
        {
@@ -345,12 +356,21 @@
            }
        }
        public void SetPreviewFashionDress(int type, int id)
        public void SetSelectFashionDress(int type, int id)
        {
            fashionDressSelectDict[type] = id;
            if (previewRefresh != null)
            {
                previewRefresh(type);
            }
        }
        public void SetVirtualEquipFashionDress(int type, int id)
        {
            fashionDressEquipDict[type] = id;
            if (virtualEquipRefresh != null)
            {
                virtualEquipRefresh(type);
            }
        }
@@ -384,22 +404,25 @@
        public void TryEquip()
        {
            foreach (var type in fashionDressSelectDict.Keys)
            foreach (var type in fashionDressEquipDict.Keys)
            {
                var equipId = GetFashionDressEquipId(type);
                var previewId = fashionDressSelectDict[type];
                var virtualEquipId = fashionDressEquipDict[type];
                var index = fashionTypeMapPlaceDict[type];
                if (previewId != 0)
                if (virtualEquipId != 0)
                {
                    if (IsFashionDressUnlock(previewId)
                        && previewId != equipId)
                    if (IsFashionDressUnlock(virtualEquipId)
                        && virtualEquipId != equipId)
                    {
                        SendEquipPackage((int)PackType.rptInterimPack, previewId, (int)PackType.rptEquip, index);
                        SendEquipPackage((int)PackType.rptInterimPack, virtualEquipId, (int)PackType.rptEquip, index);
                    }
                }
                else
                {
                    SendEquipPackage((int)PackType.rptEquip, index, (int)PackType.rptInterimPack, 0);
                    if (equipId != 0)
                    {
                        SendEquipPackage((int)PackType.rptEquip, index, (int)PackType.rptInterimPack, 0);
                    }
                }
            }
        }
System/FashionDress/FashionDressWin.cs
@@ -67,6 +67,7 @@
            model.selectTypeRefresh += SelectTypeRefresh;
            model.selectQualityRefresh += SelectQualityRefresh;
            model.previewRefresh += PreviewRefresh;
            //model.virtualEquipRefresh += VirtualEquipRefresh;
            model.fashionDressRefresh += FashionDressRefresh;
            packModel.RefreshItemCountAct += RefreshItemCountAct;
@@ -93,6 +94,7 @@
            model.previewRefresh -= PreviewRefresh;
            packModel.RefreshItemCountAct -= RefreshItemCountAct;
            model.fashionDressRefresh -= FashionDressRefresh;
            //model.virtualEquipRefresh -= VirtualEquipRefresh;
            for (int i = 0; i < m_FashionDressTypes.Length; i++)
            {
@@ -119,7 +121,8 @@
            foreach (var fashionDressType in model.fashionDressTypes)
            {
                var equipId = model.GetFashionDressEquipId(fashionDressType);
                model.SetPreviewFashionDress(fashionDressType, equipId);
                model.SetVirtualEquipFashionDress(fashionDressType, equipId);
                model.SetSelectFashionDress(fashionDressType, equipId);
            }
        }
@@ -176,24 +179,8 @@
        void DisplayViewDetail()
        {
            var requireViewDetail = false;
            var id = 0;
            if (model.TryGetSelect(model.selectType, out id))
            {
                if (id == 0)
                {
                    var equipId = model.GetFashionDressEquipId(model.selectType);
                    if (equipId != 0)
                    {
                        requireViewDetail = true;
                    }
                }
                else
                {
                    requireViewDetail = true;
                }
            }
            m_ContainerViewDetail.gameObject.SetActive(requireViewDetail);
            var selectFashionDress = model.GetSelectFashionDress(model.selectType);
            m_ContainerViewDetail.gameObject.SetActive(selectFashionDress != 0);
        }
        private void FashionDressCabinetRefresh()
@@ -221,6 +208,16 @@
            DisplayViewDetail();
        }
        //private void VirtualEquipRefresh(int type)
        //{
        //    if (model.selectType == type)
        //    {
        //        m_ScrollerControl.m_Scorller.RefreshActiveCellViews();
        //    }
        //    DisplayModel();
        //    DisplayViewDetail();
        //}
        private void FashionDressRefresh(int id)
        {
            m_ScrollerControl.RefreshSingleCellView(id);
@@ -246,7 +243,13 @@
                    || index == (int)RoleEquipType.retFashionWeapon2)
                {
                    m_ScrollerControl.m_Scorller.RefreshActiveCellViews();
                    DisplayViewDetail();
                    foreach (var fashionDressType in model.fashionDressTypes)
                    {
                        var equipId = model.GetFashionDressEquipId(fashionDressType);
                        model.SetVirtualEquipFashionDress(fashionDressType, equipId);
                        model.SetSelectFashionDress(fashionDressType, equipId);
                    }
                }
            }
        }
@@ -324,21 +327,15 @@
        private void ViewDetail()
        {
            var id = 0;
            if (model.TryGetSelect(model.selectType, out id))
            var virtualEquipId = model.GetVirtualEquipFashionDress(model.selectType);
            var previewId = model.GetSelectFashionDress(model.selectType);
            if (previewId != 0)
            {
                if (id == 0)
                {
                    var equipId = model.GetFashionDressEquipId(model.selectType);
                    if (equipId != 0)
                    {
                        model.ViewFashionDressDetails(equipId);
                    }
                }
                else
                {
                    model.ViewFashionDressDetails(id);
                }
                model.ViewFashionDressDetails(previewId);
            }
            else if (virtualEquipId != 0)
            {
                model.ViewFashionDressDetails(virtualEquipId);
            }
        }
    }