少年修仙传客户端代码仓库
client_Wu Xijin
2019-03-26 c524c05a9303f16401125762bdd8e9630b103207
3077 【2.0】背包里有可穿戴的装备,点击未穿戴的装备孔,会弹获取途径
4个文件已修改
99 ■■■■ 已修改文件
Lua/Gen/SnxxzUIEquipModelWrap.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Equip/CandidateEquipBehaviour.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Equip/EquipModel.cs 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Equip/EquipSlotBehaviour.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIEquipModelWrap.cs
@@ -286,12 +286,6 @@
            
                
                {
                    string _equipGuid = LuaAPI.lua_tostring(L, 2);
                    gen_to_be_invoked.SelectCandidateEquip( _equipGuid );
                    return 0;
                }
                
System/Equip/CandidateEquipBehaviour.cs
@@ -17,6 +17,7 @@
        [SerializeField] Text m_EquipName;
        [SerializeField] Text m_EquipSorce;
        [SerializeField] Button m_Select;
        [SerializeField] RectTransform m_SelectedContainer;
        EquipModel model { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
        PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
@@ -51,7 +52,7 @@
            m_ItemCell.button.enabled = false;
            var isEquipLevelUnlocked = model.IsLevelUnLocked(equip.config.LV);
            m_BackGround.gray=!isEquipLevelUnlocked;
            m_BackGround.gray = !isEquipLevelUnlocked;
            m_UnLockLabel.gameObject.SetActive(!isEquipLevelUnlocked);
            m_EquipName.text = equip.config.ItemName;
            m_EquipName.color = UIHelper.GetUIColor(equip.config.ItemColor, true);
@@ -65,6 +66,7 @@
        {
            if (force || candidateEquip.selected.dirty)
            {
                m_SelectedContainer.gameObject.SetActive(candidateEquip.selected.Fetch());
            }
        }
@@ -74,6 +76,11 @@
            tipModel.SetItemTipsModel(PackType.Item, equip.guid, false, true);
            tipModel.SetBagTipsBtn(tipModel.curAttrData);
            tipModel.ShowUICtrl();
            if (this.candidateEquip.selected.value)
            {
                model.ClearRecommendCandidateEquip();
            }
        }
    }
System/Equip/EquipModel.cs
@@ -258,12 +258,86 @@
            }
        }
        public void SelectCandidateEquip(string equipGuid)
        public bool HasSamePlaceCandidateEquip(Int2 equipPosition)
        {
            for (int i = 0; i < candidateEquips.Count; i++)
            {
                var candidateEquip = candidateEquips[i];
                candidateEquip.selected.value = candidateEquip.guid == equipGuid;
                var item = packModel.GetItemByGuid(candidateEquips[i].guid);
                if (item != null && item.config.LV == equipPosition.x && item.config.EquipPlace == equipPosition.y)
                {
                    return true;
                }
            }
            return false;
        }
        public void RecommendCandidateEquip(Int2 equipPosition)
        {
            var highestScore = 0;
            var highestScoreEquip = string.Empty;
            for (int i = 0; i < candidateEquips.Count; i++)
            {
                var candidate = candidateEquips[i];
                var item = packModel.GetItemByGuid(candidate.guid);
                if (equipPosition.x == item.config.LV && item.config.EquipPlace == equipPosition.y)
                {
                    if (item.score > highestScore)
                    {
                        highestScore = item.score;
                        highestScoreEquip = candidate.guid;
                    }
                }
            }
            if (!string.IsNullOrEmpty(highestScoreEquip))
            {
                candidateEquips.Sort((CandidateEquip x, CandidateEquip y) =>
                {
                    if (x.guid == highestScoreEquip && y.guid != highestScoreEquip)
                    {
                        return -1;
                    }
                    else if (x.guid != highestScoreEquip && y.guid == highestScoreEquip)
                    {
                        return 1;
                    }
                    else
                    {
                        var betterX = CompareToCurrent(x.guid);
                        var betterY = CompareToCurrent(y.guid);
                        if (betterX > 0 && betterY < 0)
                        {
                            return -1;
                        }
                        else if (betterX < 0 && betterY > 0)
                        {
                            return 1;
                        }
                        else
                        {
                            var a = packModel.GetItemByGuid(x.guid);
                            var b = packModel.GetItemByGuid(y.guid);
                            return -a.score.CompareTo(b.score);
                        }
                    }
                });
            }
            for (int i = 0; i < candidateEquips.Count; i++)
            {
                candidateEquips[i].selected.value = candidateEquips[i].guid == highestScoreEquip;
            }
        }
        public void ClearRecommendCandidateEquip()
        {
            for (int i = 0; i < candidateEquips.Count; i++)
            {
                candidateEquips[i].selected.value = false;
            }
        }
System/Equip/EquipSlotBehaviour.cs
@@ -119,6 +119,10 @@
                    tipModel.SetPutOnTipsBtn(tipModel.curAttrData);
                    tipModel.ShowUICtrl();
                }
                else if (model.HasSamePlaceCandidateEquip(slot.equipPosition))
                {
                    model.RecommendCandidateEquip(slot.equipPosition);
                }
                else
                {
                    model.RefreshGetWays(slot.equipPosition);