Beispiel #1
0
 private void UnequipOtherItemsInCategory()
 {
     if (Category != null)
     {
         System.Collections.Generic.List <VirtualItem> items = Category.GetItems(false);
         for (int i = 0; i < items.Count; i++)
         {
             LifeTimeItem itemInCategory = items[i] as LifeTimeItem;
             if (itemInCategory != null &&
                 itemInCategory.IsEquippable &&
                 itemInCategory != this)
             {
                 itemInCategory.Unequip();
             }
         }
     }
 }
Beispiel #2
0
        private float DrawVirtualItem(Rect position, VirtualItem item)
        {
            float yOffset = 0;
            float width   = position.width;

            _isVirtualItemPropertiesExpanded = EditorGUI.Foldout(new Rect(0, 0, width, 20),
                                                                 _isVirtualItemPropertiesExpanded, "Item");
            yOffset += 20;
            if (_isVirtualItemPropertiesExpanded)
            {
                //EditorGUI.LabelField(new Rect(0, yOffset, width, 20), "Internal ID", item.InternalID);
                //yOffset += 20;
                DrawIDField(new Rect(0, yOffset, width, 20), item, !(item is UpgradeItem), true);
                yOffset         += 20;
                item.Name        = EditorGUI.TextField(new Rect(0, yOffset, width, 20), "Name", item.Name);
                yOffset         += 20;
                item.Description = EditorGUI.TextField(new Rect(0, yOffset, width, 20), "Desription", item.Description);
                yOffset         += 20;
                if (!(item is UpgradeItem))
                {
                    EditorGUI.LabelField(new Rect(0, yOffset, width, 20), "Category", item.Category == null ? "None" : item.Category.ID);
                    yOffset += 20;
                }
                item.Icon   = EditorGUI.ObjectField(new Rect(0, yOffset, width, 50), "Icon", item.Icon, typeof(Texture2D), false) as Texture2D;
                yOffset    += 55;
                item.Extend = EditorGUI.ObjectField(new Rect(0, yOffset, width, 20), "Extend",
                                                    item.Extend, typeof(ScriptableObject), false) as ScriptableObject;
                yOffset += 20;
            }

            if (item is LifeTimeItem)
            {
                yOffset += 20;
                LifeTimeItem lifetimeItem = item as LifeTimeItem;
                lifetimeItem.IsEquippable = EditorGUI.Toggle(new Rect(0, yOffset, width, 20), "Is Equippable", lifetimeItem.IsEquippable);
                yOffset += 20;
            }
            else if (item is VirtualItemPack)
            {
                yOffset            += 20;
                _isPackInfoExpanded = EditorGUI.Foldout(new Rect(0, yOffset, width, 20), _isPackInfoExpanded, "Pack Info");
                yOffset            += 20;
                if (_isPackInfoExpanded)
                {
                    _packListView.Draw(new Rect(0, yOffset, width, 100));
                    yOffset += 100;
                }
            }
            if (item is PurchasableItem)
            {
                yOffset += 20;
                _isPurchaseInfoExpanded = EditorGUI.Foldout(new Rect(0, yOffset, width, 20), _isPurchaseInfoExpanded, "Purchase Info");
                yOffset += 20;
                if (_isPurchaseInfoExpanded)
                {
                    _purchaseListView.Draw(new Rect(0, yOffset, width, 100));
                    yOffset += 100;
                }
            }
            if (item is SingleUseItem || item is LifeTimeItem)
            {
                yOffset += 20;
                _isUpgradeInfoExpanded = EditorGUI.Foldout(new Rect(0, yOffset, width, 20),
                                                           _isUpgradeInfoExpanded, "Upgrade Info (" + item.Upgrades.Count + " levels)");
                yOffset += 20;
                if (_isUpgradeInfoExpanded)
                {
                    float height = _upgradeListControl.CalculateListHeight(_upgradeListAdaptor);
                    _upgradeListControl.Draw(new Rect(0, yOffset, width, height), _upgradeListAdaptor);
                    yOffset += height;
                }
            }
            if (item is UpgradeItem)
            {
                yOffset += 20;
                VirtualItem relatedItem = (item as UpgradeItem).RelatedItem;
                EditorGUI.LabelField(new Rect(0, yOffset, 250, 20), "Related Item",
                                     relatedItem == null ? "NULL" : relatedItem.ID);
                if (GUI.Button(new Rect(255, yOffset, 50, 20), "Edit"))
                {
                    _treeExplorer.SelectItem(relatedItem);
                }
                yOffset += 20;
            }
            return(yOffset);
        }