'This implements the actual traversal. The traverse lock has
already been checked (in the Exit command) at this point.
Args:
traversing_object (Object): Object traversing us.
target_location (Object): Where target is going.
Returns:
bool: True if the traverse is allowed to happen'

def at_traverse(self, traversing_object, target_location):

    itemcoordinates = self.location.wilderness.db.itemcoordinates
    current_coordinates = itemcoordinates[traversing_object]
    new_coordinates = get_new_coordinates(current_coordinates, self.key)
    if (not self.at_traverse_coordinates(traversing_object, current_coordinates, new_coordinates)):
        return False
    if (not traversing_object.at_before_move(None)):
        return False
    traversing_object.location.msg_contents('{}    leaves    to    {}'.format(traversing_object.key, new_coordinates), exclude=[traversing_object])
    self.location.wilderness.move_obj(traversing_object, new_coordinates)
    traversing_object.location.msg_contents('{}    arrives    from    {}'.format(traversing_object.key, current_coordinates), exclude=[traversing_object])
    traversing_object.at_after_move(None)
    return True
