示例#1
0
    private void SetSelectItem(int ixdex)
    {
        m_indextItemSeleted = ixdex;
        _controlShop.ResetSelectItem();
        if (ixdex == -1)
        {
            _controlShop.SetItemName("No item selected");
            return;
        }
        Debug.Log("SetSelectItem " + ixdex);
        var slug     = m_package.data[ixdex].property;
        var payBy    = m_package.data[ixdex].payBy;
        var property = m_dataRaw.PropertyBySlug(slug);

        if (property == null)
        {
            InputFieldHelper.Instance.ShowNoti("Item not found in database");
            return;
        }
        _controlShop.SetItemName(NameOf(property, slug));
        _controlShop.SetItemDes(property.Des);
        if (property.IsOutfit)
        {
            if (string.IsNullOrEmpty(property.RefSlug))
            {
                InputFieldHelper.Instance.ShowNoti("Item model is null");
                return;
            }
            var tryItem = AutoTileMap_Editor.Instance.ItemCharData.FetchItemByGlobalSlug(property.RefSlug);
            if (tryItem == null)
            {
                InputFieldHelper.Instance.ShowNoti("Item model not found in database");
                return;
            }
            _controlShop.LoadModelItem(tryItem.ItemPrefab);
            var charGame = AutoTileMap_Editor.Instance.Agent.GetComponentInChildren <CharGame>();
            if (tryItem.SlugChar != charGame.SlugChar)
            {
                _controlShop.SetItemDes("Your character can't use this item.");
                return;
            }
            if (PropertysGame.Instance.IsHaveItem(slug))
            {
                _controlShop.SetItemDes("You already own this item.");
                return;
            }
            Item rawItem = charGame.GetCurrentItem(tryItem.ItemType);
            if (rawItem != null && tryItem.SlugGlobal == rawItem.SlugGlobal)
            {
                if (m_itemTryOn != null && rawItem.SlugGlobal == m_itemTryOn.SlugGlobal)
                {
                    _controlShop.SetItemDes("Costumes is trying");
                    _controlShop.AddAction("UnTry", () =>
                    {
                        UnTryCostume(charGame);
                        RefreshDataSelect();
                    });
                }
                else
                {
                    _controlShop.SetItemDes("Costumes are in use");
                }
            }
            else
            {
                _controlShop.AddAction("Try on", () =>
                {
                    _tryOnItem(charGame, rawItem, tryItem, slug, property, payBy);
                });
            }
            _controlShop.AddAction("Buy", () =>
            {
                _onBuy(slug, property, payBy);
            });
        }
        else if (property.IsCertificates)
        {
            if (PropertysGame.Instance.IsHaveItem(slug))
            {
                _controlShop.SetItemDes("You already own this item.");
                return;
            }
            _controlShop.AddAction("Buy", () =>
            {
                Debug.Log("Buy");
                _onBuy(slug, property, payBy);
            });
        }
        else if (property.IsPet)
        {
            if (string.IsNullOrEmpty(property.RefSlug))
            {
                InputFieldHelper.Instance.ShowNoti("Item model is null");
                return;
            }
            if (PropertysGame.Instance.IsHaveItem(slug))
            {
                _controlShop.SetItemDes("You already own this item.");
                return;
            }
            _controlShop.LoadModelItem("pets/" + property.RefSlug);

            _controlShop.AddAction("Buy", () =>
            {
                _onBuy(slug, property, payBy);
            });
        }
        else
        {
            _controlShop.AddAction("Buy", () =>
            {
                _onBuy(slug, property, payBy);
            });
        }
        if (_controlShop.IsLoadModel())
        {
            _controlShop.LoadImageItem(null);
        }
        else
        {
            _controlShop.LoadImageItem(property.RefIcon);
        }
    }