entity() HomeFindTarget = 
{
	local entity head, selected;
	local float dist;
	dist = 100000;
	selected = world;
	head = findradius(self.origin, 100000);
	while(head)
	{
		if( (head.health > 1) && (head != self) )
		{
			traceline(self.origin,head.origin,TRUE,self);
			if ( Homeinfront(head) && (trace_fraction >= 1) && (vlen(head.origin - self.origin) < dist) && (head.classname != "door") )
			{
				selected = head;
				dist = vlen(head.origin - self.origin);
			}
		}		
		head = head.chain;
	}
	if (selected != world)
	{
		sprint (self.owner,"Homing->");
		if (selected.classname == "player")
		{
			sprint (self.owner,selected.netname);
			sprint (selected,self.owner.netname);
			sprint (selected," has a bogey on you!\n");
		}
		else
			sprint (self.owner,selected.classname);
		sprint (self.owner,"\n");
	}
	return selected;
};
