| Lua/Gen/SnxxzUIEquipModelWrap.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Equip/CandidateEquipBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Equip/EquipModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Equip/EquipSlotBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | 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);