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

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

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

Постоянное состояние хранится в plugins/MegaBlockSurvivors/meta_progression.yml, с ключом по UUID игрока. Сохранения синхронные, поэтому состояние на диске всегда отражает последнее изменение к моменту возврата вызова.

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

Основной внутриматчевый источник — награда POI Soul Shard Cache. Каждый тайник добавляет Soul Echoes напрямую к балансу мета-прогрессии игрока и выводит подтверждение в чат. Любой невыгруженный внутри-забеговый баланс также добавляется при разборе матча.

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

/mbs meta

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

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

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

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

ТрекКлюч командыПотолокЭффект
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 — расходует один жетон реролла и заново розыгрывает текущую тройку наград из пула (после применения банов). Никаких перманентных изменений пула не происходит.

Обе кнопки появляются в строке заголовка экрана наград рядом с оставшимися счётчиками жетонов (X bans X rerolls). Если ни один из треков не разблокирован, вместо этого показывается более простой заголовок «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 по окончании матча и при отключении плагина).

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

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