private void makeFire() {
		final Tile playerTile = ctx.players.local().tile();
		if (ctx.objects.select().at(playerTile).select(ObjectDefinition.name(ctx, "Fire")).isEmpty()) {
			if (ctx.inventory.itemOnItem(TINDERBOX, LOGS)) {
				Condition.wait(new Callable<Boolean>() {
					@Override
					public Boolean call() throws Exception {
						return ctx.chat.visible("Click on the flashing bar graph icon");
					}
				}, 200, 20);
			}
		} else {
			LogicailArea area = new LogicailArea(playerTile.derive(-3, -3), playerTile.derive(4, 4));
			final ArrayList<Tile> tiles = new ArrayList<Tile>(area.getReachable(ctx));
			Collections.shuffle(tiles);
			for (final Tile tile : tiles) {
				if (!ctx.objects.select().at(tile).select(ObjectDefinition.name(ctx, "Fire")).isEmpty()) {
					continue;
				}

				if (ctx.movement.myWalk(tile)) {
					Condition.wait(new Callable<Boolean>() {
						@Override
						public Boolean call() throws Exception {
							return !ctx.players.local().inMotion() || ctx.players.local().tile().equals(tile);
						}
					}, 200, 10);
				}
				return;
			}
		}
	}