Interaction token

Материал из Dwarf Fortress Wiki
Перейти к навигацииПерейти к поиску

Следующие токены используются для определения взаимодействий.

Определение взаимодействий

Токен Контекст Аргументы Описание
I_SOURCE Глобальный Тип Определяет, что вызывает данное взаимодействие. Может применяться многократно. Допустимые значения:
  • REGION – Взаимодействие происходит на определённых типах регионов в мире.
  • SECRET – Взаимодействие-секрет, который можно узнать по конкретным личностям.
  • DISTURBANCE – Взаимодействие срабатывает при вторжении в гробницу.
  • DEITY – Взаимодействие вызвано смертными богами.
  • ATTACK – Взаимодействие вызвано атакой во время боя.
  • INGESTION – Взаимодействие вызвано поеданием/выпиванием чего-либо.
  • CREATURE_ACTION – Взаимодействие является действием кого-либо.
  • UNDERGROUND_SPECIAL – Взаимодействие происходит в любопытных подземных структурах.
IS_HIST_STRING_1 Используется вместе с I_SOURCE Текст Описывает, что взаимодействие произведено исторической фигурой. Отображается после имени исторической фигуры, совершившей его.

[IS_HIST_STRING_1: проклял ]

IS_HIST_STRING_2 Используется вместе с I_SOURCE Текст Описывает, что взаимодействие применено к исторической фигуре. Отображается после имени исторической фигуры-цели.

[IS_HIST_STRING_2: принимает форму ящера-монстра каждое полнолуние]

IS_FREQUENCY Используется вместе с I_SOURCE Число Предположительно, вероятность выполнения взаимодействия в биоме, указанном IS_REGION.
IS_NAME Используется вместе с I_SOURCE Строка Как правило, используется для секретов, описывает секрет.
IS_REGION Используется вместе с I_SOURCE:REGION Тип региона Описывает, в каких типах регионов может быть выполнено взаимодействие. Может использоваться многократно. Допустимые значения:
  • ANY
  • ANY_TERRAIN
  • NORMAL_ALLOWED
  • EVIL_ALLOWED
  • GOOD_ALLOWED
  • SAVAGE_ALLOWED
  • EVIL_ONLY
  • GOOD_ONLY
  • SAVAGE_ONLY
  • Region type – SWAMP, DESERT, FOREST, MOUNTAINS, OCEAN, LAKE, GLACIER, TUNDRA, GRASSLAND, HILLS
IS_SPHERE Используется вместе с I_SOURCE:SECRET Сфера Указывет, к какой сфере принадлежит секрет. К каждому токену I_SOURCE:SECRET может быть применён однократно. Для создания секрета, требуется несколько токенов [I_SOURCE: SECRET], принадлежащих разным сферам.
IS_SECRET_GOAL Используется вместе с I_SOURCE:SECRET Токен цели секрета Указывает, почему кто-то хочет раскрыть секрет. Допустимые значения:
  • STAY_ALIVE
  • MAINTAIN_ENTITY_STATUS
  • START_A_FAMILY
  • RULE_THE_WORLD
  • CREATE_A_GREAT_WORK_OF_ART
  • CRAFT_A_MASTERWORK
  • BRING_PEACE_TO_THE_WORLD
  • BECOME_A_LEGENDARY_WARRIOR
  • MASTER_A_SKILL
  • FALL_IN_LOVE
  • SEE_THE_GREAT_NATURAL_SITES
  • IMMORTALITY

Однако, сейчас при генерации мира в секретах используется только бессмертие.

IS_SECRET Используется вместе с I_SOURCE:SECRET Флаг секрета Указыват, каким образом можно узнать секрет. Допустимые значения:
  • SUPERNATURAL_LEARNING_POSSIBLE – с помощью сверхестественных средств
  • MUNDANE_RESEARCH_POSSIBLE – посредством материальных средств
  • MUNDANE_TEACHING_POSSIBLE – выучить
  • MUNDANE_RECORDING_POSSIBLE:objects/text/(book_title).txt:objects/text/(book_topic).txt – секрет записан в книги с указанным названием. Если этот тег присутствует, плиты будут созданы при узнавании секрета при помощи сверхъестественных средств.
IS_USAGE_HINT Используется вместе с I_SOURCE:DEITY Токен использования подсказки Указывает, почему божество было выбрано для выполнения взаимодействия. Смотри CDI:USAGE_HINT ниже для допустимых значений – в данном контексте, MAJOR_CURSE это единственная ценность, которая имеет смысл.
I_TARGET Глобальный ID, тип Указывает возможную цель взаимодействия. Можно использовать многократно. Допустимые значения:
  • CORPSE – трупы и их куски
  • CREATURE
  • MATERIAL
  • LOCATION
