public boolean summon(Familiar familiar) {
		if (!canSummon(familiar)) {
			return false;
		}

		// Close bank
		if (ctx.bank.opened()) {
			ctx.bank.close();
			ctx.sleep(500);
		}

		final Item pouch = ctx.backpack.shuffle().poll();
		if (ctx.hud.open(Hud.Window.BACKPACK)) {
			ctx.sleep(400);
			return pouch.valid() && ctx.backpack.scroll(pouch) && pouch.interact("Summon");
		}

		return false;
	}