Inheritance: MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler, IBeginDragHandler, IDragHandler, IEndDragHandler
Exemplo n.º 1
0
 public static void DropItem(AttachedItem attachedItem)
 {
     if(OnDrop != null)
     {
         OnDrop(attachedItem);
     }
 }
Exemplo n.º 2
0
 public static void ItemLeftClick(AttachedItem attachedItem)
 {
     if(OnLeftClick != null)
     {
         OnLeftClick(attachedItem);
     }
 }
Exemplo n.º 3
0
 public static void EquipItem(AttachedItem attachedItem)
 {
     if (OnEquip != null)
     {
         OnEquip(attachedItem);
     }
 }
Exemplo n.º 4
0
    public void Split(AttachedItem itemFromSlot)
    {
        Slider.onValueChanged.RemoveAllListeners();
        InputField.onValueChanged.RemoveAllListeners();
        gameObject.SetActive(true);
        GameObject tempItemGameObject = Instantiate(itemFromSlot.gameObject);
        AttachedItem tempItem = tempItemGameObject.GetComponent<AttachedItem>();

        tempItemGameObject.transform.SetParent(Slot.transform, false);
        //tempItemGameObject.GetComponent<RectTransform>().sizeDelta = Vector2.zero;
        //tempItemGameObject.GetComponent<RectTransform>().localScale = Vector3.one;
        tempItemGameObject.name = itemFromSlot.Item.Name;
        tempItemGameObject.transform.localPosition = Vector2.zero;
        Slider.value = 1;
        Slider.minValue = 1;
        Slider.maxValue = itemFromSlot.StackSize - 1;
        tempItem.StackSize = (int)Slider.minValue;
        tempItem.CanvasGroup.interactable = false;
        tempItem.CanvasGroup.blocksRaycasts = false;
        itemFromSlot.StackSize = (int)Slider.maxValue;
        InventoryManager.UpdateItemStack(tempItem);
        InventoryManager.UpdateItemStack(itemFromSlot);

        Slider.onValueChanged.AddListener(delegate { ValueToSplit(itemFromSlot, tempItem); });
        //SplitPanel.InputField.onValueChanged.AddListener(delegate { ValueToSplit(tempItem); });
        AcceptButton.onClick.RemoveAllListeners();
        AcceptButton.onClick.AddListener(delegate { Accept(itemFromSlot, tempItem); });
        CancelButton.onClick.RemoveAllListeners();
        CancelButton.onClick.AddListener(delegate {Cancel(itemFromSlot, tempItem); });
    }
Exemplo n.º 5
0
 public static void ItemRightClick(AttachedItem attachedItem)
 {
     if (OnRightClick != null)
     {
         OnRightClick(attachedItem);
     }
 }
Exemplo n.º 6
0
 public static void SplitItem(AttachedItem attachedItem)
 {
     if (OnSplit != null)
     {
        OnSplit(attachedItem);
     }
 }
Exemplo n.º 7
0
 public static void ConsumeItem(AttachedItem attachedItem)
 {
     if (OnConsume != null)
     {
         OnConsume(attachedItem);
     }
 }
Exemplo n.º 8
0
 public static void PickUpItem(AttachedItem attachedItem)
 {
     if (OnPickUp != null)
     {
         OnPickUp(attachedItem);
     }
 }
Exemplo n.º 9
0
 public void Accept(AttachedItem itemFromSlot, AttachedItem tempItem)
 {
     tempItem.CanvasGroup.interactable = true;
     tempItem.CanvasGroup.blocksRaycasts = true;
     Inventory.CloneItemIntoSlot(tempItem);
     Inventory.UpdateItemList();
     Deactivate(itemFromSlot, tempItem);
 }
