private MobileIdNameQuery<Npc> getAncestor() {
		return ctx.npcs.select().select(new Filter<Npc>() {
			@Override
			public boolean accept(Npc npc) {
				if (Arrays.binarySearch(ANCESTOR_IDS, npc.id()) >= 0) {
					final Actor interacting = npc.interacting();
					return (interacting == null || !npc.inCombat() || (interacting.equals(ctx.players.local()) && npc.healthPercent() > 0)) && ctx.movement.distance(options.getAreaSmall().getCentralTile(), npc) < 50;
				}
				return false;
			}
		}).first();
	}