示例#1
0
    public EquipmentSlot currentlySelectedSlot;     // reference to the currently selected slot

    /// <summary>
    /// Responsible for equiping, equipable items.
    /// </summary>
    /// <param name="equipment">the item to equip</param>

    public void EquipItem(Equipment equipment)
    {
        switch (equipment.GetEquipmentType())
        {
        case EquipmentType.Weapon:
            if (EquipPrimary(equipment))
            {
                break;
            }
            if (EquipSecondary(equipment))
            {
                break;
            }

            ForceFirst(equipment);
            break;

        case EquipmentType.Shield:
            shield.EquipItem(equipment);
            break;

        case EquipmentType.Legs:
            legs.EquipItem(equipment);
            break;

        case EquipmentType.Torso:
            torso.EquipItem(equipment);
            break;

        case EquipmentType.Head:
            head.EquipItem(equipment);
            break;
        }
    }
    private void LoadingEquipment()
    {
        BinaryFormatter bf           = new BinaryFormatter();
        string          equipContent = string.Empty;

        if (File.Exists(Application.dataPath + "/Data/" + playerMotor.Name + "/Equipment/PlayerEquipment.txt"))
        {
            FileStream file = File.Open(Application.dataPath + "/Data/" + playerMotor.Name + "/Equipment/PlayerEquipment.txt", FileMode.Open);
            equipContent = (string)bf.Deserialize(file);
            file.Close();
        }

        string[] content = equipContent.Split(';');

        for (int i = 0; i < content.Length - 1; i++)
        {
            string[] subContent = content[i].Split('-');

            string Location = subContent[1];
            string Name     = subContent[2];

            foreach (Transform equipSlot in EquipmentButtons)
            {
                EquipmentSlot tempSlot = equipSlot.GetComponent <EquipmentSlot>();

                if (tempSlot.name == Location)
                {
                    for (int j = 0; j < EquipmentItems.Count; j++)
                    {
                        if (EquipmentItems[j].Name == Name)
                        {
                            tempSlot.EquipItem(EquipmentItems[j]);
                        }
                    }
                }
            }
        }

        if (PlayerMenuInput.instance != null)
        {
            PlayerMenuInput.instance.DeactivateObjects();
        }
    }
    public void DragDropFromEquiped(InventorySlot_Helper helper)
    {
        //Debug.Log(helper.item.Name);
        //

        if (!equipment.inventory.inventoryFull)// && helper.item.ItemType != eSlot.equipedItem.ItemType)
        {
            if (helper.item.ItemType == eSlot.equipedItem.ItemType)
            {
                eSlot.EquipItem(helper.item);
                equipment.inventory.toolTip.Deactivate();
                equipment.inventory.toolTip.Activate(eSlot.equipedItem);
            }
            else
            {
                equipment.inventory.toolTip.Deactivate();
                eSlot.SetEquiped(false);
            }
        }
    }