+ elif self.mode.name == 'take_thing':
+ self.log_msg('Portable things in reach for pick-up:')
+ select_range = [self.game.player.position,
+ self.game.player.position + YX(0,-1),
+ self.game.player.position + YX(0, 1),
+ self.game.player.position + YX(-1, 0),
+ self.game.player.position + YX(1, 0)]
+ if type(self.game.map_geometry) == MapGeometryHex:
+ if self.game.player.position.y % 2:
+ select_range += [self.game.player.position + YX(-1, 1),
+ self.game.player.position + YX(1, 1)]
+ else:
+ select_range += [self.game.player.position + YX(-1, -1),
+ self.game.player.position + YX(1, -1)]
+ self.selectables = [t.id_ for t in self.game.things
+ if t.portable and t.position in select_range]
+ if len(self.selectables) == 0:
+ return fail('nothing to pick-up')
+ else:
+ for i in range(len(self.selectables)):
+ t = self.game.get_thing(self.selectables[i])
+ self.log_msg(str(i) + ': ' + self.get_thing_info(t))
+ elif self.mode.name == 'drop_thing':
+ self.log_msg('Direction to drop thing to:')
+ self.selectables =\
+ ['HERE'] + list(self.game.tui.movement_keys.values())
+ for i in range(len(self.selectables)):
+ self.log_msg(str(i) + ': ' + self.selectables[i])