public override AbstractState HandleUpdate(PlayerStateMachine stateMachine, Animator animator, CharacterMovementController playerController)
        {
            if (Input.GetKey(KeyCode.UpArrow) && playerController.LadderBelow())
            {
                return(PlayerStateMachine.climbingState);
            }
            if (Input.GetKey(KeyCode.DownArrow) && playerController.LadderBelow() && !playerController.IsGroundBelow())
            {
                return(PlayerStateMachine.climbingState);
            }
            if (Input.GetKey(KeyCode.DownArrow) && playerController.IsGrounded())
            {
                return(PlayerStateMachine.duckingState);
            }

            if (Input.GetKey(KeyCode.Space) && playerController.IsJumpingPossible())
            {
                return(PlayerStateMachine.preJumpIdleState);
            }

            if (Input.GetAxisRaw("Horizontal") != 0 && playerController.IsGrounded())
            {
                return(PlayerStateMachine.runningState);
            }

            if (playerController.IsFalling())
            {
                return(PlayerStateMachine.fallingState);
            }



            if (stateMachine.inputController.StartHeavyAttack())   //TODO erst "aufladen", dann angriff
            {
                return(PlayerStateMachine.attackingHeavyState);
            }
            if (stateMachine.inputController.IsLightAttack())
            {
                return(PlayerStateMachine.attackingCombo1State);
            }

            return(null);
        }
        public override AbstractState HandleUpdate(PlayerStateMachine stateMachine, Animator animator, CharacterMovementController playerController)
        {
            if (!playerController.LadderBelow())
            {
                return(PlayerStateMachine.idleState);
            }
            if (Input.GetKey(KeyCode.UpArrow))
            {
                playerController.OnClimbLadder(1);
            }
            if (Input.GetKey(KeyCode.DownArrow))
            {
                playerController.OnClimbLadder(-1);
            }

            if (playerController.IsGroundBelow())
            {
                Debug.Log("Unten angekommen");
                return(PlayerStateMachine.idleState);
            }
            return(null);
        }