IT_LOCATION Используется вместе с I_TARGET Локация Поясняет, на что именно может быть направлено взаимодействие. Допустимые значения:
  • CONTEXT_REGION – можно использовать только IS_REGION взаимодействия.
  • CONTEXT_CREATURE
  • CONTEXT_ITEM – используется для целей-трупов.
  • CONTEXT_BP – использует в качестве цели часть тела с CDI:BP_REQUIRED токеном (ниже).
  • CONTEXT_LOCATION
IT_MANUAL_INPUT Используется вместе с I_TARGET Текст Говорит игроку, что следует выбрать. Если не указано, игрок сможет выбрать только самого себя.
IT_AFFECTED_CREATURE Используется вместе с I_TARGET:CORPSE или I_TARGET:CREATURE CREATURE:CASTE Определяет касты существа в качестве цели.
IT_AFFECTED_CLASS Используется вместе с I_TARGET:CORPSE или I_TARGET:CREATURE Класс существа То же самое, но для классов.
IT_IMMUNE_CREATURE Используется вместе с I_TARGET:CORPSE или I_TARGET:CREATURE CREATURE:CASTE Определяет касты существ, неприменимых в качестве цели.
IT_IMMUNE_CLASS Используется вместе с I_TARGET:CORPSE или I_TARGET:CREATURE Класс существа То же самое, но, соответственно, для классов.
IT_REQUIRES Используется вместе с I_TARGET:CORPSE или I_TARGET:CREATURE Токен существа или допустимое значение Указывает, что цели должны обладать указанными свойствами. Допустимые значения:
  • FIT_FOR_ANIMATION – Любой труп или часть тела существа может стать зомби.
  • FIT_FOR_RESURRECTION – Труп-цель должен быть соединён с/иметь прикреплённую верхнюю часть тела.
  • HAS_BLOOD
  • MORTAL
  • NO_AGING
  • STERILE
  • Токены существ: BLOODSUCKER, CAN_LEARN, CAN_SPEAK, CRAZED, EXTRAVISION, LIKES_FIGHTING (или LIKESFIGHTING), MISCHIEVOUS (или MISCHIEVIOUS), NO_CONNECTIONS_FOR_MOVEMENT, NO_DIZZINESS, NO_DRINK, NO_EAT, NO_FEVERS, NO_PHYS_ATT_GAIN, NO_PHYS_ATT_RUST, NO_SLEEP, NO_THOUGHT_CENTER_FOR_MOVEMENT, NOBREATHE, NOEMOTION, NOEXERT, NOFEAR, NONAUSEA, NOPAIN, NOSTUN, NOT_LIVING, NOTHOUGHT, OPPOSED_TO_LIFE, PARALYZEIMMUNE, SUPERNATURAL, TRANCES, UTTERANCES
IT_FORBIDDEN Используется вместе с I_TARGET:CORPSE или I_TARGET:CREATURE Токен существа или допустимое значение Указывает, что цели НЕ должны обладать указанными свойствами (см. выше).
IT_CANNOT_TARGET_IF_ALREADY_AFFECTED Используется вместе с I_TARGET:CORPSE или I_TARGET:CREATURE Предотвращает взаимодействие от указания целью существа, которое уже является целью такого же взаимодействия.
IT_CANNOT_HAVE_SYNDROME_CLASS Используется вместе с I_TARGET:CORPSE или I_TARGET:CREATURE Класс синдрома Предотвращает взаимодействие от указания целью существа, которое находится под действием синдрома с указанным значением SYN_CLASS.
IT_MATERIAL Используется вместе с I_TARGET:MATERIAL Тип Указывает тип материала-цели. Допустимые значения:
  • FLOW:Breath attack token – Обозначает атаку, не состоящую ни из какого материала.
  • MATERIAL:Material token:Breath attack token - Обозначает атаку, состоящую из какого-либо материала.
  • CONTEXT_MATERIAL – Использует материалы с CDI:MATERIAL токеном (ниже).
