少年修仙传客户端代码仓库
client_Wu Xijin
2019-03-18 3ae4dd40c85e9713b668cd9a5d3aac5e46ed2d86
3335 更新装备界面.
4个文件已修改
151 ■■■■■ 已修改文件
System/Equip/EquipFrameWin.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Equip/EquipModel.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Equip/EquipSuitPropertyWidget.cs 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Equip/RealmEquipWin.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Equip/EquipFrameWin.cs
@@ -63,7 +63,6 @@
        protected override void OnAfterClose()
        {
            model.ResetOperateParams();
        }
        protected override void OnActived()
System/Equip/EquipModel.cs
@@ -24,6 +24,8 @@
        public readonly LogicList<CandidateEquip> candidateEquips = new LogicList<CandidateEquip>();
        public readonly LogicList<int> getWays = new LogicList<int>();
        public readonly LogicBool isAppearanceLevel = new LogicBool();
        public readonly LogicList<int> suitPlaces = new LogicList<int>();
        public readonly LogicStruct<EquipSuitProperty> suitProperty = new LogicStruct<EquipSuitProperty>();
        static Dictionary<int, string> equipSetNames = new Dictionary<int, string>();
        Dictionary<int, EquipSet> equipSets = new Dictionary<int, EquipSet>();
@@ -124,6 +126,14 @@
            }
            UpdateAppearanceState(level);
            UpdateSuitPlaces(level);
            UpdateSuitProperty(level, selectedStarLevel.value);
        }
        public void SelectSuitStarLevel(int star)
        {
            selectedStarLevel.value = star;
            UpdateSuitProperty(selectedLevel.value, star);
        }
        public void ResetOperateParams()
@@ -132,6 +142,8 @@
            selectedStarLevel.value = 0;
            fightPoint.value = 0;
            appearance.value = default(EquipAppearance);
            suitProperty.value = default(EquipSuitProperty);
            suitPlaces.Clear();
            candidateEquips.Clear();
            getWays.Clear();
        }
@@ -485,6 +497,8 @@
                        appearance.value = GetAppearance(selectedLevel.value);
                        fightPoint.value = GetFightPoint(selectedLevel.value);
                        RefreshCandidateEquips(selectedLevel.value);
                        UpdateSuitPlaces(selectedLevel.value);
                        UpdateSuitProperty(selectedLevel.value, selectedStarLevel.value);
                    }
                    break;
                default:
@@ -494,7 +508,8 @@
        private void OnItemCountRefresh(PackType type, int index, int itemId)
        {
            var dirty = false;
            var itemDirty = false;
            var equipDirty = false;
            switch (type)
            {
                case PackType.Item:
@@ -510,7 +525,7 @@
                        if (selectedLevel.value > 0)
                        {
                            dirty = true;
                            itemDirty = true;
                        }
                    }
                    break;
@@ -521,6 +536,12 @@
                    appearance.value = GetAppearance(selectedLevel.value);
                    fightPoint.value = GetFightPoint(selectedLevel.value);
                    if (clientPlace.x == selectedLevel.value)
                    {
                        equipDirty = true;
                    }
                    if (clientPlace.x == PlayerDatas.Instance.baseData.equipShowSwitch / 10)
                    {
                        if (appearanceChangeEvent != null)
@@ -532,10 +553,16 @@
                    break;
            }
            if (dirty)
            if (itemDirty)
            {
                RefreshCandidateEquips(selectedLevel.value);
                UpdateRedpoint(selectedLevel.value);
            }
            if (equipDirty)
            {
                UpdateSuitPlaces(selectedLevel.value);
                UpdateSuitProperty(selectedLevel.value, selectedStarLevel.value);
            }
        }
@@ -599,6 +626,41 @@
        private void UpdateAppearanceState(int level)
        {
            isAppearanceLevel.value = level == PlayerDatas.Instance.baseData.equipShowSwitch / 10;
        }
        private void UpdateSuitPlaces(int level)
        {
            suitPlaces.Clear();
            for (int i = 1; i <= 8; i++)
            {
                var equip = packModel.GetItemByGuid(GetEquip(new Int2(level, i)));
                var hasSuit = equip != null && equip.config.SuiteiD > 0;
                if (hasSuit)
                {
                    suitPlaces.Add(i);
                }
            }
        }
        private void UpdateSuitProperty(int level, int star)
        {
            var property = new EquipSuitProperty();
            property.twoSuit = GetEquipSuitEntry(level, star, EquipSuitType.TwoSuit);
            property.fiveSuit = GetEquipSuitEntry(level, star, EquipSuitType.FiveSuit);
            var configs = EquipSuitConfig.GetConfigs(PlayerDatas.Instance.baseData.Job, level, EquipSuitType.EightSuit);
            for (int i = 0; i < configs.Count; i++)
            {
                var config = configs[i];
                if (config.star == star)
                {
                    property.eightSuitId = config.id;
                }
            }
            property.eightActived = GetSuitLevel(level, EquipSuitType.EightSuit) >= star;
            this.suitProperty.value = property;
        }
        private void ParseConfig()
