Перейти к основному содержимому

Создание фаз боссов

Фазы боссов - это подмеханика кастомных боссов. Система, стоящая за этими фазами, настолько гибкая и мощная, что требует отдельного детального объяснения, чтобы вы могли максимально эффективно использовать эту функцию.

Как работают фазы боссов?

Фазы боссов можно добавить к любому кастомному боссу в EliteMobs, используя следующий формат конфигурации:

phases:
- phase_2_boss.yml:0.X
- phase_3_boss.yml:0.Y

Примечание: Босс, которого вы изначально спавните (который содержит запись phases:, перечисляющую все другие фазы), является боссом фазы 1. Файл босса фазы 1 НЕ должен указывать сам себя в своей собственной записи phases:.

Основная идея этой механики заключается в том, чтобы позволить администраторам изменять атрибуты кастомных боссов во время боя. Используя вышеуказанный формат конфигурации, вы можете полностью изменять файлы конфигурации от фазы к фазе, что означает, что вы можете изменять 99.99% атрибутов - таких как способности, множители урона, множители здоровья, тип сущности, маскировка, надетая броня...

Для достижения этого EliteMobs удаляет вашего босса во время боя и мгновенно заменяет его версией из следующей фазы. Этот процесс мгновенный, поэтому он обычно довольно плавный - если только вы не хотите сделать его эффектным намеренно. Босс получает 1-секундный период боевой защиты после перехода для обеспечения плавных визуальных эффектов.

Пример

Возьмем этот пример фазового босса:

Файл: phase_1_boss.yml

isEnabled: true
level: 50
healthMultiplier: 10
entityType: STRAY
powers:
- attack_gravity.yml
phases:
- phase_2_boss.yml:0.60
- phase_3_boss.yml:0.30

Файл: phase_2_boss.yml

isEnabled: true
level: 50
healthMultiplier: 10
entityType: SKELETON
powers:
- attack_gravity.yml
- arrow_fireworks.yml

Файл: phase_3_boss.yml

isEnabled: true
level: 50
healthMultiplier: 10
entityType: WITHER_SKELETON
powers:
- arrow_rain

Это составляет валидного фазового босса. Если вы заспавните phase_1_boss.yml, он создаст Бродягу с атрибутами, перечисленными выше. После того как его здоровье снизится до 60%, он будет немедленно заменен в том же месте на кастомного босса, сформированного в phase_2_boss.yml, поскольку файл конфигурации указывает - phase_2_boss.yml:0.60 (phase_2_boss.yml - это имя файла для этого кастомного босса, 0.60 - это 60% здоровья). Обратите внимание, что босс фазы 2 появится с 60% своего здоровья, так как именно тогда он переходит в эту фазу. Босс будет иметь способности, перечисленные в файле phase_2_boss.yml. Как только босс фазы 2 получит урон до 30% своего здоровья, он создаст босса, установленного для фазы 3. Обратите внимание, что способности для фазы 3 не связаны с предыдущими - вы можете полностью изменять способности между фазами, так же как и почти все другие атрибуты.

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

Унаследованные механики

Вот список вещей, которые не меняются от фазы к фазе:

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

  • Таблица угроз / таблица урона остается прежней, что означает, что распределение добычи и продвинутая система агрессии не затрагиваются сменой фазы

  • Смена фаз основана на % потерянного здоровья, который сохраняется от фазы к фазе. Это означает, что если ваш босс настроен на переход во фазу 2 при 50% здоровья, босс, который появится для замены босса фазы 1, все еще будет иметь 50% здоровья. Это также означает, что каждая фаза может иметь совершенно разное количество здоровья без каких-либо проблем.

  • Фазовые боссы возвращаются к фазе 1, если они исцеляются до полного здоровья через стандартную систему регенерации боссов вне боя

  • Фазовые боссы, которые также являются региональными боссами, имеют одинаковый радиус привязки и механику тайм-аута во всех фазах и будут возрождаться как босс фазы 1 после окончания таймера возрождения. Время восстановления возрождения и другие настройки регионального босса всегда берутся из конфигурации босса фазы 1.

Специфичные для фаз места появления

