One of the more popular (simple) methods of determining whether something in the game world is visibility (or targetable) is to input the x,y coords for the target and the player and then walk along a line between them. At each step on the line, the game checks to see if anything is in the world at these coords that would prevent a player’s sight (like a wall).
There are a couple of articles describing how to do line of sight: