'Implements the actual traversal, using utils.delay to delay the move_to.'

def at_traverse(self, traversing_object, target_location):

    move_speed = (traversing_object.db.move_speed or 'walk')
    move_delay = MOVE_DELAY.get(move_speed, 4)
    def move_callback():
        'This    callback    will    be    called    by    utils.delay    after    move_delay    seconds.'
        source_location = traversing_object.location
        if traversing_object.move_to(target_location):
            self.at_after_traverse(traversing_object, source_location)
        elif self.db.err_traverse:
            self.caller.msg(self.db.err_traverse)
        else:
            self.at_failed_traverse(traversing_object)
    traversing_object.msg(('You    start    moving    %s    at    a    %s.' % (self.key, move_speed)))
    deferred = utils.delay(move_delay, callback=move_callback)
    traversing_object.ndb.currently_moving = deferred
