home · contact · privacy
Exclude non-portable things from pick_up selection.
[plomrogue2] / rogue_chat_curses.py
index c539062bcfe19db3e5d2fef294d7c220c2222eb9..e6ddda87a20f62e71d64974dba56ad82d1e1653c 100755 (executable)
@@ -194,7 +194,7 @@ def cmd_PLAYER_ID(game, player_id):
     game.player_id = player_id
 cmd_PLAYER_ID.argtypes = 'int:nonneg'
 
-def cmd_THING(game, yx, thing_type, protection, thing_id):
+def cmd_THING(game, yx, thing_type, protection, thing_id, portable):
     t = game.get_thing(thing_id)
     if not t:
         t = ThingBase(game, thing_id)
@@ -202,7 +202,8 @@ def cmd_THING(game, yx, thing_type, protection, thing_id):
     t.position = yx
     t.type_ = thing_type
     t.protection = protection
-cmd_THING.argtypes = 'yx_tuple:nonneg string:thing_type char int:nonneg'
+    t.portable = portable
+cmd_THING.argtypes = 'yx_tuple:nonneg string:thing_type char int:nonneg bool'
 
 def cmd_THING_NAME(game, thing_id, name):
     t = game.get_thing(thing_id)
@@ -630,7 +631,7 @@ class TUI:
             else:
                 self.log_msg('@ enter username')
         elif self.mode.name == 'take_thing':
-            self.log_msg('Things in reach for pick-up:')
+            self.log_msg('Portable things in reach for pick-up:')
             player = self.game.get_thing(self.game.player_id)
             select_range = [player.position,
                             player.position + YX(0,-1),
@@ -645,8 +646,7 @@ class TUI:
                     select_range += [player.position + YX(-1, -1),
                                      player.position + YX(1, -1)]
             self.selectables = [t for t in self.game.things
-                                if t != player and t.type_ != 'Player'
-                                and t.position in select_range]
+                                if t.portable and t.position in select_range]
             if len(self.selectables) == 0:
                 self.log_msg('none')
             else: