Exemplo n.º 1
0
 public SlotData(float x, float y, float z, int siblingIndex, Inventory.InventoryItem item)
 {
     this.x            = x;
     this.y            = y;
     this.z            = z;
     this.siblingIndex = siblingIndex;
     this.item         = item;
 }
Exemplo n.º 2
0
 public void AddItem(int index, Inventory.InventoryItem item)
 {
     foregroundImages[index].gameObject.SetActive(true);
     foregroundImages[index].sprite = item.PlayerAction == PlayerAction.None ?
                                      DataStore.ItemGraphicsData[item.ItemName].Collectable
                     : DataStore.ItemGraphicsData[item.ItemName].Sprite;
     itemTexts[index].text = item.Amount > 1 ? item.Amount.ToString() : String.Empty;
 }
Exemplo n.º 3
0
    public void AddItem(Vector2 position, Inventory.InventoryItem item)
    {
        var sprite = Resources.Load <Sprite>(item.ItemInfo.IconPath);

        if (sprite == null)
        {
            Debug.LogError(item.ItemInfo.IconPath);
        }
        inventoryItems[(int)position.x, (int)position.y].GetComponent <Image>().sprite = sprite;
        if (item.ItemInfo.InventoryStackSize > 1)
        {
            inventoryItems[(int)position.x, (int)position.y].transform.GetChild(0).GetComponent <Text>().text = item.Count.ToString();
        }
    }
Exemplo n.º 4
0
    private void OnInventoryActiveItemChanged(Inventory.InventoryItem item)
    {
        if (item.Object.GetComponent <BaseComponent>().HasTag(Tag.WiringTool))
        {
            _activeTool = Tag.WiringTool;
        }
        else if (item.Object.GetComponent <BaseComponent>().HasTag(Tag.CuttingTool))
        {
            _activeTool = Tag.CuttingTool;
        }
        else
        {
            _activeTool = Tag.Untagged;
        }

        ResetWiring();
    }
Exemplo n.º 5
0
        public void RemoveInventoryEffects(Inventory.InventoryItem item)
        {
            // Base stats
            foreach (StatEffect effect in item.statEffects)
            {
                RemoveEffect(effect);
            }

            // Attachment Effects
            if (item.itemType != Inventory.ItemType.Attachment && item.attachRequirement != Inventory.AttachRequirement.NoneAllowed)
            {
                foreach (Inventory.AttachmentSlot slot in item.Slots)
                {
                    if (slot.AttachedItem != null)
                    {
                        RemoveInventoryEffects(slot.AttachedItem);
                    }
                }
            }
        }
Exemplo n.º 6
0
    public void AddBook(Inventory.InventoryItem book)
    {
        // TOOD: play sound
        switch (book)
        {
        case Inventory.InventoryItem.RED_BOOK:
            redBook.SetActive(true);
            hasRed = true;
            break;

        case Inventory.InventoryItem.BLUE_BOOK:
            blueBook.SetActive(true);
            hasBlue = true;
            break;

        case Inventory.InventoryItem.BROWN_BOOK:
            brownBook.SetActive(true);
            hasBrown = true;
            break;
        }
    }
Exemplo n.º 7
0
        public void AddInventoryEffects(Inventory.InventoryItem item, int count)
        {
            int i;

            foreach (StatEffect effect in item.statEffects)
            {
                for (i = 0; i < count; i++)
                {
                    AddEffect(effect);
                }
            }

            // Attachment Effects
            if (item.itemType != Inventory.ItemType.Attachment && item.attachRequirement != Inventory.AttachRequirement.NoneAllowed)
            {
                foreach (Inventory.AttachmentSlot slot in item.Slots)
                {
                    if (slot.AttachedItem != null)
                    {
                        AddInventoryEffects(slot.AttachedItem, count);
                    }
                }
            }
        }
