code: public boolean tick (Pathable pable, long tickStamp)
      {
          // see if we need to stop
          if (_stopTime <= tickStamp) {
              boolean updated = updatePositionTo(pable, _sx, _sy);
              pable.pathCompleted(tickStamp);
              return updated;
          }
  
          // see if it's time to move..
          if (_nextMove > tickStamp) {
              return false;
          }
  
          // when bobbling, it's bad form to bobble into the same position
          int newx, newy;
          do {
              newx = _sx + RandomUtil.getInt(_dx * 2 + 1) - _dx;
              newy = _sy + RandomUtil.getInt(_dy * 2 + 1) - _dy;
          } while (! updatePositionTo(pable, newx, newy));
  
          // and update the next time to move
          _nextMove = tickStamp + _updateFreq;
          return true;
      }
docs: documentation inherited from interface Path