Ejemplo n.º 1
0
    void AttemptPickUpItem(Item item)
    {
        int slotX, slotY;

        if (inventory.AddItemToInventory(item.ItemID, out slotX, out slotY))
        {
            CmdDestroyObject(item.gameObject);
            uiManager.UpdateInventoryPanelsAfterSync();
        }
    }
    private void Interact()
    {
        if (Input.GetKeyDown(KeyCode.E) || Input.GetKeyDown(KeyCode.Joystick1Button2))
        {
            Vector3    point = new Vector3(Camera.main.pixelWidth / 2, Camera.main.pixelHeight / 2, 0);
            Ray        ray   = Camera.main.ScreenPointToRay(point);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit))
            {
                if (hit.distance < 4)
                {
                    GameObject hitObject = hit.transform.gameObject;
                    switch (hitObject.tag)
                    {
                    case "Button":
                        TriggerScript target = hitObject.GetComponent <TriggerScript>();

                        if (target)
                        {
                            target.ActivateTrigger();
                        }
                        break;

                    case "Item":
                        Item item = hitObject.GetComponent <Item>();

                        if (item)
                        {
                            inventory.AddItemToInventory(item);
                        }
                        break;

                    case "Lock":
                        KeyHole keyLock = hitObject.GetComponent <KeyHole>();
                        if (keyLock)
                        {
                            Debug.Log("Keylock found!");
                            if (inventory.CheckForKey(keyLock.LockNumber))
                            {
                                keyLock.ActivateTrigger();
                            }
                        }
                        break;

                    default:
                        break;
                    }
                }
            }
        }
    }
Ejemplo n.º 3
0
 public void AddItemToInventory(int index)
 {
     if (chestContents.contents[index].itemType == Item.ItemType.Ammo)
     {
         Ammo ammo = (Ammo)chestContents.contents[index];
         playerInventory.GetComponent <PlayerAmmo>().AddAmmo(chestContents.itemNumberInStack[index], ammo.ammoType);
         chestContents.contents.RemoveAt(index);
         chestContents.itemNumberInStack.RemoveAt(index);
     }
     else
     {
         playerInventory.AddItemToInventory(chestContents.contents[index], chestContents, index);
     }
 }
Ejemplo n.º 4
0
    void OnCollisionEnter2D(Collision2D other)
    {
        if (other.gameObject.CompareTag("object"))
        {
            vitals.TakeDamage(rig.velocity.magnitude);
        }

        if (other.gameObject.CompareTag("item"))
        {
            int  itemToAdd = other.gameObject.GetComponent <pickUp>().itemToPickUp;
            bool result    = inventory.AddItemToInventory(itemToAdd);

            if (result)
            {
                Destroy(other.gameObject);
            }
        }
    }
Ejemplo n.º 5
0
    private void CheckInteraction()
    {
        var spawnPoint = GameObject.Find("ObjectSpawnPoint").transform.position;

        if (_playerControllerReference.CheckIfHoldingObject() == false)
        {
            if (_tapCount < 2)
            {
                transform.position = spawnPoint;
                GetComponent <Rigidbody>().isKinematic = true;
                _playerControllerReference.SetIsHoldingObjectBool(true);
                transform.parent = GameObject.Find("Player").transform;
            }
            else
            {
                if (_playerInventoryReference.CheckInventoryCount() < 10)
                {
                    _playerInventoryReference.AddItemToInventory(InventoryObj);
                    Destroy(gameObject);
                }
                else
                {
                    Debug.Log("No Inventory Spaces Left");
                }
            }
        }
        else
        {
            if (transform.parent)
            {
                GetComponent <Rigidbody>().isKinematic = false;
                _playerControllerReference.SetIsHoldingObjectBool(false);
                transform.parent = null;
            }
        }

        _startTimer = false;
        _timer      = 0;
        _tapCount   = 0;
    }
