private void UsePowerup()
    {
        switch ((int)currentPowerup)
        {
        case 0:
            print("No power");
            //Destroy(this.gameObject);
            break;

        case 1:     //groundslam
            if (!_controller2D.collisions.below)
            {
                print("Used nr 1");
                currentPowerup = GlobalState.PowerupType.None;
                powerupStateMachine.ChangeState(new DownDashState(_player2D, _dashSpeed, _dashTime));
                PlayParticle();
            }
            break;

        case 2:     //zum
            print("Used nr 2");
            currentPowerup = GlobalState.PowerupType.None;
            Time.timeScale = 0;
            PlayParticle();

            int teleportAmount = (int)Random.Range(_teleportAmountMin, _teleportAmountMax);

            print("time to swap " + teleportAmount + " times");

            for (int i = 0; i < _gameHandler.playerList.Count; i++)
            {
                _gameHandler.playerList[i].GetComponent <PlayerPowerupScript>().playerInput.PlayerControls.Disable();

                StartCoroutine(_gameHandler.playerList[i].GetComponent <PlayerPowerupScript>().ZumBookTeleportShit(_gameHandler.playerList[(i + 1) % _gameHandler.playerList.Count].transform.position, _teleportTimeToWait, teleportAmount));
            }
            break;

        case 3:     //oof
            currentPowerup = GlobalState.PowerupType.None;
            print("Used nr 3");
            StartCoroutine(this.gameObject.GetComponent <PlayerPowerupScript>().Oof());
            PlayParticle();
            break;

        case 4:     //burger
            currentPowerup = GlobalState.PowerupType.None;
            print("Used nr 3");
            StartCoroutine(this.gameObject.GetComponent <PlayerPowerupScript>().Burger());
            PlayParticle();
            break;
        }
    }
    private void Awake()
    {
        currentPowerup = GlobalState.PowerupType.None;
        _gameHandler   = GlobalState.state.GameHandler;

        if (playerInput == null)
        {
            playerInput = new PlayerInput();
        }

        playerInput.PlayerControls.UsePowerup.performed += ctx => UsePowerup();

        //_playerRB = GetComponent<Rigidbody2D>();
        _player2D     = GetComponent <Player2D>();
        _controller2D = GetComponent <Controller2D>();

        powerupStateMachine = new StateMachine <PlayerPowerupScript>(this);
        defaultState        = new DefaultState();

        powerupStateMachine.ChangeState(defaultState);
    }