示例#1
0
    void GrabItem(UISlot grabbable)
    {
        if (grabbable.Item == null)
        {
            return;
        }

        if (grabbable is InventorySlot inventoryGrabbable)
        {
            grabbedSlot = inventoryGrabbable.MainSlot;
            inventoryGrabbable.MainSlot.GrabItem(true);
        }
        else
        {
            grabbedSlot = grabbable;
            grabbable.GrabItem(true);
        }
    }
示例#2
0
    void PlaceItem(DroppableArea droppableArea)
    {
        if (grabbedSlot == null)
        {
            return;
        }

        Item grabbedItem        = grabbedSlot.Item;
        int  grabbedTrinketSlot = -1;

        /*
         * if (grabbedSlot is InventorySlot)
         * {
         *      RunManager.Instance.Inventory.RemoveFromInventory(grabbedItem);
         * }
         * else if (grabbedSlot is EquipmentSlot)
         * {
         *      grabbedTrinketSlot = ((EquipmentSlot)grabbedSlot).TrinketIndex;
         *      ((EquipmentSlot)grabbedSlot).Player.UnequipEquipment(((Equipment)grabbedItem).slot, grabbedTrinketSlot);
         * }
         * else
         * {
         *      dropArea.RemoveFromDrop(grabbedItem);
         * }
         */


        IDroppable droppable = droppableArea.droppable;

        if (droppable.DropHere(grabbedItem, droppableArea.slot))
        {
            grabbedSlot.GetComponent <RemovableArea>().removable.RemoveFromHere(grabbedSlot);
        }

        grabbedSlot.GrabItem(false);
        grabbedSlot = null;

        /*
         * if (newSlot is InventorySlot)
         * {
         *      if (!RunManager.Instance.Inventory.AddToInventory(grabbedItem, ((InventorySlot)newSlot).Position))
         *      {
         *              if (grabbedSlot is InventorySlot)
         *              {
         *                      if (!RunManager.Instance.Inventory.AddToInventory(grabbedItem, ((InventorySlot)grabbedSlot).Position))
         *                      {
         *                              grabbedItem.SwapDimensions();
         *                              RunManager.Instance.Inventory.AddToInventory(grabbedItem, ((InventorySlot)grabbedSlot).Position);
         *                      }
         *              }
         *              else if (grabbedSlot is EquipmentSlot)
         *              {
         *                      ((EquipmentSlot)grabbedSlot).Player.EquipEquipment(((Equipment)grabbedItem), grabbedTrinketSlot);
         *              }
         *              else
         *              {
         *                      dropArea.AddToDrop(grabbedItem);
         *              }
         *      }
         * }
         * else
         * {
         *      if (grabbedItem is Equipment)
         *      {
         *              if (((EquipmentSlot)newSlot).Slot == ((Equipment)grabbedItem).slot)
         *              {
         *                      if (((EquipmentSlot)newSlot).Item == null)
         *                      {
         *                              ((EquipmentSlot)newSlot).Player.EquipEquipment(((Equipment)grabbedItem), ((EquipmentSlot)newSlot).TrinketIndex);
         *                      }
         *                      else if (grabbedSlot is InventorySlot)
         *                      {
         *                              RunManager.Instance.Inventory.AddToInventory(grabbedItem, ((InventorySlot)grabbedSlot).Position);
         *                      }
         *                      else
         *                      {
         *                              ((EquipmentSlot)grabbedSlot).Player.EquipEquipment(((Equipment)grabbedItem), ((EquipmentSlot)grabbedSlot).TrinketIndex);
         *                      }
         *              }
         *              else
         *              {
         *                      if (grabbedSlot is InventorySlot)
         *                      {
         *                              RunManager.Instance.Inventory.AddToInventory(grabbedItem, ((InventorySlot)grabbedSlot).Position);
         *                      }
         *                      else
         *                      {
         *                              ((EquipmentSlot)grabbedSlot).Player.EquipEquipment(((Equipment)grabbedItem));
         *                      }
         *              }
         *      }
         *      else
         *      {
         *              if (grabbedSlot is InventorySlot)
         *              {
         *                      RunManager.Instance.Inventory.AddToInventory(grabbedItem, ((InventorySlot)grabbedSlot).Position);
         *              }
         *              else
         *              {
         *                      ((EquipmentSlot)grabbedSlot).Player.EquipEquipment(((Equipment)grabbedItem), grabbedTrinketSlot);
         *              }
         *      }
         * }
         *
         * grabbedSlot.GrabItem(false);
         * grabbedSlot = null;*/
    }