public static BTStatus Swim(Animal agent, Vector2 direction, float speed, AnimalAnimationState state, bool surface, int tries = 10) { var targetPos = AIUtilities.FindTargetSwimPosition(agent.Position, 5.0f, 20.0f, direction, 90, 360, tries, surface); if (targetPos == agent.Position) return BTStatus.Failure; agent.AnimationState = state; agent.Target.Set(agent.Position, targetPos, speed); agent.NextTick = agent.Target.TargetTime; return BTStatus.Success; }