Line of Sight?
Should only see the wendigo in one since figures block line of sight. Don't see how the ice wurm can be seen at all. Nor the space behind the wendigo. There is simply no path to that space.
Should be able to see only the closest ice wurm (where the wendigo was) in the second because you can trace a straight line to any one of its squares without hitting anything else. This picture seems correct except for the square by the north door.
Ok, maybe an explanation should be in order.
This program traces lines from a valid algorithm used in many other programs. Right now it simply makes one assumption that a monster cannot block line of sight if the line of sight is blocked to it.
Right now this is done by a square to square basis, not recognizing that the monster can be in several squares. So all squares seen to be visible from the green square are indeed objectively correct under this assumption.
I'm now looking for a fix, but I think I may have found it, but I need to test it out:
A monster can be seen if any of it squares can be seen and then blocks LOS in any of its squares. And a monster cannot block line of sight to itself.
This should fix it, but makes it a bit harder to implement.
Hm...yeah, your pictures are correct based on the algorithm you implemented.
So I guess the question is, are you trying to implement a program that traces LOS according to the official rules, or according to your house rules?
Officially, originally, monsters blocked LOS whether you could see them or not. It's a simple rule, and easy to resolve. But it created a weird situation where you can have a line of monsters and not see any of them because each is blocking LOS to the one behind it.
So one of the developers suggested that monsters that aren't within LOS shouldn't block LOS. This...actually creates a bunch of new problems. First of all, it's ambiguous, as you observed. If you resolve each square of the monster individually, you get really bizarre results, as you've discovered--but if you don't, it creates paradoxes, because monsters actually can block LOS to themselves, as shown (and specifically pointed out) in the diagram on page 10 of the rules. Even if you were to change that (which I wouldn't recommend), the nature of the rule inherently promotes paradoxes--there are half a dozen interesting LOS-related abilities or props I can think of that don't currently exist, but easily could, and would tie this rule up in knots if they did.
And that's hardly the end of the problems. The rule creates situations where having the Precision skill actually prevents you from tracing LOS to monsters you could otherwise see. It lets you trace LOS straight through the middle of a multi-space monster as long as you can't trace LOS to the center of any of its individual spaces. It also creates asymmetrical situations, where figure A can see figure B, but figure B can't see figure A. Staircases can allow you to see a monster you otherwise couldn't, and thus block LOS to another monster you otherwise could see. It's a total mess.
IMO, saying that monsters not in LOS shouldn't block LOS was a mistake; a spur-of-the-moment, ill-considered ruling that creates more problems than it solves. I recommend players just ignore it, and if you want to attack the monsters in the original pathological case, suck it up and spend a fatigue to get into a better position.
If you want to include it, you're going to need to figure out what you want your program to do in a bunch of these weird situations. There's no clear ruling, and I very much doubt you'll ever get one, so you'll pretty much just have to make up your own rules.
Bottom line, anomalies will appear if your program uses rules that even resemble any version of the official rules. That's the game.
Antistone said:
Hm...yeah, your pictures are correct based on the algorithm you implemented.
So I guess the question is, are you trying to implement a program that traces LOS according to the official rules, or according to your house rules?
Officially, originally, monsters blocked LOS whether you could see them or not. It's a simple rule, and easy to resolve. But it created a weird situation where you can have a line of monsters and not see any of them because each is blocking LOS to the one behind it.
So one of the developers suggested that monsters that aren't within LOS shouldn't block LOS. This...actually creates a bunch of new problems. First of all, it's ambiguous, as you observed. If you resolve each square of the monster individually, you get really bizarre results, as you've discovered--but if you don't, it creates paradoxes, because monsters actually can block LOS to themselves, as shown (and specifically pointed out) in the diagram on page 10 of the rules. Even if you were to change that (which I wouldn't recommend), the nature of the rule inherently promotes paradoxes--there are half a dozen interesting LOS-related abilities or props I can think of that don't currently exist, but easily could, and would tie this rule up in knots if they did.
And that's hardly the end of the problems. The rule creates situations where having the Precision skill actually prevents you from tracing LOS to monsters you could otherwise see. It lets you trace LOS straight through the middle of a multi-space monster as long as you can't trace LOS to the center of any of its individual spaces. It also creates asymmetrical situations, where figure A can see figure B, but figure B can't see figure A. Staircases can allow you to see a monster you otherwise couldn't, and thus block LOS to another monster you otherwise could see. It's a total mess.
IMO, saying that monsters not in LOS shouldn't block LOS was a mistake; a spur-of-the-moment, ill-considered ruling that creates more problems than it solves. I recommend players just ignore it, and if you want to attack the monsters in the original pathological case, suck it up and spend a fatigue to get into a better position.
If you want to include it, you're going to need to figure out what you want your program to do in a bunch of these weird situations. There's no clear ruling, and I very much doubt you'll ever get one, so you'll pretty much just have to make up your own rules.
Bottom line, anomalies will appear if your program uses rules that even resemble any version of the official rules. That's the game.
Where is the "thumbs up" button for this post? I think I have been spending too much time on BGG.
It's not aproblem anymore.
Everything is working fine now and LOS is even calculated with the ruling in mind.
Right now I just need to implement LOS for stairs and pits.