public void AddResources(List <InventoryItemStats> itemStats, bool displayOnUi = true) { var sb = new StringBuilder("Found "); foreach (var item in itemStats) { if (_items.ContainsKey(item.inventoryItem.itemId)) { var inventoryItemStats = _items[item.inventoryItem.itemId]; inventoryItemStats.itemCount += item.itemCount; _items[item.inventoryItem.itemId] = inventoryItemStats; } else { var inventoryItemStats = new InventoryItemStats { itemCount = item.itemCount, inventoryItem = item.inventoryItem }; _items.Add(item.inventoryItem.itemId, inventoryItemStats); } sb.Append($"{item.itemCount} {item.inventoryItem.displayName}, "); } sb.Length -= 2; if (displayOnUi) { contentDisplay.text = sb.ToString(); contentDisplayAnimator.SetTrigger(Controls.UIDisplayTextTrigger); } resourcesChanged?.Invoke(); }
private void CheckInteractionTime() { if (Input.GetKeyDown(Controls.InteractionKey)) { UniSlider.instance.InitSlider(gameObject); } else if (Input.GetKeyUp(Controls.InteractionKey)) { UniSlider.instance.DiscardSlider(gameObject); } else if (Input.GetKey(Controls.InteractionKey)) { _currentInteractionTime += Time.deltaTime; } else { _currentInteractionTime = 0; } if (_currentInteractionTime >= maxInteractionTime) { _collectibleCollected = true; UniSlider.instance.DiscardSlider(gameObject); var collectionItems = new List <InventoryItemStats>(); for (var i = 0; i < collectibles.Count; i++) { var inventoryItemStats = collectibles[i]; var randomValue = Random.Range(0, 1000) % inventoryItemStats.itemCount; if (inventoryItemStats.itemCount <= 1) { randomValue = inventoryItemStats.itemCount; } if (randomValue <= 0) { randomValue = 1; } var newCollectionItem = new InventoryItemStats { itemCount = randomValue, inventoryItem = inventoryItemStats.inventoryItem }; collectionItems.Add(newCollectionItem); } ResourceManager.instance.AddResources(collectionItems); DestroyCollectible(); } }
public void AddResource(InventoryItem item, int count = 1) { if (_items.ContainsKey(item.itemId)) { var inventoryItemStats = _items[item.itemId]; inventoryItemStats.itemCount += count; _items[item.itemId] = inventoryItemStats; } else { var inventoryItemStats = new InventoryItemStats { itemCount = count, inventoryItem = item }; _items.Add(item.itemId, inventoryItemStats); } resourcesChanged?.Invoke(); }