public void UpdatePlayerState() { if (GetMoveState() == MoveState.ForceBased) { return; } else if (GetMoveState() == MoveState.Rolling) { RollTimer -= Time.deltaTime; if (RollTimer > 0) { return; } } if (Input.GetKeyDown(KeyCode.Space)) //Can cancel Ranged animation { if (energy.Drain_ES(false, rollEnergyCost)) { Roll(); return; } } else if (moveState == MoveState.FollowCursor && (FollowCursorTimer > 0 || HoldCursorFollow)) { return; } // TODO: Handle for controllers float controlThrowX = Mathf.Abs(Input.GetAxis("Horizontal")); float controlThrowY = Mathf.Abs(Input.GetAxis("Vertical")); if (controlThrowX > 0 || controlThrowY > 0) { if (Input.GetKey(KeyCode.LeftShift) && energy.Drain_ES_Greater(false, sprintEnergyCost, (moveState != MoveState.Running), MinSprintCost)) { moveState = MoveState.Running; } else { moveState = MoveState.Walking; } } else { moveState = MoveState.Idle; } }