protected virtual void OnItemRemoved(Object p_sender, EventArgs p_args) { InventoryItemEventArgs inventoryItemEventArgs = (InventoryItemEventArgs)p_args; if (inventoryItemEventArgs.Slot.Inventory == m_inventory.GetEventSource() && inventoryItemEventArgs.Slot.Slot < m_itemSlots.Length) { m_itemSlots[inventoryItemEventArgs.Slot.Slot].SetItem(m_inventory.GetItemAt(inventoryItemEventArgs.Slot.Slot)); } }
//Using the events syetem private void Inventory_ItemRemoved(object sender, InventoryItemEventArgs e) { InventoryItemBase item = e.Item; GameObject goItem = (item as MonoBehaviour).gameObject; goItem.SetActive(true); goItem.transform.parent = null; }
protected virtual void OnItemAdded(Object p_sender, EventArgs p_args) { InventoryItemEventArgs inventoryItemEventArgs = (InventoryItemEventArgs)p_args; if (inventoryItemEventArgs.Slot.Inventory == m_inventory.GetEventSource()) { Int32 slot = inventoryItemEventArgs.Slot.Slot; if (slot < m_itemSlots.Length) { BaseItem itemAt = m_inventory.GetItemAt(slot); AddItem(slot, itemAt); } } }
private void OnItemChanged(Object p_sender, EventArgs p_args) { InventoryItemEventArgs inventoryItemEventArgs = p_args as InventoryItemEventArgs; if (inventoryItemEventArgs != null && inventoryItemEventArgs.Slot.Inventory == m_inventory.GetEventSource()) { Int32 slot = inventoryItemEventArgs.Slot.Slot; if (slot < m_itemSlots.Length) { BaseItem itemAt = m_inventory.GetItemAt(slot); m_itemSlots[slot].SetItem(itemAt); } } }
private void Inventory_ItemRemoved(object sender, InventoryItemEventArgs e) { Transform inventoryPanel = transform.Find("InventPanelButtons/InventoryPanel"); int index = -1; foreach (Transform slot in inventoryPanel) { index++; Transform imageTransform = slot.GetChild(0).GetChild(0); Transform textTransform = slot.GetChild(0).GetChild(1); Image image = imageTransform.GetComponent <Image>(); Text txtCount = textTransform.GetComponent <Text>(); ItemDragHandler itemDragHandler = imageTransform.GetComponent <ItemDragHandler>(); // We found the item in the UI if (itemDragHandler.Item == null) { continue; } // Found the slot to remove from if (e.Item.Slot.Id == index) { int itemCount = e.Item.Slot.Count; itemDragHandler.Item = e.Item.Slot.FirstItem; if (itemCount < 2) { txtCount.text = ""; } else { txtCount.text = itemCount.ToString(); } if (itemCount == 0) { image.enabled = false; image.sprite = null; } break; } } }
private void Inventory_ItemUsed(object sender, InventoryItemEventArgs e) { if (e.Item.ItemType != EItemType.Consumable)//If the item is not consumable { // If the player carries an item, un-use it (remove from player's hand) if (_InventoryItemBase != null) { WeildItem(_InventoryItemBase, false); } InventoryItemBase item = e.Item; // Use item (put it to hand of the player) WeildItem(item, true); _InventoryItemBase = e.Item; } }
// Methods used for Inventory private void ItemAdded(object sender, InventoryItemEventArgs e) { foreach (Transform slot in _inventoryPanel.transform) { InventorySlot inventorySlot = slot.GetChild(0).GetComponent <InventorySlot>(); if (!inventorySlot._filled) { inventorySlot._filled = true; inventorySlot._name = e.Item.Name; inventorySlot._description = e.Item.Description; Image image = slot.GetChild(0).GetChild(0).GetComponent <Image>(); image.enabled = true; image.sprite = e.Item.Image; ShowDescription(inventorySlot); break; } } }
public void ConsumeSuccess(Int32 p_slot) { BaseItem itemAt = GetItemAt(p_slot); if (itemAt is Consumable) { Consumable consumable = (Consumable)itemAt; consumable.Counter--; InventoryItemEventArgs p_eventArgs = new InventoryItemEventArgs(new InventorySlotRef(m_inventory, p_slot)); LegacyLogic.Instance.EventManager.InvokeEvent(this, EEventType.INVENTORY_ITEM_CHANGED, p_eventArgs); if (consumable.Counter <= 0) { RemoveItemAt(p_slot); } else { InventoryItemEventArgs p_eventArgs2 = new InventoryItemEventArgs(new InventorySlotRef(m_inventory, p_slot)); LegacyLogic.Instance.EventManager.InvokeEvent(this, EEventType.INVENTORY_ITEM_REMOVED, p_eventArgs2); } } }
private void InventoryScript_ItemAdded(object sender, InventoryItemEventArgs e) { Transform inventoryPanel = transform.Find("InventPanelButtons/InventoryPanel"); int index = -1; foreach (Transform slot in inventoryPanel) { index++; // Border... Image Transform imageTransform = slot.GetChild(0).GetChild(0); Transform textTransform = slot.GetChild(0).GetChild(1); Image image = imageTransform.GetComponent <Image>(); Text txtCount = textTransform.GetComponent <Text>(); ItemDragHandler itemDragHandler = imageTransform.GetComponent <ItemDragHandler>(); if (index == e.Item.Slot.Id) { image.enabled = true; image.sprite = e.Item.Image; int itemCount = e.Item.Slot.Count; if (itemCount > 1) { txtCount.text = itemCount.ToString(); } else { txtCount.text = ""; } // Store a reference to the item itemDragHandler.Item = e.Item; break; } } }
public void OnSingleItemButtonClicked(GameObject p_sender) { if (m_itemContainer.SelectedItem != null) { ((ItemSlotIdentify)m_itemContainer.SelectedItem).PlayFX(m_itemContainer.Mode); BaseItem item = m_itemContainer.SelectedItem.Item; PartyInventoryController partyInventoryController = LegacyLogic.Instance.WorldManager.Party.Inventory; Int32 slotIndexForItem = partyInventoryController.GetSlotIndexForItem(item); if (slotIndexForItem == -1) { partyInventoryController = (PartyInventoryController)LegacyLogic.Instance.WorldManager.Party.GetOtherInventory(partyInventoryController); slotIndexForItem = partyInventoryController.GetSlotIndexForItem(item); } Equipment equipment = (Equipment)item; if (m_identifyInventory != null) { if (equipment.Identified) { return; } equipment.Identified = true; LegacyLogic.Instance.EventManager.InvokeEvent(partyInventoryController, EEventType.INVENTORY_ITEM_CHANGED, new InventoryItemEventArgs(new InventorySlotRef(partyInventoryController.Inventory, slotIndexForItem))); if (m_identifyInventory.FromScroll) { m_identifyInventory.RemoveOneScroll(); } else if (!m_fromSpell) { LegacyLogic.Instance.WorldManager.Party.ChangeGold(-m_costs); } else if (m_costs > 0) { LegacyLogic.Instance.WorldManager.Party.SelectedCharacter.ChangeMP(-m_costs); } AudioManager.Instance.RequestPlayAudioID("IdentifyGUI", 0); } else { if (!equipment.Broken) { return; } equipment.Broken = false; InventoryItemEventArgs p_eventArgs = null; switch (m_itemContainer.RepairInventory.RepairType) { case ERepairType.ALL: p_eventArgs = new InventoryItemEventArgs(InventoryItemEventArgs.ERepairType.ALL); break; case ERepairType.WEAPONS: p_eventArgs = new InventoryItemEventArgs(InventoryItemEventArgs.ERepairType.WEAPONS); break; case ERepairType.ARMOR_AND_SHIELD: p_eventArgs = new InventoryItemEventArgs(InventoryItemEventArgs.ERepairType.ARMOR); break; } if (slotIndexForItem == -1) { CharacterInventoryController characterInventoryController = null; foreach (Character character in LegacyLogic.Instance.WorldManager.Party.Members) { slotIndexForItem = character.Equipment.GetSlotIndexForItem(item); if (slotIndexForItem > -1) { characterInventoryController = character.Equipment; break; } } if (characterInventoryController != null && slotIndexForItem > -1) { LegacyLogic.Instance.EventManager.InvokeEvent(characterInventoryController.Equipment, EEventType.INVENTORY_ITEM_REPAIR_STATUS_CHANGED, p_eventArgs); } } else { LegacyLogic.Instance.EventManager.InvokeEvent(partyInventoryController, EEventType.INVENTORY_ITEM_REPAIR_STATUS_CHANGED, p_eventArgs); } LegacyLogic.Instance.WorldManager.Party.ChangeGold(-m_costs); } m_didDoAnyAction = true; m_itemContainer.UpdateItems(); m_itemContainer.SelectItemSlot(null); UpdateScrollBar(); UpdateButtons(); } }