Exemplo n.º 10
0
 public void Deactivate(AttachedItem itemFromSlot, AttachedItem tempItem)
 {
     Destroy(tempItem.gameObject);
     InventoryManager.UpdateItemStack(itemFromSlot);
     if (InventoryManager.ItemInfoPanel != null)
     {
         InventoryManager.ItemInfoPanel.ActivatePanel(itemFromSlot);
     }
     itemFromSlot = null;
     //Reset slider values
     gameObject.SetActive(false);
 }
    void EquipItem(AttachedItem attachedItem)
    {
        PlayUseSound(attachedItem);

        for (int i = 0; i < Equipment.Slots.Count; i++)
        {
            if (Equipment.Slots[i].GetComponent<EquipmentSlot>().EquipmentType.Equals(attachedItem.Item.ItemType) || attachedItem.Item.ItemType == ItemType.Socket)
            {
                if (Equipment.Slots[i].transform.childCount == 0)
                {
                    attachedItem.gameObject.transform.SetParent(Equipment.Slots[i].transform);
                    attachedItem.gameObject.GetComponent<RectTransform>().localPosition = Vector3.zero;

                    //attachedItem.CurrentSlot = Equipment.Slots[i].transform;

                    Inventory.UpdateItemList();
                    if (attachedItem.Duplicate != null)
                    {
                        Destroy(attachedItem.Duplicate);
                    }
                    break;

                }
                else if (Equipment.Slots[i].transform.childCount != 0)
                {
                    GameObject equippedItemGameObject = Equipment.Slots[i].transform.GetChild(0).gameObject;
                    AttachedItem equippedItem = equippedItemGameObject.GetComponent<AttachedItem>();

                    UnequipItem(equippedItem);

                    if (attachedItem != equippedItem)
                    {
                        EquipItem(attachedItem);
                    }

                }
            }
        }
    }
    void ConsumeItem(AttachedItem attachedItem)
    {
        PlayUseSound(attachedItem);

        Item duplicateItem = null;

        if (attachedItem.Duplicate != null)
        {
            duplicateItem = attachedItem.Duplicate.GetComponent<AttachedItem>().Item;
        }
        attachedItem.StackSize--;
        InventoryManager.UpdateItemStack(attachedItem);
        if (duplicateItem != null)
        {
            attachedItem.Duplicate.GetComponent<AttachedItem>().StackSize--;
            InventoryManager.UpdateItemStack(attachedItem);
            if (attachedItem.StackSize <= 0)
            {
                if (attachedItem.Tooltip != null)
                {
                    attachedItem.Tooltip.DeactivateTooltip();
                }
                Inventory.RemoveItem(attachedItem.Item);
                Destroy(attachedItem.Duplicate);
            }
        }
        if (attachedItem.StackSize <= 0)
        {
            if (attachedItem.Tooltip != null)
            {
                attachedItem.Tooltip.DeactivateTooltip();
            }
            if (attachedItem.ItemInfoPanel != null)
            {
                attachedItem.ItemInfoPanel.DeactivatePanel();
            }
            Inventory.RemoveItemAndGameObject(attachedItem);
        }
    }
Exemplo n.º 13
0
    public void OnDrop(PointerEventData data)
    {
        if(AttachedItem.DraggingItem != null)
        {
            DraggingItemGameObject = AttachedItem.DraggingItem;
            DraggingItem = DraggingItemGameObject.GetComponent<AttachedItem>();
            DraggingItem.CurrentSlot = gameObject.transform;

            bool addItemIntoSlot = InventoryManager.AddItemIntoSlot(this);
            if(addItemIntoSlot)
            {
                DraggingItemGameObject.transform.SetParent(gameObject.transform);
                DraggingItemGameObject.GetComponent<RectTransform>().localPosition = Vector2.zero;
                Debug.Log("addItemIntoSlot: " + addItemIntoSlot);
            }
            else
            {
                DraggingItemGameObject.transform.SetParent(DraggingItem.LastSlot.transform);
                DraggingItemGameObject.GetComponent<RectTransform>().localPosition = Vector2.zero;
                Debug.Log("addItemIntoSlot: " + addItemIntoSlot);
            }
        }
    }
