Example #1
0
    // Update is called once per frame
    void Update()
    {
        GamePadState state = GamePad.GetState(player);
        Vector2      input = new Vector2(state.ThumbSticks.Left.X, state.ThumbSticks.Left.Y);

        bool aPressed    = state.Buttons.A == ButtonState.Pressed && lastState.Buttons.A == ButtonState.Released;
        bool dashPressed = state.Buttons.X == ButtonState.Pressed && lastState.Buttons.X == ButtonState.Released;

        if (canAct)
        {
            rb.AddForce(input * speed, ForceMode2D.Impulse);
            charAnimator.SetBool("IsRunning", input.sqrMagnitude > 0);
            if (input.x > 0f)
            {
                transform.localScale = new Vector3(-1, 1, 1);
            }
            else
            {
                transform.localScale = new Vector3(1, 1, 1);
            }
        }

        if (aPressed && canAct)
        {
            Collider2D[] circleInfo = Physics2D.OverlapCircleAll(transform.position, interactRadius);
            for (int i = 0; i < circleInfo.Length; i++)
            {
                if (circleInfo[i].tag == "chest")
                {
                    Debug.Log("Player " + player + " got a chest");
                    chestScript scriptOfChest = circleInfo[i].gameObject.GetComponent <chestScript>();
                    pickedBuff = scriptOfChest.getBuff();
                    Debug.Log(pickedBuff);

                    if (pickedBuff == "fast")
                    {
                        StartCoroutine(modifySpeed(1f));
                    }
                    else if (pickedBuff == "slow")
                    {
                        StartCoroutine(modifySpeed(-1f));
                    }
                    else if (pickedBuff == "coins")
                    {
                        Debug.Log("got some coins");
                    }
                    //Destroy(circleInfo[i].gameObject);
                }
                else if (circleInfo[i].tag == "item")
                {
                    itemScript scriptOfItem = circleInfo[i].gameObject.GetComponent <itemScript>();
                    string     givenItem    = scriptOfItem.equipThis();
                    equipItem(givenItem);
                    Debug.Log("Equipped " + givenItem.ToString());
                }
            }
        }

        if (dashPressed && canAct && canDash && input != new Vector2(0f, 0f))
        {
            StartCoroutine(dashTransition(input));
            Debug.Log("gets past input if");
        }



        lastState = state;
    }