public void EquipFrom(ExpendableItem newItem, EquipSlotNameType equipSlotName, int invSlotIndex) { if (newItem == null) { return; } int slotIndex = (int)equipSlotName; ExpendableItem oldItem; if ((oldItem = _equippedItems[slotIndex]) != null) { UnequipTo(equipSlotName, invSlotIndex); } _equippedItems[slotIndex] = newItem; EventManager.Instance.AddListener(EventName.WalkDistanceThresholdReached, newItem.ReduceDurability); Debug.Log($"Equipped {newItem.Item.ItemName}."); Analytics.CustomEvent("itemEquipped", new Dictionary <string, object>() { { "itemName", newItem.Item.ItemName }, { "itemSlot", equipSlotName.ToString() } }); EventManager.Instance.InvokeEvent(EventName.EquipmentChanged, new EquipmentChangedEventArgs(oldItem?.Item, newItem.Item, equipSlotName)); }
public override void OnSelect() { inventory.item_info.Clear(); inventory.item_info.SetItemIcon(this); inventory.item_info.SetItemName(data.meta.name); inventory.item_info.SetDescription(data.meta.description); inventory.item_info.SetButtonListener(UIItemInfo.Action.Drop, () => { GameManager.Instance.player.inventory.Remove(data.slot_index); inventory.item_info.Clear(); }); inventory.item_info.SetButtonListener(UIItemInfo.Action.Drink, () => { ExpendableItem potionItem = GameManager.Instance.player.inventory.Remove(data.slot_index) as ExpendableItem; if (null == potionItem) { throw new System.InvalidCastException(); } potionItem.Use(GameManager.Instance.player); inventory.item_info.Clear(); }); }
public EquipmentDestroyedEventArgs(ExpendableItem expendable) { Expendable = expendable; }
public void Equip(ExpendableItem newItem, EquipSlotNameType equipSlotName) { EquipFrom(newItem, equipSlotName, -1); }
public EquipmentUsedEventArgs(ExpendableItem expendableItem, int inventorySlotIndex) { ExpendableItem = expendableItem; InventorySlotIndex = inventorySlotIndex; }