After that I also tried to Improve the jump by making in dependant on how long you held to jump button. The normal way to do this is have a few frames of "charge" but I wanted to try something different. What I did was set the players Y velocity while they held the jump button, or until a certain amount of time has passed, after that I just let gravity take effect. This resulted in a jump that was pretty snappy since they had a constant speed during their jump.
Next was the dash, which was rather simple. I just set the players speed to a direction times their dash speed for a set time, When the dash was over I then set it the the players max speed in their dash direction. This worked since their top-speed was lower than their dash speed, which meant they had more control after dashing. Of course the one in the video is a earlier version than what's in the final product.
Last step for the player was then to add the wall hang and climb. This code went through various iterations, but the final one worked like this: We used a trigger boxes on either side of the player, this was so that player had more time to react to when they approached of moved away from a wall. We then check if either box was colliding, if they did, we let them hold on to the wall and then slowly slide them down a wall in a increasing speed. If they pressed space though, we would initalize a walljump in the other direction from the wall they're touching. This used similiar logic to the jump to allow for varying length.