{
  "block.hexal.slipway": "Портал-скользун",
  "block.hexal.mediafied_storage": "Ядро Мот",
  "block.hexal.relay": "Релей",

  "entity.hexal.wisp.projectile": "Снарядный висп",
  "entity.hexal.wisp.ticking": "Циклический висп",
  "entity.hexal.wisp.wandering": "Блуждающий висп",

  "hexcasting.mishap.non_player": "%s должен быть применён игроком.",
  "hexcasting.mishap.no_wisp": "%s должен быть применён виспом.",
  "hexcasting.mishap.others_wisp": "Этот висп принадлежит %s, а не вам.",
  "hexcasting.mishap.no_links": "У %s нет связей.",
  "hexcasting.mishap.self_link": "Попытка связать %s с самим собой.",
  "hexcasting.mishap.no_bound_storage": "Нет привязанного ядра мот.",
  "hexcasting.mishap.storage_unloaded": "Привязанное ядро мот не загружено.",
  "hexcasting.mishap.excessive_reproduction": "Висп %s попытался размножиться слишком часто; только 1 потомок за тик.",

  "hexcasting.mishap.invalid_value.class.linkable": "связываемый объект",
  "hexcasting.mishap.invalid_value.class.wisp": "висп",
  "hexcasting.mishap.invalid_value.class.consumable_entity": "поглощаемый объект",
  "hexcasting.mishap.invalid_value.class.wisp.casting": "кастующий висп",
  "hexcasting.mishap.invalid_value.class.type.block": "тип блока",
  "hexcasting.mishap.invalid_value.class.type.item": "тип предмета",
  "hexcasting.mishap.invalid_value.class.type.entity": "сущность или её тип",
  "hexcasting.mishap.invalid_value.class.type.block.able": "тип предмета, у которого есть блок",
  "hexcasting.mishap.invalid_value.class.type.list.double": "список чисел",
  "hexcasting.mishap.invalid_value.class.gate": "врата",
  "hexcasting.mishap.invalid_value.class.mote": "мот",
  "hexcasting.mishap.invalid_value.class.moteentity.itemitemframe": "мот, предметная сущность или рамка для предмета",
  "hexcasting.mishap.invalid_value.moteitemtype": "мот или тип предмета",
  "hexcasting.mishap.invalid_value.motemotelist": "мот или список мотов",
  "hexcasting.mishap.invalid_value.motemotelistmotelistlist": "мот, список мотов или список списков мотов",
  "hexcasting.mishap.invalid_value.veclist": "вектор или список векторов",
  "hexcasting.mishap.invalid_value.blockitementityitemframeitem": "блок, предметная сущность, рамка для предмета или мот",
  "hexcasting.mishap.invalid_value.entity.itemitemframe": "предметная сущность или рамка для предмета",
  "hexcasting.mishap.invalid_value.int.strictly_positive": "строго положительное целое число",
  "hexcasting.mishap.invalid_value.crafting_recipe": "корректный рецепт крафта",
  "hexcasting.mishap.invalid_value.mote_duplicated": "каждый мот должен встречаться только один раз",
  "hexcasting.mishap.invalid_value.cant_combine_motes": "два мота, которые можно объединить",
  "hexcasting.mishap.invalid_value.mote_not_size_one": "мот без NBT-данных или размером один",
  "hexcasting.mishap.invalid_value.gate.offset": "смещение не более %f блоков",

  "hexcasting.iota.hexal:iota_type": "Тип йоты",
  "hexcasting.iota.hexal:entity_type": "Тип сущности",
  "hexcasting.iota.hexal:item_type": "Тип предмета",
  "hexcasting.iota.hexal:gate": "Врата",
  "hexcasting.iota.hexal:item": "Предмет",

  "hexal.spelldata.entity_type": "Тип",
  "hexal.spelldata.gate": "Врата %d",
  "hexal.spelldata.item": "%s x%d",

  "hexcasting.spell.hexal:type/iota": "Очищение классификатора",
  "hexcasting.spell.hexal:type/entity": "Очищение лекаря",
  "hexcasting.spell.hexal:type/block_item": "Очищение сортировщика",
  "hexcasting.spell.hexal:type/item_held": "Отражение сортировщика",

  "hexcasting.spell.hexal:get_entity/type": "Дистилляция сущности: тип",
  "hexcasting.spell.hexal:zone_entity/type": "Экзальтация зоны: тип",
  "hexcasting.spell.hexal:zone_entity/not_type": "Экзальтация зоны: не-тип",

  "hexcasting.spell.hexal:current_tick": "Отражение хранителя времени",
  "hexcasting.spell.hexal:remaining_evals": "Отражение Танатоса",
  "hexcasting.spell.hexal:breath": "Очищение ныряльщика",
  "hexcasting.spell.hexal:health": "Очищение медсестры",
  "hexcasting.spell.hexal:armour": "Очищение оруженосца",
  "hexcasting.spell.hexal:toughness": "Очищение боксёра",
  "hexcasting.spell.hexal:light_level": "Очищение светочника",

  "hexcasting.spell.hexal:factorial": "Очищение факториала",
  "hexcasting.spell.hexal:running/sum": "Очищение бегущей суммы",
  "hexcasting.spell.hexal:running/mul": "Очищение бегущего произведения",

  "hexcasting.spell.hexal:everbook/read": "Гамбит Мнемозины",
  "hexcasting.spell.hexal:everbook/write": "Гамбит Элизиума",
  "hexcasting.spell.hexal:everbook/delete": "Гамбит Леты",
  "hexcasting.spell.hexal:everbook/toggle_macro": "Гамбит Брайх",

  "hexcasting.spell.hexal:smelt": "Переплавка",
  "hexcasting.spell.hexal:freeze": "Заморозка",
  "hexcasting.spell.hexal:falling_block": "Падающий блок",
  "hexcasting.spell.hexal:place_type": "Поставить блок II",
  "hexcasting.spell.hexal:particles": "Частицы",

  "hexcasting.spell.hexal:interop/fabric_only/phase_block": "Фазовый блок",

  "hexcasting.spell.hexal:wisp/summon/projectile": "Призвать снарядного виспа",
  "hexcasting.spell.hexal:wisp/summon/ticking": "Призвать циклического виспа",
  "hexcasting.spell.hexal:wisp/self": "Отражение личности",
  "hexcasting.spell.hexal:wisp/media": "Отражение резервуара",
  "hexcasting.spell.hexal:wisp/hex": "Очищение управляющего",
  "hexcasting.spell.hexal:wisp/owner": "Дистилляция принадлежности",
  "hexcasting.spell.hexal:wisp/move/target/set": "Гамбит следопыта",
  "hexcasting.spell.hexal:wisp/move/target/get": "Отражение следопыта",
  "hexcasting.spell.hexal:wisp/move/speed/set": "Ускорение",
  "hexcasting.spell.hexal:wisp/move/speed/get": "Отражение спидометра",
  "hexcasting.spell.hexal:wisp/trigger/tick": "Задержка виспа",
  "hexcasting.spell.hexal:wisp/trigger/comm": "Прослушивание",
  "hexcasting.spell.hexal:wisp/trigger/move": "Блуждание",
  "hexcasting.spell.hexal:wisp/consume": "Поглотить виспа",
  "hexcasting.spell.hexal:wisp/seon/set": "Привязать виспа",
  "hexcasting.spell.hexal:wisp/seon/get": "Отражение фамильяра",
  "hexcasting.spell.hexal:wisp/transfer/allow": "Разрешить передачу",
  "hexcasting.spell.hexal:wisp/transfer/disallow": "Запретить передачу",
  "hexcasting.spell.hexal:wisp/transfer/others/allow": "Разрешить передачу другим",
  "hexcasting.spell.hexal:wisp/transfer/others/disallow": "Запретить передачу другим",

  "hexcasting.spell.hexal:get_entity/wisp": "Очищение сущности: висп",
  "hexcasting.spell.hexal:zone_entity/wisp": "Дистилляция зоны: висп",
  "hexcasting.spell.hexal:zone_entity/not_wisp": "Дистилляция зоны: не-висп",

  "hexcasting.spell.hexal:link": "Связь",
  "hexcasting.spell.hexal:link/others": "Связь других",
  "hexcasting.spell.hexal:link/unlink": "Разорвать связь",
  "hexcasting.spell.hexal:link/unlink/others": "Разорвать связь других",
  "hexcasting.spell.hexal:link/get": "Очищение телефонной книги",
  "hexcasting.spell.hexal:link/get_index": "Очищение распознавания",
  "hexcasting.spell.hexal:link/num": "Отражение популярности",

  "hexcasting.spell.hexal:link/comm/send": "Отправить йоту",
  "hexcasting.spell.hexal:link/comm/read": "Отражение декламации",
  "hexcasting.spell.hexal:link/comm/num": "Отражение почтальона",
  "hexcasting.spell.hexal:link/comm/clear": "Гамбит прочистки",
  "hexcasting.spell.hexal:link/comm/open_transmit": "Открыть передачу",
  "hexcasting.spell.hexal:link/comm/close_transmit": "Закрыть передачу",

  "hexcasting.spell.hexal:gate/make": "Отражение врат",
  "hexcasting.spell.hexal:gate/mark": "Открытие врат",
  "hexcasting.spell.hexal:gate/unmark": "Снятие метки врат",
  "hexcasting.spell.hexal:gate/mark/num/get": "Очищение отмеченных",
  "hexcasting.spell.hexal:gate/mark/get": "Дистилляция отмеченных",
  "hexcasting.spell.hexal:gate/close": "Закрытие врат",

  "hexcasting.spell.hexal:mote/storage/bind": "Привязать хранилище",
  "hexcasting.spell.hexal:mote/storage/bind/temp": "Привязать хранилище - временно",
  "hexcasting.spell.hexal:mote/contained_type/get": "Отражение инвентаризации",
  "hexcasting.spell.hexal:mote/contained/get": "Очищение инвентаризации",
  "hexcasting.spell.hexal:mote/storage/remaining_capacity/get": "Отражение вместимости",
  "hexcasting.spell.hexal:mote/storage/contains": "Дистилляция содержимого",
  "hexcasting.spell.hexal:mote/make": "Омедить предмет",
  "hexcasting.spell.hexal:mote/return": "Вернуть предмет",
  "hexcasting.spell.hexal:mote/count/get": "Очищение взвешивания",
  "hexcasting.spell.hexal:mote/combine": "Дистилляция стака",
  "hexcasting.spell.hexal:mote/combinable": "Дистилляция стака II",
  "hexcasting.spell.hexal:mote/split": "Гамбит разделения",
  "hexcasting.spell.hexal:mote/storage/get": "Очищение склада",
  "hexcasting.spell.hexal:mote/storage/set": "Гамбит склада",
  "hexcasting.spell.hexal:mote/craft": "Крафт",
  "hexcasting.spell.hexal:mote/villager/level/get": "Очищение старшинства",
  "hexcasting.spell.hexal:mote/trade/get": "Очищение предложения",
  "hexcasting.spell.hexal:mote/trade": "Торговля",
  "hexcasting.spell.hexal:mote/use_on": "Использовать предмет на",

  "hexcasting.spell.hexal:tick": "Ускорить",

  "hexcasting.spell.book.hexal:light_level": "Светочник. очищ.",

  "hexcasting.spell.book.hexal:running/sum": "Бегущая сумма очищ.",
  "hexcasting.spell.book.hexal:running/mul": "Бегущее произвед. очищ.",

  "hexcasting.spell.book.hexal:get_entity/wisp": "Сущн. очищ.: висп",
  "hexcasting.spell.book.hexal:zone_entity/wisp": "Зон. дист.: висп",
  "hexcasting.spell.book.hexal:zone_entity/not_wisp": "Зон. дист.: не-висп",

  "hexcasting.spell.book.hexal:mote/storage/bind/temp": "Привязать хранилище - врем.",

  "hexal.entry.slipways": "Скользуны",
  "hexal.page.slipways": "Я слышал истории о некоторых жеодах, в которых лежат светящиеся порталы, называемые скользунами. Эти скользуны часто изображаются с окружающими их искрами, которые невероятно похожи на $(l:hexal:patterns/spells/wisps)$(thing)виспами/$, о которых я слышал, возможно, это стоит изучить.",

  "hexal.entry.relay": "Релей",
  "hexal.page.relay.0": "Часто мне хочется $(l:hexal:patterns/spells/links#hexal:link)$(action)связать/$ несколько $(l:hexal:patterns/spells/wisps)$(thing)виспов/$, чтобы они могли делиться медиа и информацией на большие расстояния. Однако длинные цепочки виспов для передачи на большие расстояния неудобны и требуют больших затрат. Для решения этой проблемы я создал реле. Поскольку это твёрдые блоки, а не конструкции из медиа, они могут поддерживать связи без затрат.",
  "hexal.page.relay.1": "Любые соединённые реле образуют сеть, и любые виспы, подключённые к сети реле, могут делиться медиа между собой, как если бы были напрямую связаны. Кроме того, любая йота, отправленная на одно реле в сети, передаётся всем остальным не-реле, подключённым к сети. Реле имеют радиус 32 блока (то есть два реле могут соединиться на расстоянии 64 блока). Цвет связей сети можно изменить, щёлкнув ПКМ по любому реле с красителем.",
  "hexal.page.relay.2": "У реле нет владельца, поэтому если вы хотите, чтобы ваши виспы $(l:hexal:patterns/spells/wisps#hexal:wisp/transfer/allow)$(action)передавали медиа/$ через них, вы должны явно разрешить это.",

  "hexal.entry.hexal_basics": "Основы Hexal",
  "hexal.page.hexal_basics.current_tick": "Добавляет число в стак, которое, похоже, связано с тем, как Природа представляет время; если я применю этот паттерн, а затем повторю через секунду, число увеличится на 20.",
  "hexal.page.hexal_basics.remaining_evals": "Добавляет в стак количество оставшихся вычислений хекса. Это число уменьшается $(l:patterns/meta#hexcasting:eval)$(action)Гамбитом Гермеса/$ и $(l:patterns/meta#hexcasting:for_each)$(action)Гамбитом Тота/$.",
  "hexal.page.hexal_basics.breath": "Удаляет живую сущность из стака и возвращает, сколько у неё осталось воздуха (т.е. насколько она близка к утоплению).",
  "hexal.page.hexal_basics.health": "Удаляет живую сущность из стака и возвращает, сколько у неё осталось здоровья (т.е. насколько она близка к смерти).",
  "hexal.page.hexal_basics.armour": "Удаляет живую сущность из стака и возвращает, сколько у неё брони.",
  "hexal.page.hexal_basics.toughness": "Удаляет живую сущность из стака и возвращает, сколько у неё прочности (дополнительное свойство брони).",
  "hexal.page.hexal_basics.light_level": "Удаляет вектор позиции из стака и возвращает уровень освещения в этой точке.",

  "hexal.entry.hexal_maths": "Математика Hexal",
  "hexal.page.hexal_maths.factorial": "Берёт число из стака и вычисляет его факториал, например, если ввести 4, получится 4*3*2*1=24.",
  "hexal.page.hexal_maths.running/sum": "Берёт список из стака и вычисляет его бегущую сумму, например, [1,2,5] превратится в [1,3,8].",
  "hexal.page.hexal_maths.running/mul": "Берёт список из стака и вычисляет его бегущее произведение, например, [1,2,5] превратится в [1,2,10].",

  "hexal.entry.hexal_spell": "Заклинания Hexal",
  "hexal.page.hexal_spell.smelt.0": "Удаляет из стака позицию, предметную сущность или мот, затем либо переплавляет блок по позиции, либо все предметы в сущности или моте.",
  "hexal.page.hexal_spell.smelt.1": "Стоит три четверти $(l:items/amethyst)$(item)аметистовой пыли/$ за предмет (т.е. три четверти $(l:items/amethyst)$(item)аметистовой пыли/$ за блок, 6 $(l:items/amethyst)$(item)аметистовой пыли/$ за 8 предметов).",
  "hexal.page.hexal_spell.freeze": "Замораживает блок по позиции. Например, превращает воду в лёд, а лёд — в сжатый лёд. Стоит одну $(l:items/amethyst)$(item)аметистовую пыль/$.",
  "hexal.page.hexal_spell.falling_block": "Удаляет позицию из стака и заставляет блок там упасть, как песок или гравий. Стоит полторы $(l:items/amethyst)$(item)аметистовой пыли/$.",
  "hexal.page.hexal_spell.place_type": "Принимает тип предмета или мот и позицию, и пытается поставить блок этого типа в указанное место. Если передан мот, ставит из записи, на которую он ссылается. Стоит одну восьмую $(l:items/amethyst)$(item)аметистовой пыли/$.",
  "hexal.page.hexal_spell.particles": "Принимает позицию или список позиций и создаёт частицу в точке или линии между точками. Стоит две тысячных $(l:items/amethyst)$(item)аметистовой пыли/$ за позицию.",

  "hexal.entry.fabric_only_hexal": "Hexal (только Fabric)",
  "hexal.page.fabric_only_hexal.interop/fabric_only/phase_block": "Принимает позицию и число, и фазирует блок в этой позиции на столько секунд. Стоит одну десятитысячную $(l:items/amethyst)$(item)аметистовой пыли/$, умноженную на квадрат времени фазирования.",

  "hexal.entry.wisps": "Виспы",
  "hexal.page.wisps.0": "Я открыл способ создавать конструкции из самой медиа, видимые другим и способные двигаться и действовать самостоятельно. Они могут кастовать хексы вместо меня, как $(l:patterns/meta#hexcasting:eval)$(action)Гамбит Гермеса/$. Однако для их управления требуется часть моего внимания, и если их слишком много, я смогу управлять только частью, остальные останутся на следующий тик.",
  "hexal.page.wisps.1": "При создании я выделяю им 'резервуар' медиа, который они используют для существования. Висп тратит часть резервуара просто существуя, а при выполнении паттернов — ещё больше. Все виспы требуют три $(l:items/amethyst)$(item)аметистовой пыли/$ для призыва, плюс медиа для резервуара.",
  "hexal.page.wisps.2": "Виспы строго наказываются за попытку хранить истинное имя другого кастера — их содержание медиа увеличивается в 20 раз за каждую йоту истинного имени в их хранилищах.",
  "hexal.page.wisps.wisp/summon/projectile.0": "Этот висп призывается и запускается как стрела, кастуя хекс по тому, во что попадёт. В начале стака будет ссылка на себя, затем на цель.",
  "hexal.page.wisps.wisp/summon/projectile.1": "Это может быть позиция блока или сущность. Первый вектор — место призыва, направление второго — направление запуска, а его длина влияет на скорость. Стоимость заклинания растёт с квадратом скорости. Число определяет резервуар виспа в $(l:items/amethyst)$(item)аметистовой пыли/$. Тратит примерно 0,3 $(l:items/amethyst)$(item)аметистовой пыли/$ в секунду, радиус действия — 4 блока.",
  "hexal.page.wisps.wisp/summon/ticking.0": "Похоже на призыв снарядного виспа, но только с одним вектором позиции. Циклические виспы не двигаются, а кастуют хекс до 20 раз в секунду.",
  "hexal.page.wisps.wisp/summon/ticking.1": "В первый раз стак начинается с ссылки на себя, далее — с того состояния, в котором закончился прошлый каст. Эта форма менее стабильна, теряет примерно 0,7 $(l:items/amethyst)$(item)аметистовой пыли/$ в секунду. Радиус действия — 8 блоков.",
  "hexal.page.wisps.wisp/self": "Добавляет ссылку на кастующего виспа в стак. Должно быть применено виспом; попытка через посох приведёт к ошибке.",
  "hexal.page.wisps.wisp/media": "Добавляет количество медиа в резервуаре виспа в стак. Должно быть применено виспом; попытка через посох приведёт к ошибке.",
  "hexal.page.wisps.wisp/hex": "Удаляет ссылку на виспа из стака и заменяет её на его хекс. Должен быть ваш висп или разрешённый для передачи.",
  "hexal.page.wisps.wisp/owner": "Удаляет ссылку на виспа и сущность из стака, возвращает true, если эта сущность владеет виспом, иначе false.",
  "hexal.page.wisps.wisp/move/target/set": "Удаляет вектор позиции из стака; циклический висп будет двигаться к этой точке по прямой, сталкиваясь с препятствиями.",
  "hexal.page.wisps.wisp/move/target/get": "Добавляет в стак позицию, к которой движется циклический висп.",
  "hexal.page.wisps.wisp/move/speed/set": "Удаляет число из стака и задаёт максимальную скорость циклического виспа.",
  "hexal.page.wisps.wisp/move/speed/get": "Получает текущую максимальную скорость циклического виспа.",
  "hexal.page.wisps.wisp/transfer/allow": "Когда два виспа $(l:hexal:patterns/spells/links)$(thing)связаны/$, они обмениваются медиа до выравнивания. По умолчанию только между виспами одного владельца. Принимает индекс и явно разрешает обмен.",
  "hexal.page.wisps.wisp/transfer/disallow": "Аналогично, принимает индекс и запрещает обмен медиа по этому индексу.",
  "hexal.page.wisps.wisp/transfer/others/allow": "Принимает вашего виспа и индекс, разрешает обмен медиа по этому индексу.",
  "hexal.page.wisps.wisp/transfer/others/disallow": "Принимает вашего виспа и индекс, запрещает обмен медиа по этому индексу.",
  "hexal.page.wisps.get_entity/wisp": "Преобразует позицию из стака в виспа по этой позиции (или $(l:casting/influences)$(thing)Null/$ если его нет).",
  "hexal.page.wisps.zone_entity/wisp": "Принимает позицию и радиус, возвращает список виспов рядом.",
  "hexal.page.wisps.zone_entity/not_wisp": "Принимает позицию и радиус, возвращает список не-виспов рядом.",
  "hexal.page.wisps.wisp/trigger/tick": "Удаляет целое число из стака, затем задерживает следующий каст виспа на столько двадцатых секунды. Пока не кастует, стоимость содержания виспа уменьшается вдвое.",
  "hexal.page.wisps.wisp/trigger/comm": "Следующий каст виспа не произойдёт, пока не получит хотя бы одну $(l:hexal:patterns/spells/links#hexal:link/comm/send)$(action)коммуникацию/$.",
  "hexal.page.wisps.wisp/trigger/move": "Следующий каст виспа не произойдёт, пока он не достигнет позиции, к которой $(l:hexal:patterns/spells/wisps#hexal:wisp/move/target/set)$(action)движется/$.",

  "hexal.entry.links": "Связи",
  "hexal.page.links.0": "Эти паттерны описывают систему передачи информации от одного $(l:hexal:patterns/spells/wisps)$(thing)виспа/$ к другому и не только. Есть паттерны для создания связей и для передачи йот по ним. Висп может иметь любое количество активных связей, каждая требует ничтожное количество медиа на тик.",
  "hexal.page.links.1": "Связи связываемого объекта индексируются по порядку создания, этот номер используется во многих паттернах. \"Связываемый объект\" — не отдельный тип, а сокращение для любого типа, который можно привести к связываемому (например, Entity → связываемые сущности, Vec → связываемые блоки и т.д.). Связи могут быть длиной до удвоенной суммы радиусов. Для связи на огромные расстояния стоит построить $(l:hexal:items/relay)$(item)реле/$.",
  "hexal.page.links.link": "Связывает кастера с сущностью из стака, которая должна быть связываемой. Стоит один $(l:items/amethyst)$(item)аметистовый осколок/$.",
  "hexal.page.links.link/others": "Может быть применено любым инструментом. Связывает две сущности, обе должны быть связываемыми. Стоит один $(l:items/amethyst)$(item)аметистовый осколок/$.",
  "hexal.page.links.link/unlink": "Удаляет связь по индексу из связей кастера. Стоит две $(l:items/amethyst)$(item)аметистовой пыли/$.",
  "hexal.page.links.link/unlink/others": "Принимает два связываемых объекта и разрывает связь между ними, если она есть. Стоит две $(l:items/amethyst)$(item)аметистовой пыли/$.",
  "hexal.page.links.link/get": "Удаляет индекс из стака и добавляет в стак сущность, связанную по этому индексу.",
  "hexal.page.links.link/get_index": "Удаляет сущность из стака и добавляет в стак индекс связи с ней (или -1, если связи нет).",
  "hexal.page.links.link/num": "Добавляет в стак количество связей у виспа.",
  "hexal.page.links.link/comm/send": "Удаляет йоту из стака, затем индекс, и отправляет йоту по связи с этим индексом. Стоит одну сотую $(l:items/amethyst)$(item)аметистовой пыли/$.",
  "hexal.page.links.link/comm/read": "Когда что-то получает йоту по связи, она добавляется в очередь. Этот паттерн добавляет первую йоту из очереди в стак, удаляя её из очереди.",
  "hexal.page.links.link/comm/num": "Добавляет в стак количество непрочитанных йот в очереди кастера.",
  "hexal.page.links.link/comm/clear": "Удаляет все непрочитанные йоты из очереди кастера.",
  "hexal.page.links.link/comm/open_transmit": "Похоже на $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Интроспекцию/$: пока не нарисован $(l:hexal:patterns/spells/links#hexal:link/comm/close_transmit)$(action)Закрыть передачу/$, все паттерны отправляются по связи с индексом сверху стака.",
  "hexal.page.links.link/comm/close_transmit": "После $(l:hexal:patterns/spells/links#hexal:link/comm/open_transmit)$(action)Открыть передачу/$ перестаю передавать паттерны. Если $(l:hexal:patterns/spells/links#hexal:link/comm/open_transmit)$(action)Открыть/$ или $(l:hexal:patterns/spells/links#hexal:link/comm/close_transmit)$(action)Закрыть/$ применены посредником (например, виспом), произойдёт ошибка.",

  "hexal.entry.tick": "Ускорить",
  "hexal.page.tick.tick.0": "Заставляет блок по переданному вектору выполнять свои обычные действия быстрее в момент применения заклинания.",
  "hexal.page.tick.tick.1": "Каст стоит одну десятую $(l:items/amethyst)$(item)аметистовой пыли/$ плюс одну тысячную за каждый предыдущий каст на этот блок в этом хексе.",

  "hexal.entry.gates": "Врата",
  "hexal.page.gates.0": "Врата — последнее в моей череде экспериментов по разрыву пространства для соединения удалённых точек и мгновенного перемещения. То, что позволяют врата, а предыдущие попытки — нет, это $(o)эффективность$(). Я знаю три вида врат, все требуют много медиа для создания, но дешевле в использовании.",
  "hexal.page.gates.1": "Привязанные к позиции врата отправляют всех, кто проходит через них, в эту точку. Привязанные к сущности врата отправляют к позиции сущности (плюс смещение, выбранное при создании).",
  "hexal.page.gates.2": "Плавающие врата не привязаны вовсе и могут отправлять сущности куда угодно, но менее эффективны и работают только в пределах моей досягаемости. После создания врат я получаю ссылку на них в стак. С этой ссылкой можно отмечать сущности и закрывать врата, чтобы отправить отмеченных к месту назначения. Закрытие врат не расходует их — получив йоту врат, я могу использовать её вечно.",
  "hexal.page.gates.gate/make": "Добавляет новую йоту врат в стак. Любая копия этой йоты указывает на те же врата. Стоит 32 $(l:items/amethyst)$(item)заряженных аметиста/$. Если передан null — создаёт плавающие врата. Если вектор — позиционные, если вектор и сущность — сущностные.",
  "hexal.page.gates.gate/mark": "Поглощает йоту врат и сущность. Отмечает сущность для телепортации при следующем закрытии врат. Стоит одну двадцатую $(l:items/amethyst)$(item)аметистовой пыли/$.",
  "hexal.page.gates.gate/unmark": "Поглощает йоту врат и сущность. Снимает отметку, чтобы при $(l:hexal:patterns/spells/gates#hexal:gate/mark)$(action)Открытии врат/$ она не телепортировалась.",
  "hexal.page.gates.gate/mark/num/get": "Поглощает йоту врат, возвращает количество отмеченных сущностей.",
  "hexal.page.gates.gate/mark/get": "Поглощает йоту врат и сущность, возвращает, отмечена ли она этими вратами.",
  "hexal.page.gates.gate/close": "Поглощает не-плавающую йоту врат или плавающую и позицию. Телепортирует всех отмеченных сущностей к месту назначения. Стоит пол-$(l:items/amethyst)$(item)аметистового осколка/$ плюс $(l:items/amethyst)$(item)аметистовую пыль/$ за метр на сущность, если врата плавающие.",

  "hexal.entry.motes": "Моты",
  "hexal.page.motes.explanation.0": "Эта запись о переносе предметов в медиа, их учёте, порядке и... Омеднённая йота (мот), добавленная в стак, ссылается на конкретную запись в ядре мот, ведь без якоря мысль о предмете исчезнет — исчезнет, как моя память...",
  "hexal.page.motes.explanation.1": "Любая копия первой йоты мота ссылается на ту же запись, и любые изменения затрагивают все копии. Разделение, объединение, крафт и торговля влияют на все копии.",
  "hexal.page.motes.explanation.2": "Ядро мот ограничено лишь частично. Оно может содержать 1023 разных записи, но каждая — бесконечно много предметов. Я не нашёл предела: объединяю и объединяю, а запись всё растёт...",
  "hexal.page.motes.mediafed_storage_recipe":  "Ядро мот создаётся из разума картографа, бесконечно составляющего карту содержимого $(item)шалкерового ящика/$, в который он был превращён.",
  "hexal.page.motes.mote/storage/bind": "Выберите ядро мот в мире и привяжитесь к нему — все омеднённые предметы будут добавляться туда. Выбор другого блока отвязывает текущее ядро. Стоит 32 $(l:items/amethyst)$(item)аметистовой пыли/$.",
  "hexal.page.motes.mote/storage/bind/temp": "Выберите ядро мот и привяжитесь к нему до конца этого каста, временно переопределяя основную привязку. Стоит одну тысячную $(l:items/amethyst)$(item)аметистовой пыли/$.",
  "hexal.page.motes.mote/contained_type/get": "Получает все типы мотов в текущем ядре мот.",
  "hexal.page.motes.mote/contained/get": "Получает все записи мотов в текущем ядре, совпадающие с типом предмета или объединяемые с переданным мотом.",
  "hexal.page.motes.mote/storage/remaining_capacity/get": "Получает оставшуюся вместимость привязанного ядра мот.",
  "hexal.page.motes.mote/storage/contains": "Возвращает true, если ядро мот по позиции содержит мот данного типа или объединяемый с ним, иначе false.",
  "hexal.page.motes.mote/make": "Преобразует предмет в мире (предметная сущность или рамка) в мот в вашем стаке. Если передан мот — добавляет предметы из сущности в мот. Омеднение стоит одну десятую $(l:items/amethyst)$(item)аметистовой пыли/$.",
  "hexal.page.motes.mote/return": "Возвращает все предметы из мота в мир по выбранной позиции. Если передано число — не больше этого количества. Стоит одну десятую $(l:items/amethyst)$(item)аметистовой пыли/$.",
  "hexal.page.motes.mote/count/get": "Принимает мот и возвращает количество предметов в его записи.",
  "hexal.page.motes.mote/combine": "Объединяет два мота в один, сливая их записи. Все ссылки на второй мот станут null, на первый — останутся. Так можно хранить больше предметов, чем в обычном стаке!",
  "hexal.page.motes.mote/combinable": "Возвращает true, если первый мот можно объединить с предметами второго аргумента (мот, предметная сущность или рамка), иначе false.",
  "hexal.page.motes.mote/split": "Отделяет указанное количество предметов от мота, создавая новый мот с новой записью.",
  "hexal.page.motes.mote/storage/get": "Получает позицию ядра мот, содержащего переданный мот.",
  "hexal.page.motes.mote/storage/set": "Перемещает запись мота в ядро по позиции. Возвращает новый мот, все старые становятся невалидны.",
  "hexal.page.motes.mote/craft.0": "Принимает мот, список мотов или список списков мотов. Возвращает список результатов крафта. Например, ввод Stone x128 даст [Stone Button x128].",
  "hexal.page.motes.mote/craft.1": "Для сложных крафтов нужны null для расстановки. Алмазная кирка: [[Diamond x2, Diamond x2, Diamond x2], [null, Stick x2], [null, Stick x2]] → [Diamond Pickaxe x2]. Стоит одну десятую $(l:items/amethyst)$(item)аметистовой пыли/$.",
  "hexal.page.motes.mote/villager/level/get": "Принимает жителя, возвращает число — его опыт и навык.",
  "hexal.page.motes.mote/trade/get.0": "Принимает жителя и возвращает все его сделки. Это список списков списков. Каждая сделка — два списка: цена и возвращаемые предметы. Возвращаемые — тип и количество.",
  "hexal.page.motes.mote/trade/get.1": "Цена — список одной-двух пар предмет-количество, нужных жителю. Например: [[[Emerald, 1]], [Redstone, 1]].",
  "hexal.page.motes.mote/trade.0": "Принимает жителя, список мотов для торговли и, опционально, int — номер сделки. (int? значит можно передать 2 или 3 аргумента, 3-й — номер сделки).",
  "hexal.page.motes.mote/trade.1": "Если номер не передан, перебирает сделки, пока не найдёт подходящую. Если передан — сразу использует её. Повторяет сделку, пока хватает предметов и житель готов торговать. Возвращает предметы, которые житель отдал, как мот в стак.",
  "hexal.page.motes.mote/trade.2": "Житель получит опыт, как при обычной торговле, и улучшит навыки и предложения. Стоит одну десятую $(l:items/amethyst)$(item)аметистовой пыли/$.",
  "hexal.page.motes.mote/use_on": "Принимает мот и либо сущность, либо блок и нормаль. Использует предмет на цели. В моте должен быть только один предмет или очень простой (без NBT).",

  "hexal.entry.great_wisps": "Великие заклинания виспов",
  "hexal.page.great_wisps.wisp/consume.0": "Удаляет виспа из стака и разбирает его. Паттерны теряются, но медиа можно использовать, если заклинание применяет другой висп.",
  "hexal.page.great_wisps.wisp/consume.1": "Стоит $(l:items/amethyst)$(item)аметистовый осколок/$, если висп ваш или разрешён для передачи, или в полтора раза больше медиа, чем содержал висп, если он чужой и не разрешён. Передача медиа не полностью эффективна — теряется 1/20 резерва.",
  "hexal.page.great_wisps.wisp/seon/set": "Привязать одного из моих виспов ближе ко мне; можно иметь только одного привязанного, но он требует меньше содержания и имеет больший радиус.",
  "hexal.page.great_wisps.wisp/seon/get": "Возвращает моего текущего привязанного виспа. Новый можно привязать только если это возвращает null. (Это не великое заклинание, просто для удобства.)",

  "hexal.entry.types": "Типы",
  "hexal.page.types.type/iota": "Удаляет йоту из стака и добавляет её тип в стак.",
  "hexal.page.types.type/entity": "Удаляет сущность из стака и добавляет её тип в стак.",
  "hexal.page.types.type/block_item": "Удаляет позицию, $(l:hexal:hexal.entry.motes)$(item)мот/$, предметную сущность или рамку из стака и добавляет тип блока или предмета (например, трава, камень, палка и т.д.).",
  "hexal.page.types.type/item_held": "Добавляет тип предмета во второй руке кастера, если есть, иначе — тип предмета в руке.",

  "hexal.page.types.get_entity/type": "Удаляет тип сущности и позицию из стака, возвращает сущность этого типа по позиции, если есть.",
  "hexal.page.types.zone_entity/type": "Удаляет тип сущности, позицию и радиус из стака, возвращает список всех сущностей этого типа в радиусе.",
  "hexal.page.types.zone_entity/not_type": "Удаляет тип сущности, позицию и радиус из стака, возвращает список всех сущностей не этого типа в радиусе.",

  "hexal.entry.everbook": "Вечная книга",
  "hexal.page.everbook.0": "Ваша Вечная книга — странное пространство, до которого теперь может дотянуться ваш сломанный разум. Много вас, кажется, делят эту запись, миры и миры прогресса, снова и снова. Вечная книга может хранить паттерны с йотами, как $(l:hexcasting:greatwork/akashiclib)$(item)Акашическая запись/$, но из-за хрупкости разума лучше обращаться к ней через $(l:hexcasting:greatwork/akashiclib)$(item)Акашическую запись/$. В любом мире, где вы достигли просветления, у вас будет доступ к добавленным записям.",
  "hexal.page.everbook.everbook/read": "Принимает позицию $(l:hexcasting:greatwork/akashiclib)$(item)Акашической записи/$ и паттерн-ключ, извлекает йоту по этому ключу из Вечной книги, сохраняя её в указанной записи, если возможно.",
  "hexal.page.everbook.everbook/write": "Принимает позицию $(l:hexcasting:greatwork/akashiclib)$(item)Акашической записи/$ и паттерн-ключ, сохраняет йоту из этой записи в Вечную книгу по тому же ключу.",
  "hexal.page.everbook.everbook/delete": "Принимает паттерн и удаляет запись с этим ключом из Вечной книги.",
  "hexal.page.everbook.everbook/toggle_macro.0": "Принимает паттерн и помечает запись в Вечной книге как паттерн, который при рисовании будет считаться паттерном Природы.",
  "hexal.page.everbook.everbook/toggle_macro.1": "Если вы нарисуете ключ записи Вечной книги, помеченной как паттерн, и это список, Природа выполнит каждый элемент, как при $(l:patterns/meta#hexcasting:eval)$(action)Гамбите Гермеса/$, но не тратя вычисление. Попытка пометить несуществующую или бесконечно рекурсивную запись завершится неудачей.",

  "hexal.entry.everbook_entries": "Записи Вечной книги",
  "hexal.page.everbook_entries.0": "Каждая страница этой записи показывает паттерн-ключ одной из записей вашей $(l:hexal:patterns/everbook)$(action)Вечной книги/$.",

  "hexal.everbook_pattern_entry.header": "Сохранённый ключ: %d",
  "hexal.everbook_pattern_entry.macro_header": "Макро-ключ: %d",

  "_comment": "Параметры конфигурации",
  "text.autoconfig.hexal.title": "Настройки Hexal",
  "text.autoconfig.hexal.category.common": "Общие",
  "text.autoconfig.hexal.category.client": "Клиент",
  "text.autoconfig.hexal.category.server": "Сервер",

  "text.autoconfig.hexal.option.server.terrainGeneration": "Генерация мира",
  "text.autoconfig.hexal.option.server.generateSlipwayGeodes": "Генерировать жеоды со скользунами?",

  "text.autoconfig.hexal.option.server.miscSpells": "Прочие заклинания",
  "text.autoconfig.hexal.option.server.miscSpells.fallingBlockCost": "Стоимость падающего блока",
  "text.autoconfig.hexal.option.server.miscSpells.freezeCost": "Стоимость заморозки",
  "text.autoconfig.hexal.option.server.miscSpells.particlesCost": "Стоимость частиц за вектор",
  "text.autoconfig.hexal.option.server.miscSpells.placeTypeCost": "Стоимость постановки блока",
  "text.autoconfig.hexal.option.server.miscSpells.smeltCost": "Стоимость переплавки за предмет",

  "text.autoconfig.hexal.option.server.wispSpells": "Заклинания виспов",
  "text.autoconfig.hexal.option.server.wispSpells.moveSpeedSetCost": "Базовая стоимость ускорения",
  "text.autoconfig.hexal.option.server.wispSpells.moveSpeedSetCost.@Tooltip[0]": "Стоимость увеличения скорости виспа на 1.",
  "text.autoconfig.hexal.option.server.wispSpells.moveSpeedSetCost.@Tooltip[1]": "Это базовая стоимость, большие увеличения считаются квадратично.",
  "text.autoconfig.hexal.option.server.wispSpells.summonTickingWispCost": "Стоимость призыва циклического виспа",
  "text.autoconfig.hexal.option.server.wispSpells.summonProjectileWispCost": "Стоимость призыва снарядного виспа за квадрат скорости",
  "text.autoconfig.hexal.option.server.wispSpells.summonProjectileWispMinCost": "Минимальная стоимость призыва циклического виспа",

  "text.autoconfig.hexal.option.server.wispUpkeep": "Содержание виспов",
  "text.autoconfig.hexal.option.server.wispUpkeep.tickingWispUpkeepPerTick": "Содержание циклического виспа за тик",
  "text.autoconfig.hexal.option.server.wispUpkeep.projectileWispUpkeepPerTick": "Содержание снарядного виспа за тик",
  "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount": "Скидка на содержание неактивного виспа",
  "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount.@Tooltip[0]": "Стоимость содержания неактивных циклических виспов умножается на это число.",
  "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount.@Tooltip[1]": "В пределах от 0.0 до 1.0.",
  "text.autoconfig.hexal.option.server.wispUpkeep.linkUpkeepPerTick": "Содержание связи за тик",
  "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor": "Коэффициент скидки привязанного виспа",
  "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor.@Tooltip[0]": "Стоимость содержания привязанного виспа делится на это число.",
  "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor.@Tooltip[1]": "В пределах от 2.0 до 200.0.",
  "text.autoconfig.hexal.option.server.wispUpkeep.storingPlayerCostScaleFactor": "Множитель стоимости за хранение игрока",
  "text.autoconfig.hexal.option.server.wispUpkeep.storingPlayerCostScaleFactor.@Tooltip[0]": "Мультипликативное увеличение стоимости виспов, содержащих йоту другого игрока.",
  "text.autoconfig.hexal.option.server.wispUpkeep.storingPlayerCostScaleFactor.@Tooltip[1]": "В пределах от 1.0 до 200.0.",

  "text.autoconfig.hexal.option.server.linkSpells": "Заклинания связей",
  "text.autoconfig.hexal.option.server.linkSpells.linkCost": "Стоимость связи",
  "text.autoconfig.hexal.option.server.linkSpells.sendIotaCost": "Стоимость отправки йоты",
  "text.autoconfig.hexal.option.server.linkSpells.unlinkCost": "Стоимость разрыва связи",

  "text.autoconfig.hexal.option.server.gateSpells": "Заклинания врат",
  "text.autoconfig.hexal.option.server.gateSpells.makeGateCost": "Стоимость создания врат",
  "text.autoconfig.hexal.option.server.gateSpells.markGateCost": "Стоимость отметки врат",
  "text.autoconfig.hexal.option.server.gateSpells.closeGateCost": "Стоимость закрытия врат",

  "text.autoconfig.hexal.option.server.itemSpells": "Заклинания предметов",
  "text.autoconfig.hexal.option.server.itemSpells.bindStorageCost": "Стоимость привязки хранилища",
  "text.autoconfig.hexal.option.server.itemSpells.bindTemporaryStorageCost": "Стоимость временной привязки хранилища",
  "text.autoconfig.hexal.option.server.itemSpells.makeItemCost": "Стоимость омеднения предмета",
  "text.autoconfig.hexal.option.server.itemSpells.returnItemCost": "Стоимость возврата предмета",
  "text.autoconfig.hexal.option.server.itemSpells.craftItemCost": "Стоимость крафта предмета",
  "text.autoconfig.hexal.option.server.itemSpells.tradeItemCost": "Стоимость торговли предметом",
  "text.autoconfig.hexal.option.server.itemSpells.maxItemsReturned": "Максимум возвращаемых предметов",
  "text.autoconfig.hexal.option.server.itemSpells.maxItemsReturned.@Tooltip[0]": "Максимальное количество предметов, возвращаемых заклинанием возврата.",
  "text.autoconfig.hexal.option.server.itemSpells.maxItemsReturned.@Tooltip[1]": "В пределах от 640 до 64 000.",
  "text.autoconfig.hexal.option.server.itemSpells.maxRecordsInMediafiedStorage": "Максимум записей в ядре мот",
  "text.autoconfig.hexal.option.server.itemSpells.maxRecordsInMediafiedStorage.@Tooltip[0]": "Максимальное количество записей, которые можно хранить в ядре мот.",
  "text.autoconfig.hexal.option.server.itemSpells.maxRecordsInMediafiedStorage.@Tooltip[1]": "В пределах от 128 до 16 384.",

  "text.autoconfig.hexal.option.server.greatSpells": "Великие заклинания",
  "text.autoconfig.hexal.option.server.greatSpells.consumeWispOwnCost": "Стоимость поглощения своего виспа",
  "text.autoconfig.hexal.option.server.greatSpells.consumeWispOwnCost.@Tooltip[0]": "Стоимость поглощения вашего виспа,",
  "text.autoconfig.hexal.option.server.greatSpells.consumeWispOwnCost.@Tooltip[1]": "или если он не сопротивляется по другой причине.",
  "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia": "Стоимость поглощения чужого виспа за медиа",
  "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia.@Tooltip[0]": "Стоимость поглощения виспа, который сопротивляется, это число умножается на",
  "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia.@Tooltip[1]": "медиа, которым обладает поглощаемый висп.",
  "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia.@Tooltip[2]": "В пределах от 1.0 до 20.0.",
  "text.autoconfig.hexal.option.server.greatSpells.seonWispSetCost": "Стоимость привязки виспа",
  "text.autoconfig.hexal.option.server.greatSpells.tickConstantCost": "Постоянная стоимость ускорения",
  "text.autoconfig.hexal.option.server.greatSpells.tickConstantCost.@Tooltip": "Постоянная стоимость ускорения блока. Всегда применяется.",
  "text.autoconfig.hexal.option.server.greatSpells.tickCostPerTicked": "Стоимость ускорения за раз",
  "text.autoconfig.hexal.option.server.greatSpells.tickCostPerTicked.@Tooltip[0]": "Стоимость ускорения блока за каждый предыдущий раз.",
  "text.autoconfig.hexal.option.server.greatSpells.tickCostPerTicked.@Tooltip[1]": "Добавляется к постоянной стоимости выше.",
  "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb": "Обратная вероятность случайного ускорения",
  "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb.@Tooltip[0]": "Обратная вероятность случайного ускорения блока.",
  "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb.@Tooltip[1]": "Чем больше число, тем реже случайные ускорения, чем меньше — тем чаще.",
  "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb.@Tooltip[2]": "В пределах от 600 до 2100."
}