@@ -690,5 +752,13 @@
        public List<Int2> properties;
    }
    public struct EquipSuitProperty
    {
        public EquipSuitPropertyEntry twoSuit;
        public EquipSuitPropertyEntry fiveSuit;
        public int eightSuitId;
        public bool eightActived;
    }
}
System/Equip/EquipSuitPropertyWidget.cs
@@ -21,21 +21,9 @@
        [SerializeField] Text m_EightSuitTitle;
        [SerializeField] Text m_EightSuitDescription;
        EquipModel model { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
        EquipStarModel starModel { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } }
        PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
        public void Init(int level)
        {
            m_SuitName.text = EquipSuitConfig.GetConfigs(PlayerDatas.Instance.baseData.Job, level, EquipSuitType.TwoSuit)[0].name;
            for (int i = 1; i <= 8; i++)
            {
                var equip = packModel.GetItemByGuid(model.GetEquip(new Int2(level, i)));
                var hasSuit = equip != null && equip.config.SuiteiD > 0;
                m_SuitEquipNames[i - 1].color = UIHelper.GetUIColor(hasSuit ? TextColType.Green : TextColType.White, true);
                m_SuitEquipNames[i - 1].text = UIHelper.GetEquipPlaceName(i);
            }
            var maxLevel = EquipStarModel.GetMaxStarLevel(level);
            m_StarToggles[3].SetActive(maxLevel >= 9);
            m_StarToggles[2].SetActive(maxLevel >= 6);
@@ -43,13 +31,22 @@
            m_StarToggles[0].SetActive(true);
        }
        public void Display(int level, int star)
        public void DisplaySuitPlaces(List<int> places)
        {
            m_TwoSuit.Display(model.GetEquipSuitEntry(level, star, EquipSuitType.TwoSuit));
            m_FiveSuit.Display(model.GetEquipSuitEntry(level, star, EquipSuitType.FiveSuit));
            m_EightSuitDescription.text = GetEightSuitDescription(level, star);
            var eightSuitLevel = model.GetSuitLevel(level, EquipSuitType.EightSuit);
            var color = UIHelper.GetUIColor(eightSuitLevel >= star ? TextColType.Green : TextColType.White, true);
            for (int i = 1; i <= 8; i++)
            {
                var hasSuit = places.Contains(i);
                m_SuitEquipNames[i - 1].color = UIHelper.GetUIColor(hasSuit ? TextColType.Green : TextColType.White, true);
                m_SuitEquipNames[i - 1].text = UIHelper.GetEquipPlaceName(i);
            }
        }
        public void DisplayProperty(EquipSuitProperty property)
        {
            m_TwoSuit.Display(property.twoSuit);
            m_FiveSuit.Display(property.fiveSuit);
            m_EightSuitDescription.text = GetEightSuitDescription(property.eightSuitId);
            var color = UIHelper.GetUIColor(property.eightActived ? TextColType.Green : TextColType.White, true);
            m_EightSuitTitle.color = color;
            m_EightSuitDescription.color = color;
        }
@@ -59,31 +56,17 @@
        }
        private string GetEightSuitDescription(int level, int star)
        private string GetEightSuitDescription(int suitId)
        {
            var configs = EquipSuitConfig.GetConfigs(PlayerDatas.Instance.baseData.Job, level, EquipSuitType.EightSuit);
            for (int i = 0; i < configs.Count; i++)
            var config = EquipSuitConfig.Get(suitId);
            if (config.skillID > 0)
            {
                var config = configs[i];
                if (config.star == star)
                {
                    var description = string.Empty;
                    if (config.skillID > 0)
                    {
                        description = config.description;
                    }
                    else
                    {
                        var propertyConfig = PlayerPropertyConfig.Get(config.attr[0].x);
                        var propertyDescription = PlayerPropertyConfig.GetValueDescription(config.attr[0].x, config.attr[0].y);
                        description = StringUtility.Contact(propertyConfig.Name, " +", propertyDescription);
                    }
                    return description;
                }
                return config.description;
            }
            return string.Empty;
            else
            {
                return PlayerPropertyConfig.GetFullDescription(config.attr[0]);
            }
        }
        [System.Serializable]
@@ -114,7 +97,7 @@
            {
                if (value)
                {
                    model.selectedStarLevel.value = star;
                    model.SelectSuitStarLevel(star);
                }
            }
System/Equip/RealmEquipWin.cs
@@ -110,9 +110,14 @@
                m_CandidateEquipWidget.Display(model.selectedLevel.value, candidates);
            }
            if (force || model.selectedStarLevel.dirty)
            if (force || model.suitPlaces.dirty)
            {
                m_SuitPropertyWidget.Display(model.selectedLevel.value, model.selectedStarLevel.Fetch());
                m_SuitPropertyWidget.DisplaySuitPlaces(model.suitPlaces.Fetch());
            }
            if (force || model.suitProperty.dirty)
            {
                m_SuitPropertyWidget.DisplayProperty(model.suitProperty.Fetch());
            }
            if (force || model.getWays.dirty)