示例#1
0
    public void SetItemInInventory(int index, Item item)
    {
        if (item == null)
        {
            InventoryPair empty = new InventoryPair {
                id = -1
            };
            inventory[index] = empty;
        }
        else
        {
            InventoryPair newPair = new InventoryPair();
            try
            {
                Weapon weapon = (Weapon)item;
                newPair.itemType = ItemType.Weapon;
                weaponInventory.Add(((Weapon)item).data);
                newPair.id = weaponInventory.Count - 1;
            } catch { }

            try
            {
                Addon addon = (Addon)item;
                newPair.itemType = ItemType.Addon;
                addonInventory.Add(((Addon)item).stats);
                newPair.id = addonInventory.Count - 1;
            } catch { }

            inventory[index] = newPair;
        }
    }
示例#2
0
 private void Awake()
 {
     for (int i = 0; i < inventorySize; i++)
     {
         InventoryPair empty = new InventoryPair {
             id = -1
         };
         if (gameData.playerInfo.inventory.Count <= i)
         {
             gameData.playerInfo.inventory.Add(empty);
         }
     }
 }
示例#3
0
    public Item GetItemFromInventory(int index)
    {
        InventoryPair pair = inventory[index];

        switch (pair.itemType)
        {
        case ItemType.Addon:
            Addon addon = UnityEngine.Object.Instantiate((Addon)GameController.Instance.itemDatabase.GetItem(addonInventory[pair.id].baseItemName));
            addon.stats = addonInventory[pair.id];
            return(addon);

        case ItemType.Weapon:
            Weapon weapon = UnityEngine.Object.Instantiate((Weapon)GameController.Instance.itemDatabase.GetItem(weaponInventory[pair.id].stats.baseItemName));
            weapon.data = weaponInventory[pair.id];
            return(weapon);
        }

        Debug.LogError(string.Format("Can't receive items of type '{0}'. Returning empty Item instead.", pair.itemType));
        return(new Item());
    }
示例#4
0
    public void RemoveItemFromInventory(int index)
    {
        InventoryPair pair = inventory[index];

        switch (pair.itemType)
        {
        case ItemType.Addon:
            addonInventory.RemoveAt(pair.id);
            for (int i = 0; i < inventory.Count; i++)
            {
                if (inventory[i].itemType == ItemType.Addon && inventory[i].id >= pair.id)
                {
                    inventory[i] = new InventoryPair {
                        id = inventory[i].id - 1, itemType = inventory[i].itemType
                    }
                }
                ;
            }
            break;

        case ItemType.Weapon:
            weaponInventory.RemoveAt(pair.id);
            for (int i = 0; i < inventory.Count; i++)
            {
                if (inventory[i].itemType == ItemType.Weapon && inventory[i].id >= pair.id)
                {
                    inventory[i] = new InventoryPair {
                        id = inventory[i].id - 1, itemType = inventory[i].itemType
                    }
                }
                ;
            }
            break;
        }

        inventory[index] = new InventoryPair {
            id = -1
        };
    }