示例#1
0
    private void RefreshEquipment()
    {
        // Delete any existing child objects that aren't the placeholder image
        foreach (EquipmentSlot slot in equipmentSlots)
        {
            List <Transform> children = new List <Transform>(slot.GetComponentsInChildren <Transform>(true));
            children.Remove(slot.transform);

            foreach (Transform child in children)
            {
                if (!child.CompareTag("DontDestroy"))
                {
                    Destroy(child.gameObject);
                }
                else
                {
                    child.gameObject.SetActive(true);
                }
            }
        }

        // Creates new UI items and assigns the relevant equipment from the player equipment list
        foreach (Equipment equipment in EquipmentManager.instance.playerEquipment)
        {
            EquipmentSlot thisSlot = null;

            foreach (EquipmentSlot slot in equipmentSlots)
            {
                if (equipment.EquipmentType == slot.slotType)
                {
                    thisSlot = slot;
                    break;
                }
            }

            if (thisSlot != null)
            {
                thisSlot.placeholderImage.SetActive(false);
                GameObject          uiItem      = Instantiate(equipmentItemPrefab, thisSlot.transform);
                AssociatedEquipment uiEquipment = uiItem.GetComponent <AssociatedEquipment>();
                uiEquipment.equipment = equipment;
                Image icon = uiItem.transform.GetChild(0).GetComponent <Image>();
                icon.sprite = uiEquipment.equipment.equipmentProfile.equipmentIcon;
                uiItem.tag  = "EquipmentSlot";
            }
            else
            {
                Debug.LogError("Error in allocating an equipment UI item to an equipment slot.");
            }
        }

        EventManager.TriggerEvent("UpdateInventory");
        EquipmentManager.instance.RecalcEquipmentEffects();
    }
示例#2
0
    private void RefreshInventory()
    {
        //Debug.Log("Refreshing inventory");
        foreach (Transform child in itemsParent.transform)
        {
            Destroy(child.gameObject);
        }

        foreach (Equipment item in EquipmentManager.instance.playerInventory)
        {
            GameObject uiItem = Instantiate(equipmentItemPrefab, itemsParent.transform);
            uiItem.tag = "EquipmentItem";
            List <Image> images = new List <Image>(uiItem.GetComponentsInChildren <Image>());
            images[1].sprite = item.EquipmentIcon;

            AssociatedEquipment assEquipment = uiItem.GetComponent <AssociatedEquipment>();
            assEquipment.equipment = item;
        }
    }
示例#3
0
    public void OnDrop(PointerEventData data)
    {
        EventManager.TriggerEvent("UIRelease");
        AssociatedEquipment assEquip  = data.pointerDrag.GetComponent <AssociatedEquipment>();
        Equipment           equipment = assEquip.equipment;

        HangarController.instance.hangarUi.equipmentStatsModal.SetActive(false);

        if (equipment.isEquipped && !CompareTag("EquipmentSlot")) // If the item is equipped and icon has been dropped on inventory
        {
            EquipmentManager.instance.UnequipItem(equipment, true);
            Destroy(assEquip.gameObject);
        }
        else if (!equipment.isEquipped && CompareTag("EquipmentSlot")) // If the item is not equipped and icon has been dropped on equipment slot
        {
            EquipmentManager.instance.EquipItem(equipment);
            Destroy(assEquip.gameObject);
        }
    }