Exemple #1
0
 private void EquipBoots(InventoryItem item, PlayerInventorySlot slot)
 {
     if (PlayerEquipment.instance.Boots != null)
     {
         if (PlayerEquipment.instance.Boots.Occupied) //IF WE ALREADY HAVE A WEAPON EQUIPPED!
         {
             //Temporarily hold the item that is equipped.
             InventoryItem tempItem = PlayerEquipment.instance.Boots.Item;
             //Reset the slot that held equipped item.
             PlayerEquipment.instance.Boots.Reset();
             //Equip the new item.
             PlayerEquipment.instance.EquipArmor(item);
             //Remove the newly equipped item from the inventory itemlist.
             itemList.Remove(item);
             //Place the former equipped item in the slot that was freed up.
             slot.Item = tempItem;
             //Add that item to the inventory itemlist.
             itemList.Add(tempItem);
             return; //All is done. No need to RemoveItem() since we just switched places with it.
         }
     }
     else
     {
         Debug.Log("Boots Slot Could Not Be Found");
     }
 }
Exemple #2
0
    public void RemoveTrashItem(ItemTrash trash)
    {
        PlayerInventorySlot fullSlot = inventorySlots.Find(p => p.item == trash);

        Destroy(fullSlot.item.item);
        fullSlot.item = null;
    }
Exemple #3
0
    private bool AddWeapon(InventoryItem item, string slotName)
    {
        PlayerInventorySlot theSlot = null;

        foreach (PlayerInventorySlot slot in inventoryWeaponSlots)
        {
            if (slot.name == slotName)
            {
                theSlot = slot;
                break;
            }
        }
        Debug.Log("The Slot: " + theSlot);
        if (theSlot == null)
        {
            return(false);
        }

        Debug.Log("The slot: " + theSlot.name + ", Item SlotName: " + item.slotname);

        theSlot.Item     = item;
        theSlot.Occupied = true;
        itemList.Add(item);
        Debug.Log("Item Added: " + item.itemName);
        return(true);
    }
Exemple #4
0
    public void AddTrashItem(ItemTrash trash)
    {
        PlayerInventorySlot openSlot = inventorySlots.FirstOrDefault <PlayerInventorySlot>(p => p.isFull == false);
        GameObject          newItem  = Instantiate <GameObject>(trash.item, openSlot.slot.transform, false);

        openSlot.item = newItem.GetComponent <ItemTrash>();
    }
Exemple #5
0
    /// <summary>
    /// TESTING
    /// </summary>
    /// <param name="inventory"></param>
    private static void InventoryPos(PlayerInventorySlot inventory)
    {
        Vector3 vector = Camera.main.ScreenToViewportPoint(ReticuleBehaviour.instance.Reticle.position);

        //Vector3 inventoryVector = Camera.main.ScreenToViewportPoint(inventory.transform.position);
        //itemInfo.transform.position = Camera.main.ViewportToScreenPoint(inventoryVector);

        if (vector.x < 0.5F)
        {
            //Debug.Log(vector + " Left Side");

            Vector3 addedPos = Camera.main.ScreenToViewportPoint(new Vector3(
                                                                     inventory.transform.position.x + (itemInfo.GetComponent <RectTransform>().rect.width / divideBy),
                                                                     inventory.transform.position.y + (itemInfo.GetComponent <RectTransform>().rect.height / divideBy),
                                                                     0));
            itemInfo.transform.position = Camera.main.ViewportToScreenPoint(addedPos) + (vector * distanceMultiplier);
        }
        else
        {
            //Debug.Log(vector + " Right Side");
            Vector3 addedPos = Camera.main.ScreenToViewportPoint(new Vector3(
                                                                     inventory.transform.position.x - (itemInfo.GetComponent <RectTransform>().rect.width / divideBy),
                                                                     inventory.transform.position.y + (itemInfo.GetComponent <RectTransform>().rect.height / divideBy),
                                                                     0));
            itemInfo.transform.position = Camera.main.ViewportToScreenPoint(addedPos) + (vector * distanceMultiplier);
        }
    }
    public void SetSelectedSlot(PlayerInventorySlot slot)
    {
        if (selectedSlot != null)
        {
            selectedSlot.Unselect();
        }

        selectedSlot = slot;
        selectedSlot.SetSelected();

        GetInfos(selectedSlot.InInventoryIndex);

        playerInventory.SetIndex(selectedSlot.InInventoryIndex);
    }
