Tons of AI + pathfinding bugfixes:
- waypoints are created between docked subs and removed when they undock - fixed start waypoint being left out of steering paths - NPCs won't close doors/hatches on themselves - NPCs won't let go of ladders until their feet are above the lower edge of the hull - fixed FindDivingGear "loops": need to find a suit -> need to get to a suit -> need a suit to get to the suit -> need to find a suit... - fixed characters constantly turning from side to side in small rooms - recursive function for finding the button which opens a door (so a button doesn't have to be connected straight to a door for an NPC to be able to open it) - AIObjectiveGetItem keeps searching for more suitable items even if a path to a matching item has been found
This commit is contained in:
@@ -814,7 +814,7 @@ namespace Barotrauma
|
||||
}
|
||||
else
|
||||
{
|
||||
notClimbing = targetMovement.X != 0.0f;
|
||||
notClimbing = Math.Abs(targetMovement.X) > 0.05f;
|
||||
}
|
||||
|
||||
//stop climbing if:
|
||||
|
||||
@@ -74,6 +74,11 @@ namespace Barotrauma
|
||||
}
|
||||
}
|
||||
|
||||
public float FloorY
|
||||
{
|
||||
get { return floorY; }
|
||||
}
|
||||
|
||||
public float Mass
|
||||
{
|
||||
get;
|
||||
@@ -330,14 +335,8 @@ namespace Barotrauma
|
||||
lowestLimb.Position.X - structure.Rect.X : structure.Rect.Width - (lowestLimb.Position.X - structure.Rect.X);
|
||||
|
||||
|
||||
if (character.IsDead)
|
||||
{
|
||||
if (lowestLimb.Position.Y < structure.Rect.Y - structure.Rect.Height + stairPosY - 10.0f) return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (lowestLimb.Position.Y < structure.Rect.Y - structure.Rect.Height + stairPosY) return false;
|
||||
}
|
||||
if (lowestLimb.Position.Y < structure.Rect.Y - structure.Rect.Height + stairPosY - 10.0f) return false;
|
||||
|
||||
|
||||
|
||||
if (targetMovement.Y < 0.5f)
|
||||
@@ -477,7 +476,10 @@ namespace Barotrauma
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (ignorePlatforms)
|
||||
{
|
||||
GUI.DrawLine(spriteBatch, new Vector2(refLimb.WorldPosition.X, -refLimb.WorldPosition.Y), new Vector2(refLimb.WorldPosition.X, -refLimb.WorldPosition.Y+50), Color.Orange, 0, 5);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void Flip()
|
||||
|
||||
Reference in New Issue
Block a user