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

Враги MegaBlock Survivors

Каждый враг в MegaBlock Survivors — это пользовательская модель, управляемая собственным кодом движения и столкновений плагина, а не ванильный моб Bukkit. Они полностью игнорируют ванильный ИИ: каждый спавнится с текущим уровнем волны, выводит свои характеристики из этого уровня и обрабатывается инстансом матча.

О том, как формируются волны и как уровень волны выводится из прошедшего времени матча, см. Геймплей.

Общая база характеристик​

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

ХарактеристикаФормулаПереопределения по типам
Максимум HPround(waveLevel * 1.6 - 1.0, 1dp)Боссы x10, Артиллерия x0.5, Призрак x5
Контактный уронmax(1, floor(waveLevel / 2.5))Боссы x2
Ускорение0.15 * baseMul + 0.0163296 * slopeMul * sqrt(waveLevel)Volatile x2, Призрак нарастает со временем, Скорпион нарастает с расстоянием
Максимальная скоростьacceleration * 1.1Следует за ускорением
Хитбокс2 блока (ENTITY_SIZE)Боссы отображаются с масштабом x2 и более

baseMul / slopeMul берутся из сложности матча — см. таблицу сложности на странице Геймплей.

Враги волн​

Эти четыре типа — единственное, что может выбрать составитель волн. Их относительные веса по диапазонам волн и стоимость в бюджете указаны на странице Геймплей.

Shadow Slime​

Базовый враг и единственное, что спавнится в волнах 1-2. Идёт прямо на игрока и наносит контактный урон при пересечении. Никакого особого поведения, никакого предупреждения — это давление, под которое сбалансированы все остальные механики. Стоимость в бюджете 1.

Volatile​

Смертник в стиле крипера. Двигается примерно в 2 раза быстрее Shadow Slime, и как только сближается на 2 блока, резко останавливается и запускает 30-тиковый обратный отсчёт подрыва, рисуя расширяющееся кольцо, которое меняет цвет с красного на оранжевый и затем на белый, а сама модель по ходу отсчёта окрашивается в добела раскалённый оттенок. Если отсчёт завершается, он взрывается, нанося 5 урона в радиусе 2.0 + waveLevel * 0.15 блоков, и исчезает.

Взрыв — его единственный источник урона: Volatile не наносит контактного урона, поэтому прикосновение к нему до подрыва по задумке переживаемо. Убийство во время подготовки к взрыву полностью отменяет взрыв и приносит 5 бонусных теневых фрагментов, что превращает рывок к ним в настоящую игру «риск-награда», а не в наказание. Стоимость в бюджете 2.

Artillery​

Дальнобойный моб, запускающий сферическую атаку по игроку матча в пределах 30 блоков с минимальным интервалом 101 тик, около 5 секунд. Атака упреждает горизонтальное движение на 2 блока. Код движения использует предпочтительную дистанцию 18–22 блока, но общая тяга преследования продолжает действовать: ближе 18 блоков импульс отступления лишь отменяет это ускорение, не гарантируя отхода, а в предпочтительном диапазоне моб продолжает приближаться. Не рассчитывайте на постоянную дистанцию в 20 блоков.

Каждый удар сферы имеет 40-тиковое (2-секундное) предупреждение: жёлтая стеклянная оболочка при касте, оранжевая через +20 тиков и красная через +40 тиков — урон проходит только на красном кадре и только в пределах 1,5 блока от отмеченной точки. Мобы Artillery платят за свою дальность половиной обычного запаса HP. Стоимость в бюджете 2.

Laser Sentinel​

Четырёхфазный снайпер-кайтер, который циклически проходит AIM -> LOCK -> FIRE -> COOLDOWN:

ФазаДлительностьПоведение
AIM30 тиковЛуч непрерывно следует за игроком
LOCK20 тиковЛуч замирает на своей текущей конечной точке — последний момент, чтобы уйти из него
FIREмгновенно (вспышка 5 тиков)Хитскан в зафиксированном направлении; наносит max(1, contactDamage), если позиция игрока матча на высоте груди находится в пределах 1 блока от проверяемой точки луча
COOLDOWN80 тиковБездействие, затем повтор