I_EFFECT Глобальный Тип Указывает, что взаимодействие делает с целью. Можно использовать многократно. Допустимые значения:
  • ANIMATE – Поднимает труп/часть тела как зомби. Зомби всегда враждебны ко всему живому и теряет все воспоминания о прежней личности и отношениях. Можно указать синдромы в этом тэге.
  • ADD_SYNDROME – Добавляет один или несколько синдромов. Актуальные синдромы определяются тэгом [SYNDROME].
  • RESURRECT – Возвращает существо к жизни. Может быть применено к частям тела, не имеющие тэга FIT_FOR_RESURRECTION, но только если присоединён к основной части (соединённой с верхней частью тела), тогда останется верен прежней фракции. Можно указать синдромы в этом тэге.
  • CLEAN – Очищает существо от жидкостей/пыли, покрывающих его.
  • CONTACT – Делает существо осязаемым. Радиус взаимодействия должен быть TOUCHABLE.
  • MATERIAL_EMISSION – Вызывает выбросы конкретного материала. Используется для злой погоды и взаимодействиях типа MATERIAL_EMISSION.
  • HIDE – Позволяет существу скрыться, даже если оно находится в поле зрения другого существа.
IE_TARGET Используется вместе с I_EFFECT ID Указывает применяемый к I_TARGET эффект.
IE_INTERMITTENT Используется вместе с I_EFFECT Частота Определяет действие как повторяющееся с определённой периодичностью. Допустимые значения:
  • DAILY
  • WEEKLY
  • MONTHLY
  • YEARLY
IE_IMMEDIATE Используется вместе с I_EFFECT Указывает, что действие происходит немедленно, мгновенно.
IE_LOCATION Используется вместе с I_EFFECT Подсказка локации Указывает, где эффект может быть применён. Допустимые значения:
  • IN_WATER
  • IN_MAGMA
  • NO_WATER
  • NO_MAGMA
IE_ARENA_NAME Используется вместе с I_EFFECT Текст Позволяет применять взаимодействие к созданным существам в режиме арены тестирования объектов.
IE_GRIME_LEVEL Используется вместе с I_EFFECT:CLEAN число [IE_GRIME_LEVEL:2] применяется при взаимодействии чистки и может указывать на количество убранной грязи.Требует проверки
IE_SYNDROME_TAG Используется вместе с I_EFFECT:CLEAN Флаг синдрома Указывает, что очистка от материалов активирует их синдромы, если у них есть этот флаг.
GENERATED Глобальный Указывает, что это созданное взаимодействие. Не может быть указано в пользовательском ряду.

Использование взаимодействий

Для использования взаимодействия существо должно обладать токеном [CAN_DO_INTERACTION:NAME] с последующей за серией [CDI:...] токенов. Взаимодействие также может применяться при помощи синдромов с токеном [CE_CAN_DO_INTERACTION] (с последующей серией [CDI:...] токенов).

Следующие CDI токены могут быть указаны:

Токен Аргументы Описание
INTERACTION ID Указывает, что взаимодействие может выполняться. Используется только с синдромами, CE_CAN_DO_INTERACTION не позволяет указать ID взаимодействия напрямую.
TARGET ID цели, типы целей Указывает, как существо выбирает цель. ID цели относится к I_TARGET, определённом в самом взаимодействии. Может применяться многократно. Если не указать этот токен, существо выберет целью любую доступную цель в пределах досягаемости, даже сквозь стены. Допустимые типы целей:
  • LINE_OF_SIGHT – источник должен видеть цель
  • TOUCHABLE – источник должен иметь возможность прикоснуться к цели
  • DISTURBER_ONLY – целью может быть лишь тот, кто потревожил источник
  • SELF_ALLOWED – может применяться персонально на источник
  • SELF_ONLY – обязан применяться персонально на источник
TARGET_RANGE ID цели, дальность Указывает максимальную дистанцию до цели (в тайлах). Для атак дыханием SOLID_GLOB, LIQUID_GLOB и FIREBALL, а также определяет как далеко пролетит проджектайл перед тем, как упасть на землю.
LOCATION_HINT Подсказка места (см. выше) Что делает – не ясно.
USAGE_HINT Токен подсказки использования Указывет, когда и как процессор контролируемых существ будет использовать взаимодействие. Если нет этого токена – существо будет использовать взаимодействие сразу же, как только появится доступная цель. Допустимые значения:
  • MAJOR_CURSE – Используется для ругательства и проклятия божества. Цели – потревожившие гробницу/осквернившие храм.
  • GREETING – Приветствие, целями являются дружелюбные существа, как правило, случайные.
  • CLEAN_SELF – Целью является источник, когда покрыт жидкостью/грязью/пылью.
  • CLEAN_FRIEND – То же самое, но целью является дружественное существо, покрытое жидкостью/грязью/пылью.
  • ATTACK – Цели – вражеские существа в бою. Если используется SELF_ONLY, процессор контролируемых существ никогда не будет применять это.
  • FLEEING – Используется при бегстве врага. Целью выбирается само существо.
  • NEGATIVE_SOCIAL_RESPONSE – Используется для выражения презрения (например, убийце). Цивилизованными расами используется для плевания.
  • TORMENT
