home · contact · privacy
Use one size standard for all maps that define the game world.
[plomrogue2-experiments] / new / plomrogue / things.py
index b64584182f31e3b322a3cd2b1c0e7f6c5a144fde..f020edae3d4f0cafe3f77d2ed0de252c3aa2553f 100644 (file)
@@ -80,7 +80,8 @@ class ThingAnimate(Thing):
         return target_direction
 
     def hunt_player(self):
-        visible_things, offset = self.get_visible_things()
+        visible_things = self.get_visible_things()
+        offset = self.get_surroundings_offset()
         target = None
         for t in visible_things:
             if t.type_ == 'human':
@@ -111,7 +112,8 @@ class ThingAnimate(Thing):
             if t.type_ == 'food':
                 self.set_task('PICKUP', (id_,))
                 return True
-        visible_things, offset = self.get_visible_things()
+        visible_things = self.get_visible_things()
+        offset = self.get_surroundings_offset()
         food_targets = []
         for t in visible_things:
             if t.type_ == 'food':
@@ -218,7 +220,7 @@ class ThingAnimate(Thing):
         self._surrounding_map = self.world.game.\
                                 map_type(size=(self._radius*2+1+int(add_line),
                                                self._radius*2+1))
-        size = self.world.maps[(0,0)].size
+        size = self.world.map_size
         offset = self.get_surroundings_offset()
         for pos in self._surrounding_map:
             big_y, small_y = pan_and_scan(size[0], pos[0], offset[0])
@@ -263,22 +265,23 @@ class ThingAnimate(Thing):
         stencil = self.get_stencil()
         offset = self.get_surroundings_offset()
         visible_things = []
-        size = self.world.maps[(0,0)].size
+        size = self.world.map_size
         fov_size = self.get_surrounding_map().size
         for thing in self.world.things:
             big_pos = thing.position[0]
             small_pos = thing.position[1]
             pos_y = calc_pos_in_fov(big_pos[0], small_pos[0], offset[0], size[0])
             pos_x = calc_pos_in_fov(big_pos[1], small_pos[1], offset[1], size[1])
-            if pos_y < 0 or pos_x < 0 or pos_y >= fov_size[0] or pos_x >= fov_size[1]:
+            if pos_y < 0 or pos_x < 0 or\
+               pos_y >= fov_size[0] or pos_x >= fov_size[1]:
                 continue
             if (not thing.in_inventory) and stencil[(pos_y, pos_x)] == '.':
                 visible_things += [thing]
-        return visible_things, offset
+        return visible_things
 
     def get_pickable_items(self):
         pickable_ids = []
-        visible_things, _ = self.get_visible_things()
+        visible_things = self.get_visible_things()
         for t in [t for t in visible_things if
                   isinstance(t, ThingItem) and
                   (t.position == self.position or