Мировой босс
Мировой босс это по большей части неспешное событие. Вы содержите катапульту, которая стреляет со временем, покупаете к ней боеприпасы и улучшения, наводите её на тот участок башни, который сейчас слаб, и собираете сундуки. Команды «стрелять» в протоколе нет вовсе: урон набегает с катапульты сам.
Именно эта форма и делает модуль полезным. Почти вся ценность в том, чтобы две недели регулярно делать мелочи, а это ровно то, о чём человек забывает, а бот нет.

Включается через auto_world_boss.
Что он делает, по порядку
Каждый проход по событию идёт по одному и тому же списку решений и останавливается на первом, что стоит сделать.
- Забрать бесплатный ежедневный сундук, затем любой ждущий сундук за бой. Сундуки решаются раньше всего остального, так что прерванный проход всё равно забрал бесплатное.
- Перенавестись на слабое место. Если бой сообщает о слабом месте, а катапульта смотрит в другую сторону, цель меняется. Ничто другое в списке не весит столько же: катапульта, бьющая не по тому участку, наносит долю возможного урона.
- Пополнить боеприпасы, когда осталось пять залпов или меньше, покупая наибольшую партию, какую позволяют катализаторы.
- Купить улучшение катапульты, если лавка предлагает его в пределах вашего потолка.
- Переобновить лавку улучшений, если ни одно из трёх её предложений купить нельзя.
Почему пополнять на пяти, а не на нуле
Раньше покупка шла только ровно на нуле. Катапульта тогда пересыхала, простаивала остаток цикла и пополнялась следующим проходом. Досыпать, пока пара залпов ещё есть, держит её в непрерывном огне, а в этом и весь смысл катапульты, которая стреляет сама.
Что он тратит и чего не тратит никогда
Здесь это весит больше, чем где-либо ещё в приложении, потому что грибы это настоящие деньги, а у этого события рядом почти с каждой кнопкой стоит грибная.
| Покупка | Оплачивается | Возможны грибы? |
|---|---|---|
| Боеприпасы | Катализаторы, валюта только этого события | Нет |
| Улучшения катапульты | Золото, дерево, камень, металл, аркана | Нет |
| Переобновление лавки | Бесплатно | Нет |
Гарантия структурная, а не фильтр поверх предложений. Команда покупки принимает аргумент «платить по альтернативной цене», и Mercy SF каждый раз отправляет в него ноль, что соответствует первой кнопке лавки. Пути в коде, который отправлял бы что-то другое, не существует.
Сверх того каждая покупка замеряет семь балансов аккаунта до и после. Если хоть раз увидят движение одного гриба, покупка для катапульты выключается для этого аккаунта навсегда и говорит об этом в журнале.
Это не теория
Покупки действительно списывали грибы, неделями. Причина была в том, что два аргумента команды покупки шли по проводу переставленными: игра читает их как {slot}/{pay_with_mushrooms}, то есть бот отправлял индекс предложения туда, где должен стоять признак валюты, и тем самым просил грибы каждый раз. Теперь это выяснено по собственному описанию запроса игрового клиента, а не выведено из совпадений. Защёлка по балансам всё равно остаётся, как страховка.
Настройки

| Настройка | По умолчанию | Что делает |
|---|---|---|
auto_world_boss | вкл | Сам модуль. |
world_boss_auto_upgrade | вкл | Покупать улучшения катапульты. Включено по умолчанию: неулучшенная катапульта наносит долю урона, поэтому оставлять это выключенным значило, что большинство молча получало от события худшее. |
world_boss_max_upgrade_level | 5 | Наибольший уровень, до которого будет улучшено место катапульты. Смотрите ниже. 0 снимает потолок. |
world_boss_max_catalysts_spend | 0 | Необязательный потолок на катализаторы. 0 значит тратить их свободно, что правильно для валюты события, которую вы не унесёте с собой. |
world_boss_reroll_upgrade_shop | вкл | Нажимать «новый товар», когда ни одно из трёх предложений купить нельзя. |
world_boss_use_mushrooms | выкл | Оставлено ради общего грибного запрета. В этом модуле за грибы всё равно ничего не покупается. |
world_boss_max_mushroom_spend | 0 | Не используется. Оставлено только чтобы старые сохранённые конфигурации по-прежнему загружались. Никто это не читает. |
Почему потолок улучшений по умолчанию равен 5
Улучшения оплачиваются золотом и катализаторами до определённой точки, после которой лавка предлагает уже только грибную кнопку. Шаг с уровня 5 на уровень 6 первый из таких. Значит, всё до уровня 5 включительно бесплатно, и настройка по умолчанию покупает это целиком.
Потолок это игровое предпочтение, а не средство защиты. Бот никогда не жмёт грибную кнопку, поэтому шаг за бесплатную ступень сервер отклоняет, а не списывает. Поднять потолок значит лишь потратить запросы на предложения, которые отклонят.
Почему переобновление включено
Лавка меняется сама только тогда, когда что-то куплено. Лавка, все три предложения которой привязаны к участку башни, куда ваша катапульта не смотрит, это тупик, который сам никогда не разрешится, а положение это частое.
Переобновление ограничено: несколько за цикл и десять на аккаунт в час. Баланс грибов замеряется при каждом из них.
Свежие аккаунты и проба на разблокировку
Если ваш персонаж ни разу не присоединялся к Мировому боссу, сервер не присылает никаких данных Мирового босса, и модуль, который ждёт распознавания события, ждал бы вечно. Симптом это посторонние запросы, возвращающиеся с world boss join first, пока модуль сидит без дела.
Поэтому Mercy SF пробует войти по таймеру, как только персонаж переходит уровень разблокировки, даже если ничего не распознано, и оставляет решение серверу. Подробнее об этом в разделе Как распознаются события.
Когда он останавливается
Модуль зависит от того, идёт ли событие. Как только сервер отвечает event not active, этому верят час, а затем проверяют снова. Так что закрытый Мировой босс стоит одного запроса в час, а не одного в минуту, а к только что открывшемуся присоединяются в течение часа.