ADV_NAME Текст Указывает название взаимодействия в режиме приключенца.
MAX_TARGET_NUMBER ID, число Указывает максимальное количество вещей-целей для I_TARGET.
WAIT_PERIOD Число Определяет частоту использования взаимодействия.
VERBAL Указывает, что только существа, способные говорить, могут использовать взаимодействие. Может быть необходимо для VERBAL_SPEECH.
VERBAL_SPEECH Имя файла То, что существо говорит в момент взаимодействия (типа "Я проклинаю тебя!!!" или "Восстань и борись за меня!!!"). Путь задаётся в /data/speech.
CAN_BE_MUTUAL Предположительно, позволяет двум существам с этим взаимодействием воздействовать друг на друга одновременно. Например, кошки вылизывают друг друга.
FREE_ACTION Указывает, что это свободное действие (свободное действие – действие, не требующее никакого времени, производится мгновенно и неограниченное количество раз за ход. Свободное действие не тратит ход и не передаёт его следующим, его можно использовать вместе с остальными действиями (например, выкрикнуть что-то, плюнуть или отпустить)).
VERB на себя:на других:на других с таким же взаимодействием одновременно Описывает существу, как оно использует взаимодействие.

[VERB:вылизываетесь:вылизываете:вылизываете друг друга вместе с]

VERB_REVERSE Не известно Что делает – не ясно.
TARGET_VERB на себя:на других То же самое, что и VERB, но для цели.

[TARGET_VERB:вылизывается:вылизывает]

BP_REQUIRED Критерий части тела Указывает, что для взаимодействия нужны определённые части тела (кот не может вылизываться без языка). Критерии – BY_CATEGORY:категория, BY_TYPE:тип или BY_TOKEN:токен.
FLOW Токен атаки дыханием Указывает, что взаимодействие создаёт эффект, не состоящий ни из какого материала. Имеет смысл лишь для FIREBALL, FIREJET или DRAGONFIRE.
MATERIAL Токен материала:токен атаки дыханием Указывает, что взаимодействие создаёт эффект, состоящий из данного материала. Соответственно, бессмысленно для FIREBALL, FIREJET, или DRAGONFIRE.

Атаки дыханием

Атаки дыханием определяемые взаимодействиями MATERIAL_EMISSION, например:

 [CAN_DO_INTERACTION:MATERIAL_EMISSION]
 		[CDI:ADV_NAME:Breath custom material]
 		[CDI:USAGE_HINT:ATTACK]
 		[CDI:BP_REQUIRED:BY_CATEGORY:MOUTH]
 		[CDI:MATERIAL:LOCAL_CREATURE_MAT:CUSTOMMATERIAL:TRAILING_VAPOR_FLOW]
 		[CDI:TARGET:A:LINE_OF_SIGHT]
 		[CDI:TARGET_RANGE:C:15]
 		[CDI:MAX_TARGET_NUMBER:C:1]
 		[CDI:WAIT_PERIOD:50]

Наиболее примечательная часть:

 [CDI:MATERIAL:LOCAL_CREATURE_MAT:CUSTOMMATERIAL:TRAILING_VAPOR_FLOW]

CDI ссылается на CAN_DO_INTERACTION; MATERIAL означает, что строка будет описывать материал. LOCAL_CREATURE_MAT:CUSTOMMATERIAL конкретный материал, можно ввести свой, TRAILING_VAPOR_FLOW определяет взаимодействие как атаку дыханием. Также важна эта строка:

 [CDI:TARGET:A:LINE_OF_SIGHT]

LINE_OF_SIGHT определяет какой объект A может быть целью; также может быть SELF_ALLOWED (предположительно то же, что и LINE_OF_SIGHT, но существо может само стать целью), SELF_ONLY (предпочтительнее для ненаправленных атак) и TOUCHABLE (для атак с близкого расстояния).

Типы атак дыханием

