public void Dash() { dashAbility.Dash(rBody, moveDirection, dashAmount, dashFilter); }
//===========UNUSED================ //May need it if I decide to implement bow and arrow //Makes the Player look towards a given point on the world map (like the mouse position) /* * public void LookTowardsPoint(Vector3 target) { * //Rotate towards target * target = target - transform.position; * * float angle = Mathf.Atan2 (target.y, target.x) * Mathf.Rad2Deg; * * //transform.rotation = Quaternion.Euler (new Vector3 (0, 0, angle)); * transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward); * * } */ //Handles and updates the Player logic with a state machine public void UpdatePlayer() { //Animator bools playerMoving = false; playerDashing = false; playerAttacking = false; playerSprintAttacking = false; //Switch Design: Make each Ability class/state take in the playerState // and modify it only when that Ablity action is done executing switch (playerState) { /* * case PlayerState.Default: * if (controllerPref == ControllerPreference.KeyboardMouse) * GetKeyboardInput (); * else * GetControllerInput (); * * MovePlayer (); * break; */ case PlayerState.Default: basicMovement.Idle(ref playerState); anim.Play("Idle Direction"); break; case PlayerState.Moving: basicMovement.Move(ref playerState); anim.Play("Player Movement"); break; case PlayerState.Dashing: //Note: Normalize first Dash because Player may be accelerating or slowing down, causing shorter dashes dashAbility.Dash(basicMovement.GetLastMove().normalized, ref playerState, ref playerDashing); break; case PlayerState.Attacking: attackAbility.Attack(ref playerState, basicMovement.GetAttackDirection()); break; case PlayerState.ChargedAttacking: chargedAttackAbility.ChargeAttack(ref playerState, basicMovement.GetAttackDirection()); break; case PlayerState.SprintAttacking: sprintAttackAbility.SprintAttack(ref playerState, basicMovement.GetAttackDirection()); break; case PlayerState.Shielding: shieldAbility.Shield(ref playerState); break; case PlayerState.Grabbing: grabAbility.Grab(ref playerState); break; case PlayerState.DodgeRolling: dodgeAbility.DodgeRoll(ref playerState, shieldAbility.GetDodgeRollDirection()); break; case PlayerState.Flinch: flinchState.Flinch(ref playerState); break; case PlayerState.Falling: fallState.Fall(ref playerState); break; case PlayerState.Interacting: interactState.Interact(ref playerState); break; case PlayerState.Dialogue: dialogueState.Dialogue(ref playerState); break; case PlayerState.WarpStrike: warpStrikeAbility.WarpStrike(ref playerState, basicMovement.GetAttackDirection()); break; case PlayerState.HyperDashing: //if (abilityHyperDash.hyperDashingActive) ////////attackDirection = GetMousePositionVector (); //abilityHyperDash.HyperDash (ref playerState, ref hyperDashCoolDownTimer, ref playerHyperDashing, attackDirection, // moveHorizontal, moveVertical); break; } //switch //Let the animator know what just happened in this frame (like which way the player was facing anim.SetFloat("MoveX", basicMovement.GetLastMove().x); anim.SetFloat("MoveY", basicMovement.GetLastMove().y); anim.SetBool("PlayerMoving", basicMovement.GetPlayerMoving()); anim.SetFloat("LastMoveX", basicMovement.GetLastMove().x); anim.SetFloat("LastMoveY", basicMovement.GetLastMove().y); anim.SetBool("PlayerDashing", playerDashing); anim.SetBool("PlayerAttacking", attackAbility.GetPlayerAttacking()); //anim.SetInteger ("PlayerAttackDirection", (int)playerDirections); //anim.SetBool ("PlayerSprinting", playerSprinting); //anim.SetInteger ("PlayerAttackDirection", (int)playerDirection); }