Перейти к содержанию

Зависимости и доступность

Зависимости отвечают за путь развития внутри категории. access-when определяет, какие категории, узлы и ранги доступны игроку.

Простая зависимость

Один обязательный узел:

requires: mining-basics

Несколько обязательных узлов:

requires:
  - mining-basics
  - tools

В этом примере игроку нужны оба таланта.

Расширенные зависимости

Все перечисленные

requirements:
  all:
    - mining-basics
    - tools

Любой из перечисленных

requirements:
  any:
    - stone-path
    - wood-path

Запрет при наличии таланта

requirements:
  not: forbidden-path

Нужное количество из списка

requirements:
  at-least:
    count: 2
    of:
      - mining-basics
      - stone-path
      - wood-path

Проверка конкретного ранга узла

requirements:
  node: mining-basics
  minimum: 2
  maximum: 3

Навык станет доступным игроку только при достижении от второго до третьего ранга определенного узла (таланта). Если maximum не указано, то значение должно быть >= minimum. Вместо диапазона можно использовать exact для точного ранга.

Внимание! requires и requirements нельзя указывать одновременно.

Единая доступность

access-when задаёт условие доступности категории, узла или отдельного ранга.

access-when:
  permission: varryal.talents.mining

Если условие указано у категории или узла и не выполнено, объект не попадёт в интерфейс. Прямая попытка покупки также будет отклонена сервером.

Условие можно задать у отдельного ранга:

ranks:
  - cost: 1
  - cost: 3
    access-when:
      permission: varryal.talents.advanced-mining

Первый ранг в этом примере доступен всем. Второй станет доступен после получения права varryal.talents.advanced-mining.

Условия рангов не скрывают купленный талант. Они определяют, сколько последовательных рангов игрок видит сейчас:

  • после покупки первого ранга без нужного права игрок увидит 1/1;
  • после получения права увидит 1/2 и сможет купить второй ранг;
  • если игрок уже купил второй ранг и затем потерял право, он сохранит ранг и увидит 2/2.

При покупке следующего ранга сервер всегда проверяет условия категории, узла и этого ранга. Уже купленные ранги и их эффекты не отбираются из-за последующей смены права.

Нехватка очков, невыполненные зависимости и занятое место в группе выбора не скрывают узел. Игрок видит его заблокированным и понимает, что нужно выполнить для покупки.

Логические сочетания

access-when также поддерживает all, any, not и at-least:

access-when:
  all:
    - permission: varryal.talents.mining
    - any:
        - world: overworld
        - world: mines

Конкретные типы условий предоставляют подключённые плагины через VarryalAPI.