(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:
@@ -150,7 +150,23 @@ namespace Barotrauma
|
|||||||
bool run = objectiveManager.CurrentObjective.ForceRun || objectiveManager.GetCurrentPriority() > AIObjectiveManager.RunPriority;
|
bool run = objectiveManager.CurrentObjective.ForceRun || objectiveManager.GetCurrentPriority() > AIObjectiveManager.RunPriority;
|
||||||
if (ObjectiveManager.CurrentObjective is AIObjectiveGoTo goTo && goTo.Target != null)
|
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)
|
if (run)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user