Exemplo n.º 14
0
 void DropItem(AttachedItem attachedItem)
 {
     GameObject dropItem = (GameObject)Instantiate(attachedItem.Item.DroppedItem);
     if (attachedItem.ItemInfoPanel != null)
     {
         attachedItem.ItemInfoPanel.DeactivatePanel();
     }
     if (dropItem.GetComponent<SpriteRenderer>().sprite == null)
     {
         dropItem.GetComponent<SpriteRenderer>().sprite = attachedItem.Item.Icon;
     }
     if (attachedItem == InventoryManager.SelectedItem && InventoryManager.SplitPanel != null)
     {
         InventoryManager.SplitPanel.gameObject.SetActive(false);
     }
     dropItem.AddComponent<PickUpItem>();
     dropItem.GetComponent<PickUpItem>().AttachedItem = attachedItem;
     dropItem.AddComponent<BoxCollider2D>();
     dropItem.GetComponent<BoxCollider2D>().isTrigger = true;
     //dropItem.transform.localPosition = GameObject.FindGameObjectWithTag("Player").transform.localPosition;
     Inventory.UpdateItemList();
     Destroy(attachedItem.gameObject);
     Debug.Log("Предмет выброшен");
 }
Exemplo n.º 15
0
 //Update stack for specific item
 public void UpdateItemStack(AttachedItem attachedItem)
 {
     attachedItem.StackSizeText = attachedItem.transform.GetComponentInChildren<Text>();
     if (attachedItem.Item.MaxStackSize > 1)
     {
         attachedItem.StackSizeText.text = attachedItem.StackSize.ToString();
         attachedItem.StackSizeText.enabled = true;
         if (attachedItem.Duplicate != null)
         {
             attachedItem.Duplicate.GetComponent<AttachedItem>().StackSizeText = attachedItem.Duplicate.GetComponentInChildren<Text>();
             attachedItem.Duplicate.GetComponent<AttachedItem>().StackSizeText.text = attachedItem.StackSize.ToString();
             attachedItem.Duplicate.GetComponent<AttachedItem>().StackSizeText.enabled = true;
         }
     }
     else
     {
         attachedItem.StackSizeText.enabled = false;
         if (attachedItem.Duplicate != null)
         {
             attachedItem.Duplicate.GetComponent<AttachedItem>().StackSizeText.enabled = false;
         }
     }
     if (attachedItem.StackSize <= 0)
     {
         if (attachedItem.Duplicate != null)
         {
             Destroy(attachedItem.Duplicate);
         }
         Destroy(attachedItem.gameObject);
     }
 }
Exemplo n.º 16
0
 public void Split(AttachedItem attachedItem)
 {
     SplitPanel.Split(attachedItem);
 }
 void DropItem(AttachedItem attachedItem)
 {
     //
 }
 void UnequipItem(AttachedItem equippedItem)
 {
     if (Inventory.CheckItemFit())
     {
         Inventory.MoveItemIntoSlot(equippedItem);
         Inventory.UpdateItemList();
     }
     else
     {
         return;
     }
 }
    void ValueToSplit(AttachedItem itemFromSlot, AttachedItem tempItem)
    {
        tempItem.StackSize = (int)SplitPanel.Slider.value;

        itemFromSlot.StackSize = Mathf.Abs(tempItem.StackSize - (int)SplitPanel.Slider.maxValue - 1);
        //SplitPanel.InputField.text = SplitPanel.Slider.value.ToString();
        /*if (int.Parse(SplitPanel.InputField.text) >= SplitPanel.Slider.minValue && int.Parse(SplitPanel.InputField.text) <= SplitPanel.Slider.maxValue)
        {
            SplitPanel.Slider.value = float.Parse(SplitPanel.InputField.text);
        }*/
        InventoryManager.UpdateItemStack(tempItem);
        InventoryManager.UpdateItemStack(itemFromSlot);
    }
 void PlayUseSound(AttachedItem attachedItem)
 {
     if (attachedItem.Item.UseSound != null)
     {
         InventoryManager.GetComponent<AudioSource>().PlayOneShot(attachedItem.Item.UseSound);
     }
 }
    void SplitItem(AttachedItem attachedItem)
    {
        SplitPanel.Slider.onValueChanged.RemoveAllListeners();
        SplitPanel.InputField.onValueChanged.RemoveAllListeners();
        SplitPanel.gameObject.SetActive(true);
        GameObject tempItemGameObject = Instantiate(attachedItem.gameObject);
        AttachedItem tempItem = tempItemGameObject.GetComponent<AttachedItem>();

        tempItemGameObject.transform.SetParent(SplitPanel.Slot.transform);
        tempItemGameObject.name = attachedItem.Item.Name;
        tempItemGameObject.transform.localPosition = Vector2.zero;

        SplitPanel.Slider.minValue = 1;
        SplitPanel.Slider.maxValue = attachedItem.StackSize - 1;
        tempItem.StackSize = (int)SplitPanel.Slider.minValue;
        attachedItem.StackSize = (int)SplitPanel.Slider.maxValue;
        InventoryManager.UpdateItemStack(tempItem);
        InventoryManager.UpdateItemStack(attachedItem);

        SplitPanel.Slider.onValueChanged.AddListener(delegate { ValueToSplit(attachedItem, tempItem); });
        //SplitPanel.InputField.onValueChanged.AddListener(delegate { ValueToSplit(tempItem); });
        SplitPanel.CancelButton.onClick.RemoveAllListeners();
        SplitPanel.CancelButton.onClick.AddListener(delegate { SplitPanel.Cancel(attachedItem, tempItem); });
    }
 void ItemRightClick(AttachedItem attachedItem)
 {
 }
 void PickUpItem(AttachedItem attachedItem)
 {
 }
