// This prevents boss from getting stuck in door ways at the edge of the room. private IEnumerator PathBackToCenter(AIActor target, Vector2 returnPosition) { if (!target) { target.BehaviorVelocity = Vector2.zero; target.BehaviorOverridesVelocity = true; m_IsPathfindingToCenter = false; yield break; } float elapsed = 0f; target.BehaviorOverridesVelocity = false; target.ClearPath(); target.PathfindToPosition(returnPosition, canPassOccupied: true); yield return(null); while (!target.PathComplete) { elapsed += BraveTime.DeltaTime; if (elapsed > 20) { target.BehaviorOverridesVelocity = true; target.ClearPath(); m_IsPathfindingToCenter = false; yield break; } yield return(null); } target.BehaviorOverridesVelocity = true; m_IsPathfindingToCenter = false; yield break; }