Esempio n. 1
0
        protected virtual void TrySwap()
        {
            if (InventoryItem.CanStack(UIDragDropHandler.CurrentData))
            {
                UIDragDropHandler.Take();
                return;
            }
            Entity oldItem = Data;

            UIDragDropHandler.CurrentData.Get <InventoryItem>(i => i.Index = Index);
            if (Player.MainInventory.TryAdd(UIDragDropHandler.CurrentData))
            {
                UIDragDropHandler.Take();
                UIDragDropHandler.SetItem(oldItem);
            }
            else
            {
                if (PlayAudio)
                {
                    AudioPool.PlayClip(StringConst.AudioDefaultItemReturn, transform.position, 0, AudioVolume);
                }
                UIDragDropHandler.Return();
                Player.MainInventory.TryAdd(oldItem);
            }
        }
Esempio n. 2
0
        protected virtual void TryDrop()
        {
            var dragInventoryData = UIDragDropHandler.CurrentData.Get <InventoryItem>();

            if (dragInventoryData.Inventory == Player.MainInventory)
            {
                if (World.Get <ContainerSystem>().TrySwap(Player.MainInventory, dragInventoryData.Index, Index))
                {
                    StatusMessages("TrySwap");
                    UIDragDropHandler.Take();
                }
                else
                {
                    StatusMessages("Rejected same inventory");
                    RejectDrag();
                }
                return;
            }
            if (World.Get <ContainerSystem>().TryAdd(Player.MainInventory, UIDragDropHandler.CurrentData, Index))
            {
                StatusMessages("TryAdd)");
                UIDragDropHandler.Take();
            }
            else
            {
                StatusMessages("Rejected different inventory");
                RejectDrag();
            }
        }
 protected override void TryDrop() {
     var newItem = UIDragDropHandler.CurrentData;
     if (World.Get<EquipmentSystem>().TryEquip(_slot, newItem)) {
         UIDragDropHandler.Take();
     }
     else {
         if (PlayAudio) {
             AudioPool.PlayClip(StringConst.AudioDefaultItemReturn, transform.position, 0, AudioVolume);
         }
         UIFloatingText.InventoryMessage(_slot.LastEquipStatus, RectTransform);
         UIDragDropHandler.Return();
     }
 }
Esempio n. 4
0
 protected virtual void TryDrop()
 {
     if (Player.MainInventory.TryAdd(UIDragDropHandler.CurrentData))
     {
         UIDragDropHandler.Take();
     }
     else
     {
         if (PlayAudio)
         {
             AudioPool.PlayClip(StringConst.AudioDefaultItemReturn, transform.position, 0, AudioVolume);
         }
         UIDragDropHandler.Return();
     }
 }
Esempio n. 5
0
 public void OnDrop(PointerEventData eventData)
 {
     if (UIDragDropHandler.CurrentData == null)
     {
         return;
     }
     if (!_active)
     {
         UIDragDropHandler.Return();
         return;
     }
     if (Player.MainInventory.Add(UIDragDropHandler.CurrentData))
     {
         UIDragDropHandler.Take();
     }
 }
Esempio n. 6
0
 public void OnDrop(PointerEventData eventData)
 {
     if (UIDragDropHandler.CurrentData == null)
     {
         return;
     }
     if (!_active)
     {
         UIDragDropHandler.Return();
         return;
     }
     if (World.Get <ContainerSystem>().TryAdd(Player.MainInventory, UIDragDropHandler.CurrentData))
     {
         UIDragDropHandler.Take();
     }
 }
