@Override
	protected void leave() {
		// Find north most door
		final GameObject door = ctx.objects.select().select(ObjectDefinition.name(ctx, "Door")).within(15).sort(new Comparator<GameObject>() {
			@Override
			public int compare(GameObject o1, GameObject o2) {
				return Integer.valueOf(o2.tile().y()).compareTo(o1.tile().y());
			}
		}).each(Interactive.doSetBounds(OSTutorialIsland.BOUNDS_DOOR_EW)).poll();
		if (ctx.camera.prepare(door) && npc().valid() && door.click("Open")) {
			Condition.sleep(1000);
			if (Condition.wait(new Callable<Boolean>() {
				@Override
				public Boolean call() throws Exception {
					return ctx.chat.visible("Now, how about showing some feelings?");
				}
			}, 200, 40)) {
				Condition.sleep(500);
			}
		}
	}