Beispiel #1
0
    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());
                        }
                    }
                }
            }
        }
    }
Beispiel #2
0
    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);
    }