removed wall run tutorial and fixed wall run leave auto dash
This commit is contained in:
@@ -360,6 +360,7 @@ public partial class PlayerController : CharacterBody3D,
|
||||
|
||||
private Transition _onJumpFromWall;
|
||||
private Transition _onJumpFromWallFalling;
|
||||
private Transition _onJumpFromWallRunning;
|
||||
private Transition _onLeaveWallFromRun;
|
||||
private Transition _onAirborneToGrounded;
|
||||
|
||||
@@ -502,6 +503,7 @@ public partial class PlayerController : CharacterBody3D,
|
||||
_mantling = StateChartState.Of(GetNode("StateChart/Root/Movement/Mantling"));
|
||||
_onJumpFromWall = Transition.Of(GetNode("StateChart/Root/Movement/OnWall/OnJump"));
|
||||
_onJumpFromWallFalling = Transition.Of(GetNode("StateChart/Root/Movement/Airborne/Falling/OnWallJump"));
|
||||
_onJumpFromWallRunning = Transition.Of(GetNode("StateChart/Root/Movement/OnWall/Running/OnJump"));
|
||||
_onWall = StateChartState.Of(GetNode("StateChart/Root/Movement/OnWall"));
|
||||
_onWallHugging = StateChartState.Of(GetNode("StateChart/Root/Movement/OnWall/Hugging"));
|
||||
_onWallHanging = StateChartState.Of(GetNode("StateChart/Root/Movement/OnWall/Hanging"));
|
||||
@@ -629,6 +631,7 @@ public partial class PlayerController : CharacterBody3D,
|
||||
|
||||
_onJumpFromWall.Taken += OnJumpFromWall;
|
||||
_onJumpFromWallFalling.Taken += OnJumpFromWall;
|
||||
_onJumpFromWallRunning.Taken += OnJumpFromWall;
|
||||
_onLeaveWallFromRun.Taken += OnLeaveWallFromRun;
|
||||
_onAirborneToGrounded.Taken += OnAirborneToGrounded;
|
||||
|
||||
@@ -1192,7 +1195,7 @@ public partial class PlayerController : CharacterBody3D,
|
||||
// return;
|
||||
|
||||
var newWallNormal = WallHugSystem.WallHugNormal.UnwrapOr(Vector3.Up);
|
||||
// if (newWallNormal.AngleTo(_wallHugStartNormal) > Mathf.Pi/4) return;
|
||||
if (newWallNormal.AngleTo(_wallHugStartNormal) > Mathf.Pi/4 && _onWall.Active) return;
|
||||
_wallHugStartNormal = newWallNormal;
|
||||
}
|
||||
|
||||
@@ -1296,7 +1299,6 @@ public partial class PlayerController : CharacterBody3D,
|
||||
|
||||
public bool ShouldStartWallRun()
|
||||
{
|
||||
GD.Print(_wallHugStartNormal);
|
||||
if (_wallHugStartNormal.Length() < Mathf.Epsilon)
|
||||
{
|
||||
// GD.Print("No wall normal");
|
||||
@@ -1365,7 +1367,7 @@ public partial class PlayerController : CharacterBody3D,
|
||||
|
||||
public bool IsInputForwardOrTowardsWall()
|
||||
{
|
||||
return GetInputLocalHDirection().Z < -0.2f || IsInputTowardsWall(_wallHugStartNormal);
|
||||
return IsPlayerInputtingForward() || IsInputTowardsWall(_wallHugStartNormal);
|
||||
}
|
||||
|
||||
public bool CanKeepWallRun()
|
||||
@@ -1440,12 +1442,7 @@ public partial class PlayerController : CharacterBody3D,
|
||||
}
|
||||
|
||||
|
||||
if (_onWallRunning.Active || _onWallHanging.Active) // Always allow jumping out of wall run and hang
|
||||
{
|
||||
_playerState.SendEvent("wall_jump");
|
||||
return;
|
||||
}
|
||||
if (_onWallHugging.Active && _isWallJumpAvailable) // Limit number of jumps doable when hugging
|
||||
if (_onWall.Active) // Always allow jumping out of wall run and hang
|
||||
{
|
||||
_playerState.SendEvent("wall_jump");
|
||||
return;
|
||||
@@ -1547,19 +1544,10 @@ public partial class PlayerController : CharacterBody3D,
|
||||
|
||||
SetHorizontalVelocity(currentHorizontalVelocity + wallJumpHorizontalVelocity);
|
||||
}
|
||||
|
||||
public bool IsOnWallForLongEnough()
|
||||
{
|
||||
return _timeOnWall >= 0.1f;
|
||||
}
|
||||
|
||||
public void OnJumpFromWall()
|
||||
{
|
||||
// if (!IsFacingWall() || (!_isWallJumpAvailable && IsFacingWall()))
|
||||
// {
|
||||
// ComputeJumpFromWallHSpeed(WallJumpStartVelocity);
|
||||
// }
|
||||
if (IsOnWallForLongEnough() || _onWallRunning.Active)
|
||||
if (!IsFacingWall() || (!_isWallJumpAvailable && IsFacingWall()) || _onWallRunning.Active)
|
||||
ComputeJumpFromWallHSpeed(WallJumpStartVelocity);
|
||||
|
||||
// OnJumpStarted(DoubleJumpStartVelocity);
|
||||
|
||||
Reference in New Issue
Block a user