void RefreshItem(SelectType selType, int SortType) { selectType = selType; if (copyItem != null) { copyItem.SetActive(false); UIDraggablePanel panel = copyItem.transform.parent.GetComponent <UIDraggablePanel>(); if (panel != null) { panel.ResetPosition(); } if (selType == SelectType.ItemUp) { itemTable = sdGameItemMgr.Instance.GetEquipItemsInBag(false); if (sdGameItemMgr.Instance.upItem != null) { itemTable.Remove(sdGameItemMgr.Instance.upItem); } ShowBtnPanel(true); } else if (selectType == SelectType.ItemUpChange) { itemTable = sdGameItemMgr.Instance.GetAllEquipItems(); if (sdGameItemMgr.Instance.upItem != null) { itemTable.Remove(sdGameItemMgr.Instance.upItem); } ShowBtnPanel(false); } else if (selectType == SelectType.ItemMake) { itemTable = sdGameItemMgr.Instance.GetAllFormulaItems(); if (sdGameItemMgr.Instance.upItem != null) { itemTable.Remove(sdGameItemMgr.Instance.upItem); } ShowBtnPanel(false); } else if (selectType == SelectType.GemOn) { itemTable = sdGameItemMgr.Instance.GetGemOnInBag(); ShowBtnPanel(false); } else if (selectType == SelectType.ItemSell) { itemTable = sdGameItemMgr.Instance.GetEquipByQuilityInBag(sellType, false); ShowBtnPanel(true); } else if (selectType == SelectType.EquipSelect) { itemTable = sdGameItemMgr.Instance.GetBagItemByEquipPos(equipPos, true); ShowBtnPanel(false); } else { ShowBtnPanel(false); if (sdGameItemMgr.Instance.selGemList.Count == 0) { itemTable = sdGameItemMgr.Instance.GetGemInBag(0); } else { IEnumerator itr = sdGameItemMgr.Instance.selGemList.GetEnumerator(); if (itr.MoveNext()) { KeyValuePair <string, int> key = (KeyValuePair <string, int>)itr.Current; sdGameItem gem = sdGameItemMgr.Instance.getItem(ulong.Parse(key.Key)); if (gem != null) { itemTable = sdGameItemMgr.Instance.GetGemInBag(gem.level); } } itr.Reset(); while (itr.MoveNext()) { KeyValuePair <string, int> key = (KeyValuePair <string, int>)itr.Current; int num = key.Value; for (int i = 0; i < num; ++i) { foreach (sdGameItem gem in itemTable) { if (gem.instanceID.ToString() == key.Key) { if (gem.count > 1) { gem.count--; } else { itemTable.Remove(gem); } break; } } } } } } Hashtable list = sdSlotMgr.Instance.GetIconList(PanelType.Panel_ItemSelect); if (itemTable.Count > list.Count) { if (copyItem == null) { Debug.LogWarning("NoCopyItem"); } //copyItem.SetActive(true); for (int i = list.Count; i < itemTable.Count; ++i) { GameObject tempItem = GameObject.Instantiate(copyItem) as GameObject; tempItem.transform.parent = copyItem.transform.parent; Vector3 pos = copyItem.transform.localPosition; if (i % 2 == 1) { pos.x = 260; } pos.y -= (i / 2) * 120; tempItem.transform.localPosition = pos; tempItem.transform.localScale = copyItem.transform.localScale; sdSlotIcon icon = tempItem.GetComponent <sdSlotIcon>(); if (icon != null) { icon.index = i; list.Add(i, icon); } icon.gameObject.SetActive(false); } } else if (itemTable.Count < list.Count) { foreach (DictionaryEntry item in list) { sdSlotIcon icon = item.Value as sdSlotIcon; if (icon != null && icon.index >= itemTable.Count) { if (icon.index == 0) { copyItem.SetActive(false); } else { icon.gameObject.SetActive(false); } } } } if (panel != null) { panel.ResetPosition(); } IDictionaryEnumerator iter = list.GetEnumerator(); if (itemTable != null) { itemTable.Sort(); if (selectType == SelectType.ItemUpChange) { itemTable.Sort(OnSortEquiped); } else { if (SortType == 0) { itemTable.Sort(OnSortQuility); } else if (SortType == 1) { itemTable.Sort(OnSortLevel); } else { itemTable.Sort(OnSortScore); } } foreach (sdGameItem info in itemTable) { if (!iter.MoveNext()) { break; } //sdGameItem info = (sdGameItem)item.Value; //if (info.bagIndex != (int)PanelType.Panel_Bag) continue; //if (info.slotIndex != num) continue; Hashtable table = new Hashtable(); sdSlotIcon icon = (sdSlotIcon)iter.Value; table.Add("uuid", info.instanceID); table.Add("ID", info.templateID); table.Add("count", info.count); bool isSelect = icon.isActiveAndEnabled && icon.isSelected; icon.SetInfo(info.instanceID.ToString(), table); if (selType == SelectType.ItemSell) { if (!icon.gameObject.active) { icon.SetSelect(true); } } icon.gameObject.SetActive(true); if (selType == SelectType.ItemSell) { if (isSelect) { icon.SetSelect(true); } } if (selectType == SelectType.ItemUp) { icon.SetSelect(sdGameItemMgr.Instance.hasSelectItemUp(info.instanceID.ToString())); if (icon.isSelected) { AddSelectItem(info.instanceID.ToString()); } } } } } }
public bool AddSelectItem(string id) { bool isOver = true; if (selectType == SelectType.ItemUp) { isOver = false; if (selectNum >= 6) { return(false); } } else if (selectType == SelectType.ItemUpChange) { Hashtable iconList = sdSlotMgr.Instance.GetIconList(PanelType.Panel_ItemSelect); foreach (DictionaryEntry info in iconList) { sdSlotIcon icon = info.Value as sdSlotIcon; icon.SetSelect(false); } selectList.Clear(); } else if (selectType == SelectType.ItemMake) { Hashtable iconList = sdSlotMgr.Instance.GetIconList(PanelType.Panel_ItemSelect); foreach (DictionaryEntry info in iconList) { sdSlotIcon icon = info.Value as sdSlotIcon; icon.SetSelect(false); } selectList.Clear(); } else if (selectType == SelectType.GemOn) { Hashtable iconList = sdSlotMgr.Instance.GetIconList(PanelType.Panel_ItemSelect); foreach (DictionaryEntry info in iconList) { sdSlotIcon icon = info.Value as sdSlotIcon; icon.SetSelect(false); } selectList.Clear(); } else if (selectType == SelectType.GemMerge) { Hashtable iconList = sdSlotMgr.Instance.GetIconList(PanelType.Panel_ItemSelect); foreach (DictionaryEntry info in iconList) { sdSlotIcon icon = info.Value as sdSlotIcon; icon.SetSelect(false); } selectList.Clear(); } else if (selectType == SelectType.GemReplace) { Hashtable iconList = sdSlotMgr.Instance.GetIconList(PanelType.Panel_ItemSelect); foreach (DictionaryEntry info in iconList) { sdSlotIcon icon = info.Value as sdSlotIcon; icon.SetSelect(false); } selectList.Clear(); } else if (selectType == SelectType.ItemSell) { isOver = false; } else if (selectType == SelectType.EquipSelect) { if (selectNum >= 1) { return(false); } } if (selectList.ContainsKey(id)) { selectList[id]++; } else { selectList.Add(id, 1); } ++selectNum; if (isOver) { gameObject.SetActive(false); if (btn_OK.onClick.Count > 0) { EventDelegate.Execute(btn_OK.onClick); btn_OK.onClick.Clear(); } } return(true); }