removed wall jump and slide from player controller
these aren't mechanics we ever talked about and idk how they work (they don't seem to actually do anything), so i cut them
This commit is contained in:
		@@ -21,14 +21,9 @@ public class PlayerMovement : MonoBehaviour
 | 
				
			|||||||
    //but can only be privately written to.
 | 
					    //but can only be privately written to.
 | 
				
			||||||
    public bool IsFacingRight { get; private set; }
 | 
					    public bool IsFacingRight { get; private set; }
 | 
				
			||||||
    public bool IsJumping { get; private set; }
 | 
					    public bool IsJumping { get; private set; }
 | 
				
			||||||
    public bool IsWallJumping { get; private set; }
 | 
					 | 
				
			||||||
    public bool IsSliding { get; private set; }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //Timers (also all fields, could be private and a method returning a bool could be used)
 | 
					    //Timers (also all fields, could be private and a method returning a bool could be used)
 | 
				
			||||||
    public float LastOnGroundTime { get; private set; }
 | 
					    public float LastOnGroundTime { get; private set; }
 | 
				
			||||||
    public float LastOnWallTime { get; private set; }
 | 
					 | 
				
			||||||
    public float LastOnWallRightTime { get; private set; }
 | 
					 | 
				
			||||||
    public float LastOnWallLeftTime { get; private set; }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // trumpet
 | 
					    // trumpet
 | 
				
			||||||
    public int trumpet = 0;
 | 
					    public int trumpet = 0;
 | 
				
			||||||