Exemple #7
0
 void InitializePlayerInventorySlots()
 {
     // Set first three slots as ability and fourth one as weapon
     for (int i = 0; i < 4; ++i)
     {
         PlayerInventorySlot playerInventorySlot = PlayerInventorySlots[i].GetComponent <PlayerInventorySlot>();
         if (i < 3)
         {
             playerInventorySlot.Type = ItemType.ability;
         }
         else
         {
             playerInventorySlot.Type = ItemType.weapon;
         }
         playerInventorySlot.Inventory  = this;
         playerInventorySlot.SlotNumber = i;
     }
 }
Exemple #8
0
    public static void OpenInfo(InventoryItem item, PlayerInventorySlot inventory)
    {
        if (item == null)
        {
            return;
        }

        itemInfo.SetActive(true);

        itemIcon.sprite = item.itemIcon;
        itemName.text   = item.itemName;
        itemDesc.text   = item.itemDescription;
        itemType.text   = item.itemType.ToString();

        //Activate Buttons - Can dismantle and equip these items.
        aBtn.gameObject.SetActive(true);
        xBtn.gameObject.SetActive(true);

        //USE A STATIC POSITION INSTEAD IF INVENTORY OR EQUIPMENT IS OPEN
        InventoryPos(inventory);
    }
Exemple #9
0
    public static void UpdateInfo(InventoryItem item, PlayerInventorySlot inventory, PlayerEquipmentSlot equipment)
    {
        if (item == null)
        {
            return;
        }

        itemIcon.sprite = item.itemIcon;
        itemName.text   = item.itemName;
        itemDesc.text   = item.itemDescription;
        itemType.text   = item.itemType.ToString();

        if (inventory != null)
        {
            InventoryPos(inventory);
        }

        if (equipment != null)
        {
            EquipmentPos(equipment);
        }
    }
    public void OpenInventory()
    {
        if (!ready)
        {
            return;
        }

        inventoryParent.alpha          = 1f;
        inventoryParent.interactable   = true;
        inventoryParent.blocksRaycasts = true;

        opened = true;

        //Debug.Log (playerInventory.SelectedIndexInInventory);

        UpdateCrossingPodsIcons();

        for (int i = 0; i < playerInventory.inventory.Count; i++)
        {
            PlayerInventorySlot p = (PlayerInventorySlot)Instantiate(playerInventorySlotPrefab, inventoryContent.transform);

            int index  = playerInventory.inventory [i].plantSeedIndexInPlantManager;
            int number = playerInventory.inventory [i].number;

            p.SetInventoryGrid(this);
            p.SetPlant(index, number, i);

            if (i == playerInventory.SelectedIndexInInventory)
            {
                selectedSlot = p;
                p.SetSelected();
                GetInfos(selectedSlot.PlantIndex);
            }
        }

        Cursor.lockState = CursorLockMode.None;
        Cursor.visible   = true;
    }
Exemple #11
0
    public void UseItem(PlayerInventorySlot slot, InventoryItem item)
    {
        switch (item.itemType)
        {
        case InventoryItem.ItemType.Weapon:     //EQUIP WEAPON
            EquipWeapon(item, slot);
            break;

        case InventoryItem.ItemType.Armor:     //EQUIP ARMOR
            switch (item.armorType)
            {
            case InventoryItem.ArmorType.Head:
                Debug.Log("Head Equipped");
                EquipHead(item, slot);
                break;

            case InventoryItem.ArmorType.Torso:
                Debug.Log("Torso Equipped");
                EquipTorso(item, slot);
                break;

            case InventoryItem.ArmorType.Boots:
                Debug.Log("Boots Equipped");
                EquipBoots(item, slot);
                break;

            default:
                break;
            }
            //RemoveItem(slot, item);
            break;

        default:
            break;
        }
    }
