(87a0f7ac8) If the bot is on a different level than the target, keep running to the target. i.e. Cannot use linear distance calculation inside the sub.

This commit is contained in:
Joonas Rikkonen
2019-06-04 16:40:41 +03:00
parent 7f5a6f77dd
commit 440393d0cd
@@ -150,7 +150,23 @@ namespace Barotrauma
bool run = objectiveManager.CurrentObjective.ForceRun || objectiveManager.GetCurrentPriority() > AIObjectiveManager.RunPriority;
if (ObjectiveManager.CurrentObjective is AIObjectiveGoTo goTo && goTo.Target != null)
{
run = Vector2.DistanceSquared(Character.WorldPosition, goTo.Target.WorldPosition) > 300 * 300;
if (Character.CurrentHull == null)
{
run = Vector2.DistanceSquared(Character.WorldPosition, goTo.Target.WorldPosition) > 300 * 300;
}
else
{
float yDiff = goTo.Target.WorldPosition.Y - Character.WorldPosition.Y;
if (Math.Abs(yDiff) > 100)
{
run = true;
}
else
{
float xDiff = goTo.Target.WorldPosition.X - Character.WorldPosition.X;
run = Math.Abs(xDiff) > 300;
}
}
}
if (run)
{