По умолчанию боссы остаются на своей текущей позиции при переходе между фазами. Однако вы можете заставить босса телепортироваться в определенное место при входе в фазу, используя настройку phaseSpawnLocation:

Файл: phase_2_boss.yml

isEnabled: true
level: 50
healthMultiplier: 10
entityType: SKELETON
powers:
- attack_gravity.yml
- arrow_fireworks.yml
phaseSpawnLocation: world_name,100,64,100,0,0

Вы также можете телепортировать босса, оставив его в том же мире:

phaseSpawnLocation: same_as_boss,100,64,100,0,0

Это полезно для создания драматических переходов между фазами, когда босс телепортируется на другую арену или локацию.

Предупреждения

Вот список механик, которые работают способом, который может изначально быть неинтуитивным:

  • Если фазовый босс убит на любой фазе, он выбросит добычу из этой фазы. Это означает, что если кому-то удастся убить фазового босса слишком быстро (с одного удара), он действительно умрет и выбросит добычу, настроенную для этого файла босса, которая не обязательно может быть из финальной фазы. Вы можете исправить это, установив одинаковую таблицу добычи для всех файлов боссов этого фазового босса, или убедившись, что ваши фазовые боссы имеют достаточно HP, чтобы было невозможно убить их всего за несколько ударов. Альтернативно, вы можете иметь специальные таблицы добычи для игроков, способных пропустить фазы.

  • Поскольку фазовые боссы фактически вызывают появление кастомных боссов во время боя, они выполняют всю свою процедуру появления при спавне. Поэтому будьте осторожны с сообщениями о появлении и командами, которые выполняются при спавне. Кроме того, фазовые боссы не умирают при смене фаз, они просто заменяются чем-то другим. Это означает, что команды, выполняемые при смерти, будут выполняться только для последнего фазового босса или если игрок сумеет пропустить фазу, нанеся достаточно урона. Команды, выполняемые при спавне, могут использоваться для привязки к сменам фаз. Примечание: Сообщение о появлении не будет отправлено, когда босс вернется к фазе 1 из-за регенерации до полного здоровья. Однако сообщения о появлении ОТПРАВЛЯЮТСЯ при переходе к фазам 2, 3 и т.д. во время боя, а также когда региональные боссы возрождаются после времени восстановления.

  • Фазовые боссы могут быть верхом или перестать быть верхом между фазами. Если фазовый босс убит до того, как умер ездовое животное, ездовое животное сохранится в следующей фазе. Если босс регенерирует до полного здоровья, ездовое животное удаляется, и босс становится без седока, если только он не настроен на езду на сущности во время фазы 1.

  • Поскольку новые кастомные боссы появляются между фазами, механика одноразового появления сбрасывается между фазами и при полном исцелении.

Советы и хитрости

  • Вы можете использовать тот факт, что экипировка и типы сущностей могут меняться в течение боя, чтобы сделать босса более и более (или менее и менее) опасным в течение боя

  • Хотя это возможно, если только нет конкретной дизайнерской цели, вероятно, лучше всего, чтобы способности фазового босса не менялись слишком резко между фазами, так как игрокам больше понравится прогрессия, которая кажется естественной в течение боя.

  • Вы можете использовать команды onSpawn для выполнения команд между фазами

  • Вы можете установить разную музыку для каждой фазы, используя опцию конфигурации song. Музыка будет автоматически переключаться, когда босс входит в новую фазу.

  • Фазы можно использовать для переключения босса из режима ближнего боя в режим дальнего боя и наоборот

  • Фазовые боссы были созданы как жесткие боссы с большим количеством HP. Обычно они лучше всего подходят в качестве финального босса для подземелий или как большие мировые боссы.

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

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

Интеграция с API

Для разработчиков плагинов: EliteMobs запускает событие ElitePhaseSwitchEvent, когда босс переходит между фазами. Это событие можно использовать для создания пользовательского поведения или эффектов во время переходов между фазами:

@EventHandler
public void onPhaseSwitch(ElitePhaseSwitchEvent event) {
CustomBossEntity boss = event.getCustomBossEntity();
PhaseBossEntity phaseBoss = event.getPhaseBossEntity();
// Ваша пользовательская логика здесь
}