1 (edited by NasPolkovnik 2011-12-04 18:34:21)

Topic: Предложение: добавить к комнате свойство

Что имеем: в списке переходов из комнаты название переходов отображается так, как указано в свойстве "nam".

В чём проблема: иногда это не совсем красиво с точки зрения языка. Например, находимся мы у корабля, логично сцену назвать "у корабля" или "рядом с кораблём". Но в списке переходов это некрасиво, было бы гораздо лучше видеть "к кораблю".  Ещё хуже дело обстоит, если разработчику хочется переходы назвать "направо", "налево"; подобные названия комнат просто нелепы (и автор вынужден такие ссылки размещать в dsc).

Предложение: добавить к списку свойств ещё одно (название пока не придумалось, например, way_nam или out_nam), опциональное. Если оно указано, то в списке переходов будет отображаться текст из out_nam, иначе из nam.

Пример:
near_ship = room {
  nam = 'У корабля';
  out_nam = 'к кораблю';
}

Как думаете, будет такая фича полезной? Какие видите плюсы, минусы?

Re: Предложение: добавить к комнате свойство

Есть такая штука, vroom - по идее она делает то, что нужно. То-есть - как видим комнату извне и куда переходим, Вроде бы есть в особняке, и в других моих играх (в коте нет - там старый код)
Например:

way = { vroom('Отойти от двери', 'saloon2') };

Еще есть штука - как выглядит комната пока в нее не зашли, и потом - когда уже были. В особняке - может напишу как-нибудь статью. Это все как доп фичи - пишется на существующем инстеде в виде небольшого кода.

P.S.  к сожалению в док-ции на вики ошибочно описан vroom. Исправляю.

еще можно сделать так:

room = stead.inherit(room, function(v)
            v.orig_nam = v.nam;
            v.nam = function(s)
                    if here() == s or not s.out_nam then
                            return call(s, 'orig_nam')
                    end
                    return call(s, 'out_nam')
            end
           return v
end)

И получить описанное в 1-м посте поведение.

Re: Предложение: добавить к комнате свойство

Спасибо. Поизучаю.