+ def check(self):
+ if self.name == 'move':
+ if len(self.args) > 0:
+ direction = self.args[0]
+ else:
+ direction = self.kwargs['direction']
+ test_pos = self.thing.position[:]
+ move_pos(direction, test_pos)
+ if test_pos[0] < 0 or test_pos[1] < 0 or \
+ test_pos[0] >= self.thing.world.map_size[0] or \
+ test_pos[1] >= self.thing.world.map_size[1]:
+ raise GameError('would move outside map bounds')
+ pos_i = test_pos[0] * self.thing.world.map_size[1] + test_pos[1]
+ map_tile = self.thing.world.map_[pos_i]
+ if map_tile != '.':
+ raise GameError('would move into illegal terrain')
+