Reaction: различия между версиями
Nailo (обсуждение | вклад) |
S0ZDATEL (обсуждение | вклад) |
||
Строка 377: | Строка 377: | ||
| ADVENTURE_MODE_ENABLED | | ADVENTURE_MODE_ENABLED | ||
| | | | ||
| | | Эта реакция не будет доступна дфарфам, но ей можно воспользоваться в [[Adventure mode|режиме приключенца]]. Использование этого токена разрешает рецепт приключенцам всех рас, если не изменять [[Entity token|Entity файлы]]. | ||
|- | |- | ||
| ANY_BONE_MATERIAL | | ANY_BONE_MATERIAL | ||
| | | | ||
| | | Материал реагента обязан иметь токен [BONE] (т.е. реагент должен быть [[Bone|костью]]). | ||
|- | |- | ||
| ANY_HORN_MATERIAL | | ANY_HORN_MATERIAL | ||
| | | | ||
| | | Материал реагента обязан иметь токен [HORN] (т.е. реагент должен быть [[Horn|рогом или копытом]]). | ||
|- | |- | ||
| ANY_LEATHER_MATERIAL | | ANY_LEATHER_MATERIAL | ||
| | | | ||
| | | Материал реагента обязан иметь токен [LEATHER] (т.е. реагент должен быть [[Leather|кожей]]). | ||
|- | |- | ||
| ANY_PEARL_MATERIAL | | ANY_PEARL_MATERIAL | ||
| | | | ||
| | | Материал реагента обязан иметь токен [PEARL] (т.е реагент должен быть [[Pearl|жемчугом]]). | ||
|- | |- | ||
| ANY_PLANT_MATERIAL | | ANY_PLANT_MATERIAL | ||
| | | | ||
| | | Материл реагента должен относиться с [[List of crops|растению]]. | ||
|- | |- | ||
| ANY_SHELL_MATERIAL | | ANY_SHELL_MATERIAL | ||
| | | | ||
| | | Материал реагента обязан иметь токен [SHELL] (реагент — [[Shell|панцирь]]). | ||
|- | |- | ||
| ANY_SILK_MATERIAL | | ANY_SILK_MATERIAL | ||
| | | | ||
| | | Материал реагента обязан иметь токен [SILK] (реагент — [[Silk|Шёлк]]). | ||
|- | |- | ||
| ANY_SOAP_MATERIAL | | ANY_SOAP_MATERIAL | ||
| | | | ||
| | | Материал реагента обязан иметь токен [SOAP] ([[Soap|мыло]]). | ||
|- | |- | ||
| ANY_STRAND_TISSUE | | ANY_STRAND_TISSUE | ||
| | | | ||
| | | Реагент сделан из ткани, содержащей токен [TISSUE_SHAPE:STRANDS], предназначенные для волос или [[Wool|шерсти]] (и [[Борода|бороды]]{{verify}}). Должен использоваться вместе с токеном [USE_BODY_COMPONENT]. | ||
|- | |- | ||
| ANY_TOOTH_MATERIAL | | ANY_TOOTH_MATERIAL | ||
| | | | ||
| | | Материал реагента обязан иметь токен [TOOTH]. | ||
|- | |- | ||
| ANY_YARN_MATERIAL | | ANY_YARN_MATERIAL | ||
| | | | ||
| | | Материал реагента обязан иметь токен [YARN] ([[Yarn|шерсть]]. | ||
|- | |- | ||
| AUTOMATIC | | AUTOMATIC | ||
| | | | ||
| | | Реакция автоматически встанет в очередь, если все реагенты доступны. | ||
|- | |- | ||
| BAG | | BAG | ||
| | | | ||
| | | Реагент должен быть мешком. Предназначен для использования с предметом типа BOX, чтобы предотвратить использование сундуков или подобных [[Container|контейнеров]] вместо них. | ||
|- | |- | ||
| BUILDING | | BUILDING | ||
| | | | ||
* | * Название постройки | ||
* | * Горячая клавиша для этой реакции | ||
| | | Задаёт, что реакция будет проходить в определённой [[Building|постройке]] и горячую клавишу для добавления этой реакции в очередь. | ||
|- | |- | ||
| BUILDMAT | | BUILDMAT | ||
| | | | ||
| | | Реагент может быть использован для строительства ([[Stone|камень]], [[Wood|древесина]], [[Blocks|блоки]], [[Bars|слитки]]{{verify}}). | ||
|- | |- | ||
| CAN_USE_ARTIFACT | | CAN_USE_ARTIFACT | ||
| | | | ||
| | | Реагент может быть [[Artifact|артефактом]]. Использование [PRESERVE_REAGENT] вместе с этим токеном настоятельно рекомендуется. | ||
|- | |- | ||
| CONTAINS | | CONTAINS | ||
| | | Требуемое содержимое | ||
| | | Реагент-контейнер должен содержать определённый реагент в себе. | ||
|- | |- | ||
| CONTAINS_LYE | | CONTAINS_LYE | ||
| | | | ||
| | | Если реагент — контейнер, он должен содержать [[Lye|щёлок]]. В текущих версиях не используется — вместо этого используется один ингредиент как щелок и второй с токеном [CONTAINS:lye_reagent]. | ||
|- | |- | ||
| DOES_NOT_ABSORB | | DOES_NOT_ABSORB | ||
| | | | ||
| | | Материал реагента должен иметь токен [ABSORPTION:0] | ||
|- | |- | ||
| DOES_NOT_DETERMINE_PRODUCT_AMOUNT | | DOES_NOT_DETERMINE_PRODUCT_AMOUNT | ||
| | | | ||
| | | Устанавливает количество продуктов реакции, исходя из количества реагентов (возможно, первого в списке{{verify}}). Используется для реакций, где продукты производятся по нескольку сразу, как жидкости в бочках. | ||
|- | |- | ||
| EMPTY | | EMPTY | ||
| | | | ||
| | | Если реагент — контейнер, то он должен быть пустым. | ||
|- | |- | ||
| FIRE_BUILD_SAFE | | FIRE_BUILD_SAFE | ||
| | | | ||
| | | Реагент должен быть устойчив к огню — т.е. не [[Wood|древесина]] и не [[Coal|уголь]] | ||
|- | |- | ||
| FORCE_EDGE | | FORCE_EDGE | ||
| | | | ||
| | | Продукт становится заточенным (появляются [[Edge|острые края]]). Используется для затачивания. | ||
|- | |- | ||
| FUEL | | FUEL | ||
| | | | ||
| | | Реакция требует единицу [[Coal|угля]] или древесного угля или должна проходить в магма-мастерской. | ||
|- | |- | ||
| GLASS_MATERIAL | | GLASS_MATERIAL | ||
| | | | ||
| | | Материал реагента должен иметь токен [IS_GLASS] ([[Glass|стекло]]). | ||
|- | |- | ||
| HAS_MATERIAL_REACTION_PRODUCT | | HAS_MATERIAL_REACTION_PRODUCT | ||
| | | Требуемый продукт реакции | ||
| | | ? | ||
|- | |- | ||
| HAS_TOOL_USE | | HAS_TOOL_USE | ||
| Tool-use token | | Tool-use token | ||
| | | Реагент должен быть [[Tool|инструментом]] с определённым значением TOOL_USE. Если поставить необходимость в реагенте с токеном TOOL:NONE не даст результата{{verify}}. | ||
|- | |- | ||
| IMPROVEMENT | | IMPROVEMENT | ||
| | | | ||
* | * Вероятность | ||
* | * Название реагента | ||
* | * Тип украшения | ||
* | * Токен материала | ||
| | | Типы украшения включают BANDS, COVERED, GLAZED, RINGS_HANGING и SPIKES. | ||
|- | |- | ||
| MAGMA_BUILD_SAFE | | MAGMA_BUILD_SAFE | ||
| | | | ||
| | | В настоящее время работает некорректно — имеет тот же эффект, что и FIRE_BUILD_SAFE. | ||
|- | |- | ||
| METAL_ORE | | METAL_ORE | ||
| | | | ||
* | * Металл | ||
| | | Материал реагента должен быть рудой, содержащей определённый металл. | ||
|- | |- | ||
Строка 543: | Строка 543: | ||
|- | |- | ||
| NAME | | NAME | ||
| | | Название | ||
| | | Устанавливает название для реакции, отображаемое в игре. | ||
|- | |- | ||
| NO_EDGE_ALLOWED | | NO_EDGE_ALLOWED | ||
| | | | ||
| | | Реагент не должен иметь острых краёв (используется для заточки). | ||
|- | |- | ||
| NOT_CONTAIN_BARREL_ITEM | | NOT_CONTAIN_BARREL_ITEM | ||
| | | | ||
| | | Если реагент — [[Barrel|бочка]], она должна быть пустой. В бочках обычно хранится [[Milk|молоко]] или [[Lye|щёлок]]. Алкоголь считается как [EMPTY]{{verify}}. Реакции, в которых предмет кладётся в бочку, должны содержать оба тега. | ||
|- | |- | ||
| NOT_ENGRAVED | | NOT_ENGRAVED | ||
| | | | ||
| | | Реагент не должен быть гравирован{{verify}}. | ||
|- | |- | ||
| NOT_IMPROVED | | NOT_IMPROVED | ||
| | | | ||
| | | Реагент не должен быть украшен. | ||
|- | |- | ||
| NOT_PRESSED | | NOT_PRESSED | ||
| | | | ||
| | | Реагент не должен быть в состоянии SOLID_PRESSED. | ||
|- | |- | ||
| NOT_WEB | | NOT_WEB | ||
| | | | ||
| | | Реагент должен быть "собран" — используется вместе с THREAD:NONE чтобы исключить [[Web|паутину]]. | ||
|- | |- | ||
| POTASHABLE | | POTASHABLE | ||
| | | | ||
| | | То же, что CONTAINS_LYE{{verify}}. | ||
|- | |- | ||
| PRESERVE_REAGENT | | PRESERVE_REAGENT | ||
| | | | ||
| | | Реагент не будет уничтожен по завершению реакции, это нормальный эффект. Обычно используется для контейнеров. | ||
|- | |- | ||
| PRODUCT | | PRODUCT | ||
| | | | ||
* | *Веройтность | ||
* | *Количество | ||
* | *Токен предмета | ||
* | *Токен материала | ||
| | | Определяет один из продуктов, получаемых в результате реакции. | ||
|- | |- | ||
| PRODUCT_DIMENSION | | PRODUCT_DIMENSION | ||
| | | Размер | ||
| | | Указывает размер продукта. Размер 150 типичен для [[Bar|слитков]], порошков, жидкостей, и [[Alcohol|напитков]]. Размером 15000 обладают [[Thread|нитей]], а размер 10000 годится для [[Cloth|одежды]]. | ||
|- | |- | ||
| PRODUCT_PASTE | | PRODUCT_PASTE | ||
| | | | ||
| | | Продукт создаётся в состоянии SOLID_PASTE. | ||
|- | |- | ||
| PRODUCT_PRESSED | | PRODUCT_PRESSED | ||
| | | | ||
| | | Продукт создаётся в состоянии SOLID_PRESSED. | ||
|- | |- | ||
| PRODUCT_TO_CONTAINER | | PRODUCT_TO_CONTAINER | ||
| | | ID реагента | ||
| | | Помещает продукт В контейнер; ID должен быть названием реагента с токеном PRESERVE_REAGENT и типом предмета "контейнер". | ||
|- | |- | ||
| REACTION | | REACTION | ||
| | | Идентификатор | ||
| | | Задаёт новую реакцию | ||
|- | |- | ||
| REACTION_CLASS | | REACTION_CLASS | ||
| | | | ||
| | | ? | ||
|- | |- | ||
|REAGENT | |REAGENT | ||
| | | | ||
* | * Название/ID | ||
* | * Количество | ||
* | * [[Item token|токен предмета]] (и подтокен) | ||
* | * [[Material token|токен материала]] (и подтокен) | ||
| | | Задаёт реагент для реакции. | ||
|- | |- | ||
| SKILL | | SKILL | ||
| | | Токен навыка | ||
| | | [[Навыки|Навык]], используемый для проведения реакции. | ||
|- | |- | ||
| UNROTTEN | | UNROTTEN | ||
| | | | ||
| | | Реагент не должен быть гнилым. Используется для органических материалов. | ||
|- | |- | ||
| USE_BODY_COMPONENT | | USE_BODY_COMPONENT | ||
| | | | ||
| | | Реагент должен быть частью тела существа. | ||
|- | |- | ||
| WEB_ONLY | | WEB_ONLY | ||
| | | | ||
| | | Реагент должен быть "undisturbed" — используется вместе с THREAD:NONE для обозначения паутины. | ||
|- | |- | ||
| WORTHLESS_STONE_ONLY | | WORTHLESS_STONE_ONLY | ||
| | | | ||
| | | Реагент не сделан из экономического камня. | ||
|} | |} |
Версия от 07:37, 26 марта 2017
Реакции — модульные, редактируемые формулы (рецепты), расходующие конкретные ингредиенты, или реагенты, и использующие их для получения желаемого предмета. Многие реакции жёстко закодированы — строительство кроватей или создание стекла, например, — но некоторые из них свободно редактируются, и очень просто добавить дополнительные реакции.
Данная статья помечена как не оконченная. Вы можете прочитать эту статью на английском или помочь проекту её переводом. |
Различия реакций между режимами
В Режиме Крепости, реакции всегда задаются для конкретных строений, а так же обязательно должны быть упомянуты в entity-файле описания Цивилизации, для того, чтобы они могли быть использованы данной цивилизацией. Это полезно иметь ввиду, если вы захотите ограничить использование новых предметов и/или материалов (разрешить использовать только древесину, металлы и т.п.) какими-либо цивилизациями -- вы сможете, например, дать возможность вашей новой цивилизации производить звездный металл и тому подобное, что будет доступно только ей.
В Режиме Приключения, реакции свободно доступны к применению для любого героя через комбинацию X - Create. Реагенты для реакции должны находиться в руках или лежать под ногами, но не могут быть использованы, если находятся в рюкзаке или колчане. В версии .10 у реакций в Режиме Приключения существует несколько ошибок, главная из которых заключается в том, что вы не можете использовать жидкие реагенты.
До версии 31.10 результатом реакции мог стать предмет с базовым уровнем качества. Однако, уже в .10 версии у предметов созданных в результате реакций обнаружены модификаторы качества. На определение качества предмета влияет стандартный механизм уровня используемого навыка точно таким же образом, как и для обычных предметов v0.31.21.
Анатомия реакции
Реакции должны находится в файлах с названием вида reaction_x (например reaction_smelter или reaction_other). Вообще говоря, все реакции имеют следующее строение:
[REACTION:<identifier>] [NAME:<name>] [BUILDING:<BUILDING NAME>:<BUILDING KEY>] [REAGENT:A:150:BAR:NONE:POTASH:NONE] [PRODUCT:100:1:BAR:NONE:PEARLASH:NONE][PRODUCT_DIMENSION:150] [FUEL] [SKILL:<SKILL TOKEN>] [AUTOMATIC] [ADVENTURE_MODE_ENABLED]
- identifier: Внутренний идентификатор реакции.
- name: Название реакции, которое отображается в Режиме Крепости или Режиме Приключения.
- building: Внутренний идентификатор постройки и горячая комбинация клавиш для ее выбора (имеет смысл только для Режима Крепости).
- ...reagents...: Ноль или более реагентов (ингредиентов), которые необходимо собрать, прежде чем реакция станет возможной.
- ...products...: Ноль или более продуктов, которые возникают в результате реакции.
- fuel: (не обязательно) Если присутствует, то реакция требует уголь, кокс или мастерскую, работающую на магме.
- skill: (не обязательно) Навык, который необходим для реакции и тренируется в ее ходе.
- automatic: (не обязательно) Если присутствует, то реакция стартует автоматически, как только выполнены все требования для ее проведения.
- adventure mode: (не обязательно) Если присутствует, то реакция становится доступной герою в Режиме Приключения.
Идентификатор реакции
Идентификатор реакции может быть любым, главное, чтобы он не совпадал с другими идентификаторами в raw файлах. Хорошим тоном является использование в идентификаторах ваших реакций однотипные приставки или окончания, образованные от названия вашего мода, чтобы гарантировать что никто более не создаст реакцию с таким же идентификатором и тем самым не сломает игру запустив свой мод совместно с вашим.
Название реакции
Может быть вообще каким угодно и обычно используется, чтобы описать реакцию. Tan a hide, к примеру, название встроенной реакции для производства кож. Название реакции желательно описывать короткой фразой, начинающейся с заглавной буквы, чтобы соответствовать названиям уже встроенных реакций.
Постройка
[BUILDING:<BUILDING NAME>:<BUILDING KEY>]
- name: Внутренний идентификатор строений, в меню которого будет доступна реакция.
- key: Комбинация горячих клавиш для выбора реакции.
Вместо BUILDING NAME подставляется имя строения, в котором будет доступна реакция, а далее указывается горячая комбинация клавиш для добавления этой реакции в очередь заданий строения. Если две и более реакций имеют одинаковую комбинацию клавиш, то одной из них назначается другая клавиша (первая доступная в алфавитном порядке).
Допустимы следующие имена строений: KILN, SMELTER, TANNER, KITCHEN, QUERN, MILLSTONE, STILL, CRAFTSMAN, и все остальные мастерские.
Реагенты
Раздел REAGENT устроен немного сложнее. Это ингредиенты, которые используются в реакции. Их можно задать столько, сколько хотите.
[REAGENT:<name>:<quantity>:<item token>:<material token>][...modifiers...]
- name: Название реагента, используемого в реакции.
- quantity: Количество реагента, необходимое для реакции.
- item token: Требуемый тип предмета у реагента.
- material token: Требуемый материал, из которого должен быть изготовлен реагент.
- ...modifiers...: Ноль или более маркеров, которые уточняют какие реагенты допустимы, когда простого указания типа предмета и материала для данного реагента не достаточно.
Название
Это поле представляет собой небольшую строку, которая используется для идентификации реагента в реакции. Эту строку игрок никогда не увидит. Данное имя используется только в этой реакции и не должно быть уникальным для остальных реакций. Поэтому в разных реакциях вы можете спокойно использовать одни и те же имена. Главное, чтобы внутри одной реакции разные реагенты имели разные имена.
В большинстве реакций реагенты называются просто как A, B и так далее. Хотя имена вида TOOLSTONE или FLUX тоже будут замечательно работать. В самой реакции есть раздел PRODUCT, который может ссылаться на реагенты по их имени — например, если контейнер B указан как реагент, то продукт может содержать тег PRODUCT_TO_CONTAINER:B, который указывает, что данный продукт надо поместить в контейнер B.
Количество
Количество у разных типов предметов измеряется в разных единицах. Проще говоря, ткани, нити, порошки и глобулы измеряются в единицах, где один пункт представляет собой достаточно мелкую величину, а все остальное измеряется в статических величинах (в штуках и т.п.). Например REAGENT:A:10:THREAD:NONE:NONE:NONE описывает просто крошечную порцию произвольной нити, а REAGENT:A:10:TOY:NONE:NONE:NONE описывает десять штук разных игрушек.
Иногда количество получаемого на выходе из реакции продукта напрямую зависит от количества используемых реагентов; похоже, что количество продукта вычисляется по формуле 150 / количество реагента (с округлением вниз). Т.е. если у вас количество реагента равно 3, то вы получите 50 единиц продукта, а если количество реагента 4, то вы получите 37 единиц продукта (150/4=37.5) [Тут неплохо было бы привести список типов предметов, для которых работает это правило, слитки например и т.п.]
Токен предмета
Токен предмета состоит из двух частей ITEM_TYPE:ITEM_SUBTYPE.
Тип предмета это просто указание разновидности предмета, которая вам необходима; WEAPON, TOY или SKIN_TANNED к примеру. Если нужна более детальная информация по типам, то ее можно посмотреть в полном списке предметов.
В реагентах, кроме этих типов, допустимо так же указывать ANY_RAW_MATERIAL:NONE (разрешается использовать все виды порошков, слитков, камней или глобулТребует проверки) или ANY_CRAFT:NONE (разрешается использовать фигурки, амулеты, скипетры, короны, кольца, серьги или браслеты)
Подтип предмета позволяет уточнить, какой именно предмет вас интересует. Например ITEM_WEAPON_SPEAR или ITEM_TOY_PUZZLEBOX. Некоторые предметы, например колчаны, рюкзаки или куски камня и металла требуют задания только типа предмета. В этом случае в подтипе предмета надо писать NONE. Сами подтипы описаны в raw-файлах и их точные названия можно уточнить, глядя на содержимое этих файлов.
Для обратной совместимости в типе/подтипе предмета реагента разрешается указывать "METAL_ORE:metal_id", что разом задает и тип и материал реагента — такая запись эквивалентна более современной записи BOULDER:NONE:NONE:NONE с модификатором [METAL_ORE:metal_id] (более подробно об этом смотри ниже).
Токен материала
Токен материала может задаваться несколькими способами - здесь можно посмотреть на полный список. Для реагентов, как правило, используется INORGANIC:MATERIAL_ID, а для продуктов реакции GET_MATERIAL_FROM_REAGENT:REAGENT_ID:REACTION_PRODUCT_ID.
Модификаторы
Реагенты могут содержать достаточно много различных дополнительных токенов, которые должны располагаться сразу после тега REAGENT.
Ниже перечислены все модификаторы для реагентов:
Токен | Описание |
---|---|
[REACTION_CLASS:X] | Рассматривается в секции анатомия реакции ниже. |
[HAS_MATERIAL_REACTION_PRODUCT:X] | Рассматривается в секции анатомия реакции ниже. |
[CONTAINS:X] | Реагент является контейнером, содержащим другой реагент. Здесь X - имя реагента, заданное в описании реакции. |
[UNROTTEN] | Реагент не должен быть гнилым (касается органических материалов). |
[CONTAINS_LYE] | Если реагент является контейнером, то он должен содержать щелок. Этот модификатор устарел и больше не используется - вместо этого добавьте два реагента, один из которых щелок, а второй контейнер с токеном [CONTAINS:lye_reagent]. |
[POTASHABLE] | Синоним для [CONTAINS_LYE]. |
[NOT_WEB] | Реагент, который должен быть в наличии (позволяет исключить шелковые нити, получаемые из паутины). |
[WEB_ONLY] | Реагент, который не надо заранее готовить (отличительная черта для шелковых нитей из паутины). |
[EMPTY] | Если реагент контейнер, то он должен быть пустым. |
[NOT_CONTAIN_BARREL_ITEM] | Если реагент - бочка, то он не должен содержать ничего, что обычно в них хранится. Этот тег касается, видимо, шелока и молока. Чтобы в бочке отсутствовал алкоголь, нужен тег [EMPTY]. Если вам нужно что-то в бочку поместить, то, похоже, должны быть указаны оба тега. |
[BAG] | Реагент должен быть мешком из ткани или кожи. Этот тег предназначен для использования совместно с тегом BOX:NONE, чтобы исключить сундуки и прочие контейнеры. |
[GLASS_MATERIAL] | Материал реагента должен содержать токен [IS_GLASS]. Во все три стандартных вида стекла этот токен зашит намертво. |
[BUILDMAT] | Реагент является строительным материалом (Камень, Дерево, Блоки, Слитки?). |
[FIRE_BUILD_SAFE] | У материала, из кторого состоит реагент, тег IGNITE_POINT имеет значение "NONE". |
[MAGMA_BUILD_SAFE] | Реагент должен быть магмоустойчив. На данным мамент забаговано и работает точно так же, как [FIRE_BUILD_SAFE]. |
[CAN_USE_ARTIFACT] | Реагент может быть артефактом. Крайне настоятельно рекомендуется использовать совместно с тегом [PRESERVE_REAGENT]. |
[WORTHLESS_STONE_ONLY] | Материал, из кторого изготовлен реагент должен считаться не экономически значимым (т.е. не ценные руды и т.п.). |
[ANY_PLANT_MATERIAL] | Материал реагента относится к растительным материалам. |
[ANY_SILK_MATERIAL] | Материал реагента должен содержать токен [SILK]. |
[ANY_YARN_MATERIAL] | Материал реагента должен содержать токен [YARN]. |
[ANY_SOAP_MATERIAL] | Материал реагента должен содержать токен [SOAP]. |
[ANY_LEATHER_MATERIAL] | Материал реагента должен содержать токен [LEATHER]. |
[ANY_BONE_MATERIAL] | Материал реагента должен содержать токен [BONE]. |
[ANY_STRAND_TISSUE] | Реагент состоит из слоя с тегом [TISSUE_SHAPE:STRANDS], определяющим волосяной и шерстяной покровы. этот тег нужно использовать совместно с тегом [USE_BODY_COMPONENT]. |
[ANY_SHELL_MATERIAL] | Материал реагента должен содержать токен [SHELL]. |
[ANY_TOOTH_MATERIAL] | Материал реагента должен содержать токен [TOOTH]. |
[ANY_HORN_MATERIAL] | Материал реагента должен содержать токен [HORN]. |
[ANY_PEARL_MATERIAL] | Материал реагента должен содержать токен [PEARL]. |
[USE_BODY_COMPONENT] | Реагент должен являться частью тела |
[NO_EDGE_ALLOWED] | У реагента не должно быть острых кромок (используется для заточки). |
[NOT_ENGRAVED] | ? (возможно используется для надгробных плит?) |
[NOT_IMPROVED] | Реагент не дорлжен иметь декорирования. |
[DOES_NOT_ABSORB] | Материал реагента должен содержать тег [ABSORPTION:0] |
[FOOD_STORAGE_CONTAINER] | Реагент либо бочка, либо инструмент с тегом FOOD_STORAGE. |
[HARD_ITEM_MATERIAL] | Материал реагента должен содержать токен [ITEMS_HARD].Требует проверки |
[NOT_PRESSED] | Реагент не должен находится в состоянии SOLID_PRESSED. |
[METAL_ORE:X] | реагент дложен представлять собой руду металла с определенным идентификатором. |
[MIN_DIMENSION:X] | ? |
[HAS_TOOL_USE:X] | Реагент должен быть инструментом с указанным значением у тега TOOL_USE. В это случае тип предмета у реагента должен иметь значение TOOL:NONE, данный маркер работал. |
[PRESERVE_REAGENT] | Реагент по окончанию реакции не разрушается, в отличие от стандартного поведения. Обычно используется для контейнеров. |
[DOES_NOT_DETERMINE_PRODUCT_AMOUNT] | Не учитывать массу реагента при вычислении итогового продукта. Полезно при превращении слитков в другие предметы. |
Вообще говоря, если вы где-либо у реагента напишите NONE, то реакция не будет делать различия между предметами по этому критерию. например, если у реагента BOULDER указать материал, как NONE:NONE, то это позволит использовать в реакции всевозможные доступные камни вне зависимости от того, из какого материала они сделаны.
Продукция
Продукция это результат соответствующей ей реакции. В процессе реакции можно создать столько продуктов, сколько вам надо.
Продукты описываются практически точно так же, как и реагенты, за исключением того, что для них не надо придумывать внутреннее имя и не надо задавать количество для определения размера/количества продукта. Однако, можно указать дополнительный токен PRODUCT_DIMENSION:X, сразу после описания самого продукта, для указания конкретного количества продукции, которое вы хотите получить.
Продукт можно поместить в контейнер при помощи токена [PRODUCT_TO_CONTAINER:<IDENTIFIER>] где IDENTIFIER - внутренне имя реагента-контейнера. Такой реагент необходимо пометить токеном PRESERVE_REAGENT.
С учетом этих отличий, в итоге, получаем следующий вид описания продукта:
[PRODUCT:<probability>:<quantity>:<item token>:<material token>][...modifiers...][PRODUCT_DIMENSION:X][PRODUCT_TO_CONTAINER:<IDENTIFIER>]
Вероятность
Шанс получения продукции в процентах по окончании реакции.
Количество
Определяет как много продукции будет произведено.
Токен предмета
Это тип и подтип предмета, который вы создаете в результате реакции.
Продукты реакции могут так же использовать сочетание CRAFTS:NONE для создания случайной поделки. Нигде более такое сочетание использвоать нельзя.
Токен материала
Токен material token указывает на материал, из которого будет изготовлен продукт.
Модификаторы продукта
Ноль или больше токенов, которые позволяют конкретезировать тип предмета и материала, если стандартных средств недостаточно.
Токен | Описание |
---|---|
[FORCE_EDGE] | Продукт обладает острыми кромками. Используется при заточке. |
[PRODUCT_PASTE] | Созданный продукт получает состояние SOLID_PASTE. |
[PRODUCT_PRESSED] | Созданный продукт получает состояние SOLID_PRESSED. |
[PRODUCT_DIMENSION:<size>] | Задает размер полученного продукта. Размер 150 является типичным для слитков, порошков, жидкостей и выпивки. Размер 15000 применяется для нитей и 10000 для тканей. |
[PRODUCT_TO_CONTAINER:<id>] | Помещает продукт в контейнер; здесь <id> должно быть именем реагента с модификатором PRESERVE_REAGENT, который к тому же является контейнером. |
Улучшения
Улучшения применяются к существующим реагентам. В реакции может быть прописано сколько угодно улучшений.
Само улучшение имеет следующий вид:
[IMPROVEMENT:<probability>:<reagent name>:<improvement type>:<material token>]
Вероятность
Процент вероятности того, что данное улучшение будет применено к реагенту по окончанию реакции.
Название реагента
Имя реагента, который подлежит улучшению. Очевидно, что такой реагент должен быть помечен тегом [PRESERVE_REAGENT], чтобы защитить реагент от уничтожения в ходе реакции.
Тип улучшения
Допускаются следующие виды улучшений:
Токен | Описание |
---|---|
COVERED | Предмет будет инкрустирован/усеян/декорирован соответствующим <material>. |
GLAZED | Предмет покрыт соответствующим <material>. |
RINGS_HANGING | Украшен висящими кольцами из <material>. |
BANDS | Покрыт полосами из <material>. |
SPIKES | Усеян шипами из <material>. |
Все остальные виды улучшений (ART_IMAGE, ITEMSPECIFIC, THREAD, CLOTH и SEWN_IMAGE) игнорируются.
Токен материала
Токен материала указывает на материал, из которого создается украшение.
Другие токены
fuel
Наличие токена FUEL указывает на то, что для проведения реакции дополнительно требуется каменный уголь или древесный уголь. Если реакция приписана Печи или Плавильне, то она может быть выполнена БЕЗ требования топлива в Magma Kiln или Magma Smelter.
skill
Токен SKILL указывает, какой навык необходим для проведения реакции. В этом случае осуществление реакции будет тренировать этот навык. Можно указать несколько навыков, но применяться будет только один.
automatic
Токен AUTOMATIC означает, что операция будет добавлена в очередь мастерской автоматически, как только станут доступны все необходимые реагенты.
adventure mode enabled
Токен ADVENTURE_MODE_ENABLED говорит, что данная реакция будет доступна не в Режиме Крепости, а в Режиме Приключения. Этот токен сделает данную реакцию доступной для любого героя, люой расы без какого-либо редактирования entity-файла.
Материал продуктов реакции и классы реакций
Вы можете получить более тонкий контроль над применяемыми материалами при помощи указания класса реакции и материала продукта реакции - токены для этого выглядят следующим образом:
[REACTION_CLASS:FAT] [HAS_MATERIAL_REACTION_PRODUCT:RENDER_MAT]
REACTION_CLASS
Классы реакций позволяют создать различные классы материалов - проще говоря, они позволяют требовать реагенты с материалами у которых REACTION_CLASS такой же, как и у реакции.
- У материала должен быть прописан токен [REACTION_CLASS:FLUX]
- В реакции у реагента надо прописать дополнительный токен [REACTION_CLASS:FLUX]
В этом случае в качестве реагента подойдут только те предметы, у материала которых есть токен REACTION_CLASS со значением FLUX.
HAS_MATERIAL_REACTION_PRODUCT
Материал продукта реакции действует похожим образом, но предназначен для использования совместно с материалами существ, а не с универсальными материалами, наподобие камней. При помощи этого токена можно, например, описать, как skin превращается в leather, которые состоят, вообще говоря, из разных материалов - в этом случае материал кожа содержит указание на материал выделанная кожа в токене MATERIAL_REACTION_PRODUCT.
Короче, для этого требуется, чтобы материал имел токен следующего вида
[MATERIAL_REACTION_PRODUCT:X:Y]
где X имя продукта реакции, который требуется для реакции (в примере выше это RENDER_MAT, а в случае с кожей, это TAN_MAT), а Y токен материала с указанием материала целевого продукта (например [LOCAL_CREATURE_MAT:LEATHER]).
- У материала должен быть прописан токен [MATERIAL_REACTION_PRODUCT:RENDER_MAT:LOCAL_CREATURE_MAT:TALLOW]
- В реакции у реагента надо прописать дополнительный токен [HAS_MATERIAL_REACTION_PRODUCT:RENDER_MAT]
- В реакции у продукта надо указать материал продукта GET_MATERIAL_FROM_REAGENT:A:RENDER_MAT
В этом случае продукт получит материал не самого реагента, а тот материал, который указан в материала реагента (например сало вместо исходного жира).
Реакции и генерация мира
Есть несколько моментов, которые следует иметь ввиду, когда вы пытаетесь добавить реакции в уже созданную игру:
- Большинство изменений, затрагивающий entity-файл требуют генерации нового мира, однако этого можно не делать, если вы добавляете токен PERMITTED_REACTION для реакции, которая УЖЕ существовала на момент генерации мира (достаточно изменить файл в папке с сохраненной игрой).
- Добавление новой рекции в папку с сохраненной игрой потребует генерации нового мира.
- Сами реакции вы можете редактировать сколько угодно без перегенерации мира ровно до тех пор, пока не изменяются идентификаторы реакций.
Полный список токенов
Для полного удобства и читабельности предствалена полная таблица токенов реакций в алфавитном порядке:
Token | Arguments | Description |
---|---|---|
ADVENTURE_MODE_ENABLED | Эта реакция не будет доступна дфарфам, но ей можно воспользоваться в режиме приключенца. Использование этого токена разрешает рецепт приключенцам всех рас, если не изменять Entity файлы. | |
ANY_BONE_MATERIAL | Материал реагента обязан иметь токен [BONE] (т.е. реагент должен быть костью). | |
ANY_HORN_MATERIAL | Материал реагента обязан иметь токен [HORN] (т.е. реагент должен быть рогом или копытом). | |
ANY_LEATHER_MATERIAL | Материал реагента обязан иметь токен [LEATHER] (т.е. реагент должен быть кожей). | |
ANY_PEARL_MATERIAL | Материал реагента обязан иметь токен [PEARL] (т.е реагент должен быть жемчугом). | |
ANY_PLANT_MATERIAL | Материл реагента должен относиться с растению. | |
ANY_SHELL_MATERIAL | Материал реагента обязан иметь токен [SHELL] (реагент — панцирь). | |
ANY_SILK_MATERIAL | Материал реагента обязан иметь токен [SILK] (реагент — Шёлк). | |
ANY_SOAP_MATERIAL | Материал реагента обязан иметь токен [SOAP] (мыло). | |
ANY_STRAND_TISSUE | Реагент сделан из ткани, содержащей токен [TISSUE_SHAPE:STRANDS], предназначенные для волос или шерсти (и бородыТребует проверки). Должен использоваться вместе с токеном [USE_BODY_COMPONENT]. | |
ANY_TOOTH_MATERIAL | Материал реагента обязан иметь токен [TOOTH]. | |
ANY_YARN_MATERIAL | Материал реагента обязан иметь токен [YARN] (шерсть. | |
AUTOMATIC | Реакция автоматически встанет в очередь, если все реагенты доступны. | |
BAG | Реагент должен быть мешком. Предназначен для использования с предметом типа BOX, чтобы предотвратить использование сундуков или подобных контейнеров вместо них. | |
BUILDING |
|
Задаёт, что реакция будет проходить в определённой постройке и горячую клавишу для добавления этой реакции в очередь. |
BUILDMAT | Реагент может быть использован для строительства (камень, древесина, блоки, слиткиТребует проверки). | |
CAN_USE_ARTIFACT | Реагент может быть артефактом. Использование [PRESERVE_REAGENT] вместе с этим токеном настоятельно рекомендуется. | |
CONTAINS | Требуемое содержимое | Реагент-контейнер должен содержать определённый реагент в себе. |
CONTAINS_LYE | Если реагент — контейнер, он должен содержать щёлок. В текущих версиях не используется — вместо этого используется один ингредиент как щелок и второй с токеном [CONTAINS:lye_reagent]. | |
DOES_NOT_ABSORB | Материал реагента должен иметь токен [ABSORPTION:0] | |
DOES_NOT_DETERMINE_PRODUCT_AMOUNT | Устанавливает количество продуктов реакции, исходя из количества реагентов (возможно, первого в спискеТребует проверки). Используется для реакций, где продукты производятся по нескольку сразу, как жидкости в бочках. | |
EMPTY | Если реагент — контейнер, то он должен быть пустым. | |
FIRE_BUILD_SAFE | Реагент должен быть устойчив к огню — т.е. не древесина и не уголь | |
FORCE_EDGE | Продукт становится заточенным (появляются острые края). Используется для затачивания. | |
FUEL | Реакция требует единицу угля или древесного угля или должна проходить в магма-мастерской. | |
GLASS_MATERIAL | Материал реагента должен иметь токен [IS_GLASS] (стекло). | |
HAS_MATERIAL_REACTION_PRODUCT | Требуемый продукт реакции | ? |
HAS_TOOL_USE | Tool-use token | Реагент должен быть инструментом с определённым значением TOOL_USE. Если поставить необходимость в реагенте с токеном TOOL:NONE не даст результатаТребует проверки. |
IMPROVEMENT |
|
Типы украшения включают BANDS, COVERED, GLAZED, RINGS_HANGING и SPIKES. |
MAGMA_BUILD_SAFE | В настоящее время работает некорректно — имеет тот же эффект, что и FIRE_BUILD_SAFE. | |
METAL_ORE |
|
Материал реагента должен быть рудой, содержащей определённый металл. |
MIN_DIMENSION | ? | |
NAME | Название | Устанавливает название для реакции, отображаемое в игре. |
NO_EDGE_ALLOWED | Реагент не должен иметь острых краёв (используется для заточки). | |
NOT_CONTAIN_BARREL_ITEM | Если реагент — бочка, она должна быть пустой. В бочках обычно хранится молоко или щёлок. Алкоголь считается как [EMPTY]Требует проверки. Реакции, в которых предмет кладётся в бочку, должны содержать оба тега. | |
NOT_ENGRAVED | Реагент не должен быть гравированТребует проверки. | |
NOT_IMPROVED | Реагент не должен быть украшен. | |
NOT_PRESSED | Реагент не должен быть в состоянии SOLID_PRESSED. | |
NOT_WEB | Реагент должен быть "собран" — используется вместе с THREAD:NONE чтобы исключить паутину. | |
POTASHABLE | То же, что CONTAINS_LYEТребует проверки. | |
PRESERVE_REAGENT | Реагент не будет уничтожен по завершению реакции, это нормальный эффект. Обычно используется для контейнеров. | |
PRODUCT |
|
Определяет один из продуктов, получаемых в результате реакции. |
PRODUCT_DIMENSION | Размер | Указывает размер продукта. Размер 150 типичен для слитков, порошков, жидкостей, и напитков. Размером 15000 обладают нитей, а размер 10000 годится для одежды. |
PRODUCT_PASTE | Продукт создаётся в состоянии SOLID_PASTE. | |
PRODUCT_PRESSED | Продукт создаётся в состоянии SOLID_PRESSED. | |
PRODUCT_TO_CONTAINER | ID реагента | Помещает продукт В контейнер; ID должен быть названием реагента с токеном PRESERVE_REAGENT и типом предмета "контейнер". |
REACTION | Идентификатор | Задаёт новую реакцию |
REACTION_CLASS | ? | |
REAGENT |
|
Задаёт реагент для реакции. |
SKILL | Токен навыка | Навык, используемый для проведения реакции. |
UNROTTEN | Реагент не должен быть гнилым. Используется для органических материалов. | |
USE_BODY_COMPONENT | Реагент должен быть частью тела существа. | |
WEB_ONLY | Реагент должен быть "undisturbed" — используется вместе с THREAD:NONE для обозначения паутины. | |
WORTHLESS_STONE_ONLY | Реагент не сделан из экономического камня. |