public void LoadInventory(PlayerSaveData saveData) { itemList.Clear(); for (int i = 0; i < saveData.items.Count; i++) { Item item = itemDB.GetItem(saveData.items[i].id); InventorySlot itemSlot = new InventorySlot(saveData.items[i].id, item, saveData.items[i].amount); itemList.Add(itemSlot); } }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.tag == "Item") { if (gameObject.layer == 11) { return; } GameObject newItem = collision.gameObject; itemDB.GetItem(newItem.GetComponent <ItemPickUp>()); if (newItem.GetComponent <ItemPickUp>().item.itemType == Item.ItemType.Equipment) { if (newItem.GetComponent <WeaponController>().weaponType == WeaponController.WeaponType.Shield) { currentShield = newItem.GetComponent <WeaponController>(); isShield = true; } else { currentWeapon = newItem.GetComponent <WeaponController>(); isWeapon = true; } } } }
public bool TryAddItemAtIndex(int ID, int index, int amount = 1, ItemDB dB = null) { if (dB == null) { dB = itemDB; } bool success = false; if (index >= 0 && index < slots.Count && amount > 0) { Item itemToAdd = dB.GetItem <Item>(ID); ItemData existData = GetSlotByIndex(index).GetItemData(); if (existData) { if (itemToAdd.Stackable && itemToAdd.ID == existData.item.ID) { existData.SetAmount(existData.amount + amount); success = true; } } else { // Create and add a new Item object if (items[index].ID == -1) { items[index] = itemToAdd; GameObject itemObj = Instantiate(inventoryItem); ItemData newData = itemObj.GetComponent <ItemData>(); newData.item = itemToAdd; newData.slot = index; newData.inv = this; newData.SetAmount(1); itemObj.transform.SetParent(slots[index].transform, false); itemObj.transform.position = itemObj.transform.parent.position; // Set object to slot position if (itemToAdd.GetSprite() == null) { itemObj.GetComponent <Image>().sprite = Resources.Load <Sprite>("Sprites/Items/" + itemToAdd.ImgPath); } else { itemObj.GetComponent <Image>().sprite = itemToAdd.GetSprite(); } if (amount == 1 || itemToAdd.Stackable) { newData.SetAmount(amount); success = true; } } } } return(success); }
// Add an item to the first available inventory UI slot, or increment the stack. public bool TryAddItemByID(int ID, int amount = 1, ItemDB dB = null) { if (dB == null) { dB = itemDB; } Item itemToAdd = dB.GetItem <Item>(ID); int idx = GetItemIndexByID(ID); bool success = false; if (itemToAdd.Stackable && idx >= 0) { ItemData existData = GetSlotByIndex(idx).GetItemData(); existData.SetAmount(existData.amount + amount); success = true; } else { // Create and add a new Item object for (int i = 0; i < items.Count && amount > 0; i++) { if (items[i].ID <= -1) { success = true; items[i] = itemToAdd; GameObject itemObj = Instantiate(inventoryItem); ItemData newData = itemObj.GetComponent <ItemData>(); newData.item = itemToAdd; newData.slot = i; newData.inv = this; newData.SetAmount(1); itemObj.transform.SetParent(slots[i].transform, false); itemObj.transform.position = itemObj.transform.parent.position; // Set object to slot position if (itemToAdd.GetSprite() == null) { itemObj.GetComponent <Image>().sprite = Resources.Load <Sprite>("Sprites/Items/" + itemToAdd.ImgPath); } else { itemObj.GetComponent <Image>().sprite = itemToAdd.GetSprite(); } if (itemToAdd.Stackable) { newData.SetAmount(amount); break; } amount--; } } } return(success); }
public TextureRect GrabItem(Vector2 pos) { var item = GetItemUnderPos(pos); if (item == null) { return(null); } var itemSlot = ItemDB.GetItem(item.GetMeta("id").ToString()).ItemSlot; items[itemSlot] = null; return(item); }
public bool PickUpItem(string itemId) { var item = (TextureRect)itemBase.Instance(); item.SetMeta("id", itemId); item.Texture = (Texture)GD.Load(ItemDB.GetItem(itemId).ItemPath); AddChild(item); if (!gridBackpack.InsertItemAtFirstAvailableSpot(item)) { item.QueueFree(); return(false); // no space available in the inventory } return(true); // item picked up successfully }
public void AddItem(int ID) { Item itemToAdd = idb.GetItem <Item>(ID); int index = AtIndex(itemToAdd); if (index > -1)//item exists in inventory { if (itemToAdd.Stackable) { ItemData iData = slots[index].GetComponent <Slot>().GetItemData(); iData.amount++; iData.transform.GetChild(0).GetComponent <Text>().text = iData.amount.ToString(); } } else//item does not exist in inventory { for (int i = 0; i < items.Count; i++)//find first open slot for the item { if (items[i].ID == -1) { items[i] = itemToAdd; GameObject itemObj = Instantiate(inventoryItem); ItemData newData = itemObj.GetComponent <ItemData>(); newData.item = itemToAdd; newData.slot = i; newData.inv = this; newData.SetAmount(1); itemObj.transform.SetParent(slots[i].transform, false); itemObj.transform.position = itemObj.transform.parent.position; if (itemToAdd.GetSprite() == null) { itemObj.GetComponent <Image>().sprite = Resources.Load <Sprite>("Sprites/Items/" + itemToAdd.ImgPath); } else { itemObj.GetComponent <Image>().sprite = itemToAdd.GetSprite(); } if (itemToAdd.Stackable) { newData.amount = 1; } break; } } } }
public bool InsertItem(TextureRect item) { var itemPos = item.RectGlobalPosition + item.RectSize / 2; var slot = GetSlotUnderPos(itemPos); if (slot == null) { return(false); } var itemSlot = ItemDB.GetItem(item.GetMeta("id").ToString()).ItemSlot; if (itemSlot != slot.Name) { return(false); } if (items[itemSlot] != null) { return(false); } items[itemSlot] = item; item.RectGlobalPosition = slot.RectGlobalPosition + slot.RectSize / 2 - item.RectSize / 2; return(true); }
public void GiveItem(string itemName, int quantity) { Item itemToAdd = itemDB.GetItem(itemName); inventoryItems.Add(itemToAdd); if (itemToAdd.forSidescroll == levelController.isSideScroll) { inventoryUI.AddNewItem(itemToAdd, GetTotalQuantity(itemToAdd.id)); //toolbarUI.AddNewItem(itemToAdd, GetTotalQuantity(itemToAdd.id)); } int id = itemDB.GetItem(itemName).id; GiveQuantity(id, quantity); }
public void awardLoot() { int randomNumber = Random.Range(0, total); int quantityToGive = Random.Range(minLoot, maxLoot); print(randomNumber); foreach (var id in table) { int index = GetItemId(id.itemIds.Length); if (randomNumber <= id.lootProbability) { Item itemToGive = itemDB.GetItem(id.itemIds[index]); if (itemToGive.GetType() == typeof(Map)) { List <int> mapsTriedToGive = new List <int>(); bool mapAlreadyInInventory = false; do { Item existingMap = inventory.CheckForItem(id.itemIds[index]); if (existingMap != null) { mapAlreadyInInventory = true; index = GetItemId(id.itemIds.Length); } else { mapAlreadyInInventory = false; inventory.GiveItem(id.itemIds[index], 1); return; } bool mapInList = false; foreach (int map in mapsTriedToGive) { if (map == id.itemIds[index]) { mapInList = true; } } if (!mapInList) { mapsTriedToGive.Add(id.itemIds[index]); } if (mapsTriedToGive.Count == id.itemIds.Length) { awardLoot(); return; } } while (mapAlreadyInInventory); /* bool noUniqueMap = false; * int[] randomizedIndexes = RandomizeArray(id.itemIds); * foreach(int arrayIndex in randomizedIndexes) * { * print("Array Index: " + arrayIndex); * Item existingMap = inventory.CheckForItem(id.itemIds[arrayIndex]); * if (existingMap != null) * { * noUniqueMap = true; * } else * { * inventory.GiveItem(id.itemIds[arrayIndex], 1); * return; * } * } * if(noUniqueMap) * { * awardLoot(); * return; * }*/ //RANDOMIZE MAPS /*Item existingMap = inventory.CheckForItem(id.itemIds[index]); * if(existingMap != null) * { * awardLoot(); * return; * } * else * { * print("Giving Map"); * inventory.GiveItem(id.itemIds[index], 1); * return; * }*/ } else { //inventory.GiveItem(id.itemIds[index], quantityToGive); FindObjectOfType <Inventory>().GiveItem(id.itemIds[index], quantityToGive); return; } } else { randomNumber -= id.lootProbability; } } }
public void AddItem(int ID) { Item newItem = idb.GetItem <Item>(ID); items.Add(newItem); }
public void EquipItem(string projectile) { equippedItem = itemDb.GetItem(projectile); }