Exemplo n.º 8
0
    public void ExecuteInteraction(GameObject interactionGameObject, float distanceTo)
    {
        switch (interactionGameObject.name)
        {
        case "GardenTable":
            Debug.Log("Leave the table alone!");
            tableSound.Play();
            clueDisplay.Show(ClueDisplay.ClueDisplayType.BARK_STICK);
            break;

        case "HallTable":
            Debug.Log("Leave the table alone!");
            tableSound.Play();
            clueDisplay.Show(ClueDisplay.ClueDisplayType.WHERE_TO_STAND);
            break;

        case "ClueBelowDog":
            clueDisplay.Show(ClueDisplay.ClueDisplayType.ORDER_OF_DIGITS);
            break;

        case "Key":
            playerInventory.AddItem(Inventory.InventoryItem.KEY);
            Destroy(interactionGameObject);
            pickupSound.Play();
            break;

        case "Chest":
            Chest chestComp = interactionGameObject.GetComponent <Chest>();
            if (chestComp.IsOpen())
            {
                clueDisplay.Show(ClueDisplay.ClueDisplayType.FLOWER_LEVER_SOULTION);
            }
            else
            {
                if (playerInventory.DoesExist(Inventory.InventoryItem.KEY))
                {
                    chestComp.Open();
                }
            }
            break;

        case "LeverYellow":
            yellowLeverState = !yellowLeverState;
            HandleLeverSwitch(interactionGameObject);
            break;

        case "LeverWhite":
            whiteLeverState = !whiteLeverState;
            HandleLeverSwitch(interactionGameObject);
            break;

        case "LeverPink":
            pinkLeverState = !pinkLeverState;
            HandleLeverSwitch(interactionGameObject);
            break;

        case "LeverEmpty":
            emptyLeverState = !emptyLeverState;
            HandleLeverSwitch(interactionGameObject);
            break;

        case "Stick":
            playerInventory.AddItem(Inventory.InventoryItem.STICK);
            Destroy(interactionGameObject);
            pickupSound.Play();
            break;

        case "Dog":
            Dog dogComp = interactionGameObject.GetComponent <Dog>();
            if (!dogComp.IsHappy() && dogComp.CanReceiveStick())
            {
                if (playerInventory.DoesExist(Inventory.InventoryItem.STICK))
                {
                    playerInventory.RemoveItem(Inventory.InventoryItem.STICK);
                    dogComp.FetchStick();
                }
            }
            break;

        case "BrownBook":
            playerInventory.AddItem(Inventory.InventoryItem.BROWN_BOOK);
            Destroy(interactionGameObject);
            pickupSound.Play();
            break;

        case "BlueBook":
            playerInventory.AddItem(Inventory.InventoryItem.BLUE_BOOK);
            Destroy(interactionGameObject);
            pickupSound.Play();
            break;

        case "RedBook":
            playerInventory.AddItem(Inventory.InventoryItem.RED_BOOK);
            Destroy(interactionGameObject);
            pickupSound.Play();
            break;

        case "Bookshelf":
            Bookshelf bookshelfComp = interactionGameObject.GetComponent <Bookshelf>();
            if (bookshelfComp.IsFull())
            {
                Debug.Log("Bookshelf full!");
                tableSound.Play();
                clueDisplay.Show(ClueDisplay.ClueDisplayType.BOOKS_CLOSEUP);
            }
            else
            {
                Inventory.InventoryItem book = playerInventory.GetBook();
                if (book != Inventory.InventoryItem.NULL)
                {
                    playerInventory.RemoveItem(book);
                    bookshelfComp.AddBook(book);
                }
            }
            break;

        case "DigitBoard1":
            digitBoard1Value = interactionGameObject.GetComponent <DigitBoard>().IncreaseValue();
            HandleDigitBoardACtion();
            break;

        case "DigitBoard2":
            digitBoard2Value = interactionGameObject.GetComponent <DigitBoard>().IncreaseValue();
            HandleDigitBoardACtion();
            break;

        case "DigitBoard3":
            digitBoard3Value = interactionGameObject.GetComponent <DigitBoard>().IncreaseValue();
            HandleDigitBoardACtion();
            break;
        }
    }
Exemplo n.º 9
0
    // Update is called once per frame
    void Update()
    {
        if (inputEnabled)
        {
            HandleKeys();

            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            Vector3    mousePosition = Vector3.zero;

            if (Physics.Raycast(ray, out hit, Mathf.Infinity, terrainLayer))
            {
                mousePosition   = hit.point;
                mousePosition.x = Mathf.Floor(mousePosition.x);
                mousePosition.z = Mathf.Floor(mousePosition.z);

                if (farmingManager.CanBeHarvested((int)mousePosition.x - 20, (int)mousePosition.z - 20))
                {
                    if (currentSelectedCursor == 0)
                    {
                        currentSelectedCursor = 1;
                        Cursor.SetCursor(Cursors[currentSelectedCursor], Vector2.zero, CursorMode.ForceSoftware);
                    }
                }
                else
                {
                    if (currentSelectedCursor == 1)
                    {
                        currentSelectedCursor = 0;
                        Cursor.SetCursor(Cursors[currentSelectedCursor], Vector2.zero, CursorMode.ForceSoftware);
                    }
                }

                if (IsMouseNearPlayer(mousePosition))
                {
                    Marker.SetActive(true);
                    mousePosition.x          += 0.5f;
                    mousePosition.z          += 0.5f;
                    mousePosition.y           = 0.011f;
                    Marker.transform.position = mousePosition;
                }
                else
                {
                    Marker.SetActive(false);
                }
            }

            if (pressedKeys.Count > 0)
            {
                animator.SetBool("walking", true);
                KeyCode keyCode = pressedKeys[pressedKeys.Count - 1];
                transform.rotation  = GetRotation(keyCode);
                transform.position += GetDirection(keyCode);
            }
            else
            {
                animator.SetBool("walking", false);
            }

            if (Input.GetMouseButtonDown(0))
            {
                if (Physics.Raycast(ray, out hit, Mathf.Infinity))
                {
                    if (hit.transform.tag.Equals("Market"))
                    {
                        float dist = Vector3.Distance(transform.position, hit.point);

                        if (dist <= 3)
                        {
                            SetInputEnabled(false);
                            marketController.OpenMarketScreen();
                            return;
                        }
                    }
                }
                mousePosition.x = Mathf.Floor(mousePosition.x);
                mousePosition.z = Mathf.Floor(mousePosition.z);

                if (IsMouseNearPlayer(mousePosition))
                {
                    Inventory.InventoryItem selectedItem = inventory.GetSelectedItem();
                    if (selectedItem != null)
                    {
                        farmingManager.Action(inventory.GetPlayerAction(), (int)mousePosition.x - 20, (int)mousePosition.z - 20, selectedItem.ItemName);
                    }
                }
            }
        }
    }