Я сделал очередную мало кому нужную приблуду -- и пишут об этом.
При игре в нетхак надо знать, какие свойства есть у каждого моба. Игра их не показывает. Чаще всего, приходится смотреть их на нетхаквики. В некоторых вариантах есть встроенная энциклопедия, называемая, естественно, Pokedex, но информация в ней неполна.
Я устал постоянно открывать нетхаквики. Это долго.
(читать дальше)Поэтому сначала я написал короткий скрипт, который выдаёт шаблон для печатной таблицы. А через три года решил сделать программу, которая мгновенно показывает карточку любого моба, причём не только для "ванильного" нетхака, но и для нескольких форков. Чем я и занялся, потратив гораздо больше времени, чем потратил бы, просто листая нетхаквики. Но зато у меня теперь есть:
1. Скрипт на питоне, который в текстовом режиме показывает всё, что надо.
2. Система, которая позволяет в полуручном режиме добавить любой другой вариант нетхака из оставшихся, и смотреть его тоже.
3. Уверенность, что я вижу актуальные статы мобов. В разных вариантах статы могут немного отличаться, а нетхаквики не всегда это правильно показывает.
Программа, конечно, написана на питоне, для терминала, под библиотеку curses, поэтому она будет работать на линкусе искаропки, а на винде надо поставить один модуль, windows-curses.
Когда пользователь запускает скрипт, он видит подсказку об использовании и может сразу вводить имя монстра:

Есть три режима отображения. В режиме "мини" скрипт гарантирует, что уложится в семь строк:

Пользователь может по нажатию одной кнопки (PgUp/PgDn) переключиться на другой вариант игры, чтобы сравнить характеристики монстров в форке:

Как видно, в эвил-хаке такой простой монстр, как лишай, может ещё и парализовать игрока. Различие в характеристиках, однако, встречается редко, и только у сильных монстров. То, что я показал выше, скорее исключение.
Вторая строка, как можно догадаться, показывает результаты поиска. Мы не обязаны всё время смотреть на лишая, мы можем сразу стрелочками перейти к любому найденному монстру, например к архи-личу, да ещё и выбрать более подробный формат, нажав стрелку вниз:

***
Формат "мини", на котором я показывал лишая выше, позволяет разместить программу снизу или сверху относительно основного окна игры. Даётся это ценой того, что выводится только основная информация, слова выводятся сокращённо, и даже при этом у некоторых особо сложных монстров все атаки в строчку не влезают, и строчка с атаками просто обрезается. Это касается, в первую очередь, dNetHack, там где у монстров может быть максимум не 6 атак, а 10, и некоторые из них очень специфичны и имеют дополнительные свойства, которые надо указать. В этом случае остаётся только переключиться в более полный формат, чтобы увидеть всё целиком. Вот, например, какие ебаки встречаются в dNetHack:

Тут, конечно, нужен расширенный формат, чтобы понять, с чем мы имеем дело.
На текущий момент я сделал поддержку ванильного нетхака трёх версий (3.4.3, 3.6.7, 3.7.0-dev), а также пяти форков. Хотя их можно переключать на ходу по одной кнопке, пользователю также выдаётся меню по Ctrl+O, где он может увидеть весь список и выбрать, что ему хочется:

Я не собираюсь останавливаться. Это первая версия, которую я могу показать публично. Но мне есть, что ещё допилить. Я собираюсь сделать вывод мобов вертикальным списком, с сортировкой по разным параметрам и с фильтрацией. Чтобы эта энциклопедия монстров стала по-настоящему интерактивной.
Проект можно скачать с репозитория гитхаб:
github.com/zHz00/nethack_external_pokedex
Исходники парсились при помощи других проектов. Для работы они не нужны, но я их тоже опубликовал:
github.com/zHz00/nethack_montable_parse
Happy hacking!