diff --git a/squirrelbattle/interfaces.py b/squirrelbattle/interfaces.py index 30e59f4..c1c224f 100644 --- a/squirrelbattle/interfaces.py +++ b/squirrelbattle/interfaces.py @@ -206,15 +206,12 @@ class Map: else: top_y = ceil(((x * 2 - 1) * top.Y + top.X) / (top.X * 2)) if self.is_wall(top_y, x, octant, origin): - if top >= Slope(top_y * 2 + 1, x * 2) and not\ - self.is_wall(top_y + 1, x, octant, origin): - top_y += 1 + top_y += top >= Slope(top_y * 2 + 1, x * 2) and not \ + self.is_wall(top_y + 1, x, octant, origin) else: ax = x * 2 - if self.is_wall(top_y + 1, x + 1, octant, origin): - ax += 1 - if top > Slope(top_y * 2 + 1, ax): - top_y += 1 + ax += self.is_wall(top_y + 1, x + 1, octant, origin) + top_y += top > Slope(top_y * 2 + 1, ax) return top_y def crop_bottom_visibility(self, octant: int, origin: Tuple[int, int], @@ -224,10 +221,9 @@ class Map: else: bottom_y = ceil(((x * 2 - 1) * bottom.Y + bottom.X) / (bottom.X * 2)) - if bottom >= Slope(bottom_y * 2 + 1, x * 2) and\ - self.is_wall(bottom_y, x, octant, origin) and\ - not self.is_wall(bottom_y + 1, x, octant, origin): - bottom_y += 1 + bottom_y += bottom >= Slope(bottom_y * 2 + 1, x * 2) and \ + self.is_wall(bottom_y, x, octant, origin) and \ + not self.is_wall(bottom_y + 1, x, octant, origin) return bottom_y def compute_visibility_octant(self, octant: int, origin: Tuple[int, int], @@ -254,8 +250,7 @@ class Map: continue if is_opaque and was_opaque == 0: nx, ny = x * 2, y * 2 + 1 - if self.is_wall(y + 1, x, octant, origin): - nx -= 1 + nx -= self.is_wall(y + 1, x, octant, origin) if top > Slope(ny, nx): if y == bottom_y: bottom = Slope(ny, nx) @@ -264,14 +259,12 @@ class Map: self.compute_visibility_octant( octant, origin, max_range, x + 1, top, Slope(ny, nx)) - else: - if y == bottom_y: - return + elif y == bottom_y: # pragma: no cover + return elif not is_opaque and was_opaque == 1: nx, ny = x * 2, y * 2 + 1 - if self.is_wall(y + 1, x + 1, octant, origin): - nx += 1 - if bottom >= Slope(ny, nx): + nx += self.is_wall(y + 1, x + 1, octant, origin) + if bottom >= Slope(ny, nx): # pragma: no cover return top = Slope(ny, nx) was_opaque = is_opaque