Токен Описание
TRAILING_DUST_FLOW Атаки облаком твердой пыли. По-видимому, использует физику пыли от обвалов, заставляя её обволакивать всё, с чем она соприкасается, существа будут сбиты с ног или отброшены в стены. Существо будет атаковать как обычно.
TRAILING_VAPOR_FLOW Атаки струёй жидкого тумана, который может конденсироваться и вызывать контактные синдромы. Существо будет атаковать как обычно.
TRAILING_GAS_FLOW Атаки газообразной субстанцией, которую можно вдохнуть. Существо будет атаковать как обычно.
TRAILING_ITEM_FLOW:item token Атаки "облаками" предметов, оставляющие "груды" или "брызги" этих предметов на полу. Примечательно, что при этом не создаёт настоящие предметы и не использует механику падения предметов. Вместо этого, токен работает как TRAILING_GAS_FLOW за исключением того, что материал будет при своей нормальной температуре. Существо будет атаковать как обычно.
SOLID_GLOB Атака вращающимся шаром твердого вещества, оставляет символы, похожие на сломанные стрелы. По сути, метательное оружие. Если скорость перезарядки атаки достаточно мала, существа с этой атакой не будут двигаться, предпочитая вместо этого стоять на месте и плеваться в вас, даже если вы находитесь буквально перед ними.
LIQUID_GLOB Атака жидкой каплей вещества. Контактные синдромы начинают действовать, когда капля попадает на открытую кожу цели.
SPATTER_POWDER Создает кучу порошка в указанном месте.
SPATTER_LIQUID Создает лужу жидкости в указанном месте.
UNDIRECTED_GAS Существо случайно выпускает облака паров. Похоже на TRAILING_GAS_FLOW, но не направлено, площадь воздействия выше, а дальность атаки невысока. Существо будет атаковать как обычно.
UNDIRECTED_VAPOR Существо случайно выпускает облака тумана. Похоже на TRAILING_VAPOR_FLOW, но не направлено, площадь воздействия выше, а дальность атаки невысока. Существо будет атаковать как обычно.
UNDIRECTED_DUST Существо случайно выпускает облако пыли, которое распространяется и рассеивается. Похоже на TRAILING_DUST_FLOW, но не направлено, площадь воздействия выше, а дальность атаки снижена. Существо будет атаковать как обычно. НЕ ИСПОЛЬЗОВАТЬ, ЕСЛИ НЕ ХОТИТЕ УБИТЬ ПРИ ЭТОМ СУЩЕСТВО И ВСЁ ОКОЛО НЕГО ИЛИ ОТПРАВИТЬ ЛЮДЕЙ ПОЛЕТАТЬ ИЗ-ЗА ТОГО, ЧТО ИГРА СЧИТАЕТ ЭТО ПЫЛЬЮ ОТ ОБВАЛОВ.
UNDIRECTED_ITEM_CLOUD:item token Существо случайно выпускает "облако предметов", оставляющие "груды" или "брызги" этих предметов на полу. Также как и TRAILING_ITEM_FLOW. Существо будет атаковать как обычно.
WEB_SPRAY Выброс паутины, которая опутывает цель.
DRAGONFIRE Дыхание конусом драконьего огня, который сжигает цели при температуре 50000 °U . Для этого типа атаки вместо материала указывается FLOW.
FIREJET Дыхание конусом огня, которое сжигает цели при температуре 11000 °U . Для этого типа атаки вместо материала указывается FLOW.
FIREBALL Атака огненным шаром, который может сжечь цель. Для этого типа атаки вместо материала указывается FLOW.
WEATHER_CREEPING_GAS Создает облако газа, которое появляется на краю карты и медленно ползёт по ней. Не может быть использовано существами.
WEATHER_CREEPING_VAPOR Создает облако пара, которое появляется на краю карты и медленно ползёт по ней. Не может быть использовано существами.
WEATHER_CREEPING_DUST Создает облако пыли, которое появляется на краю карты и медленно ползёт по ней. Не может быть использовано существами.
WEATHER_FALLING_MATERIAL Вызывает дожди из определенного материала. Если материал является твердым при температуре окружения, вместо него будет идти обычный снег. Независимо от природы материала, попадание в него даст гномам плохую мысль о том, что "caught in freakish weather lately". Не может быть использовано существами.

Имейте в виду, что вы можете использовать несколько дыхательных атак, что позволяет существу выбирать между ними случайным образом. Существа не могут использовать WEATHER эффекты, они зарезервированы для взаимодействий окружения региона.

Одно из основных различий между GAS, VAPOR и DUST заключается в том, что если материал не может существовать в указанном состоянии при текущей температуре, он будет автоматически создан при температуре, позволяющей ему существовать. Таким образом, если вы создадите распылителя пара, у котором в качестве материала используется камень или металл, то материал будет распыляться нагретым до температуры плавления, что подожжет все, к чему он соприкоснётся. Вы также можете создать замораживающую атаку, используя нестандартный материал с чрезвычайно низкой температурой плавления и/или кипения.

Если вы присвоите существу дыхание определённым материалом, имейте в виду, что само будет попадать под свою же атаку чаще, чем его цели. Убедитесь, что эти существа иммунны к собственным атакам!

Смотри также