// 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; }