(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:
@@ -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>();
|
||||
|
||||
Reference in New Issue
Block a user