home · contact · privacy
Use math.isclose for square map FOVs too.
authorChristian Heller <c.heller@plomlompom.de>
Fri, 25 Jan 2019 04:27:01 +0000 (05:27 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Fri, 25 Jan 2019 04:27:01 +0000 (05:27 +0100)
server_/map_.py

index 836e540b75b89a4b99f3aa0b668d5f00e2a4951e..96021be8501951c48ab5402d170d4f0e9a3c67f6 100644 (file)
@@ -262,13 +262,15 @@ class MapFovSquare(MapSquare):
         def merge_cone(new_cone):
             for old_cone in self.shadow_cones:
                 if new_cone[0] > old_cone[0] and \
         def merge_cone(new_cone):
             for old_cone in self.shadow_cones:
                 if new_cone[0] > old_cone[0] and \
-                    new_cone[1] <= old_cone[0]:
+                    (new_cone[1] < old_cone[0] or
+                     math.isclose(new_cone[1], old_cone[0])):
                     #print('DEBUG merging to', old_cone)
                     old_cone[0] = new_cone[0]
                     #print('DEBUG merged cone:', old_cone)
                     return True
                 if new_cone[1] < old_cone[1] and \
                     #print('DEBUG merging to', old_cone)
                     old_cone[0] = new_cone[0]
                     #print('DEBUG merged cone:', old_cone)
                     return True
                 if new_cone[1] < old_cone[1] and \
-                    new_cone[0] >= old_cone[1]:
+                    (new_cone[0] > old_cone[1] or
+                     math.isclose(new_cone[0], old_cone[1])):
                     #print('DEBUG merging to', old_cone)
                     old_cone[1] = new_cone[1]
                     #print('DEBUG merged cone:', old_cone)
                     #print('DEBUG merging to', old_cone)
                     old_cone[1] = new_cone[1]
                     #print('DEBUG merged cone:', old_cone)
@@ -290,7 +292,7 @@ class MapFovSquare(MapSquare):
                     self.shadow_cones += [cone]
 
         #print('DEBUG', yx)
                     self.shadow_cones += [cone]
 
         #print('DEBUG', yx)
-        step_size = fractions.Fraction(CIRCLE, 4) / distance_to_center
+        step_size = (CIRCLE/4) / distance_to_center
         number_steps = dir_i * distance_to_center + dir_progress
         left_arm = correct_arm(-(step_size/2) - step_size*number_steps)
         right_arm = correct_arm(left_arm - step_size)
         number_steps = dir_i * distance_to_center + dir_progress
         left_arm = correct_arm(-(step_size/2) - step_size*number_steps)
         right_arm = correct_arm(left_arm - step_size)