В ожидании и во время восстановления он отступает при дистанции менее 15 блоков, а в AIM входит только в диапазоне 15–60 блоков. Если уйти дальше 60 блоков во время AIM, эта попытка отменяется. После начала LOCK выстрел завершается вдоль зафиксированного луча с дальностью до 60 блоков. Твёрдые блоки обрезают луч и его урон, поэтому укрытие защищает от выстрела. Во время AIM, LOCK и FIRE горизонтальное движение останавливается. Выйдите из зафиксированного луча до выстрела. Стоимость в бюджете 2.

Враги вне составителя волн​

Эти никогда не появляются при обычном наборе волны.

Ghost​

Призраки имеют 5-кратный обычный запас HP и не дают дропа, зачёта убийства, опыта или прогресса жертвоприношения порталу. Поведение зависит от источника появления:

  • Армия призраков по таймеру: управляется отдельным контроллером и при контакте запускает обработку смертельного удара по игроку. Доступная дополнительная жизнь позволяет воскреснуть. Эти призраки отсутствуют в коллекции целей текущего оружия и не затрагиваются очисткой Nuke, Ghost Army Banner или Second Wind. Перейдите в следующий мир, чтобы убрать армию; текущий код не позволяет избавиться от неё боем.
  • Прислужник финального босса: при двух или более Boss Tribute босс может призвать ту же модель призрака. Эти призраки используют обычный учёт врагов, наносят нормальный контактный урон по уровню, получают урон от оружия и удаляются эффектами очистки. Ускорения армии по таймеру на них не действуют.

После начала призыва армии по таймеру один призрак появляется каждые 5 секунд, а вся эта армия, включая текущих и будущих призраков, ускоряется в 1,2 раза каждые 30 секунд. Таймер срабатывания см. в разделе «Армия призраков» на странице Геймплей.

Death Orb​

Создаётся финальным боссом, только если игрок приносит в бой 3 Boss Tribute. Death Orb — не моб, а отслеживаемая позиция, движущаяся к игроку со скоростью 0,14 блока/тик, примерно вдвое медленнее бега. Настроены радиус контакта 1,5 блока и интервал в 1 секунду для нанесения урона босса с учётом уровня. Игрок не может выбрать сферу целью, повредить или уничтожить её; она существует до смерти босса. Две сферы появляются у босса, вторая со смещением на 2 блока по X, и независимо преследуют игрока. Они не вращаются вокруг босса и не возвращаются к нему.

Текущий код задаёт предыдущий тик урона как Integer.MIN_VALUE. При вычитании его из неотрицательного тика матча возникает переполнение целого числа, поэтому первая проверка интервала в обычном забеге не проходит и не обновляет эту отметку. Сферы продолжают двигаться и отображаться, но ветка контактного урона не выполняется. Это ограничение установлено по исходному коду, а не проверено испытанием урона на работающем сервере.

Боссы​

Scorpion (босс портала)​

Босс-страж для каждого из миров 1-3. Атакует очередями: три сферических удара с интервалом в несколько тиков, затем короткая пауза, и так по кругу. Каждый удар использует то же 40-тиковое жёлто-оранжево-красное предупреждение, что и моб Artillery, упреждает движение игрока на 2 блока и наносит урон в пределах 1,5 блока на красном кадре.

При спавне он получает редкость (2% Nightmare / 10% Elite / иначе Normal), которая умножает HP, урон, масштаб модели и добычу. Он также постепенно ускоряется, когда игрок находится дальше 50 блоков, линейно масштабируясь с расстоянием и достигая предела в 4-кратную скорость на 200+ блоках, поэтому увести его кайтом по бесконечному миру не получится. Полная таблица редкостей — на странице Геймплей.

Angel of Death (финальный босс)​

Только в режиме испытания, спавнится в центре арены WORLD_4. Неподвижен, имеет 2,5-кратный базовый запас HP босса и каждые 5 секунд выбирает одну из двух атак в зависимости от вашей дистанции — 9-блочный размах в пределах 10 блоков или залп из трёх столбов на большем расстоянии. Boss Tribute накладывают на него «трофейные силы». Полные подробности — на странице Геймплей.

Оба босса невосприимчивы к дропу Nuke и к очистке поля при возрождении через Second Wind — кнопки паники стирают поле вокруг них, но никогда самого босса. Мобы волн также продолжают спавниться во время финального боя, поэтому арена никогда не превращается в чистую дуэль.