Exemple #12
0
 /// <summary>
 /// Check Input if we should use the item.
 /// </summary>
 /// <param name="slot"></param>
 /// <param name="item"></param>
 public void CheckInput(PlayerInventorySlot slot, InventoryItem item)
 {
     if (item != null)
     {
         if (Input.GetButtonDown("XboxA"))
         {
             //USE ITEM / EQUIP ITEM
             if (ItemInfo.GetItemInfoActive())
             {
                 ItemInfo.CloseInfo();
             }
             UseItem(slot, item);
         }
         if (Input.GetButtonDown("XboxX"))
         {
             //USE ITEM / EQUIP ITEM
             if (ItemInfo.GetItemInfoActive())
             {
                 ItemInfo.CloseInfo();
             }
             RemoveItem(slot, item); //SHOULD BE CHANGED TO DISMANTLE METHOD AND GET SOMETHING FOR DISMANTLING ITEM.
         }
     }
 }
Exemple #13
0
        private void SendData(int packetType, int remoteClient = -1, int ignoreClient = -1, string networkText = null,
                              int number  = 0, float number2 = 0.0f, float number3 = 0.0f, float number4 = 0.0f, int number5 = 0,
                              int number6 = 0, int number7   = 0)
        {
            if (!_tcpClient.Connected)
            {
                return;
            }

            lock (SyncLock)
            {
                //Debug.WriteLine($"TX: {packetType}");
                var buffer = new byte[131070];
                using (var memoryStream = new MemoryStream(buffer)
                {
                    Position = 0
                })
                    using (var writer = new BinaryWriter(memoryStream))
                    {
                        var oldSteamPosition = writer.BaseStream.Position;
                        writer.BaseStream.Position += 2L;

                        writer.Write((byte)packetType);

                        IPacket packet = null;
                        switch ((PacketType)packetType)
                        {
                        case PacketType.ConnectRequest:
                            PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new ConnectRequest()));
                            PacketHelper.WriteToWriter(writer, packet);
                            break;

                        case PacketType.PlayerInfo:
                            PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new PlayerInfo()));
                            PacketHelper.WriteToWriter(writer, packet);
                            break;

                        case PacketType.PlayerInventorySlot:
                            PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new PlayerInventorySlot()));
                            PacketHelper.WriteToWriter(writer, packet);
                            break;

                        case PacketType.RequestSpawn:
                            PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new RequestSpawn()));
                            PacketHelper.WriteToWriter(writer, packet);
                            break;

                        case PacketType.SpawnPlayer:
                            PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new SpawnPlayer {
                                PlayerIndex = (byte)number
                            }));
                            PacketHelper.WriteToWriter(writer, packet);
                            break;

                        case PacketType.UpdatePlayer:
                            PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new UpdatePlayer {
                                PlayerIndex = (byte)number
                            }));
                            PacketHelper.WriteToWriter(writer, packet);
                            break;

                        case PacketType.SendPlayerHealth:
                            PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new SendPlayerHealth
                            {
                                PlayerIndex = (byte)number, CurrentHealth = 100, HealthMax = 100
                            }));
                            PacketHelper.WriteToWriter(writer, packet);
                            break;

                        case PacketType.SendPlayerMana:
                            PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new SendPlayerMana {
                                PlayerIndex = (byte)number, CurrentMana = 100, ManaMax = 100
                            }));
                            PacketHelper.WriteToWriter(writer, packet);
                            break;

                        case PacketType.SendPlayerBuffs:
                            PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new SendPlayerBuffs {
                                PlayerIndex = (byte)number
                            }));
                            PacketHelper.WriteToWriter(writer, packet);
                            break;

                        case PacketType.SendClientUUID:
                            PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new SendClientUUID()));
                            PacketHelper.WriteToWriter(writer, packet);
                            break;
                        }

                        var newStreamPosition = writer.BaseStream.Position;
                        writer.BaseStream.Position = oldSteamPosition;
                        writer.Write((short)newStreamPosition);
                        writer.BaseStream.Position = newStreamPosition;

                        try
                        {
                            _networkStream.BeginWrite(buffer, 0, (int)memoryStream.Position,
                                                      ar => _networkStream.EndWrite(ar), null);
                        }
                        catch // The connection was most likely closed by the host (Disconnect packets)
                        {
                        }
                    }
            }
        }
Exemple #14
0
 public void RemoveItem(PlayerInventorySlot slot, InventoryItem item)
 {
     itemList.Remove(item);
     slot.Reset();
 }