@@ -47,10 +42,6 @@ public class PlayerMovement : MonoBehaviour
 | 
				
			|||||||
    private bool _isJumpFalling;
 | 
					    private bool _isJumpFalling;
 | 
				
			||||||
    private bool isRegFalling;
 | 
					    private bool isRegFalling;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //Wall Jump
 | 
					 | 
				
			||||||
    private float _wallJumpStartTime;
 | 
					 | 
				
			||||||
    private int _lastWallJumpDir;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private Vector2 _moveInput;
 | 
					    private Vector2 _moveInput;
 | 
				
			||||||
    public float LastPressedJumpTime { get; private set; }
 | 
					    public float LastPressedJumpTime { get; private set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -121,28 +112,10 @@ public class PlayerMovement : MonoBehaviour
 | 
				
			|||||||
        unlockedTrumpet = StateController.Instance.HasTrumpet();
 | 
					        unlockedTrumpet = StateController.Instance.HasTrumpet();
 | 
				
			||||||
        #region TIMERS
 | 
					        #region TIMERS
 | 
				
			||||||
        LastOnGroundTime -= Time.deltaTime;
 | 
					        LastOnGroundTime -= Time.deltaTime;
 | 
				
			||||||
        LastOnWallTime -= Time.deltaTime;
 | 
					 | 
				
			||||||
        LastOnWallRightTime -= Time.deltaTime;
 | 
					 | 
				
			||||||
        LastOnWallLeftTime -= Time.deltaTime;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        LastPressedJumpTime -= Time.deltaTime;
 | 
					        LastPressedJumpTime -= Time.deltaTime;
 | 
				
			||||||
        #endregion
 | 
					        #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        #region INPUT HANDLER
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (_moveInput.x != 0)
 | 
					 | 
				
			||||||
            CheckDirectionToFace(_moveInput.x > 0);
 | 
					 | 
				
			||||||
        #endregion
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // if (!IsJumping)
 | 
					 | 
				
			||||||
        // {
 | 
					 | 
				
			||||||
        //     print("not jumping");
 | 
					 | 
				
			||||||
        // }
 | 
					 | 
				
			||||||
        // else
 | 
					 | 
				
			||||||
        // {
 | 
					 | 
				
			||||||
        //     print("jumping, " + RB.velocity.y);
 | 
					 | 
				
			||||||
        // }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        #region COLLISION CHECKS
 | 
					        #region COLLISION CHECKS
 | 
				
			||||||
        if (!IsJumping)
 | 
					        if (!IsJumping)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
@@ -179,19 +152,6 @@ public class PlayerMovement : MonoBehaviour
 | 
				
			|||||||
                    isRegFalling = true;
 | 
					                    isRegFalling = true;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					 | 
				
			||||||
            //Right Wall Check
 | 
					 | 
				
			||||||
            if (((Physics2D.OverlapBox(this.transform.position, _wallCheckSize, 0, _groundLayer) && IsFacingRight)
 | 
					 | 
				
			||||||
                    || (Physics2D.OverlapBox(this.transform.position, _wallCheckSize, 0, _groundLayer) && !IsFacingRight)) && !IsWallJumping)
 | 
					 | 
				
			||||||
                LastOnWallRightTime = Data.coyoteTime;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            //Right Wall Check
 | 
					 | 
				
			||||||
            if (((Physics2D.OverlapBox(this.transform.position, _wallCheckSize, 0, _groundLayer) && !IsFacingRight)
 | 
					 | 
				
			||||||
                || (Physics2D.OverlapBox(this.transform.position, _wallCheckSize, 0, _groundLayer) && IsFacingRight)) && !IsWallJumping)
 | 
					 | 
				
			||||||
                LastOnWallLeftTime = Data.coyoteTime;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            //Two checks needed for both left and right walls since whenever the play turns the wall checkPoints swap sides
 | 
					 | 
				
			||||||
            LastOnWallTime = Mathf.Max(LastOnWallLeftTime, LastOnWallRightTime);
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        #endregion
 | 
					        #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -200,17 +160,10 @@ public class PlayerMovement : MonoBehaviour
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
            IsJumping = false;
 | 
					            IsJumping = false;
 | 
				
			||||||
            // print("isJumping " + IsJumping);
 | 
					            // print("isJumping " + IsJumping);
 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (!IsWallJumping)
 | 
					 | 
				
			||||||
            _isJumpFalling = true;
 | 
					            _isJumpFalling = true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (IsWallJumping && Time.time - _wallJumpStartTime > Data.wallJumpTime)
 | 
					        if (LastOnGroundTime > 0 && !IsJumping)
 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            IsWallJumping = false;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (LastOnGroundTime > 0 && !IsJumping && !IsWallJumping)
 | 
					 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            _isJumpCut = false;
 | 
					            _isJumpCut = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -223,7 +176,6 @@ public class PlayerMovement : MonoBehaviour
 | 
				
			|||||||
        if (CanJump() && LastPressedJumpTime > 0)
 | 
					        if (CanJump() && LastPressedJumpTime > 0)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            IsJumping = true;
 | 
					            IsJumping = true;
 | 
				
			||||||
            IsWallJumping = false;
 | 
					 | 
				
			||||||
            _isJumpCut = false;
 | 
					            _isJumpCut = false;
 | 
				
			||||||
            _isJumpFalling = false;
 | 
					            _isJumpFalling = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -270,14 +222,6 @@ public class PlayerMovement : MonoBehaviour
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        #endregion
 | 
					        #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        #region SLIDE CHECKS
 | 
					 | 
				
			||||||
        if (CanSlide() && ((LastOnWallLeftTime > 0 && _moveInput.x < 0) || (LastOnWallRightTime > 0 && _moveInput.x > 0)))
 | 
					 | 
				
			||||||
            IsSliding = true;
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
            IsSliding = false;
 | 
					 | 
				
			||||||
        #endregion
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        #region GRAVITY
 | 
					        #region GRAVITY
 | 
				
			||||||
        //Higher gravity if we've released the jump input or are falling
 | 
					        //Higher gravity if we've released the jump input or are falling
 | 
				
			||||||
        // if (IsSliding)
 | 
					        // if (IsSliding)
 | 
				
			||||||
@@ -297,7 +241,7 @@ public class PlayerMovement : MonoBehaviour
 | 
				
			|||||||
            SetGravityScale(Data.gravityScale * Data.jumpCutGravityMult);
 | 
					            SetGravityScale(Data.gravityScale * Data.jumpCutGravityMult);
 | 
				
			||||||
            RB.velocity = new Vector2(RB.velocity.x, Mathf.Max(RB.velocity.y, -Data.maxFallSpeed));
 | 
					            RB.velocity = new Vector2(RB.velocity.x, Mathf.Max(RB.velocity.y, -Data.maxFallSpeed));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else if ((IsJumping || IsWallJumping || _isJumpFalling) && Mathf.Abs(RB.velocity.y) < Data.jumpHangTimeThreshold)
 | 
					        else if ((IsJumping || _isJumpFalling) && Mathf.Abs(RB.velocity.y) < Data.jumpHangTimeThreshold)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            SetGravityScale(Data.gravityScale * Data.jumpHangGravityMult);
 | 
					            SetGravityScale(Data.gravityScale * Data.jumpHangGravityMult);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -343,15 +287,7 @@ public class PlayerMovement : MonoBehaviour
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private void FixedUpdate()
 | 
					    private void FixedUpdate()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        //Handle Run
 | 
					 | 
				
			||||||
        if (IsWallJumping)
 | 
					 | 
				
			||||||
            Run(Data.wallJumpRunLerp);
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
        Run(1);
 | 
					        Run(1);
 | 
				
			||||||
 | 
					 | 
				
			||||||
        //Handle Slide
 | 
					 | 
				
			||||||
        if (IsSliding)
 | 
					 | 
				
			||||||
            Slide();
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #region INPUT CALLBACKS
 | 
					    #region INPUT CALLBACKS
 | 
				
			||||||
@@ -363,7 +299,7 @@ public class PlayerMovement : MonoBehaviour
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public void OnJumpUpInput()
 | 
					    public void OnJumpUpInput()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        if (CanJumpCut() || CanWallJumpCut())
 | 
					        if (CanJumpCut())
 | 
				
			||||||
            _isJumpCut = true;
 | 
					            _isJumpCut = true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    #endregion
 | 
					    #endregion
 | 
				
			||||||
@@ -405,7 +341,7 @@ public class PlayerMovement : MonoBehaviour
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        #region Add Bonus Jump Apex Acceleration
 | 
					        #region Add Bonus Jump Apex Acceleration
 | 
				
			||||||
        //Increase are acceleration and maxSpeed when at the apex of their jump, makes the jump feel a bit more bouncy, responsive and natural
 | 
					        //Increase are acceleration and maxSpeed when at the apex of their jump, makes the jump feel a bit more bouncy, responsive and natural
 | 
				
			||||||
        if ((IsJumping || IsWallJumping || _isJumpFalling) && Mathf.Abs(RB.velocity.y) < Data.jumpHangTimeThreshold)
 | 
					        if ((IsJumping || _isJumpFalling) && Mathf.Abs(RB.velocity.y) < Data.jumpHangTimeThreshold)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            accelRate *= Data.jumpHangAccelerationMult;
 | 
					            accelRate *= Data.jumpHangAccelerationMult;
 | 
				
			||||||
            targetSpeed *= Data.jumpHangMaxSpeedMult;
 | 
					            targetSpeed *= Data.jumpHangMaxSpeedMult;
 | 
				
			||||||
@@ -467,55 +403,10 @@ public class PlayerMovement : MonoBehaviour
 | 
				
			|||||||
        RB.AddForce(Vector2.up * force, ForceMode2D.Impulse);
 | 
					        RB.AddForce(Vector2.up * force, ForceMode2D.Impulse);
 | 
				
			||||||
        #endregion
 | 
					        #endregion
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    private void WallJump(int dir)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        //Ensures we can't call Wall Jump multiple times from one press
 | 
					 | 
				
			||||||
        LastPressedJumpTime = 0;
 | 
					 | 
				
			||||||
        LastOnGroundTime = 0;
 | 
					 | 
				
			||||||
        LastOnWallRightTime = 0;
 | 
					 | 
				
			||||||
        LastOnWallLeftTime = 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        #region Perform Wall Jump
 | 
					 | 
				
			||||||
        Vector2 force = new Vector2(Data.wallJumpForce.x, Data.wallJumpForce.y);
 | 
					 | 
				
			||||||
        force.x *= dir; //apply force in opposite direction of wall
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (Mathf.Sign(RB.velocity.x) != Mathf.Sign(force.x))
 | 
					 | 
				
			||||||
            force.x -= RB.velocity.x;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (RB.velocity.y < 0) //checks whether player is falling, if so we subtract the velocity.y (counteracting force of gravity). This ensures the player always reaches our desired jump force or greater
 | 
					 | 
				
			||||||
            force.y -= RB.velocity.y;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //Unlike in the run we want to use the Impulse mode.
 | 
					 | 
				
			||||||
        //The default mode will apply are force instantly ignoring masss
 | 
					 | 
				
			||||||
        //RB.AddForce(force, ForceMode2D.Impulse);
 | 
					 | 
				
			||||||
        #endregion
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    #endregion
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    #region OTHER MOVEMENT METHODS
 | 
					 | 
				
			||||||
    private void Slide()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        //Works the same as the Run but only in the y-axis
 | 
					 | 
				
			||||||
        //THis seems to work fine, buit maybe you'll find a better way to implement a slide into this system
 | 
					 | 
				
			||||||
        float speedDif = Data.slideSpeed - RB.velocity.y;
 | 
					 | 
				
			||||||
        float movement = speedDif * Data.slideAccel;
 | 
					 | 
				
			||||||
        //So, we clamp the movement here to prevent any over corrections (these aren't noticeable in the Run)
 | 
					 | 
				
			||||||
        //The force applied can't be greater than the (negative) speedDifference * by how many times a second FixedUpdate() is called. For more info research how force are applied to rigidbodies.
 | 
					 | 
				
			||||||
        movement = Mathf.Clamp(movement, -Mathf.Abs(speedDif) * (1 / Time.fixedDeltaTime), Mathf.Abs(speedDif) * (1 / Time.fixedDeltaTime));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        RB.AddForce(movement * Vector2.up);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    #endregion
 | 
					    #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #region CHECK METHODS
 | 
					    #region CHECK METHODS
 | 
				
			||||||
    public void CheckDirectionToFace(bool isMovingRight)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        // if (isMovingRight != IsFacingRight)
 | 
					 | 
				
			||||||
        //     Turn();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private bool CanJump()
 | 
					    private bool CanJump()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        if (!IsGrounded() && trumpet > 0)
 | 
					        if (!IsGrounded() && trumpet > 0)
 | 
				
			||||||
@@ -525,30 +416,11 @@ public class PlayerMovement : MonoBehaviour
 | 
				
			|||||||
        return LastOnGroundTime > 0 && !IsJumping;
 | 
					        return LastOnGroundTime > 0 && !IsJumping;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private bool CanWallJump()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return LastPressedJumpTime > 0 && LastOnWallTime > 0 && LastOnGroundTime <= 0 && (!IsWallJumping ||
 | 
					 | 
				
			||||||
             (LastOnWallRightTime > 0 && _lastWallJumpDir == 1) || (LastOnWallLeftTime > 0 && _lastWallJumpDir == -1));
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private bool CanJumpCut()
 | 
					    private bool CanJumpCut()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return IsJumping && RB.velocity.y > 0;
 | 
					        return IsJumping && RB.velocity.y > 0;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private bool CanWallJumpCut()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return IsWallJumping && RB.velocity.y > 0;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public bool CanSlide()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        if (LastOnWallTime > 0 && !IsJumping && !IsWallJumping && LastOnGroundTime <= 0)
 | 
					 | 
				
			||||||
            return true;
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
            return false;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public bool IsGrounded()
 | 
					    public bool IsGrounded()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        // print(Physics2D.OverlapBox(this.transform.position, _groundCheckSize, 0, _groundLayer) && !IsJumping);
 | 
					        // print(Physics2D.OverlapBox(this.transform.position, _groundCheckSize, 0, _groundLayer) && !IsJumping);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user