void Start() { Storage_Manager storageManager = GameObject.Find("Storage_Manager").GetComponent <Storage_Manager>(); textToDisplayLostItems.text += "\n"; foreach (Lost_Item lostItem in items) { Item_And_Quantity stored = storageManager.GetStoredItemAndQuantity(lostItem.itemToLose); Item_And_Quantity toLose = new Item_And_Quantity(stored.item, 0); int randomAmount = Random.Range(lostItem.minimumLost, lostItem.maximumLost); if (stored.quantity > randomAmount) { toLose.quantity = ( uint )randomAmount; storageManager.SubtractQuantity(toLose); } else if (stored.quantity == 0) { } else { // lose all storageManager.SubtractQuantity(stored); } textToDisplayLostItems.text += toLose.item.name + " x" + toLose.quantity.ToString() + '\n'; } }
public void AddQuantity(Item_And_Quantity item) { foreach (Item_And_Quantity storedItem in storedItems) { if (storedItem.item.name == item.item.name) { storedItem.quantity += item.quantity; return; } } }
public void AddItems(Item item, uint quantity) { for (int i = 0; i < storedItems.Count; ++i) { if (storedItems[i].item == item) { Item_And_Quantity stored = storedItems[i]; stored.quantity += quantity; storedItems[i] = stored; break; } } }
void OnClickCraft() { Item_And_Quantity craftedItem = new Item_And_Quantity(selectedItemToCraft, 1); storageManager.AddQuantity(craftedItem); foreach (Item_And_Quantity requiredItem in selectedItemToCraft.requiredMaterialsToCraft.requiredItems) { storageManager.SubtractQuantity(requiredItem); } RepopulateItems(); OnClickCraftableItem(selectedItemToCraft); }
public void SubtractQuantity(Item_And_Quantity item) { foreach (Item_And_Quantity storedItem in storedItems) { if (storedItem.item.name == item.item.name) { if (storedItem.quantity < item.quantity) { throw new System.Exception("Tried to subtract more quantity than available"); } storedItem.quantity -= item.quantity; return; } } }
void OnClickCraftableItem(Item craftableItem) { selectedItemToCraft = craftableItem; foreach (GameObject craftItemScreen in requiredCraftItemsScreens) { GameObject.Destroy(craftItemScreen); } requiredCraftItemsScreens.Clear(); craftDialog.SetActive(true); bool canCraft = true; foreach (Item_And_Quantity requiredItem in selectedItemToCraft.requiredMaterialsToCraft.requiredItems) { Item_And_Quantity storedRequiredItem = storageManager.GetStoredItemAndQuantity(requiredItem); GameObject newCraftItemScreen = GameObject.Instantiate(itemTemplate); newCraftItemScreen.transform.SetParent(craftMaterialRequirementsParent, false); requiredCraftItemsScreens.Add(newCraftItemScreen); Screen_Item_Manager newCraftItemManager = newCraftItemScreen.GetComponent <Screen_Item_Manager>(); newCraftItemManager.nameText.text = requiredItem.item.name; newCraftItemManager.quantityText.text = storedRequiredItem.quantity + "/" + requiredItem.quantity.ToString(); newCraftItemManager.image.sprite = requiredItem.item.storageSprite; if (storedRequiredItem.quantity >= requiredItem.quantity) { newCraftItemManager.quantityText.color = Color.green; } else { newCraftItemManager.quantityText.color = Color.red; canCraft = false; } } if (canCraft) { craftButton.interactable = true; } else { craftButton.interactable = false; } }
public ScavengeResult Scavenge() { ScavengeResult result = new ScavengeResult(this); foreach (var item in scavengableItems) { int random = Random.Range((int)item.minimumScavengable, (int)item.maximumScavengable + 1); if (random > 0) { StorageManager storageManager = GameObject.Find("StorageManager").GetComponent <StorageManager>(); storageManager.AddItems(item.scavengableItem, (uint)random); Item_And_Quantity scavenged = new Item_And_Quantity(item.scavengableItem, (uint)random); result.scavengedItems.Add(scavenged); } } return(result); }
public Item DropRandomItem() { List <int> storedItemsThatHaveQuantity = new List <int>(); for (int i = 0; i < storedItems.Count; ++i) { if (storedItems[i].quantity > 0) { storedItemsThatHaveQuantity.Add(i); } } int random = Random.Range(0, storedItemsThatHaveQuantity.Count); Item_And_Quantity storedItem = storedItems[random]; storedItem.quantity -= 1; storedItems[random] = storedItem; return(storedItem.item); }
public List <Item_And_Quantity> Scavenge() { List <Item_And_Quantity> scavengedItems = new List <Item_And_Quantity>(); foreach (Scavengable_Item item in scavengableItems) { int highest = 0; for (int attempt = 0; attempt < item.attempts; ++attempt) { int randomAmount = Random.Range(item.minimumScavengable, item.maximumScavengable); if (randomAmount > highest) { highest = randomAmount; } } Item_And_Quantity scavengedItem = new Item_And_Quantity(item.scavengableItem, (uint)highest); scavengedItems.Add(scavengedItem); } return(scavengedItems); }
public Item_And_Quantity GetStoredItemAndQuantity(Item_And_Quantity item) { return(GetStoredItemAndQuantity(item.item)); }
public Equipped_Weapon(Item_And_Quantity inItemAndQuantity) { itemAndQuantity = inItemAndQuantity; equipped = 0; }
void RefreshScreen() { // Clear screens foreach (GameObject itemScreen in itemScreens) { GameObject.Destroy(itemScreen); } itemScreens.Clear(); foreach (GameObject perkScreen in perkScreens) { GameObject.Destroy(perkScreen); } perkScreens.Clear(); // Level int homeLevel = homeManager.CurrentLevel(); if (homeManager.HasUpgradeAvailable()) { homeLevelText.text = "HOME UPGRADE " + (homeLevel + 1).ToString(); canUpgrade = true; storedItems = new List <Item_And_Quantity>(); itemsRequiredToUpgrade = homeManager.GetRequiredItemsToUpgrade(); foreach (Item_And_Quantity requiredItemAndQuantity in itemsRequiredToUpgrade) { // Get stored item Item_And_Quantity storedItem = storageManager.GetStoredItemAndQuantity(requiredItemAndQuantity); storedItems.Add(storedItem); // Add item to GUI GameObject newItemScreen = GameObject.Instantiate(itemTemplate); newItemScreen.transform.SetParent(itemPanelParent, false); itemScreens.Add(newItemScreen); Screen_Item_Manager itemScreen = newItemScreen.GetComponent <Screen_Item_Manager>(); itemScreen.nameText.text = requiredItemAndQuantity.item.name; itemScreen.quantityText.text = storedItem.quantity.ToString() + " / " + requiredItemAndQuantity.quantity.ToString(); itemScreen.image.sprite = requiredItemAndQuantity.item.storageSprite; // Determine if can upgrade if (storedItem.quantity < requiredItemAndQuantity.quantity) { canUpgrade = false; itemScreen.quantityText.color = Color.red; } else { itemScreen.quantityText.color = Color.green; } } // Add perks List <string> perks = homeManager.GetPerksOfUpgrade(); foreach (string perk in perks) { GameObject newPerkScreen = GameObject.Instantiate(perkTemplate, perkPanelParent, false); perkScreens.Add(newPerkScreen); Screen_Perk_Manager perkScreenManager = newPerkScreen.GetComponent <Screen_Perk_Manager>(); perkScreenManager.perkText.text = perk; } } else { homeLevelText.text = "MAX HOME LEVEL REACHED"; canUpgrade = false; upgradeButton.gameObject.SetActive(false); } if (canUpgrade) { upgradeButton.interactable = true; } else { upgradeButton.interactable = false; } }