@Override
    public Field move() {
        if (getTime() > Game.getInstance().getTime()) return null;
        super.move();
        if (isSleeping()) {
//            sleepTimer--;
            return null;
        }
        if (isLaying()) {
//            lyingTimer--;
            return null;
        }
        List<Field> neighbors = getField().getNeighbors();
        List<Field> list = new ArrayList<>();
        for (Field field : neighbors) {
            if (field instanceof BorderField || field.getGameObject() instanceof Drunkard &&
                    !((Drunkard) field.getGameObject()).isLaying())
                continue;
            list.add(field);
        }
        Random random = new Random();
        if (list.size() == 0)
            return null;
        return list.get(random.nextInt(list.size()));
    }