Ejemplo n.º 6
0
        public void TakeItem()
        {
            string Text    = "";
            int    _charac = 0;
            string _type   = "";

            for (int y = 0; y < items.Count; y++)
            {
                KeyboardState keyboardState = Keyboard.GetState();
                if (items[y] != null)
                {
                    if (new Rectangle((int)_player.Position.X, (int)_player.Position.Y, _player.animation.spriteWidth, _player.animation.spriteHeight).Intersects(items[y].Bounds))
                    {
                        if (items[y].ItemClasse == _player.PlayerClasse || items[y].ItemClasse == "All")
                        {
                            float X = items[y]._position.X + 10;
                            float Y = items[y]._position.Y;
                            if (X < 70)
                            {
                                X += 20;
                            }
                            else if (X > 800)
                            {
                                X -= InvTexture[0].Bounds.Width + 10;
                            }
                            if (Y < 70)
                            {
                                Y += items[y].Bounds.Height;
                            }
                            else if (Y > 800)
                            {
                                Y -= InvTexture[0].Bounds.Height;
                            }
                            Sprite Box = new Sprite(InvTexture[0], new Vector2(X, Y), SpriteBatch);
                            Box.Draw();
                            Sprite _itemSprite = new Sprite(items[y].Texture, new Vector2(X + 50, Y + 80), SpriteBatch);
                            _itemSprite.Draw();

                            if (items[y].ItemType == "weapon")
                            {
                                _type = "Damages:";  _charac = items[y].Attack;
                            }
                            else if (items[y].ItemType == "armor")
                            {
                                _type = "Armor:"; _charac = items[y].Defense;
                            }
                            else if (items[y].Name == "Heal potion")
                            {
                                _type = "Recover HP: +"; _charac = 30;
                            }
                            else if (items[y].Name == "Used potion")
                            {
                                _type = "This potion has already been \r\n used by his former owner. \r\n            Money +"; _charac = 20;
                            }

                            if (items[y]._specialItem == true)
                            {
                                Text = string.Format("               {0:0} \r\n \r\n                        Special Item !\r\n                        {4:0}: {5:0}\r\n                       Strength +{1:0}\r\n                         Intelligence +{2:0} \r\n                        Agility +{3:0}\r\n\r\n          Press F to equip \r\n ", items[y].Name, items[y]._strength, items[y]._intelligence, items[y]._agility, _type, _charac);
                            }
                            else if (items[y]._specialItem == false)
                            {
                                Text = string.Format("               {0:0} \r\n\r\n                           {1:0} {2:0}\r\n \r\n                               Press F", items[y].Name, _type, _charac);
                            }

                            DrawWithShadow(Text, new Vector2(X + 10, Y + 15));

                            if ((keyboardState.IsKeyDown(Keys.F)))
                            {
                                if (_time < 10)
                                {
                                    _time += 1;
                                }
                                else
                                {
                                    List <Item> _item = Inventory.AddItemToInventory(items[y], items, y);
                                    items = _item;
                                    _time = 1;
                                }
                            }
                        }
                        else
                        {
                            Sprite Box = new Sprite(InvTexture[1], new Vector2(items[y]._position.X - 100, items[y]._position.Y - 100), SpriteBatch);
                            Box.Draw();
                            Text = string.Format("\r\n    {1:1} \r\n \r\nThis Item can only \r\nbe equipped by {0:0}", items[y].ItemClasse, items[y].Name);
                            DrawWithShadow(Text, new Vector2(Box.Position.X + 45, Box.Position.Y + 15));
                        }
                    }
                }
            }
        }
Ejemplo n.º 7
0
    private void HandleOtherInput()
    {
        if (Input.GetButtonUp("CastSpell"))
        {
            var selectedItem = inventory.hotBar[inventory.currentItem];
            if (selectedItem is Spell spell)
            {
                if (mana >= spell.cost)
                {
                    networkObject.SendRpc(RPC_CAST_SPELL, Receivers.All, spell.index);
                    mana -= spell.cost;
                }
            }
        }

        if (Input.GetKeyUp(KeyCode.Alpha1))
        {
            inventory.SetCurrentItem(0);
        }

        if (Input.GetKeyUp(KeyCode.Alpha2))
        {
            inventory.SetCurrentItem(1);
        }

        if (Input.GetKeyUp(KeyCode.Alpha3))
        {
            inventory.SetCurrentItem(2);
        }

        if (Input.GetKeyUp(KeyCode.Alpha4))
        {
            inventory.SetCurrentItem(3);
        }

        if (Input.GetKeyUp(KeyCode.Alpha5))
        {
            inventory.SetCurrentItem(4);
        }

        var scroll = Input.GetAxis("Mouse ScrollWheel");

        if (scroll < -0.1)
        {
            var nextItem = (inventory.currentItem + 1) % inventory.hotBarSize;
            inventory.SetCurrentItem(nextItem);
        }
        else if (scroll > 0.1)
        {
            var prevItem = (inventory.currentItem - 1) % inventory.hotBarSize;
            if (prevItem < 0)
            {
                prevItem = inventory.hotBarSize - 1;
            }
            inventory.SetCurrentItem(prevItem);
        }

        if (Input.GetKeyDown(KeyCode.E))
        {
            Vector3    rayOrigin = playerCamera.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 0.0f));
            RaycastHit hit;

            if (Physics.Raycast(rayOrigin, playerCamera.transform.forward, out hit, interactionRange))
            {
                var loot = hit.collider.GetComponent <Loot>();

                if (loot != null)
                {
                    inventory.AddItemToInventory(spellManager.getSpell(loot.item));
                }

                networkObject.SendRpc(RPC_PICKUP_SPELL, Receivers.All, loot.index);
            }
        }

        if (Input.GetKeyDown(KeyCode.Q))
        {
            if (inventory.hotBar[inventory.currentItem] != null)
            {
                networkObject.SendRpc(RPC_PLACE_SPELL, Receivers.All, transform.position,
                                      inventory.hotBar[inventory.currentItem].index);

                inventory.RemoveItemFromInventory(inventory.currentItem);
            }
        }
    }
Ejemplo n.º 8
0
 public void PutEquippableIntoInventory(Equippable equippableItem)
 {
     inventory.AddItemToInventory(equippableItem);
     equippableItem.gameObject.SetActive(false);
 }