Esempio n. 7
0
        protected virtual void TrySwap()
        {
            if (InventorySystem.CanStack(InventoryItem, UIDragDropHandler.CurrentData))
            {
                UIDragDropHandler.Take();
                return;
            }
            Entity oldItem = Data;
            var    currentInventoryData = oldItem.Get <InventoryItem>();

            if (World.Get <ContainerSystem>().TryReplace(Player.MainInventory, UIDragDropHandler.CurrentData, currentInventoryData.Index))
            {
                StatusMessages("World.Get<ContainerSystem>().TryReplace(Player.MainInventory, UIDragDropHandler.CurrentData, currentInventoryData.Index)");
                UIDragDropHandler.Take();
                UIDragDropHandler.SetItem(oldItem);
            }
            else
            {
                StatusMessages("Rejected different inventory");
                RejectDrag();
            }
        }
Esempio n. 8
0
        public void TryThrow(Entity item)
        {
            var        mouseRay = Player.Cam.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;

            if (Physics.Raycast(mouseRay, out hit, _dropDistance, LayerMasks.DropPanel))
            {
                var use = hit.transform.GetComponent <EntityIdentifier>();
                if (use != null)
                {
                    var interaction = EntityController.GetEntity(use.EntityID).Get <ItemInteraction>();
                    if (interaction != null && interaction.Interaction(item))
                    {
                        UIDragDropHandler.Take();
                        return;
                    }
                }
                var screenPnt = Player.Cam.ScreenToViewportPoint(Input.mousePosition);
                if (screenPnt.y < _maxPlaceScreenY)
                {
                    var inventoryItem = item.Get <InventoryItem>();
                    if (inventoryItem != null && inventoryItem.Inventory.Remove(item))
                    {
                        UIDragDropHandler.Take();
                        World.Get <ItemSceneSystem>().Drop(hit.point + new Vector3(0, 0.5f, 0));
                        return;
                    }
                }
                if (hit.distance < _minDistance)
                {
                    UIDragDropHandler.Return();
                    return;
                }
            }
            UIDragDropHandler.Take();
            var pos = Player.Cam.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 20));

            World.Get <ItemSceneSystem>().Throw(pos);
        }
Esempio n. 9
0
        protected virtual void TrySwap()
        {
            if (InventorySystem.CanStack(InventoryItem, UIDragDropHandler.CurrentData))
            {
                UIDragDropHandler.Take();
                return;
            }
            Entity oldItem              = Data;
            var    dragInventoryData    = UIDragDropHandler.CurrentData.Get <InventoryItem>();
            var    currentInventoryData = oldItem.Get <InventoryItem>();

            if (dragInventoryData == null || currentInventoryData == null)
            {
                RejectDrag();
                return;
            }
            if (dragInventoryData.Inventory == Player.MainInventory &&
                currentInventoryData.Inventory == Player.MainInventory)
            {
                if (Player.MainInventory.TrySwap(dragInventoryData.Index, currentInventoryData.Index))
                {
                    UIDragDropHandler.Take();
                    Player.MainInventory.ContainerChanged();
                    return;
                }
            }
            if (Player.MainInventory.TryReplace(UIDragDropHandler.CurrentData, currentInventoryData.Index))
            {
                UIDragDropHandler.Take();
                UIDragDropHandler.SetItem(oldItem);
                Player.MainInventory.ContainerChanged();
            }
            else
            {
                RejectDrag();
                Player.MainInventory.TryAdd(oldItem);
            }
        }
Esempio n. 10
0
        protected virtual void TryDrop()
        {
            var dragInventoryData = UIDragDropHandler.CurrentData.Get <InventoryItem>();

            if (dragInventoryData.Inventory == Player.MainInventory && Player.MainInventory.TryChangeIndex(dragInventoryData.Index, Index, dragInventoryData))
            {
                Player.MainInventory.ContainerChanged();
                UIDragDropHandler.Take();
                return;
            }
            if (Player.MainInventory.Add(UIDragDropHandler.CurrentData, Index))
            {
                UIDragDropHandler.Take();
            }
            else
            {
                if (PlayAudio)
                {
                    AudioPool.PlayClip(StringConst.AudioDefaultItemReturn, transform.position, 0, AudioVolume);
                }
                UIDragDropHandler.Return();
            }
        }