Skip to content

Docs: Darkness, isDark, infravision, dark rooms

Kit Oliynyk edited this page Oct 13, 2021 · 1 revision

Функции и методы для работы с темнотой

Room::isDark() (src/core/room.cpp)

Возвращает true если в комнате темно. Проверяет на кол-во источников света у всех существ в комнате (поле комнаты light), флаги комнаты dark, тип местности и время суток.

Используется для проверок:

  • видит ли чар другого чара, предмет или выход в темной комнате (нет если нету инфразрения)
  • в темной комнате труднее выбить двери
  • видны ли названия выходов по команде exits
  • видно ли название комнаты в промпте
  • в темной комнате существа с инфразрением отображаются как "взгляд красных глаз"
  • из функции eyes_darkened

eyes_darkened() (plug-ins/loadsave/character.cpp)

Возвращает true если для персонажа здесь "слишком темно". Помимо isDark() для комнаты, также проверяет, нету ли на персонаже holylight, не вампир ли и не призрак ли -- им видно даже в темноте.

Используется для проверок:

  • можно ли показывать название новой зоны, куда только что попали
  • видно ли название и описание комнаты (и предметов в ней) по look, или же видно только "Здесь слишком темно..." и персонажи
  • аналогично при беге
  • любая попытка посмотреть куда-то в темноте покажет "Тебе не удается ничего разглядеть в кромешной темноте"
  • видно ли название зоны и кто рядом по команде where
Clone this wiki locally