Hmm... what's wrong with EntityInView or EntityVisible? It doesn't seem to assume three hundred sixty degrees of vision. There is some function, I think it is EntityPickMode, that will allow an entity to obscure other entities during an EntityVisible call, so objects in the way shouldn't be a problem if you set them up with that. Try that out.