/* * public void OnDrag(PointerEventData eventData) * { * if (ContainsItem()) * { * // display dragged item icon at mouse position * charPanel.ShowDraggedItem(charPanel.items[index], index); * * // delete the dragged item * charPanel.items[index] = new Item(); * } * } */ bool EquipToSlot(EquipableItem draggedItem) { // * important // * slots index has the some order as // * weapon equip type enum's order if (index == (int)draggedItem.equipType) { // slot occupied if (ContainsItem()) { // swap old -> new item // give old item back to inventory Item tempItem = charPanel.items[index]; charPanel.items[index] = draggedItem; inventory.items[inventory.draggedItemSlotNum] = tempItem; draggedItem.ActiveItemEffect(); } // slot empty else { charPanel.items[index] = draggedItem; } //inventory.HideDraggedItem(); return(true); } Debug.Log("wrong slot!"); return(false); }
public void OnPointerDown(PointerEventData eventData) { // right click if (eventData.button == PointerEventData.InputButton.Right) { // unequip if (ContainsItem()) { // give item back to inventory inventory.AddItemByID(charPanel.items[index].itemID); UnequipInSlotItem(); } } // left click if (eventData.button == PointerEventData.InputButton.Left) { // equip item if (inventory.isDraggingItem) { Item draggedItem = inventory.draggedItem; if (draggedItem is EquipableItem) { EquipableItem equipment = (EquipableItem)draggedItem; if (EquipToSlot(equipment)) { AttachWeaponToPlayer(equipment); equipment.ActiveItemEffect(); } } } } }