What you guys are doing here is essentially Topology 1.
Look at the Arena as a subset of R². (R = real numbers, missing the right symbol.)
Lets say, for simplicity, Arena = (0,3)x(0,4). Please not that those are open intervalls, meaning the Arena Walls do not count towards the arena. (0,0), the lower left corner of the Arena is not inside the Arena.
Each Zone is an
open subset of Arena. Each zone may definied as (i,1+1)x(j,j+1) for i=0,1,2; j=0,1,2,3.
(You cant define a topology this way, because the sets we call zone borders are in none of this open subsets.)
If an object is inside a zone, it occupies a
interior point of given Zone. That is a point for which a neigbourhood exists which is in the Zone as well. Take a small circle, put it around the point and stay in the zone.
Similary to the sum of 1/2+1/4+1/8+1/16+... you will find such a small circle, unless you are on the zone border. your circle will always contain points of another zone (or points outside the arena) if you're on the zone border.
Zone borders are the
boundaries of the
open subsets zone. They are defined by
closed subsets, ix[j,j+1] or [i,i+1]xj. This is where Walls are. Please note that they are excactly 1 point wide. Or high, depending on which one you look.
Objects other than walls can only exist in Zones. They have coordinates inside the zones. In our example a creature can never have a whole number as a coordinate.
That is ... it passes through two sides of the zone before reaching the zone border. The side of the zone is the farthest point within the zone, just before the zone stops existing and the zone border is reached. At least that is my interpretation of the terms zone border and side of the zone.
(I kinda lost myself here, but I guess the quote is what I want to prove wrong. Probably. It's fun anyway.)
To me, being on one side of of a zone border is being inside a zone.
There is no closest point to the wall, as you can always find another point. (Add 1/(2^(n+1)) and get closer to 1.)
Zone borders do not contain
interior points of Zones, therefore Zone borders are not inside zones.
If you draw a line from zone A to zone B, thats a set of points. You can track every single point you use on this way. If we want to see if LoS crosses two sides of a zone, we need to look at the set of points marking the way we took. We start inside a Zone and use a straight line, because that is how you check LoS.
Crossing a zone border is the same as adding a point to our way-set. Remember, zone borders are excactly one point wide. The point we add isn't inside any zone, it has a whole number as one coordinate. If you cross another zone border, you add another of those points.
Now we need to ask ourselves, does steep hill block our LoS?
Say Steep Hill is in the zone (i,i+1)x(j,j+1). And we start tracking LoS outside this zone.
If we cross 2 zone borders, steep hill blocks our LoS. We now check our way-set and look for points that meet at least one of 4 criterias:
-its coordinates are (i,x)
-its coordinates are (i+1,x)
-its coordinates are (x,j)
-its coordinates are (x,j+1),
where x doesn't matter.
We find 0, 1 or 2 of those points.
This is how many Zone borders we cross.
0 Zone Borders: LoS doesn't cross Steep hill. Stee Hill doesn't block LoS.
1: LoS goes into the zone with Steep Hill. Steep Hill doesn't block LoS.
OR 1: LoS crosses a corner of the Steep Hill zone. WIll come to this in a second.
2: LoS crosses the Steep Hill zone and Steep Hill blocks LoS.
The corner case (see what I did here?) is the most interesting. This is what we want to know.
Let us take a close look at our way-set now. We know it contains one point on Steep Hill zone's borders. It is (i,j); (i+1,j); (i,j+1) or (i+1,j+1).
Do you know what our way-set doesn't contain? Any point from our Steep Hill zone. Not a single one.
And this why I am saying:
Steep Hill doesn't block LoS if LoS crosses one of his zone's borders.His effect can't be used because his zone doesn't matter in that scenario.
q.e.d.
Anyone understood that? Not sure I did.