private void OnDestroy() { if (LootButton != null) { LootButton.SaveToPool(); } }
public void AddLootItem(Item item) { LootButton lootButton = Instantiate(lootButtonPrefab, area); lootButton.Item = item; lootItems.Add(lootButton); }
private void AddLoot(Item item) { LootButton lootButton = Instantiate(lootButtonPrefab, lootsContainer); lootButton.MyLoot = item; lootButton.MyIcon.sprite = item.GetSprite(); lootButton.MyTitle.text = item.itemType.ToString() + " x" + item.amount.ToString(); }
public void GenerateLoots() { System.Random rnd = new System.Random(); // Get a number between 1-5 int lootNumber = rnd.Next(1, 6); for (int i = 0; i < lootNumber; i++) { // Active the loot button GameObject newButton = this.layout.transform.GetChild(i).gameObject; newButton.SetActive(true); // Setup the component of the button LootButton button = newButton.GetComponent <LootButton>(); int lootIndex = rnd.Next(100); // Generate options randomly if (lootIndex < 50) { button.Setup(this.powerModule); } else if (lootIndex >= 50 && lootIndex < 55) { button.Setup(this.speedModule); } else if (lootIndex >= 55 && lootIndex < 60) { button.Setup(this.speedModule); } else if (lootIndex >= 60 && lootIndex < 65) { button.Setup(this.rangeModule); } else if (lootIndex >= 65 && lootIndex < 70) { button.Setup(this.rangeModule); } else if (lootIndex >= 70 && lootIndex < 75) { button.Setup(this.handinessModule); } else if (lootIndex >= 75 && lootIndex < 80) { button.Setup(this.handinessModule); } else if (lootIndex >= 80 && lootIndex < 85) { button.Setup(this.strikeModule); } else if (lootIndex >= 85 && lootIndex < 100) { button.Setup(this.strikeModule); } } }
private void OnItemHoverEnter(LootButton sender) { if (itemIconImage != null) { itemIconImage.gameObject.SetActive(true); itemIconImage.sprite = sender.Item.icon; } if (itemDescriptionLabel != null) { itemDescriptionLabel.text = sender.Item.description; } }
private void OnItemHoverExit(LootButton sender) { if (itemIconImage != null) { itemIconImage.gameObject.SetActive(false); } if (itemDescriptionLabel == null) { return; } itemDescriptionLabel.text = ""; }
private void InitializeItems(Transform contentHolder, Inventory inventory) { while (contentHolder.childCount > 0) { DestroyImmediate(contentHolder.GetChild(0).gameObject); } List <Item> items = inventory.Items.Select(o => o).Distinct().ToList(); for (int i = 0; i < items.Count; i++) { GameObject go = Instantiate(lootButton, contentHolder); LootButton item = go.GetComponent <LootButton>(); if (item != null) { item.Initialize(items[i], inventory.Items.Where(x => x.name.Contains(items[i].name)).Count()); item.OnHoverEnter += OnItemHoverEnter; item.OnHoverExit += OnItemHoverExit; item.OnClicked += (LootButton sender) => { uint count = uint.Parse(sender.quantityLabel.text.Replace("x", "")); LootQuantityPanelController controller = lootQuantityPanel.GetComponent <LootQuantityPanelController>(); if (controller != null) { controller.Initialize(sender, inventory == playerInventory ? playerInventory : interactable.Inventory, inventory == playerInventory ? interactable.Inventory : playerInventory); if (count > 1) { if (lootQuantityPanel != null) { active = false; lootQuantityPanel.gameObject.SetActive(true); } } else { controller.Take(1); } } }; } } }
public void Initialize(LootButton lootButton, Inventory from, Inventory to) { this.lootButton = lootButton; if (minLabel != null) { minLabel.text = "1"; } if (maxLabel != null) { maxLabel.text = lootButton.quantityLabel.text.Replace("x", ""); } quantitySlider.minValue = 0; quantitySlider.maxValue = uint.Parse(maxLabel.text); quantitySlider.value = 1; fromInventory = from; toInventory = to; }
public void TakeAll() { LootQuantityPanelController controller = lootQuantityPanel.GetComponent <LootQuantityPanelController>(); if (controller != null) { while (lootContent.transform.childCount > 0) { LootButton button = lootContent.transform.GetChild(0).gameObject.GetComponent <LootButton>(); if (button != null) { controller.Initialize(button, interactable.Inventory, playerInventory); if (controller.Take(uint.Parse(button.quantityLabel.text.Replace("x", "")))) { takeAll.Play(); } } } } Close(); }
public void RemoveLootItem(LootButton lootButton) { currentLootTable.LootItems.Remove(lootButton.Item); lootItems.Remove(lootButton); Destroy(lootButton.gameObject); }