Пример #1
0
        public void OnItemDoubleClicked(ItemUISystem itemUI)
        {
            var isSpiritChoosed = Owner.PlayerInputSystem.ChoosedSpirit != null;

            if (itemUI.System.Data is Consumable item)
            {
                if (item.Type != ConsumableType.Essence)
                {
                    ApplyConsumable?.Invoke(new ConsumableEventArgs(Owner, itemUI));
                    RemoveItemFromPlayer(itemUI);
                    Destroy(itemUI.gameObject);
                    return;
                }
                else if (isSpiritChoosed && item.Type == ConsumableType.Essence)
                {
                    ApplyConsumable?.Invoke(new ConsumableEventArgs(Owner.PlayerInputSystem.ChoosedSpirit, itemUI));
                    RemoveItemFromPlayer(itemUI);
                    Destroy(itemUI.gameObject);
                    return;
                }
            }

            if (isSpiritChoosed)
            {
                if (itemUI.DraggedFrom == DraggedFrom.PlayerInventory)
                {
                    RemoveItemFromPlayer(itemUI);
                    MoveItemToSpirit?.Invoke(itemUI);
                }
            }
        }
Пример #2
0
        void AddItemToPlayer(ItemUISystem itemUI, int slotNumber)
        {
            ItemsUI.Add(itemUI);
            itemUI.DraggedFrom = DraggedFrom.PlayerInventory;
            itemUI.SlotNumber  = slotNumber;
            Slots[slotNumber].SetActive(false);
            isSlotEmpty[slotNumber] = false;

            ItemAddedToPlayer?.Invoke(itemUI);
        }
Пример #3
0
        void RemoveItemFromPlayer(ItemUISystem itemUI)
        {
            if (itemUI.DraggedFrom == DraggedFrom.PlayerInventory)
            {
                isSlotEmpty[itemUI.SlotNumber] = true;
                Slots[itemUI.SlotNumber].SetActive(true);
                ItemsUI.Remove(itemUI);

                ItemRemovedFromPlayer?.Invoke(itemUI);
            }
        }