示例#1
0
    public void SlotClick()
    {
        EquipmentSlot slot = EventSystem.current.currentSelectedGameObject.GetComponent <EquipmentSlot>();

        if (slot.GetCount() > 0 && !mouseImage.enabled)
        {
            Texture2D tex = ItemStore.getItem(slot.GetId()).texture;
            mouseImage.sprite  = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), Vector2.zero);
            mouseImage.enabled = true;
            mouseId            = slot.GetId();
            mouseCount         = slot.GetCount();
            mouseText.text     = mouseCount > 1 ? mouseCount.ToString() : "";
            mouseSelected      = selectedSlot == slot;
            slot.SetCount(0);
            slot.Deselect();
        }
        else if (mouseImage.enabled && slot.GetCount() == 0)
        {
            mouseImage.enabled = false;
            slot.SetId(mouseId);
            slot.SetCount(mouseCount);
            mouseText.text = "";

            if (mouseSelected)
            {
                slot.Select();
            }
        }
    }
示例#2
0
 void SaveEquipment()
 {
     for (int i = 0; i < equipmentSlots.Length; i++)
     {
         EquipmentSlot slot = equipmentSlots[i];
         PlayerPrefs.SetInt("eqcount" + i, slot.GetCount());
         PlayerPrefs.SetInt("eqid" + i, slot.GetId());
     }
 }
示例#3
0
    public void UpdateEquipment()
    {
        Inventory inventory = _world.playerObj.GetComponent <InventoryController>().inventory;

        for (int i = 0; i < inventory.items.Count; i++)
        {
            bool haveSlot = false;

            for (int j = 0; j < equipmentSlots.Length; j++)
            {
                EquipmentSlot slot = equipmentSlots[j];

                if (inventory.items[i].item.id == slot.GetId() && slot.GetCount() > 0)
                {
                    haveSlot = true;
                    slot.SetCount(inventory.items[i].count);

                    if (inventory.activeIndex == i)
                    {
                        slot.Select();
                    }

                    break;
                }
            }

            if (!haveSlot)
            {
                for (int j = 0; j < equipmentSlots.Length; j++)
                {
                    EquipmentSlot slot = equipmentSlots[j];

                    if (slot.GetCount() == 0)
                    {
                        slot.SetId(inventory.items[i].item.id);
                        slot.SetCount(inventory.items[i].count);

                        if (inventory.activeIndex == i)
                        {
                            slot.Select();
                        }

                        break;
                    }
                }
            }
        }

        for (int i = 0; i < equipmentSlots.Length; i++)
        {
            EquipmentSlot slot      = equipmentSlots[i];
            bool          resetSlot = true;

            for (int j = 0; j < inventory.items.Count; j++)
            {
                if (inventory.items[j].item.id == slot.GetId() && inventory.items[j].count > 0 && slot.GetCount() > 0)
                {
                    resetSlot = false;
                    break;
                }
            }

            if (resetSlot)
            {
                slot.SetCount(0);
                slot.Deselect();
            }
        }
    }