Exemplo n.º 24
0
    ///<summary>
    ///Удаляет Item из списка ItemsInInventory вместе с игровым объектом
    ///</summary>
    public void RemoveItemAndGameObject(AttachedItem attachedItem)
    {
        for (int i = 0; i < ItemsInInventory.Count; i++)
        {
            if (attachedItem == ItemsInInventory[i])
            {
                ItemsInInventory.RemoveAt(i);
            }
        }

        for(int k = 0; k < Slots.Count; k++)
        {
            if(Slots[k].gameObject.transform.childCount != 0)
            {
                GameObject tempItemGameObject = Slots[k].gameObject.transform.GetChild(0).gameObject;
                AttachedItem tempAttachedItem = tempItemGameObject.GetComponent<AttachedItem>();
                if(tempAttachedItem == attachedItem)
                {
                    Destroy(tempItemGameObject);
                    break;
                }
            }
        }
    }
Exemplo n.º 25
0
 public void Unequip(AttachedItem attachedItem)
 {
     InventoryEvents.UnequipItem(attachedItem);
     ItemInfoPanel.ActivatePanel(attachedItem);
 }
Exemplo n.º 26
0
 public void MoveItemIntoSlot(AttachedItem attachedItem)
 {
     if (CheckItemFit())
     {
         for (int i = 0; i < Slots.Count; i++)
         {
             if(Slots[i].gameObject.transform.childCount == 0)
             {
                 attachedItem.gameObject.transform.SetParent(Slots[i].transform);
                 attachedItem.gameObject.transform.localPosition = Vector2.zero;
                 break;
             }
         }
     }
 }
Exemplo n.º 27
0
 public void CloneItemIntoSlot(AttachedItem attachedItem)
 {
     if (CheckItemFit())
     {
         GameObject tempItem = Instantiate(attachedItem.gameObject);
         tempItem.name = attachedItem.Item.Name;
         for (int i = 0; i < Slots.Count; i++)
         {
             if (Slots[i].gameObject.transform.childCount == 0)
             {
                 tempItem.transform.SetParent(Slots[i].transform, false);
                 tempItem.transform.localPosition = Vector2.zero;
                 //tempItem.GetComponent<RectTransform>().sizeDelta = Vector2.zero;
                 //tempItem.GetComponent<RectTransform>().localScale = Vector3.one;
                 break;
             }
         }
     }
 }
Exemplo n.º 28
0
 public void Cancel(AttachedItem itemFromSlot, AttachedItem tempItem)
 {
     itemFromSlot.StackSize = (int)Slider.maxValue + 1;
     Deactivate(itemFromSlot, tempItem);
 }
Exemplo n.º 29
0
 public void Consume(AttachedItem attachedItem)
 {
     InventoryEvents.ConsumeItem(attachedItem);
 }
Exemplo n.º 30
0
 public void Drop(AttachedItem attachedItem)
 {
     InventoryEvents.DropItem(attachedItem);
 }