Exemplo n.º 1
0
        public void ToggleInspectEquipment(ItemIconScript itemIcon)
        {
            referenceToOriginalIcon = itemIcon;
            Item item = itemIcon.GetItem();

            inspectionON = inspectionPoolManager.gameObject.activeInHierarchy ? false : true;
            if (item == null)
            {
                return;
            }
            Vector3 centerPosition = inspectionPoolManager.transform.position;

            itemBeingInspectedIcon = inspectionPoolManager.transform.GetChild(1).GetComponent <ItemIconScript>();
            Item itemBeingInspected = itemBeingInspectedIcon.GetItem();

            if (itemBeingInspected != null && inspectionPoolManager.gameObject.activeInHierarchy)
            {
                inspectionON = itemBeingInspected != item;
            }


            UpdateInspectionUI();

            inspectionPoolManager.gameObject.SetActive(inspectionON);
            equipmentPoolManager.gameObject.SetActive(!inspectionON);
        }
Exemplo n.º 2
0
        void UpdateUI()
        {
            equipmentPoolManager.transform.GetChild(0).GetComponent <ItemIconScript>().StoreItem(_playerInventory.GetWeaponFromHolster(0));
            equipmentPoolManager.transform.GetChild(1).GetComponent <ItemIconScript>().StoreItem(_playerInventory.GetWeaponFromHolster(1));
            equipmentPoolManager.transform.GetChild(2).GetComponent <ItemIconScript>().StoreItem(_playerInventory.GetWeaponFromHolster(2));
            equipmentPoolManager.transform.GetChild(3).GetComponent <ItemIconScript>().StoreItem(_playerInventory.GetWeaponFromHolster(3));
            equipmentPoolManager.transform.GetChild(4).GetComponent <ItemIconScript>().StoreItem(_playerInventory.GetCurrentSheild());

            equipmentPoolManager.transform.GetChild(0).GetComponent <ItemIconScript>().emptyText = "WEAPON SLOT 1";
            equipmentPoolManager.transform.GetChild(1).GetComponent <ItemIconScript>().emptyText = "WEAPON SLOT 2";
            equipmentPoolManager.transform.GetChild(2).GetComponent <ItemIconScript>().emptyText = "WEAPON SLOT 3";
            equipmentPoolManager.transform.GetChild(3).GetComponent <ItemIconScript>().emptyText = "WEAPON SLOT 4";
            equipmentPoolManager.transform.GetChild(4).GetComponent <ItemIconScript>().emptyText = "SHEILD SLOT";


            for (int i = 0; i < inventoryPoolManager.transform.childCount; i++)
            {
                ItemIconScript icon = inventoryPoolManager.transform.GetChild(i).GetComponent <ItemIconScript>();
                icon.StoreItem(null);
                icon.emptyText = "NONE";
            }

            iconCount = 0;

            SetItemsIntoIcons(_playerInventory.weaponsInventoryObj);

            SetItemsIntoIcons(_playerInventory.sheildInventoryObj);

            SetItemsIntoIcons(_playerInventory.weaponModInventoryObj);

            SetItemsIntoIcons(_playerInventory.sheildModInventoryObj);

            SetItemsIntoIcons(_playerInventory.itemInventoryObj);
        }
Exemplo n.º 3
0
        void SetItemsIntoIcons(GameObject inventory)
        {
            for (int i = 0; i < inventory.transform.childCount; i++)
            {
                Item           item = inventory.transform.GetChild(i).GetComponent <Item>();
                ItemIconScript icon = inventoryPoolManager.transform.GetChild(iconCount).GetComponent <ItemIconScript>();

                icon.StoreItem(item);
                iconCount++;
            }
        }
Exemplo n.º 4
0
        public void SetSpacing()
        {
            Vector3 rectPosition = equipmentPoolManager.transform.position;

            equipmentPoolManager.transform.GetChild(0).GetComponent <ItemIconScript>().SetLastPosition(rectPosition);
            equipmentPoolManager.transform.GetChild(1).GetComponent <ItemIconScript>().SetLastPosition(rectPosition + (weaponSpacing * 1));
            equipmentPoolManager.transform.GetChild(2).GetComponent <ItemIconScript>().SetLastPosition(rectPosition + (weaponSpacing * 2));
            equipmentPoolManager.transform.GetChild(3).GetComponent <ItemIconScript>().SetLastPosition(rectPosition + (weaponSpacing * 3));
            equipmentPoolManager.transform.GetChild(4).GetComponent <ItemIconScript>().SetLastPosition(rectPosition + (weaponSpacing * 3) + sheildSpacing);

            for (int i = 0; i < inventoryPoolManager.transform.childCount; i++)
            {
                ItemIconScript obj = inventoryPoolManager.transform.GetChild(i).gameObject.GetComponent <ItemIconScript>();
                obj.SetLastPosition(inventoryPoolManager.GetComponent <RectTransform>().position + (inventorySpacing * i));
            }
        }
