I know that the way you have the code set up isn't picking things correctly.
Like, if you had a player sprite and a block sprite, and when the player touches any block, it destroys the block. It doesn't destroy ALL the blocks, just the one you touch. That's because when you have the event "When Player collides with Block" it picks the specific player that touches the specific block. That's why only that block is destroyed.
So notice that your code says "if any characters have a line of sight to any characters" essentially. You need to add another condition that weeds out stuff that you don't want.
i managed to do this, and it works like you explained, it doesn't check if any or all, it checks for each one of them, now i gotta find a way to "invert" this code and check if there is no insance of characters on sight.
also thanks your tips are simple but they are helping me figure out stuff by bits faster than i'd be able to do if i tried by myself.