(779fe50ee) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev

This commit is contained in:
Joonas Rikkonen
2019-05-16 06:42:08 +03:00
parent 42f287e254
commit 114fada396
23 changed files with 295 additions and 306 deletions
@@ -53,12 +53,13 @@ namespace Barotrauma
(currentPath.NextNode != null && currentPath.NextNode.Ladders != null));
/// <summary>
/// Returns true if the current or the next node is in stairs.
/// Returns true if the previous, current or the next node is in stairs.
/// </summary>
public bool InStairs =>
currentPath != null &&
currentPath.CurrentNode != null && (currentPath.CurrentNode.Stairs != null ||
(currentPath.NextNode != null && currentPath.NextNode.Stairs != null));
currentPath != null && (
currentPath.PrevNode != null && currentPath.PrevNode.Stairs != null ||
currentPath.CurrentNode != null && currentPath.CurrentNode.Stairs != null ||
currentPath.NextNode != null && currentPath.NextNode.Stairs != null);
public bool IsNextNodeLadder
{
@@ -303,11 +304,11 @@ namespace Barotrauma
float horizontalDistance = Math.Abs(collider.SimPosition.X - currentPath.CurrentNode.SimPosition.X);
bool isAboveFeet = currentPath.CurrentNode.SimPosition.Y > colliderBottom.Y;
bool isNotTooHigh = currentPath.CurrentNode.SimPosition.Y < colliderBottom.Y + characterHeight;
if (InStairs)
if (currentPath.CurrentNode != null && currentPath.CurrentNode.Stairs != null)
{
float multiplierX = MathHelper.Lerp(1, 10, MathHelper.Clamp(Math.Abs(velocity.X) / 10, 0, 1));
float multiplierY = MathHelper.Lerp(1, 10, MathHelper.Clamp(Math.Abs(velocity.Y) / 10, 0, 1));
float verticalDistance = Math.Abs(collider.SimPosition.Y - currentPath.CurrentNode.SimPosition.Y);
float verticalDistance = Math.Abs(colliderBottom.Y - currentPath.CurrentNode.SimPosition.Y);
float targetDistX = collider.radius * multiplierX;
float targetDistY = collider.radius * multiplierY;
if (horizontalDistance < targetDistX && verticalDistance < targetDistY && isAboveFeet && isNotTooHigh)