home · contact · privacy
Fix empty portal/annotation lists counting as None, erronously triggering thing data...
[plomrogue2] / plomrogue / game.py
index ba7c285c83a1c49d32ae0ca96aafaf869f2ca59c..9a9b235cd454a13187a6058b88cdc7fe513238ec 100755 (executable)
@@ -215,7 +215,7 @@ class Game(GameBase):
             t.uncarry()
         self.things.remove(t)
         self.record_change(t.position, 'other')
-        if t.blocking:
+        if t.blocks_light:
             self.record_change(t.position, 'fov')
 
     def add_thing(self, type_, position, id_=0):
@@ -228,7 +228,7 @@ class Game(GameBase):
         else:
             self.things += [t]
         self.record_change(t.position, 'other')
-        if t.blocking:
+        if t.blocks_light:
             self.record_change(t.position, 'fov')
         return t
 
@@ -252,9 +252,9 @@ class Game(GameBase):
                 player.prepare_multiprocessible_fov_stencil()
                 player_fovs += [player._fov]
                 player_ids_send_fov += [player.id_]
-            if not (player._seen_things
-                    and player._seen_annotation_positions
-                    and player._seen_portal_positions):
+            if None in (player._seen_things,
+                        player._seen_annotation_positions,
+                        player._seen_portal_positions):
                 player_ids_send_other += [player.id_]
         new_fovs = []
         single_core_until = 16  # since multiprocess has its own overhead
@@ -510,7 +510,7 @@ class Game(GameBase):
                     write(f, 'GOD_THING_NAME %s %s' % (t.id_, quote(t.name)))
                 if hasattr(t, 'installable') and (not t.portable):
                     write(f, 'THING_INSTALLED %s' % t.id_)
-                if t.type_ == 'Door' and t.blocking:
+                if t.type_ == 'Door' and t.blocks_movement:
                     write(f, 'THING_DOOR_CLOSED %s' % t.id_)
                 elif t.type_ == 'Hat':
                     write(f, 'THING_HAT_DESIGN %s %s' % (t.id_,