Exemplo n.º 5
0
        void UpdateInspectionUI()
        {
            Item item = referenceToOriginalIcon.GetItem();

            if (item == null)
            {
                return;
            }
            Vector3 centerPosition = inspectionPoolManager.transform.position;


            itemBeingInspectedIcon.SetLastPosition(centerPosition);
            itemBeingInspectedIcon.StoreItem(item);

            for (int i = 2; i < inspectionPoolManager.transform.childCount; i++)
            {
                ItemIconScript modIcon = inspectionPoolManager.transform.GetChild(i).GetComponent <ItemIconScript>();
                modIcon.StoreItem(null);
                int slotNum = i - 2;
                if (slotNum < item.numOfModSlots)
                {
                    ModBase mod = item.itemMods[slotNum];
                    if (mod != null)
                    {
                        modIcon.StoreItem(mod);
                    }
                    else
                    {
                        modIcon.emptyText = "Mod Component " + (slotNum + 1);
                    }

                    Vector3 dirToNewPos    = Quaternion.Euler(0, 0, 360.0f * ((float)slotNum / (float)item.numOfModSlots)) * (Vector3.up * 75);
                    Vector3 positionOffset = new Vector3(0, -15, 0);
                    modIcon.SetLastPosition(centerPosition + positionOffset + dirToNewPos);
                }
                else
                {
                    modIcon.SetLastPosition(new Vector3(0, 9999, 0));
                }
            }
        }
