public static boolean haveConversation(Option... options) {
		final TimedCondition stop = new TimedCondition(20000) {
			@Override
			public boolean isDone() {
				return !isOpen() && !Widgets.canContinue();
			}
		};
		while (stop.isRunning()) {
			if (Widgets.canContinue()) {
				final WidgetChild cont = Widgets.getContinue();
				Keyboard.sendText(" ", false);
				new TimedCondition(1000) {
					@Override
					public boolean isDone() {
						return !cont.visible();
					}
				}.waitStop();
			} else {
				for (Option opt : options) {
					if (opt.meets() && chooseOption(opt.getText())) {
						break;
					}
				}
			}
		}
		return stop.isDone();
	}