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

Мета-прогрессия MegaBlock Survivors

В MegaBlock Survivors Soul Echoes позволяют сохранять прогресс между забегами. Их собирают во время матчей и тратят в Soul Echo Shrine, чтобы навсегда улучшить стартовые условия следующих забегов.

Данные хранятся в plugins/MegaBlockSurvivors/meta_progression.yml по UUID игрока. Сохранение синхронное и атомарно заменяет файл. Если сохранение покупки завершается ошибкой, списание валюты и улучшение отменяются. Полученные Soul Echoes остаются в памяти после ошибки записи, но могут потеряться при перезапуске, пока последующее сохранение не завершится успешно. Ошибка загрузки сохраняет прежнее состояние в памяти и блокирует запись и покупки до успешной перезагрузки данных. Проверяйте журнал сервера на ошибки сохранения и загрузки.

Как заработать Soul Echoes​

Soul Echoes выпадают во время матча как LAPIS_LAZULI с названием Soul Echo. Они накапливаются в инвентаре и зачисляются на постоянный баланс при завершении матча. Подсчёт проверяет только материал, поэтому расходует и засчитывает весь лазурит в инвентаре, включая обычный лазурит, принесённый извне. Используйте отдельный инвентарь для мини-игры.

ИсточникКоличество
Любое обычное (не боссовое) убийство моба1, с броском 1% за убийство
Скорпион у портала — Normal10-15, гарантированно
Скорпион у портала — Elite15-24, гарантированно
Скорпион у портала — Nightmare25-35, гарантированно
Финальный босс (режим Challenge)round(100 * 1.5^tributes) — 100 без трофеев, 150 / 225 / ~338 при 1 / 2 / 3 Boss Tribute
POI Soul Shard Cache50, зачисляется немедленно в постоянный баланс (минуя перенос по окончании матча)

У мобов армии призраков награды отключены, и они ничего не дропают.

Открытие святилища​

/mbs meta

Открывает диалог Soul Echo Shrine. Диалог показывает:

  • Текущий баланс Soul Echo.
  • По каждому треку улучшений: текущий уровень, потолок, текущую эффективную характеристику, предпросмотр следующего уровня и стоимость следующего уровня.
  • Кнопку покупки по каждому треку (или индикатор MAXED).
/mbs meta upgrade <track>

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

Покупки разрешены и во время матча. Лимиты слотов оружия и пассивных предметов читают текущую запись прогресса и могут измениться в этом же забеге. Стартовые HP, удача, скорость, жизни, жетоны Ban и Reroll копируются при инициализации игрока. Покупка этих улучшений не пополняет их и не меняет их стартовые значения в уже начатом забеге.

Треки улучшений​

ТрекКлюч командыПотолокЭффект
Starting HPhp4Ур. 0 = 10 HP (базовая линия), +2 HP за уровень. Макс.: 18 HP.
Starting Luckluck4Ур. 0 = 0 удачи, +2 удачи за уровень. Макс.: 8.
Starting Speedspeed4Множитель скорости ходьбы на BASE_WALK_SPEED. Ур. 0 = 1.00×, +0.05 за уровень. Макс.: 1.20×.
Weapon Slotsweaponslots1Ур. 0 = 1 слот, Ур. 1 = 2 слота.
Passive Slotspassiveslots3Ур. 0 = 2 слота, +1 за уровень. Макс.: 5 слотов.
Extra Livesextralives2Отложенные Second Wind-реанимации. Ур. 1 = 1 жизнь, Ур. 2 = 2 жизни.
Ban Tokensbantokens3Жетоны на забег, исключающие тип снаряжения из следующих розыгрышей, с оговоркой о резервном выборе при исчерпанном пуле ниже.
Reroll Tokensrerolltokens3Жетоны на забег, которые перебрасывают текущую тройку наград.

Кривая стоимости​

Большинство треков используют стандартную геометрическую кривую:

cost(targetLevel) = round(10 * 2.5^(targetLevel - 1))

Целевой уровеньСтоимость (Soul Echoes)
110
225
363
4156

Extra Lives настроен вручную и использует фиксированный график: 100 за первую жизнь, 200 — за вторую.

Механика Ban / Reroll​

Треки Ban и Reroll выдают жетоны на забег, которые игрок может тратить на любом экране наград — повышения уровня, сундука или песочных часов. Экран запоминает собственный тип пула, прежде чем предложить кнопки, поэтому реролл на экране сундука перебрасывает пассивки, а реролл на экране песочных часов — полный пул.

  • Ban расходует один жетон и добавляет выбранный тип снаряжения в список запрещённых на этот забег. Он исключается из следующих розыгрышей и первого резервного выбора. Если запрещены все типы резервного пула, последний запасной вариант возвращает пул без фильтра. Поэтому при исчерпанных вариантах запрещённый тип может появиться снова. Это помогает убрать пассивный предмет, который вы не хотите улучшать, и получать другие предложения.
  • Reroll — расходует один жетон реролла и заново разыгрывает текущую тройку наград из пула (после применения банов). Никаких перманентных изменений пула не происходит.

Оставшиеся счётчики отображаются в строке заголовка экрана наград (Pick your reward! | X bans X rerolls). Ban — это кнопка на каждый слот, то есть один элемент управления "Ban <name>" под каждым из трёх вариантов, тогда как Reroll — одна кнопка на весь экран. Каждый элемент полностью скрывается, как только счётчик его жетонов достигает нуля, а при полном отсутствии жетонов заголовок возвращается к простому «Pick your reward!».

Балансы жетонов сбрасываются к значениям, определяемым треком мета-прогрессии, в начале каждого матча — они не переносятся.

Формат хранения​

Схема meta_progression.yml:

players:
<player-uuid>:
soulEchoes: 0
tracks:
startingHp: 0
startingLuck: 0
startingSpeed: 0
weaponSlots: 0
passiveSlots: 0
extraLives: 0
banTokens: 0
rerollTokens: 0

Кэш конкурентный и сбрасывается на диск каждый раз, когда выполняется MetaProgressionManager.save() (при покупке, при сбросе echo по окончании матча, при подборе Soul Shard Cache и при отключении плагина).

Сброс прогресса​

Внутриигровой команды для обнуления мета-прогрессии нет. Чтобы сбросить для игрока (или для всех), остановите сервер и отредактируйте / удалите соответствующий раздел в meta_progression.yml.