Пример #1
0
 public void Init(ItemAgentType agentType = ItemAgentType.None, int index = -1, ScrollRect parent = null)
 {
     Clear();
     this.agentType   = agentType;
     indexInGrid      = index;
     parentScrollRect = parent;
 }
Пример #2
0
 public void Clear(bool recycle = false)
 {
     icon.color          = Color.white;
     icon.overrideSprite = null;
     amount.text         = string.Empty;
     MItemInfo           = null;
     indexInGrid         = -1;
     qualityEdge.color   = Color.white;
     if (recycle)
     {
         agentType = ItemAgentType.None;
         ObjectPool.Put(gameObject);
     }
 }
Пример #3
0
    public void SetItemAndOpenWindow(ItemAgent itemAgent)
    {
        //UI.windowsRect.position = new Vector3(Input.mousePosition.x - UI.windowsRect.sizeDelta.x, UI.windowsRect.position.y);
        ZetanUtility.KeepInsideScreen(UI.window.transform as RectTransform);
        if (itemAgent == null || itemAgent.IsEmpty || this.itemAgent == itemAgent)
        {
            return;
        }
        itemAgent.Select();
        if (this.itemAgent)
        {
            this.itemAgent.DeSelect();
        }
        this.itemAgent = itemAgent;
        LeftOrRight(itemAgent.transform.position);
        animated = false;
        OpenWindow();
        MItemInfo               = itemAgent.MItemInfo;
        itemAgentType           = itemAgent.agentType;
        UI.icon.overrideSprite  = MItemInfo.item.Icon;
        UI.nameText.text        = MItemInfo.ItemName;
        UI.nameText.color       = GameManager.QualityToColor(MItemInfo.item.Quality);
        UI.typeText.text        = ItemBase.GetItemTypeString(MItemInfo.item.ItemType);
        UI.priceText.text       = MItemInfo.item.SellAble ? MItemInfo.item.SellPrice + GameManager.CoinName : "不可出售";
        UI.weightText.text      = "重量:" + MItemInfo.item.Weight.ToString("F2") + "WL";
        UI.descriptionText.text = MItemInfo.item.Description;
        switch (MItemInfo.item.ItemType)
        {
        case ItemType.Weapon:
            WeaponItem weapon = MItemInfo.item as WeaponItem;
            UI.effectText.text = (weapon.CutATK > 0 ? "斩击攻击力+" + weapon.CutATK + "\n" : string.Empty) +
                                 (weapon.PunATK > 0 ? "刺击攻击力+" + weapon.PunATK + "\n" : string.Empty) +
                                 (weapon.BluATK > 0 ? "钝击攻击力+" + weapon.BluATK + "\n" : string.Empty) +
                                 (weapon.DEF > 0 ? "防御力力+" + weapon.DEF + "\n" : string.Empty) +
                                 (weapon.Hit > 0 ? "命中+" + weapon.Hit + "\n" : string.Empty);
            if (weapon.Powerup.IsEffective)
            {
                ZetanUtility.SetActive(UI.mulFunTitle.gameObject, true);
                ZetanUtility.SetActive(UI.mulFunText.gameObject, true);
                UI.mulFunTitle.text = "-附加能力";
                UI.mulFunText.text  = weapon.Powerup.ToString();
            }
            else
            {
                ZetanUtility.SetActive(UI.mulFunTitle.gameObject, false);
                ZetanUtility.SetActive(UI.mulFunText.gameObject, false);
                UI.mulFunTitle.text = string.Empty;
                UI.mulFunText.text  = string.Empty;
            }
            ZetanUtility.SetActive(UI.gemstone_1.gameObject, weapon.GemSlotAmout > 0);
            ZetanUtility.SetActive(UI.gemstone_2.gameObject, weapon.GemSlotAmout > 1);
            ZetanUtility.SetActive(UI.durability.gameObject, true);
            if (PlayerManager.Instance.PlayerInfo.HasPrimaryWeapon)
            {
                OpenSubItemWindow(PlayerManager.Instance.PlayerInfo.primaryWeapon);
            }
            else if (PlayerManager.Instance.PlayerInfo.HasSecondaryWeapon)
            {
                OpenSubItemWindow(PlayerManager.Instance.PlayerInfo.secondaryWeapon);
            }
            break;

        case ItemType.Bag:
            UI.effectText.text = GameManager.BackpackName + "容量+" + (MItemInfo.item as BagItem).ExpandSize;
            ZetanUtility.SetActive(UI.mulFunTitle.gameObject, false);
            ZetanUtility.SetActive(UI.mulFunText.gameObject, false);
            ZetanUtility.SetActive(UI.gemstone_1.gameObject, false);
            ZetanUtility.SetActive(UI.gemstone_2.gameObject, false);
            ZetanUtility.SetActive(UI.durability.gameObject, false);
            CloseSubWindow();
            break;

        case ItemType.Box:
            UI.effectText.text = string.Empty;
            BoxItem box = MItemInfo.item as BoxItem;
            UI.mulFunTitle.text = "-内含物品";
            ZetanUtility.SetActive(UI.mulFunTitle.gameObject, true);
            System.Text.StringBuilder itemsInfo = new System.Text.StringBuilder();
            for (int i = 0; i < box.ItemsInBox.Count; i++)
            {
                itemsInfo.Append("[" + box.ItemsInBox[i].ItemName + "] × " + box.ItemsInBox[i].Amount);
                if (i != box.ItemsInBox.Count - 1)
                {
                    itemsInfo.Append("\n");
                }
            }
            UI.mulFunText.text = itemsInfo.ToString();
            ZetanUtility.SetActive(UI.mulFunText.gameObject, true);
            ZetanUtility.SetActive(UI.gemstone_1.gameObject, false);
            ZetanUtility.SetActive(UI.gemstone_2.gameObject, false);
            ZetanUtility.SetActive(UI.durability.gameObject, false);
            CloseSubWindow();
            break;

        default:
            UI.effectText.text = string.Empty;
            ZetanUtility.SetActive(UI.mulFunTitle.gameObject, false);
            ZetanUtility.SetActive(UI.mulFunText.gameObject, false);
            ZetanUtility.SetActive(UI.gemstone_1.gameObject, false);
            ZetanUtility.SetActive(UI.gemstone_2.gameObject, false);
            ZetanUtility.SetActive(UI.durability.gameObject, false);
            CloseSubWindow();
            break;
        }
        //UI.window.alpha = 1;
#if UNITY_STANDALONE
        UI.window.blocksRaycasts = false;
#elif UNITY_ANDROID
        //UI.window.blocksRaycasts = true;
        ZetanUtility.SetActive(UI.buttonsArea, true);
        UI.mulFunButton.onClick.RemoveAllListeners();
        ZetanUtility.SetActive(UI.closeButton.gameObject, true);
        UI.priceTitle.text = "贩卖价格";
#endif
        switch (itemAgentType)
        {
        case ItemAgentType.Backpack:
#if UNITY_ANDROID
            ZetanUtility.SetActive(UI.discardButton.gameObject, MItemInfo.item.DiscardAble);
            ZetanUtility.SetActive(UI.mulFunButton.gameObject, false);
            UI.mulFunButton.onClick.RemoveAllListeners();
            if (!WarehouseManager.Instance.IsUIOpen && !ShopManager.Instance.IsUIOpen && !ItemSelectionManager.Instance.IsUIOpen)
            {
                if (MItemInfo.item.Usable)
                {
                    ZetanUtility.SetActive(UI.mulFunButton.gameObject, true);
                    UI.mulFunButton.GetComponentInChildren <Text>().text = MItemInfo.item.IsEquipment ? "装备" : "使用";
                    UI.mulFunButton.onClick.AddListener(UseCurrenItem);
                }
            }
            else if (WarehouseManager.Instance.IsUIOpen)
            {
                ZetanUtility.SetActive(UI.mulFunButton.gameObject, true);
                UI.mulFunButton.GetComponentInChildren <Text>().text = "存入";
                UI.mulFunButton.onClick.AddListener(StoreCurrentItem);
            }
            else if (ShopManager.Instance.IsUIOpen)
            {
                if (MItemInfo.item.SellAble)
                {
                    ZetanUtility.SetActive(UI.mulFunButton.gameObject, true);
                    UI.mulFunButton.GetComponentInChildren <Text>().text = "出售";
                    UI.mulFunButton.onClick.AddListener(SellOrPurchaseCurrentItem);
                }
                ZetanUtility.SetActive(UI.discardButton.gameObject, false);
            }
            else if (ItemSelectionManager.Instance.IsUIOpen)
            {
                switch (ItemSelectionManager.Instance.SelectionType)
                {
                case ItemSelectionType.Discard:
                    if (MItemInfo.item.DiscardAble)
                    {
                        ZetanUtility.SetActive(UI.mulFunButton.gameObject, true);
                        UI.mulFunButton.GetComponentInChildren <Text>().text = "选取";
                        UI.mulFunButton.onClick.AddListener(delegate
                        {
                            if (ItemSelectionManager.Instance.Place(MItemInfo))
                            {
                                CloseWindow();
                            }
                        });
                    }
                    break;

                case ItemSelectionType.Gift:
                    break;

                case ItemSelectionType.Making:
                    if (MItemInfo.item.MaterialType != MaterialType.None)
                    {
                        ZetanUtility.SetActive(UI.mulFunButton.gameObject, true);
                        UI.mulFunButton.GetComponentInChildren <Text>().text = "选取";
                        UI.mulFunButton.onClick.AddListener(delegate
                        {
                            if (ItemSelectionManager.Instance.Place(MItemInfo))
                            {
                                CloseWindow();
                            }
                        });
                    }
                    break;

                case ItemSelectionType.None:
                default:
                    break;
                }
                ZetanUtility.SetActive(UI.discardButton.gameObject, false);
            }
#endif
            break;

        case ItemAgentType.Warehouse:
#if UNITY_ANDROID
            ZetanUtility.SetActive(UI.discardButton.gameObject, false);
            ZetanUtility.SetActive(UI.mulFunButton.gameObject, true);
            UI.mulFunButton.onClick.RemoveAllListeners();
            UI.mulFunButton.onClick.AddListener(TakeOutCurrentItem);
            UI.mulFunButton.GetComponentInChildren <Text>().text = "取出";
#endif
            break;

        case ItemAgentType.Making:
#if UNITY_ANDROID
            ZetanUtility.SetActive(UI.discardButton.gameObject, false);
            ZetanUtility.SetActive(UI.mulFunButton.gameObject, MItemInfo.Amount > 0);
            UI.mulFunButton.onClick.RemoveAllListeners();
            UI.mulFunButton.onClick.AddListener(MakeCurrentItem);
            UI.mulFunButton.GetComponentInChildren <Text>().text = "制作";
#endif
            break;

        case ItemAgentType.Selling:
            UI.priceTitle.text = "售价";
            if (ShopManager.Instance.GetMerchandiseAgentByItem(MItemInfo))
            {
                UI.priceText.text = ShopManager.Instance.GetMerchandiseAgentByItem(MItemInfo).merchandiseInfo.SellPrice.ToString() + GameManager.CoinName;
            }
            else
            {
                CloseWindow();
            }
#if UNITY_ANDROID
            ZetanUtility.SetActive(UI.discardButton.gameObject, false);
            ZetanUtility.SetActive(UI.mulFunButton.gameObject, true);
            UI.mulFunButton.onClick.RemoveAllListeners();
            UI.mulFunButton.onClick.AddListener(SellOrPurchaseCurrentItem);
            UI.mulFunButton.GetComponentInChildren <Text>().text = "购买";
#endif
            break;

        case ItemAgentType.Purchasing:
            UI.priceTitle.text = "收购价";
            if (ShopManager.Instance.GetMerchandiseAgentByItem(MItemInfo))
            {
                UI.priceText.text = ShopManager.Instance.GetMerchandiseAgentByItem(MItemInfo).merchandiseInfo.PurchasePrice.ToString() + GameManager.CoinName;
            }
            else
            {
                CloseWindow();
            }
#if UNITY_ANDROID
            ZetanUtility.SetActive(UI.discardButton.gameObject, false);
            ZetanUtility.SetActive(UI.mulFunButton.gameObject, BackpackManager.Instance.GetItemAmount(MItemInfo.ItemID) > 0);
            UI.mulFunButton.onClick.RemoveAllListeners();
            UI.mulFunButton.onClick.AddListener(SellOrPurchaseCurrentItem);
            UI.mulFunButton.GetComponentInChildren <Text>().text = "出售";
#endif
            break;

        case ItemAgentType.Loot:
#if UNITY_ANDROID
            ZetanUtility.SetActive(UI.discardButton.gameObject, false);
            ZetanUtility.SetActive(UI.mulFunButton.gameObject, true);
            UI.mulFunButton.onClick.RemoveAllListeners();
            UI.mulFunButton.onClick.AddListener(TakeCurrentItem);
            UI.mulFunButton.GetComponentInChildren <Text>().text = "拾取";
#endif
            break;

        case ItemAgentType.Selection:
#if UNITY_ANDROID
            ZetanUtility.SetActive(UI.discardButton.gameObject, false);
            ZetanUtility.SetActive(UI.mulFunButton.gameObject, true);
            UI.mulFunButton.onClick.RemoveAllListeners();
            UI.mulFunButton.onClick.AddListener(TakeOutCurrentItem);
            UI.mulFunButton.GetComponentInChildren <Text>().text = "取出";
#endif
            break;

        default:
#if UNITY_ANDROID
            ZetanUtility.SetActive(UI.buttonsArea.gameObject, false);
            ZetanUtility.SetActive(UI.closeButton.gameObject, true);
#endif
            ZetanUtility.SetActive(UI.discardButton.gameObject, false);
            ZetanUtility.SetActive(UI.mulFunButton.gameObject, false);
            UI.mulFunButton.onClick.RemoveAllListeners();
            break;
        }
    }