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