(551008fc1) Abandon FixLeakObjective when the goto subobjective cannot be completed. Reset AIObjectiveLoops when the objective is activated or added. Don't clear ignored targets periodically by default. Calculate AIObjectiveGoTo CloseEnough when the objective is created. Don't use arm length in CloseEnough, because it's not used in range checks. Partial fixes to #1343.

This commit is contained in:
Joonas Rikkonen
2019-04-08 12:01:54 +03:00
parent 55eecc49d8
commit 47ee14227e
6 changed files with 56 additions and 28 deletions
@@ -34,9 +34,15 @@ namespace Barotrauma
public void AddObjective(AIObjective objective)
{
if (Objectives.Find(o => o.IsDuplicate(objective)) != null) return;
Objectives.Add(objective);
var duplicate = Objectives.Find(o => o.IsDuplicate(objective));
if (duplicate != null)
{
duplicate.Reset();
}
else
{
Objectives.Add(objective);
}
}
public Dictionary<AIObjective, CoroutineHandle> DelayedObjectives { get; private set; } = new Dictionary<AIObjective, CoroutineHandle>();