@Override
	public void run() {
		if (!locationAttribute.isInLargeArea(ctx)) {
			//ctx.log.info("large");
			doLarge();
		} else if (!locationAttribute.isInSmallArea(ctx)) {
			//ctx.log.info("small");
			final Tile destination = ctx.movement.destination();
			double distance = IMovement.Euclidean(ctx.players.local().tile(), destination);
			if (!destination.matrix(ctx).onMap() || distance > 100 || !locationAttribute.getSmallArea().contains(destination)) {
				doSmall();
			}
		}
	}