Exemplo n.º 6
0
        // Update is called once per frame
        void Update()
        {
            if (initFinished)
            {
                if (ItemIconScript.dragEnded)
                {
                    Item itemToDrop = ItemIconScript.swap1.GetItem();

                    if (dropItem && itemToDrop != null)
                    {
                        ItemIconScript itemIconToDrop = ItemIconScript.swap1;
                        ItemIconScript modIcon        = ItemIconScript.swap1;
                        if (inspectionON)
                        {
                            itemIconToDrop = referenceToOriginalIcon;
                        }
                        bool isAMod = false;
                        bool notUnderInventoryObj = itemIconToDrop.GetParent() != inventoryPoolManager.gameObject;
                        if (!notUnderInventoryObj && inspectionON)
                        {
                            isAMod = ItemIconScript.swap1.GetItem().itemType == ItemType.Mod;
                        }
                        if (notUnderInventoryObj || isAMod)
                        {
                            switch (itemToDrop.itemType)
                            {
                            case ItemType.Weapon:
                            {
                                _playerInventory.DropEquippedWeapon(itemIconToDrop.transform.GetSiblingIndex());
                                TurnOffInspection();
                                break;
                            }

                            case ItemType.Sheild:
                            {
                                _playerInventory.DropCurrentlyEquippedSheild();
                                TurnOffInspection();
                                break;
                            }

                            case ItemType.Mod:
                            {
                                _playerInventory.DropSpecificModOnItem(itemIconToDrop.GetItem(), modIcon.transform.GetSiblingIndex() - 2);
                                break;
                            }
                            }
                        }
                        else
                        {
                            if (inspectionON && (ItemIconScript.swap1 == referenceToOriginalIcon || ItemIconScript.swap1 == itemBeingInspectedIcon))
                            {
                                TurnOffInspection();
                            }
                            _playerInventory.DropItem(itemToDrop);
                        }
                        UpdateUI();
                        if (inspectionON)
                        {
                            UpdateInspectionUI();
                        }

                        dropItem = false;
                    }
                    ItemIconScript.dragEnded = false;
                }
                if (ItemIconScript.inspect)
                {
                    if (ItemIconScript.swap1.GetItem() != null && ItemIconScript.swap2.GetItem() != null)
                    {
                        if (inspectionON)
                        {
                            GameObject.FindGameObjectWithTag("UIEventSystem").GetComponent <EventSystem>().SetSelectedGameObject(referenceToOriginalIcon.gameObject);
                        }

                        ToggleInspectEquipment(ItemIconScript.swap1);

                        if (inspectionON)
                        {
                            GameObject.FindGameObjectWithTag("UIEventSystem").GetComponent <EventSystem>().SetSelectedGameObject(itemBeingInspectedIcon.gameObject);
                        }
                    }

                    ItemIconScript.swap1 = null;
                    ItemIconScript.swap2 = null;

                    ItemIconScript.rdyToSwap = false;
                    ItemIconScript.inspect   = false;
                }
                if (ItemIconScript.rdyToSwap)
                {
                    Item item1 = ItemIconScript.swap1.GetItem();
                    Item item2 = ItemIconScript.swap2.GetItem();

                    bool slotCheckOk = true;

                    if (ItemIconScript.swap1.GetParent() == inventoryPoolManager.gameObject && ItemIconScript.swap2.GetParent() == inventoryPoolManager.gameObject)
                    {
                        slotCheckOk = false;
                    }

                    bool isAnOpenSlot   = item1 == null || item2 == null;
                    bool isSameItemType = false;


                    if (!isAnOpenSlot)
                    {
                        isSameItemType = item1.itemType == item2.itemType;

                        if (inspectionON && (itemBeingInspectedIcon == ItemIconScript.swap2 || itemBeingInspectedIcon.GetItem() == ItemIconScript.swap2.GetItem()))
                        {
                            if (itemBeingInspectedIcon.GetItem() != item1)
                            {
                                ToggleInspectEquipment(ItemIconScript.swap1);
                            }
                            slotCheckOk = false;
                        }

                        if (isSameItemType)
                        {
                            if (item1.itemType == ItemType.Mod)
                            {
                                ModBase mod1 = item1.GetComponent <ModBase>();
                                ModBase mod2 = item2.GetComponent <ModBase>();
                                isSameItemType = mod1.modType == mod2.modType;
                            }
                        }
                        else if (item1.itemType == ItemType.Mod || item2.itemType == ItemType.Mod)
                        {
                            Item isAMod  = item1.itemType == ItemType.Mod ? item1 : item2;
                            Item notAMod = item1.itemType == ItemType.Mod ? item2 : item1;

                            int hasModIndex = notAMod.HasMod((ModBase)isAMod);
                            if (hasModIndex == -1)
                            {
                                if ((int)notAMod.itemType == (int)isAMod.GetComponent <ModBase>().modType)
                                {
                                    _playerInventory.QuickEquipSpecificMod(notAMod, (ModBase)isAMod);
                                }
                            }
                        }
                    }
                    else if (item1 != null || item2 != null)
                    {
                        if (ItemIconScript.swap1.GetParent() == equipmentPoolManager.gameObject && ItemIconScript.swap2.GetParent() == equipmentPoolManager.gameObject)
                        {
                            if (ItemIconScript.swap1.transform.GetSiblingIndex() > 3 || ItemIconScript.swap2.transform.GetSiblingIndex() > 3)
                            {
                                slotCheckOk = false;
                            }
                        }
                        else if (slotCheckOk)
                        {
                            if (inspectionON)
                            {
                                ItemIconScript onInspectionSideIcon = ItemIconScript.swap1.GetParent() == inspectionPoolManager.gameObject ? ItemIconScript.swap1 : ItemIconScript.swap2;
                                ItemIconScript hasItemIcon1         = item1 == null ? ItemIconScript.swap2 : ItemIconScript.swap1;
                                if (onInspectionSideIcon != hasItemIcon1)
                                {
                                    if (hasItemIcon1.GetItem().itemType != ItemType.Mod)
                                    {
                                        slotCheckOk = false;
                                    }
                                    else if ((int)itemBeingInspectedIcon.GetItem().itemType != (int)hasItemIcon1.GetItem().GetComponent <ModBase>().modType)
                                    {
                                        slotCheckOk = false;
                                    }
                                }
                            }
                            else
                            {
                                ItemIconScript onEquipmentSideIcon = ItemIconScript.swap1.GetParent() == equipmentPoolManager.gameObject ? ItemIconScript.swap1 : ItemIconScript.swap2;
                                ItemIconScript hasItemIcon         = item1 == null ? ItemIconScript.swap2 : ItemIconScript.swap1;
                                //ItemIconScript doestHaveItemIcon = item1 == null ? ItemIconScript.swap1 : ItemIconScript.swap2;

                                if (onEquipmentSideIcon != hasItemIcon)
                                {
                                    switch (hasItemIcon.GetItem().itemType)
                                    {
                                    case ItemType.Weapon:
                                    {
                                        if (onEquipmentSideIcon.transform.GetSiblingIndex() > 3)
                                        {
                                            slotCheckOk = false;
                                        }
                                        break;
                                    }

                                    case ItemType.Sheild:
                                    {
                                        if (onEquipmentSideIcon.transform.GetSiblingIndex() < 4)
                                        {
                                            slotCheckOk = false;
                                        }
                                        break;
                                    }

                                    default:
                                    {
                                        slotCheckOk = false;
                                        break;
                                    }
                                    }
                                }
                            }
                        }
                    }

                    if (slotCheckOk && (isSameItemType || isAnOpenSlot))
                    {
                        int icon1Index = ItemIconScript.swap1.transform.GetSiblingIndex();
                        int icon2Index = ItemIconScript.swap2.transform.GetSiblingIndex();

                        Transform parent = ItemIconScript.swap1.transform.parent;
                        ItemIconScript.swap1.transform.SetParent(ItemIconScript.swap2.transform.parent);
                        ItemIconScript.swap2.transform.SetParent(parent);

                        ItemIconScript.swap1.transform.SetSiblingIndex(icon2Index);
                        ItemIconScript.swap2.transform.SetSiblingIndex(icon1Index);
                        UpdatePlayerInventory();
                        ItemIconScript.SwapItemIcons();
                    }
                    else
                    {
                        ItemIconScript.WipeSwap();
                    }
                    UpdateUI();
                    if (inspectionON)
                    {
                        UpdateInspectionUI();
                    }
                }
            }
        }